import { Effect, Stream } from "effect"; import { AiError, LanguageModel, Response, Tool } from "effect/unstable/ai"; import { type InvalidToolCallParameters } from "./model-tool-call-validation.js"; import type { EventPayload, ModelFailureCategory } from "./model-telemetry.js"; export type StreamTextOptions = LanguageModel.GenerateTextOptions>; export type StreamTextPart = Response.StreamPart>; export interface Context { readonly modelCallId: string; readonly turn: number; readonly correctionLimit: number; readonly attempt: () => number; readonly categorize: (error: unknown) => ModelFailureCategory; readonly emit: (event: EventPayload) => Effect.Effect; readonly settleFailure: Effect.Effect; } export declare const correct: (input: { readonly context: Context; readonly model: LanguageModel.Service; readonly options: StreamTextOptions; }) => Stream.Stream;