/** * Spec executor - runs a single spec */ import type { Spec, Adapter } from "../types.js"; import { OutputBuffer } from "./output-buffer.js"; import type { ContextResolver } from "../context/resolver.js"; export interface ExecutorCallbacks { onOutput?: (specId: string, line: string) => void; onStatusChange?: (specId: string, status: Spec["status"]) => void; onActivity?: (specId: string, activity: string) => void; /** Max execution time in milliseconds */ timeout?: number; } export interface ExecutorResult { success: boolean; specId: string; error?: string; } export interface SpecExecutor { spec: Spec; currentActivity: string; outputBuffer: OutputBuffer; start(): Promise; stop(): void; isRunning(): boolean; wait(): Promise; } export declare function createSpecExecutor(repoRoot: string, baseBranch: string, spec: Spec, adapter: Adapter, callbacks?: ExecutorCallbacks, contextResolver?: ContextResolver): SpecExecutor; //# sourceMappingURL=executor.d.ts.map