/** * ToolSearch — deferred tool loading. * * Instead of sending all tool definitions every turn (~6k tokens), * send only the 10 most-used eagerly. The rest are "deferred" — * name + one-line description only. When the LLM needs one, it calls * ToolSearch to get the full schema, then can call the tool on that turn. * * Supports two query modes: * - "select:tool1,tool2" — exact name lookup, returns full schemas * - "keyword search" — fuzzy match on name + description */ import type { ToolDefinition } from '../provider.js'; import type { Tool } from './index.js'; export interface DeferredToolEntry { name: string; description: string; definition: ToolDefinition; } /** Register tools that are available via ToolSearch (deferred tools). */ export declare function setDeferredRegistry(entries: DeferredToolEntry[]): void; /** Get the current deferred registry (for introspection). */ export declare function getDeferredRegistry(): DeferredToolEntry[]; /** * Build the deferred tool list string for the system prompt. * Each entry is just name + description — no schema. */ export declare function buildDeferredToolList(): string; export declare const toolSearchTool: Tool; //# sourceMappingURL=tool-search.d.ts.map