import { type HarnessProtectionCheck, type HarnessProtectionPlan } from './harness-protection.js'; import type { CaseResult } from './types.js'; /** A host-owned outcome, with enough identity to check pairing and cite its trace. */ export interface HarnessTrial { taskId: string; trial: number; /** Environment/seed/model/limits fingerprint. Equal within a pair, fresh in confirmation. */ conditions: string; trajectoryId: string; result: CaseResult; } export interface HarnessAttribution { taskId: string; effect: 'improvement' | 'regression' | 'unresolved'; reason: string; baselineTrajectories: readonly string[]; candidateTrajectories: readonly string[]; } export interface HarnessVerificationBatch { baselineRevision: string; candidateRevision: string; baseline: readonly HarnessTrial[]; candidate: readonly HarnessTrial[]; /** Supplied by an independent trace reviewer, never inferred from scores alone. */ attributions: readonly HarnessAttribution[]; } export type HarnessBehaviorStatus = 'recovered' | 'stable-success' | 'regressed' | 'still-failing' | 'mixed' | 'inconclusive'; export interface HarnessTaskComparison { taskId: string; status: HarnessBehaviorStatus; baselinePasses: number; candidatePasses: number; trials: number; } export interface HarnessComparison { tasks: readonly HarnessTaskComparison[]; /** Paired trial pass-rate difference, not held-out pass@1 or causal evidence. */ passRateDelta: number | null; positiveEvidence: readonly string[]; regressions: readonly string[]; unresolved: readonly string[]; /** Actual recorded consumption from BOTH sides, including unsuccessful runs. */ usage: { rollouts: number; tokens: number; costUsd: number; durationMs: number; }; } /** HarnessLens Table 6 comparison plus explicit, trace-linked attribution. No model calls. */ export declare function compareHarnessTrials(batch: HarnessVerificationBatch): HarnessComparison; export interface HarnessReview { decision: 'accept' | 'reject' | 'inconclusive'; reason: string; verification: HarnessComparison; confirmation?: HarnessComparison; protection?: { verification: HarnessProtectionCheck; confirmation?: HarnessProtectionCheck; }; } /** * Evaluate recorded evidence; never applies a patch. Requires at least five tasks, * exactly two trials per task, and a same-size confirmation with at most two reused tasks. * Hosts own isolated execution, task selection, scoring and independent trace review. */ export declare function reviewHarnessCandidate(verification: HarnessVerificationBatch, confirmation?: HarnessVerificationBatch, protection?: HarnessProtectionPlan): HarnessReview; //# sourceMappingURL=harness-verification.d.ts.map