import { Cause, Effect, Stream } from "effect"; import { Prompt, Tool, Toolkit } from "effect/unstable/ai"; import { CompletedModelOperation, type AttemptCompleted, type AttemptEvent } from "../model/model-operation.js"; import type { RunError } from "./agent.js"; import type { ModelTurnServices } from "./model-turn-context.js"; export type AttemptBody = (activePrompt: Prompt.Prompt, retryOverflow: boolean, compactOverflow?: boolean, overflowCause?: Cause.Cause, operationKey?: string) => Stream.Stream, never>>; export declare const wrapDriverAttempt: (input: { readonly turn: number; readonly toolkit: Toolkit.Toolkit>; readonly attemptBody: AttemptBody; readonly replayMessages: (sessionParentId: string) => Effect.Effect, RunError>; readonly fallbackMessages: (activePrompt: Prompt.Prompt, replayFromHistory: boolean) => Effect.Effect, RunError>; readonly completed: (operation: CompletedModelOperation, attempt: AttemptCompleted) => void; }) => AttemptBody;