From a408b1ba169b4ee30da7bf36a01760aff1326128 Mon Sep 17 00:00:00 2001 From: Kanner Date: Thu, 21 May 2026 10:45:42 +0800 Subject: [PATCH 1/2] refactor(kimi-web-search): rename tools to snake_case Rename SearchWeb/FetchURL to kimi_search_web/kimi_fetch_url to align with senpi/pi-mono tool naming conventions (snake_case/lowercase). All other builtin and third-party tools use snake_case: - read, write, edit, bash - web_search, apply_patch, multiedit - todowrite, todoread PascalCase (SearchWeb/FetchURL) was inherited from Kimi CLI but is inconsistent with the rest of the extension ecosystem. Refs: #10 --- .../extensions/builtin/kimi-web-search/index.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/coding-agent/src/core/extensions/builtin/kimi-web-search/index.ts b/packages/coding-agent/src/core/extensions/builtin/kimi-web-search/index.ts index 0df9bcdcc..0b338f837 100644 --- a/packages/coding-agent/src/core/extensions/builtin/kimi-web-search/index.ts +++ b/packages/coding-agent/src/core/extensions/builtin/kimi-web-search/index.ts @@ -227,11 +227,11 @@ export default function kimiWebSearchExtension(pi: ExtensionAPI): void { } pi.registerTool({ - name: "SearchWeb", - label: "SearchWeb", + name: "kimi_search_web", + label: "kimi_search_web", description: "WebSearch tool allows you to search on the internet to get latest information, including news, documents, release notes, blog posts, papers, etc.", - promptSnippet: "SearchWeb — search the internet for current information", + promptSnippet: "kimi_search_web — search the internet for current information", parameters: searchWebSchema, async execute(toolCallId, params, signal, _onUpdate, ctx) { const apiKey = await resolveApiKey(ctx); @@ -251,10 +251,10 @@ export default function kimiWebSearchExtension(pi: ExtensionAPI): void { }); pi.registerTool({ - name: "FetchURL", - label: "FetchURL", - description: "FetchURL tool allows you to fetch content from a URL.", - promptSnippet: "FetchURL — fetch web page content from a URL", + name: "kimi_fetch_url", + label: "kimi_fetch_url", + description: "kimi_fetch_url tool allows you to fetch content from a URL.", + promptSnippet: "kimi_fetch_url — fetch web page content from a URL", parameters: fetchUrlSchema, async execute(toolCallId, params, signal, _onUpdate, ctx) { const apiKey = await resolveApiKey(ctx); From ec1be280395c5b445d35119a07e8cb1acb86d34c Mon Sep 17 00:00:00 2001 From: Kanner Date: Fri, 22 May 2026 09:39:30 +0800 Subject: [PATCH 2/2] fix(test): update regression test for renamed kimi tools --- ...uiltin-tools-keeps-extension-tools.test.ts | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/coding-agent/test/suite/regressions/3592-no-builtin-tools-keeps-extension-tools.test.ts b/packages/coding-agent/test/suite/regressions/3592-no-builtin-tools-keeps-extension-tools.test.ts index beb5b777f..0d1e7bf07 100644 --- a/packages/coding-agent/test/suite/regressions/3592-no-builtin-tools-keeps-extension-tools.test.ts +++ b/packages/coding-agent/test/suite/regressions/3592-no-builtin-tools-keeps-extension-tools.test.ts @@ -79,21 +79,27 @@ describe("regression #3592: no-builtin-tools keeps extension tools enabled", () .map((tool) => tool.name) .sort(), ).toEqual([ - "FetchURL", - "SearchWeb", "apply_patch", "bash", "dynamic_tool", "edit", "find", "grep", + "kimi_fetch_url", + "kimi_search_web", "ls", "read", "todoread", "todowrite", "write", ]); - expect(session.getActiveToolNames()).toEqual(["todowrite", "todoread", "SearchWeb", "FetchURL", "dynamic_tool"]); + expect(session.getActiveToolNames()).toEqual([ + "todowrite", + "todoread", + "kimi_search_web", + "kimi_fetch_url", + "dynamic_tool", + ]); expect(session.systemPrompt).toContain("- dynamic_tool: Run dynamic test behavior"); expect(session.systemPrompt).not.toContain("- read:"); expect(session.systemPrompt).not.toContain("- bash:"); @@ -125,7 +131,13 @@ describe("regression #3592: no-builtin-tools keeps extension tools enabled", () noTools: "builtin", }); - expect(session.getActiveToolNames()).toEqual(["apply_patch", "todowrite", "todoread", "SearchWeb", "FetchURL"]); + expect(session.getActiveToolNames()).toEqual([ + "apply_patch", + "todowrite", + "todoread", + "kimi_search_web", + "kimi_fetch_url", + ]); expect(session.systemPrompt).toContain("- todowrite:"); expect(session.systemPrompt).not.toContain("- read:"); session.dispose();