/** * What a firing actually does: the steps loop, the goal dispatch through the * named runner map, and the launch that mints a run id synchronously and runs * the automation on the returned promise — with the §9.9 gate in front of both. */ import { type AgentRunners, type AutomationRecord, type Json, type RunId } from "@vendoai/core"; import type { ConsentAccess } from "./consent.js"; import type { EngineBase } from "./engine-context.js"; import type { GrantsAccess } from "./grants.js"; import type { RunRowsAccess } from "./run-rows.js"; import type { SponsorshipGateAccess } from "./sponsorship-gate.js"; import type { FiredSchedule } from "./types.js"; export type RunExecutionDeps = { base: EngineBase; grants: GrantsAccess; runRows: RunRowsAccess; sponsorship: SponsorshipGateAccess; consent: ConsentAccess; runners: AgentRunners; }; export interface RunExecutionAccess { /** Mint the run id synchronously; run the automation on the returned promise. */ launchRun(record: AutomationRecord, event: Json, lineage?: RunId): { runId: RunId; done: Promise; }; /** The same launch, awaited — for the doors that fire one run at a time. */ startRun(record: AutomationRecord, event: Json): Promise; /** Fired schedules, with bounded parallelism and an optional per-run timeout. */ runFiredSchedules(fired: readonly FiredSchedule[]): Promise; } export declare const createRunExecution: (deps: RunExecutionDeps) => RunExecutionAccess; //# sourceMappingURL=run-execution.d.ts.map