Adds a complete HTML rendering and export pipeline to the fusion-plugin-reports plugin, including a standalone HTML renderer with template and stylesheet support, new export routes (`/api/reports/:id/export/html`) that persist rendered HTML to the store, and plugin-type support for non-JSON route re Fusion-Task-Id: FN-3785
2.3 KiB
2.3 KiB
ReportRecord input shape
interface ReportRecord {
id: string;
title: string;
cadence: "daily" | "weekly" | "monthly" | "quarterly" | "manual";
period: { start: string; end: string };
generatedAt: string;
status: string;
settings: {
sections?: string[];
sectionOrder?: string[];
branding?: {
accentColor?: string;
logoDataUri?: string;
};
};
sections: {
summary?: string;
system?: {
wins?: string[];
highlights?: string[];
lowlights?: string[];
proposals?: string[];
deepDives?: string[];
};
perAgent?: Array<{
agentId: string;
agentName?: string;
wins?: string[];
highlights?: string[];
lowlights?: string[];
proposals?: string[];
deepDives?: string[];
}>;
dataCoverage?: string[];
};
reviewPanel?: {
overallVerdict: string;
consensusSummary: string;
individual: Array<{ memberName: string; verdict: string }>;
};
}
Section identifiers
data-section="summary"data-section="system-wins"data-section="system-highlights"data-section="system-lowlights"data-section="system-proposals"data-section="system-deep-dives"data-section="agent-card"data-section="data-coverage"data-section="review-panel"
Theme tokens
--space-xs,--space-sm,--space-md,--space-lg,--space-xl--radius-sm,--radius-md,--radius-lg--bg,--surface,--card,--text,--text-muted,--border--triage,--todo,--in-progress,--in-review,--done--color-success,--color-error,--color-warning,--color-info--report-accent
HTTP endpoints
GET /api/plugins/reports/reports/:id/export.html200 text/html; charset=utf-8+Content-Disposition: attachment; filename="<slug>.html"404when report ID does not exist409when report is not yet generated
GET /api/plugins/reports/reports/:id/preview.html200 text/html; charset=utf-8body-only fragment (<article>...</article>)404when report ID does not exist409when report is not yet generated
Stability
This rendering contract is shared with downstream dashboard/share integrations (FN-3786 / FN-3787). Any breaking change to markers, token names, or endpoint contract requires coordinated updates across those tasks.