/** * Markdown report formatter for slice topology observability. * * from `aggregation.ts`, outputs are stable markdown strings suitable * for pasting into PR descriptions or `.peaks/PROJECT.md` timeline * entries. The CLI subcommand `peaks observability report` wires * the file read + aggregation + format pipeline. * * - Header: scope, period, generated-at timestamp * - Slice table: rid | transitions | finalState | durationMs | success * - Fanout table: role | count * - Repair-cycle table: sliceRid | cycleCount * - Top-N slowest slices: same as slice table, sorted by durationMs desc */ import { type FanoutBreakdown, type Period, type RepairCycleReport, type SliceRollup, type StatusAggregate } from './aggregation.js'; export type ReportInput = { scope: 'session' | 'all-sessions'; scopeId: string; period: Period; generatedAt: string; status: StatusAggregate; slices: SliceRollup[]; fanout: FanoutBreakdown; repairCycles: RepairCycleReport; }; declare function pad(value: string | number, width: number): string; declare function formatDurationMs(ms: number | null): string; /** * Render the full markdown report. Pure function — no IO. The CLI * layer reads events, calls aggregations, and passes the result here. */ export declare function renderObservabilityReport(input: ReportInput): string; export declare const REPORT_FORMAT_CONSTANTS: { readonly SLOWEST_TOP_N: 5; }; export declare const __reportTestHelpers: { pad: typeof pad; formatDurationMs: typeof formatDurationMs; }; export {};