import type { BoberConfig } from "../../config/schema.js"; import type { PipelineResult } from "../pipeline.js"; import type { PipelineEngine, PipelineEngineName } from "./engine.js"; /** * Pipeline engine that assembles and invokes the Dynamic Workflows runtime. * * Control flow (eligibility FIRST — avoids MissingKnobError on the downgrade path): * 1. if (!isWorkflowEligible(config)) → log once + return tsEngine.run(...) ← NO args built * 2. cursor = reconstruct(...) ← read-only (listContracts + loadHistory) * 3. args = build(...) ← pure; may throw MissingKnobError (acceptable: eligible) * 4. try { result = invoke(args); return flush(result) } * catch WorkflowUnavailableError → log once + return tsEngine.run(...) ← NO partial flush * catch other → rethrow * * invoke() is DORMANT this release — always throws WorkflowUnavailableError. * The eligible path is only reachable in tests that force eligibility=true via * the injection seam (constructor param + vi.mock). */ export declare class WorkflowEngine implements PipelineEngine { private readonly tsEngineFactory; readonly name: PipelineEngineName; /** * Injection seam — tsEngineFactory defaults to () => new TsPipelineEngine(). * Tests inject a fake factory that returns a sentinel PipelineResult without * spawning real LLM agents. */ constructor(tsEngineFactory?: () => PipelineEngine); run(userPrompt: string, projectRoot: string, config: BoberConfig, opts?: { runId?: string; }): Promise; private invoke; } //# sourceMappingURL=workflow-engine.d.ts.map