/** * pattern-analyzer.ts — Detects inefficiency patterns in Claude Code usage. * * Pure logic module: receives pre-fetched DB data, returns actionable insights. * No DB or filesystem access here — easier to test and reason about. * * Patterns detected: * - Read dominance → suggest offset+limit or batching * - Bash overuse → suggest Read/Grep instead * - High loop rate → review prompts / agent instructions * - Low cache ratio → context changes too much between messages * - High cache ratio → positive: great cost efficiency * - High avg cost → consider Haiku for simpler tasks * - Low efficiency → linked to loops * - Write vs Edit → suggest Edit for incremental changes */ export type InsightLevel = 'tip' | 'warning' | 'positive'; export interface PatternInsight { level: InsightLevel; title: string; description: string; metric?: string; } export interface ToolCount { tool_name: string; count: number; } export interface SessionStats { session_count: number; avg_cache_read: number; avg_total_input: number; avg_loops: number; avg_cost_usd: number; avg_efficiency: number; } export interface RecentExtremes { heavy_loop_sessions: number; recent_sessions: number; max_session_cost: number; } export interface SourceStat { avg_efficiency: number | null; avg_loops: number; total_cost_usd: number; session_count: number; } export declare function analyzePatterns(toolCounts: ToolCount[], stats: SessionStats, recentExtremes?: RecentExtremes, sourceStats?: Record): PatternInsight[];