import { type CompactionEventSummary, type CompactionTelemetryEvent } from "./compaction-telemetry.js"; import { type LeanCtxTelemetrySummary } from "./lean-ctx-telemetry.js"; import { type PersistedRunState } from "./run-persistence.js"; export { workflowLangfuseTraceId } from "./langfuse-tracing.js"; export interface WorkflowTelemetryReportOptions { cwd?: string; runs?: PersistedRunState[]; compactionEvents?: CompactionTelemetryEvent[]; since?: Date; until?: Date; runId?: string; sessionId?: string; compactionEventsPath?: string; lowCacheInputThreshold?: number; } export interface UsageRollup { calls: number; input: number; output: number; total: number; cacheRead: number; cacheWrite: number; cost: number; cacheReadPct: number; } export interface UsageAnomaly { kind: "large_low_cache" | "missing_usage" | "context_overrun" | "compaction_cache_disruption"; runId?: string; workflowName?: string; agentLabel?: string; model?: string; message: string; input?: number; cacheRead?: number; cacheReadPct?: number; occupancy?: number; traceId?: string; runStatePath?: string; } export interface CompactionCacheImpactBoundary { runId?: string; workflowName?: string; timestamp?: string; eventType: string; beforeAgentLabel?: string; beforeCacheReadPct?: number; afterAgentLabel?: string; afterModel?: string; afterInput?: number; afterCacheRead?: number; afterCacheWrite?: number; afterCacheReadPct?: number; deltaPct?: number; coldStart: boolean; cacheDrop: boolean; traceId?: string; runStatePath?: string; } export interface CompactionCacheImpactSummary { compactionEvents: number; boundariesAnalyzed: number; coldStartsAfterCompaction: number; cacheDropsAfterCompaction: number; avgPreCacheReadPct?: number; avgPostCacheReadPct?: number; avgDeltaPct?: number; maxDropPct?: number; /** All analyzed boundaries, used for anomaly detection. */ boundaries: CompactionCacheImpactBoundary[]; /** Display-truncated tail of analyzed boundaries. */ recent: CompactionCacheImpactBoundary[]; } export interface WorkflowTelemetryReport { generatedAt: string; window: { since?: string; until?: string; }; filters: { runId?: string; sessionId?: string; }; totals: UsageRollup & { runs: number; agents: number; }; byModel: Record; byAgentLabel: Record; anomalies: UsageAnomaly[]; compaction: CompactionEventSummary; compactionCacheImpact: CompactionCacheImpactSummary; leanCtx: LeanCtxTelemetrySummary; traceLinks: Array<{ runId: string; workflowName: string; traceId: string; runStatePath?: string; }>; } export declare function parseTelemetryWindow(value: string | undefined, now?: Date): Date | undefined; export declare function buildWorkflowTelemetryReport(options?: WorkflowTelemetryReportOptions): WorkflowTelemetryReport; export declare function renderWorkflowTelemetryReport(report: WorkflowTelemetryReport): string;