/** * Agent/model performance analytics. * * Aggregates data from the events table, memory store, and check/verify * history to answer: "Are our AI tools improving delivery without risk?" * * Metrics tracked: * - Tokens saved (from recall/context budget reports) * - Violations prevented (from check runs) * - Verify outcomes (PASS/FAIL over time) * - Memory lifecycle (created → verified → stale → refuted) * - Proposal throughput (created → approved/rejected) * - Agent activity (which machines/sources are writing) */ import type { MemoryStore } from "./db/store.js"; import type { MemoryKind } from "./types.js"; export interface AnalyticsTimeRange { /** ISO timestamp — default 30 days ago */ since?: string; /** ISO timestamp — default now */ until?: string; } export interface VerifyOutcome { date: string; total: number; verified: number; stale: number; passRate: number; } export interface ProposalFlow { created: number; approved: number; rejected: number; pending: number; approvalRate: number; } export interface MemoryLifecycleStats { created: number; forgotten: number; refuted: number; superseded: number; evidenceAdded: number; evidenceRemoved: number; netGrowth: number; } export interface AgentActivity { machine: string; events: number; memoriesCreated: number; lastActive: string; } export interface KindDistribution { kind: MemoryKind; count: number; verified: number; stale: number; refuted: number; evidenceAvg: number; } export interface TokenUsageStat { date: string; tokensRequested: number; tokensDelivered: number; tokensSaved: number; memoriesUsed: number; } export interface AnalyticsReport { generatedAt: string; timeRange: { since: string; until: string; }; summary: { totalMemories: number; totalEvents: number; violationsPrevented: number; tokensSaved: number; verifyRuns: number; checkRuns: number; avgPassRate: number; avgConfidence: number; }; memoryLifecycle: MemoryLifecycleStats; proposalFlow: ProposalFlow; verifyTrend: VerifyOutcome[]; kindDistribution: KindDistribution[]; topAgents: AgentActivity[]; tokenUsage: TokenUsageStat[]; insights: string[]; } export declare function computeAnalytics(store: MemoryStore, range?: AnalyticsTimeRange): AnalyticsReport; /** Record token usage for analytics tracking. Called by recall/context commands. */ export declare function recordTokenUsage(store: MemoryStore, opts: { tokensRequested: number; tokensDelivered: number; memoriesUsed: number; }): void;