import type { Task } from "../../../task-list/dist/index.js"; import type { ResolvedConfig } from "../config/schema.js"; import type { AttemptEvent, AttemptOutcome, AttemptReconcileResult } from "../agent/runner.js"; export interface WorkflowDriverContext { task: Task; attempt: number | null; workspaceDir: string; planPath: string | null; cfg: ResolvedConfig; abort: AbortSignal; emit: (event: AttemptEvent) => void; spawn: typeof import("../../../agent-spawn/dist/index.js").spawn; taskPromptTemplate?: string; refreshTask?: (qualifiedId: string) => Promise; reconcile?: (ctx: { task: Task; attempt: number | null; cfg: ResolvedConfig; }) => Promise; logger: { warn(msg: string, meta?: Record): void; }; } export interface WorkflowDriver { readonly kind: string; run(ctx: WorkflowDriverContext): Promise; }