/** * Which completed attempt an Employee node continues from, if any. * * A rework round is its own node, so it dispatches a brand new session that * re-reads everything its predecessor already knows. `continueFrom` names the * node whose engine session it should pick up instead. Two places to look, in * order: this run — the ordinary rework case — then the newest earlier run of * the same Workflow for the same Todo, which is the re-arm case. */ import type { EmployeeNode } from './model.js'; import type { WorkflowRepository } from './repository.js'; import type { WorkflowRunDetail } from './runtime.js'; export interface EmployeeContinuationOptions { repository: Pick; /** Null for any candidate that cannot actually be resumed on `engine`. */ resumableEngineSession: (sessionId: string, engine: string) => string | null; } /** The prompt an attempt is dispatched with: the delta when it continues something, the node's own brief when it starts cold. */ export declare function continuationPrompt(node: EmployeeNode, continued: boolean): string; /** * Resolve the engine session this attempt continues, or null to dispatch cold. * Null is a normal outcome — the first round of a run has nothing to continue — * so it is reported at info level rather than raised. */ export declare function resolveEmployeeContinuation(run: WorkflowRunDetail, node: EmployeeNode, engine: string, options: EmployeeContinuationOptions): { sessionId: string; engineSessionId: string; } | null; //# sourceMappingURL=employee-continuation.d.ts.map