/** * Structured-adaptive streaming tool executor. * Starts complete streamed tool calls before the assistant response finishes, * while preserving ordered tool_result emission for the next model turn. */ /** * [WHO]: StructuredAdaptiveStreamingToolExecutor * [FROM]: Depends on @catui/ai, ./types, ./structured-adaptive-tool-orchestration * [TO]: Consumed by ./structured-adaptive-agent-loop.ts * [HERE]: core/lib/agent-core/src/structured-adaptive-streaming-tool-executor.ts - streaming tool scheduling for weak-model-compatible loop */ import { EventStream } from "@catui/ai/events"; import type { AgentEvent, AgentLoopConfig, AgentMessage, AgentTool } from "./types.js"; import { type StructuredAdaptiveToolCall, type StructuredAdaptiveToolRunResult } from "./structured-adaptive-tool-orchestration.js"; export declare class StructuredAdaptiveStreamingToolExecutor { private readonly stream; private readonly canUseTool?; private readonly toolByName; private readonly records; private readonly maxConcurrency; private discardedReason; private parentAborted; private parentAbortReason; constructor(tools: AgentTool[] | undefined, signal: AbortSignal | undefined, stream: EventStream, maxConcurrency: number, canUseTool?: AgentLoopConfig["canUseTool"]); get size(): number; addTool(toolCall: StructuredAdaptiveToolCall): void; drain(): Promise; discardAndDrain(reason: string, abortMode?: "all" | "cancel"): Promise; private processQueue; private canStart; private start; private completeWithSyntheticError; }