Merge branch 'dev' into feat/vscode-question-support

This commit is contained in:
Igor Šćekić
2026-02-12 12:51:29 +01:00
48 changed files with 770 additions and 165 deletions
+13 -13
View File
@@ -23,7 +23,7 @@
},
"packages/app": {
"name": "@opencode-ai/app",
"version": "1.0.14",
"version": "1.0.17",
"dependencies": {
"@kilocode/kilo-i18n": "workspace:*",
"@kilocode/kilo-ui": "workspace:*",
@@ -75,7 +75,7 @@
},
"packages/desktop": {
"name": "@opencode-ai/desktop",
"version": "1.0.14",
"version": "1.0.17",
"dependencies": {
"@opencode-ai/app": "workspace:*",
"@opencode-ai/ui": "workspace:*",
@@ -108,7 +108,7 @@
},
"packages/kilo-gateway": {
"name": "@kilocode/kilo-gateway",
"version": "1.0.14",
"version": "1.0.17",
"dependencies": {
"@clack/prompts": "1.0.0-alpha.1",
"@kilocode/plugin": "workspace:*",
@@ -140,7 +140,7 @@
},
"packages/kilo-i18n": {
"name": "@kilocode/kilo-i18n",
"version": "1.0.13",
"version": "1.0.17",
"devDependencies": {
"@tsconfig/node22": "catalog:",
"@types/bun": "catalog:",
@@ -150,7 +150,7 @@
},
"packages/kilo-telemetry": {
"name": "@kilocode/kilo-telemetry",
"version": "1.0.14",
"version": "1.0.17",
"dependencies": {
"@kilocode/kilo-gateway": "workspace:*",
"@opentelemetry/api": "1.9.0",
@@ -170,7 +170,7 @@
},
"packages/kilo-ui": {
"name": "@kilocode/kilo-ui",
"version": "1.0.14",
"version": "1.0.17",
"devDependencies": {
"@tsconfig/node22": "catalog:",
"@types/bun": "catalog:",
@@ -183,7 +183,7 @@
},
"packages/kilo-vscode": {
"name": "kilo-code",
"version": "0.0.1",
"version": "1.0.17",
"dependencies": {
"@kilocode/kilo-i18n": "workspace:*",
"@kilocode/kilo-ui": "workspace:*",
@@ -211,7 +211,7 @@
},
"packages/opencode": {
"name": "@kilocode/cli",
"version": "1.0.14",
"version": "1.0.17",
"bin": {
"kilo": "./bin/kilo",
"kilocode": "./bin/kilocode",
@@ -320,7 +320,7 @@
},
"packages/plugin": {
"name": "@kilocode/plugin",
"version": "1.0.14",
"version": "1.0.17",
"dependencies": {
"@kilocode/sdk": "workspace:*",
"zod": "catalog:",
@@ -334,14 +334,14 @@
},
"packages/script": {
"name": "@opencode-ai/script",
"version": "1.0.14",
"version": "1.0.17",
"devDependencies": {
"@types/bun": "catalog:",
},
},
"packages/sdk/js": {
"name": "@kilocode/sdk",
"version": "1.0.14",
"version": "1.0.17",
"devDependencies": {
"@hey-api/openapi-ts": "0.90.10",
"@tsconfig/node22": "catalog:",
@@ -352,7 +352,7 @@
},
"packages/ui": {
"name": "@opencode-ai/ui",
"version": "1.0.14",
"version": "1.0.17",
"dependencies": {
"@kilocode/sdk": "workspace:*",
"@kobalte/core": "catalog:",
@@ -394,7 +394,7 @@
},
"packages/util": {
"name": "@opencode-ai/util",
"version": "1.0.14",
"version": "1.0.17",
"dependencies": {
"zod": "catalog:",
},
+1 -1
View File
@@ -17,5 +17,5 @@
"@octokit/rest": "catalog:",
"@kilocode/sdk": "workspace:*"
},
"version": "1.0.14"
"version": "1.0.17"
}
+1 -1
View File
@@ -102,6 +102,6 @@
"@standard-community/standard-openapi@0.2.9": "patches/@standard-community%2Fstandard-openapi@0.2.9.patch",
"ghostty-web@0.3.0": "patches/ghostty-web@0.3.0.patch"
},
"version": "1.0.14",
"version": "1.0.17",
"peerDependencies": {}
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/app",
"version": "1.0.14",
"version": "1.0.17",
"description": "",
"type": "module",
"exports": {
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@opencode-ai/desktop",
"private": true,
"version": "1.0.14",
"version": "1.0.17",
"type": "module",
"license": "MIT",
"scripts": {
+6 -6
View File
@@ -1,7 +1,7 @@
id = "kilo"
name = "Kilo"
description = "The open source coding agent."
version = "1.1.57"
version = "1.0.17"
schema_version = 1
authors = ["Anomaly"]
repository = "https://github.com/Kilo-Org/kilo"
@@ -11,26 +11,26 @@ name = "Kilo"
icon = "./icons/opencode.svg"
[agent_servers.opencode.targets.darwin-aarch64]
archive = "https://github.com/Kilo-Org/kilo/releases/download/v1.1.57/opencode-darwin-arm64.zip"
archive = "https://github.com/Kilo-Org/kilo/releases/download/v1.0.17/opencode-darwin-arm64.zip"
cmd = "./opencode"
args = ["acp"]
[agent_servers.opencode.targets.darwin-x86_64]
archive = "https://github.com/Kilo-Org/kilo/releases/download/v1.1.57/opencode-darwin-x64.zip"
archive = "https://github.com/Kilo-Org/kilo/releases/download/v1.0.17/opencode-darwin-x64.zip"
cmd = "./opencode"
args = ["acp"]
[agent_servers.opencode.targets.linux-aarch64]
archive = "https://github.com/Kilo-Org/kilo/releases/download/v1.1.57/opencode-linux-arm64.tar.gz"
archive = "https://github.com/Kilo-Org/kilo/releases/download/v1.0.17/opencode-linux-arm64.tar.gz"
cmd = "./opencode"
args = ["acp"]
[agent_servers.opencode.targets.linux-x86_64]
archive = "https://github.com/Kilo-Org/kilo/releases/download/v1.1.57/opencode-linux-x64.tar.gz"
archive = "https://github.com/Kilo-Org/kilo/releases/download/v1.0.17/opencode-linux-x64.tar.gz"
cmd = "./opencode"
args = ["acp"]
[agent_servers.opencode.targets.windows-x86_64]
archive = "https://github.com/Kilo-Org/kilo/releases/download/v1.1.57/opencode-windows-x64.zip"
archive = "https://github.com/Kilo-Org/kilo/releases/download/v1.0.17/opencode-windows-x64.zip"
cmd = "./opencode.exe"
args = ["acp"]
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@kilocode/kilo-gateway",
"version": "1.0.14",
"version": "1.0.17",
"type": "module",
"license": "MIT",
"description": "Unified Kilo Gateway package for OpenCode - authentication, provider, and API integration",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@kilocode/kilo-i18n",
"version": "1.0.13",
"version": "1.0.17",
"type": "module",
"license": "MIT",
"description": "Kilo-specific i18n translations and overrides",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@kilocode/kilo-telemetry",
"version": "1.0.14",
"version": "1.0.17",
"type": "module",
"license": "MIT",
"description": "Telemetry for Kilo CLI - PostHog analytics integration",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@kilocode/kilo-ui",
"version": "1.0.14",
"version": "1.0.17",
"type": "module",
"license": "MIT",
"exports": {
@@ -24,6 +24,7 @@ The rebuild has a working foundation:
- **Message protocol**: 28 message types in [`messages.ts`](../webview-ui/src/types/messages.ts)
- **Build pipeline**: dual esbuild (extension + webview), CLI binary provisioning in [`esbuild.js`](../esbuild.js) and [`prepare-cli-binary.mjs`](../scripts/prepare-cli-binary.mjs)
- **View title bar button**: ✅ Done — [#181](https://github.com/Kilo-Org/kilo/issues/181)
- **Browser automation**: Playwright MCP integration with settings toggle, lifecycle service, and CLI MCP hub registration in [`BrowserAutomationService`](../src/services/browser-automation/browser-automation-service.ts)
---
@@ -32,7 +33,7 @@ The rebuild has a working foundation:
| Feature | Status | Details | Backend | Priority |
| -------------------------------------------------------------------------------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | -------- |
| [Auto-Approval Controls](chat-ui-features/auto-approval-controls.md) | ❌ Not started | No auto-approval toggle, scope selectors, or timeout config. Permission dialog exists but only supports per-request decisions. [#171](https://github.com/Kilo-Org/kilo/issues/171) | CLI owns permissions; webview needs config UI | P1 |
| [Browser Session Controls](chat-ui-features/browser-session-controls.md) | ❌ Not started | No browser automation UI, action replay, or screenshot viewing in chat. | CLI-side (if browser tool exists) + webview | P3 |
| [Browser Session Controls](chat-ui-features/browser-session-controls.md) | 🔨 Partial | BrowserTab settings UI implemented with enable/disable toggle, system Chrome and headless options. Missing: in-chat browser session controls, action replay, screenshot viewing. | CLI-side (if browser tool exists) + webview | P3 |
| [Checkpoint & Task Management](chat-ui-features/checkpoint-task-management.md) | ❌ Not started | No checkpoint restore, navigation, or "See New Changes" diff buttons. | CLI session undo/redo/fork + extension git integration | P1 |
| [Code Block Interactions](chat-ui-features/code-block-interactions.md) | ❌ Not started | No markdown rendering, syntax highlighting, copy button, expand/collapse, or sticky buttons on code blocks. Messages render as plain text. | Webview-only | P0 |
| [Command Execution](chat-ui-features/command-execution.md) | 🔨 Partial | Tool messages render but lack expandable terminal output, abort-by-PID, exit status indicators, command pattern selectors, and syntax highlighting. | CLI executes commands; webview renders output | P0 |
@@ -56,40 +57,40 @@ The rebuild has a working foundation:
## Non-Agent Feature Parity
| Feature | Status | Details | Backend | Priority |
| ------------------------------------------------------------------------------------------------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | -------- |
| [Agent Manager](non-agent-features/agent-manager.md) | 🔨 Partial | Panel exists but renders only `<h1>Agent Manager</h1>`. No session orchestration, parallel worktrees, or resumable sessions. [#178](https://github.com/Kilo-Org/kilo/issues/178) | Extension orchestrates multiple CLI sessions | P1 |
| [Authentication & Enterprise](non-agent-features/authentication-organization-enterprise-enforcement.md) | 🔨 Partial | Device auth flow works. Missing: org feature flags, MDM policy enforcement. [#160](https://github.com/Kilo-Org/kilo/issues/160) | CLI handles its auth; extension handles org/MDM | P1 |
| [Auto-Purge](non-agent-features/auto-purge.md) | ❌ Not started | No scheduled cleanup of old session/task storage. | Extension-side (storage ownership TBD) | P3 |
| [Autocomplete / Ghost](non-agent-features/autocomplete-ghost.md) | ❌ Not started | No inline editor completions, fill-in-the-middle, or chat-input autocomplete. [#164](https://github.com/Kilo-Org/kilo/issues/164) | Extension-side (VS Code InlineCompletionProvider) | P1 |
| [Browser Automation & URL Ingestion](non-agent-features/browser-automation-url-ingestion.md) | ❌ Not started | No browser control, screenshots, or URL-to-markdown extraction. | CLI (partial); extension for browser automation | P3 |
| [Checkpoints](non-agent-features/checkpoints.md) | ❌ Not started | No shadow git repo, per-task snapshots, restore UI, or diff viewing. Settings tab is a stub. | CLI (partial: session undo/redo); extension for git snapshots | P1 |
| [Cloud Task Support](non-agent-features/cloud-task-support.md) | ❌ Not started | No cloud sync for tasks across devices. [#168](https://github.com/Kilo-Org/kilo/issues/168) | Kilo cloud API + CLI; extension provides UI | P2 |
| [Code Actions](non-agent-features/code-actions.md) | ❌ Not started | No VS Code lightbulb/context menu integrations (explain, fix, improve). | Extension-side (VS Code CodeActionProvider) | P2 |
| [Code Reviews](non-agent-features/code-reviews.md) | ❌ Not started | No local review mode or automated AI review of uncommitted/branch changes. | CLI (partial); extension for VS Code review UX | P2 |
| [Codebase Indexing & Semantic Search](non-agent-features/codebase-indexing-semantic-search.md) | ❌ Not started | No vector indexing, semantic search, or embeddings infrastructure. | CLI has grep/glob endpoints; semantic indexing is extension or cloud | P2 |
| [Contribution Tracking](non-agent-features/contribution-tracking.md) | ❌ Not started | No AI attribution tracking, line fingerprinting, or reporting. | Extension-side | P3 |
| [Custom Commands](non-agent-features/custom-command-system.md) | ❌ Not started | No slash commands, project-level command discovery, or YAML frontmatter support. | CLI has custom commands; extension provides UI entry points | P2 |
| [Deploy & Secure Surfaces](non-agent-features/deploy-and-secure-surfaces.md) | ❌ Not started | No deploy workflows, managed indexing UI, or security review surfaces. | Extension-side | P3 |
| [Fast Edits](non-agent-features/fast-edits.md) | ❌ Not started | No fast edit mode for quick inline code changes. | CLI fast-edit runtime; extension provides UI | P2 |
| [Git Commit Message Generation](non-agent-features/git-commit-message-generation.md) | ❌ Not started | No AI commit message generation or VS Code Source Control integration. [#165](https://github.com/Kilo-Org/kilo/issues/165) | Extension-side (VS Code Git API) | P2 |
| [Integrations](non-agent-features/integrations.md) | ❌ Not started | No external system integrations (GitHub, etc.) beyond basic auth. | CLI plugin system (partial); extension for IDE hooks | P3 |
| [Kilo Gateway](non-agent-features/kilo-gateway.md) | 🔨 Partial | Auth flow works but no explicit gateway provider selection or default model. [#176](https://github.com/Kilo-Org/kilo/issues/176) | CLI handles gateway connection; extension provides config UI | P0 |
| [Localization](non-agent-features/localization-and-locale-alignment.md) | ❌ Not started | No i18n or locale normalization. All UI is English-only. | Extension + webview; CLI locale mapping needed | P3 |
| [Marketplace](non-agent-features/marketplace.md) | 🔨 Partial | Placeholder view exists but is non-functional. No catalog, install, or update capabilities. [#169](https://github.com/Kilo-Org/kilo/issues/169) | Extension-side | P2 |
| [MCP & MCP Hub](non-agent-features/mcp-and-mcp-hub.md) | ❌ Not started | No MCP configuration UI, server management, tool allowlisting, or connection status. CLI owns MCP runtime. | CLI owns MCP lifecycle; extension provides config UI | P1 |
| [Mode Switcher](non-agent-features/mode-switcher.md) | ❌ Not started | No mode switching UI (Code, Architect, Ask, Debug, etc.). [#162](https://github.com/Kilo-Org/kilo/issues/162) | CLI manages modes; extension provides switcher UI | P2 |
| [Model Switcher](non-agent-features/model-switcher.md) | 🔨 Partial | No model switching UI. In progress. [#163](https://github.com/Kilo-Org/kilo/issues/163) | CLI provides model list; extension provides switcher UI | P1 |
| [Provider Configuration](non-agent-features/provider-configuration.md) | ❌ Not started | No provider add/edit/remove or switching UI. ProvidersTab is a stub. [#175](https://github.com/Kilo-Org/kilo/issues/175) | CLI manages providers; extension provides config UI | P1 |
| [Repository Initialization](non-agent-features/repository-initialization.md) | ❌ Not started | No /init command support for setting up agentic engineering. [#174](https://github.com/Kilo-Org/kilo/issues/174) | CLI /init endpoint; extension provides UI trigger | P3 |
| [Rules & Workflows](non-agent-features/rules-and-workflows.md) | ❌ Not started | No rules or workflow management UI. [#173](https://github.com/Kilo-Org/kilo/issues/173) | CLI owns rules runtime; extension provides management UI | P3 |
| [Search & Repo Scanning](non-agent-features/search-and-repo-scanning-infrastructure.md) | ❌ Not started | No search infrastructure beyond CLI grep/glob. | CLI has grep/glob; extension may add UI | P2 |
| [Settings Sync](non-agent-features/settings-sync-integration.md) | ❌ Not started | No VS Code Settings Sync allowlist registration. Settings tabs are all stubs. | Extension-side (VS Code API) | P3 |
| [Settings UI](non-agent-features/settings-ui.md) | 🔨 Partial | 14-tab settings shell exists, all tabs are stubs. [#170](https://github.com/Kilo-Org/kilo/issues/170) | CLI exposes config; extension provides settings forms | P1 |
| [Skills System](non-agent-features/skills-system.md) | ❌ Not started | No skill discovery, management, or hot-reload in extension. | CLI has skills runtime; extension provides packaging/UI | P2 |
| [Speech-to-Text](non-agent-features/speech-to-text.md) | ❌ Not started | No voice input or streaming STT. | Webview (mic capture); CLI-compatible STT optional | P3 |
| [Task History](non-agent-features/task-history.md) | 🔨 Partial | Session list exists but lacks search, metadata, and full persistence. [#167](https://github.com/Kilo-Org/kilo/issues/167) | CLI session storage; extension provides history UI | P1 |
| [Terminal / Shell Integration](non-agent-features/terminal-shell-integration.md) | ❌ Not started | No VS Code terminal integration for command execution display, exit code tracking, or working directory changes. | CLI executes commands; extension provides terminal UX | P1 |
| Feature | Status | Details | Backend | Priority |
| ------------------------------------------------------------------------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- | -------- |
| [Agent Manager](non-agent-features/agent-manager.md) | 🔨 Partial | Panel exists but renders only `<h1>Agent Manager</h1>`. No session orchestration, parallel worktrees, or resumable sessions. [#178](https://github.com/Kilo-Org/kilo/issues/178) | Extension orchestrates multiple CLI sessions | P1 |
| [Authentication & Enterprise](non-agent-features/authentication-organization-enterprise-enforcement.md) | 🔨 Partial | Device auth flow works. Missing: org feature flags, MDM policy enforcement. [#160](https://github.com/Kilo-Org/kilo/issues/160) | CLI handles its auth; extension handles org/MDM | P1 |
| [Auto-Purge](non-agent-features/auto-purge.md) | ❌ Not started | No scheduled cleanup of old session/task storage. | Extension-side (storage ownership TBD) | P3 |
| [Autocomplete / Ghost](non-agent-features/autocomplete-ghost.md) | ❌ Not started | No inline editor completions, fill-in-the-middle, or chat-input autocomplete. [#164](https://github.com/Kilo-Org/kilo/issues/164) | Extension-side (VS Code InlineCompletionProvider) | P1 |
| [Browser Automation & URL Ingestion](non-agent-features/browser-automation-url-ingestion.md) | 🔨 Partial | Playwright MCP integration implemented: settings toggle, BrowserAutomationService, CLI MCP hub registration, BrowserTab settings UI. Missing: URL-to-markdown ingestion, screenshot viewing in chat. | CLI MCP hub (POST /mcp); extension manages lifecycle | P3 |
| [Checkpoints](non-agent-features/checkpoints.md) | ❌ Not started | No shadow git repo, per-task snapshots, restore UI, or diff viewing. Settings tab is a stub. | CLI (partial: session undo/redo); extension for git snapshots | P1 |
| [Cloud Task Support](non-agent-features/cloud-task-support.md) | ❌ Not started | No cloud sync for tasks across devices. [#168](https://github.com/Kilo-Org/kilo/issues/168) | Kilo cloud API + CLI; extension provides UI | P2 |
| [Code Actions](non-agent-features/code-actions.md) | ❌ Not started | No VS Code lightbulb/context menu integrations (explain, fix, improve). | Extension-side (VS Code CodeActionProvider) | P2 |
| [Code Reviews](non-agent-features/code-reviews.md) | ❌ Not started | No local review mode or automated AI review of uncommitted/branch changes. | CLI (partial); extension for VS Code review UX | P2 |
| [Codebase Indexing & Semantic Search](non-agent-features/codebase-indexing-semantic-search.md) | ❌ Not started | No vector indexing, semantic search, or embeddings infrastructure. | CLI has grep/glob endpoints; semantic indexing is extension or cloud | P2 |
| [Contribution Tracking](non-agent-features/contribution-tracking.md) | ❌ Not started | No AI attribution tracking, line fingerprinting, or reporting. | Extension-side | P3 |
| [Custom Commands](non-agent-features/custom-command-system.md) | ❌ Not started | No slash commands, project-level command discovery, or YAML frontmatter support. | CLI has custom commands; extension provides UI entry points | P2 |
| [Deploy & Secure Surfaces](non-agent-features/deploy-and-secure-surfaces.md) | ❌ Not started | No deploy workflows, managed indexing UI, or security review surfaces. | Extension-side | P3 |
| [Fast Edits](non-agent-features/fast-edits.md) | ❌ Not started | No fast edit mode for quick inline code changes. | CLI fast-edit runtime; extension provides UI | P2 |
| [Git Commit Message Generation](non-agent-features/git-commit-message-generation.md) | ❌ Not started | No AI commit message generation or VS Code Source Control integration. [#165](https://github.com/Kilo-Org/kilo/issues/165) | Extension-side (VS Code Git API) | P2 |
| [Integrations](non-agent-features/integrations.md) | ❌ Not started | No external system integrations (GitHub, etc.) beyond basic auth. | CLI plugin system (partial); extension for IDE hooks | P3 |
| [Kilo Gateway](non-agent-features/kilo-gateway.md) | 🔨 Partial | Auth flow works but no explicit gateway provider selection or default model. [#176](https://github.com/Kilo-Org/kilo/issues/176) | CLI handles gateway connection; extension provides config UI | P0 |
| [Localization](non-agent-features/localization-and-locale-alignment.md) | ❌ Not started | No i18n or locale normalization. All UI is English-only. | Extension + webview; CLI locale mapping needed | P3 |
| [Marketplace](non-agent-features/marketplace.md) | 🔨 Partial | Placeholder view exists but is non-functional. No catalog, install, or update capabilities. [#169](https://github.com/Kilo-Org/kilo/issues/169) | Extension-side | P2 |
| [MCP & MCP Hub](non-agent-features/mcp-and-mcp-hub.md) | 🔨 Partial | MCP types and HTTP client methods added (getMcpStatus, addMcpServer, connectMcpServer, disconnectMcpServer). Used by BrowserAutomationService. Missing: general MCP configuration UI, server management, tool allowlisting, connection status display. | CLI owns MCP lifecycle; extension provides config UI | P1 |
| [Mode Switcher](non-agent-features/mode-switcher.md) | ❌ Not started | No mode switching UI (Code, Architect, Ask, Debug, etc.). [#162](https://github.com/Kilo-Org/kilo/issues/162) | CLI manages modes; extension provides switcher UI | P2 |
| [Model Switcher](non-agent-features/model-switcher.md) | 🔨 Partial | No model switching UI. In progress. [#163](https://github.com/Kilo-Org/kilo/issues/163) | CLI provides model list; extension provides switcher UI | P1 |
| [Provider Configuration](non-agent-features/provider-configuration.md) | ❌ Not started | No provider add/edit/remove or switching UI. ProvidersTab is a stub. [#175](https://github.com/Kilo-Org/kilo/issues/175) | CLI manages providers; extension provides config UI | P1 |
| [Repository Initialization](non-agent-features/repository-initialization.md) | ❌ Not started | No /init command support for setting up agentic engineering. [#174](https://github.com/Kilo-Org/kilo/issues/174) | CLI /init endpoint; extension provides UI trigger | P3 |
| [Rules & Workflows](non-agent-features/rules-and-workflows.md) | ❌ Not started | No rules or workflow management UI. [#173](https://github.com/Kilo-Org/kilo/issues/173) | CLI owns rules runtime; extension provides management UI | P3 |
| [Search & Repo Scanning](non-agent-features/search-and-repo-scanning-infrastructure.md) | ❌ Not started | No search infrastructure beyond CLI grep/glob. | CLI has grep/glob; extension may add UI | P2 |
| [Settings Sync](non-agent-features/settings-sync-integration.md) | ❌ Not started | No VS Code Settings Sync allowlist registration. Settings tabs are all stubs. | Extension-side (VS Code API) | P3 |
| [Settings UI](non-agent-features/settings-ui.md) | 🔨 Partial | 14-tab settings shell exists, all tabs are stubs. [#170](https://github.com/Kilo-Org/kilo/issues/170) | CLI exposes config; extension provides settings forms | P1 |
| [Skills System](non-agent-features/skills-system.md) | ❌ Not started | No skill discovery, management, or hot-reload in extension. | CLI has skills runtime; extension provides packaging/UI | P2 |
| [Speech-to-Text](non-agent-features/speech-to-text.md) | ❌ Not started | No voice input or streaming STT. | Webview (mic capture); CLI-compatible STT optional | P3 |
| [Task History](non-agent-features/task-history.md) | 🔨 Partial | Session list exists but lacks search, metadata, and full persistence. [#167](https://github.com/Kilo-Org/kilo/issues/167) | CLI session storage; extension provides history UI | P1 |
| [Terminal / Shell Integration](non-agent-features/terminal-shell-integration.md) | ❌ Not started | No VS Code terminal integration for command execution display, exit code tracking, or working directory changes. | CLI executes commands; extension provides terminal UX | P1 |
---
+16 -1
View File
@@ -2,7 +2,7 @@
"name": "kilo-code",
"displayName": "Kilo Code",
"description": "Kilo Code AI Agent & Autocomplete",
"version": "0.0.1",
"version": "1.0.17",
"engines": {
"vscode": "^1.109.0"
},
@@ -166,6 +166,21 @@
"type": "string",
"default": "kilo/auto",
"description": "Default model ID for new sessions"
},
"kilo-code.new.browserAutomation.enabled": {
"type": "boolean",
"default": false,
"description": "Enable browser automation powered by Playwright. When enabled, the AI agent can interact with web pages in a visible Chrome window."
},
"kilo-code.new.browserAutomation.useSystemChrome": {
"type": "boolean",
"default": true,
"description": "Use your system's installed Chrome browser instead of downloading a separate Chromium instance."
},
"kilo-code.new.browserAutomation.headless": {
"type": "boolean",
"default": false,
"description": "Run browser automation in headless mode (no visible window). When disabled, you can watch the agent interact with the browser."
}
}
}
+33
View File
@@ -220,6 +220,12 @@ export class KiloProvider implements vscode.WebviewViewProvider {
case "renameSession":
await this.handleRenameSession(message.sessionID, message.title)
break
case "updateSetting":
await this.handleUpdateSetting(message.key, message.value)
break
case "requestBrowserSettings":
this.sendBrowserSettings()
break
}
})
}
@@ -848,6 +854,33 @@ export class KiloProvider implements vscode.WebviewViewProvider {
})
}
/**
* Handle a generic setting update from the webview.
* The key uses dot notation relative to `kilo-code.new` (e.g. "browserAutomation.enabled").
*/
private async handleUpdateSetting(key: string, value: unknown): Promise<void> {
const parts = key.split(".")
const section = parts.slice(0, -1).join(".")
const leaf = parts[parts.length - 1]
const config = vscode.workspace.getConfiguration(`kilo-code.new${section ? `.${section}` : ""}`)
await config.update(leaf, value, vscode.ConfigurationTarget.Global)
}
/**
* Read the current browser automation settings and push them to the webview.
*/
private sendBrowserSettings(): void {
const config = vscode.workspace.getConfiguration("kilo-code.new.browserAutomation")
this.postMessage({
type: "browserSettingsLoaded",
settings: {
enabled: config.get<boolean>("enabled", false),
useSystemChrome: config.get<boolean>("useSystemChrome", true),
headless: config.get<boolean>("headless", false),
},
})
}
/**
* Extract sessionID from an SSE event, if applicable.
* Returns undefined for global events (server.connected, server.heartbeat).
+15 -1
View File
@@ -3,6 +3,7 @@ import { KiloProvider } from "./KiloProvider"
import { AgentManagerProvider } from "./AgentManagerProvider"
import { EXTENSION_DISPLAY_NAME } from "./constants"
import { KiloConnectionService } from "./services/cli-backend"
import { BrowserAutomationService } from "./services/browser-automation"
export function activate(context: vscode.ExtensionContext) {
console.log("Kilo Code extension is now active")
@@ -10,6 +11,17 @@ export function activate(context: vscode.ExtensionContext) {
// Create shared connection service (one server for all webviews)
const connectionService = new KiloConnectionService(context)
// Create browser automation service (manages Playwright MCP registration)
const browserAutomationService = new BrowserAutomationService(connectionService)
browserAutomationService.syncWithSettings()
// Re-register browser automation MCP server on CLI backend reconnect
const unsubscribeStateChange = connectionService.onStateChange((state) => {
if (state === "connected") {
browserAutomationService.reregisterIfEnabled()
}
})
// Create the provider with shared service
const provider = new KiloProvider(context.extensionUri, connectionService)
@@ -45,9 +57,11 @@ export function activate(context: vscode.ExtensionContext) {
}),
)
// Dispose service when extension deactivates (kills the server)
// Dispose services when extension deactivates (kills the server)
context.subscriptions.push({
dispose: () => {
unsubscribeStateChange()
browserAutomationService.dispose()
provider.dispose()
connectionService.dispose()
},
@@ -0,0 +1,183 @@
import * as vscode from "vscode"
import { type KiloConnectionService, type McpStatus } from "../cli-backend"
export type BrowserAutomationState = "disabled" | "registering" | "connected" | "failed" | "disconnected"
export class BrowserAutomationService implements vscode.Disposable {
private state: BrowserAutomationState = "disabled"
private disposables: vscode.Disposable[] = []
private stateListeners: Array<(state: BrowserAutomationState) => void> = []
// MCP server name used when registering with the CLI backend
private static readonly MCP_SERVER_NAME = "kilo-playwright"
constructor(private readonly connectionService: KiloConnectionService) {
// Listen for settings changes
this.disposables.push(
vscode.workspace.onDidChangeConfiguration((e) => {
if (e.affectsConfiguration("kilo-code.new.browserAutomation")) {
this.syncWithSettings()
}
}),
)
}
/** Current state */
getState(): BrowserAutomationState {
return this.state
}
/** Subscribe to state changes */
onStateChange(listener: (state: BrowserAutomationState) => void): () => void {
this.stateListeners.push(listener)
return () => {
const idx = this.stateListeners.indexOf(listener)
if (idx >= 0) {
this.stateListeners.splice(idx, 1)
}
}
}
/**
* Read settings and enable/disable accordingly.
* Called on construction and when settings change.
*/
async syncWithSettings(): Promise<void> {
const config = vscode.workspace.getConfiguration("kilo-code.new.browserAutomation")
const enabled = config.get<boolean>("enabled", false)
if (enabled) {
await this.register()
} else {
await this.unregister()
}
}
/**
* Re-register the MCP server after CLI backend reconnects.
* Should be called from the connection state change handler.
*/
async reregisterIfEnabled(): Promise<void> {
const config = vscode.workspace.getConfiguration("kilo-code.new.browserAutomation")
const enabled = config.get<boolean>("enabled", false)
if (enabled) {
await this.register()
}
}
/**
* Register the Playwright MCP server with the CLI backend.
*/
private async register(): Promise<void> {
this.setState("registering")
const httpClient = this.getHttpClient()
if (!httpClient) {
console.error("[Kilo New] BrowserAutomationService: No HTTP client available")
this.setState("failed")
return
}
const config = vscode.workspace.getConfiguration("kilo-code.new.browserAutomation")
const useSystemChrome = config.get<boolean>("useSystemChrome", true)
const headless = config.get<boolean>("headless", false)
// Build the command for the Playwright MCP server
const command = ["npx", "@playwright/mcp@latest"]
if (headless) {
command.push("--headless")
}
if (useSystemChrome) {
command.push("--browser", "chrome")
}
try {
const status = await httpClient.addMcpServer(BrowserAutomationService.MCP_SERVER_NAME, {
type: "local",
command,
enabled: true,
timeout: 60000,
})
const serverStatus = status[BrowserAutomationService.MCP_SERVER_NAME]
if (serverStatus?.status === "connected") {
this.setState("connected")
} else if (serverStatus?.status === "failed") {
console.error(
"[Kilo New] BrowserAutomationService: MCP server failed:",
(serverStatus as { error?: string }).error,
)
this.setState("failed")
} else {
this.setState("disconnected")
}
} catch (error) {
console.error("[Kilo New] BrowserAutomationService: Failed to register MCP server:", error)
this.setState("failed")
}
}
/**
* Unregister/disconnect the Playwright MCP server.
*/
private async unregister(): Promise<void> {
if (this.state === "disabled") {
return
}
const httpClient = this.getHttpClient()
if (httpClient) {
try {
await httpClient.disconnectMcpServer(BrowserAutomationService.MCP_SERVER_NAME)
} catch (error) {
console.error("[Kilo New] BrowserAutomationService: Failed to disconnect MCP server:", error)
}
}
this.setState("disabled")
}
/**
* Get the current MCP server status from the CLI backend.
*/
async getServerStatus(): Promise<McpStatus | null> {
const httpClient = this.getHttpClient()
if (!httpClient) {
return null
}
try {
const allStatus = await httpClient.getMcpStatus()
return allStatus[BrowserAutomationService.MCP_SERVER_NAME] ?? null
} catch {
return null
}
}
private getHttpClient() {
try {
return this.connectionService.getHttpClient()
} catch {
return null
}
}
private setState(state: BrowserAutomationState): void {
if (this.state === state) {
return
}
console.log(`[Kilo New] BrowserAutomationService: State ${this.state} → ${state}`)
this.state = state
for (const listener of this.stateListeners) {
listener(state)
}
}
dispose(): void {
for (const d of this.disposables) {
d.dispose()
}
this.disposables = []
this.stateListeners = []
}
}
@@ -0,0 +1 @@
export { BrowserAutomationService, type BrowserAutomationState } from "./browser-automation-service"
@@ -7,6 +7,8 @@ import type {
ProfileData,
ProviderAuthAuthorization,
ProviderListResponse,
McpStatus,
McpConfig,
} from "./types"
/**
@@ -321,4 +323,36 @@ export class HttpClient {
async oauthCallback(providerId: string, method: number, directory: string): Promise<boolean> {
return this.request<boolean>("POST", `/provider/${providerId}/oauth/callback`, { method }, { directory })
}
// ============================================
// MCP Methods
// ============================================
/**
* Get the status of all MCP servers.
*/
async getMcpStatus(): Promise<Record<string, McpStatus>> {
return this.request<Record<string, McpStatus>>("GET", "/mcp")
}
/**
* Add or update an MCP server configuration.
*/
async addMcpServer(name: string, config: McpConfig): Promise<Record<string, McpStatus>> {
return this.request<Record<string, McpStatus>>("POST", "/mcp", { name, config })
}
/**
* Connect an MCP server by name.
*/
async connectMcpServer(name: string): Promise<boolean> {
return this.request<boolean>("POST", `/mcp/${encodeURIComponent(name)}/connect`)
}
/**
* Disconnect an MCP server by name.
*/
async disconnectMcpServer(name: string): Promise<boolean> {
return this.request<boolean>("POST", `/mcp/${encodeURIComponent(name)}/disconnect`)
}
}
@@ -21,6 +21,10 @@ export type {
Provider,
ProviderListResponse,
ModelSelection,
McpStatus,
McpLocalConfig,
McpRemoteConfig,
McpConfig,
} from "./types"
export { ServerManager } from "./server-manager"
@@ -196,3 +196,32 @@ export interface ProfileData {
balance: KilocodeBalance | null
currentOrgId: string | null
}
// MCP server status — discriminated union returned by the backend
export type McpStatus =
| { status: "connected" }
| { status: "disabled" }
| { status: "failed"; error: string }
| { status: "needs_auth" }
| { status: "needs_client_registration"; error: string }
// MCP server configuration for local (stdio) servers
export interface McpLocalConfig {
type: "local"
command: string[]
environment?: Record<string, string>
enabled?: boolean
timeout?: number
}
// MCP server configuration for remote (SSE) servers
export interface McpRemoteConfig {
type: "remote"
url: string
enabled?: boolean
headers?: Record<string, string>
timeout?: number
}
// Union of all MCP server config types
export type McpConfig = McpLocalConfig | McpRemoteConfig
@@ -16,7 +16,9 @@ import { useLanguage } from "../../context/language"
import { formatRelativeDate } from "../../utils/date"
import type { SessionInfo } from "../../types/messages"
function dateGroup(iso: string): string {
const DATE_GROUP_KEYS = ["time.today", "time.yesterday", "time.thisWeek", "time.thisMonth", "time.older"] as const
function dateGroupKey(iso: string): (typeof DATE_GROUP_KEYS)[number] {
const now = new Date()
const then = new Date(iso)
@@ -25,19 +27,11 @@ function dateGroup(iso: string): string {
const weekAgo = new Date(today.getTime() - 7 * 86400000)
const monthAgo = new Date(today.getTime() - 30 * 86400000)
if (then >= today) return "Today"
if (then >= yesterday) return "Yesterday"
if (then >= weekAgo) return "This Week"
if (then >= monthAgo) return "This Month"
return "Older"
}
const GROUP_ORDER: Record<string, number> = {
Today: 0,
Yesterday: 1,
"This Week": 2,
"This Month": 3,
Older: 4,
if (then >= today) return DATE_GROUP_KEYS[0]
if (then >= yesterday) return DATE_GROUP_KEYS[1]
if (then >= weekAgo) return DATE_GROUP_KEYS[2]
if (then >= monthAgo) return DATE_GROUP_KEYS[3]
return DATE_GROUP_KEYS[4]
}
interface SessionListProps {
@@ -90,9 +84,9 @@ const SessionList: Component<SessionListProps> = (props) => {
function confirmDelete(s: SessionInfo) {
dialog.show(() => (
<Dialog title={language.t("session.delete.title")} fit>
<div style={{ display: "flex", "flex-direction": "column", gap: "16px", padding: "0 16px 12px" }}>
<div class="dialog-confirm-body">
<span>{language.t("session.delete.confirm", { name: s.title || language.t("session.untitled") })}</span>
<div style={{ display: "flex", "justify-content": "flex-end", gap: "8px" }}>
<div class="dialog-confirm-actions">
<Button variant="ghost" size="large" onClick={() => dialog.close()}>
{language.t("common.cancel")}
</Button>
@@ -147,8 +141,11 @@ const SessionList: Component<SessionListProps> = (props) => {
}}
search={{ placeholder: language.t("session.search.placeholder"), autofocus: false }}
emptyMessage={language.t("session.empty")}
groupBy={(s) => dateGroup(s.updatedAt)}
sortGroupsBy={(a, b) => (GROUP_ORDER[a.category] ?? 99) - (GROUP_ORDER[b.category] ?? 99)}
groupBy={(s) => language.t(dateGroupKey(s.updatedAt))}
sortGroupsBy={(a, b) => {
const rank = Object.fromEntries(DATE_GROUP_KEYS.map((k, i) => [language.t(k), i]))
return (rank[a.category] ?? 99) - (rank[b.category] ?? 99)
}}
itemWrapper={wrapItem}
>
{(s) => (
@@ -1,14 +1,45 @@
import { Component } from "solid-js"
import { Component, createSignal, onCleanup, onMount } from "solid-js"
import { Switch } from "@kilocode/kilo-ui/switch"
import { useVSCode } from "../../context/vscode"
import { useLanguage } from "../../context/language"
import type { BrowserSettings } from "../../types/messages"
const BrowserTab: Component = () => {
const { postMessage, onMessage } = useVSCode()
const { t } = useLanguage()
const [settings, setSettings] = createSignal<BrowserSettings>({
enabled: false,
useSystemChrome: true,
headless: false,
})
onMount(() => {
postMessage({ type: "requestBrowserSettings" })
})
// Subscribe outside onMount to catch early pushes (per AGENTS.md pattern)
const unsubscribe = onMessage((msg) => {
if (msg.type === "browserSettingsLoaded") {
setSettings(msg.settings)
}
})
onCleanup(unsubscribe)
const update = (key: keyof BrowserSettings, value: boolean) => {
setSettings((prev) => ({ ...prev, [key]: value }))
postMessage({ type: "updateSetting", key: `browserAutomation.${key}`, value })
}
return (
<div>
<div style={{ display: "flex", "flex-direction": "column", gap: "16px" }}>
{/* Info text */}
<div
style={{
background: "var(--vscode-editor-background)",
background: "var(--vscode-textBlockQuote-background)",
border: "1px solid var(--vscode-panel-border)",
"border-radius": "4px",
padding: "16px",
padding: "12px 16px",
}}
>
<p
@@ -19,12 +50,61 @@ const BrowserTab: Component = () => {
"line-height": "1.5",
}}
>
<strong style={{ color: "var(--vscode-foreground)" }}>This section is not implemented yet.</strong> It will
contain configuration options and explanatory text related to the selected settings category. During
reimplementation, use this space to validate layout, spacing, scrolling behavior, and navigation state before
wiring up real controls.
{t("settings.browser.description")}
</p>
</div>
{/* Enable toggle */}
<SettingsRow title={t("settings.browser.enable.title")} description={t("settings.browser.enable.description")}>
<Switch checked={settings().enabled} onChange={(checked: boolean) => update("enabled", checked)} />
</SettingsRow>
{/* Use System Chrome */}
<SettingsRow
title={t("settings.browser.systemChrome.title")}
description={t("settings.browser.systemChrome.description")}
>
<Switch
checked={settings().useSystemChrome}
onChange={(checked: boolean) => update("useSystemChrome", checked)}
/>
</SettingsRow>
{/* Headless mode */}
<SettingsRow
title={t("settings.browser.headless.title")}
description={t("settings.browser.headless.description")}
>
<Switch checked={settings().headless} onChange={(checked: boolean) => update("headless", checked)} />
</SettingsRow>
</div>
)
}
/** Reusable settings row matching the desktop app pattern. */
const SettingsRow: Component<{ title: string; description: string; children: any }> = (props) => {
return (
<div
style={{
display: "flex",
"align-items": "center",
"justify-content": "space-between",
padding: "12px 16px",
background: "var(--vscode-editor-background)",
border: "1px solid var(--vscode-panel-border)",
"border-radius": "4px",
gap: "16px",
}}
>
<div style={{ display: "flex", "flex-direction": "column", gap: "2px", flex: 1 }}>
<span style={{ "font-size": "13px", color: "var(--vscode-foreground)", "font-weight": "500" }}>
{props.title}
</span>
<span style={{ "font-size": "12px", color: "var(--vscode-descriptionForeground)", "line-height": "1.4" }}>
{props.description}
</span>
</div>
<div style={{ "flex-shrink": 0 }}>{props.children}</div>
</div>
)
}
+14 -4
View File
@@ -773,10 +773,11 @@ export const dict = {
"time.hoursAgo": "قبل {{count}} ساعة",
"time.daysAgo": "قبل {{count}} يوم",
"time.monthsAgo": "قبل {{count}} شهر",
"session.search.placeholder": "البحث في الجلسات...",
"session.empty": "لا توجد جلسات بعد. انقر على + لبدء محادثة جديدة.",
"session.untitled": "بدون عنوان",
"time.today": "اليوم",
"time.yesterday": "أمس",
"time.thisWeek": "هذا الأسبوع",
"time.thisMonth": "هذا الشهر",
"time.older": "أقدم",
"settings.aboutKiloCode.status.connected": "متصل",
"settings.aboutKiloCode.status.connecting": "جارٍ الاتصال...",
@@ -794,6 +795,15 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "سير العمل",
"settings.agentBehaviour.subtab.skills": "المهارات",
"settings.browser.description":
"عند التفعيل، يمكن لوكيل الذكاء الاصطناعي التفاعل مع صفحات الويب — التنقل والنقر والكتابة والتقاط لقطات الشاشة. سيتم فتح نافذة Chrome حتى تتمكن من مشاهدة الوكيل أثناء العمل.",
"settings.browser.enable.title": "تفعيل أتمتة المتصفح",
"settings.browser.enable.description": "تسجيل خادم Playwright MCP مع الواجهة الخلفية لـ CLI.",
"settings.browser.systemChrome.title": "استخدام Chrome النظام",
"settings.browser.systemChrome.description": "استخدم متصفح Chrome المثبت لديك بدلاً من نسخة Chromium منفصلة.",
"settings.browser.headless.title": "الوضع بدون واجهة",
"settings.browser.headless.description": "التشغيل في الوضع بدون واجهة (بدون نافذة متصفح مرئية).",
"settings.language.description": 'اختر اللغة لواجهة Kilo Code. "تلقائي" يستخدم لغة عرض VS Code.',
"settings.language.auto": "تلقائي (لغة VS Code)",
"settings.language.current": "الحالية:",
+15 -4
View File
@@ -780,10 +780,11 @@ export const dict = {
"time.hoursAgo": "{{count}}h atrás",
"time.daysAgo": "{{count}}d atrás",
"time.monthsAgo": "{{count}} meses atrás",
"session.search.placeholder": "Pesquisar sessões...",
"session.empty": "Nenhuma sessão ainda. Clique em + para iniciar uma nova conversa.",
"session.untitled": "Sem título",
"time.today": "Hoje",
"time.yesterday": "Ontem",
"time.thisWeek": "Esta semana",
"time.thisMonth": "Este mês",
"time.older": "Mais antigo",
"settings.aboutKiloCode.status.connected": "Conectado",
"settings.aboutKiloCode.status.connecting": "Conectando...",
@@ -801,6 +802,16 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "Fluxos de trabalho",
"settings.agentBehaviour.subtab.skills": "Habilidades",
"settings.browser.description":
"Quando ativado, o agente de IA pode interagir com páginas da web — navegar, clicar, digitar e capturar telas. Uma janela do Chrome será aberta para que você possa acompanhar o trabalho do agente.",
"settings.browser.enable.title": "Ativar Automação do Navegador",
"settings.browser.enable.description": "Registrar o servidor Playwright MCP no backend CLI.",
"settings.browser.systemChrome.title": "Usar Chrome do Sistema",
"settings.browser.systemChrome.description":
"Usar o navegador Chrome instalado em vez de uma instância separada do Chromium.",
"settings.browser.headless.title": "Modo Headless",
"settings.browser.headless.description": "Executar em modo headless (sem janela do navegador visível).",
"settings.language.description":
'Escolha o idioma da interface do Kilo Code. "Auto" usa o idioma de exibição do VS Code.',
"settings.language.auto": "Auto (idioma do VS Code)",
+15 -4
View File
@@ -807,10 +807,11 @@ export const dict = {
"time.hoursAgo": "prije {{count}}h",
"time.daysAgo": "prije {{count}}d",
"time.monthsAgo": "prije {{count}} mj.",
"session.search.placeholder": "Pretraži sesije...",
"session.empty": "Još nema sesija. Kliknite + za pokretanje novog razgovora.",
"session.untitled": "Bez naslova",
"time.today": "Danas",
"time.yesterday": "Jučer",
"time.thisWeek": "Ove sedmice",
"time.thisMonth": "Ovog mjeseca",
"time.older": "Starije",
"settings.aboutKiloCode.status.connected": "Povezano",
"settings.aboutKiloCode.status.connecting": "Povezivanje...",
@@ -828,6 +829,16 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "Tokovi rada",
"settings.agentBehaviour.subtab.skills": "Vještine",
"settings.browser.description":
"Kada je omogućeno, AI agent može komunicirati s web stranicama — navigirati, klikati, tipkati i snimati ekran. Chrome prozor će se otvoriti kako biste mogli pratiti rad agenta.",
"settings.browser.enable.title": "Omogući automatizaciju preglednika",
"settings.browser.enable.description": "Registriraj Playwright MCP server s CLI pozadinom.",
"settings.browser.systemChrome.title": "Koristi sistemski Chrome",
"settings.browser.systemChrome.description":
"Koristite instalirani Chrome preglednik umjesto zasebne Chromium instance.",
"settings.browser.headless.title": "Headless način",
"settings.browser.headless.description": "Pokreni u headless načinu (bez vidljivog prozora preglednika).",
"settings.language.description": 'Odaberite jezik za Kilo Code sučelje. "Auto" koristi jezik prikaza VS Code-a.',
"settings.language.auto": "Auto (VS Code jezik)",
"settings.language.current": "Trenutni:",
+15 -4
View File
@@ -779,10 +779,11 @@ export const dict = {
"time.hoursAgo": "{{count}}t siden",
"time.daysAgo": "{{count}}d siden",
"time.monthsAgo": "{{count}} mdr. siden",
"session.search.placeholder": "Søg i sessioner...",
"session.empty": "Ingen sessioner endnu. Klik + for at starte en ny samtale.",
"session.untitled": "Uden titel",
"time.today": "I dag",
"time.yesterday": "I går",
"time.thisWeek": "Denne uge",
"time.thisMonth": "Denne måned",
"time.older": "Ældre",
"settings.aboutKiloCode.status.connected": "Forbundet",
"settings.aboutKiloCode.status.connecting": "Forbinder...",
@@ -800,6 +801,16 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "Arbejdsgange",
"settings.agentBehaviour.subtab.skills": "Færdigheder",
"settings.browser.description":
"Når aktiveret kan AI-agenten interagere med websider — navigere, klikke, skrive og tage skærmbilleder. Et Chrome-vindue åbnes, så du kan se agenten arbejde.",
"settings.browser.enable.title": "Aktivér browserautomatisering",
"settings.browser.enable.description": "Registrér Playwright MCP-serveren hos CLI-backend'en.",
"settings.browser.systemChrome.title": "Brug system-Chrome",
"settings.browser.systemChrome.description":
"Brug din installerede Chrome-browser i stedet for en separat Chromium-instans.",
"settings.browser.headless.title": "Headless-tilstand",
"settings.browser.headless.description": "Kør i headless-tilstand (intet synligt browservindue).",
"settings.language.description": 'Vælg sproget til Kilo Code-brugerfladen. "Auto" bruger VS Codes visningssprog.',
"settings.language.auto": "Auto (VS Code-sprog)",
"settings.language.current": "Nuværende:",
+15 -4
View File
@@ -785,10 +785,11 @@ export const dict = {
"time.hoursAgo": "vor {{count}} Std.",
"time.daysAgo": "vor {{count}} T.",
"time.monthsAgo": "vor {{count}} Mon.",
"session.search.placeholder": "Sitzungen durchsuchen...",
"session.empty": "Noch keine Sitzungen. Klicken Sie auf +, um eine neue Unterhaltung zu starten.",
"session.untitled": "Ohne Titel",
"time.today": "Heute",
"time.yesterday": "Gestern",
"time.thisWeek": "Diese Woche",
"time.thisMonth": "Diesen Monat",
"time.older": "Älter",
"settings.aboutKiloCode.status.connected": "Verbunden",
"settings.aboutKiloCode.status.connecting": "Verbindung wird hergestellt...",
@@ -806,6 +807,16 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "Workflows",
"settings.agentBehaviour.subtab.skills": "Fähigkeiten",
"settings.browser.description":
"Wenn aktiviert, kann der KI-Agent mit Webseiten interagieren — navigieren, klicken, tippen und Screenshots erstellen. Ein Chrome-Fenster wird geöffnet, damit Sie dem Agenten bei der Arbeit zusehen können.",
"settings.browser.enable.title": "Browser-Automatisierung aktivieren",
"settings.browser.enable.description": "Den Playwright-MCP-Server beim CLI-Backend registrieren.",
"settings.browser.systemChrome.title": "System-Chrome verwenden",
"settings.browser.systemChrome.description":
"Verwenden Sie Ihren installierten Chrome-Browser anstelle einer separaten Chromium-Instanz.",
"settings.browser.headless.title": "Headless-Modus",
"settings.browser.headless.description": "Im Headless-Modus ausführen (kein sichtbares Browserfenster).",
"settings.language.description":
'Wählen Sie die Sprache für die Kilo Code Oberfläche. „Auto" verwendet die VS Code Anzeigesprache.',
"settings.language.auto": "Auto (VS Code Sprache)",
+15 -4
View File
@@ -812,10 +812,11 @@ export const dict = {
"time.hoursAgo": "{{count}}h ago",
"time.daysAgo": "{{count}}d ago",
"time.monthsAgo": "{{count}}mo ago",
"session.search.placeholder": "Search sessions...",
"session.empty": "No sessions yet. Click + to start a new conversation.",
"session.untitled": "Untitled",
"time.today": "Today",
"time.yesterday": "Yesterday",
"time.thisWeek": "This Week",
"time.thisMonth": "This Month",
"time.older": "Older",
"settings.aboutKiloCode.status.connected": "Connected",
"settings.aboutKiloCode.status.connecting": "Connecting...",
@@ -833,6 +834,16 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "Workflows",
"settings.agentBehaviour.subtab.skills": "Skills",
"settings.browser.description":
"When enabled, the AI agent can interact with web pages — navigating, clicking, typing, and taking screenshots. A Chrome window will open so you can watch the agent work.",
"settings.browser.enable.title": "Enable Browser Automation",
"settings.browser.enable.description": "Register the Playwright MCP server with the CLI backend.",
"settings.browser.systemChrome.title": "Use System Chrome",
"settings.browser.systemChrome.description":
"Use your installed Chrome browser instead of a separate Chromium instance.",
"settings.browser.headless.title": "Headless Mode",
"settings.browser.headless.description": "Run in headless mode (no visible browser window).",
"settings.language.description":
'Choose the language for the Kilo Code UI. "Auto" uses your VS Code display language.',
"settings.language.auto": "Auto (VS Code language)",
+15 -4
View File
@@ -785,10 +785,11 @@ export const dict = {
"time.hoursAgo": "hace {{count}}h",
"time.daysAgo": "hace {{count}}d",
"time.monthsAgo": "hace {{count}} meses",
"session.search.placeholder": "Buscar sesiones...",
"session.empty": "Aún no hay sesiones. Haz clic en + para iniciar una nueva conversación.",
"session.untitled": "Sin título",
"time.today": "Hoy",
"time.yesterday": "Ayer",
"time.thisWeek": "Esta semana",
"time.thisMonth": "Este mes",
"time.older": "Anterior",
"settings.aboutKiloCode.status.connected": "Conectado",
"settings.aboutKiloCode.status.connecting": "Conectando...",
@@ -806,6 +807,16 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "Flujos de trabajo",
"settings.agentBehaviour.subtab.skills": "Habilidades",
"settings.browser.description":
"Cuando está activado, el agente de IA puede interactuar con páginas web: navegar, hacer clic, escribir y capturar pantallas. Se abrirá una ventana de Chrome para que puedas ver al agente trabajar.",
"settings.browser.enable.title": "Activar automatización del navegador",
"settings.browser.enable.description": "Registrar el servidor Playwright MCP con el backend CLI.",
"settings.browser.systemChrome.title": "Usar Chrome del sistema",
"settings.browser.systemChrome.description":
"Usar el navegador Chrome instalado en lugar de una instancia separada de Chromium.",
"settings.browser.headless.title": "Modo headless",
"settings.browser.headless.description": "Ejecutar en modo headless (sin ventana de navegador visible).",
"settings.language.description":
'Elige el idioma de la interfaz de Kilo Code. "Auto" utiliza el idioma de visualización de VS Code.',
"settings.language.auto": "Auto (idioma de VS Code)",
+15 -4
View File
@@ -789,10 +789,11 @@ export const dict = {
"time.hoursAgo": "il y a {{count}}h",
"time.daysAgo": "il y a {{count}}j",
"time.monthsAgo": "il y a {{count}} mois",
"session.search.placeholder": "Rechercher des sessions...",
"session.empty": "Aucune session pour l'instant. Cliquez sur + pour démarrer une nouvelle conversation.",
"session.untitled": "Sans titre",
"time.today": "Aujourd'hui",
"time.yesterday": "Hier",
"time.thisWeek": "Cette semaine",
"time.thisMonth": "Ce mois-ci",
"time.older": "Plus ancien",
"settings.aboutKiloCode.status.connected": "Connecté",
"settings.aboutKiloCode.status.connecting": "Connexion en cours...",
@@ -810,6 +811,16 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "Flux de travail",
"settings.agentBehaviour.subtab.skills": "Compétences",
"settings.browser.description":
"Lorsqu'il est activé, l'agent IA peut interagir avec les pages web — naviguer, cliquer, saisir du texte et prendre des captures d'écran. Une fenêtre Chrome s'ouvrira pour que vous puissiez observer l'agent travailler.",
"settings.browser.enable.title": "Activer l'automatisation du navigateur",
"settings.browser.enable.description": "Enregistrer le serveur Playwright MCP auprès du backend CLI.",
"settings.browser.systemChrome.title": "Utiliser le Chrome système",
"settings.browser.systemChrome.description":
"Utiliser votre navigateur Chrome installé au lieu d'une instance Chromium séparée.",
"settings.browser.headless.title": "Mode headless",
"settings.browser.headless.description": "Exécuter en mode headless (sans fenêtre de navigateur visible).",
"settings.language.description":
"Choisissez la langue de l'interface de Kilo Code. \"Auto\" utilise la langue d'affichage de VS Code.",
"settings.language.auto": "Auto (langue VS Code)",
+15 -4
View File
@@ -773,10 +773,11 @@ export const dict = {
"time.hoursAgo": "{{count}}時間前",
"time.daysAgo": "{{count}}日前",
"time.monthsAgo": "{{count}}ヶ月前",
"session.search.placeholder": "セッションを検索...",
"session.empty": "セッションはまだありません。+をクリックして新しい会話を始めましょう。",
"session.untitled": "無題",
"time.today": "今日",
"time.yesterday": "昨日",
"time.thisWeek": "今週",
"time.thisMonth": "今月",
"time.older": "それ以前",
"settings.aboutKiloCode.status.connected": "接続済み",
"settings.aboutKiloCode.status.connecting": "接続中...",
@@ -794,6 +795,16 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "ワークフロー",
"settings.agentBehaviour.subtab.skills": "スキル",
"settings.browser.description":
"有効にすると、AIエージェントがWebページを操作できるようになります — ナビゲーション、クリック、入力、スクリーンショットの撮影。Chromeウィンドウが開き、エージェントの作業を確認できます。",
"settings.browser.enable.title": "ブラウザ自動化を有効にする",
"settings.browser.enable.description": "Playwright MCPサーバーをCLIバックエンドに登録します。",
"settings.browser.systemChrome.title": "システムChromeを使用",
"settings.browser.systemChrome.description":
"別のChromiumインスタンスの代わりに、インストール済みのChromeブラウザを使用します。",
"settings.browser.headless.title": "ヘッドレスモード",
"settings.browser.headless.description": "ヘッドレスモードで実行します(ブラウザウィンドウは表示されません)。",
"settings.language.description": "Kilo Code UIの言語を選択します。「自動」はVS Codeの表示言語を使用します。",
"settings.language.auto": "自動(VS Code言語)",
"settings.language.current": "現在:",
+14 -4
View File
@@ -778,10 +778,11 @@ export const dict = {
"time.hoursAgo": "{{count}}시간 전",
"time.daysAgo": "{{count}}일 전",
"time.monthsAgo": "{{count}}개월 전",
"session.search.placeholder": "세션 검색...",
"session.empty": "아직 세션이 없습니다. +를 클릭하여 새 대화를 시작하세요.",
"session.untitled": "제목 없음",
"time.today": "오늘",
"time.yesterday": "어제",
"time.thisWeek": "이번 주",
"time.thisMonth": "이번 달",
"time.older": "이전",
"settings.aboutKiloCode.status.connected": "연결됨",
"settings.aboutKiloCode.status.connecting": "연결 중...",
@@ -799,6 +800,15 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "워크플로",
"settings.agentBehaviour.subtab.skills": "스킬",
"settings.browser.description":
"활성화하면 AI 에이전트가 웹 페이지와 상호작용할 수 있습니다 — 탐색, 클릭, 입력, 스크린샷 촬영. Chrome 창이 열려 에이전트의 작업을 확인할 수 있습니다.",
"settings.browser.enable.title": "브라우저 자동화 활성화",
"settings.browser.enable.description": "Playwright MCP 서버를 CLI 백엔드에 등록합니다.",
"settings.browser.systemChrome.title": "시스템 Chrome 사용",
"settings.browser.systemChrome.description": "별도의 Chromium 인스턴스 대신 설치된 Chrome 브라우저를 사용합니다.",
"settings.browser.headless.title": "헤드리스 모드",
"settings.browser.headless.description": "헤드리스 모드로 실행합니다 (브라우저 창이 표시되지 않음).",
"settings.language.description": 'Kilo Code UI의 언어를 선택하세요. "자동"은 VS Code 표시 언어를 사용합니다.',
"settings.language.auto": "자동 (VS Code 언어)",
"settings.language.current": "현재:",
+15 -4
View File
@@ -782,10 +782,11 @@ export const dict = {
"time.hoursAgo": "{{count}}t siden",
"time.daysAgo": "{{count}}d siden",
"time.monthsAgo": "{{count}} mnd. siden",
"session.search.placeholder": "Søk i sesjoner...",
"session.empty": "Ingen sesjoner ennå. Klikk + for å starte en ny samtale.",
"session.untitled": "Uten tittel",
"time.today": "I dag",
"time.yesterday": "I går",
"time.thisWeek": "Denne uken",
"time.thisMonth": "Denne måneden",
"time.older": "Eldre",
"settings.aboutKiloCode.status.connected": "Tilkoblet",
"settings.aboutKiloCode.status.connecting": "Kobler til...",
@@ -803,6 +804,16 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "Arbeidsflyter",
"settings.agentBehaviour.subtab.skills": "Ferdigheter",
"settings.browser.description":
"Når aktivert kan AI-agenten samhandle med nettsider — navigere, klikke, skrive og ta skjermbilder. Et Chrome-vindu åpnes slik at du kan se agenten jobbe.",
"settings.browser.enable.title": "Aktiver nettleserautomatisering",
"settings.browser.enable.description": "Registrer Playwright MCP-serveren med CLI-backend.",
"settings.browser.systemChrome.title": "Bruk system-Chrome",
"settings.browser.systemChrome.description":
"Bruk den installerte Chrome-nettleseren i stedet for en separat Chromium-instans.",
"settings.browser.headless.title": "Headless-modus",
"settings.browser.headless.description": "Kjør i headless-modus (uten synlig nettleservindu).",
"settings.language.description": 'Velg språket for Kilo Code-grensesnittet. "Auto" bruker VS Codes visningsspråk.',
"settings.language.auto": "Auto (VS Code-språk)",
"settings.language.current": "Nåværende:",
+15 -4
View File
@@ -781,10 +781,11 @@ export const dict = {
"time.hoursAgo": "{{count}} godz. temu",
"time.daysAgo": "{{count}} dn. temu",
"time.monthsAgo": "{{count}} mies. temu",
"session.search.placeholder": "Szukaj sesji...",
"session.empty": "Brak sesji. Kliknij +, aby rozpocząć nową rozmowę.",
"session.untitled": "Bez tytułu",
"time.today": "Dzisiaj",
"time.yesterday": "Wczoraj",
"time.thisWeek": "Ten tydzień",
"time.thisMonth": "Ten miesiąc",
"time.older": "Starsze",
"settings.aboutKiloCode.status.connected": "Połączono",
"settings.aboutKiloCode.status.connecting": "Łączenie...",
@@ -802,6 +803,16 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "Przepływy pracy",
"settings.agentBehaviour.subtab.skills": "Umiejętności",
"settings.browser.description":
"Po włączeniu agent AI może wchodzić w interakcję ze stronami internetowymi — nawigować, klikać, pisać i robić zrzuty ekranu. Otworzy się okno Chrome, abyś mógł obserwować pracę agenta.",
"settings.browser.enable.title": "Włącz automatyzację przeglądarki",
"settings.browser.enable.description": "Zarejestruj serwer Playwright MCP w backendzie CLI.",
"settings.browser.systemChrome.title": "Użyj systemowego Chrome",
"settings.browser.systemChrome.description":
"Użyj zainstalowanej przeglądarki Chrome zamiast oddzielnej instancji Chromium.",
"settings.browser.headless.title": "Tryb headless",
"settings.browser.headless.description": "Uruchom w trybie headless (bez widocznego okna przeglądarki).",
"settings.language.description": 'Wybierz język interfejsu Kilo Code. „Auto" używa języka wyświetlania VS Code.',
"settings.language.auto": "Auto (język VS Code)",
"settings.language.current": "Bieżący:",
+15 -4
View File
@@ -785,10 +785,11 @@ export const dict = {
"time.hoursAgo": "{{count}} ч. назад",
"time.daysAgo": "{{count}} дн. назад",
"time.monthsAgo": "{{count}} мес. назад",
"session.search.placeholder": "Поиск сессий...",
"session.empty": "Пока нет сессий. Нажмите +, чтобы начать новую беседу.",
"session.untitled": "Без названия",
"time.today": "Сегодня",
"time.yesterday": "Вчера",
"time.thisWeek": "На этой неделе",
"time.thisMonth": "В этом месяце",
"time.older": "Ранее",
"settings.aboutKiloCode.status.connected": "Подключено",
"settings.aboutKiloCode.status.connecting": "Подключение...",
@@ -806,6 +807,16 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "Рабочие процессы",
"settings.agentBehaviour.subtab.skills": "Навыки",
"settings.browser.description":
"При включении ИИ-агент может взаимодействовать с веб-страницами — переходить по ссылкам, нажимать, вводить текст и делать скриншоты. Откроется окно Chrome, чтобы вы могли наблюдать за работой агента.",
"settings.browser.enable.title": "Включить автоматизацию браузера",
"settings.browser.enable.description": "Зарегистрировать сервер Playwright MCP в CLI-бэкенде.",
"settings.browser.systemChrome.title": "Использовать системный Chrome",
"settings.browser.systemChrome.description":
"Использовать установленный браузер Chrome вместо отдельного экземпляра Chromium.",
"settings.browser.headless.title": "Безголовый режим",
"settings.browser.headless.description": "Запуск в безголовом режиме (без видимого окна браузера).",
"settings.language.description": "Выберите язык интерфейса Kilo Code. «Авто» использует язык отображения VS Code.",
"settings.language.auto": "Авто (язык VS Code)",
"settings.language.current": "Текущий:",
+14 -4
View File
@@ -771,10 +771,11 @@ export const dict = {
"time.hoursAgo": "{{count}} ชม. ที่แล้ว",
"time.daysAgo": "{{count}} วันที่แล้ว",
"time.monthsAgo": "{{count}} เดือนที่แล้ว",
"session.search.placeholder": "ค้นหาเซสชัน...",
"session.empty": "ยังไม่มีเซสชัน คลิก + เพื่อเริ่มการสนทนาใหม่",
"session.untitled": "ไม่มีชื่อ",
"time.today": "วันนี้",
"time.yesterday": "เมื่อวาน",
"time.thisWeek": "สัปดาห์นี้",
"time.thisMonth": "เดือนนี้",
"time.older": "เก่ากว่า",
"settings.aboutKiloCode.status.connected": "เชื่อมต่อแล้ว",
"settings.aboutKiloCode.status.connecting": "กำลังเชื่อมต่อ...",
@@ -792,6 +793,15 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "เวิร์กโฟลว์",
"settings.agentBehaviour.subtab.skills": "ทักษะ",
"settings.browser.description":
"เมื่อเปิดใช้งาน ตัวแทน AI สามารถโต้ตอบกับหน้าเว็บได้ — นำทาง คลิก พิมพ์ และจับภาพหน้าจอ หน้าต่าง Chrome จะเปิดขึ้นเพื่อให้คุณดูการทำงานของตัวแทน",
"settings.browser.enable.title": "เปิดใช้งานการทำงานอัตโนมัติของเบราว์เซอร์",
"settings.browser.enable.description": "ลงทะเบียนเซิร์ฟเวอร์ Playwright MCP กับ CLI backend",
"settings.browser.systemChrome.title": "ใช้ Chrome ของระบบ",
"settings.browser.systemChrome.description": "ใช้เบราว์เซอร์ Chrome ที่ติดตั้งแทนอินสแตนซ์ Chromium แยกต่างหาก",
"settings.browser.headless.title": "โหมด Headless",
"settings.browser.headless.description": "ทำงานในโหมด headless (ไม่มีหน้าต่างเบราว์เซอร์ที่มองเห็นได้)",
"settings.language.description": 'เลือกภาษาสำหรับ UI ของ Kilo Code "อัตโนมัติ" จะใช้ภาษาการแสดงผลของ VS Code',
"settings.language.auto": "อัตโนมัติ (ภาษา VS Code)",
"settings.language.current": "ปัจจุบัน:",
+14 -4
View File
@@ -774,10 +774,11 @@ export const dict = {
"time.hoursAgo": "{{count}} 小时前",
"time.daysAgo": "{{count}} 天前",
"time.monthsAgo": "{{count}} 个月前",
"session.search.placeholder": "搜索会话...",
"session.empty": "暂无会话。点击 + 开始新对话。",
"session.untitled": "无标题",
"time.today": "今天",
"time.yesterday": "昨天",
"time.thisWeek": "本周",
"time.thisMonth": "本月",
"time.older": "更早",
"settings.aboutKiloCode.status.connected": "已连接",
"settings.aboutKiloCode.status.connecting": "连接中...",
@@ -795,6 +796,15 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "工作流",
"settings.agentBehaviour.subtab.skills": "技能",
"settings.browser.description":
"启用后,AI 代理可以与网页交互 — 导航、点击、输入和截取屏幕截图。Chrome 窗口将打开,以便您观察代理的工作。",
"settings.browser.enable.title": "启用浏览器自动化",
"settings.browser.enable.description": "将 Playwright MCP 服务器注册到 CLI 后端。",
"settings.browser.systemChrome.title": "使用系统 Chrome",
"settings.browser.systemChrome.description": "使用已安装的 Chrome 浏览器,而不是单独的 Chromium 实例。",
"settings.browser.headless.title": "无头模式",
"settings.browser.headless.description": "以无头模式运行(无可见浏览器窗口)。",
"settings.language.description": '"自动"将使用 VS Code 的显示语言。选择 Kilo Code 界面的语言。',
"settings.language.auto": "自动(VS Code 语言)",
"settings.language.current": "当前:",
@@ -771,10 +771,11 @@ export const dict = {
"time.hoursAgo": "{{count}} 小時前",
"time.daysAgo": "{{count}} 天前",
"time.monthsAgo": "{{count}} 個月前",
"session.search.placeholder": "搜尋工作階段...",
"session.empty": "尚無工作階段。按 + 開始新的對話。",
"session.untitled": "未命名",
"time.today": "今天",
"time.yesterday": "昨天",
"time.thisWeek": "本週",
"time.thisMonth": "本月",
"time.older": "更早",
"settings.aboutKiloCode.status.connected": "已連線",
"settings.aboutKiloCode.status.connecting": "連線中...",
@@ -792,6 +793,15 @@ export const dict = {
"settings.agentBehaviour.subtab.workflows": "工作流程",
"settings.agentBehaviour.subtab.skills": "技能",
"settings.browser.description":
"啟用後,AI 代理可以與網頁互動 — 導航、點擊、輸入和擷取螢幕截圖。Chrome 視窗將開啟,以便您觀察代理的工作。",
"settings.browser.enable.title": "啟用瀏覽器自動化",
"settings.browser.enable.description": "將 Playwright MCP 伺服器註冊到 CLI 後端。",
"settings.browser.systemChrome.title": "使用系統 Chrome",
"settings.browser.systemChrome.description": "使用已安裝的 Chrome 瀏覽器,而非獨立的 Chromium 實例。",
"settings.browser.headless.title": "無頭模式",
"settings.browser.headless.description": "以無頭模式執行(無可見瀏覽器視窗)。",
"settings.language.description": "選擇 Kilo Code 介面的語言。「自動」使用 VS Code 的顯示語言。",
"settings.language.auto": "自動(VS Code 語言)",
"settings.language.current": "目前:",
@@ -346,6 +346,20 @@
white-space: nowrap;
}
/* Dialog Confirmation */
.dialog-confirm-body {
display: flex;
flex-direction: column;
gap: 16px;
padding: 0 24px 12px 24px;
}
.dialog-confirm-actions {
display: flex;
justify-content: flex-end;
gap: 8px;
}
/* Session List Items */
.session-list [data-slot="list-item-title"] {
flex: 1;
@@ -345,6 +345,17 @@ export interface QuestionErrorMessage {
requestID: string
}
export interface BrowserSettings {
enabled: boolean
useSystemChrome: boolean
headless: boolean
}
export interface BrowserSettingsLoadedMessage {
type: "browserSettingsLoaded"
settings: BrowserSettings
}
export type ExtensionMessage =
| ReadyMessage
| ConnectionStateMessage
@@ -370,6 +381,7 @@ export type ExtensionMessage =
| QuestionRequestMessage
| QuestionResolvedMessage
| QuestionErrorMessage
| BrowserSettingsLoadedMessage
// ============================================
// Messages FROM webview TO extension
@@ -480,6 +492,16 @@ export interface RenameSessionRequest {
title: string
}
export interface UpdateSettingRequest {
type: "updateSetting"
key: string
value: unknown
}
export interface RequestBrowserSettingsMessage {
type: "requestBrowserSettings"
}
export type WebviewMessage =
| SendMessageRequest
| AbortRequest
@@ -502,6 +524,8 @@ export type WebviewMessage =
| QuestionRejectRequest
| DeleteSessionRequest
| RenameSessionRequest
| UpdateSettingRequest
| RequestBrowserSettingsMessage
// ============================================
// VS Code API type
+1 -1
View File
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/package.json",
"version": "1.0.14",
"version": "1.0.17",
"name": "@kilocode/cli",
"type": "module",
"license": "MIT",
+8 -3
View File
@@ -184,15 +184,20 @@ for (const item of targets) {
}
if (Script.release) {
const archives: string[] = [] // kilocode_change
for (const key of Object.keys(binaries)) {
const archive = key.replace(pkg.name, "kilo") // kilocode_change
if (key.includes("linux")) {
await $`tar -czf ../../${archive}.tar.gz *`.cwd(`dist/${key}/bin`) // kilocode_change
const out = path.resolve("dist", `${archive}.tar.gz`) // kilocode_change
await $`tar -czf ${out} *`.cwd(`dist/${key}/bin`) // kilocode_change
archives.push(out) // kilocode_change
} else {
await $`zip -r ../../${archive}.zip *`.cwd(`dist/${key}/bin`) // kilocode_change
const out = path.resolve("dist", `${archive}.zip`) // kilocode_change
await $`zip -r ${out} *`.cwd(`dist/${key}/bin`) // kilocode_change
archives.push(out) // kilocode_change
}
}
await $`gh release upload v${Script.version} ./dist/*.zip ./dist/*.tar.gz --clobber`
await $`gh release upload v${Script.version} ${archives} --clobber` // kilocode_change
}
export { binaries }
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@kilocode/plugin",
"version": "1.0.14",
"version": "1.0.17",
"type": "module",
"license": "MIT",
"scripts": {
+1 -1
View File
@@ -8,7 +8,7 @@
"exports": {
".": "./src/index.ts"
},
"version": "1.0.14",
"version": "1.0.17",
"dependencies": {},
"peerDependencies": {}
}
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@kilocode/sdk",
"version": "1.0.14",
"version": "1.0.17",
"type": "module",
"license": "MIT",
"scripts": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/ui",
"version": "1.0.14",
"version": "1.0.17",
"type": "module",
"license": "MIT",
"exports": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/util",
"version": "1.0.14",
"version": "1.0.17",
"private": true,
"type": "module",
"license": "MIT",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@kilocode/upstream-merge",
"version": "1.0.0",
"version": "1.0.17",
"private": true,
"type": "module",
"description": "Scripts for automating upstream opencode merges into Kilo",
+1 -1
View File
@@ -2,7 +2,7 @@
"name": "opencode",
"displayName": "opencode",
"description": "opencode for VS Code",
"version": "1.0.14",
"version": "1.0.17",
"publisher": "sst-dev",
"repository": {
"type": "git",