/** * [WHO]: extractAgentResult, truncateResult — result extraction and truncation per CC §11.2 (VS8) * [FROM]: Depends on @catui/agent-core for AgentMessage, ./agent-definition for MAX_RESULT_SIZE_CHARS * [TO]: Consumed by ./agent-tool * [HERE]: core/sub-agent/agent-result-extractor.ts - Sub-agent result extraction */ import type { AgentMessage } from "@catui/agent-core"; import type { AgentOutputCompleted, AgentSpawnMetadata, AgentUsage } from "./agent-input-output.js"; /** * Extract the result from a completed sub-agent run. * Matches CC's VS8 function exactly. * * Per CC §11.2: * 1. Find the last assistant message * 2. Extract text content from it * 3. If last message has no text, search backwards for one that does * 4. Calculate totals (tokens, tool use count, duration) * 5. Truncate at maxResultSizeChars (100,000) */ export declare function extractAgentResult(messages: AgentMessage[], agentId: string, metadata: AgentSpawnMetadata): AgentOutputCompleted; /** * Truncate result content to maxResultSizeChars. * Per CC §VI step 14: maxResultSizeChars = 100,000 (1e5). */ export declare function truncateResult(result: AgentOutputCompleted, maxChars?: number): AgentOutputCompleted; export declare function calculateTotalTokens(messages: AgentMessage[]): number; export declare function calculateTotalToolUseCount(messages: AgentMessage[]): number; export declare function calculateUsage(messages: AgentMessage[]): AgentUsage;