export type BenchmarkMode = "baseline" | "devflow"; export type BenchmarkScenarioCategory = "understand" | "modify" | "review"; export interface BenchmarkTask { id: string; type: "bugfix" | "feature" | "review"; desc: string; expectedFiles?: number; expectedEndpoints?: number; expectedComponents?: number; expectedIssues?: number; } export interface TaskResult { taskId: string; baseline: { tokens: number; time: number; correct: boolean; }; experiment: { tokens: number; time: number; correct: boolean; }; delta: { tokenReduction: number; timeSaved: number; accuracy: number; }; } export interface BenchmarkReport { runId: string; timestamp: number; summary: { avgTokenReduction: string; avgTimeSaved: string; avgAccuracyGain: string; avgConfidenceGain: string; }; tasks: TaskResult[]; } export interface ReportMeta { runId: string; timestamp: number; taskCount: number; } export interface BenchmarkScenario { id: string; category: "understand" | "modify" | "review"; desc: string; expectedFiles?: number; expectedEndpoints?: number; expectedComponents?: number; expectedIssues?: number; } export interface BenchmarkRunResult { scenarioId: string; mode: BenchmarkMode; prepTimeMs: number; tokenCount: number; firstPassSuccess: boolean; reworkCount: number; durationMs: number; notes?: string; timestamp: number; } export interface ComparisonResult { timeSavedRate: number; tokenReductionRate: number; firstPassLift: number; reworkReductionRate: number; } export interface BenchmarkComparisonResult { scenarioId: string; baseline: BenchmarkRunResult; devflow: BenchmarkRunResult; comparison: ComparisonResult; } export type BenchmarkMetricName = "tokensUsed" | "filesTouched" | "correctnessScore" | "durationMs"; export interface BenchmarkSuiteTask { id: string; prompt: string; keywords: string[]; expectedFiles: string[]; expectedSymbols?: string[]; scoringDimensions: BenchmarkMetricName[]; sourceAccuracyQuery?: string; } export interface BenchmarkSuite { id: string; name: string; version: string; description: string; tasks: BenchmarkSuiteTask[]; } export interface BenchmarkLegMetrics { mode: BenchmarkMode; tokensUsed: number; filesTouched: string[]; correctnessScore: number; durationMs: number; matchedFiles: string[]; matchedSymbols: string[]; rounds: number; } export interface BenchmarkTaskComparison { taskId: string; prompt: string; baseline: BenchmarkLegMetrics; devflow: BenchmarkLegMetrics; delta: { tokenReductionRate: number; fileReductionRate: number; correctnessLift: number; timeSavedRate: number; }; evaluation?: BenchmarkTaskEvaluation; } export interface BenchmarkGraderResult { graderId: string; kind: 'deterministic' | 'model' | 'human'; status: 'passed' | 'failed' | 'unavailable'; score?: number; threshold?: number; evidence: Array<{ type: string; value: string; }>; reason: string; durationMs: number; receipt: string; } export interface BenchmarkTaskEvaluation { status: 'passed' | 'failed' | 'unavailable'; results: BenchmarkGraderResult[]; blockingFailures: string[]; unavailableRequired: string[]; } export interface BenchmarkAggregateMetrics { avgTokensUsed: number; avgFilesTouched: number; avgCorrectnessScore: number; avgDurationMs: number; } export interface BenchmarkRegression { metric: BenchmarkMetricName; changeRate: number; threshold: number; message: string; } export interface BenchmarkSuiteReport { runId: string; suiteId: string; suiteName: string; suiteVersion: string; projectRoot: string; commit: string | null; createdAt: number; rounds: number; status: "completed"; tasks: BenchmarkTaskComparison[]; summary: { baseline: BenchmarkAggregateMetrics; devflow: BenchmarkAggregateMetrics; delta: { tokenReductionRate: number; fileReductionRate: number; correctnessLift: number; timeSavedRate: number; }; }; regressions: BenchmarkRegression[]; evaluation?: { status: 'passed' | 'failed' | 'unavailable'; passedTasks: number; failedTasks: number; unavailableTasks: number; }; } export interface BenchmarkReportMeta { runId: string; suiteId: string; suiteVersion: string; projectRoot: string; commit: string | null; taskCount: number; createdAt: number; status: "completed"; } //# sourceMappingURL=benchmark.d.ts.map