import type { AgencyConfig } from "../../config/config.js"; import type { EvalInputRunner } from "../../eval/run/subprocess.js"; import type { SuiteRunResult, Test } from "../../eval/runTypes.js"; import type { SuiteIdentity } from "../../runDirectory/annotations.js"; export type EvalRunCliOptions = { /** File agent target. Exactly one of agent / agentCmd. */ agent?: string; /** Command agent target: the command string with a {input} placeholder. */ agentCmd?: string; /** The test suite: a JSON file, a directory, or a git source. */ suite?: string; /** One inline test with this input text; no suite file needed. */ input?: string; /** Directory to write the run directories into, one per test at `//` * (default `/-`). */ out?: string; config?: AgencyConfig; /** Worker-pool size (-n/--parallel); default 1 = sequential. */ parallel?: number; /** `--test` id patterns; only matching tests run (suite runs only). */ test?: string[]; /** `--tags` values; only tests carrying every one run (suite runs only). */ tags?: string[]; /** `--trials`: run every selected test this many times (default 1). */ trials?: number; }; /** `--suite` runs a suite; otherwise the run is one inline test, with * `--input`'s text or (for an agent that takes no argument) no input. */ export declare function validateInputSelection(opts: { suite?: string; input?: string; }): "suite" | "input"; /** * The `agency eval run` command: load the suite, run it, write the run * directory. It never grades — `agency eval grade ` does that, whenever * you like, and no `goal` is needed to run. */ export declare function evalRun(opts: EvalRunCliOptions, /** Test seam — the CLI has no flag for it. */ deps?: { runner?: EvalInputRunner; }): Promise; export type LoadedSuite = { tests: Test[]; identity: SuiteIdentity; }; /** Load the suite named by --suite/--input, resolving a git source when given * one and recording the resolved sha as the suite's identity. Running never * needs a `goal`, so none is required here; `eval grade` takes one (`--goal`) * or reads each test's own when its judge needs it. Exported for `eval ls`, * which must see the suite exactly as a run would. */ export declare function loadSuite(args: { selection: "suite" | "input"; source?: string; input?: string; cacheRoot?: string; }): LoadedSuite;