cd26320f62
* feat: add WarpGrep AI-powered codebase search tool Add WarpGrep integration as a new tool for intelligent multi-step codebase search. WarpGrep delegates search to Morph's RL-trained search agent, which runs parallel tool calls across multiple turns and returns only relevant code spans. - Add WarpGrep core client with multi-turn API loop, local tool executors (ripgrep, file read, directory list), and XML parsing - Add tool definition gated behind KILO_ENABLE_WARPGREP flag - Register tool in registry with feature flag gating - Add warpgrep permission to orchestrator, ask, and explore agents - Conditionally enhance explore agent prompt when WarpGrep available - Add unit tests for parsing, file ops, and tool registration * fix: align warpgrep with Morph XML protocol * chore: drop warpgrep test changes from branch * chore: remove warpgrep test files from branch * refactor: replace custom WarpGrep implementation with @morphllm/morphsdk - Delete 396-line custom warpgrep.ts, replace with SDK's WarpGrepClient - Only check MORPH_API_KEY (drop WARPGREP_API_KEY) - Route through Kilo proxy during free period when no API key is set - Add actionable error message for when free period ends - Grep for FREE_PERIOD_TODO to find what to change post-free-period Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: rename warpgrep to codebase_search, add error toast for 429/402 - Rename tool from warpgrep to codebase_search throughout - Switch proxy URL to /api/gateway - Detect auth/rate-limit errors (401/402/429) and show actionable fallback message telling users to set MORPH_API_KEY - Fire a TUI toast notification on auth/rate-limit errors so users see a visible popup, not just hidden tool output - Wire up GlobalBus "global.event" in TUI thread so Bus events from tools can reach the TUI event system Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * build: bump @morphllm/morphsdk to 0.2.141 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: use Bus.publish for toast, revert global.event subscription Address PR review: emit toast via Bus.publish(TuiEvent.ToastShow) instead of GlobalBus.emit() so it works in both direct-RPC and server-backed TUI modes. Revert the global.event subscription in createEventSource since it's no longer needed and caused double event delivery. Also update codebase_search tool description to clarify natural language input. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add codebase search toggle to experimental settings Replace KILO_ENABLE_WARPGREP env var with a UI toggle in the Experimental settings tab. The tool is now gated by the experimental.codebase_search config field, accessible from both VSCode settings and TUI config file. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Update packages/opencode/src/tool/warpgrep.ts Co-authored-by: Marius <marius@kilocode.ai> * feat: limit codebase_search output to prevent context bloat When search results exceed 45k chars (~15k tokens), degrade to showing file paths and line ranges instead of full content. Also bumps @morphllm/morphsdk from 0.2.129 to 0.2.147. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * build: bump @morphllm/morphsdk to 0.2.148 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: format codebaseSearch i18n strings to respect prettier line width * fix: only advertise codebase_search in explore prompt when feature flag is enabled --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Christiaan Arnoldus <christiaan.arnoldus@outlook.com> Co-authored-by: Marius <marius@kilocode.ai>
144 lines
5.0 KiB
JSON
144 lines
5.0 KiB
JSON
{
|
|
"$schema": "https://json.schemastore.org/package.json",
|
|
"version": "7.0.47",
|
|
"name": "@kilocode/cli",
|
|
"type": "module",
|
|
"license": "MIT",
|
|
"private": true,
|
|
"scripts": {
|
|
"typecheck": "tsgo --noEmit",
|
|
"test": "bun test --timeout 30000",
|
|
"build": "bun run script/build.ts",
|
|
"dev": "bun run --conditions=browser ./src/index.ts",
|
|
"random": "echo 'Random script updated at $(date)' && echo 'Change queued successfully' && echo 'Another change made' && echo 'Yet another change' && echo 'One more change' && echo 'Final change' && echo 'Another final change' && echo 'Yet another final change'",
|
|
"clean": "echo 'Cleaning up...' && rm -rf node_modules dist",
|
|
"lint": "echo 'Running lint checks...' && bun test --coverage",
|
|
"format": "echo 'Formatting code...' && bun run --prettier --write src/**/*.ts",
|
|
"docs": "echo 'Generating documentation...' && find src -name '*.ts' -exec echo 'Processing: {}' \\;",
|
|
"deploy": "echo 'Deploying application...' && bun run build && echo 'Deployment completed successfully'",
|
|
"db": "bun drizzle-kit"
|
|
},
|
|
"bin": {
|
|
"opencode": "./bin/opencode"
|
|
},
|
|
"randomField": "this-is-a-random-value-12345",
|
|
"exports": {
|
|
"./*": "./src/*.ts"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "7.28.4",
|
|
"@octokit/webhooks-types": "7.6.1",
|
|
"@opencode-ai/script": "workspace:*",
|
|
"@parcel/watcher-darwin-arm64": "2.5.1",
|
|
"@parcel/watcher-darwin-x64": "2.5.1",
|
|
"@parcel/watcher-linux-arm64-glibc": "2.5.1",
|
|
"@parcel/watcher-linux-arm64-musl": "2.5.1",
|
|
"@parcel/watcher-linux-x64-glibc": "2.5.1",
|
|
"@parcel/watcher-linux-x64-musl": "2.5.1",
|
|
"@parcel/watcher-win32-x64": "2.5.1",
|
|
"@standard-schema/spec": "1.0.0",
|
|
"@tsconfig/bun": "catalog:",
|
|
"@types/babel__core": "7.20.5",
|
|
"@types/bun": "catalog:",
|
|
"@types/mime-types": "3.0.1",
|
|
"@types/turndown": "5.0.5",
|
|
"@types/yargs": "17.0.33",
|
|
"@typescript/native-preview": "catalog:",
|
|
"drizzle-kit": "1.0.0-beta.12-a5629fb",
|
|
"drizzle-orm": "1.0.0-beta.12-a5629fb",
|
|
"typescript": "catalog:",
|
|
"vscode-languageserver-types": "3.17.5",
|
|
"why-is-node-running": "3.2.2",
|
|
"zod-to-json-schema": "3.24.5"
|
|
},
|
|
"dependencies": {
|
|
"@actions/core": "1.11.1",
|
|
"@actions/github": "6.0.1",
|
|
"@agentclientprotocol/sdk": "0.14.1",
|
|
"@ai-sdk/amazon-bedrock": "3.0.82",
|
|
"@ai-sdk/anthropic": "2.0.65",
|
|
"@ai-sdk/azure": "2.0.91",
|
|
"@ai-sdk/cerebras": "1.0.36",
|
|
"@ai-sdk/cohere": "2.0.22",
|
|
"@ai-sdk/deepinfra": "1.0.36",
|
|
"@ai-sdk/gateway": "2.0.30",
|
|
"@ai-sdk/google": "2.0.54",
|
|
"@ai-sdk/google-vertex": "3.0.106",
|
|
"@ai-sdk/groq": "2.0.34",
|
|
"@ai-sdk/mistral": "2.0.27",
|
|
"@ai-sdk/openai": "2.0.89",
|
|
"@ai-sdk/openai-compatible": "1.0.32",
|
|
"@ai-sdk/perplexity": "2.0.23",
|
|
"@ai-sdk/provider": "2.0.1",
|
|
"@ai-sdk/provider-utils": "3.0.21",
|
|
"@ai-sdk/togetherai": "1.0.34",
|
|
"@ai-sdk/vercel": "1.0.33",
|
|
"@ai-sdk/xai": "2.0.56",
|
|
"@aws-sdk/credential-providers": "3.993.0",
|
|
"@clack/prompts": "1.0.0-alpha.1",
|
|
"@gitlab/gitlab-ai-provider": "3.6.0",
|
|
"@gitlab/opencode-gitlab-auth": "1.3.3",
|
|
"@hono/standard-validator": "0.1.5",
|
|
"@hono/zod-validator": "catalog:",
|
|
"@kilocode/kilo-gateway": "workspace:*",
|
|
"@kilocode/kilo-telemetry": "workspace:*",
|
|
"@kilocode/plugin": "workspace:*",
|
|
"@kilocode/sdk": "workspace:*",
|
|
"@modelcontextprotocol/sdk": "1.25.2",
|
|
"@morphllm/morphsdk": "0.2.148",
|
|
"@octokit/graphql": "9.0.2",
|
|
"@octokit/rest": "catalog:",
|
|
"@openauthjs/openauth": "catalog:",
|
|
"@opencode-ai/script": "workspace:*",
|
|
"@opencode-ai/util": "workspace:*",
|
|
"@openrouter/ai-sdk-provider": "1.5.4",
|
|
"@opentui/core": "0.1.86",
|
|
"@opentui/solid": "0.1.86",
|
|
"@parcel/watcher": "2.5.1",
|
|
"@pierre/diffs": "catalog:",
|
|
"@solid-primitives/event-bus": "1.1.2",
|
|
"@solid-primitives/scheduled": "1.5.2",
|
|
"@standard-schema/spec": "1.0.0",
|
|
"@zip.js/zip.js": "2.7.62",
|
|
"ai": "catalog:",
|
|
"ai-gateway-provider": "2.3.1",
|
|
"bonjour-service": "1.3.0",
|
|
"bun-pty": "0.4.8",
|
|
"chokidar": "4.0.3",
|
|
"clipboardy": "4.0.0",
|
|
"decimal.js": "10.5.0",
|
|
"diff": "catalog:",
|
|
"drizzle-orm": "1.0.0-beta.12-a5629fb",
|
|
"fuzzysort": "3.1.0",
|
|
"glob": "13.0.5",
|
|
"google-auth-library": "10.5.0",
|
|
"gray-matter": "4.0.3",
|
|
"hono": "catalog:",
|
|
"hono-openapi": "catalog:",
|
|
"ignore": "7.0.5",
|
|
"jsonc-parser": "3.3.1",
|
|
"mime-types": "3.0.2",
|
|
"minimatch": "10.0.3",
|
|
"open": "10.1.2",
|
|
"opentui-spinner": "0.0.6",
|
|
"partial-json": "0.1.7",
|
|
"remeda": "catalog:",
|
|
"simple-git": "3.31.1",
|
|
"solid-js": "catalog:",
|
|
"strip-ansi": "7.1.2",
|
|
"tree-sitter-bash": "0.25.0",
|
|
"turndown": "7.2.0",
|
|
"ulid": "catalog:",
|
|
"vscode-jsonrpc": "8.2.1",
|
|
"web-tree-sitter": "0.25.10",
|
|
"xdg-basedir": "5.1.0",
|
|
"yargs": "18.0.0",
|
|
"zod": "catalog:",
|
|
"zod-to-json-schema": "3.24.5"
|
|
},
|
|
"overrides": {
|
|
"drizzle-orm": "1.0.0-beta.12-a5629fb"
|
|
},
|
|
"peerDependencies": {}
|
|
}
|