import type { RunOutput, RunResult, Logger } from "../types/output.js"; import type { AxisConfig } from "../types/config.js"; export type { RunOutput, RunResult }; export interface RunOptions { configPath?: string; scenarioFilter?: string[]; agentFilter?: string[]; logger?: Logger; /** * Maximum number of jobs to run in parallel. * Defaults to 15. */ concurrency?: number; /** * Called when an individual job completes (before all jobs finish). * If a Promise is returned, the runner awaits it before running * teardown — this allows scoring to verify results before cleanup. */ onResult?: (result: RunResult) => void | Promise; /** * Register a cleanup function that will be called on process signals * (SIGINT/SIGTERM). The runner uses this to register workspace cleanup * and child process termination so Ctrl-C doesn't leave orphans. */ registerCleanup?: (fn: () => void) => void; /** * When true, adapters capture raw stdout lines in the output. * Used by --debug mode to write .raw.ndjson files alongside reports. */ debug?: boolean; /** Force re-clone of remote skills from cache. */ refreshSkills?: boolean; /** * Report directory root. When provided and the scenario configures `artifacts` * patterns, captured files are copied to * `{reportDir}/scenarios/{scenarioKey}/{agentName}/artifacts/...` after teardown. */ reportDir?: string; /** * Explicit allowlist of scenario/agent pairs. When set, only jobs whose * (scenarioKey, agentName) appears in this list survive discovery — applied * AFTER `scenarioFilter` and `agentFilter`. Pairs not currently configured * (scenario removed, agent removed) are silently dropped. */ jobFilter?: Array<{ scenarioKey: string; agentName: string; }>; /** * External cancel signal (e.g. Ctrl-C). When aborted, in-flight jobs receive * SIGTERM and pending jobs are marked as failed so the report still finalizes. */ signal?: AbortSignal; } export declare function run(options?: RunOptions): Promise; export declare function buildJobEnv(config: AxisConfig): Record; //# sourceMappingURL=runner.d.ts.map