import type { ArtifactBundle } from "../io/artifacts.js"; import type { ExecutorRunResult } from "./executorResult.js"; import type { AdvanceAuditOptions } from "./advanceTypes.js"; import { RunLogger } from "audit-tools/shared"; /** * Per-dispatch execution context threaded to every executor runner. Carries the * advance options (root, line/size indexes, incoming host results, analyzer * policy, …) plus the run logger + correlation id so a runner that emits its own * structured events (planning's scope event) can do so. The engine stays agnostic; * audit-code picks its own `Ctx` shape (cf. remediate-code's `RemediateCtx`). */ export interface AuditExecutorCtx { options: AdvanceAuditOptions; log: RunLogger; correlationId: string; obligation: string | null; } /** A single audit executor: bundle + ctx → the uniform run result. */ export type AuditExecutorRunner = (bundle: ArtifactBundle, ctx: AuditExecutorCtx) => Promise; /** * Executor-id → runner. The single source of dispatch (A3 step 4 slice 2a): * `advanceAudit`'s scan path and its `preferredExecutor` forced path both dispatch * through this map, replacing the hand `switch` and the registry⇄switch sync * invariant. Each runner co-locates the per-executor argument adaptation the * switch arm used to do. Slice 2b reuses these same runners inside the obligation * `execute` closures that drive the `advance` fold. * * Executors absent here are host-delegation points (including * `semantic_review_executor`): routed through the host before reaching * `advanceAudit`, they produce a no-progress handoff (the "no runner" branch) * rather than a deterministic run. */ export declare const EXECUTOR_RUNNERS: Record; //# sourceMappingURL=executorRunners.d.ts.map