mirror of
https://github.com/Kilo-Org/kilocode.git
synced 2026-09-19 01:51:21 +08:00
chore: Rebase with main
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
# Enforce LF line endings for all text files
|
||||
* text=auto eol=lf
|
||||
|
||||
# Git LFS tracking for binary/media files
|
||||
*.gif filter=lfs diff=lfs merge=lfs -text
|
||||
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
},
|
||||
"packages/app": {
|
||||
"name": "@opencode-ai/app",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"dependencies": {
|
||||
"@kilocode/kilo-i18n": "workspace:*",
|
||||
"@kilocode/kilo-ui": "workspace:*",
|
||||
@@ -49,7 +49,6 @@
|
||||
"@solidjs/router": "catalog:",
|
||||
"@thisbeyond/solid-dnd": "0.7.5",
|
||||
"diff": "catalog:",
|
||||
"effect": "4.0.0-beta.31",
|
||||
"fuzzysort": "catalog:",
|
||||
"ghostty-web": "github:anomalyco/ghostty-web#main",
|
||||
"luxon": "catalog:",
|
||||
@@ -80,7 +79,7 @@
|
||||
},
|
||||
"packages/desktop": {
|
||||
"name": "@opencode-ai/desktop",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"dependencies": {
|
||||
"@opencode-ai/app": "workspace:*",
|
||||
"@opencode-ai/ui": "workspace:*",
|
||||
@@ -113,7 +112,7 @@
|
||||
},
|
||||
"packages/desktop-electron": {
|
||||
"name": "@opencode-ai/desktop-electron",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"dependencies": {
|
||||
"@opencode-ai/app": "workspace:*",
|
||||
"@opencode-ai/ui": "workspace:*",
|
||||
@@ -121,7 +120,6 @@
|
||||
"@solid-primitives/storage": "catalog:",
|
||||
"@solidjs/meta": "catalog:",
|
||||
"@solidjs/router": "0.15.4",
|
||||
"effect": "4.0.0-beta.31",
|
||||
"electron-log": "^5",
|
||||
"electron-store": "^10",
|
||||
"electron-updater": "^6",
|
||||
@@ -144,7 +142,7 @@
|
||||
},
|
||||
"packages/kilo-docs": {
|
||||
"name": "@kilocode/kilo-docs",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"dependencies": {
|
||||
"@docsearch/css": "^4",
|
||||
"@docsearch/js": "^4",
|
||||
@@ -173,7 +171,7 @@
|
||||
},
|
||||
"packages/kilo-gateway": {
|
||||
"name": "@kilocode/kilo-gateway",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"dependencies": {
|
||||
"@ai-sdk/anthropic": "2.0.65",
|
||||
"@ai-sdk/openai": "2.0.101",
|
||||
@@ -208,7 +206,7 @@
|
||||
},
|
||||
"packages/kilo-i18n": {
|
||||
"name": "@kilocode/kilo-i18n",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"devDependencies": {
|
||||
"@tsconfig/node22": "catalog:",
|
||||
"@types/bun": "catalog:",
|
||||
@@ -218,7 +216,7 @@
|
||||
},
|
||||
"packages/kilo-telemetry": {
|
||||
"name": "@kilocode/kilo-telemetry",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"dependencies": {
|
||||
"@kilocode/kilo-gateway": "workspace:*",
|
||||
"@opentelemetry/api": "1.9.0",
|
||||
@@ -238,7 +236,7 @@
|
||||
},
|
||||
"packages/kilo-ui": {
|
||||
"name": "@kilocode/kilo-ui",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"dependencies": {
|
||||
"@kobalte/core": "0.13.11",
|
||||
"@opencode-ai/util": "workspace:*",
|
||||
@@ -273,7 +271,7 @@
|
||||
},
|
||||
"packages/kilo-vscode": {
|
||||
"name": "kilo-code",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"dependencies": {
|
||||
"@anthropic-ai/sdk": "^0.39.0",
|
||||
"@kilocode/kilo-i18n": "workspace:*",
|
||||
@@ -326,7 +324,7 @@
|
||||
},
|
||||
"packages/opencode": {
|
||||
"name": "@kilocode/cli",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"bin": {
|
||||
"kilo": "./bin/kilo",
|
||||
"kilocode": "./bin/kilo",
|
||||
@@ -389,7 +387,6 @@
|
||||
"decimal.js": "10.5.0",
|
||||
"diff": "catalog:",
|
||||
"drizzle-orm": "1.0.0-beta.16-ea816b6",
|
||||
"effect": "catalog:",
|
||||
"fuzzysort": "3.1.0",
|
||||
"glob": "13.0.5",
|
||||
"google-auth-library": "10.5.0",
|
||||
@@ -404,7 +401,6 @@
|
||||
"opentui-spinner": "0.0.6",
|
||||
"partial-json": "0.1.7",
|
||||
"remeda": "catalog:",
|
||||
"semver": "^7.6.3",
|
||||
"simple-git": "3.31.1",
|
||||
"solid-js": "catalog:",
|
||||
"strip-ansi": "7.1.2",
|
||||
@@ -421,7 +417,6 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.28.4",
|
||||
"@effect/language-service": "0.79.0",
|
||||
"@octokit/webhooks-types": "7.6.1",
|
||||
"@opencode-ai/script": "workspace:*",
|
||||
"@parcel/watcher-darwin-arm64": "2.5.1",
|
||||
@@ -437,7 +432,6 @@
|
||||
"@types/babel__core": "7.20.5",
|
||||
"@types/bun": "catalog:",
|
||||
"@types/mime-types": "3.0.1",
|
||||
"@types/semver": "^7.5.8",
|
||||
"@types/turndown": "5.0.5",
|
||||
"@types/which": "3.0.4",
|
||||
"@types/yargs": "17.0.33",
|
||||
@@ -452,7 +446,7 @@
|
||||
},
|
||||
"packages/plugin": {
|
||||
"name": "@kilocode/plugin",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"dependencies": {
|
||||
"@kilocode/sdk": "workspace:*",
|
||||
"zod": "catalog:",
|
||||
@@ -466,18 +460,14 @@
|
||||
},
|
||||
"packages/script": {
|
||||
"name": "@opencode-ai/script",
|
||||
"version": "7.1.9",
|
||||
"dependencies": {
|
||||
"semver": "^7.6.3",
|
||||
},
|
||||
"version": "7.1.11",
|
||||
"devDependencies": {
|
||||
"@types/bun": "catalog:",
|
||||
"@types/semver": "^7.5.8",
|
||||
},
|
||||
},
|
||||
"packages/sdk/js": {
|
||||
"name": "@kilocode/sdk",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"devDependencies": {
|
||||
"@hey-api/openapi-ts": "0.90.10",
|
||||
"@tsconfig/node22": "catalog:",
|
||||
@@ -488,7 +478,7 @@
|
||||
},
|
||||
"packages/storybook": {
|
||||
"name": "@opencode-ai/storybook",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"devDependencies": {
|
||||
"@opencode-ai/ui": "workspace:*",
|
||||
"@solidjs/meta": "catalog:",
|
||||
@@ -511,7 +501,7 @@
|
||||
},
|
||||
"packages/ui": {
|
||||
"name": "@opencode-ai/ui",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"dependencies": {
|
||||
"@kilocode/sdk": "workspace:*",
|
||||
"@kobalte/core": "catalog:",
|
||||
@@ -558,7 +548,7 @@
|
||||
},
|
||||
"packages/util": {
|
||||
"name": "@opencode-ai/util",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"dependencies": {
|
||||
"zod": "catalog:",
|
||||
},
|
||||
@@ -608,7 +598,6 @@
|
||||
"dompurify": "3.3.1",
|
||||
"drizzle-kit": "1.0.0-beta.16-ea816b6",
|
||||
"drizzle-orm": "1.0.0-beta.16-ea816b6",
|
||||
"effect": "4.0.0-beta.31",
|
||||
"fuzzysort": "3.1.0",
|
||||
"hono": "4.10.7",
|
||||
"hono-openapi": "1.1.2",
|
||||
@@ -928,8 +917,6 @@
|
||||
|
||||
"@drizzle-team/brocli": ["@drizzle-team/brocli@0.11.0", "", {}, "sha512-hD3pekGiPg0WPCCGAZmusBBJsDqGUR66Y452YgQsZOnkdQ7ViEPKuyP4huUGEZQefp8g34RRodXYmJ2TbCH+tg=="],
|
||||
|
||||
"@effect/language-service": ["@effect/language-service@0.79.0", "", { "bin": { "effect-language-service": "cli.js" } }, "sha512-DEmIOsg1GjjP6s9HXH1oJrW+gDmzkhVv9WOZl6to5eNyyCrjz1S2PDqQ7aYrW/HuifhfwI5Bik1pK4pj7Z+lrg=="],
|
||||
|
||||
"@electron/asar": ["@electron/asar@3.4.1", "", { "dependencies": { "commander": "^5.0.0", "glob": "^7.1.6", "minimatch": "^3.0.4" }, "bin": { "asar": "bin/asar.js" } }, "sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA=="],
|
||||
|
||||
"@electron/fuses": ["@electron/fuses@1.8.0", "", { "dependencies": { "chalk": "^4.1.1", "fs-extra": "^9.0.1", "minimist": "^1.2.5" }, "bin": { "electron-fuses": "dist/bin.js" } }, "sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw=="],
|
||||
@@ -1262,18 +1249,6 @@
|
||||
|
||||
"@morphllm/morphsdk": ["@morphllm/morphsdk@0.2.141", "", { "dependencies": { "@vscode/ripgrep": "^1.17.0", "ai": ">=5.0.0", "diff": "^7.0.0", "isomorphic-git": "^1.25.10", "openai": "^4.52.7", "zod": ">=3.23.0" }, "peerDependencies": { "@anthropic-ai/sdk": ">=0.25.0", "@google/generative-ai": ">=0.21.0" }, "optionalPeers": ["@anthropic-ai/sdk", "@google/generative-ai"] }, "sha512-Vtqriw2gYpzp4A4IX0oQlLMI44aAe8zBKzWaOrmV7T6fi4T7IbKBzSBX7HjIFY1yEXILb8FpwdO6C6dkUlMhYQ=="],
|
||||
|
||||
"@msgpackr-extract/msgpackr-extract-darwin-arm64": ["@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw=="],
|
||||
|
||||
"@msgpackr-extract/msgpackr-extract-darwin-x64": ["@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw=="],
|
||||
|
||||
"@msgpackr-extract/msgpackr-extract-linux-arm": ["@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3", "", { "os": "linux", "cpu": "arm" }, "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw=="],
|
||||
|
||||
"@msgpackr-extract/msgpackr-extract-linux-arm64": ["@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg=="],
|
||||
|
||||
"@msgpackr-extract/msgpackr-extract-linux-x64": ["@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3", "", { "os": "linux", "cpu": "x64" }, "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg=="],
|
||||
|
||||
"@msgpackr-extract/msgpackr-extract-win32-x64": ["@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3", "", { "os": "win32", "cpu": "x64" }, "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ=="],
|
||||
|
||||
"@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.1", "", { "dependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1", "@tybys/wasm-util": "^0.10.1" } }, "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A=="],
|
||||
|
||||
"@next/env": ["@next/env@16.2.0", "", {}, "sha512-OZIbODWWAi0epQRCRjNe1VO45LOFBzgiyqmTLzIqWq6u1wrxKnAyz1HH6tgY/Mc81YzIjRPoYsPAEr4QV4l9TA=="],
|
||||
@@ -2056,8 +2031,6 @@
|
||||
|
||||
"@types/scheduler": ["@types/scheduler@0.26.0", "", {}, "sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA=="],
|
||||
|
||||
"@types/semver": ["@types/semver@7.7.1", "", {}, "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA=="],
|
||||
|
||||
"@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="],
|
||||
|
||||
"@types/tunnel": ["@types/tunnel@0.0.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA=="],
|
||||
@@ -2718,8 +2691,6 @@
|
||||
|
||||
"ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="],
|
||||
|
||||
"effect": ["effect@4.0.0-beta.31", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.5.3", "find-my-way-ts": "^0.1.6", "ini": "^6.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^1.11.8", "multipasta": "^0.2.7", "toml": "^3.0.0", "uuid": "^13.0.0", "yaml": "^2.8.2" } }, "sha512-w3QwJnlaLtWWiUSzhCXUTIisnULPsxLzpO6uqaBFjXybKx6FvCqsLJT6v4dV7G9eA9jeTtG6Gv7kF+jGe3HxzA=="],
|
||||
|
||||
"ejs": ["ejs@3.1.10", "", { "dependencies": { "jake": "^10.8.5" }, "bin": { "ejs": "bin/cli.js" } }, "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA=="],
|
||||
|
||||
"electron": ["electron@40.4.1", "", { "dependencies": { "@electron/get": "^2.0.0", "@types/node": "^24.9.0", "extract-zip": "^2.0.1" }, "bin": { "electron": "cli.js" } }, "sha512-N1ZXybQZL8kYemO8vAeh9nrk4mSvqlAO8xs0QCHkXIvRnuB/7VGwEehjvQbsU5/f4bmTKpG+2GQERe/zmKpudQ=="],
|
||||
@@ -2850,8 +2821,6 @@
|
||||
|
||||
"extsprintf": ["extsprintf@1.4.1", "", {}, "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA=="],
|
||||
|
||||
"fast-check": ["fast-check@4.6.0", "", { "dependencies": { "pure-rand": "^8.0.0" } }, "sha512-h7H6Dm0Fy+H4ciQYFxFjXnXkzR2kr9Fb22c0UBpHnm59K2zpr2t13aPTHlltFiNT6zuxp6HMPAVVvgur4BLdpA=="],
|
||||
|
||||
"fast-content-type-parse": ["fast-content-type-parse@3.0.0", "", {}, "sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg=="],
|
||||
|
||||
"fast-decode-uri-component": ["fast-decode-uri-component@1.0.1", "", {}, "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg=="],
|
||||
@@ -2912,8 +2881,6 @@
|
||||
|
||||
"find-my-way": ["find-my-way@9.5.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-querystring": "^1.0.0", "safe-regex2": "^5.0.0" } }, "sha512-VW2RfnmscZO5KgBY5XVyKREMW5nMZcxDy+buTOsL+zIPnBlbKm+00sgzoQzq1EVh4aALZLfKdwv6atBGcjvjrQ=="],
|
||||
|
||||
"find-my-way-ts": ["find-my-way-ts@0.1.6", "", {}, "sha512-a85L9ZoXtNAey3Y6Z+eBWW658kO/MwR7zIafkIUPUMf3isZG0NCs2pjW2wtjxAKuJPxMAsHUIP4ZPGv0o5gyTA=="],
|
||||
|
||||
"find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="],
|
||||
|
||||
"flat": ["flat@5.0.2", "", { "bin": { "flat": "cli.js" } }, "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="],
|
||||
@@ -3094,7 +3061,7 @@
|
||||
|
||||
"inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
|
||||
|
||||
"ini": ["ini@6.0.0", "", {}, "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ=="],
|
||||
"ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="],
|
||||
|
||||
"internmap": ["internmap@1.0.1", "", {}, "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw=="],
|
||||
|
||||
@@ -3252,8 +3219,6 @@
|
||||
|
||||
"knip": ["knip@5.85.0", "", { "dependencies": { "@nodelib/fs.walk": "^1.2.3", "fast-glob": "^3.3.3", "formatly": "^0.3.0", "jiti": "^2.6.0", "js-yaml": "^4.1.1", "minimist": "^1.2.8", "oxc-resolver": "^11.15.0", "picocolors": "^1.1.1", "picomatch": "^4.0.1", "smol-toml": "^1.5.2", "strip-json-comments": "5.0.3", "zod": "^4.1.11" }, "peerDependencies": { "@types/node": ">=18", "typescript": ">=5.0.4 <7" }, "bin": { "knip": "bin/knip.js", "knip-bun": "bin/knip-bun.js" } }, "sha512-V2kyON+DZiYdNNdY6GALseiNCwX7dYdpz9Pv85AUn69Gk0UKCts+glOKWfe5KmaMByRjM9q17Mzj/KinTVOyxg=="],
|
||||
|
||||
"kubernetes-types": ["kubernetes-types@1.30.0", "", {}, "sha512-Dew1okvhM/SQcIa2rcgujNndZwU8VnSapDgdxlYoB84ZlpAD43U6KLAFqYo17ykSFGHNPrg0qry0bP+GJd9v7Q=="],
|
||||
|
||||
"langium": ["langium@4.2.1", "", { "dependencies": { "chevrotain": "~11.1.1", "chevrotain-allstar": "~0.3.1", "vscode-languageserver": "~9.0.1", "vscode-languageserver-textdocument": "~1.0.11", "vscode-uri": "~3.1.0" } }, "sha512-zu9QWmjpzJcomzdJQAHgDVhLGq5bLosVak1KVa40NzQHXfqr4eAHupvnPOVXEoLkg6Ocefvf/93d//SB7du4YQ=="],
|
||||
|
||||
"layout-base": ["layout-base@1.0.2", "", {}, "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg=="],
|
||||
@@ -3454,16 +3419,10 @@
|
||||
|
||||
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
|
||||
|
||||
"msgpackr": ["msgpackr@1.11.9", "", { "optionalDependencies": { "msgpackr-extract": "^3.0.2" } }, "sha512-FkoAAyyA6HM8wL882EcEyFZ9s7hVADSwG9xrVx3dxxNQAtgADTrJoEWivID82Iv1zWDsv/OtbrrcZAzGzOMdNw=="],
|
||||
|
||||
"msgpackr-extract": ["msgpackr-extract@3.0.3", "", { "dependencies": { "node-gyp-build-optional-packages": "5.2.2" }, "optionalDependencies": { "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" }, "bin": { "download-msgpackr-prebuilds": "bin/download-prebuilds.js" } }, "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA=="],
|
||||
|
||||
"mssql": ["mssql@11.0.1", "", { "dependencies": { "@tediousjs/connection-string": "^0.5.0", "commander": "^11.0.0", "debug": "^4.3.3", "rfdc": "^1.3.0", "tarn": "^3.0.2", "tedious": "^18.2.1" }, "bin": { "mssql": "bin/mssql" } }, "sha512-KlGNsugoT90enKlR8/G36H0kTxPthDhmtNUCwEHvgRza5Cjpjoj+P2X6eMpFUDN7pFrJZsKadL4x990G8RBE1w=="],
|
||||
|
||||
"multicast-dns": ["multicast-dns@7.2.5", "", { "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" }, "bin": { "multicast-dns": "cli.js" } }, "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg=="],
|
||||
|
||||
"multipasta": ["multipasta@0.2.7", "", {}, "sha512-KPA58d68KgGil15oDqXjkUBEBYc00XvbPj5/X+dyzeo/lWm9Nc25pQRlf1D+gv4OpK7NM0J1odrbu9JNNGvynA=="],
|
||||
|
||||
"mute-stream": ["mute-stream@0.0.8", "", {}, "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="],
|
||||
|
||||
"nanoevents": ["nanoevents@7.0.1", "", {}, "sha512-o6lpKiCxLeijK4hgsqfR6CNToPyRU3keKyyI6uwuHRvpRTbZ0wXw51WRgyldVugZqoJfkGFrjrIenYH3bfEO3Q=="],
|
||||
@@ -3496,8 +3455,6 @@
|
||||
|
||||
"node-gyp-build": ["node-gyp-build@4.8.4", "", { "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", "node-gyp-build-test": "build-test.js" } }, "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ=="],
|
||||
|
||||
"node-gyp-build-optional-packages": ["node-gyp-build-optional-packages@5.2.2", "", { "dependencies": { "detect-libc": "^2.0.1" }, "bin": { "node-gyp-build-optional-packages": "bin.js", "node-gyp-build-optional-packages-optional": "optional.js", "node-gyp-build-optional-packages-test": "build-test.js" } }, "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw=="],
|
||||
|
||||
"node-html-parser": ["node-html-parser@7.1.0", "", { "dependencies": { "css-select": "^5.1.0", "he": "1.2.0" } }, "sha512-iJo8b2uYGT40Y8BTyy5ufL6IVbN8rbm/1QK2xffXU/1a/v3AAa0d1YAoqBNYqaS4R/HajkWIpIfdE6KcyFh1AQ=="],
|
||||
|
||||
"node-releases": ["node-releases@2.0.36", "", {}, "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA=="],
|
||||
@@ -3738,8 +3695,6 @@
|
||||
|
||||
"punycode.js": ["punycode.js@2.3.1", "", {}, "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="],
|
||||
|
||||
"pure-rand": ["pure-rand@8.4.0", "", {}, "sha512-IoM8YF/jY0hiugFo/wOWqfmarlE6J0wc6fDK1PhftMk7MGhVZl88sZimmqBBFomLOCSmcCCpsfj7wXASCpvK9A=="],
|
||||
|
||||
"qrcode": ["qrcode@1.5.4", "", { "dependencies": { "dijkstrajs": "^1.0.1", "pngjs": "^5.0.0", "yargs": "^15.3.1" }, "bin": { "qrcode": "bin/qrcode" } }, "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg=="],
|
||||
|
||||
"qs": ["qs@6.15.0", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ=="],
|
||||
@@ -4148,8 +4103,6 @@
|
||||
|
||||
"token-types": ["token-types@4.2.1", "", { "dependencies": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } }, "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ=="],
|
||||
|
||||
"toml": ["toml@3.0.0", "", {}, "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w=="],
|
||||
|
||||
"tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="],
|
||||
|
||||
"traverse": ["traverse@0.3.9", "", {}, "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ=="],
|
||||
@@ -4266,7 +4219,7 @@
|
||||
|
||||
"utils-merge": ["utils-merge@1.0.1", "", {}, "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="],
|
||||
|
||||
"uuid": ["uuid@13.0.0", "", { "bin": { "uuid": "dist-node/bin/uuid" } }, "sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w=="],
|
||||
"uuid": ["uuid@11.1.0", "", { "bin": { "uuid": "dist/esm/bin/uuid" } }, "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A=="],
|
||||
|
||||
"v8-to-istanbul": ["v8-to-istanbul@9.3.0", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^2.0.0" } }, "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA=="],
|
||||
|
||||
@@ -4988,8 +4941,6 @@
|
||||
|
||||
"drizzle-kit/esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="],
|
||||
|
||||
"effect/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="],
|
||||
|
||||
"electron-builder/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
|
||||
|
||||
"electron-builder/yargs": ["yargs@17.7.2", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="],
|
||||
@@ -5096,8 +5047,6 @@
|
||||
|
||||
"mermaid/marked": ["marked@16.4.2", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA=="],
|
||||
|
||||
"mermaid/uuid": ["uuid@11.1.0", "", { "bin": { "uuid": "dist/esm/bin/uuid" } }, "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A=="],
|
||||
|
||||
"micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
|
||||
|
||||
"minipass-flush/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
|
||||
@@ -5126,8 +5075,6 @@
|
||||
|
||||
"node-gyp/which": ["which@5.0.0", "", { "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" } }, "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ=="],
|
||||
|
||||
"node-gyp-build-optional-packages/detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
|
||||
|
||||
"node-sarif-builder/fs-extra": ["fs-extra@11.3.4", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA=="],
|
||||
|
||||
"normalize-package-data/hosted-git-info": ["hosted-git-info@7.0.2", "", { "dependencies": { "lru-cache": "^10.0.1" } }, "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w=="],
|
||||
@@ -5194,8 +5141,6 @@
|
||||
|
||||
"qrcode/yargs": ["yargs@15.4.1", "", { "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", "find-up": "^4.1.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" } }, "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A=="],
|
||||
|
||||
"rc/ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="],
|
||||
|
||||
"rc/strip-json-comments": ["strip-json-comments@2.0.1", "", {}, "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="],
|
||||
|
||||
"read-pkg/unicorn-magic": ["unicorn-magic@0.1.0", "", {}, "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ=="],
|
||||
|
||||
+1
-1
@@ -113,6 +113,6 @@
|
||||
"@openrouter/ai-sdk-provider@1.5.4": "patches/@openrouter%2Fai-sdk-provider@1.5.4.patch",
|
||||
"ghostty-web@0.3.0": "patches/ghostty-web@0.3.0.patch"
|
||||
},
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"peerDependencies": {}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@opencode-ai/app",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"description": "",
|
||||
"type": "module",
|
||||
"exports": {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@opencode-ai/desktop-electron",
|
||||
"private": true,
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"homepage": "https://opencode.ai",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@opencode-ai/desktop",
|
||||
"private": true,
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
id = "kilo"
|
||||
name = "Kilo"
|
||||
description = "The open source coding agent."
|
||||
version = "1.2.25"
|
||||
version = "7.1.11"
|
||||
schema_version = 1
|
||||
authors = ["Anomaly"]
|
||||
repository = "https://github.com/Kilo-Org/kilocode"
|
||||
@@ -11,26 +11,26 @@ name = "Kilo"
|
||||
icon = "./icons/opencode.svg"
|
||||
|
||||
[agent_servers.opencode.targets.darwin-aarch64]
|
||||
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v1.2.25/opencode-darwin-arm64.zip"
|
||||
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.1.11/opencode-darwin-arm64.zip"
|
||||
cmd = "./opencode"
|
||||
args = ["acp"]
|
||||
|
||||
[agent_servers.opencode.targets.darwin-x86_64]
|
||||
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v1.2.25/opencode-darwin-x64.zip"
|
||||
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.1.11/opencode-darwin-x64.zip"
|
||||
cmd = "./opencode"
|
||||
args = ["acp"]
|
||||
|
||||
[agent_servers.opencode.targets.linux-aarch64]
|
||||
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v1.2.25/opencode-linux-arm64.tar.gz"
|
||||
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.1.11/opencode-linux-arm64.tar.gz"
|
||||
cmd = "./opencode"
|
||||
args = ["acp"]
|
||||
|
||||
[agent_servers.opencode.targets.linux-x86_64]
|
||||
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v1.2.25/opencode-linux-x64.tar.gz"
|
||||
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.1.11/opencode-linux-x64.tar.gz"
|
||||
cmd = "./opencode"
|
||||
args = ["acp"]
|
||||
|
||||
[agent_servers.opencode.targets.windows-x86_64]
|
||||
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v1.2.25/opencode-windows-x64.zip"
|
||||
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.1.11/opencode-windows-x64.zip"
|
||||
cmd = "./opencode.exe"
|
||||
args = ["acp"]
|
||||
|
||||
@@ -29,6 +29,7 @@ export const AutomateNav: NavSection[] = [
|
||||
{
|
||||
href: "/automate/extending/auto-launch",
|
||||
children: "Auto-launch Configuration",
|
||||
platform: "legacy",
|
||||
},
|
||||
{
|
||||
href: "/automate/mcp/overview",
|
||||
@@ -53,8 +54,8 @@ export const AutomateNav: NavSection[] = [
|
||||
{
|
||||
title: "Tools",
|
||||
links: [
|
||||
{ href: "/automate/how-tools-work", children: "How Tools Work" },
|
||||
{ href: "/automate/tools", children: "Tools Details" },
|
||||
{ href: "/automate/how-tools-work", children: "How Tools Work", platform: "legacy" },
|
||||
{ href: "/automate/tools", children: "Tools Details", platform: "legacy" },
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@kilocode/kilo-docs",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev --webpack --port 3002",
|
||||
|
||||
@@ -7,6 +7,9 @@ description: "Integrate Kilo Code with your shell environment"
|
||||
|
||||
Terminal Shell Integration is a key feature that enables Kilo Code to execute commands in your terminal and intelligently process their output. This bidirectional communication between the AI and your development environment unlocks powerful automation capabilities.
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
## What is Shell Integration?
|
||||
|
||||
Shell integration is automatically enabled in Kilo Code and connects directly to your terminal's command execution lifecycle without requiring any setup from you. This built-in feature allows Kilo Code to:
|
||||
@@ -340,6 +343,80 @@ The [VS Code Terminal Integration Test Extension](https://github.com/KJ7LNW/vsce
|
||||
- Note your environment (OS, VS Code version, shell, and any shell prompt customization)
|
||||
- Open an issue with these details to help improve shell integration
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode & CLI" %}
|
||||
|
||||
## How Shell Execution Works
|
||||
|
||||
The new CLI and extension take a fundamentally different approach to shell execution. Instead of relying on VS Code's terminal shell integration, the CLI spawns and manages shell processes directly using the `bash` tool.
|
||||
|
||||
This means:
|
||||
|
||||
- **No VS Code shell integration required** — the CLI handles shell execution independently
|
||||
- **No shell integration setup or troubleshooting** — it works out of the box
|
||||
- **Consistent behavior** across environments — the same shell execution logic runs whether you use the CLI directly or through the VS Code extension
|
||||
|
||||
## The `bash` Tool
|
||||
|
||||
The `bash` tool is the primary way the agent executes shell commands. It spawns a persistent shell session and runs commands within it.
|
||||
|
||||
### Key Features
|
||||
|
||||
- **Working directory control**: Use the `workdir` parameter to run commands in a specific directory, instead of `cd <dir> && <command>` patterns
|
||||
- **Configurable timeout**: Set a per-command timeout in milliseconds (defaults to 2 minutes)
|
||||
- **Real-time output streaming**: Command output is streamed back as it's produced
|
||||
- **Process tree management**: The tool manages the full process tree, ensuring child processes are properly cleaned up
|
||||
|
||||
### Security Analysis
|
||||
|
||||
Commands are parsed using **Tree-sitter** before execution, enabling:
|
||||
|
||||
- Path resolution to detect file access patterns
|
||||
- External directory detection to flag commands that reach outside the project
|
||||
- Structured analysis of command intent for safer auto-approval decisions
|
||||
|
||||
### Shell Detection
|
||||
|
||||
The CLI automatically detects the appropriate shell for your platform using `Shell.acceptable()`. This selects a compatible shell (bash, zsh, etc.) without requiring manual configuration.
|
||||
|
||||
## Agent Manager Terminals (VS Code Extension)
|
||||
|
||||
When using the Kilo Code VS Code extension with the Agent Manager, each agent session gets its own dedicated VS Code terminal.
|
||||
|
||||
### Per-Session Terminals
|
||||
|
||||
- Each session creates a terminal named **`Agent: {branch}`**, where `{branch}` is the git branch or worktree the session is working in
|
||||
- The terminal's working directory is automatically set to the session's worktree directory
|
||||
- Terminals are standard VS Code integrated terminals — you can interact with them directly
|
||||
|
||||
### Keyboard Shortcuts
|
||||
|
||||
| Shortcut | Action |
|
||||
| --------------------------- | ---------------------------- |
|
||||
| <kbd>Cmd</kbd>+<kbd>/</kbd> | Focus the session's terminal |
|
||||
| <kbd>Cmd</kbd>+<kbd>.</kbd> | Cycle agent mode |
|
||||
|
||||
### Terminal Context Menu Actions
|
||||
|
||||
Right-click in an Agent Manager terminal to access these actions:
|
||||
|
||||
- **Add Terminal Content to Context** — sends the terminal's visible output to the agent as context
|
||||
- **Fix This Command** — asks the agent to diagnose and fix the last failed command
|
||||
- **Explain This Command** — asks the agent to explain what a command does
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
Shell execution in the new CLI is significantly simpler than the **VSCode** version's terminal integration. Most issues are resolved by ensuring:
|
||||
|
||||
1. **A supported shell is installed**: bash or zsh on macOS/Linux, PowerShell on Windows
|
||||
2. **The shell is on your PATH**: The CLI needs to find the shell binary
|
||||
3. **File permissions are correct**: The CLI needs execute permission on the shell binary
|
||||
|
||||
If commands fail to execute, check the CLI's log output for error details. The CLI logs the shell it detected and any errors during command execution.
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Support
|
||||
|
||||
If you've followed these steps and are still experiencing problems, please:
|
||||
|
||||
@@ -36,7 +36,6 @@ Connect Kilo Code to external tools and services:
|
||||
- [**Using MCP in Kilo Code**](/docs/automate/mcp/using-in-kilo-code) — Configuration guide
|
||||
- [**STDIO & SSE Transports**](/docs/automate/mcp/server-transports) — Local and remote server options
|
||||
- [**MCP vs API**](/docs/automate/mcp/mcp-vs-api) — When to use MCP
|
||||
- [**Using MCP in CLI**](/docs/automate/mcp/using-in-cli) — CLI-specific MCP setup
|
||||
|
||||
## Integrations
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ description: "How to use MCP servers in Kilo Code"
|
||||
|
||||
Model Context Protocol (MCP) extends Kilo Code's capabilities by connecting to external tools and services. This guide covers everything you need to know about using MCP with Kilo Code.
|
||||
|
||||
{% youtube url="https://youtu.be/6O9RQoQRX8A" caption="Demostrating MCP installation in Kilo Code" /%}
|
||||
{% youtube url="https://youtu.be/6O9RQoQRX8A" caption="Demonstrating MCP installation in Kilo Code" /%}
|
||||
|
||||
## Configuring MCP Servers
|
||||
|
||||
@@ -76,27 +76,34 @@ Remote servers support OAuth 2.0 authentication. If the server supports it, Kilo
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
MCP server configurations can be managed at two levels:
|
||||
MCP server configurations can be managed at two levels: **global** (applies across all workspaces) and **project-level** (specific to a single project). Project-level configuration takes precedence over global settings.
|
||||
|
||||
1. **Global Configuration**: Stored in the `mcp_settings.json` file, accessible via VS Code settings (see below). These settings apply across all your workspaces unless overridden by a project-level configuration.
|
||||
2. **Project-level Configuration**: Defined in a `.kilocode/mcp.json` file within your project's root directory. This allows you to set up project-specific servers and share configurations with your team by committing the file to version control. Kilo Code automatically detects and loads this file if it exists.
|
||||
| Scope | Path | Description |
|
||||
| ----------- | -------------------- | --------------------------------------------------------------- |
|
||||
| **Global** | `mcp_settings.json` | Accessible via VS Code settings. Applies across all workspaces. |
|
||||
| **Project** | `.kilocode/mcp.json` | In your project root. Auto-detected by Kilo Code. |
|
||||
|
||||
**Precedence**: If a server name exists in both global and project configurations, the **project-level configuration takes precedence**.
|
||||
Project-level configs can be committed to version control to share with your team.
|
||||
|
||||
### Editing MCP Settings Files
|
||||
{% /tab %}
|
||||
{% tab label="CLI" %}
|
||||
|
||||
You can edit both global and project-level MCP configuration files directly from the Kilo Code settings.
|
||||
The CLI accepts several config filenames. The recommended file is `kilo.json`:
|
||||
|
||||
1. Click the {% codicon name="gear" /%} icon in the top navigation of the Kilo Code pane to open `Settings`.
|
||||
2. Click the `Agent Behaviour` tab on the left side
|
||||
3. Select the `MCP Servers` sub-tab
|
||||
4. Click the appropriate button:
|
||||
- **`Edit Global MCP`**: Opens the global `mcp_settings.json` file.
|
||||
- **`Edit Project MCP`**: Opens the project-specific `.kilocode/mcp.json` file. If this file doesn't exist, Kilo Code will create it for you.
|
||||
| Scope | Recommended Path | Also supported |
|
||||
| ----------- | ------------------------------------ | -------------------------------------------------------------- |
|
||||
| **Global** | `~/.config/kilo/kilo.json` | `kilo.jsonc`, `opencode.json`, `opencode.jsonc`, `config.json` |
|
||||
| **Project** | `./kilo.json` or `./.kilo/kilo.json` | `kilo.jsonc`, `opencode.jsonc`, `opencode.json` |
|
||||
|
||||
{% image src="/docs/img/using-mcp-in-kilo-code/mcp-installed-config.png" alt="Edit Global MCP and Edit Project MCP buttons" width="600" caption="Edit Global MCP and Edit Project MCP buttons" /%}
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
Both files use a JSON format with a `mcpServers` object containing named server configurations:
|
||||
## Configuration Format
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
Both global and project-level files use a JSON format with a `mcpServers` object containing named server configurations:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -116,43 +123,43 @@ Both files use a JSON format with a `mcpServers` object containing named server
|
||||
|
||||
_Example of MCP Server config in Kilo Code (STDIO Transport)_
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
In the VS Code extension, open **Settings → MCP** and click **Add Server** to configure a new server through the UI. You can also edit the config files directly — see the **CLI** tab for the JSON format.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="CLI" %}
|
||||
|
||||
Add MCP servers under the `mcp` key in your config file. Each server has a unique name that you can reference in prompts.
|
||||
|
||||
```json
|
||||
{
|
||||
"mcp": {
|
||||
"my-server": {
|
||||
"type": "local",
|
||||
"command": ["npx", "-y", "my-mcp-command"],
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
You can disable a server by setting `enabled` to `false` without removing it from your config.
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Understanding Transport Types
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode" %}
|
||||
MCP supports two main transport types:
|
||||
|
||||
MCP supports two transport types:
|
||||
|
||||
#### Local (STDIO) Transport
|
||||
|
||||
Used for servers running on your machine as a child process:
|
||||
|
||||
- Communicates via standard input/output streams
|
||||
- Lower latency (no network overhead)
|
||||
- Better security (no network exposure)
|
||||
|
||||
#### Remote (HTTP/SSE) Transport
|
||||
|
||||
Used for servers accessed over HTTP/HTTPS:
|
||||
|
||||
- Can be hosted on a different machine
|
||||
- Supports multiple client connections
|
||||
- Requires network access
|
||||
- Supports OAuth 2.0 authentication
|
||||
|
||||
Kilo Code tries `StreamableHTTP` first, then falls back to `SSE` transport automatically for remote servers.
|
||||
- **Local (STDIO)**: Servers run as a child process on your machine, communicating over stdin/stdout.
|
||||
- **Remote (HTTP/SSE)**: Servers hosted over HTTP/HTTPS. Kilo Code tries `StreamableHTTP` first, then falls back to `SSE` automatically.
|
||||
|
||||
For more details, see [STDIO & SSE Transports](server-transports).
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
MCP supports three transport types for server communication:
|
||||
|
||||
#### STDIO Transport
|
||||
### STDIO Transport
|
||||
|
||||
Used for local servers running on your machine:
|
||||
|
||||
@@ -166,6 +173,9 @@ For more in-depth information about how STDIO transport works, see [STDIO Transp
|
||||
|
||||
STDIO configuration example:
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
@@ -182,7 +192,43 @@ STDIO configuration example:
|
||||
}
|
||||
```
|
||||
|
||||
#### Streamable HTTP Transport
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
In the VS Code extension, open **Settings → MCP**, click **Add Server**, and choose **Local (stdio)**. Fill in the command, arguments, and optional environment variables through the UI. You can also edit the config files directly — see the **CLI** tab for the JSON format.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="CLI" %}
|
||||
|
||||
```json
|
||||
{
|
||||
"mcp": {
|
||||
"my-local-server": {
|
||||
"type": "local",
|
||||
"command": ["npx", "-y", "my-mcp-command"],
|
||||
"enabled": true,
|
||||
"environment": {
|
||||
"API_KEY": "your_api_key"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Local Server Options
|
||||
|
||||
| Option | Type | Required | Description |
|
||||
| ------------- | ------- | -------- | --------------------------------------------------------------------- |
|
||||
| `type` | String | Yes | Must be `"local"`. |
|
||||
| `command` | Array | Yes | Command and arguments to run the MCP server. |
|
||||
| `environment` | Object | No | Environment variables to set when running the server. |
|
||||
| `enabled` | Boolean | No | Enable or disable the MCP server on startup. |
|
||||
| `timeout` | Number | No | Timeout in ms for fetching tools from the MCP server. Default: 30000. |
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
### Streamable HTTP Transport
|
||||
|
||||
Used for remote servers accessed over HTTP/HTTPS:
|
||||
|
||||
@@ -191,7 +237,8 @@ Used for remote servers accessed over HTTP/HTTPS:
|
||||
- Requires network access
|
||||
- Allows centralized deployment and management
|
||||
|
||||
Streamable HTTP transport configuration example:
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -209,7 +256,43 @@ Streamable HTTP transport configuration example:
|
||||
}
|
||||
```
|
||||
|
||||
#### SSE Transport
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
In the VS Code extension, open **Settings → MCP**, click **Add Server**, and choose **Remote (HTTP)**. Enter the server URL and optional headers through the UI. You can also edit the config files directly — see the **CLI** tab for the JSON format.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="CLI" %}
|
||||
|
||||
```json
|
||||
{
|
||||
"mcp": {
|
||||
"my-remote-server": {
|
||||
"type": "remote",
|
||||
"url": "https://my-mcp-server.com/mcp",
|
||||
"enabled": true,
|
||||
"headers": {
|
||||
"Authorization": "Bearer MY_API_KEY"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Remote Server Options
|
||||
|
||||
| Option | Type | Required | Description |
|
||||
| --------- | ------- | -------- | --------------------------------------------------------------------- |
|
||||
| `type` | String | Yes | Must be `"remote"`. |
|
||||
| `url` | String | Yes | URL of the remote MCP server. |
|
||||
| `enabled` | Boolean | No | Enable or disable the MCP server on startup. |
|
||||
| `headers` | Object | No | HTTP headers to send with requests. |
|
||||
| `timeout` | Number | No | Timeout in ms for fetching tools from the MCP server. Default: 30000. |
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
### SSE Transport
|
||||
|
||||
⚠️ DEPRECATED: The SSE Transport has been deprecated as of MCP specification version 2025-03-26. Please use the HTTP Stream Transport instead, which implements the new Streamable HTTP transport specification.
|
||||
|
||||
@@ -240,8 +323,23 @@ SSE configuration example:
|
||||
}
|
||||
```
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
## Managing MCP Servers
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
### Editing MCP Settings Files
|
||||
|
||||
You can edit both global and project-level MCP configuration files directly from the Kilo Code settings.
|
||||
|
||||
1. Click the {% codicon name="gear" /%} icon in the top navigation of the Kilo Code pane to open `Settings`.
|
||||
2. Click the `Agent Behaviour` tab on the left side
|
||||
3. Select the `MCP Servers` sub-tab
|
||||
4. Click the appropriate button:
|
||||
- **`Edit Global MCP`**: Opens the global `mcp_settings.json` file.
|
||||
- **`Edit Project MCP`**: Opens the project-specific `.kilocode/mcp.json` file. If this file doesn't exist, Kilo Code will create it for you.
|
||||
|
||||
{% image src="/docs/img/using-mcp-in-kilo-code/mcp-installed-config.png" alt="Edit Global MCP and Edit Project MCP buttons" width="600" caption="Edit Global MCP and Edit Project MCP buttons" /%}
|
||||
|
||||
### Deleting a Server
|
||||
|
||||
@@ -258,6 +356,53 @@ SSE configuration example:
|
||||
|
||||
1. Press the {% codicon name="activate" /%} toggle switch next to the MCP server to enable/disable it
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
In the VS Code extension, manage MCP servers from **Settings → MCP**:
|
||||
|
||||
- **Add a server**: Click **Add Server** and fill in the details
|
||||
- **Enable/disable**: Toggle a server on or off without removing its configuration
|
||||
- **Delete**: Remove a server from the list
|
||||
|
||||
The extension also supports the `{env:VARIABLE_NAME}` syntax in config files to reference environment variables (see the **CLI** tab for details).
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="CLI" %}
|
||||
|
||||
### CLI Commands
|
||||
|
||||
| Command | Description |
|
||||
| ----------------- | ------------------------------- |
|
||||
| `kilo mcp list` | List all configured MCP servers |
|
||||
| `kilo mcp add` | Add an MCP server |
|
||||
| `kilo mcp auth` | Authenticate with an MCP server |
|
||||
| `kilo mcp logout` | Log out from an MCP server |
|
||||
| `kilo mcp debug` | Debug an MCP server connection |
|
||||
|
||||
Inside the interactive TUI, use the `/mcps` slash command to toggle MCP servers on or off.
|
||||
|
||||
### Environment Variables
|
||||
|
||||
Use `{env:VARIABLE_NAME}` syntax in config files to reference environment variables:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcp": {
|
||||
"my-server": {
|
||||
"type": "remote",
|
||||
"url": "https://mcp.example.com/mcp",
|
||||
"headers": {
|
||||
"Authorization": "Bearer {env:MY_API_KEY}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
### Network Timeout
|
||||
|
||||
{% tabs %}
|
||||
@@ -313,78 +458,13 @@ When enabled, Kilo Code will automatically approve this specific tool without pr
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Finding and Installing MCP Servers
|
||||
|
||||
Kilo Code does not come with any pre-installed MCP servers. You'll need to find and install them separately.
|
||||
|
||||
- **Kilo Marketplace:** Browse and install MCP servers directly from the Marketplace tab in the extension sidebar
|
||||
- **Community Repositories:** Check for community-maintained lists of MCP servers on GitHub
|
||||
- **Ask Kilo Code:** You can ask Kilo Code to help you find or even create MCP servers
|
||||
- **Build Your Own:** Create custom MCP servers using the SDK to extend Kilo Code with your own tools
|
||||
|
||||
For full SDK documentation, visit the [MCP GitHub repository](https://github.com/modelcontextprotocol/).
|
||||
|
||||
## Using MCP Tools in Your Workflow
|
||||
|
||||
After configuring an MCP server, Kilo Code will automatically detect available tools and resources. To use them:
|
||||
|
||||
1. Type your request in the Kilo Code chat interface
|
||||
2. Kilo Code will identify when an MCP tool can help with your task
|
||||
3. Approve the tool use when prompted (or use auto-approval)
|
||||
|
||||
Example: "Analyze the performance of my API" might use an MCP tool that tests API endpoints.
|
||||
|
||||
## Troubleshooting MCP Servers
|
||||
|
||||
Common issues and solutions:
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
- **Server Not Responding:** Check if the server process is running and verify network connectivity. Review server status in Settings > Agent Behaviour > MCP Servers.
|
||||
- **`needs_auth` status:** For remote servers with OAuth, the extension will show a notification to start the auth flow. Click it to authenticate.
|
||||
- **`failed` status:** Check the CLI output for error details. Ensure commands and paths are correct.
|
||||
- **Tool Not Available:** Confirm the server is properly implementing the tool and it's not disabled in settings.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
- **Server Not Responding:** Check if the server process is running and verify network connectivity
|
||||
- **Permission Errors:** Ensure proper API keys and credentials are configured in your `mcp_settings.json` (for global settings) or `.kilocode/mcp.json` (for project settings).
|
||||
- **Tool Not Available:** Confirm the server is properly implementing the tool and it's not disabled in settings
|
||||
- **Slow Performance:** Try adjusting the network timeout value for the specific MCP server
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
{% callout type="tip" %}
|
||||
**Reduce system prompt size:** If you're not using MCP, turn it off in Settings > Agent Behaviour > MCP Servers to significantly cut down the size of the system prompt and improve performance.
|
||||
{% /callout %}
|
||||
|
||||
## Platform-Specific MCP Configuration Examples
|
||||
|
||||
### Windows Configuration Example
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
When setting up local MCP servers on Windows, use the full `cmd` invocation in the `command` array:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcp": {
|
||||
"puppeteer": {
|
||||
"type": "local",
|
||||
"command": ["cmd", "/c", "npx", "-y", "@modelcontextprotocol/server-puppeteer"],
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
### Windows Configuration Example
|
||||
|
||||
When setting up MCP servers on Windows, you'll need to use the Windows Command Prompt (`cmd`) to execute commands. Here's an example of configuring a Puppeteer MCP server on Windows:
|
||||
|
||||
```json
|
||||
@@ -423,6 +503,129 @@ For macOS or Linux, you would use a different configuration:
|
||||
{% /callout %}
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
In the VS Code extension, use **Settings → MCP → Add Server** to add any of the examples below through the UI. You can also edit the config files directly — see the **CLI** tab for the JSON format.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="CLI" %}
|
||||
|
||||
### Windows
|
||||
|
||||
When setting up local MCP servers on Windows, use the full `cmd` invocation in the `command` array:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcp": {
|
||||
"puppeteer": {
|
||||
"type": "local",
|
||||
"command": ["cmd", "/c", "npx", "-y", "@modelcontextprotocol/server-puppeteer"],
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The same approach can be used for other MCP servers on Windows, adjusting the package name as needed for different server types.
|
||||
|
||||
### Figma Desktop
|
||||
|
||||
Connect to the Figma Desktop app's MCP server:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcp": {
|
||||
"Figma Desktop": {
|
||||
"type": "remote",
|
||||
"url": "http://127.0.0.1:3845/mcp"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Context7
|
||||
|
||||
Add the [Context7](https://github.com/upstash/context7) MCP server for documentation search:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcp": {
|
||||
"context7": {
|
||||
"type": "remote",
|
||||
"url": "https://mcp.context7.com/mcp"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Everything Test Server
|
||||
|
||||
Add the test MCP server for development:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcp": {
|
||||
"mcp_everything": {
|
||||
"type": "local",
|
||||
"command": ["npx", "-y", "@modelcontextprotocol/server-everything"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Finding and Installing MCP Servers
|
||||
|
||||
Kilo Code does not come with any pre-installed MCP servers. You'll need to find and install them separately.
|
||||
|
||||
- **Kilo Marketplace:** Browse community-contributed MCP server configurations and agent skills in the [Kilo Marketplace](https://github.com/Kilo-Org/kilo-marketplace). The marketplace includes ready-to-use configs for popular tools like Figma, Sentry, and more.
|
||||
- **Community Repositories:** Check for community-maintained lists of MCP servers on GitHub
|
||||
- **Ask Kilo Code:** You can ask Kilo Code to help you find or even create MCP servers
|
||||
- **Build Your Own:** Create custom MCP servers using the SDK to extend Kilo Code with your own tools
|
||||
|
||||
For full SDK documentation, visit the [MCP GitHub repository](https://github.com/modelcontextprotocol/).
|
||||
|
||||
## Using MCP Tools in Your Workflow
|
||||
|
||||
After configuring an MCP server, Kilo Code will automatically detect available tools and resources. To use them:
|
||||
|
||||
1. Type your request in the Kilo Code chat interface
|
||||
2. Kilo Code will identify when an MCP tool can help with your task
|
||||
3. Approve the tool use when prompted (or use auto-approval)
|
||||
|
||||
Example: "Analyze the performance of my API" might use an MCP tool that tests API endpoints.
|
||||
|
||||
## Troubleshooting MCP Servers
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
- **Server Not Responding:** Check if the server process is running and verify network connectivity. Review server status in Settings > Agent Behaviour > MCP Servers.
|
||||
- **`needs_auth` status:** For remote servers with OAuth, the extension will show a notification to start the auth flow. Click it to authenticate.
|
||||
- **`failed` status:** Check the CLI output for error details. Ensure commands and paths are correct.
|
||||
- **Tool Not Available:** Confirm the server is properly implementing the tool and it's not disabled in settings.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
- **Server Not Responding:** Check if the server process is running and verify network connectivity
|
||||
- **Permission Errors:** Ensure proper API keys and credentials are configured in your `mcp_settings.json` (for global settings) or `.kilocode/mcp.json` (for project settings).
|
||||
- **Tool Not Available:** Confirm the server is properly implementing the tool and it's not disabled in settings
|
||||
- **Slow Performance:** Try adjusting the network timeout value for the specific MCP server
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="CLI" %}
|
||||
|
||||
- **Server Not Responding:** Check if the server process is running. Use `kilo mcp debug <server-name>` to inspect the connection.
|
||||
- **Permission Errors:** Ensure API keys and credentials are set in your `kilo.jsonc` config or via `{env:VARIABLE_NAME}` references.
|
||||
- **Tool Not Available:** Confirm the server is properly implementing the tool and it is not disabled (`"enabled": false`) in your config.
|
||||
- **Slow Performance:** Increase the `timeout` value for the specific MCP server in your config.
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
{% callout type="tip" %}
|
||||
**Reduce system prompt size:** If you're not using MCP, turn it off in Settings > Agent Behaviour > MCP Servers to significantly cut down the size of the system prompt and improve performance.
|
||||
{% /callout %}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/package.json",
|
||||
"name": "@kilocode/kilo-gateway",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"description": "Unified Kilo Gateway package for OpenCode - authentication, provider, and API integration",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/package.json",
|
||||
"name": "@kilocode/kilo-i18n",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"description": "Kilo-specific i18n translations and overrides",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/package.json",
|
||||
"name": "@kilocode/kilo-telemetry",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"description": "Telemetry for Kilo CLI - PostHog analytics integration",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@kilocode/kilo-ui",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"exports": {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "kilo-code",
|
||||
"displayName": "Kilo Code: AI Coding Agent, Copilot, and Autocomplete",
|
||||
"description": "Open Source AI coding agent that generates code from natural language, automates tasks, and runs terminal commands. Features inline autocomplete, browser automation, automated refactoring, and custom modes for planning, coding, and debugging. Supports 500+ AI models including Claude (Anthropic), Gemini, Grok, GPT, Codex and GLM.",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"icon": "assets/icons/logo-outline-black.png",
|
||||
"galleryBanner": {
|
||||
"color": "#FFFFFF",
|
||||
|
||||
@@ -1521,6 +1521,7 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper
|
||||
mode: a.mode,
|
||||
native: a.native,
|
||||
color: a.color,
|
||||
deprecated: a.deprecated,
|
||||
})),
|
||||
defaultAgent,
|
||||
}
|
||||
|
||||
@@ -251,6 +251,13 @@ export const PROVIDER_MAP: Record<string, ProviderMapping> = {
|
||||
key: "syntheticApiKey",
|
||||
name: "Synthetic",
|
||||
},
|
||||
apertis: {
|
||||
id: "apertis",
|
||||
key: "apertisApiKey",
|
||||
name: "Apertis",
|
||||
modelField: "apertisModelId",
|
||||
urlField: "apertisBaseUrl",
|
||||
},
|
||||
"openai-codex": {
|
||||
id: "openai",
|
||||
key: "",
|
||||
@@ -295,7 +302,6 @@ export const UNSUPPORTED_PROVIDERS = new Set([
|
||||
"virtual-quota-fallback",
|
||||
"glama",
|
||||
"roo",
|
||||
"apertis",
|
||||
])
|
||||
|
||||
/** Built-in default mode slugs that should not be migrated */
|
||||
|
||||
@@ -6,6 +6,7 @@ import { useProvider } from "../../context/provider"
|
||||
import { useLanguage } from "../../context/language"
|
||||
import { KILO_PROVIDER_ID } from "../../../../src/shared/provider-model"
|
||||
import { TelemetryEventName } from "../../../../src/services/telemetry/types"
|
||||
import { stripSubProviderPrefix } from "../shared/model-selector-utils"
|
||||
|
||||
export const KiloNotifications: Component = () => {
|
||||
const { filteredNotifications, dismiss } = useNotifications()
|
||||
@@ -61,6 +62,14 @@ export const KiloNotifications: Component = () => {
|
||||
return true
|
||||
})
|
||||
|
||||
const suggestedName = createMemo(() => {
|
||||
const suggestion = suggestedModel()
|
||||
if (!suggestion) return undefined
|
||||
const model = provider.findModel(suggestion)
|
||||
if (!model?.name) return undefined
|
||||
return stripSubProviderPrefix(model.name)
|
||||
})
|
||||
|
||||
const handleTryModel = () => {
|
||||
const suggestion = suggestedModel()
|
||||
if (!suggestion) return
|
||||
@@ -88,7 +97,7 @@ export const KiloNotifications: Component = () => {
|
||||
<div class="kilo-notifications-footer">
|
||||
<Show when={canSwitchModel()}>
|
||||
<button class="kilo-notifications-action-btn" onClick={handleTryModel}>
|
||||
{language.t("notifications.action.tryModel")}
|
||||
{language.t("notifications.action.tryModel", { model: suggestedName() ?? "" })}
|
||||
</button>
|
||||
</Show>
|
||||
<Show when={current()?.action}>
|
||||
|
||||
@@ -477,10 +477,7 @@ const MigrationWizard: Component<MigrationWizardProps> = (props) => {
|
||||
<div class={screen() === "whats-new" ? "migration-wizard__screen--active" : "migration-wizard__screen--hidden"}>
|
||||
<div class="migration-wizard__header">
|
||||
<KiloLogo />
|
||||
<h1>
|
||||
{language.t("migration.whatsNew.title")}{" "}
|
||||
<span class="migration-wizard__badge">{language.t("migration.whatsNew.badge")}</span>
|
||||
</h1>
|
||||
<h1>{language.t("migration.whatsNew.title")}</h1>
|
||||
<p>{language.t("migration.whatsNew.subtitle")}</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -68,18 +68,6 @@
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.migration-wizard__badge {
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.5px;
|
||||
padding: 3px 9px;
|
||||
border-radius: 6px;
|
||||
background: color-mix(in srgb, var(--vscode-button-background) 15%, transparent);
|
||||
color: var(--vscode-button-background);
|
||||
vertical-align: middle;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.migration-wizard__header p {
|
||||
font-size: 13px;
|
||||
color: var(--vscode-descriptionForeground);
|
||||
|
||||
@@ -110,7 +110,9 @@ const ProfileView: Component<ProfileViewProps> = (props) => {
|
||||
>
|
||||
<h2 style={{ "font-size": "16px", "font-weight": "600", margin: 0 }}>{language.t("profile.title")}</h2>
|
||||
</div>
|
||||
<div style={{ padding: "16px" }}>
|
||||
<div
|
||||
style={{ padding: "16px", "max-width": "480px", margin: "0 auto", width: "100%", "box-sizing": "border-box" }}
|
||||
>
|
||||
<Show
|
||||
when={props.profileData}
|
||||
fallback={
|
||||
|
||||
@@ -349,6 +349,7 @@ const AgentBehaviourTab: Component = () => {
|
||||
const agentCfg = () => config().agent?.[name] ?? {}
|
||||
const disabled = () => agentCfg().disable ?? false
|
||||
const hidden = () => agentCfg().hidden ?? false
|
||||
const deprecated = () => agent()?.deprecated ?? false
|
||||
return (
|
||||
<div
|
||||
style={{
|
||||
@@ -411,6 +412,19 @@ const AgentBehaviourTab: Component = () => {
|
||||
{language.t("settings.agentBehaviour.badge.disabled")}
|
||||
</span>
|
||||
</Show>
|
||||
<Show when={deprecated()}>
|
||||
<span
|
||||
style={{
|
||||
"font-size": "10px",
|
||||
padding: "1px 5px",
|
||||
"border-radius": "3px",
|
||||
background: "var(--vscode-editorWarning-foreground, #cca700)",
|
||||
color: "var(--vscode-editorWarning-foreground-text, #1e1e1e)",
|
||||
}}
|
||||
>
|
||||
{language.t("settings.agentBehaviour.badge.deprecated")}
|
||||
</span>
|
||||
</Show>
|
||||
</div>
|
||||
<Show when={agent()?.description}>
|
||||
<div
|
||||
|
||||
@@ -11,6 +11,7 @@ import { Component, createSignal, onCleanup, For, Show } from "solid-js"
|
||||
import { PopupSelector } from "./PopupSelector"
|
||||
import { Button } from "@kilocode/kilo-ui/button"
|
||||
import { useSession } from "../../context/session"
|
||||
import { useLanguage } from "../../context/language"
|
||||
import type { AgentInfo } from "../../types/messages"
|
||||
|
||||
/** Format an agent for display. Uses displayName if available, otherwise title-cases the slug. */
|
||||
@@ -38,6 +39,7 @@ export interface ModeSwitcherBaseProps {
|
||||
export const ModeSwitcherBase: Component<ModeSwitcherBaseProps> = (props) => {
|
||||
const [open, setOpen] = createSignal(false)
|
||||
const [focused, setFocused] = createSignal(-1)
|
||||
const language = useLanguage()
|
||||
let listRef: HTMLDivElement | undefined
|
||||
|
||||
// Listen for slash command trigger
|
||||
@@ -132,7 +134,22 @@ export const ModeSwitcherBase: Component<ModeSwitcherBaseProps> = (props) => {
|
||||
onClick={() => pick(agent.name)}
|
||||
onFocus={() => setFocused(i())}
|
||||
>
|
||||
<span class="mode-switcher-item-name">{formatAgentLabel(agent)}</span>
|
||||
<div style={{ display: "flex", "align-items": "center", gap: "6px" }}>
|
||||
<span class="mode-switcher-item-name">{formatAgentLabel(agent)}</span>
|
||||
<Show when={agent.deprecated}>
|
||||
<span
|
||||
style={{
|
||||
"font-size": "10px",
|
||||
padding: "1px 5px",
|
||||
"border-radius": "3px",
|
||||
background: "var(--vscode-editorWarning-foreground, #cca700)",
|
||||
color: "var(--vscode-editorWarning-foreground-text, #1e1e1e)",
|
||||
}}
|
||||
>
|
||||
{language.t("settings.agentBehaviour.badge.deprecated")}
|
||||
</span>
|
||||
</Show>
|
||||
</div>
|
||||
<Show when={agent.description}>
|
||||
<span class="mode-switcher-item-desc">{agent.description}</span>
|
||||
</Show>
|
||||
|
||||
+5
-5
@@ -1066,6 +1066,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "تعطيل هذا الوكيل بالكامل — لن يظهر في أي مكان",
|
||||
"settings.agentBehaviour.badge.hidden": "مخفي",
|
||||
"settings.agentBehaviour.badge.disabled": "معطل",
|
||||
"settings.agentBehaviour.badge.deprecated": "مُهمَل",
|
||||
"settings.agentBehaviour.discoveredSkills": "المهارات المكتشفة",
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"لم يتم العثور على مهارات. أضف مسارات مجلدات أو عناوين URL أدناه لإتاحة المهارات.",
|
||||
@@ -1219,7 +1220,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "ما الجديد في Kilo Code",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle": "لقد أعدنا بناء الإضافة على أساس أسرع وأكثر كفاءة.",
|
||||
"migration.whatsNew.features.performance.title": "أداء أسرع للوكيل",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1278,8 +1278,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "عدة جلسات تعمل وستتوقف",
|
||||
"settings.saveBar.saveAnyway": "حفظ على أي حال",
|
||||
"settings.saveBar.cancel": "إلغاء",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "السابق",
|
||||
"notifications.action.next": "التالي",
|
||||
"notifications.action.close": "إغلاق",
|
||||
"notifications.action.tryModel": "جرّب {{model}}",
|
||||
}
|
||||
|
||||
+5
-5
@@ -1084,6 +1084,7 @@ export const dict = {
|
||||
"Desativar completamente este agente — ele não aparecerá em nenhum lugar",
|
||||
"settings.agentBehaviour.badge.hidden": "oculto",
|
||||
"settings.agentBehaviour.badge.disabled": "desativado",
|
||||
"settings.agentBehaviour.badge.deprecated": "Descontinuado",
|
||||
"settings.agentBehaviour.discoveredSkills": "Habilidades descobertas",
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Nenhuma habilidade encontrada. Adicione caminhos de pastas ou URLs abaixo para disponibilizar habilidades.",
|
||||
@@ -1248,7 +1249,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "O Que Há de Novo no Kilo Code",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle": "Reconstruímos a extensão sobre uma base mais rápida e eficiente.",
|
||||
"migration.whatsNew.features.performance.title": "Desempenho de Agente Mais Rápido",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1307,8 +1307,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "Várias sessões estão em execução e serão interrompidas",
|
||||
"settings.saveBar.saveAnyway": "Salvar mesmo assim",
|
||||
"settings.saveBar.cancel": "Cancelar",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "Anterior",
|
||||
"notifications.action.next": "Próximo",
|
||||
"notifications.action.close": "Fechar",
|
||||
"notifications.action.tryModel": "Experimentar {{model}}",
|
||||
}
|
||||
|
||||
+5
-5
@@ -1082,6 +1082,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "Potpuno onemogući ovog agenta — neće se pojaviti nigdje",
|
||||
"settings.agentBehaviour.badge.hidden": "skriveno",
|
||||
"settings.agentBehaviour.badge.disabled": "onemogućeno",
|
||||
"settings.agentBehaviour.badge.deprecated": "Zastarjelo",
|
||||
"settings.agentBehaviour.discoveredSkills": "Otkrivene vještine",
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Nisu pronađene vještine. Dodajte putanje mapa ili URL-ove ispod kako biste učinili vještine dostupnim.",
|
||||
@@ -1244,7 +1245,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "Šta je novo u Kilo Code",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle": "Ponovo smo izgradili ekstenziju na bržem i efikasnijem temelju.",
|
||||
"migration.whatsNew.features.performance.title": "Brže performanse agenta",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1303,8 +1303,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "Nekoliko sesija je pokrenuto i bit će prekinuto",
|
||||
"settings.saveBar.saveAnyway": "Spremi svejedno",
|
||||
"settings.saveBar.cancel": "Otkaži",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "Prethodni",
|
||||
"notifications.action.next": "Sljedeći",
|
||||
"notifications.action.close": "Zatvori",
|
||||
"notifications.action.tryModel": "Probaj {{model}}",
|
||||
}
|
||||
|
||||
+5
-5
@@ -1076,6 +1076,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "Deaktiver denne agent fuldstændigt — den vises ingen steder",
|
||||
"settings.agentBehaviour.badge.hidden": "skjult",
|
||||
"settings.agentBehaviour.badge.disabled": "deaktiveret",
|
||||
"settings.agentBehaviour.badge.deprecated": "Udfaset",
|
||||
"settings.agentBehaviour.discoveredSkills": "Opdagede skills",
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Ingen skills fundet. Tilføj skill-mappestier eller URL'er nedenfor for at gøre skills tilgængelige.",
|
||||
@@ -1234,7 +1235,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "Nyheder i Kilo Code",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle": "Vi har genopbygget udvidelsen på et hurtigere og mere effektivt fundament.",
|
||||
"migration.whatsNew.features.performance.title": "Hurtigere agentydelse",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1294,8 +1294,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "Flere sessioner kører og vil blive afbrudt",
|
||||
"settings.saveBar.saveAnyway": "Gem alligevel",
|
||||
"settings.saveBar.cancel": "Annuller",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "Forrige",
|
||||
"notifications.action.next": "Næste",
|
||||
"notifications.action.close": "Luk",
|
||||
"notifications.action.tryModel": "Prøv {{model}}",
|
||||
}
|
||||
|
||||
+5
-5
@@ -1096,6 +1096,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "Diesen Agent vollständig deaktivieren — er wird nirgends angezeigt",
|
||||
"settings.agentBehaviour.badge.hidden": "versteckt",
|
||||
"settings.agentBehaviour.badge.disabled": "deaktiviert",
|
||||
"settings.agentBehaviour.badge.deprecated": "Veraltet",
|
||||
"settings.agentBehaviour.discoveredSkills": "Erkannte Skills",
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Keine Skills gefunden. Fügen Sie unten Skill-Ordnerpfade oder URLs hinzu, um Skills verfügbar zu machen.",
|
||||
@@ -1260,7 +1261,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "Neuigkeiten in Kilo Code",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle":
|
||||
"Wir haben die Erweiterung auf einer schnelleren, effizienteren Grundlage neu aufgebaut.",
|
||||
"migration.whatsNew.features.performance.title": "Schnellere Agentenleistung",
|
||||
@@ -1321,8 +1321,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "Mehrere Sitzungen laufen und werden unterbrochen",
|
||||
"settings.saveBar.saveAnyway": "Trotzdem speichern",
|
||||
"settings.saveBar.cancel": "Abbrechen",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "Zurück",
|
||||
"notifications.action.next": "Weiter",
|
||||
"notifications.action.close": "Schließen",
|
||||
"notifications.action.tryModel": "{{model}} ausprobieren",
|
||||
} satisfies Partial<Record<Keys, string>>
|
||||
|
||||
@@ -1078,6 +1078,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "Fully disable this agent — it will not appear anywhere",
|
||||
"settings.agentBehaviour.badge.hidden": "hidden",
|
||||
"settings.agentBehaviour.badge.disabled": "disabled",
|
||||
"settings.agentBehaviour.badge.deprecated": "deprecated",
|
||||
"settings.agentBehaviour.discoveredSkills": "Discovered Skills",
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"No skills discovered. Add skill folder paths or URLs below to make skills available.",
|
||||
@@ -1245,7 +1246,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "What's New in Kilo Code",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle": "We've rebuilt the extension on a faster, more efficient foundation.",
|
||||
"migration.whatsNew.features.performance.title": "Faster Agent Performance",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1309,5 +1309,5 @@ export const dict = {
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.tryModel": "Try {{model}}",
|
||||
}
|
||||
|
||||
+5
-5
@@ -1087,6 +1087,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "Desactivar completamente este agente — no aparecerá en ningún lugar",
|
||||
"settings.agentBehaviour.badge.hidden": "oculto",
|
||||
"settings.agentBehaviour.badge.disabled": "desactivado",
|
||||
"settings.agentBehaviour.badge.deprecated": "Obsoleto",
|
||||
"settings.agentBehaviour.discoveredSkills": "Habilidades descubiertas",
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"No se encontraron habilidades. Agregue rutas de carpetas o URLs abajo para hacer disponibles las habilidades.",
|
||||
@@ -1251,7 +1252,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "Novedades en Kilo Code",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle": "Hemos reconstruido la extensión sobre una base más rápida y eficiente.",
|
||||
"migration.whatsNew.features.performance.title": "Rendimiento de agente más rápido",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1311,8 +1311,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "Varias sesiones están en ejecución y se interrumpirán",
|
||||
"settings.saveBar.saveAnyway": "Guardar de todas formas",
|
||||
"settings.saveBar.cancel": "Cancelar",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "Anterior",
|
||||
"notifications.action.next": "Siguiente",
|
||||
"notifications.action.close": "Cerrar",
|
||||
"notifications.action.tryModel": "Probar {{model}}",
|
||||
}
|
||||
|
||||
+5
-5
@@ -1098,6 +1098,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "Désactiver complètement cet agent — il n'apparaîtra nulle part",
|
||||
"settings.agentBehaviour.badge.hidden": "masqué",
|
||||
"settings.agentBehaviour.badge.disabled": "désactivé",
|
||||
"settings.agentBehaviour.badge.deprecated": "Déprécié",
|
||||
"settings.agentBehaviour.discoveredSkills": "Compétences découvertes",
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Aucune compétence découverte. Ajoutez des chemins de dossiers ou des URLs ci-dessous pour rendre les compétences disponibles.",
|
||||
@@ -1264,7 +1265,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "Nouveautés de Kilo Code",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle": "Nous avons reconstruit l'extension sur une base plus rapide et plus efficace.",
|
||||
"migration.whatsNew.features.performance.title": "Performance accélérée de l'agent",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1324,8 +1324,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "Plusieurs sessions sont en cours et seront interrompues",
|
||||
"settings.saveBar.saveAnyway": "Enregistrer quand même",
|
||||
"settings.saveBar.cancel": "Annuler",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "Précédent",
|
||||
"notifications.action.next": "Suivant",
|
||||
"notifications.action.close": "Fermer",
|
||||
"notifications.action.tryModel": "Essayer {{model}}",
|
||||
}
|
||||
|
||||
+5
-5
@@ -1076,6 +1076,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "このエージェントを完全に無効にする — どこにも表示されなくなります",
|
||||
"settings.agentBehaviour.badge.hidden": "非表示",
|
||||
"settings.agentBehaviour.badge.disabled": "無効",
|
||||
"settings.agentBehaviour.badge.deprecated": "非推奨",
|
||||
"settings.agentBehaviour.discoveredSkills": "検出されたスキル",
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"スキルが見つかりません。スキルを利用可能にするには、以下にスキルフォルダパスまたはURLを追加してください。",
|
||||
@@ -1234,7 +1235,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "Kilo Codeの新機能",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle": "より高速で効率的な基盤上に拡張機能を再構築しました。",
|
||||
"migration.whatsNew.features.performance.title": "高速なエージェントパフォーマンス",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1293,8 +1293,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "複数のセッションが実行中で中断されます",
|
||||
"settings.saveBar.saveAnyway": "それでも保存",
|
||||
"settings.saveBar.cancel": "キャンセル",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "前へ",
|
||||
"notifications.action.next": "次へ",
|
||||
"notifications.action.close": "閉じる",
|
||||
"notifications.action.tryModel": "{{model}}を試す",
|
||||
}
|
||||
|
||||
+5
-5
@@ -1073,6 +1073,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "이 에이전트를 완전히 비활성화 — 어디에도 표시되지 않습니다",
|
||||
"settings.agentBehaviour.badge.hidden": "숨김",
|
||||
"settings.agentBehaviour.badge.disabled": "비활성화됨",
|
||||
"settings.agentBehaviour.badge.deprecated": "비권장",
|
||||
"settings.agentBehaviour.discoveredSkills": "검색된 스킬",
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"스킬을 찾을 수 없습니다. 스킬을 사용하려면 아래에 스킬 폴더 경로 또는 URL을 추가하세요.",
|
||||
@@ -1222,7 +1223,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "Kilo Code의 새로운 기능",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle": "더 빠르고 효율적인 기반 위에 확장 프로그램을 재구축했습니다.",
|
||||
"migration.whatsNew.features.performance.title": "더 빠른 에이전트 성능",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1281,8 +1281,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "여러 세션이 실행 중이며 중단됩니다",
|
||||
"settings.saveBar.saveAnyway": "그래도 저장",
|
||||
"settings.saveBar.cancel": "취소",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "이전",
|
||||
"notifications.action.next": "다음",
|
||||
"notifications.action.close": "닫기",
|
||||
"notifications.action.tryModel": "{{model}} 시도",
|
||||
}
|
||||
|
||||
+5
-5
@@ -1086,6 +1086,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "Schakel deze agent volledig uit — deze verschijnt nergens",
|
||||
"settings.agentBehaviour.badge.hidden": "verborgen",
|
||||
"settings.agentBehaviour.badge.disabled": "uitgeschakeld",
|
||||
"settings.agentBehaviour.badge.deprecated": "Verouderd",
|
||||
"settings.agentBehaviour.discoveredSkills": "Ontdekte Skills",
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Geen skills ontdekt. Voeg hieronder skill mappaden of URL's toe om skills beschikbaar te maken.",
|
||||
@@ -1238,7 +1239,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "Wat is er Nieuw in Kilo Code",
|
||||
"migration.whatsNew.badge": "Bèta",
|
||||
"migration.whatsNew.subtitle": "We hebben de extensie opnieuw opgebouwd op een snellere, efficiëntere basis.",
|
||||
"migration.whatsNew.features.performance.title": "Snellere Agent Prestaties",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1299,8 +1299,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "Meerdere sessies zijn actief en worden onderbroken",
|
||||
"settings.saveBar.saveAnyway": "Toch opslaan",
|
||||
"settings.saveBar.cancel": "Annuleren",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "Vorige",
|
||||
"notifications.action.next": "Volgende",
|
||||
"notifications.action.close": "Sluiten",
|
||||
"notifications.action.tryModel": "Probeer {{model}}",
|
||||
}
|
||||
|
||||
+5
-5
@@ -1079,6 +1079,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "Deaktiver denne agenten fullstendig — den vises ikke noe sted",
|
||||
"settings.agentBehaviour.badge.hidden": "skjult",
|
||||
"settings.agentBehaviour.badge.disabled": "deaktivert",
|
||||
"settings.agentBehaviour.badge.deprecated": "Utdatert",
|
||||
"settings.agentBehaviour.discoveredSkills": "Oppdagede ferdigheter",
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Ingen ferdigheter funnet. Legg til ferdighetsmappestier eller URLer nedenfor for å gjøre ferdigheter tilgjengelige.",
|
||||
@@ -1235,7 +1236,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "Hva er nytt i Kilo Code",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle": "Vi har bygget utvidelsen på nytt med et raskere og mer effektivt grunnlag.",
|
||||
"migration.whatsNew.features.performance.title": "Raskere agentytelse",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1292,8 +1292,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "Flere økter kjører og vil bli avbrutt",
|
||||
"settings.saveBar.saveAnyway": "Lagre uansett",
|
||||
"settings.saveBar.cancel": "Avbryt",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "Forrige",
|
||||
"notifications.action.next": "Neste",
|
||||
"notifications.action.close": "Lukk",
|
||||
"notifications.action.tryModel": "Prøv {{model}}",
|
||||
} satisfies Partial<Record<Keys, string>>
|
||||
|
||||
+5
-5
@@ -1080,6 +1080,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "Całkowicie wyłącz tego agenta — nie pojawi się nigdzie",
|
||||
"settings.agentBehaviour.badge.hidden": "ukryty",
|
||||
"settings.agentBehaviour.badge.disabled": "wyłączony",
|
||||
"settings.agentBehaviour.badge.deprecated": "Przestarzały",
|
||||
"settings.agentBehaviour.discoveredSkills": "Wykryte umiejętności",
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Nie znaleziono umiejętności. Dodaj ścieżki folderów lub adresy URL poniżej, aby udostępnić umiejętności.",
|
||||
@@ -1243,7 +1244,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "Co nowego w Kilo Code",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle": "Przebudowaliśmy rozszerzenie na szybszym i wydajniejszym fundamencie.",
|
||||
"migration.whatsNew.features.performance.title": "Szybsza wydajność agenta",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1302,8 +1302,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "Kilka sesji jest uruchomionych i zostanie przerwanych",
|
||||
"settings.saveBar.saveAnyway": "Zapisz mimo to",
|
||||
"settings.saveBar.cancel": "Anuluj",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "Poprzedni",
|
||||
"notifications.action.next": "Następny",
|
||||
"notifications.action.close": "Zamknij",
|
||||
"notifications.action.tryModel": "Wypróbuj {{model}}",
|
||||
}
|
||||
|
||||
+5
-5
@@ -1082,6 +1082,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "Полностью отключить этого агента — он не будет отображаться нигде",
|
||||
"settings.agentBehaviour.badge.hidden": "скрытый",
|
||||
"settings.agentBehaviour.badge.disabled": "отключён",
|
||||
"settings.agentBehaviour.badge.deprecated": "Устаревший",
|
||||
"settings.agentBehaviour.discoveredSkills": "Обнаруженные навыки",
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Навыки не обнаружены. Добавьте пути к папкам навыков или URL-адреса ниже, чтобы сделать навыки доступными.",
|
||||
@@ -1242,7 +1243,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "Что нового в Kilo Code",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle": "Мы перестроили расширение на более быстрой и эффективной основе.",
|
||||
"migration.whatsNew.features.performance.title": "Более быстрая работа агента",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1301,8 +1301,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "Несколько сеансов выполняются и будут прерваны",
|
||||
"settings.saveBar.saveAnyway": "Сохранить в любом случае",
|
||||
"settings.saveBar.cancel": "Отмена",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "Назад",
|
||||
"notifications.action.next": "Далее",
|
||||
"notifications.action.close": "Закрыть",
|
||||
"notifications.action.tryModel": "Попробовать {{model}}",
|
||||
}
|
||||
|
||||
+5
-5
@@ -1068,6 +1068,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "ปิดใช้งานเอเจนต์นี้อย่างสมบูรณ์ — จะไม่ปรากฏที่ใดเลย",
|
||||
"settings.agentBehaviour.badge.hidden": "ซ่อน",
|
||||
"settings.agentBehaviour.badge.disabled": "ปิดใช้งาน",
|
||||
"settings.agentBehaviour.badge.deprecated": "เลิกใช้",
|
||||
"settings.agentBehaviour.discoveredSkills": "ทักษะที่ค้นพบ",
|
||||
"settings.agentBehaviour.noSkillsFound": "ไม่พบทักษะ เพิ่มเส้นทางโฟลเดอร์หรือ URL ด้านล่างเพื่อทำให้ทักษะพร้อมใช้งาน",
|
||||
"settings.agentBehaviour.availableModes": "โหมดกำหนดเองที่ใช้ได้",
|
||||
@@ -1218,7 +1219,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "มีอะไรใหม่ใน Kilo Code",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle": "เราได้สร้างส่วนขยายใหม่บนรากฐานที่เร็วและมีประสิทธิภาพมากขึ้น",
|
||||
"migration.whatsNew.features.performance.title": "ประสิทธิภาพเอเจนต์ที่เร็วขึ้น",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1277,8 +1277,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "มีหลายเซสชันกำลังทำงานและจะถูกขัดจังหวะ",
|
||||
"settings.saveBar.saveAnyway": "บันทึกต่อไป",
|
||||
"settings.saveBar.cancel": "ยกเลิก",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "ก่อนหน้า",
|
||||
"notifications.action.next": "ถัดไป",
|
||||
"notifications.action.close": "ปิด",
|
||||
"notifications.action.tryModel": "ลองใช้ {{model}}",
|
||||
}
|
||||
|
||||
+5
-4
@@ -1083,6 +1083,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "Bu ajanı tamamen devre dışı bırak — hiçbir yerde görünmeyecek",
|
||||
"settings.agentBehaviour.badge.hidden": "gizli",
|
||||
"settings.agentBehaviour.badge.disabled": "devre dışı",
|
||||
"settings.agentBehaviour.badge.deprecated": "Kullanımdan kaldırılmış",
|
||||
"settings.agentBehaviour.discoveredSkills": "Keşfedilen Beceriler",
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Keşfedilen beceri yok. Becerileri kullanılabilir kılmak için aşağıya beceri klasör yolları veya URL'ler ekleyin.",
|
||||
@@ -1291,8 +1292,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "Birden fazla oturum çalışıyor ve kesintiye uğrayacak",
|
||||
"settings.saveBar.saveAnyway": "Yine de kaydet",
|
||||
"settings.saveBar.cancel": "İptal",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "Önceki",
|
||||
"notifications.action.next": "Sonraki",
|
||||
"notifications.action.close": "Kapat",
|
||||
"notifications.action.tryModel": "Dene {{model}}",
|
||||
}
|
||||
|
||||
+5
-5
@@ -1058,6 +1058,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "完全禁用此智能体 — 它将不会出现在任何地方",
|
||||
"settings.agentBehaviour.badge.hidden": "隐藏",
|
||||
"settings.agentBehaviour.badge.disabled": "已禁用",
|
||||
"settings.agentBehaviour.badge.deprecated": "弃用",
|
||||
"settings.agentBehaviour.discoveredSkills": "已发现的技能",
|
||||
"settings.agentBehaviour.noSkillsFound": "未发现任何技能。请在下方添加技能文件夹路径或 URL 以使技能可用。",
|
||||
"settings.agentBehaviour.availableModes": "可用自定义模式",
|
||||
@@ -1196,7 +1197,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "Kilo Code 新功能",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle": "我们在更快、更高效的基础上重新构建了扩展。",
|
||||
"migration.whatsNew.features.performance.title": "更快的智能体性能",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1254,8 +1254,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "多个会话正在运行,将被中断",
|
||||
"settings.saveBar.saveAnyway": "仍然保存",
|
||||
"settings.saveBar.cancel": "取消",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "上一个",
|
||||
"notifications.action.next": "下一个",
|
||||
"notifications.action.close": "关闭",
|
||||
"notifications.action.tryModel": "尝试 {{model}}",
|
||||
} satisfies Partial<Record<Keys, string>>
|
||||
|
||||
+5
-5
@@ -1060,6 +1060,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.disable.description": "完全停用此 Agent — 它將不會出現在任何地方",
|
||||
"settings.agentBehaviour.badge.hidden": "隱藏",
|
||||
"settings.agentBehaviour.badge.disabled": "已停用",
|
||||
"settings.agentBehaviour.badge.deprecated": "棄用",
|
||||
"settings.agentBehaviour.discoveredSkills": "已發現的 Skill",
|
||||
"settings.agentBehaviour.noSkillsFound": "未發現任何 Skill。請在下方新增 Skill 資料夾路徑或 URL 以使 Skill 可用。",
|
||||
"settings.agentBehaviour.availableModes": "可用自訂模式",
|
||||
@@ -1199,7 +1200,6 @@ export const dict = {
|
||||
|
||||
// Screen 1 — What's New
|
||||
"migration.whatsNew.title": "Kilo Code 新功能",
|
||||
"migration.whatsNew.badge": "Beta",
|
||||
"migration.whatsNew.subtitle": "我們在更快、更高效的基礎上重新建構了擴充功能。",
|
||||
"migration.whatsNew.features.performance.title": "更快的 Agent 效能",
|
||||
"migration.whatsNew.features.performance.detail":
|
||||
@@ -1257,8 +1257,8 @@ export const dict = {
|
||||
"settings.saveBar.warning.many": "多個工作階段正在執行,將被中斷",
|
||||
"settings.saveBar.saveAnyway": "仍然儲存",
|
||||
"settings.saveBar.cancel": "取消",
|
||||
"notifications.action.previous": "Previous",
|
||||
"notifications.action.next": "Next",
|
||||
"notifications.action.close": "Close",
|
||||
"notifications.action.tryModel": "Try model",
|
||||
"notifications.action.previous": "上一個",
|
||||
"notifications.action.next": "下一個",
|
||||
"notifications.action.close": "關閉",
|
||||
"notifications.action.tryModel": "嘗試 {{model}}",
|
||||
} satisfies Partial<Record<Keys, string>>
|
||||
|
||||
@@ -219,6 +219,7 @@ export interface AgentInfo {
|
||||
mode: "subagent" | "primary" | "all"
|
||||
native?: boolean
|
||||
hidden?: boolean
|
||||
deprecated?: boolean
|
||||
color?: string
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/package.json",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"name": "@kilocode/cli",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -38,6 +38,7 @@ export namespace Agent {
|
||||
mode: z.enum(["subagent", "primary", "all"]),
|
||||
native: z.boolean().optional(),
|
||||
hidden: z.boolean().optional(),
|
||||
deprecated: z.boolean().optional(),
|
||||
topP: z.number().optional(),
|
||||
temperature: z.number().optional(),
|
||||
color: z.string().optional(),
|
||||
@@ -298,6 +299,7 @@ export namespace Agent {
|
||||
),
|
||||
mode: "primary",
|
||||
native: true,
|
||||
deprecated: true,
|
||||
},
|
||||
ask: {
|
||||
name: "ask",
|
||||
@@ -456,6 +458,7 @@ export namespace Agent {
|
||||
item.mode = value.mode ?? item.mode
|
||||
item.color = value.color ?? item.color
|
||||
item.hidden = value.hidden ?? item.hidden
|
||||
item.deprecated = value.deprecated ?? item.deprecated
|
||||
item.name = value.name ?? item.name
|
||||
item.steps = value.steps ?? item.steps
|
||||
item.options = mergeDeep(item.options, value.options ?? {})
|
||||
|
||||
@@ -332,7 +332,7 @@ export const GithubInstallCommand = cmd({
|
||||
? `start "" "${url}"`
|
||||
: `xdg-open "${url}"`
|
||||
|
||||
exec(command, (error) => {
|
||||
exec(command, { windowsHide: true }, (error) => {
|
||||
if (error) {
|
||||
prompts.log.warn(`Could not open browser. Please visit: ${url}`)
|
||||
}
|
||||
|
||||
@@ -12,7 +12,8 @@ export function DialogAgent() {
|
||||
return {
|
||||
value: item.name,
|
||||
title: item.displayName ?? item.name, // kilocode_change
|
||||
description: item.native ? "native" : item.description,
|
||||
description:
|
||||
[item.deprecated && "deprecated", item.native && "native"].filter(Boolean).join(", ") || item.description,
|
||||
}
|
||||
}),
|
||||
)
|
||||
|
||||
@@ -1190,6 +1190,10 @@ export namespace Config {
|
||||
.boolean()
|
||||
.optional()
|
||||
.describe("@deprecated Use 'share' field instead. Share newly created sessions automatically"),
|
||||
remote_control: z // kilocode_change
|
||||
.boolean()
|
||||
.optional()
|
||||
.describe("Enable remote control of sessions via Kilo Cloud. Equivalent to running /remote on startup."),
|
||||
autoupdate: z
|
||||
.union([z.boolean(), z.literal("notify")])
|
||||
.optional()
|
||||
|
||||
@@ -10,6 +10,7 @@ import { clearInFlightCache, withInFlightCache } from "@/kilo-sessions/inflight-
|
||||
import type * as SDK from "@kilocode/sdk/v2"
|
||||
import z from "zod"
|
||||
import { KILO_API_BASE } from "@kilocode/kilo-gateway"
|
||||
import { Config } from "@/config/config"
|
||||
import { Instance } from "@/project/instance"
|
||||
import { Vcs } from "@/project/vcs"
|
||||
import simpleGit from "simple-git"
|
||||
@@ -205,7 +206,9 @@ export namespace KiloSessions {
|
||||
await ingest.sync(evt.properties.sessionID, [{ type: "session_close", data: { reason: evt.properties.reason } }])
|
||||
})
|
||||
|
||||
if (remoteEnabled) enableRemote().catch((err) => log.warn("remote not enabled", { error: String(err) }))
|
||||
const cfg = await Config.getGlobal()
|
||||
if (remoteEnabled || cfg.remote_control)
|
||||
enableRemote().catch((err) => log.warn("remote not enabled", { error: String(err) }))
|
||||
Bus.subscribe(Bus.InstanceDisposed, () => disableRemote())
|
||||
}
|
||||
|
||||
|
||||
@@ -71,7 +71,12 @@ export namespace RemoteProtocol {
|
||||
})
|
||||
export type System = z.infer<typeof System>
|
||||
|
||||
export const Inbound = z.discriminatedUnion("type", [Subscribe, Unsubscribe, Command, System])
|
||||
export const HeartbeatAck = z.object({
|
||||
type: z.literal("heartbeat_ack"),
|
||||
})
|
||||
export type HeartbeatAck = z.infer<typeof HeartbeatAck>
|
||||
|
||||
export const Inbound = z.discriminatedUnion("type", [Subscribe, Unsubscribe, Command, System, HeartbeatAck])
|
||||
export type Inbound = z.infer<typeof Inbound>
|
||||
|
||||
/** Lightweight schema for diagnostic logging before full parse. */
|
||||
|
||||
@@ -18,6 +18,8 @@ export namespace RemoteWS {
|
||||
withContext?: <R>(fn: () => R) => Promise<R> | R
|
||||
/** Called when the server permanently closes the connection (e.g. auth failure, conflict) */
|
||||
onClose?: (code: number, reason: string) => void
|
||||
/** Inactivity timeout in ms — force-close if no inbound message within this window */
|
||||
timeout?: number
|
||||
}
|
||||
|
||||
export type Connection = {
|
||||
@@ -56,6 +58,29 @@ export namespace RemoteWS {
|
||||
beat = undefined
|
||||
}
|
||||
|
||||
let activity = Date.now()
|
||||
let watchdog: Timer | undefined
|
||||
const timeout = options.timeout ?? 30_000
|
||||
|
||||
function startWatchdog() {
|
||||
stopWatchdog()
|
||||
watchdog = setInterval(
|
||||
() => {
|
||||
if (Date.now() - activity > timeout) {
|
||||
options.log.warn("remote-ws activity timeout, forcing reconnect")
|
||||
stopWatchdog()
|
||||
ws?.close(4000, "activity timeout")
|
||||
}
|
||||
},
|
||||
Math.min(interval, timeout),
|
||||
)
|
||||
}
|
||||
|
||||
function stopWatchdog() {
|
||||
if (watchdog) clearInterval(watchdog)
|
||||
watchdog = undefined
|
||||
}
|
||||
|
||||
async function open() {
|
||||
if (closed) return
|
||||
const token = await options.getToken()
|
||||
@@ -73,10 +98,13 @@ export namespace RemoteWS {
|
||||
backoff = 1000
|
||||
for (const msg of buffer) ws!.send(msg)
|
||||
buffer.length = 0
|
||||
activity = Date.now()
|
||||
startHeartbeat()
|
||||
startWatchdog()
|
||||
}
|
||||
|
||||
ws.onmessage = (event) => {
|
||||
activity = Date.now()
|
||||
const raw = String(event.data)
|
||||
let json: unknown
|
||||
try {
|
||||
@@ -99,6 +127,7 @@ export namespace RemoteWS {
|
||||
options.log.info("remote-ws closed", { code: event.code, reason: event.reason })
|
||||
ws = undefined
|
||||
stopHeartbeat()
|
||||
stopWatchdog()
|
||||
if (event.code === 4401 || event.code === 4403 || event.code === 4409) {
|
||||
options.log.warn("remote-ws closed permanently", {
|
||||
code: event.code,
|
||||
@@ -134,6 +163,7 @@ export namespace RemoteWS {
|
||||
function close() {
|
||||
closed = true
|
||||
stopHeartbeat()
|
||||
stopWatchdog()
|
||||
if (timer) clearTimeout(timer)
|
||||
if (ws) ws.close()
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ export namespace TsCheck {
|
||||
cwd: root,
|
||||
stdout: "pipe",
|
||||
stderr: "pipe",
|
||||
windowsHide: true,
|
||||
env: { ...process.env },
|
||||
})
|
||||
|
||||
|
||||
@@ -164,11 +164,69 @@ export namespace ModelCache {
|
||||
return fetchKiloModels(options)
|
||||
}
|
||||
|
||||
// kilocode_change start
|
||||
if (providerID === "apertis") {
|
||||
return fetchApertisModels(options)
|
||||
}
|
||||
// kilocode_change end
|
||||
|
||||
// Other providers not implemented yet
|
||||
log.debug("provider not implemented", { providerID })
|
||||
return {}
|
||||
}
|
||||
|
||||
// kilocode_change start
|
||||
const APERTIS_BASE_URL = "https://api.apertis.ai/v1"
|
||||
|
||||
async function fetchApertisModels(options: any): Promise<Record<string, any>> {
|
||||
const baseURL = options.baseURL ?? APERTIS_BASE_URL
|
||||
const apiKey = options.apiKey
|
||||
|
||||
if (!apiKey) {
|
||||
log.debug("no API key for apertis, skipping model fetch")
|
||||
return {}
|
||||
}
|
||||
|
||||
const url = `${baseURL.replace(/\/+$/, "")}/models`
|
||||
const response = await fetch(url, {
|
||||
headers: {
|
||||
Authorization: `Bearer ${apiKey}`,
|
||||
},
|
||||
signal: AbortSignal.timeout(10_000),
|
||||
})
|
||||
|
||||
if (!response.ok) {
|
||||
log.error("apertis model fetch failed", { status: response.status })
|
||||
return {}
|
||||
}
|
||||
|
||||
const json = (await response.json()) as { data?: Array<{ id: string; owned_by?: string }> }
|
||||
const models: Record<string, any> = {}
|
||||
|
||||
for (const model of json.data ?? []) {
|
||||
models[model.id] = {
|
||||
id: model.id,
|
||||
name: model.id,
|
||||
family: model.owned_by ?? "",
|
||||
release_date: "",
|
||||
attachment: false,
|
||||
reasoning: false,
|
||||
temperature: true,
|
||||
tool_call: true,
|
||||
cost: { input: 0, output: 0 },
|
||||
limit: { context: 128000, output: 4096 },
|
||||
options: {},
|
||||
modalities: {
|
||||
input: ["text"],
|
||||
output: ["text"],
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
return models
|
||||
}
|
||||
// kilocode_change end
|
||||
|
||||
/**
|
||||
* Get authentication options from multiple sources
|
||||
* Priority: Config > Auth > Env
|
||||
@@ -223,6 +281,38 @@ export namespace ModelCache {
|
||||
})
|
||||
}
|
||||
|
||||
// kilocode_change start
|
||||
if (providerID === "apertis") {
|
||||
const config = await Config.get()
|
||||
const providerConfig = config.provider?.[providerID]
|
||||
if (providerConfig?.options?.apiKey) {
|
||||
options.apiKey = providerConfig.options.apiKey
|
||||
}
|
||||
if (providerConfig?.options?.baseURL) {
|
||||
options.baseURL = providerConfig.options.baseURL
|
||||
}
|
||||
|
||||
const auth = await Auth.get(providerID)
|
||||
if (auth && auth.type === "api") {
|
||||
options.apiKey = auth.key
|
||||
}
|
||||
|
||||
const env = Env.all()
|
||||
if (env.APERTIS_API_KEY) {
|
||||
options.apiKey = env.APERTIS_API_KEY
|
||||
}
|
||||
if (env.APERTIS_BASE_URL) {
|
||||
options.baseURL = env.APERTIS_BASE_URL
|
||||
}
|
||||
|
||||
log.debug("apertis auth options resolved", {
|
||||
providerID,
|
||||
hasKey: !!options.apiKey,
|
||||
hasBaseURL: !!options.baseURL,
|
||||
})
|
||||
}
|
||||
// kilocode_change end
|
||||
|
||||
return options
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,6 +178,28 @@ export namespace ModelsDev {
|
||||
}
|
||||
}
|
||||
|
||||
// Inject Apertis provider with dynamic model fetching
|
||||
if (!providers["apertis"]) {
|
||||
const apertisConfigObj = await Config.get()
|
||||
const apertisConfig = apertisConfigObj.provider?.apertis?.options
|
||||
const apertisBaseURL = apertisConfig?.baseURL ?? "https://api.apertis.ai/v1"
|
||||
const apertisFetchOptions = {
|
||||
...(apertisConfig?.baseURL ? { baseURL: apertisConfig.baseURL } : {}),
|
||||
}
|
||||
const apertisModels = await ModelCache.fetch("apertis", apertisFetchOptions).catch(() => ({}))
|
||||
providers["apertis"] = {
|
||||
id: "apertis",
|
||||
name: "Apertis",
|
||||
env: ["APERTIS_API_KEY"],
|
||||
api: apertisBaseURL,
|
||||
npm: "@ai-sdk/openai-compatible",
|
||||
models: apertisModels,
|
||||
}
|
||||
if (Object.keys(apertisModels).length === 0) {
|
||||
ModelCache.refresh("apertis", apertisFetchOptions).catch(() => {})
|
||||
}
|
||||
}
|
||||
|
||||
return providers
|
||||
// kilocode_change end
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import { WorkspaceContext } from "../control-plane/workspace-context"
|
||||
import { ProjectID } from "../project/schema"
|
||||
import { WorkspaceID } from "../control-plane/schema"
|
||||
import { SessionID, MessageID, PartID } from "./schema"
|
||||
import { Filesystem } from "../util/filesystem" // kilocode_change: normalize directory for Windows drive-letter casing
|
||||
|
||||
import type { Provider } from "@/provider/provider"
|
||||
import { ModelID, ProviderID } from "@/provider/schema"
|
||||
@@ -585,7 +586,9 @@ export namespace Session {
|
||||
conditions.push(eq(SessionTable.workspace_id, WorkspaceContext.workspaceID))
|
||||
}
|
||||
if (input?.directory) {
|
||||
conditions.push(eq(SessionTable.directory, input.directory))
|
||||
// kilocode_change start: vscode uri.fsPath gives lowercase drive letter on Windows; resolve() canonicalises to match stored path
|
||||
conditions.push(eq(SessionTable.directory, Filesystem.resolve(input.directory)))
|
||||
// kilocode_change end
|
||||
}
|
||||
if (input?.roots) {
|
||||
conditions.push(isNull(SessionTable.parent_id))
|
||||
@@ -625,7 +628,9 @@ export namespace Session {
|
||||
const conditions: SQL[] = []
|
||||
|
||||
if (input?.directory) {
|
||||
conditions.push(eq(SessionTable.directory, input.directory))
|
||||
// kilocode_change start: vscode uri.fsPath gives lowercase drive letter on Windows; resolve() canonicalises to match stored path
|
||||
conditions.push(eq(SessionTable.directory, Filesystem.resolve(input.directory)))
|
||||
// kilocode_change end
|
||||
}
|
||||
if (input?.roots) {
|
||||
conditions.push(isNull(SessionTable.parent_id))
|
||||
|
||||
@@ -237,4 +237,22 @@ describe("RemoteProtocol", () => {
|
||||
const result = RemoteProtocol.SessionInfo.safeParse({ id: "x" })
|
||||
expect(result.success).toBe(false)
|
||||
})
|
||||
|
||||
test("valid heartbeat_ack parses", () => {
|
||||
const msg = { type: "heartbeat_ack" }
|
||||
const result = RemoteProtocol.HeartbeatAck.safeParse(msg)
|
||||
expect(result.success).toBe(true)
|
||||
if (result.success) {
|
||||
expect(result.data.type).toBe("heartbeat_ack")
|
||||
}
|
||||
})
|
||||
|
||||
test("inbound union picks heartbeat_ack", () => {
|
||||
const msg = { type: "heartbeat_ack" }
|
||||
const result = RemoteProtocol.Inbound.safeParse(msg)
|
||||
expect(result.success).toBe(true)
|
||||
if (result.success) {
|
||||
expect(result.data.type).toBe("heartbeat_ack")
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
@@ -284,4 +284,84 @@ describe("RemoteWS", () => {
|
||||
expect(server.clients.length).toBe(0)
|
||||
expect(server.messages.length).toBe(0)
|
||||
})
|
||||
|
||||
test("force-reconnects on activity timeout", async () => {
|
||||
server = createServer()
|
||||
const ws1 = server.waitForConnect()
|
||||
|
||||
conn = RemoteWS.connect({
|
||||
url: server.url,
|
||||
getToken: async () => "tok",
|
||||
getSessions: () => [],
|
||||
log: nolog(),
|
||||
heartbeat: 60_000,
|
||||
timeout: 200,
|
||||
})
|
||||
|
||||
await ws1
|
||||
await settled()
|
||||
expect(conn.connected).toBe(true)
|
||||
|
||||
// Don't send any server messages — timeout should fire
|
||||
const ws2 = server.waitForConnect()
|
||||
await Bun.sleep(450)
|
||||
|
||||
// Should have reconnected
|
||||
await ws2
|
||||
await settled()
|
||||
expect(conn.connected).toBe(true)
|
||||
})
|
||||
|
||||
test("resets activity timer on incoming messages", async () => {
|
||||
server = createServer()
|
||||
const ws1p = server.waitForConnect()
|
||||
|
||||
conn = RemoteWS.connect({
|
||||
url: server.url,
|
||||
getToken: async () => "tok",
|
||||
getSessions: () => [],
|
||||
log: nolog(),
|
||||
heartbeat: 60_000,
|
||||
timeout: 300,
|
||||
})
|
||||
|
||||
const ws1 = await ws1p
|
||||
await settled()
|
||||
|
||||
// Send server messages at 100ms intervals — each resets the timer
|
||||
for (let i = 0; i < 4; i++) {
|
||||
await Bun.sleep(100)
|
||||
ws1.send(JSON.stringify({ type: "subscribe", sessionId: `s${i}` }))
|
||||
}
|
||||
|
||||
await settled()
|
||||
// Connection should still be alive — activity kept resetting the timer
|
||||
expect(conn.connected).toBe(true)
|
||||
expect(server.clients.length).toBe(1)
|
||||
})
|
||||
|
||||
test("activity timeout uses custom timeout option", async () => {
|
||||
server = createServer()
|
||||
const ws1 = server.waitForConnect()
|
||||
|
||||
conn = RemoteWS.connect({
|
||||
url: server.url,
|
||||
getToken: async () => "tok",
|
||||
getSessions: () => [],
|
||||
log: nolog(),
|
||||
heartbeat: 60_000,
|
||||
timeout: 100,
|
||||
})
|
||||
|
||||
await ws1
|
||||
await settled()
|
||||
|
||||
// With 100ms timeout, should reconnect faster than default 30s
|
||||
const ws2 = server.waitForConnect()
|
||||
await Bun.sleep(250)
|
||||
|
||||
await ws2
|
||||
await settled()
|
||||
expect(conn.connected).toBe(true)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/package.json",
|
||||
"name": "@kilocode/plugin",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
|
||||
@@ -12,6 +12,6 @@
|
||||
"exports": {
|
||||
".": "./src/index.ts"
|
||||
},
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"peerDependencies": {}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/package.json",
|
||||
"name": "@kilocode/sdk",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
|
||||
@@ -8,9 +8,13 @@ export { type Config as KiloClientConfig, KiloClient }
|
||||
export function createKiloClient(config?: Config & { directory?: string }) {
|
||||
if (!config?.fetch) {
|
||||
const customFetch: any = (req: any) => {
|
||||
// @ts-ignore
|
||||
req.timeout = false
|
||||
return fetch(req)
|
||||
// Pass duplex in the init arg so it survives VS Code's proxy-agent
|
||||
// fetch wrapper, which calls originalFetch(request, { ...init, dispatcher })
|
||||
// and would otherwise drop duplex from the cloned Request.
|
||||
// timeout: false disables Bun's default request timeout for long-running
|
||||
// streaming calls (replaces the old req.timeout = false assignment which
|
||||
// wouldn't survive the clone triggered by passing an init object).
|
||||
return fetch(req, { duplex: "half", timeout: false } as any)
|
||||
}
|
||||
config = {
|
||||
...config,
|
||||
|
||||
@@ -68,6 +68,7 @@ export async function createKiloServer(options?: ServerOptions) {
|
||||
const proc = spawn(`kilo`, args, {
|
||||
// kilocode_change end
|
||||
signal: options.signal,
|
||||
windowsHide: true,
|
||||
env: {
|
||||
...process.env,
|
||||
KILO_CONFIG_CONTENT: buildConfigEnv(options.config), // kilocode_change
|
||||
@@ -148,6 +149,7 @@ export function createKiloTui(options?: TuiOptions) {
|
||||
// kilocode_change end
|
||||
signal: options?.signal,
|
||||
stdio: "inherit",
|
||||
windowsHide: true,
|
||||
env: {
|
||||
...process.env,
|
||||
KILO_CONFIG_CONTENT: buildConfigEnv(options?.config), // kilocode_change
|
||||
|
||||
@@ -8,9 +8,13 @@ export { type Config as KiloClientConfig, KiloClient }
|
||||
export function createKiloClient(config?: Config & { directory?: string; experimental_workspaceID?: string }) {
|
||||
if (!config?.fetch) {
|
||||
const customFetch: any = (req: any) => {
|
||||
// @ts-ignore
|
||||
req.timeout = false
|
||||
return fetch(req)
|
||||
// Pass duplex in the init arg so it survives VS Code's proxy-agent
|
||||
// fetch wrapper, which calls originalFetch(request, { ...init, dispatcher })
|
||||
// and would otherwise drop duplex from the cloned Request.
|
||||
// timeout: false disables Bun's default request timeout for long-running
|
||||
// streaming calls (replaces the old req.timeout = false assignment which
|
||||
// wouldn't survive the clone triggered by passing an init object).
|
||||
return fetch(req, { duplex: "half", timeout: false } as any)
|
||||
}
|
||||
config = {
|
||||
...config,
|
||||
|
||||
@@ -1393,6 +1393,10 @@ export type Config = {
|
||||
* @deprecated Use 'share' field instead. Share newly created sessions automatically
|
||||
*/
|
||||
autoshare?: boolean
|
||||
/**
|
||||
* Enable remote control of sessions via Kilo Cloud. Equivalent to running /remote on startup.
|
||||
*/
|
||||
remote_control?: boolean
|
||||
/**
|
||||
* Automatically update to the latest version. Set to true to auto-update, false to disable, or 'notify' to show update notifications
|
||||
*/
|
||||
@@ -1944,6 +1948,7 @@ export type Agent = {
|
||||
mode: "subagent" | "primary" | "all"
|
||||
native?: boolean
|
||||
hidden?: boolean
|
||||
deprecated?: boolean
|
||||
topP?: number
|
||||
temperature?: number
|
||||
color?: string
|
||||
|
||||
@@ -68,6 +68,7 @@ export async function createKiloServer(options?: ServerOptions) {
|
||||
const proc = spawn(`kilo`, args, {
|
||||
// kilocode_change end
|
||||
signal: options.signal,
|
||||
windowsHide: true,
|
||||
env: {
|
||||
...process.env,
|
||||
KILO_CONFIG_CONTENT: buildConfigEnv(options.config), // kilocode_change
|
||||
@@ -148,6 +149,7 @@ export function createKiloTui(options?: TuiOptions) {
|
||||
// kilocode_change end
|
||||
signal: options?.signal,
|
||||
stdio: "inherit",
|
||||
windowsHide: true,
|
||||
env: {
|
||||
...process.env,
|
||||
KILO_CONFIG_CONTENT: buildConfigEnv(options?.config), // kilocode_change
|
||||
|
||||
@@ -14773,6 +14773,9 @@
|
||||
"hidden": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"deprecated": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"topP": {
|
||||
"type": "number"
|
||||
},
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"typescript": "catalog:",
|
||||
"vite": "catalog:"
|
||||
},
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"dependencies": {},
|
||||
"peerDependencies": {}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@opencode-ai/ui",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"exports": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@opencode-ai/util",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@kilocode/upstream-merge",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"description": "Scripts for automating upstream opencode merges into Kilo",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "opencode",
|
||||
"displayName": "opencode",
|
||||
"description": "opencode for VS Code",
|
||||
"version": "7.1.9",
|
||||
"version": "7.1.11",
|
||||
"publisher": "sst-dev",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
Reference in New Issue
Block a user