/** * Metrics Aggregator * * Provides aggregation, reporting, and export functionality for delegation * and orchestration metrics stored in stateManager. * * @since 2026-04-16 */ import type { XrayStateManager } from "../state/state-manager.js"; export interface DelegationMetricEntry { timestamp: number; operation: string; strategy: string; complexity: { level: string; score: number; }; estimatedDuration: number; agents: string[]; results?: Array<{ agent: string; success: boolean; }>; totalTime?: number; success?: boolean; errors?: string[]; analysisOnly: boolean; sessionId?: string; } export interface OrchestrationMetricEntry { timestamp: number; parentTask: string; operation: string; orchestratorType: string; subAgents: Array<{ name: string; role: string; confidence: number; }>; complexityLevel: string; complexityScore: number; sessionId?: string; } export interface AggregatedMetrics { summary: { totalEntries: number; timeRange: { start: number; end: number; }; oldestEntry: number; newestEntry: number; }; byAgent: Record; byComplexityLevel: Record; byTimePeriod: Record; } export interface MetricsExport { format: "json" | "csv" | "summary"; data: unknown; exportedAt: number; entryCount: number; } export declare function getDelegationMetrics(stateManager: XrayStateManager): DelegationMetricEntry[]; export declare function getOrchestrationMetrics(stateManager: XrayStateManager): OrchestrationMetricEntry[]; export declare function aggregateDelegationMetrics(stateManager: XrayStateManager): AggregatedMetrics; export declare function aggregateOrchestrationMetrics(stateManager: XrayStateManager): AggregatedMetrics; export declare function summarizeByAgent(stateManager: XrayStateManager, type?: "delegation" | "orchestration"): Record; export declare function summarizeByComplexityLevel(stateManager: XrayStateManager, type?: "delegation" | "orchestration"): Record; export declare function summarizeByTimePeriod(stateManager: XrayStateManager, type?: "delegation" | "orchestration"): Record; export declare function rotateMetrics(stateManager: XrayStateManager, maxEntries?: number): { delegation: number; orchestration: number; }; export declare function cleanupOldMetrics(stateManager: XrayStateManager, olderThan: number): { delegation: number; orchestration: number; }; export declare function exportMetrics(stateManager: XrayStateManager, format?: "json" | "csv" | "summary"): MetricsExport;