import type { ToolDeps, ToolRegistry } from '../../../shared/agent/tool.helpers.js'; import type { ToolSurface } from '../../../shared/agent/utility.tools.js'; import type { OpportunityOwnerApprovalDeps } from '../../../opportunity/ports/opportunity.tools.port.js'; export interface CreateToolRegistryOptions { /** * Tool-surface profile. The default `'rest'` profile (direct HTTP Tool API) * exposes the full tool set — contact/Gmail tools, `scrape_url`, and the * deprecated profile/profile-run compatibility aliases. The restricted * `'mcp'` profile omits exactly those surfaces (IND-596/597/598); their * non-MCP implementations remain intact for REST and chat. */ surface?: ToolSurface; } /** * Creates a tool registry containing all tool handlers indexed by name. * Handlers are raw async functions (not LangChain tool() wrappers) that * accept { context, query } and return a JSON string. * * @param deps - Shared tool dependencies (graphs, database, embedder, etc.) * @param options - Surface profile selecting the MCP-restricted or full REST set. * @returns Map of tool name to raw tool definition. */ /** Complete registry composition with the opportunity-local owner-proof port. */ export type ToolRegistryDeps = ToolDeps & OpportunityOwnerApprovalDeps; export declare function createToolRegistry(deps: ToolRegistryDeps, options?: CreateToolRegistryOptions): ToolRegistry;