/** * Acceptance gate runner — executes typed `AcceptanceGate` items from a * task's `acceptance` array and returns structured `AcceptanceGateResult[]`. * * Supported gate kinds: * - `test` — spawn a command, assert exit code / stdout * - `file` — assert file properties (exists, bytes, content) * - `command` — spawn any CLI, assert exit code / stdout / stderr * - `lint` — run biome/eslint/tsc/prettier/rustc/clippy, assert clean * - `http` — fetch URL, assert status + optional body * - `manual` — always returns `skipped` (requires explicit human verdict) * * Design constraints: * - Each gate is self-contained (no cross-gate state). * - Gates run sequentially unless the caller sets `parallel` options. * - Default timeout is 60 000 ms per gate (overridable via `timeoutMs` * on the gate or the `CLEO_GATE_TIMEOUT_MS` env variable). * * @epic T760 * @task T781 */ import type { AcceptanceGate, AcceptanceGateResult } from '@cleocode/contracts'; /** Options for `runGates`. */ export interface RunGatesOptions { /** Absolute project root; defaults to `getProjectRoot()`. */ projectRoot?: string; /** * When `true`, manual gates are auto-skipped with a note. * When `false` (default), they return `result: 'skipped'` with a prompt notice. */ skipManual?: boolean; } /** * Execute all typed `AcceptanceGate` entries and return results. * * Free-text strings in the acceptance array MUST be filtered by the caller * before invoking this function. Only `AcceptanceGate` objects are accepted. * * @param gates - Typed gate objects (strings pre-filtered by caller). * @param options - Execution options. * @returns Ordered `AcceptanceGateResult[]`, one per gate. * * @epic T760 * @task T781 */ export declare function runGates(gates: AcceptanceGate[], options?: RunGatesOptions): Promise; /** * Filter a mixed acceptance array to only typed `AcceptanceGate` objects. * Free-text strings are silently dropped with their original index preserved * via the `index` field of each result. * * @param items - Mixed `(string | AcceptanceGate)[]` from `task.acceptance`. * @returns Typed gates with their original indices. */ export declare function extractTypedGates(items: (string | AcceptanceGate)[]): Array<{ gate: AcceptanceGate; originalIndex: number; }>; //# sourceMappingURL=gate-runner.d.ts.map