/** * Structured-adaptive tool orchestration for the selectable structured loop. * Batches concurrency-safe tools, keeps stateful tools serial, and returns * ordered tool_result messages matching assistant tool_use order. */ /** * [WHO]: runStructuredAdaptiveTools, partitionStructuredAdaptiveToolCalls, StructuredAdaptiveToolCall * [FROM]: Depends on @catui/ai, ./types, ./errors * [TO]: Consumed by ./structured-adaptive-agent-loop.ts and agent-core tests * [HERE]: core/lib/agent-core/src/structured-adaptive-tool-orchestration.ts - tool batching/execution layer for structured-adaptive loop */ import { type AssistantMessage, type ToolResultMessage } from "@catui/ai/types"; import { EventStream } from "@catui/ai/events"; import type { AgentEvent, AgentLoopConfig, AgentMessage, AgentTool, AgentToolPermissionDenial } from "./types.js"; export type StructuredAdaptiveToolCall = Extract; export interface StructuredAdaptiveToolRunResult { toolResults: ToolResultMessage[]; contextMessages: AgentMessage[]; steeringMessages?: AgentMessage[]; permissionDenials: AgentToolPermissionDenial[]; } interface StructuredAdaptiveToolUseResult { toolResult: ToolResultMessage; contextMessages: AgentMessage[]; } export declare function runStructuredAdaptiveTools(toolCalls: StructuredAdaptiveToolCall[], tools: AgentTool[] | undefined, signal: AbortSignal | undefined, stream: EventStream, getSteeringMessages?: AgentLoopConfig["getSteeringMessages"], maxConcurrency?: number, canUseTool?: AgentLoopConfig["canUseTool"]): Promise; export declare function resolveMaxToolConcurrency(maxConcurrency: number | undefined): number; export declare function buildToolMap(tools: AgentTool[] | undefined): Map>; export declare function partitionStructuredAdaptiveToolCalls(toolCalls: StructuredAdaptiveToolCall[], toolByName: Map>): StructuredAdaptiveToolCall[][]; export declare function isStructuredAdaptiveToolCallConcurrencySafe(toolCall: StructuredAdaptiveToolCall, tool: AgentTool | undefined): boolean; export declare function resolveStructuredAdaptiveToolInterruptBehavior(toolCall: StructuredAdaptiveToolCall, tool: AgentTool | undefined): "cancel" | "block"; export declare function runStructuredAdaptiveToolUse(toolCall: StructuredAdaptiveToolCall, tool: AgentTool | undefined, signal: AbortSignal | undefined, stream: EventStream, canUseTool?: AgentLoopConfig["canUseTool"]): Promise; export {};