/** * `dryRunFlow`: `runFlow` itself, with every agent turn, every check, every * commit and every question answered by a script. * * The same walk, the same `spawn`, the same events. Only the session under * each subagent and the `check` port are scripted, so a typed answer goes * through the real `submit` tool, a verdict through the real `verdict` tool * and its ledger, and a failure takes its real path, retries and `fail-fast` * included. Nothing of the world is touched: it takes a `CheckedFlow`, no * working directory is given, no script is read, no model is reached and git * is never run. `diff` reads as an empty text, since no agent wrote anything, * and a `copies: true` block makes no copy: each of its branches reads as * landed, and its copy is a journal fact alone. Given `from`, it resumes that * journal through the same `resumePoint` a real resume takes. */ import type { Usage } from "../../usage.ts"; import type { CheckedFlow } from "../checked.ts"; import { type AnswerFault, type Answers } from "./answers.ts"; import { type FlowResult, type RunFlowOptions } from "./flow.ts"; import type { JournalEntry } from "./journal.ts"; /** What a dry run varies: what a run does, short of reaching the world. */ export type DryRunOptions = Pick & { /** A journal to resume, as `resumeFlow` resumes a run directory's: its facts come first in the one handed back. */ readonly from?: readonly JournalEntry[]; }; /** * How a dry run ended: as the flow did, or at the first visit its script did * not answer, which is no outcome of the flow's; or refused before the start, * with every fault of the script, or a journal `from` a resume would refuse, * with why. The journal holds every fact a run would * write, in order, the run's end last. Its tokens and cost are zero, since a * script spends nothing; the time is measured, like any run's. */ export type DryRun = (FlowResult & { readonly journal: readonly JournalEntry[]; }) | { readonly ok: false; readonly unscripted: string; readonly journal: readonly JournalEntry[]; readonly usage: Usage; } | { readonly ok: false; readonly faults: readonly AnswerFault[]; } | { readonly ok: false; readonly refused: string; }; /** Runs `checked` on `input`, each agent turn, check, commit and question answered from `answers`. */ export declare function dryRunFlow(checked: CheckedFlow, input: unknown, answers: Answers, options?: DryRunOptions): Promise; //# sourceMappingURL=dry-run.d.ts.map