/** * Adversarial + drift verify gate (ADR-176 phase 4). * * Produces the two verdicts accept() consumes beyond held-out benchmarking: * - redblue: an adversarial red-team pass (@metaharness/redblue, mock-judge/$0 * by default, loopback-only, cost-capped), * - drift: distance from the current champion (@metaharness/drift_from_history). * * FAIL-CLOSED: if the adversarial verifier is unavailable (metaharness is an * optional dependency — ADR-150), redblue is SKIPPED, and since accept() requires * redblue === 'PASS', a candidate CANNOT be promoted without real adversarial * evidence. The loop then safely degrades to "observe + benchmark, don't * promote" and the current signed champion stands. Runners are injectable so the * orchestrator supplies the real metaharness bridge; defaults degrade. $0. */ export type RedblueVerdict = 'PASS' | 'FAIL' | 'SKIPPED'; export type RedblueRunner = () => Promise; /** Returns the drift distance from the champion (>=0), or a negative value = unavailable. */ export type DriftRunner = () => Promise; export interface VerifyResult { redblue: RedblueVerdict; drift: number; driftThreshold: number; driftVerdict: 'ok' | 'regressed' | 'skipped'; adversarialPass: boolean; } export interface VerifyOptions { redblue?: RedblueRunner; drift?: DriftRunner; driftThreshold?: number; } export declare function runVerify(opts?: VerifyOptions): Promise; //# sourceMappingURL=harness-verify.d.ts.map