From 37d81bf6b136f3eab1fba73a82838c432d316739 Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 25 Jun 2026 11:33:10 +0200 Subject: [PATCH 1/6] feat(vscode): show network sandbox indicator --- .changeset/show-sandbox-network.md | 5 ++ packages/kilo-ui/src/components/icon.tsx | 4 ++ .../prompt-input-connection-guard.test.ts | 14 ++++ .../src/components/chat/PromptInput.tsx | 10 ++- .../src/stories/prompt-input.stories.tsx | 67 +++++++++++++++++-- .../webview-ui/src/styles/prompt-input.css | 29 ++++++++ 6 files changed, 123 insertions(+), 6 deletions(-) create mode 100644 .changeset/show-sandbox-network.md diff --git a/.changeset/show-sandbox-network.md b/.changeset/show-sandbox-network.md new file mode 100644 index 00000000000..142c51b2033 --- /dev/null +++ b/.changeset/show-sandbox-network.md @@ -0,0 +1,5 @@ +--- +"kilo-code": patch +--- + +Show when network restrictions are configured on the sandbox toggle. diff --git a/packages/kilo-ui/src/components/icon.tsx b/packages/kilo-ui/src/components/icon.tsx index 01fb920cf51..773d17d1f5c 100644 --- a/packages/kilo-ui/src/components/icon.tsx +++ b/packages/kilo-ui/src/components/icon.tsx @@ -10,6 +10,10 @@ const icons: Record = { viewBox: "0 0 16 16", path: ``, }, + globe: { + viewBox: "0 0 20 20", + path: ``, + }, organization: { viewBox: "0 0 16 16", path: ``, diff --git a/packages/kilo-vscode/tests/unit/prompt-input-connection-guard.test.ts b/packages/kilo-vscode/tests/unit/prompt-input-connection-guard.test.ts index 4fab1cf5a3d..0c6e789148a 100644 --- a/packages/kilo-vscode/tests/unit/prompt-input-connection-guard.test.ts +++ b/packages/kilo-vscode/tests/unit/prompt-input-connection-guard.test.ts @@ -4,6 +4,8 @@ import { join } from "node:path" const path = join(__dirname, "..", "..", "webview-ui", "src", "components", "chat", "PromptInput.tsx") const src = readFileSync(path, "utf8") +const iconPath = join(__dirname, "..", "..", "..", "kilo-ui", "src", "components", "icon.tsx") +const icons = readFileSync(iconPath, "utf8") describe("PromptInput connection guard", () => { it("rechecks the connection after resolving async attachments and before clearing the draft", () => { @@ -67,4 +69,16 @@ describe("PromptInput sandbox toggle", () => { expect(src).toContain("if (sandboxRequest() && target === null) return") expect(src).not.toContain("if (state === current) return true") }) + + it("adds a neutral network badge whenever network restriction is configured", () => { + expect(src).toContain( + "const sandboxNetworkEnabled = () => config().experimental?.sandbox_restrict_network !== false", + ) + expect(src).toContain('') + expect(src).toContain("") + expect(src).toContain('class="prompt-sandbox-network"') + expect(src).toContain('') + expect(src).not.toContain(' = (props) => { return state?.sessionID === sandboxID() ? state : undefined } const sandboxEnabled = () => sandbox()?.enabled ?? (!sandboxID() && config().experimental?.sandbox === true) + const sandboxNetworkEnabled = () => config().experimental?.sandbox_restrict_network !== false const sandboxReady = () => !sandboxID() || sandbox() !== undefined const requestSandbox = () => { const sessionID = sandboxID() @@ -1243,7 +1244,14 @@ export const PromptInput: Component = (props) => { aria-pressed={sandboxEnabled()} class={`prompt-status-button ${sandboxEnabled() ? "prompt-status-button--active" : ""}`} > - + + + + + + diff --git a/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx b/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx index 764f1718c02..e31a1b4df60 100644 --- a/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx +++ b/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx @@ -15,6 +15,7 @@ import type { Meta, StoryObj } from "storybook-solidjs-vite" import { type ParentComponent } from "solid-js" import { StoryProviders, mockSessionValue } from "./StoryProviders" import { SessionContext } from "../context/session" +import { ServerContext } from "../context/server" import { PromptInput } from "../components/chat/PromptInput" const agents = [ @@ -25,10 +26,17 @@ const agents = [ const noop = () => {} -const PromptProviders: ParentComponent<{ variants?: boolean; modelOverride?: boolean }> = (props) => { +const PromptProviders: ParentComponent<{ + variants?: boolean + modelOverride?: boolean + sandboxNetwork?: boolean + sandbox?: boolean +}> = (props) => { const base = mockSessionValue({ status: "idle" }) const session = { ...base, + currentSessionID: () => (props.sandboxNetwork ? undefined : base.currentSessionID()), + currentSession: () => (props.sandboxNetwork ? undefined : base.currentSession()), agents: () => agents, selectedAgent: () => "code", variantList: () => (props.variants ? ["low", "medium", "high"] : []), @@ -36,13 +44,44 @@ const PromptProviders: ParentComponent<{ variants?: boolean; modelOverride?: boo hasModelOverride: () => props.modelOverride ?? false, clearModelOverride: noop, } + const server = { + connectionState: () => "connected", + serverInfo: () => undefined, + extensionVersion: () => undefined, + errorMessage: () => undefined, + errorDetails: () => undefined, + isConnected: () => true, + profileData: () => null, + deviceAuth: () => ({ status: "idle" }), + startLogin: noop, + goToLogin: noop, + vscodeLanguage: () => undefined, + languageOverride: () => undefined, + workspaceDirectory: () => "/workspace", + gitInstalled: () => true, + } + const content = ( +
+ {props.children} +
+ ) return ( - + {/* overflow:hidden prevents margin-collapse so top/bottom borders are captured in screenshots */} -
- {props.children} -
+ {props.sandboxNetwork ? ( + {content} + ) : ( + content + )}
) } @@ -80,6 +119,24 @@ export const Default200: Story = { ), } +export const SandboxNetwork420: Story = { + name: "Sandbox with network restriction — 420px", + render: () => ( + + + + ), +} + +export const SandboxNetworkDisabled420: Story = { + name: "Disabled sandbox with network restriction — 420px", + render: () => ( + + + + ), +} + // --------------------------------------------------------------------------- // Stories — model with thinking-effort variants (ThinkingSelector visible) // --------------------------------------------------------------------------- diff --git a/packages/kilo-vscode/webview-ui/src/styles/prompt-input.css b/packages/kilo-vscode/webview-ui/src/styles/prompt-input.css index 0eb470ffc2c..2c40ef822db 100644 --- a/packages/kilo-vscode/webview-ui/src/styles/prompt-input.css +++ b/packages/kilo-vscode/webview-ui/src/styles/prompt-input.css @@ -564,6 +564,35 @@ position: relative; } +.prompt-sandbox-icon { + position: relative; + display: inline-flex; + width: 16px; + height: 16px; +} + +.prompt-sandbox-network { + position: absolute; + left: -2px; + bottom: -2px; + display: inline-flex; + width: 9px; + height: 9px; + border-radius: 999px; + color: var(--icon-base); + background: var(--surface-base, var(--vscode-editor-background)); + pointer-events: none; + + [data-component="icon"] { + width: 100%; + height: 100%; + } + + [data-component="icon"] [data-slot="icon-svg"] { + color: var(--icon-base) !important; + } +} + .prompt-status-button--active { color: var(--vscode-testing-iconPassed, #73c991); From 71857e35997c1f8b3d1ae0235dfb59fd9310838b Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 25 Jun 2026 11:49:28 +0200 Subject: [PATCH 2/6] test(vscode): keep prompt stories inside providers --- .../src/stories/prompt-input.stories.tsx | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx b/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx index e31a1b4df60..72d5d1ada32 100644 --- a/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx +++ b/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx @@ -60,12 +60,6 @@ const PromptProviders: ParentComponent<{ workspaceDirectory: () => "/workspace", gitInstalled: () => true, } - const content = ( -
- {props.children} -
- ) - return ( {/* overflow:hidden prevents margin-collapse so top/bottom borders are captured in screenshots */} - {props.sandboxNetwork ? ( - {content} - ) : ( - content - )} +
+ + {props.sandboxNetwork ? ( + {props.children} + ) : ( + props.children + )} + +
) } From 2808def87a5c1369056caa36883dfcda69dc6eb3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 25 Jun 2026 09:52:19 +0000 Subject: [PATCH 3/6] chore: update kilo-vscode visual regression baselines --- .../prompt-input/sandbox-network-420-chromium-linux.png | 3 +++ .../sandbox-network-disabled-420-chromium-linux.png | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-420-chromium-linux.png create mode 100644 packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-disabled-420-chromium-linux.png diff --git a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-420-chromium-linux.png b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-420-chromium-linux.png new file mode 100644 index 00000000000..d067e1bb2e9 --- /dev/null +++ b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-420-chromium-linux.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5488a16adcc99925907b0f517c980a8f7c3ef322a32933c8b691dd272317bd9 +size 9224 diff --git a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-disabled-420-chromium-linux.png b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-disabled-420-chromium-linux.png new file mode 100644 index 00000000000..c6f284b05ec --- /dev/null +++ b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-disabled-420-chromium-linux.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e82e3c01137dc7dffb1b43ccaa96cf8180429aa847cc5efa4901ebacf3d8461f +size 9121 From 641c646c90b5efeb58017daf260220c9ccc7814e Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 25 Jun 2026 12:20:03 +0200 Subject: [PATCH 4/6] feat(vscode): clarify sandbox restriction states --- .changeset/show-sandbox-network.md | 2 +- .../prompt-input-connection-guard.test.ts | 10 +-- .../src/components/chat/PromptInput.tsx | 63 +++++++++++++++---- .../kilo-vscode/webview-ui/src/i18n/ar.ts | 12 ++++ .../kilo-vscode/webview-ui/src/i18n/br.ts | 14 +++++ .../kilo-vscode/webview-ui/src/i18n/bs.ts | 12 ++++ .../kilo-vscode/webview-ui/src/i18n/da.ts | 12 ++++ .../kilo-vscode/webview-ui/src/i18n/de.ts | 14 +++++ .../kilo-vscode/webview-ui/src/i18n/en.ts | 12 ++++ .../kilo-vscode/webview-ui/src/i18n/es.ts | 13 ++++ .../kilo-vscode/webview-ui/src/i18n/fr.ts | 13 ++++ .../kilo-vscode/webview-ui/src/i18n/it.ts | 13 ++++ .../kilo-vscode/webview-ui/src/i18n/ja.ts | 13 ++++ .../kilo-vscode/webview-ui/src/i18n/ko.ts | 12 ++++ .../kilo-vscode/webview-ui/src/i18n/nl.ts | 13 ++++ .../kilo-vscode/webview-ui/src/i18n/no.ts | 13 ++++ .../kilo-vscode/webview-ui/src/i18n/pl.ts | 12 ++++ .../kilo-vscode/webview-ui/src/i18n/ru.ts | 12 ++++ .../kilo-vscode/webview-ui/src/i18n/th.ts | 12 ++++ .../kilo-vscode/webview-ui/src/i18n/tr.ts | 13 ++++ .../kilo-vscode/webview-ui/src/i18n/uk.ts | 12 ++++ .../kilo-vscode/webview-ui/src/i18n/zh.ts | 12 ++++ .../kilo-vscode/webview-ui/src/i18n/zht.ts | 11 ++++ .../src/stories/prompt-input.stories.tsx | 45 ++++++++++++- .../webview-ui/src/styles/prompt-input.css | 55 +++++++++------- 25 files changed, 385 insertions(+), 40 deletions(-) diff --git a/.changeset/show-sandbox-network.md b/.changeset/show-sandbox-network.md index 142c51b2033..28fefe64b35 100644 --- a/.changeset/show-sandbox-network.md +++ b/.changeset/show-sandbox-network.md @@ -2,4 +2,4 @@ "kilo-code": patch --- -Show when network restrictions are configured on the sandbox toggle. +Show filesystem and network restriction states in the sandbox tooltip. diff --git a/packages/kilo-vscode/tests/unit/prompt-input-connection-guard.test.ts b/packages/kilo-vscode/tests/unit/prompt-input-connection-guard.test.ts index 0c6e789148a..e69d50cfadb 100644 --- a/packages/kilo-vscode/tests/unit/prompt-input-connection-guard.test.ts +++ b/packages/kilo-vscode/tests/unit/prompt-input-connection-guard.test.ts @@ -70,15 +70,17 @@ describe("PromptInput sandbox toggle", () => { expect(src).not.toContain("if (state === current) return true") }) - it("adds a neutral network badge whenever network restriction is configured", () => { + it("explains filesystem and network state without changing the lock icon", () => { expect(src).toContain( "const sandboxNetworkEnabled = () => config().experimental?.sandbox_restrict_network !== false", ) expect(src).toContain('') - expect(src).toContain("") - expect(src).toContain('class="prompt-sandbox-network"') + expect(src).toContain("") + expect(src).toContain('') expect(src).toContain('') - expect(src).not.toContain(' = (props) => { + const language = useLanguage() + + return ( +
+
+ {language.t(props.enabled ? "prompt.action.sandbox.status.enabled" : "prompt.action.sandbox.status.disabled")} +
+
+ + {language.t("prompt.action.sandbox.filesystem")} + + {language.t( + props.enabled ? "prompt.action.sandbox.filesystem.restricted" : "prompt.action.sandbox.unrestricted", + )} + +
+
+ + {language.t("prompt.action.sandbox.network")} + + {language.t( + props.enabled && props.network + ? "prompt.action.sandbox.network.blocked" + : props.enabled + ? "prompt.action.sandbox.network.allowed" + : "prompt.action.sandbox.unrestricted", + )} + +
+
+ {language.t( + props.enabled + ? "prompt.action.sandbox.description.enabled" + : props.network + ? "prompt.action.sandbox.description.disabled" + : "prompt.action.sandbox.description.disabledNetworkAllowed", + )} +
+
+ ) +} + export const PromptInput: Component = (props) => { const session = useSession() const server = useServer() @@ -1218,12 +1261,13 @@ export const PromptInput: Component = (props) => { + ) } + contentClass="prompt-sandbox-tooltip-content" placement="top" > diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts index b6c5a186551..fdf9fcb0e2d 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts @@ -288,6 +288,18 @@ export const dict = { "prompt.action.sandbox.enabled": "sandbox مُفعّل. أوامر shell الخاصة بالوكيل مقتصرة على مجلدات المشروع و Kilo.", "prompt.action.sandbox.disabled": "sandbox مُعطّل. انقر لتقييد كتابة أوامر shell الخاصة بالوكيل على مجلدات المشروع و Kilo.", + "prompt.action.sandbox.status.enabled": "العزل مُفعّل", + "prompt.action.sandbox.status.disabled": "العزل مُعطّل", + "prompt.action.sandbox.filesystem": "نظام الملفات", + "prompt.action.sandbox.network": "الشبكة", + "prompt.action.sandbox.filesystem.restricted": "مقيّد", + "prompt.action.sandbox.network.blocked": "محظورة", + "prompt.action.sandbox.network.allowed": "مسموح بها", + "prompt.action.sandbox.unrestricted": "غير مقيّد", + "prompt.action.sandbox.description.enabled": "تقتصر عمليات الكتابة على مجلدات المشروع و Kilo.", + "prompt.action.sandbox.description.disabled": "انقر لتقييد الكتابة في نظام الملفات والوصول إلى الشبكة.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "انقر لتقييد الكتابة في نظام الملفات. يظل الوصول إلى الشبكة مسموحًا وفق إعدادات sandbox.", "speechToText.tooltip.start": "بدء الإدخال الصوتي باستخدام Kilo Gateway", "speechToText.tooltip.stop": "إيقاف التقاط الصوت", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/br.ts b/packages/kilo-vscode/webview-ui/src/i18n/br.ts index 78a2294ffd8..09a96c89326 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/br.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/br.ts @@ -293,6 +293,20 @@ export const dict = { "Sandbox ativado. Os comandos shell do agente estão limitados aos diretórios do projeto e do Kilo.", "prompt.action.sandbox.disabled": "Sandbox desativado. Clique para limitar as escritas dos comandos shell do agente aos diretórios do projeto e do Kilo.", + "prompt.action.sandbox.status.enabled": "Sandbox ativado", + "prompt.action.sandbox.status.disabled": "Sandbox desativado", + "prompt.action.sandbox.filesystem": "Sistema de arquivos", + "prompt.action.sandbox.network": "Rede", + "prompt.action.sandbox.filesystem.restricted": "Restrito", + "prompt.action.sandbox.network.blocked": "Bloqueada", + "prompt.action.sandbox.network.allowed": "Permitida", + "prompt.action.sandbox.unrestricted": "Sem restrições", + "prompt.action.sandbox.description.enabled": + "As operações de escrita são limitadas aos diretórios do projeto e do Kilo.", + "prompt.action.sandbox.description.disabled": + "Clique para restringir as operações de escrita no sistema de arquivos e o acesso à rede.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "Clique para restringir as operações de escrita no sistema de arquivos. O acesso à rede continua permitido pelas configurações do sandbox.", "speechToText.tooltip.start": "Iniciar entrada de voz com o Kilo Gateway", "speechToText.tooltip.stop": "Parar captura", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts index 4fb516fcacf..95777ed39c7 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts @@ -293,6 +293,18 @@ export const dict = { "Sandbox je omogućen. Shell komande agenta su ograničene na direktorije projekta i Kilo.", "prompt.action.sandbox.disabled": "Sandbox je onemogućen. Kliknite da ograničite pisanje shell komandi agenta na direktorije projekta i Kilo.", + "prompt.action.sandbox.status.enabled": "Sandbox omogućen", + "prompt.action.sandbox.status.disabled": "Sandbox onemogućen", + "prompt.action.sandbox.filesystem": "Datotečni sistem", + "prompt.action.sandbox.network": "Mreža", + "prompt.action.sandbox.filesystem.restricted": "Ograničen", + "prompt.action.sandbox.network.blocked": "Blokirana", + "prompt.action.sandbox.network.allowed": "Dozvoljena", + "prompt.action.sandbox.unrestricted": "Bez ograničenja", + "prompt.action.sandbox.description.enabled": "Pisanje je ograničeno na direktorije projekta i Kilo.", + "prompt.action.sandbox.description.disabled": "Kliknite da ograničite pisanje u datotečni sistem i pristup mreži.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "Kliknite da ograničite pisanje u datotečni sistem. Pristup mreži ostaje dozvoljen prema vašim sandbox postavkama.", "speechToText.tooltip.start": "Započni glasovni unos sa Kilo Gateway", "speechToText.tooltip.stop": "Zaustavi hvatanje zvuka", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/da.ts b/packages/kilo-vscode/webview-ui/src/i18n/da.ts index 92ee09fdd3c..28986deb5b4 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/da.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/da.ts @@ -292,6 +292,18 @@ export const dict = { "Sandbox er aktiveret. Shell-kommandoer for agenten er begrænset til projekt- og Kilo-mapperne.", "prompt.action.sandbox.disabled": "Sandbox er deaktiveret. Klik for at begrænse skrivning af shell-kommandoer for agenten til projekt- og Kilo-mapperne.", + "prompt.action.sandbox.status.enabled": "Sandbox aktiveret", + "prompt.action.sandbox.status.disabled": "Sandbox deaktiveret", + "prompt.action.sandbox.filesystem": "Filsystem", + "prompt.action.sandbox.network": "Netværk", + "prompt.action.sandbox.filesystem.restricted": "Begrænset", + "prompt.action.sandbox.network.blocked": "Blokeret", + "prompt.action.sandbox.network.allowed": "Tilladt", + "prompt.action.sandbox.unrestricted": "Ubegrænset", + "prompt.action.sandbox.description.enabled": "Skrivning er begrænset til projekt- og Kilo-mapperne.", + "prompt.action.sandbox.description.disabled": "Klik for at begrænse skriveadgang til filsystemet og netværksadgang.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "Klik for at begrænse skriveadgang til filsystemet. Netværksadgang er fortsat tilladt ifølge dine sandboxindstillinger.", "speechToText.tooltip.start": "Start stemmeinput med Kilo Gateway", "speechToText.tooltip.stop": "Stop lydoptagelse", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/de.ts b/packages/kilo-vscode/webview-ui/src/i18n/de.ts index 03441e4f5b4..0e2276f0d61 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/de.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/de.ts @@ -296,6 +296,20 @@ export const dict = { "Sandbox ist aktiviert. Shell-Befehle des Agenten sind auf die Projekt- und Kilo-Verzeichnisse beschränkt.", "prompt.action.sandbox.disabled": "Sandbox ist deaktiviert. Klicken, um Schreibvorgänge der Shell-Befehle des Agenten auf die Projekt- und Kilo-Verzeichnisse zu beschränken.", + "prompt.action.sandbox.status.enabled": "Sandbox aktiviert", + "prompt.action.sandbox.status.disabled": "Sandbox deaktiviert", + "prompt.action.sandbox.filesystem": "Dateisystem", + "prompt.action.sandbox.network": "Netzwerk", + "prompt.action.sandbox.filesystem.restricted": "Eingeschränkt", + "prompt.action.sandbox.network.blocked": "Blockiert", + "prompt.action.sandbox.network.allowed": "Erlaubt", + "prompt.action.sandbox.unrestricted": "Uneingeschränkt", + "prompt.action.sandbox.description.enabled": + "Schreibvorgänge sind auf die Projekt- und Kilo-Verzeichnisse beschränkt.", + "prompt.action.sandbox.description.disabled": + "Klicken, um Schreibvorgänge im Dateisystem und den Netzwerkzugriff einzuschränken.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "Klicken, um Schreibvorgänge im Dateisystem einzuschränken. Der Netzwerkzugriff bleibt gemäß deinen Sandbox-Einstellungen erlaubt.", "speechToText.tooltip.start": "Spracheingabe mit Kilo Gateway starten", "speechToText.tooltip.stop": "Audioerfassung beenden", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/en.ts b/packages/kilo-vscode/webview-ui/src/i18n/en.ts index f3996d15811..bbb6d899b8f 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/en.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/en.ts @@ -289,6 +289,18 @@ export const dict = { "Sandbox is enabled. Agent shell commands are confined to the project and Kilo directories.", "prompt.action.sandbox.disabled": "Sandbox is disabled. Click to confine agent shell command writes to the project and Kilo directories.", + "prompt.action.sandbox.status.enabled": "Sandbox enabled", + "prompt.action.sandbox.status.disabled": "Sandbox disabled", + "prompt.action.sandbox.filesystem": "Filesystem", + "prompt.action.sandbox.network": "Network", + "prompt.action.sandbox.filesystem.restricted": "Restricted", + "prompt.action.sandbox.network.blocked": "Blocked", + "prompt.action.sandbox.network.allowed": "Allowed", + "prompt.action.sandbox.unrestricted": "Unrestricted", + "prompt.action.sandbox.description.enabled": "Writes are limited to the project and Kilo directories.", + "prompt.action.sandbox.description.disabled": "Click to restrict filesystem writes and network access.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "Click to restrict filesystem writes. Network access remains allowed by your sandbox settings.", "prompt.action.resetModel": "Reset model to default", "prompt.action.enhanceDescription": "The 'Enhance Prompt' button helps improve your prompt by providing additional context, clarification, or rephrasing. Try typing a prompt in here and clicking the button again to see how it works.", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/es.ts b/packages/kilo-vscode/webview-ui/src/i18n/es.ts index 8ad90a35777..cc34de6464e 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/es.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/es.ts @@ -294,6 +294,19 @@ export const dict = { "Sandbox activado. Los comandos de shell del agente están limitados a los directorios del proyecto y de Kilo.", "prompt.action.sandbox.disabled": "Sandbox desactivado. Haz clic para limitar las escrituras de los comandos de shell del agente a los directorios del proyecto y de Kilo.", + "prompt.action.sandbox.status.enabled": "Sandbox activado", + "prompt.action.sandbox.status.disabled": "Sandbox desactivado", + "prompt.action.sandbox.filesystem": "Sistema de archivos", + "prompt.action.sandbox.network": "Red", + "prompt.action.sandbox.filesystem.restricted": "Restringido", + "prompt.action.sandbox.network.blocked": "Bloqueada", + "prompt.action.sandbox.network.allowed": "Permitida", + "prompt.action.sandbox.unrestricted": "Sin restricciones", + "prompt.action.sandbox.description.enabled": "Las escrituras se limitan a los directorios del proyecto y de Kilo.", + "prompt.action.sandbox.description.disabled": + "Haz clic para restringir las escrituras en el sistema de archivos y el acceso a la red.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "Haz clic para restringir las escrituras en el sistema de archivos. El acceso a la red seguirá permitido según la configuración de tu sandbox.", "speechToText.tooltip.start": "Iniciar entrada de voz con Kilo Gateway", "speechToText.tooltip.stop": "Detener captura", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts index 656e647fb7a..53b1d6514fc 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts @@ -295,6 +295,19 @@ export const dict = { "Le sandbox est activé. Les commandes shell de l'agent sont limitées aux répertoires du projet et de Kilo.", "prompt.action.sandbox.disabled": "Le sandbox est désactivé. Cliquez pour limiter les écritures des commandes shell de l'agent aux répertoires du projet et de Kilo.", + "prompt.action.sandbox.status.enabled": "Sandbox activé", + "prompt.action.sandbox.status.disabled": "Sandbox désactivé", + "prompt.action.sandbox.filesystem": "Système de fichiers", + "prompt.action.sandbox.network": "Réseau", + "prompt.action.sandbox.filesystem.restricted": "Restreint", + "prompt.action.sandbox.network.blocked": "Bloqué", + "prompt.action.sandbox.network.allowed": "Autorisé", + "prompt.action.sandbox.unrestricted": "Sans restriction", + "prompt.action.sandbox.description.enabled": "Les écritures sont limitées aux répertoires du projet et de Kilo.", + "prompt.action.sandbox.description.disabled": + "Cliquez pour restreindre les écritures dans le système de fichiers et l'accès au réseau.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "Cliquez pour restreindre les écritures dans le système de fichiers. L'accès au réseau reste autorisé par vos paramètres de sandbox.", "speechToText.tooltip.start": "Démarrer la saisie vocale avec Kilo Gateway", "speechToText.tooltip.stop": "Arrêter la capture audio", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/it.ts b/packages/kilo-vscode/webview-ui/src/i18n/it.ts index 9ae8414475c..419c33806f6 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/it.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/it.ts @@ -1210,6 +1210,19 @@ export const dict = { "Sandbox abilitata. I comandi shell dell'agente sono limitati alle directory del progetto e di Kilo.", "prompt.action.sandbox.disabled": "Sandbox disabilitata. Fai clic per limitare le scritture dei comandi shell dell'agente alle directory del progetto e di Kilo.", + "prompt.action.sandbox.status.enabled": "Sandbox abilitata", + "prompt.action.sandbox.status.disabled": "Sandbox disabilitata", + "prompt.action.sandbox.filesystem": "File system", + "prompt.action.sandbox.network": "Rete", + "prompt.action.sandbox.filesystem.restricted": "Limitato", + "prompt.action.sandbox.network.blocked": "Bloccata", + "prompt.action.sandbox.network.allowed": "Consentita", + "prompt.action.sandbox.unrestricted": "Senza restrizioni", + "prompt.action.sandbox.description.enabled": "Le scritture sono limitate alle directory del progetto e di Kilo.", + "prompt.action.sandbox.description.disabled": + "Fai clic per limitare le scritture nel file system e l'accesso alla rete.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "Fai clic per limitare le scritture nel file system. L'accesso alla rete resta consentito dalle impostazioni della sandbox.", "settings.experimental.sandbox.title": "Sandbox", "settings.experimental.sandbox.description": "Esegui i comandi shell dell'agente all'interno di un sandbox a livello di sistema operativo che limita le scritture alle directory di stato del progetto e di Kilo", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts index 9ec27bf7036..7e1e78c4532 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts @@ -290,6 +290,19 @@ export const dict = { "サンドボックスが有効です。エージェントのシェルコマンドは、プロジェクトおよびKiloディレクトリに制限されています。", "prompt.action.sandbox.disabled": "サンドボックスが無効です。クリックしてエージェントのシェルコマンドの書き込みをプロジェクトおよびKiloディレクトリに制限します。", + "prompt.action.sandbox.status.enabled": "サンドボックス有効", + "prompt.action.sandbox.status.disabled": "サンドボックス無効", + "prompt.action.sandbox.filesystem": "ファイルシステム", + "prompt.action.sandbox.network": "ネットワーク", + "prompt.action.sandbox.filesystem.restricted": "制限あり", + "prompt.action.sandbox.network.blocked": "ブロック", + "prompt.action.sandbox.network.allowed": "許可", + "prompt.action.sandbox.unrestricted": "制限なし", + "prompt.action.sandbox.description.enabled": "書き込みはプロジェクトおよびKiloディレクトリ内に制限されます。", + "prompt.action.sandbox.description.disabled": + "クリックすると、ファイルシステムへの書き込みとネットワークアクセスを制限します。", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "クリックすると、ファイルシステムへの書き込みを制限します。サンドボックス設定により、ネットワークアクセスは引き続き許可されます。", "speechToText.tooltip.start": "Kilo Gatewayで音声入力を開始", "speechToText.tooltip.stop": "音声キャプチャを停止", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts index a26e3306f6c..656ae2ea3cd 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts @@ -292,6 +292,18 @@ export const dict = { "샌드박스가 활성화되어 있습니다. 에이전트 셸 명령은 프로젝트 및 Kilo 디렉터리로 제한됩니다.", "prompt.action.sandbox.disabled": "샌드박스가 비활성화되어 있습니다. 클릭하여 에이전트 셸 명령 쓰기를 프로젝트 및 Kilo 디렉터리로 제한합니다.", + "prompt.action.sandbox.status.enabled": "샌드박스 활성화됨", + "prompt.action.sandbox.status.disabled": "샌드박스 비활성화됨", + "prompt.action.sandbox.filesystem": "파일 시스템", + "prompt.action.sandbox.network": "네트워크", + "prompt.action.sandbox.filesystem.restricted": "제한됨", + "prompt.action.sandbox.network.blocked": "차단됨", + "prompt.action.sandbox.network.allowed": "허용됨", + "prompt.action.sandbox.unrestricted": "제한 없음", + "prompt.action.sandbox.description.enabled": "쓰기는 프로젝트 및 Kilo 디렉터리로 제한됩니다.", + "prompt.action.sandbox.description.disabled": "클릭하면 파일 시스템 쓰기와 네트워크 액세스를 제한합니다.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "클릭하면 파일 시스템 쓰기를 제한합니다. 샌드박스 설정에 따라 네트워크 액세스는 계속 허용됩니다.", "speechToText.tooltip.start": "Kilo Gateway로 음성 입력 시작", "speechToText.tooltip.stop": "음성 캡처 중지", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts index ad3a5a966d8..3d00f72c9c3 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts @@ -294,6 +294,19 @@ export const dict = { "Sandbox is ingeschakeld. Shell-opdrachten van de agent zijn beperkt tot de project- en Kilo-mappen.", "prompt.action.sandbox.disabled": "Sandbox is uitgeschakeld. Klik om schrijfbewerkingen van shell-opdrachten van de agent te beperken tot de project- en Kilo-mappen.", + "prompt.action.sandbox.status.enabled": "Sandbox ingeschakeld", + "prompt.action.sandbox.status.disabled": "Sandbox uitgeschakeld", + "prompt.action.sandbox.filesystem": "Bestandssysteem", + "prompt.action.sandbox.network": "Netwerk", + "prompt.action.sandbox.filesystem.restricted": "Beperkt", + "prompt.action.sandbox.network.blocked": "Geblokkeerd", + "prompt.action.sandbox.network.allowed": "Toegestaan", + "prompt.action.sandbox.unrestricted": "Onbeperkt", + "prompt.action.sandbox.description.enabled": "Schrijfbewerkingen zijn beperkt tot de project- en Kilo-mappen.", + "prompt.action.sandbox.description.disabled": + "Klik om schrijfbewerkingen in het bestandssysteem en netwerktoegang te beperken.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "Klik om schrijfbewerkingen in het bestandssysteem te beperken. Netwerktoegang blijft toegestaan volgens je sandboxinstellingen.", "speechToText.tooltip.start": "Spraakinvoer starten met Kilo Gateway", "speechToText.tooltip.stop": "Audio vastleggen stoppen", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/no.ts b/packages/kilo-vscode/webview-ui/src/i18n/no.ts index fddcc85e4bf..32a07667988 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/no.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/no.ts @@ -296,6 +296,19 @@ export const dict = { "Sandbox er aktivert. Shell-kommandoer for agenten er begrenset til prosjekt- og Kilo-mappene.", "prompt.action.sandbox.disabled": "Sandbox er deaktivert. Klikk for å begrense skriving av shell-kommandoer for agenten til prosjekt- og Kilo-mappene.", + "prompt.action.sandbox.status.enabled": "Sandbox aktivert", + "prompt.action.sandbox.status.disabled": "Sandbox deaktivert", + "prompt.action.sandbox.filesystem": "Filsystem", + "prompt.action.sandbox.network": "Nettverk", + "prompt.action.sandbox.filesystem.restricted": "Begrenset", + "prompt.action.sandbox.network.blocked": "Blokkert", + "prompt.action.sandbox.network.allowed": "Tillatt", + "prompt.action.sandbox.unrestricted": "Ubegrenset", + "prompt.action.sandbox.description.enabled": "Skrivetilgang er begrenset til prosjekt- og Kilo-mappene.", + "prompt.action.sandbox.description.disabled": + "Klikk for å begrense skrivetilgang til filsystemet og nettverkstilgang.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "Klikk for å begrense skrivetilgang til filsystemet. Nettverkstilgang er fortsatt tillatt av sandbox-innstillingene dine.", "speechToText.tooltip.start": "Start taleinndata med Kilo Gateway", "speechToText.tooltip.stop": "Stopp lydfangst", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts index f7db2440724..474be0bd948 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts @@ -293,6 +293,18 @@ export const dict = { "Sandbox jest włączony. Polecenia shell agenta są ograniczone do katalogów projektu i Kilo.", "prompt.action.sandbox.disabled": "Sandbox jest wyłączony. Kliknij, aby ograniczyć zapisy poleceń shell agenta do katalogów projektu i Kilo.", + "prompt.action.sandbox.status.enabled": "Sandbox włączony", + "prompt.action.sandbox.status.disabled": "Sandbox wyłączony", + "prompt.action.sandbox.filesystem": "System plików", + "prompt.action.sandbox.network": "Sieć", + "prompt.action.sandbox.filesystem.restricted": "Ograniczony", + "prompt.action.sandbox.network.blocked": "Zablokowana", + "prompt.action.sandbox.network.allowed": "Dozwolona", + "prompt.action.sandbox.unrestricted": "Nieograniczony", + "prompt.action.sandbox.description.enabled": "Zapisy są ograniczone do katalogów projektu i Kilo.", + "prompt.action.sandbox.description.disabled": "Kliknij, aby ograniczyć zapisy w systemie plików i dostęp do sieci.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "Kliknij, aby ograniczyć zapisy w systemie plików. Ustawienia sandboxa nadal zezwalają na dostęp do sieci.", "speechToText.tooltip.start": "Rozpocznij wprowadzanie głosowe z Kilo Gateway", "speechToText.tooltip.stop": "Zatrzymaj przechwytywanie dźwięku", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts index 6990d1f7e79..797a161ee8b 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts @@ -290,6 +290,18 @@ export const dict = { "prompt.action.sandbox.enabled": "Песочница включена. Команды оболочки агента ограничены каталогами проекта и Kilo.", "prompt.action.sandbox.disabled": "Песочница отключена. Нажмите, чтобы ограничить запись команд оболочки агента каталогами проекта и Kilo.", + "prompt.action.sandbox.status.enabled": "Песочница включена", + "prompt.action.sandbox.status.disabled": "Песочница отключена", + "prompt.action.sandbox.filesystem": "Файловая система", + "prompt.action.sandbox.network": "Сеть", + "prompt.action.sandbox.filesystem.restricted": "Ограничена", + "prompt.action.sandbox.network.blocked": "Заблокирована", + "prompt.action.sandbox.network.allowed": "Разрешена", + "prompt.action.sandbox.unrestricted": "Без ограничений", + "prompt.action.sandbox.description.enabled": "Запись разрешена только в каталогах проекта и Kilo.", + "prompt.action.sandbox.description.disabled": "Нажмите, чтобы ограничить запись в файловую систему и доступ к сети.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "Нажмите, чтобы ограничить запись в файловую систему. Доступ к сети останется разрешённым согласно настройкам песочницы.", "speechToText.tooltip.start": "Начать голосовой ввод с Kilo Gateway", "speechToText.tooltip.stop": "Остановить захват звука", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/th.ts b/packages/kilo-vscode/webview-ui/src/i18n/th.ts index 6b917cc0428..cac2a737093 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/th.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/th.ts @@ -291,6 +291,18 @@ export const dict = { "เปิดใช้งาน sandbox แล้ว คำสั่ง shell ของ agent ถูกจำกัดไว้ที่โฟลเดอร์โปรเจ็กต์และ Kilo", "prompt.action.sandbox.disabled": "ปิดใช้งาน sandbox อยู่ คลิกเพื่อจำกัดการเขียนคำสั่ง shell ของ agent ไว้ที่โฟลเดอร์โปรเจ็กต์และ Kilo", + "prompt.action.sandbox.status.enabled": "เปิด sandbox แล้ว", + "prompt.action.sandbox.status.disabled": "ปิด sandbox แล้ว", + "prompt.action.sandbox.filesystem": "ระบบไฟล์", + "prompt.action.sandbox.network": "เครือข่าย", + "prompt.action.sandbox.filesystem.restricted": "จำกัด", + "prompt.action.sandbox.network.blocked": "บล็อก", + "prompt.action.sandbox.network.allowed": "อนุญาต", + "prompt.action.sandbox.unrestricted": "ไม่จำกัด", + "prompt.action.sandbox.description.enabled": "เขียนได้เฉพาะในโฟลเดอร์โปรเจ็กต์และ Kilo", + "prompt.action.sandbox.description.disabled": "คลิกเพื่อจำกัดการเขียนในระบบไฟล์และการเข้าถึงเครือข่าย", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "คลิกเพื่อจำกัดการเขียนในระบบไฟล์ การตั้งค่า sandbox ของคุณยังคงอนุญาตให้เข้าถึงเครือข่าย", "speechToText.tooltip.start": "เริ่มการป้อนข้อมูลด้วยเสียงด้วย Kilo Gateway", "speechToText.tooltip.stop": "หยุดจับเสียง", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts index 462b1187da1..62465f06454 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts @@ -290,6 +290,19 @@ export const dict = { "prompt.action.sandbox.enabled": "Sandbox etkin. Agent shell komutları proje ve Kilo dizinleriyle sınırlıdır.", "prompt.action.sandbox.disabled": "Sandbox devre dışı. Agent shell komut yazma işlemlerini proje ve Kilo dizinleriyle sınırlamak için tıklayın.", + "prompt.action.sandbox.status.enabled": "Sandbox etkin", + "prompt.action.sandbox.status.disabled": "Sandbox devre dışı", + "prompt.action.sandbox.filesystem": "Dosya sistemi", + "prompt.action.sandbox.network": "Ağ", + "prompt.action.sandbox.filesystem.restricted": "Kısıtlı", + "prompt.action.sandbox.network.blocked": "Engellendi", + "prompt.action.sandbox.network.allowed": "İzin verildi", + "prompt.action.sandbox.unrestricted": "Kısıtlanmamış", + "prompt.action.sandbox.description.enabled": "Yazma işlemleri proje ve Kilo dizinleriyle sınırlıdır.", + "prompt.action.sandbox.description.disabled": + "Dosya sistemi yazma işlemlerini ve ağ erişimini kısıtlamak için tıklayın.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "Dosya sistemi yazma işlemlerini kısıtlamak için tıklayın. Sandbox ayarlarınız ağ erişimine izin vermeye devam ediyor.", "speechToText.tooltip.start": "Kilo Gateway ile sesli girişi başlatın", "speechToText.tooltip.stop": "Ses yakalamayı durdur", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts index 3fd1915ba1a..5f660a59d9c 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts @@ -292,6 +292,18 @@ export const dict = { "prompt.action.sandbox.enabled": "Пісочницю увімкнено. Команди оболонки агента обмежені каталогами проєкту та Kilo.", "prompt.action.sandbox.disabled": "Пісочницю вимкнено. Натисніть, щоб обмежити запис команд оболонки агента каталогами проєкту та Kilo.", + "prompt.action.sandbox.status.enabled": "Пісочницю увімкнено", + "prompt.action.sandbox.status.disabled": "Пісочницю вимкнено", + "prompt.action.sandbox.filesystem": "Файлова система", + "prompt.action.sandbox.network": "Мережа", + "prompt.action.sandbox.filesystem.restricted": "Обмежено", + "prompt.action.sandbox.network.blocked": "Заблоковано", + "prompt.action.sandbox.network.allowed": "Дозволено", + "prompt.action.sandbox.unrestricted": "Без обмежень", + "prompt.action.sandbox.description.enabled": "Запис дозволено лише в каталогах проєкту та Kilo.", + "prompt.action.sandbox.description.disabled": "Натисніть, щоб обмежити запис у файлову систему та доступ до мережі.", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "Натисніть, щоб обмежити запис у файлову систему. Доступ до мережі залишиться дозволеним відповідно до налаштувань пісочниці.", "speechToText.tooltip.start": "Почати голосове введення з Kilo Gateway", "speechToText.tooltip.stop": "Зупинити захоплення звуку", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts index c1414a9f14f..db796045919 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts @@ -288,6 +288,18 @@ export const dict = { "prompt.action.sandbox.disable": "禁用沙盒", "prompt.action.sandbox.enabled": "沙盒已启用。代理 shell 命令被限制在项目和 Kilo 目录内。", "prompt.action.sandbox.disabled": "沙盒已禁用。点击以将代理 shell 命令的写入限制在项目和 Kilo 目录内。", + "prompt.action.sandbox.status.enabled": "沙盒已启用", + "prompt.action.sandbox.status.disabled": "沙盒已禁用", + "prompt.action.sandbox.filesystem": "文件系统", + "prompt.action.sandbox.network": "网络", + "prompt.action.sandbox.filesystem.restricted": "受限", + "prompt.action.sandbox.network.blocked": "已阻止", + "prompt.action.sandbox.network.allowed": "允许", + "prompt.action.sandbox.unrestricted": "不受限", + "prompt.action.sandbox.description.enabled": "写入仅限项目和 Kilo 目录。", + "prompt.action.sandbox.description.disabled": "点击以限制文件系统写入和网络访问。", + "prompt.action.sandbox.description.disabledNetworkAllowed": + "点击以限制文件系统写入。根据你的沙盒设置,网络访问仍然允许。", "speechToText.tooltip.start": "使用 Kilo Gateway 开始语音输入", "speechToText.tooltip.stop": "停止捕获音频", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts index 597f38049aa..0738ab6bd2b 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts @@ -287,6 +287,17 @@ export const dict = { "prompt.action.sandbox.disable": "停用沙盒", "prompt.action.sandbox.enabled": "沙盒已啟用。代理 shell 指令被限制在專案和 Kilo 目錄內。", "prompt.action.sandbox.disabled": "沙盒已停用。點擊以將代理 shell 指令的寫入限制在專案和 Kilo 目錄內。", + "prompt.action.sandbox.status.enabled": "沙盒已啟用", + "prompt.action.sandbox.status.disabled": "沙盒已停用", + "prompt.action.sandbox.filesystem": "檔案系統", + "prompt.action.sandbox.network": "網路", + "prompt.action.sandbox.filesystem.restricted": "受限制", + "prompt.action.sandbox.network.blocked": "已封鎖", + "prompt.action.sandbox.network.allowed": "允許", + "prompt.action.sandbox.unrestricted": "不受限制", + "prompt.action.sandbox.description.enabled": "寫入僅限於專案和 Kilo 目錄。", + "prompt.action.sandbox.description.disabled": "點擊以限制檔案系統寫入和網路存取。", + "prompt.action.sandbox.description.disabledNetworkAllowed": "點擊以限制檔案系統寫入。沙盒設定仍允許網路存取。", "speechToText.tooltip.start": "使用 Kilo Gateway 開始語音輸入", "speechToText.tooltip.stop": "停止擷取音訊", diff --git a/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx b/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx index 72d5d1ada32..4ea889d4832 100644 --- a/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx +++ b/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx @@ -16,7 +16,10 @@ import { type ParentComponent } from "solid-js" import { StoryProviders, mockSessionValue } from "./StoryProviders" import { SessionContext } from "../context/session" import { ServerContext } from "../context/server" -import { PromptInput } from "../components/chat/PromptInput" +import { PromptInput, SandboxTooltipContent } from "../components/chat/PromptInput" +import { Button } from "@kilocode/kilo-ui/button" +import { Icon } from "@kilocode/kilo-ui/icon" +import { Tooltip } from "@kilocode/kilo-ui/tooltip" const agents = [ { name: "code", description: "Write, edit and review code", mode: "primary" as const }, @@ -135,6 +138,46 @@ export const SandboxNetworkDisabled420: Story = { ), } +export const SandboxTooltipEnabled: Story = { + name: "Sandbox tooltip — enabled", + render: () => ( + +
+ } + contentClass="prompt-sandbox-tooltip-content" + placement="top" + > + + +
+
+ ), +} + +export const SandboxTooltipDisabled: Story = { + name: "Sandbox tooltip — disabled", + render: () => ( + +
+ } + contentClass="prompt-sandbox-tooltip-content" + placement="top" + > + + +
+
+ ), +} + // --------------------------------------------------------------------------- // Stories — model with thinking-effort variants (ThinkingSelector visible) // --------------------------------------------------------------------------- diff --git a/packages/kilo-vscode/webview-ui/src/styles/prompt-input.css b/packages/kilo-vscode/webview-ui/src/styles/prompt-input.css index 2c40ef822db..9866ca33191 100644 --- a/packages/kilo-vscode/webview-ui/src/styles/prompt-input.css +++ b/packages/kilo-vscode/webview-ui/src/styles/prompt-input.css @@ -564,33 +564,46 @@ position: relative; } -.prompt-sandbox-icon { - position: relative; - display: inline-flex; - width: 16px; - height: 16px; +.prompt-sandbox-tooltip-content { + width: 260px; + padding: 10px 12px; + white-space: normal; } -.prompt-sandbox-network { - position: absolute; - left: -2px; - bottom: -2px; - display: inline-flex; - width: 9px; - height: 9px; - border-radius: 999px; - color: var(--icon-base); - background: var(--surface-base, var(--vscode-editor-background)); - pointer-events: none; +.prompt-sandbox-tooltip { + display: flex; + flex-direction: column; + gap: 8px; +} + +.prompt-sandbox-tooltip-title { + color: var(--text-invert-strong); + font-weight: var(--font-weight-medium); +} + +.prompt-sandbox-tooltip-row { + display: grid; + grid-template-columns: 16px 1fr auto; + align-items: center; + gap: 8px; + color: var(--text-invert-base); [data-component="icon"] { - width: 100%; - height: 100%; + width: 16px; + height: 16px; } +} - [data-component="icon"] [data-slot="icon-svg"] { - color: var(--icon-base) !important; - } +.prompt-sandbox-tooltip-state { + color: var(--text-invert-strong); + font-weight: var(--font-weight-medium); +} + +.prompt-sandbox-tooltip-description { + padding-top: 8px; + border-top: 1px solid var(--border-weak-base); + color: var(--text-invert-base); + font-weight: var(--font-weight-normal); } .prompt-status-button--active { From e03fbd662f489990bb44ebe659de59ac62144e76 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 25 Jun 2026 10:23:17 +0000 Subject: [PATCH 5/6] chore: update kilo-vscode visual regression baselines --- .../prompt-input/sandbox-tooltip-disabled-chromium-linux.png | 3 +++ .../prompt-input/sandbox-tooltip-enabled-chromium-linux.png | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-tooltip-disabled-chromium-linux.png create mode 100644 packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-tooltip-enabled-chromium-linux.png diff --git a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-tooltip-disabled-chromium-linux.png b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-tooltip-disabled-chromium-linux.png new file mode 100644 index 00000000000..dc0021f5018 --- /dev/null +++ b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-tooltip-disabled-chromium-linux.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47770a3c0f31c816f0dc21fc75dc9c591209c7599e3f69df31f5b1e267546c62 +size 1167 diff --git a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-tooltip-enabled-chromium-linux.png b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-tooltip-enabled-chromium-linux.png new file mode 100644 index 00000000000..0e8674567cd --- /dev/null +++ b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-tooltip-enabled-chromium-linux.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c000d3be4d59f1baf63415abecfe1ffb470ef3e9068876fd5c0d1ee0b12f6c0 +size 1336 From 9912e023f7390bedb7c0c005448377e48294a853 Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 25 Jun 2026 13:14:27 +0200 Subject: [PATCH 6/6] test(vscode): remove obsolete sandbox icon baselines --- .../sandbox-network-420-chromium-linux.png | 3 - ...ox-network-disabled-420-chromium-linux.png | 3 - .../src/stories/prompt-input.stories.tsx | 63 ++----------------- 3 files changed, 4 insertions(+), 65 deletions(-) delete mode 100644 packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-420-chromium-linux.png delete mode 100644 packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-disabled-420-chromium-linux.png diff --git a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-420-chromium-linux.png b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-420-chromium-linux.png deleted file mode 100644 index d067e1bb2e9..00000000000 --- a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-420-chromium-linux.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c5488a16adcc99925907b0f517c980a8f7c3ef322a32933c8b691dd272317bd9 -size 9224 diff --git a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-disabled-420-chromium-linux.png b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-disabled-420-chromium-linux.png deleted file mode 100644 index c6f284b05ec..00000000000 --- a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/sandbox-network-disabled-420-chromium-linux.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e82e3c01137dc7dffb1b43ccaa96cf8180429aa847cc5efa4901ebacf3d8461f -size 9121 diff --git a/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx b/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx index 4ea889d4832..438157fa6cb 100644 --- a/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx +++ b/packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx @@ -15,7 +15,6 @@ import type { Meta, StoryObj } from "storybook-solidjs-vite" import { type ParentComponent } from "solid-js" import { StoryProviders, mockSessionValue } from "./StoryProviders" import { SessionContext } from "../context/session" -import { ServerContext } from "../context/server" import { PromptInput, SandboxTooltipContent } from "../components/chat/PromptInput" import { Button } from "@kilocode/kilo-ui/button" import { Icon } from "@kilocode/kilo-ui/icon" @@ -29,17 +28,10 @@ const agents = [ const noop = () => {} -const PromptProviders: ParentComponent<{ - variants?: boolean - modelOverride?: boolean - sandboxNetwork?: boolean - sandbox?: boolean -}> = (props) => { +const PromptProviders: ParentComponent<{ variants?: boolean; modelOverride?: boolean }> = (props) => { const base = mockSessionValue({ status: "idle" }) const session = { ...base, - currentSessionID: () => (props.sandboxNetwork ? undefined : base.currentSessionID()), - currentSession: () => (props.sandboxNetwork ? undefined : base.currentSession()), agents: () => agents, selectedAgent: () => "code", variantList: () => (props.variants ? ["low", "medium", "high"] : []), @@ -47,41 +39,12 @@ const PromptProviders: ParentComponent<{ hasModelOverride: () => props.modelOverride ?? false, clearModelOverride: noop, } - const server = { - connectionState: () => "connected", - serverInfo: () => undefined, - extensionVersion: () => undefined, - errorMessage: () => undefined, - errorDetails: () => undefined, - isConnected: () => true, - profileData: () => null, - deviceAuth: () => ({ status: "idle" }), - startLogin: noop, - goToLogin: noop, - vscodeLanguage: () => undefined, - languageOverride: () => undefined, - workspaceDirectory: () => "/workspace", - gitInstalled: () => true, - } + return ( - + {/* overflow:hidden prevents margin-collapse so top/bottom borders are captured in screenshots */}
- - {props.sandboxNetwork ? ( - {props.children} - ) : ( - props.children - )} - + {props.children}
) @@ -120,24 +83,6 @@ export const Default200: Story = { ), } -export const SandboxNetwork420: Story = { - name: "Sandbox with network restriction — 420px", - render: () => ( - - - - ), -} - -export const SandboxNetworkDisabled420: Story = { - name: "Disabled sandbox with network restriction — 420px", - render: () => ( - - - - ), -} - export const SandboxTooltipEnabled: Story = { name: "Sandbox tooltip — enabled", render: () => (