/** * openlore telemetry — cognitive telemetry analysis for EpistemicLease. * * Reads append-only JSONL streams from .openlore/telemetry/ and computes * higher-level behavioral metrics describing long-session agent cognition. * * Streams line-by-line via readline (O(1) memory — arbitrarily large sessions). */ import { Command } from 'commander'; interface McpEvent { ts: string; event: 'tool_call' | 'tool_error'; tool: string; ms: number; agent?: string; agent_version?: string; error?: string; } interface LeaseEvent { ts: string; event: 'degraded' | 'stale' | 'depth_escalate' | 'orient_reset'; trigger?: string; depth?: number; from_depth?: number; to_depth?: number; from_state?: string; tool?: string; cognitive_load?: number; density?: number; oscillation?: number; age_min?: number; prior_load?: number; prior_depth?: number; } interface PanicEvent { ts: string; event: 'panic_level_change' | 'panic_orient_reset' | 'hook_intervention' | 'panic_signal_injected' | 'panic_intervention_outcome' | 'panic_score_delta'; from_level?: number; to_level?: number; panic_score?: number; severity?: string; orient_kind?: 'normal' | 'rapid' | 'spam'; delta?: number; from_score?: number; to_score?: number; intervention_count?: number; triggers?: Array<{ name: string; delta: number; }>; provenance?: Array<{ name: string; delta: number; }>; gryph_enriched?: boolean; outcome?: string; intervention_lag_ms?: number; } /** * Obstinacy: tool calls (non-orient) after each stale event before next orient/reset. * High value = agent ignores stale warnings. */ declare function computeObstinacy(mcp: McpEvent[], lease: LeaseEvent[]): { total_stale_episodes: number; avg_calls_before_orient: string; depth2_avg: string; depth3_avg: string; episodes: { depth: number; calls_before_orient: number; }[]; }; /** * Recovery efficiency: time from stale to orient call (ms), * and recovery half-life: time from orient_reset to first degraded/stale after it. */ declare function computeRecovery(mcp: McpEvent[], lease: LeaseEvent[]): { stale_events: number; orient_calls: number; orient_resets: number; avg_recovery_ms: number | null; avg_stable_after_orient_ms: number | null; recurrence_rate: string; }; export type { PanicEvent, LeaseEvent, McpEvent }; export { computePanicStats, computeRecovery, computeObstinacy }; /** * Panic stats: episode count, avg recovery latency, hook intercepts, orient spam. */ declare function computePanicStats(panic: PanicEvent[]): { panic_episodes: number; avg_recovery_ms: number | null; failed_recovery_rate: string; hook_intercepts: number; mcp_injections: number; orient_spam_events: number; orient_rapid_events: number; gryph_enriched_intercepts: number; trigger_counts: [string, number][]; }; export declare const telemetryCommand: Command; //# sourceMappingURL=telemetry.d.ts.map