import type { AgentTool } from "@oh-my-pi/pi-agent-core"; export type DiscoverableToolSource = "builtin" | "mcp" | "extension" | "custom"; export interface DiscoverableTool { name: string; label: string; /** Short BM25 corpus entry; falls back to description first 200 chars */ summary: string; source: DiscoverableToolSource; /** MCP only */ serverName?: string; /** MCP only */ mcpToolName?: string; schemaKeys: string[]; } export interface DiscoverableToolServerSummary { name: string; toolCount: number; } export interface DiscoverableToolSummary { servers: DiscoverableToolServerSummary[]; toolCount: number; } export interface DiscoverableToolSearchDocument { tool: DiscoverableTool; termFrequencies: Map; length: number; } export interface DiscoverableToolSearchIndex { documents: DiscoverableToolSearchDocument[]; averageLength: number; documentFrequencies: Map; } export interface DiscoverableToolSearchResult { tool: DiscoverableTool; score: number; } /** @deprecated Use DiscoverableTool with source === "mcp" */ export type DiscoverableMCPTool = Pick & { description: string; }; /** @deprecated Use DiscoverableToolServerSummary */ export type DiscoverableMCPToolServerSummary = DiscoverableToolServerSummary; /** @deprecated Use DiscoverableToolSummary */ export type DiscoverableMCPToolSummary = DiscoverableToolSummary; /** Tool object stored on legacy MCP index documents. Carries both legacy `description` and the * generic `summary`/`source` so the legacy index is structurally assignable to * DiscoverableToolSearchIndex (search functions read termFrequencies, not the tool fields). */ export type DiscoverableMCPSearchTool = DiscoverableTool & { description: string; }; /** @deprecated Use DiscoverableToolSearchDocument */ export interface DiscoverableMCPSearchDocument { tool: DiscoverableMCPSearchTool; termFrequencies: Map; length: number; } /** @deprecated Use DiscoverableToolSearchIndex. * Documents on this index expose `tool.description` (legacy MCP shape) while still being * searchable via `searchDiscoverableTools`. */ export interface DiscoverableMCPSearchIndex { documents: DiscoverableMCPSearchDocument[]; averageLength: number; documentFrequencies: Map; } /** @deprecated Use DiscoverableToolSearchResult */ export interface DiscoverableMCPSearchResult { tool: DiscoverableMCPSearchTool; score: number; } export declare function isMCPToolName(name: string): boolean; /** * Convert a raw AgentTool into a DiscoverableTool generic descriptor. * source: "mcp" if name starts with "mcp__", else "builtin" (caller may override). */ export declare function getDiscoverableTool(tool: AgentTool, overrides?: { source?: DiscoverableToolSource; summary?: string; }): DiscoverableTool | null; /** Collect all DiscoverableTools from a tool iterable. Skips tools that return null. */ export declare function collectDiscoverableTools(tools: Iterable, options?: { source?: DiscoverableToolSource; summaryMap?: Map; }): DiscoverableTool[]; /** Filter discoverable tools by source */ export declare function filterBySource(tools: DiscoverableTool[], source: DiscoverableToolSource): DiscoverableTool[]; export declare function formatDiscoverableToolServerSummary(server: DiscoverableToolServerSummary): string; export declare function selectDiscoverableToolNamesByServer(tools: Iterable, serverNames: ReadonlySet): string[]; export declare function summarizeDiscoverableTools(tools: DiscoverableTool[]): DiscoverableToolSummary; export declare function buildDiscoverableToolSearchIndex(tools: Iterable): DiscoverableToolSearchIndex; export declare function searchDiscoverableTools(index: DiscoverableToolSearchIndex, query: string, limit: number): DiscoverableToolSearchResult[]; /** @deprecated Use getDiscoverableTool */ export declare function getDiscoverableMCPTool(tool: AgentTool): DiscoverableMCPTool | null; /** @deprecated Use collectDiscoverableTools with source filter */ export declare function collectDiscoverableMCPTools(tools: Iterable): DiscoverableMCPTool[]; /** @deprecated Use selectDiscoverableToolNamesByServer */ export declare function selectDiscoverableMCPToolNamesByServer(tools: Iterable, serverNames: ReadonlySet): string[]; /** @deprecated Use summarizeDiscoverableTools */ export declare function summarizeDiscoverableMCPTools(tools: DiscoverableMCPTool[]): DiscoverableMCPToolSummary; /** @deprecated Use buildDiscoverableToolSearchIndex. * Builds an index whose documents preserve the legacy `description` field on each tool while * also carrying the generic `summary` (set from `description`) so the index remains usable * with `searchDiscoverableTools`. */ export declare function buildDiscoverableMCPSearchIndex(tools: Iterable): DiscoverableMCPSearchIndex; /** @deprecated Use searchDiscoverableTools */ export declare function searchDiscoverableMCPTools(index: DiscoverableMCPSearchIndex | DiscoverableToolSearchIndex, query: string, limit: number): DiscoverableMCPSearchResult[]; /** @deprecated Use formatDiscoverableToolServerSummary */ export declare const formatDiscoverableMCPToolServerSummary: typeof formatDiscoverableToolServerSummary;