chore: remove codesearch tool

This commit is contained in:
marius-kilocode
2026-06-10 18:32:06 +02:00
parent 9e2994ca6b
commit e7d0f9ec78
36 changed files with 36 additions and 182 deletions
+2 -1
View File
@@ -1,5 +1,6 @@
---
"@kilocode/cli": patch
"kilo-code": patch
---
Preserve the code search tool and Scout access after the OpenCode provider and agent updates.
Remove the unsupported code search tool.
@@ -26,7 +26,7 @@ Describe what you want to accomplish in natural language, and Kilo Code will:
| Read | Access file content and code structure | `read`, `glob`, `grep` |
| Edit | Create or modify files and code | `edit`, `write`, `apply_patch` |
| Execute | Run commands and perform system operations | `bash` |
| Web | Fetch and search web content | `webfetch`, `websearch`, `codesearch` |
| Web | Fetch and search web content | `webfetch`, `websearch` |
| Workflow | Manage task flow and sub-agents | `question`, `task`, `todowrite`, `todoread`, `plan`, `skill` |
{% /tab %}
@@ -108,7 +108,7 @@ Every tool use is subject to a permission check. The default action for any tool
| `bash` | `ask` (per-command) |
| `external_directory` | `ask` (when accessing paths outside the project) |
| `task` | `ask` |
| `webfetch`, `websearch`, `codesearch` | `ask` |
| `webfetch`, `websearch` | `ask` |
| `todowrite`, `todoread`, `question`, `skill` | `ask` |
No tools are auto-approved out of the box. You must explicitly grant `allow` in your config, or approve them at runtime.
@@ -165,7 +165,6 @@ This safety mechanism ensures you maintain control over which files are modified
| `bash` | Runs shell commands | Execute |
| `webfetch` | Fetches a URL | Web |
| `websearch` | Searches the web (Kilo/OpenRouter users) | Web |
| `codesearch` | Semantic code search (Kilo/OpenRouter users) | Web |
| `question` | Asks you a clarifying question with selectable options | Workflow |
| `task` | Spawns a sub-agent session | Workflow |
| `todowrite` | Creates and updates a session TODO list | Workflow |
@@ -21,7 +21,7 @@ Tools are organized into logical groups based on their functionality:
| **Read Group** | File system reading and searching | `read`, `glob`, `grep` | Code exploration and analysis |
| **Edit Group** | File system modifications | `edit`, `write`, `apply_patch` | Code changes and file manipulation |
| **Execute Group** | Shell command execution | `bash` | Running scripts, building projects |
| **Web Group** | Fetch and search web content | `webfetch`, `websearch`, `codesearch` | Research, documentation lookup |
| **Web Group** | Fetch and search web content | `webfetch`, `websearch` | Research, documentation lookup |
| **Browser Group** | Web browser automation | `kilo-playwright_*` (via built-in Playwright MCP) | Browser testing and interaction |
| **MCP Group** | External tool integration | MCP server tools (namespaced as `{server}_{tool}`) | Specialized functionality via MCP |
| **Workflow Group** | Sub-agents and task management | `question`, `task`, `todowrite`, `todoread`, `plan`, `skill`, `agent_manager` | Context switching and task organization |
@@ -66,7 +66,6 @@ These tools help Kilo Code access web content:
- `webfetch` - Fetches a URL and returns the content
- `websearch` - Searches the web (available to Kilo/OpenRouter users)
- `codesearch` - Semantic code search (available to Kilo/OpenRouter users)
### Browser Tools
@@ -151,7 +151,7 @@ permission:
read: allow
```
Known permission types include: `read`, `edit`, `bash`, `glob`, `grep`, `task`, `webfetch`, `websearch`, `codesearch`, `todowrite`, `todoread`, and more.
Known permission types include: `read`, `edit`, `bash`, `glob`, `grep`, `task`, `webfetch`, `websearch`, `todowrite`, `todoread`, and more.
### `model`
@@ -387,7 +387,7 @@ permission:
read: allow
```
Known permission types include: `read`, `edit`, `bash`, `glob`, `grep`, `task`, `webfetch`, `websearch`, `codesearch`, `todowrite`, `todoread`, and more.
Known permission types include: `read`, `edit`, `bash`, `glob`, `grep`, `task`, `webfetch`, `websearch`, `todowrite`, `todoread`, and more.
### `model`
@@ -49,7 +49,7 @@ The Auto Approve tab lists the following tool-specific permissions. Some tools a
| `skill` | Loading specialized skills |
| `lsp` | Language server protocol operations |
| `todoread` / `todowrite` | Reading and updating the todo list |
| `websearch` / `codesearch` | Performing web or code searches |
| `websearch` | Performing web searches |
| `webfetch` | Fetching content from URLs |
| `doom_loop` | Allowing the agent to continue after repeated failures |
@@ -117,7 +117,7 @@ Permissions are configured under the `permission` key in `kilo.jsonc`. The follo
| `skill` | Loading specialized skills |
| `lsp` | Language server protocol operations |
| `todoread` / `todowrite` | Reading and updating the todo list |
| `websearch` / `codesearch` | Performing web or code searches |
| `websearch` | Performing web searches |
| `webfetch` | Fetching content from URLs |
| `doom_loop` | Allowing the agent to continue after repeated failures |
@@ -247,7 +247,6 @@ This is a custom example showing the available configuration options — it does
"todowrite": { "*": "allow" },
"webfetch": { "*": "allow" },
"websearch": { "*": "allow" },
"codesearch": { "*": "allow" },
"external_directory": { "*": "ask" },
"doom_loop": { "*": "ask" }
},
@@ -112,14 +112,10 @@ const GROUPED_TOOLS: GroupedToolDef[] = [
label: "todoread / todowrite",
descriptionKey: "settings.autoApprove.tool.todoreadwrite",
},
{
ids: ["websearch", "codesearch"],
label: "websearch / codesearch",
descriptionKey: "settings.autoApprove.tool.websearchcodesearch",
},
]
const TRAILING_TOOLS: ToolDef[] = [
{ id: "websearch", descriptionKey: "settings.autoApprove.tool.websearch" },
{ id: "webfetch", descriptionKey: "settings.autoApprove.tool.webfetch" },
{ id: "doom_loop", descriptionKey: "settings.autoApprove.tool.doom_loop" },
]
+1 -2
View File
@@ -1414,8 +1414,7 @@ export const dict = {
"settings.autoApprove.tool.lsp": "الاستعلام من خادم اللغة. يسمح بتشغيل استعلامات خادم اللغة لذكاء الكود.",
"settings.autoApprove.tool.todoreadwrite": "إدارة قائمة المهام. يسمح بقراءة وتحديث قائمة المهام الداخلية.",
"settings.autoApprove.tool.webfetch": "جلب رابط ويب. يسمح باسترداد المحتوى من رابط (URL) محدد.",
"settings.autoApprove.tool.websearchcodesearch":
"البحث في الويب أو الكود. يسمح بإجراء عمليات بحث خارجية في الويب أو الكود.",
"settings.autoApprove.tool.websearch": "البحث في الويب. يسمح بإجراء عمليات بحث خارجية في الويب.",
"settings.autoApprove.tool.external_directory":
"الوصول للملفات خارج مساحة العمل. يتم تشغيله عند الوصول إلى ملفات خارج مسار المشروع الحالي.",
"settings.autoApprove.tool.doom_loop":
+1 -2
View File
@@ -1456,8 +1456,7 @@ export const dict = {
"settings.autoApprove.tool.todoreadwrite":
"Gerenciar lista de tarefas. Permite ler e atualizar a lista de tarefas interna.",
"settings.autoApprove.tool.webfetch": "Buscar uma URL. Permite recuperar o conteúdo de uma URL específica.",
"settings.autoApprove.tool.websearchcodesearch":
"Pesquisar na web ou no código. Permite realizar pesquisas externas na web ou no código.",
"settings.autoApprove.tool.websearch": "Pesquisar na web. Permite realizar pesquisas externas na web.",
"settings.autoApprove.tool.external_directory":
"Acessar arquivos fora do workspace. Acionado ao acessar arquivos fora do diretório do projeto atual.",
"settings.autoApprove.tool.doom_loop":
+1 -2
View File
@@ -1453,8 +1453,7 @@ export const dict = {
"settings.autoApprove.tool.todoreadwrite":
"Upravljanje listom zadataka. Dozvoljava čitanje i ažuriranje interne liste zadataka.",
"settings.autoApprove.tool.webfetch": "Preuzimanje URL-a. Omogućava preuzimanje sadržaja sa određenog URL-a.",
"settings.autoApprove.tool.websearchcodesearch":
"Pretraga weba ili koda. Dozvoljava izvršavanje eksternih pretraga weba ili koda.",
"settings.autoApprove.tool.websearch": "Pretražuj web. Dozvoljava izvršavanje eksternih pretraga weba.",
"settings.autoApprove.tool.external_directory":
"Pristup datotekama izvan radnog prostora. Pokreće se prilikom pristupa datotekama izvan trenutnog direktorija projekta.",
"settings.autoApprove.tool.doom_loop":
+1 -2
View File
@@ -1441,8 +1441,7 @@ export const dict = {
"settings.autoApprove.tool.todoreadwrite":
"Administrer opgaveliste. Tillader læsning og opdatering af den interne opgaveliste.",
"settings.autoApprove.tool.webfetch": "Hent en URL. Tillader hentning af indhold fra en specifik URL.",
"settings.autoApprove.tool.websearchcodesearch":
"Søg på nettet eller i kode. Tillader udførelse af eksterne web- eller kodesøgninger.",
"settings.autoApprove.tool.websearch": "Søg på nettet. Tillader udførelse af eksterne websøgninger.",
"settings.autoApprove.tool.external_directory":
"Få adgang til filer uden for arbejdsområdet. Udløses ved adgang til filer uden for den aktuelle projektmappe.",
"settings.autoApprove.tool.doom_loop":
+1 -2
View File
@@ -1470,8 +1470,7 @@ export const dict = {
"settings.autoApprove.tool.todoreadwrite":
"Aufgabenliste verwalten. Ermöglicht das Lesen und Aktualisieren der internen Aufgabenliste.",
"settings.autoApprove.tool.webfetch": "URL abrufen. Erlaubt das Abrufen von Inhalten einer bestimmten URL.",
"settings.autoApprove.tool.websearchcodesearch":
"Web oder Code durchsuchen. Ermöglicht die Durchführung externer Web- oder Code-Suchen.",
"settings.autoApprove.tool.websearch": "Das Web durchsuchen. Ermöglicht die Durchführung externer Web-Suchen.",
"settings.autoApprove.tool.external_directory":
"Zugriff auf Dateien außerhalb des Arbeitsbereichs. Wird ausgelöst, wenn auf Dateien außerhalb des aktuellen Projektverzeichnisses zugegriffen wird.",
"settings.autoApprove.tool.doom_loop":
@@ -1428,8 +1428,7 @@ export const dict = {
"Query language server. Allows running language server queries for code intelligence.",
"settings.autoApprove.tool.todoreadwrite": "Manage task list. Allows reading and updating the internal task list.",
"settings.autoApprove.tool.webfetch": "Fetch a URL. Allows retrieving content from a specific URL.",
"settings.autoApprove.tool.websearchcodesearch":
"Search web or code. Allows performing external web or code searches.",
"settings.autoApprove.tool.websearch": "Search the web. Allows performing external web searches.",
"settings.autoApprove.tool.doom_loop":
"Prevent repeated identical actions. Triggered when the same tool call repeats with identical input.",
+1 -2
View File
@@ -1463,8 +1463,7 @@ export const dict = {
"settings.autoApprove.tool.todoreadwrite":
"Administrar lista de tareas. Permite leer y actualizar la lista de tareas interna.",
"settings.autoApprove.tool.webfetch": "Obtener una URL. Permite recuperar contenido de una URL específica.",
"settings.autoApprove.tool.websearchcodesearch":
"Buscar en la web o en el código. Permite realizar búsquedas externas en la web o en el código.",
"settings.autoApprove.tool.websearch": "Buscar en la web. Permite realizar búsquedas externas en la web.",
"settings.autoApprove.tool.external_directory":
"Acceder a archivos fuera del espacio de trabajo. Se activa al acceder a archivos fuera del directorio del proyecto actual.",
"settings.autoApprove.tool.doom_loop":
+2 -2
View File
@@ -1478,8 +1478,8 @@ export const dict = {
"settings.autoApprove.tool.todoreadwrite":
"Gérer la liste des tâches. Permet de lire et de mettre à jour la liste des tâches interne.",
"settings.autoApprove.tool.webfetch": "Récupérer une URL. Permet de récupérer le contenu d'une URL spécifique.",
"settings.autoApprove.tool.websearchcodesearch":
"Rechercher sur le Web ou dans le code. Permet d'effectuer des recherches externes sur le Web ou dans le code.",
"settings.autoApprove.tool.websearch":
"Rechercher sur le Web. Permet d'effectuer des recherches externes sur le Web.",
"settings.autoApprove.tool.external_directory":
"Accéder aux fichiers en dehors de l'espace de travail. Déclenché lors de l'accès à des fichiers en dehors du répertoire de projet actuel.",
"settings.autoApprove.tool.doom_loop":
+1 -1
View File
@@ -1281,7 +1281,7 @@ export const dict = {
"settings.autoApprove.tool.todoreadwrite":
"Gestisci lista task. Consente lettura e aggiornamento della lista task interna.",
"settings.autoApprove.tool.webfetch": "Recupera URL. Consente di recuperare contenuti da un URL specifico.",
"settings.autoApprove.tool.websearchcodesearch": "Cerca web o codice. Consente ricerche web o di codice esterne.",
"settings.autoApprove.tool.websearch": "Cerca sul web. Consente ricerche web esterne.",
"settings.autoApprove.tool.doom_loop":
"Previeni azioni identiche ripetute. Si attiva quando la stessa chiamata tool si ripete con input identico.",
"settings.checkpoints.enable.title": "Abilita snapshot",
+1 -2
View File
@@ -1437,8 +1437,7 @@ export const dict = {
"言語サーバーにクエリ。コードインテリジェンスのために言語サーバークエリの実行を許可します。",
"settings.autoApprove.tool.todoreadwrite": "タスクリストの管理。内部タスクリストの読み取りと更新を許可します。",
"settings.autoApprove.tool.webfetch": "URLをフェッチ。特定のURLからコンテンツを取得することを許可します。",
"settings.autoApprove.tool.websearchcodesearch":
"Webまたはコードの検索。外部のWebまたはコード検索の実行を許可します。",
"settings.autoApprove.tool.websearch": "ウェブを検索。外部のWeb検索の実行を許可します。",
"settings.autoApprove.tool.external_directory":
"ワークスペース外のファイルにアクセス。現在のプロジェクトディレクトリ外のファイルにアクセスしたときにトリガーされます。",
"settings.autoApprove.tool.doom_loop":
+1 -2
View File
@@ -1422,8 +1422,7 @@ export const dict = {
"settings.autoApprove.tool.lsp": "언어 서버 쿼리. 코드 인텔리전스를 위해 언어 서버 쿼리 실행을 허용합니다.",
"settings.autoApprove.tool.todoreadwrite": "작업 목록 관리. 내부 작업 목록을 읽고 업데이트할 수 있도록 허용합니다.",
"settings.autoApprove.tool.webfetch": "URL 가져오기. 특정 URL에서 콘텐츠를 검색할 수 있도록 허용합니다.",
"settings.autoApprove.tool.websearchcodesearch":
"웹 또는 코드 검색. 외부 웹 또는 코드 검색을 수행할 수 있도록 허용합니다.",
"settings.autoApprove.tool.websearch": "웹 검색. 외부 웹 검색을 수행할 수 있도록 허용합니다.",
"settings.autoApprove.tool.external_directory":
"작업 공간 외부 파일 접근. 현재 프로젝트 디렉토리 외부의 파일에 접근할 때 트리거됩니다.",
"settings.autoApprove.tool.doom_loop":
+1 -2
View File
@@ -1417,8 +1417,7 @@ export const dict = {
"settings.autoApprove.tool.todoreadwrite":
"Takenlijst beheren. Staat het lezen en bijwerken van de interne takenlijst toe.",
"settings.autoApprove.tool.webfetch": "Een URL ophalen. Staat het ophalen van inhoud van een specifieke URL toe.",
"settings.autoApprove.tool.websearchcodesearch":
"Zoek op web of in code. Staat het uitvoeren van externe web- of code-zoekopdrachten toe.",
"settings.autoApprove.tool.websearch": "Zoek op het web. Staat het uitvoeren van externe web-zoekopdrachten toe.",
"settings.autoApprove.tool.doom_loop":
"Voorkom herhaalde identieke acties. Geactiveerd wanneer dezelfde tool call herhaald wordt met identieke invoer.",
+1 -2
View File
@@ -1440,8 +1440,7 @@ export const dict = {
"settings.autoApprove.tool.todoreadwrite":
"Administrer oppgaveliste. Tillater lesing og oppdatering av den interne oppgavelisten.",
"settings.autoApprove.tool.webfetch": "Hent en URL. Tillater henting av innhold fra en spesifikk URL.",
"settings.autoApprove.tool.websearchcodesearch":
"Søk på nettet eller i kode. Tillater å utføre eksterne nett- eller kodesøk.",
"settings.autoApprove.tool.websearch": "Søk på nettet. Tillater å utføre eksterne nettsøk.",
"settings.autoApprove.tool.external_directory":
"Få tilgang til filer utenfor arbeidsområdet. Utløses ved tilgang til filer utenfor gjeldende prosjektkatalog.",
"settings.autoApprove.tool.doom_loop":
+2 -2
View File
@@ -1448,8 +1448,8 @@ export const dict = {
"settings.autoApprove.tool.todoreadwrite":
"Zarządzaj listą zadań. Pozwala na odczytywanie i aktualizowanie wewnętrznej listy zadań.",
"settings.autoApprove.tool.webfetch": "Pobieranie URL. Pozwala na pobieranie zawartości z określonego adresu URL.",
"settings.autoApprove.tool.websearchcodesearch":
"Przeszukuj sieć lub kod. Pozwala na wykonywanie zewnętrznych wyszukiwań w sieci lub kodzie.",
"settings.autoApprove.tool.websearch":
"Przeszukiwanie sieci. Pozwala na wykonywanie zewnętrznych wyszukiwań w sieci.",
"settings.autoApprove.tool.external_directory":
"Dostęp do plików poza obszarem roboczym. Uruchamiane przy dostępie do plików poza bieżącym katalogiem projektu.",
"settings.autoApprove.tool.doom_loop":
+2 -2
View File
@@ -1447,8 +1447,8 @@ export const dict = {
"settings.autoApprove.tool.todoreadwrite":
"Управление списком задач. Разрешает чтение и обновление внутреннего списка задач.",
"settings.autoApprove.tool.webfetch": "Получение URL. Разрешает извлечение содержимого по указанному URL-адресу.",
"settings.autoApprove.tool.websearchcodesearch":
"Поиск в интернете или коде. Разрешает выполнение внешних поисковых запросов в интернете или коде.",
"settings.autoApprove.tool.websearch":
"Поиск в интернете. Разрешает выполнение внешних поисковых запросов в интернете.",
"settings.autoApprove.tool.external_directory":
"Доступ к файлам вне рабочей области. Срабатывает при доступе к файлам за пределами текущего каталога проекта.",
"settings.autoApprove.tool.doom_loop":
+1 -1
View File
@@ -1422,7 +1422,7 @@ export const dict = {
"สอบถามเซิร์ฟเวอร์ภาษา อนุญาตให้เรียกใช้การสืบค้นเซิร์ฟเวอร์ภาษาสำหรับระบบอัจฉริยะของโค้ด",
"settings.autoApprove.tool.todoreadwrite": "จัดการรายการงาน อนุญาตให้อ่านและอัปเดตรายการงานภายใน",
"settings.autoApprove.tool.webfetch": "ดึงข้อมูลจาก URL อนุญาตให้ดึงเนื้อหาจาก URL ที่ระบุ",
"settings.autoApprove.tool.websearchcodesearch": "ค้นหาเว็บหรือโค้ด อนุญาตให้ทำการค้นหาเว็บหรือโค้ดภายนอก",
"settings.autoApprove.tool.websearch": "ค้นหาบนเว็บ อนุญาตให้ทำการค้นหาเว็บภายนอก",
"settings.autoApprove.tool.external_directory":
"เข้าถึงไฟล์นอกพื้นที่ทำงาน (Workspace) ถูกเรียกเมื่อเข้าถึงไฟล์ภายนอกไดเรกทอรีโปรเจ็กต์ปัจจุบัน",
"settings.autoApprove.tool.doom_loop":
+1 -2
View File
@@ -1406,8 +1406,7 @@ export const dict = {
"settings.autoApprove.tool.todoreadwrite":
"Görev listesini yönet. Dahili görev listesini okuma ve güncellemeye izin verir.",
"settings.autoApprove.tool.webfetch": "URL getir. Belirli bir URL'den içerik almaya izin verir.",
"settings.autoApprove.tool.websearchcodesearch":
"Web veya kod ara. Harici web veya kod aramaları yapmaya izin verir.",
"settings.autoApprove.tool.websearch": "Web'de ara. Harici web aramaları yapmaya izin verir.",
"settings.autoApprove.tool.doom_loop":
"Tekrarlanan aynı eylemleri önle. Aynı araç çağrısı aynı girdiyle tekrarlandığında tetiklenir.",
+1 -2
View File
@@ -1406,8 +1406,7 @@ export const dict = {
"settings.autoApprove.tool.todoreadwrite":
"Керувати списком завдань. Дозволяє читання та оновлення внутрішнього списку завдань.",
"settings.autoApprove.tool.webfetch": "Отримати URL. Дозволяє отримання вмісту з вказаного URL.",
"settings.autoApprove.tool.websearchcodesearch":
"Шукати в мережі або коді. Дозволяє зовнішній веб-пошук або пошук коду.",
"settings.autoApprove.tool.websearch": "Шукати в інтернеті. Дозволяє зовнішній веб-пошук.",
"settings.autoApprove.tool.doom_loop":
"Запобігати повторюваним діям. Спрацьовує, коли той самий виклик інструменту повторюється з однаковими вхідними даними.",
+1 -1
View File
@@ -1390,7 +1390,7 @@ export const dict = {
"settings.autoApprove.tool.lsp": "查询语言服务器。允许运行语言服务器查询以获取代码智能。",
"settings.autoApprove.tool.todoreadwrite": "管理任务列表。允许读取和更新内部任务列表。",
"settings.autoApprove.tool.webfetch": "获取 URL。允许从特定 URL 检索内容。",
"settings.autoApprove.tool.websearchcodesearch": "搜索 Web 或代码。允许执行外部 Web 或代码搜索。",
"settings.autoApprove.tool.websearch": "搜索网页。允许执行外部 Web 搜索。",
"settings.autoApprove.tool.external_directory": "访问工作区外部的文件。访问当前项目目录之外的文件时触发。",
"settings.autoApprove.tool.doom_loop": "防止重复相同操作。当相同的工具调用以相同的输入重复时触发。",
"settings.checkpoints.enable.title": "启用快照",
+1 -1
View File
@@ -1360,7 +1360,7 @@ export const dict = {
"settings.autoApprove.tool.lsp": "查詢語言伺服器。允許執行語言伺服器查詢以取得程式碼智慧。",
"settings.autoApprove.tool.todoreadwrite": "管理任務清單。允許讀取和更新內部任務清單。",
"settings.autoApprove.tool.webfetch": "擷取 URL。允許從特定 URL 擷取內容。",
"settings.autoApprove.tool.websearchcodesearch": "搜尋網路或程式碼。允許執行外部網路或程式碼搜尋。",
"settings.autoApprove.tool.websearch": "搜尋網。允許執行外部網路搜尋。",
"settings.autoApprove.tool.external_directory": "存取工作區外部的檔案。存取目前專案目錄之外的檔案時觸發。",
"settings.autoApprove.tool.doom_loop": "防止重複相同操作。當相同的工具呼叫以相同的輸入重複時觸發。",
"settings.checkpoints.enable.title": "啟用快照",
-1
View File
@@ -226,7 +226,6 @@ export const layer = Layer.effect(
glob: "allow",
webfetch: "allow",
websearch: "allow",
codesearch: "allow", // kilocode_change
read: "allow",
repo_clone: "allow",
repo_overview: "allow",
@@ -146,7 +146,6 @@ function askGuard(mcp: Record<string, "allow" | "ask" | "deny"> = {}) {
question: "allow",
webfetch: "allow",
websearch: "allow",
codesearch: "allow",
codebase_search: "allow",
semantic_search: "allow",
external_directory: {
@@ -200,7 +199,6 @@ function planGuard(worktree: string, mcp: Record<string, "allow" | "ask" | "deny
list: "allow",
webfetch: "allow",
websearch: "allow",
codesearch: "allow",
codebase_search: "allow",
semantic_search: "allow",
external_directory: {
@@ -355,7 +353,6 @@ export function patchAgents(
skill: "allow",
webfetch: "allow",
websearch: "allow",
codesearch: "allow",
codebase_search: "allow",
semantic_search: "allow",
read: "allow",
@@ -419,7 +416,6 @@ export function patchAgents(
todowrite: "allow",
webfetch: "allow",
websearch: "allow",
codesearch: "allow",
codebase_search: "allow",
external_directory: {
[Truncate.GLOB]: "allow",
@@ -144,7 +144,7 @@ Scalar form applies to all patterns. Object form maps glob patterns to actions.
Actions: `"allow"`, `"ask"`, `"deny"`. Set `null` to delete an inherited key.
Tool permissions: `read`, `edit`, `glob`, `grep`, `list`, `bash`, `task`, `webfetch`, `websearch`, `codesearch`, `semantic_search`, `lsp`, `skill`, `external_directory`, `todowrite`, `todoread`, `question`, `doom_loop`.
Tool permissions: `read`, `edit`, `glob`, `grep`, `list`, `bash`, `task`, `webfetch`, `websearch`, `semantic_search`, `lsp`, `skill`, `external_directory`, `todowrite`, `todoread`, `question`, `doom_loop`.
## MCP Servers
@@ -506,7 +506,6 @@ const SCALAR_ONLY_PERMISSIONS = new Set([
"question",
"webfetch",
"websearch",
"codesearch",
"doom_loop",
])
-69
View File
@@ -1,69 +0,0 @@
// kilocode_change - retained Kilo tool removed upstream
import { Effect, Schema } from "effect"
import { HttpClient } from "effect/unstable/http"
import * as Tool from "./tool"
import * as McpWebSearch from "./mcp-websearch"
import DESCRIPTION from "./codesearch.txt"
const CodeArgs = Schema.Struct({
query: Schema.String,
tokensNum: Schema.Number,
})
export const Parameters = Schema.Struct({
query: Schema.String.annotate({
description:
"Search query to find relevant context for APIs, Libraries, and SDKs. For example, 'React useState hook examples', 'Python pandas dataframe filtering', 'Express.js middleware', 'Next js partial prerendering configuration'",
}),
tokensNum: Schema.Number.check(Schema.isGreaterThanOrEqualTo(1000))
.check(Schema.isLessThanOrEqualTo(50000))
.pipe(Schema.optional, Schema.withDecodingDefault(Effect.succeed(5000)))
.annotate({
description:
"Number of tokens to return (1000-50000). Default is 5000 tokens. Adjust this value based on how much context you need - use lower values for focused queries and higher values for comprehensive documentation.",
}),
})
export const CodeSearchTool = Tool.define(
"codesearch",
Effect.gen(function* () {
const http = yield* HttpClient.HttpClient
return {
description: DESCRIPTION,
parameters: Parameters,
execute: (params: { query: string; tokensNum: number }, ctx: Tool.Context) =>
Effect.gen(function* () {
yield* ctx.ask({
permission: "codesearch",
patterns: [params.query],
always: ["*"],
metadata: {
query: params.query,
tokensNum: params.tokensNum,
},
})
const result = yield* McpWebSearch.call(
http,
McpWebSearch.EXA_URL,
"get_code_context_exa",
CodeArgs,
{
query: params.query,
tokensNum: params.tokensNum,
},
"30 seconds",
)
return {
output:
result ??
"No code snippets or documentation found. Please try a different query, be more specific about the library or programming concept, or check the spelling of framework names.",
title: `Code search: ${params.query}`,
metadata: {},
}
}).pipe(Effect.orDie),
}
}),
)
-12
View File
@@ -1,12 +0,0 @@
- Search and get relevant context for any programming task using Exa Code API
- Provides the highest quality and freshest context for libraries, SDKs, and APIs
- Use this tool for ANY question or task related to programming
- Returns comprehensive code examples, documentation, and API references
- Optimized for finding specific programming patterns and solutions
Usage notes:
- Adjustable token count (1000-50000) for focused or comprehensive results
- Default 5000 tokens provides balanced context for most queries
- Use lower values for specific questions, higher values for comprehensive documentation
- Supports queries about frameworks, libraries, APIs, and programming concepts
- Examples: 'React useState hook examples', 'Python pandas dataframe filtering', 'Express.js middleware'
-4
View File
@@ -28,7 +28,6 @@ import { Provider } from "@/provider/provider"
import { ProviderID, type ModelID } from "../provider/schema"
import { WebSearchTool } from "./websearch"
import { KiloToolRegistry } from "../kilocode/tool/registry" // kilocode_change
import { CodeSearchTool } from "./codesearch" // kilocode_change
import { RepoCloneTool } from "./repo_clone"
import { RepoOverviewTool } from "./repo_overview"
import { Flag } from "@opencode-ai/core/flag/flag" // kilocode_change
@@ -137,7 +136,6 @@ export const layer: Layer.Layer<
const plan = yield* PlanExitTool
const webfetch = yield* WebFetchTool
const websearch = yield* WebSearchTool
const codesearch = yield* CodeSearchTool // kilocode_change
const repoClone = yield* RepoCloneTool
const repoOverview = yield* RepoOverviewTool
const shell = yield* ShellTool
@@ -247,7 +245,6 @@ export const layer: Layer.Layer<
fetch: Tool.init(webfetch),
todo: Tool.init(todo),
search: Tool.init(websearch),
code: Tool.init(codesearch), // kilocode_change
repo_clone: Tool.init(repoClone),
repo_overview: Tool.init(repoOverview),
skill: Tool.init(skilltool),
@@ -278,7 +275,6 @@ export const layer: Layer.Layer<
tool.fetch,
tool.todo,
tool.search,
tool.code, // kilocode_change
...(flags.experimentalScout ? [tool.repo_clone, tool.repo_overview] : []),
tool.skill,
tool.patch,
@@ -19,7 +19,6 @@ function askRuleset() {
question: "allow",
webfetch: "allow",
websearch: "allow",
codesearch: "allow",
codebase_search: "allow",
})
}
@@ -48,7 +47,6 @@ function askRulesetWithMcp(servers: string[], user: Permission.Ruleset = []) {
question: "allow",
webfetch: "allow",
websearch: "allow",
codesearch: "allow",
codebase_search: "allow",
...mcpRules,
}),
@@ -216,7 +214,7 @@ describe("Ask agent tool disabled checks", () => {
})
test("allowed tools are not disabled", () => {
const tools = ["read", "grep", "glob", "list", "question", "webfetch", "websearch", "codesearch", "codebase_search"]
const tools = ["read", "grep", "glob", "list", "question", "webfetch", "websearch", "codebase_search"]
const result = Permission.disabled(tools, ruleset)
for (const tool of tools) {
expect(result.has(tool)).toBe(false)
@@ -1,34 +0,0 @@
import { afterEach, expect } from "bun:test"
import { Effect, Layer } from "effect"
import { Agent } from "../../src/agent/agent"
import { Auth } from "../../src/auth"
import { Config } from "../../src/config/config"
import { RuntimeFlags } from "../../src/effect/runtime-flags"
import { Permission } from "../../src/permission"
import { Plugin } from "../../src/plugin"
import { Provider } from "../../src/provider/provider"
import { Skill } from "../../src/skill"
import { disposeAllInstances } from "../fixture/fixture"
import { testEffect } from "../lib/effect"
const layer = Agent.layer.pipe(
Layer.provide(Plugin.defaultLayer),
Layer.provide(Provider.defaultLayer),
Layer.provide(Auth.defaultLayer),
Layer.provide(Config.defaultLayer),
Layer.provide(Skill.defaultLayer),
Layer.provide(RuntimeFlags.layer({ experimentalScout: true })),
)
const it = testEffect(layer)
afterEach(async () => {
await disposeAllInstances()
})
it.instance("keeps codesearch available to Scout", () =>
Effect.gen(function* () {
const scout = yield* Agent.Service.use((service) => service.get("scout"))
expect(scout).toBeDefined()
expect(Permission.evaluate("codesearch", "*", scout!.permission).action).toBe("allow")
}),
)
@@ -39,10 +39,10 @@ describe("kilocode tool registry indexing", () => {
const ids = yield* registry.ids()
expect(ids).not.toContain("semantic_search")
expect(ids).not.toContain("codesearch")
expect(ids).toContain("question")
expect(ids).toContain("read")
expect(ids).toContain("suggest")
expect(ids).toContain("codesearch")
expect(avail).not.toHaveBeenCalled()
} finally {
avail.mockRestore()