export interface BenchTask { id: string; input: unknown; expected: unknown; weight?: number; } export interface HarnessBenchmarkCorpus { version: string; corpusHash: string; tasks: BenchTask[]; } /** Run a candidate policy on a task's input, producing an output. */ export type EvalFn = (input: unknown, candidate: C) => unknown; /** Grade an output against expected → [0,1]. */ export type GradeFn = (output: unknown, expected: unknown) => number; /** Content hash of a corpus's tasks — the tamper-evident pin for the held-out set. */ export declare function hashCorpus(tasks: BenchTask[]): string; /** Verify a corpus's declared hash matches its tasks (integrity of the benchmark). */ export declare function verifyCorpus(corpus: HarnessBenchmarkCorpus): boolean; export interface ScoreResult { fitness: number; passRate: number; n: number; } /** Score a candidate over a task set, on isolated tasks (no shared state). */ export declare function scoreOnTasks(tasks: BenchTask[], candidate: C, evalFn: EvalFn, gradeFn: GradeFn): ScoreResult; export interface HeldOutSplit { train: BenchTask[]; heldOut: BenchTask[]; } /** * Deterministic held-out split. Tasks are stably ordered by id, and the last * `holdoutFrac` become the held-out set — disjoint from train, reproducible * (so two runs converge, per the ADR-176 acceptance test). */ export declare function computeHeldOutSplit(tasks: BenchTask[], holdoutFrac?: number): HeldOutSplit; /** Independently-measured verdicts fed to accept(). Each comes from a different mechanism. */ export interface PromotionVerdict { heldOutScore: number; baselineHeldOutScore: number; redblue: 'PASS' | 'FAIL' | 'SKIPPED'; drift: number; driftThreshold: number; replayDeterministic: boolean; receiptCoverage: number; canaryRollbackRate: number; baselineRollbackRate: number; } export interface AcceptResult { accept: boolean; terms: Record; failed: string[]; } /** * accept(candidate) ⟺ * held_out_score > baseline * AND redblue == PASS * AND drift <= threshold * AND replay == deterministic * AND receipt_cov == 100% * AND canary.rollback_rate <= baseline * Every term is externally measurable; ANY failure → reject. */ export declare function accept(v: PromotionVerdict): AcceptResult; //# sourceMappingURL=harness-benchmark.d.ts.map