/** * Carrying an engine session from one workflow attempt to the next. * * Every attempt gets its own Jinn session row — the workflow bookkeeping is * keyed on that one-to-one mapping — and a fresh row resumes nothing, so a * rework round re-derives all the context its predecessor already holds. * Seeding the new row with the previous attempt's engine session ref before its * first turn makes the ordinary resume path in `preflightTurn` fire instead. */ import type { Session, WorkflowAttemptContinuation } from "../shared/types.js"; /** * The engine thread `sessionId` still holds and a new session could pick up, or * null. Null covers every reason a candidate is unusable: the session is gone, * it ran on a different engine, it never recorded a thread, or — for codex — * its rollout has been swept and there is nothing left to copy forward. */ export declare function resumableEngineSession(sessionId: string, engine: string): string | null; /** * Seed a freshly created attempt session with the engine session it continues. * A no-op once the session already carries a ref for that engine, so replaying * a dispatch after a crash never rewinds a turn that has since run. * * Failure is not fatal: the attempt dispatches cold, which is exactly what it * would have done before, and the reason is logged. */ export declare function continueWorkflowAttemptSession(session: Session, continueFrom: WorkflowAttemptContinuation | undefined): Session; //# sourceMappingURL=attempt-continuation.d.ts.map