import { Schema } from "effect"; import { Prompt } from "effect/unstable/ai"; import { AgentSuspended } from "./agent-event.js"; import type { AnyToolCall, PendingToolResult } from "./agent-tool-result.js"; import type { Request } from "../tools/tool-executor.js"; import type { ResumeResolution } from "./agent.js"; export interface SuspensionCheckpoint { readonly call: Prompt.ToolCallPart; readonly messages: ReadonlyArray; readonly suspension: AgentSuspended; readonly unresolvedToolCallIndexes: ReadonlyArray; } export declare const suspensionCheckpointOption: "@batonfx/core/suspension"; type UnresolvedToolCallResult = { readonly call: Prompt.ToolCallPart; readonly messages: ReadonlyArray; readonly messageIndex: number; readonly partIndex: number; readonly toolCallBatch: ReadonlyArray; readonly unresolvedToolCallIndexes: ReadonlyArray; }; export declare const suspensionMetadata: Schema.Struct<{ readonly token: Schema.String; readonly reason: Schema.Literals; readonly tool_call_index: Schema.optional; readonly tool_call_batch_ids: Schema.$Array; readonly active_tools: Schema.optional>; readonly activated_skills: Schema.optional>; readonly invocation_path: Schema.optional>; }>; export declare const canonicalSuspensionCall: (call: Pick) => AnyToolCall; export declare const unresolvedToolCall: { (toolCallId?: string): (messages: ReadonlyArray) => UnresolvedToolCallResult | undefined; (messages: ReadonlyArray, toolCallId?: string): UnresolvedToolCallResult | undefined; }; export declare const suspensionCheckpoint: (messages: ReadonlyArray) => SuspensionCheckpoint | undefined; export declare const sameSuspension: { (right: AgentSuspended): (left: AgentSuspended) => boolean; (left: AgentSuspended, right: AgentSuspended): boolean; }; export declare const resolvedToolResult: { (resolution: Exclude): (call: AnyToolCall) => PendingToolResult; (call: AnyToolCall, resolution: Exclude): PendingToolResult; }; export declare const suspended: { (toolCallBatch: Request["toolCallBatch"], toolCallIndex: number, token: string, reason: "tool-wait" | "approval", options?: { readonly active_tools?: ReadonlyArray; readonly activated_skills?: ReadonlyArray; readonly invocation_path?: ReadonlyArray; }): (call: AnyToolCall) => AgentSuspended; (call: AnyToolCall, toolCallBatch: Request["toolCallBatch"], toolCallIndex: number, token: string, reason: "tool-wait" | "approval", options?: { readonly active_tools?: ReadonlyArray; readonly activated_skills?: ReadonlyArray; readonly invocation_path?: ReadonlyArray; }): AgentSuspended; }; export {};