MCPcopy Create free account
hub / github.com/echoVic/blade-code / registerTool

Method registerTool

src/tools/ToolManager.ts:45–83  ·  view source on GitHub ↗

* 注册工具

(
    tool: ToolDefinition,
    options: ToolRegistrationOptions = {}
  )

Source from the content-addressed store, hash-verified

43 * 注册工具
44 */
45 public async registerTool(
46 tool: ToolDefinition,
47 options: ToolRegistrationOptions = {}
48 ): Promise<void> {
49 try {
50 // 验证工具定义
51 this.validateToolDefinition(tool);
52
53 // 检查是否已存在
54 if (this.tools.has(tool.name) && !options.override) {
55 throw new ToolRegistrationError(
56 `工具 "${tool.name}" 已存在,使用 override: true 强制覆盖`,
57 tool.name
58 );
59 }
60
61 // 注册工具
62 this.tools.set(tool.name, tool);
63 this.toolStates.set(tool.name, {
64 enabled: options.enabled ?? true,
65 permissions: options.permissions ?? [],
66 });
67
68 this.log(`工具 "${tool.name}" 注册成功`, {
69 version: tool.version,
70 category: tool.category,
71 enabled: options.enabled ?? true,
72 });
73
74 this.emit('toolRegistered', {
75 toolName: tool.name,
76 tool,
77 options,
78 });
79 } catch (error) {
80 this.log(`工具 "${tool.name}" 注册失败`, { error: (error as Error).message });
81 throw error;
82 }
83 }
84
85 /**
86 * 注销工具

Callers 2

createToolManagerFunction · 0.95
customToolExampleFunction · 0.45

Calls 5

logMethod · 0.95
hasMethod · 0.80
setMethod · 0.80
emitMethod · 0.45

Tested by

no test coverage detected