/** * Agentic QE v3 - MCP Tool Registry * Manages tool registration, lazy loading, and dispatch */ import { DomainName } from '../shared/types'; import { ToolDefinition, ToolHandler, ToolResult, ToolCategory } from './types'; interface RegisteredTool { definition: ToolDefinition; handler: ToolHandler; loaded: boolean; loadCount: number; lastUsed?: Date; } export interface ToolStats { totalTools: number; loadedTools: number; byCategory: Record; byDomain: Partial>; invocations: number; errors: number; } export declare class ToolRegistry { private readonly tools; private readonly categoryTools; private readonly domainTools; private stats; constructor(); /** * Register a tool */ register(definition: ToolDefinition, handler: ToolHandler): void; /** * Register multiple tools */ registerAll(tools: Array<{ definition: ToolDefinition; handler: ToolHandler; }>): void; /** * Get a tool by name */ get(name: string): RegisteredTool | undefined; /** * Check if a tool exists */ has(name: string): boolean; /** * Get all tool definitions */ getDefinitions(): ToolDefinition[]; /** * Get loaded tool definitions */ getLoadedDefinitions(): ToolDefinition[]; /** * Get tools by category */ getByCategory(category: ToolCategory): ToolDefinition[]; /** * Get tools by domain */ getByDomain(domain: DomainName): ToolDefinition[]; /** * Invoke a tool */ invoke = Record, TResult = unknown>(name: string, params: TParams): Promise>; /** * Load tools for domains detected in a message */ loadForMessage(message: string): DomainName[]; /** * Load all tools for a domain */ loadDomain(domain: DomainName): void; /** * Load all tools in a category */ loadCategory(category: ToolCategory): void; /** * Detect domains from message content */ detectDomainsFromMessage(message: string): DomainName[]; /** * Get registry statistics */ getStats(): ToolStats; /** * Clear all tools */ clear(): void; /** * Create result metadata */ private createMetadata; } export declare function createToolRegistry(): ToolRegistry; export {}; //# sourceMappingURL=tool-registry.d.ts.map