/** * Learning Effectiveness Metrics (LI-003) * * Tracks and computes learning effectiveness metrics from the learning system. * These metrics help assess how well the learning system is performing. * * Key metrics: * - Pattern hit rate: How often discovered patterns are used successfully * - Confidence accuracy: How well predicted confidence matches actual success * - Tier optimization savings: Time and cost saved by tier selection * - Skill reuse rate: How often learned skills are reused */ import type { LearningEngine } from './learning-engine.js'; import type { TieredFetcher } from './tiered-fetcher.js'; import type { ProceduralMemory } from './procedural-memory.js'; /** * Pattern effectiveness metrics */ export interface PatternEffectiveness { /** Total API patterns discovered */ totalDiscovered: number; /** Patterns that have been used at least once */ patternsUsed: number; /** Pattern hit rate (patternsUsed / totalDiscovered) */ hitRate: number; /** Patterns marked as high-confidence that actually work */ highConfidenceSuccessRate: number; /** Patterns that can bypass browser rendering */ bypassablePatterns: number; /** Breakdown by confidence level */ byConfidence: { high: { count: number; successRate: number; }; medium: { count: number; successRate: number; }; low: { count: number; successRate: number; }; }; /** Average verification count per pattern */ avgVerificationCount: number; /** Patterns with recent failures */ recentlyFailedPatterns: number; } /** * Confidence accuracy metrics */ export interface ConfidenceAccuracy { /** Overall accuracy of confidence predictions */ overallAccuracy: number; /** High confidence patterns that actually succeed */ highConfidenceAccuracy: number; /** Medium confidence patterns that actually succeed */ mediumConfidenceAccuracy: number; /** Low confidence patterns that actually succeed */ lowConfidenceAccuracy: number; /** Average predicted confidence (0-1 scale) */ avgPredictedConfidence: number; /** Average actual success rate (0-1 scale) */ avgActualSuccessRate: number; /** Confidence gap (predicted - actual) */ confidenceGap: number; /** Patterns that are over-confident (predicted > actual) */ overConfidentPatterns: number; /** Patterns that are under-confident (predicted < actual) */ underConfidentPatterns: number; } /** * Tier optimization metrics */ export interface TierOptimization { /** How often the first tier choice is correct */ firstTierSuccessRate: number; /** Average tiers attempted before success */ avgTiersAttempted: number; /** Time saved by using intelligence tier vs playwright */ timeSavedMs: number; /** Estimated time if all requests used playwright */ estimatedPlaywrightTimeMs: number; /** Actual time with tier optimization */ actualTimeMs: number; /** Optimization ratio (1 - actual/estimated) */ optimizationRatio: number; /** Tier usage distribution */ tierDistribution: { intelligence: { count: number; avgTimeMs: number; }; lightweight: { count: number; avgTimeMs: number; }; playwright: { count: number; avgTimeMs: number; }; }; /** Domains with optimal tier preference */ domainsWithPreference: number; } /** * Skill effectiveness metrics */ export interface SkillEffectiveness { /** Total skills learned */ totalSkills: number; /** Skills that have been reused at least once */ reusedSkills: number; /** Skill reuse rate (reusedSkills / totalSkills) */ reuseRate: number; /** Average skill success rate */ avgSuccessRate: number; /** Total skill executions */ totalExecutions: number; /** Skills with high success rate (>80%) */ highPerformingSkills: number; /** Anti-patterns learned */ antiPatterns: number; /** Estimated failures prevented by anti-patterns */ failuresPreventedEstimate: number; /** Average skill execution time */ avgExecutionTimeMs: number; } /** * Selector learning metrics */ export interface SelectorEffectiveness { /** Total selectors learned */ totalSelectors: number; /** Selectors with high priority (working well) */ highPrioritySelectors: number; /** Average selector success rate */ avgSuccessRate: number; /** Selectors that have failed recently */ recentlyFailedSelectors: number; /** Average fallback chain length */ avgFallbackChainLength: number; } /** * Domain coverage metrics */ export interface DomainCoverage { /** Total domains visited */ totalDomains: number; /** Domains with learned patterns */ domainsWithPatterns: number; /** Domains with learned selectors */ domainsWithSelectors: number; /** Domains with skills */ domainsWithSkills: number; /** Domains with high success rate (>80%) */ highSuccessDomains: number; /** Average success rate across domains */ avgDomainSuccessRate: number; /** Domain groups established */ domainGroups: number; /** Domains benefiting from cross-domain transfer */ crossDomainBeneficiaries: number; } /** * Learning trend over time */ export interface LearningTrend { /** Time window for trend calculation (ms) */ windowMs: number; /** Recent learning events count */ recentEvents: number; /** New patterns in window */ newPatterns: number; /** New skills in window */ newSkills: number; /** Verification events in window */ verifications: number; /** Failures in window */ failures: number; /** Learning velocity (events per hour) */ eventsPerHour: number; } /** * Complete learning effectiveness report */ export interface LearningEffectivenessReport { /** When the report was generated */ generatedAt: number; /** Pattern effectiveness metrics */ patterns: PatternEffectiveness; /** Confidence accuracy metrics */ confidence: ConfidenceAccuracy; /** Tier optimization metrics */ tiers: TierOptimization; /** Skill effectiveness metrics */ skills: SkillEffectiveness; /** Selector learning metrics */ selectors: SelectorEffectiveness; /** Domain coverage metrics */ domains: DomainCoverage; /** Learning trend over last 24 hours */ trend24h: LearningTrend; /** Overall health score (0-100) */ healthScore: number; /** Key insights and recommendations */ insights: string[]; } /** * Compute learning effectiveness metrics from learning components. * * @param learningEngine The learning engine instance * @param tieredFetcher Optional tiered fetcher for tier metrics * @param proceduralMemory Optional procedural memory for skill metrics * @returns Complete learning effectiveness report */ export declare function computeLearningEffectiveness(learningEngine: LearningEngine, tieredFetcher?: TieredFetcher, proceduralMemory?: ProceduralMemory): Promise; //# sourceMappingURL=learning-effectiveness.d.ts.map