/** * [WHO]: buildMcpCapabilitiesHint(), MCP_CAPABILITIES_CUSTOM_TYPE * [FROM]: Depends on ToolDefinition (type-only). * [TO]: Consumed by core/runtime/agent-session.ts:warmupMcpTools to inject a * one-shot system hint message into the session after MCP tools are * loaded. * [HERE]: core/mcp/mcp-capabilities-hint.ts - render the MCP capabilities * summary that gets persisted into the session as a CustomMessage so * the LLM sees it at the start of every subsequent turn. * * The hint is intentionally distinct from the system prompt's "MCP Tools * Awareness" paragraph (added in system-prompt-mcp-section). The system * prompt version is fixed at session start; this hint is appended at the * moment MCP becomes ready, so if the user starts chatting before MCP * finishes loading they still get the signal in the very next turn rather * than waiting until the next system-prompt rebuild. */ import type { ToolDefinition } from "../extensions-host/index.js"; /** * Stable custom type used for the one-shot MCP capabilities hint CustomMessage. * Picked to be unique enough not to collide with other extension types * ("mcp.capabilities" is namespaced). */ export declare const MCP_CAPABILITIES_CUSTOM_TYPE = "mcp.capabilities"; /** * Render the MCP capabilities hint body. The output is a short markdown-ish * paragraph intended to be persisted as a CustomMessage (role: "custom", * customType: MCP_CAPABILITIES_CUSTOM_TYPE). `convertToLlm` will turn it * into a user-role message that the LLM sees at the top of its context. * * Input tools may be the full ToolDefinition[]; we only need the name and * description (description already includes scenario phrases thanks to * mcp-tool-description-scenaric + mcp-tool-schema-aware-description). */ export declare function buildMcpCapabilitiesHint(tools: readonly ToolDefinition[]): string;