/** * Replay adapters (DES-DEFAULT-EVALS-001 ยง4): the CURRENT classifier, run on a case's input, so synthetic cases can * be scored and real cases can show whether today's behaviour differs from what was recorded. * * Crew can replay only what it can call. The archetype classifier is garden's (`scripts/crew/archetypes_v11.py`, * stdlib-only Python), run as one batch per eval. The floor class, the QE verdict and builder attribution are decided * inside the engine (core) with no replay entry, so they have no adapter here and say so. */ import type { EvalCase, Observed, SuiteId } from './types.js'; export interface ReplayAdapter { suite: SuiteId; /** Answers for the cases it can replay, by case id. A case it could not answer is absent. */ replay(cases: readonly EvalCase[]): Promise>; } export interface ReplaySet { adapters: Partial>; /** Why a suite has no adapter, for the report's notes. */ missing: Partial>; } export type RunPython = (args: string[], stdin: string, timeoutMs: number) => Promise<{ code: number | null; stdout: string; stderr: string; }>; export declare const runPython: RunPython; /** The archetype adapter over a garden root, or `null` when the root has no classifier. */ export declare function archetypeAdapter(gardenRoot: string | null, run?: RunPython): ReplayAdapter | null; export declare const NO_REPLAY: Partial>; export declare function defaultReplaySet(opts: { gardenRoot: string | null; run?: RunPython; }): ReplaySet; //# sourceMappingURL=replay.d.ts.map