/** * 工具参数类型定义 */ export interface ToolParameter { name: string; type: 'string' | 'number' | 'boolean' | 'object' | 'array'; description: string; required: boolean; default?: any; } /** * 工具参数集合 */ export interface ToolParameters { [key: string]: any; } /** * 工具处理函数类型 */ export type ToolHandler, R = any> = (args: T) => Promise; /** * 工具定义接口 */ export interface Tool, R = any> { name: string; description: string; parameters: any; handler: ToolHandler; } /** * 工具注册配置 */ export interface ToolRegistration, R = any> extends Omit, 'handler'> { handler: ToolHandler; } /** * 工具管理服务,负责工具的注册和执行 */ export declare class ToolService { private static instance; private tools; private logger; private constructor(); /** * 获取ToolService单例 */ static getInstance(): ToolService; /** * 注册工具 * @param tool 工具配置 */ registerTool, R = any>(tool: ToolRegistration): void; /** * 批量注册工具 * @param tools 工具配置数组 */ registerTools, R = any>(tools: ToolRegistration[]): void; /** * 获取所有已注册工具 */ getAllTools(): Tool[]; /** * 获取工具定义(无处理函数) */ getToolDefinitions(): Omit[]; /** * 检查工具是否存在 * @param name 工具名称 */ hasTool(name: string): boolean; /** * 执行工具 * @param name 工具名称 * @param args 工具参数 */ executeTool, R = any>(name: string, args: T): Promise; /** * 取消注册工具 * @param name 工具名称 */ unregisterTool(name: string): boolean; }