/** * Capture Agent — Benchmark Harness * * Runs the same preset repeatedly, comparing: * - Total LLM cost * - Total wall-clock time * - Success rate * - Recovery rate (how often healing was needed) * * Useful for tracking determinism, recovery rate, and runtime cost over time. */ import type { ExecutionProgram, RunResult } from './execution-types.js'; export interface BenchmarkPreset { name: string; presetId: string; program: ExecutionProgram; /** Expected behavior description for manual verification */ expectedBehavior: string; /** Difficulty tier */ tier: 'simple' | 'multi_step' | 'auth_required' | 'clip' | 'video'; } export interface BenchmarkRunResult { presetName: string; tier: string; success: boolean; totalDurationMs: number; llmCostEur: number; llmCallCount: number; totalOpcodes: number; recoveredOpcodes: number; failedOpcodes: number; healerInvocations: number; circuitBreakerTrips: number; variantCount: number; successfulVariants: number; error?: string; } export interface BenchmarkSummary { totalPresets: number; successCount: number; failCount: number; successRate: number; averageDurationMs: number; averageLlmCostEur: number; totalLlmCostEur: number; deterministicRate: number; recoveryRate: number; results: BenchmarkRunResult[]; byTier: Record; } export type RunFn = (program: ExecutionProgram) => Promise; export declare function runBenchmark(presets: BenchmarkPreset[], runCapture: RunFn, options?: { runs?: number; }): Promise; export declare function formatBenchmarkSummary(summary: BenchmarkSummary): string;