diff --git a/.changeset/code-edit-block-display.md b/.changeset/code-edit-block-display.md new file mode 100644 index 00000000000..60ae7b9fa70 --- /dev/null +++ b/.changeset/code-edit-block-display.md @@ -0,0 +1,5 @@ +--- +"kilo-code": patch +--- + +Support opening code edit and diff blocks expanded by default in the VS Code chat. diff --git a/packages/kilo-ui/src/components/message-part.tsx b/packages/kilo-ui/src/components/message-part.tsx index fac5087ec61..386be64b1e4 100644 --- a/packages/kilo-ui/src/components/message-part.tsx +++ b/packages/kilo-ui/src/components/message-part.tsx @@ -348,7 +348,7 @@ function renderable(part: PartType, showReasoningSummaries = true) { function toolDefaultOpen(tool: string, shell = false, edit = false) { if (tool === "bash") return shell if (tool === "edit" || tool === "write") return edit - if (tool === "apply_patch") return false + if (tool === "apply_patch") return edit } function partDefaultOpen(part: PartType, shell = false, edit = false) { diff --git a/packages/kilo-vscode/webview-ui/src/components/chat/AssistantMessage.tsx b/packages/kilo-vscode/webview-ui/src/components/chat/AssistantMessage.tsx index 92fb514d580..5561f46e609 100644 --- a/packages/kilo-vscode/webview-ui/src/components/chat/AssistantMessage.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/chat/AssistantMessage.tsx @@ -32,6 +32,13 @@ import { SuggestBar } from "./SuggestBar" // We render these ourselves via ToolRegistry when they complete, // so the user can see what the AI set up. export const UPSTREAM_SUPPRESSED_TOOLS = new Set(["todowrite", "todoread"]) +const EDIT_TOOLS = new Set(["edit", "write", "apply_patch"]) + +function editOpen(part: SDKPart, open: boolean) { + if (part.type !== "tool") return undefined + const tool = (part as unknown as ToolPart).tool + return EDIT_TOOLS.has(tool) ? open : undefined +} /** Extract plan path from a completed plan_exit tool part. */ function planExitInfo(part: SDKPart): { plan: string } | undefined { @@ -175,6 +182,7 @@ export const AssistantMessage: Component = (props) => { const display = useDisplay() const { config } = useConfig() const open = createMemo(() => config().terminal_command_display !== "collapsed") + const edit = createMemo(() => config().code_edit_display === "expanded") const parts = createMemo(() => { const stored = data.store.part?.[props.message.id] @@ -242,6 +250,7 @@ export const AssistantMessage: Component = (props) => { part={part} message={props.message as SDKMessage} showAssistantCopyPartID={props.showAssistantCopyPartID} + defaultOpen={editOpen(part, edit())} reasoningAutoCollapse={display.reasoningAutoCollapse()} feedback={props.feedback} animate={ diff --git a/packages/kilo-vscode/webview-ui/src/components/settings/DisplayTab.tsx b/packages/kilo-vscode/webview-ui/src/components/settings/DisplayTab.tsx index 978d295e18f..bb7c83cfef1 100644 --- a/packages/kilo-vscode/webview-ui/src/components/settings/DisplayTab.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/settings/DisplayTab.tsx @@ -6,7 +6,7 @@ import { Switch } from "@kilocode/kilo-ui/switch" import { useConfig } from "../../context/config" import { useDisplay } from "../../context/display" import { useLanguage } from "../../context/language" -import type { TerminalCommandDisplay } from "../../types/messages" +import type { CodeEditDisplay, TerminalCommandDisplay } from "../../types/messages" import SettingsRow from "./SettingsRow" interface LayoutOption { @@ -24,6 +24,11 @@ const TERMINAL_OPTIONS: LayoutOption[] = [ { value: "collapsed", labelKey: "settings.display.terminalCommand.collapsed" }, ] +const CODE_EDIT_OPTIONS: LayoutOption[] = [ + { value: "expanded", labelKey: "settings.display.codeEdit.expanded" }, + { value: "collapsed", labelKey: "settings.display.codeEdit.collapsed" }, +] + const DisplayTab: Component = () => { const { config, updateConfig } = useConfig() const display = useDisplay() @@ -102,7 +107,6 @@ const DisplayTab: Component = () => { o.value === (config().code_edit_display ?? "collapsed"))} + value={(o) => o.value} + label={(o) => language.t(o.labelKey)} + onSelect={(o) => { + if (!o) return + const next = o.value as CodeEditDisplay + if (next === (config().code_edit_display ?? "collapsed")) return + updateConfig({ code_edit_display: next }) + }} + variant="secondary" + size="small" + triggerVariant="settings" + /> + ) diff --git a/packages/kilo-vscode/webview-ui/src/components/settings/settings-io.ts b/packages/kilo-vscode/webview-ui/src/components/settings/settings-io.ts index 968ed262843..f65dea30021 100644 --- a/packages/kilo-vscode/webview-ui/src/components/settings/settings-io.ts +++ b/packages/kilo-vscode/webview-ui/src/components/settings/settings-io.ts @@ -36,6 +36,7 @@ export const KNOWN_KEYS: ReadonlyArray = [ "layout", "auto_collapse_reasoning", "terminal_command_display", + "code_edit_display", "indexing", "experimental", ] diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts index 8efc377373a..f9ff0d9668a 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts @@ -1457,6 +1457,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "النموذج الافتراضي", "settings.providers.defaultModel.description": "النموذج الأساسي للمحادثات", "settings.providers.smallModel.title": "نموذج صغير", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/br.ts b/packages/kilo-vscode/webview-ui/src/i18n/br.ts index 8d43d89d5fc..453b3e557e1 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/br.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/br.ts @@ -1500,6 +1500,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "Modelo padrão", "settings.providers.defaultModel.description": "Modelo principal para conversas", "settings.providers.smallModel.title": "Modelo pequeno", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts index 2eea2d47c91..0044cc1428d 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts @@ -1496,6 +1496,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "Zadani model", "settings.providers.defaultModel.description": "Primarni model za razgovore", "settings.providers.smallModel.title": "Mali model", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/da.ts b/packages/kilo-vscode/webview-ui/src/i18n/da.ts index 5a43303a475..8a13d004c4b 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/da.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/da.ts @@ -1484,6 +1484,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "Standardmodel", "settings.providers.defaultModel.description": "Primær model til samtaler", "settings.providers.smallModel.title": "Lille model", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/de.ts b/packages/kilo-vscode/webview-ui/src/i18n/de.ts index 4f75a7b1ec8..df2a7429e28 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/de.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/de.ts @@ -1514,6 +1514,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "Standardmodell", "settings.providers.defaultModel.description": "Primäres Modell für Gespräche", "settings.providers.smallModel.title": "Kleines Modell", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/en.ts b/packages/kilo-vscode/webview-ui/src/i18n/en.ts index 34e68c4a24d..b868d1a41e1 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/en.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/en.ts @@ -1471,6 +1471,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "Default Model", "settings.providers.defaultModel.description": "Primary model for conversations", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/es.ts b/packages/kilo-vscode/webview-ui/src/i18n/es.ts index 5a54e764b35..1e013683d87 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/es.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/es.ts @@ -1507,6 +1507,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "Modelo predeterminado", "settings.providers.defaultModel.description": "Modelo principal para conversaciones", "settings.providers.smallModel.title": "Modelo pequeño", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts index e91fde4a4d1..ec4ee87592d 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts @@ -1523,6 +1523,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "Modèle par défaut", "settings.providers.defaultModel.description": "Modèle principal pour les conversations", "settings.providers.smallModel.title": "Petit modèle", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/it.ts b/packages/kilo-vscode/webview-ui/src/i18n/it.ts index df4bd6fd737..8cd64e9ad63 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/it.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/it.ts @@ -1318,6 +1318,10 @@ export const dict = { "settings.display.terminalCommand.description": "Scegli se i blocchi comando terminale iniziano espansi o compressi.", "settings.display.terminalCommand.expanded": "Espansi", "settings.display.terminalCommand.collapsed": "Compressi", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "Modello predefinito", "settings.providers.defaultModel.description": "Modello principale per le conversazioni", "settings.providers.smallModel.title": "Modello leggero", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts index a48278fcd37..664bbe7012c 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts @@ -1480,6 +1480,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "デフォルトモデル", "settings.providers.defaultModel.description": "会話のプライマリモデル", "settings.providers.smallModel.title": "小型モデル", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts index 0b15033f46a..c67c3cf21b8 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts @@ -1465,6 +1465,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "기본 모델", "settings.providers.defaultModel.description": "대화의 기본 모델", "settings.providers.smallModel.title": "소형 모델", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts index a9796ac4f1d..c940f526289 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts @@ -1461,6 +1461,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "Standaard Model", "settings.providers.defaultModel.description": "Primair model voor gesprekken", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/no.ts b/packages/kilo-vscode/webview-ui/src/i18n/no.ts index 549b37b8932..fc1b03e3822 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/no.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/no.ts @@ -1483,6 +1483,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "Standardmodell", "settings.providers.defaultModel.description": "Primær modell for samtaler", "settings.providers.smallModel.title": "Liten modell", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts index d22b5fbebdf..de8639c8173 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts @@ -1491,6 +1491,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "Domyślny model", "settings.providers.defaultModel.description": "Główny model do rozmów", "settings.providers.smallModel.title": "Mały model", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts index 42e513222a6..9a377843d05 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts @@ -1490,6 +1490,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "Модель по умолчанию", "settings.providers.defaultModel.description": "Основная модель для разговоров", "settings.providers.smallModel.title": "Малая модель", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/th.ts b/packages/kilo-vscode/webview-ui/src/i18n/th.ts index 824ed3f3b6c..1b36735c834 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/th.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/th.ts @@ -1464,6 +1464,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "โมเดลเริ่มต้น", "settings.providers.defaultModel.description": "โมเดลหลักสำหรับบทสนทนา", "settings.providers.smallModel.title": "โมเดลขนาดเล็ก", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts index fee9133fb1c..bdc51aec5ab 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts @@ -1450,6 +1450,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "Varsayılan Model", "settings.providers.defaultModel.description": "Sohbetler için birincil model", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts index ab6723f4876..d6116e30ebd 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts @@ -1450,6 +1450,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "Модель за замовчуванням", "settings.providers.defaultModel.description": "Основна модель для чатів", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts index 3272e63c32e..3acdadb5f5c 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts @@ -1429,6 +1429,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "默认模型", "settings.providers.defaultModel.description": "对话的主要模型", "settings.providers.smallModel.title": "小模型", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts index 3f22be535aa..8cd3c173675 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts @@ -1399,6 +1399,10 @@ export const dict = { "settings.display.terminalCommand.description": "Choose whether terminal command blocks start expanded or collapsed.", "settings.display.terminalCommand.expanded": "Expanded", "settings.display.terminalCommand.collapsed": "Collapsed", + "settings.display.codeEdit.title": "Code Edit Blocks", + "settings.display.codeEdit.description": "Choose whether code edit and diff blocks start expanded or collapsed.", + "settings.display.codeEdit.expanded": "Expanded", + "settings.display.codeEdit.collapsed": "Collapsed", "settings.providers.defaultModel.title": "預設模型", "settings.providers.defaultModel.description": "對話的主要模型", "settings.providers.smallModel.title": "小模型", diff --git a/packages/kilo-vscode/webview-ui/src/types/messages/config.ts b/packages/kilo-vscode/webview-ui/src/types/messages/config.ts index bd47ed509b8..85b3f465e87 100644 --- a/packages/kilo-vscode/webview-ui/src/types/messages/config.ts +++ b/packages/kilo-vscode/webview-ui/src/types/messages/config.ts @@ -110,6 +110,7 @@ export interface BrowserSettings { } export type TerminalCommandDisplay = "expanded" | "collapsed" +export type CodeEditDisplay = "expanded" | "collapsed" export interface Config { permission?: PermissionConfig @@ -129,6 +130,7 @@ export interface Config { snapshot?: boolean remote_control?: boolean terminal_command_display?: TerminalCommandDisplay + code_edit_display?: CodeEditDisplay share?: "manual" | "auto" | "disabled" username?: string watcher?: WatcherConfig diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index a54acf89a38..d26e530329e 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -223,6 +223,10 @@ export const Info = Schema.Struct({ terminal_command_display: Schema.optional(Schema.Literals(["expanded", "collapsed"])).annotate({ description: "Controls whether terminal command blocks are expanded or collapsed by default in the VS Code chat UI", }), + code_edit_display: Schema.optional(Schema.Literals(["expanded", "collapsed"])).annotate({ + description: + "Controls whether code edit and diff blocks are expanded or collapsed by default in the VS Code chat UI", + }), model: Schema.optional(Schema.NullOr(ConfigModelID)).annotate({ description: "Model to use in the format of provider/model, eg anthropic/claude-2", }), diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index 90de7fa3010..90d58ef4b0d 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -1370,6 +1370,7 @@ export type Config = { auto_collapse_reasoning?: boolean indexing?: IndexingConfig terminal_command_display?: "expanded" | "collapsed" + code_edit_display?: "expanded" | "collapsed" model?: string small_model?: string subagent_model?: string diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index c383071c749..aee644f19b6 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -14179,9 +14179,6 @@ "schemas": { "Event": { "anyOf": [ - { - "$ref": "#/components/schemas/EventServerInstanceDisposed" - }, { "$ref": "#/components/schemas/EventServerConnected" }, @@ -14191,6 +14188,27 @@ { "$ref": "#/components/schemas/EventGlobalConfigUpdated" }, + { + "$ref": "#/components/schemas/Event.tui.prompt.append" + }, + { + "$ref": "#/components/schemas/Event.tui.command.execute" + }, + { + "$ref": "#/components/schemas/EventTuiToastShow1" + }, + { + "$ref": "#/components/schemas/Event.tui.session.select" + }, + { + "$ref": "#/components/schemas/EventKilocodeAgent_managerStart" + }, + { + "$ref": "#/components/schemas/EventIndexingStatus" + }, + { + "$ref": "#/components/schemas/EventServerInstanceDisposed" + }, { "$ref": "#/components/schemas/EventFileEdited" }, @@ -14212,18 +14230,6 @@ { "$ref": "#/components/schemas/EventLspUpdated" }, - { - "$ref": "#/components/schemas/Event.tui.prompt.append" - }, - { - "$ref": "#/components/schemas/Event.tui.command.execute" - }, - { - "$ref": "#/components/schemas/EventTuiToastShow1" - }, - { - "$ref": "#/components/schemas/Event.tui.session.select" - }, { "$ref": "#/components/schemas/EventMcpToolsChanged" }, @@ -14302,9 +14308,6 @@ { "$ref": "#/components/schemas/EventProjectUpdated" }, - { - "$ref": "#/components/schemas/EventKilocodeAgent_managerStart" - }, { "$ref": "#/components/schemas/EventVcsBranchUpdated" }, @@ -14436,9 +14439,6 @@ }, { "$ref": "#/components/schemas/EventSessionNextCompactionEnded" - }, - { - "$ref": "#/components/schemas/EventIndexingStatus" } ] }, @@ -14519,6 +14519,170 @@ } ] }, + "Event.tui.prompt.append": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": ["tui.prompt.append"] + }, + "properties": { + "type": "object", + "properties": { + "text": { + "type": "string" + } + }, + "required": ["text"], + "additionalProperties": false + } + }, + "required": ["id", "type", "properties"], + "additionalProperties": false + }, + "Event.tui.command.execute": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": ["tui.command.execute"] + }, + "properties": { + "type": "object", + "properties": { + "command": { + "anyOf": [ + { + "type": "string", + "enum": [ + "session.list", + "session.new", + "session.share", + "session.interrupt", + "session.compact", + "session.page.up", + "session.page.down", + "session.line.up", + "session.line.down", + "session.half.page.up", + "session.half.page.down", + "session.first", + "session.last", + "prompt.clear", + "prompt.submit", + "agent.cycle" + ] + }, + { + "type": "string" + } + ] + } + }, + "required": ["command"], + "additionalProperties": false + } + }, + "required": ["id", "type", "properties"], + "additionalProperties": false + }, + "Event.tui.toast.show": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": ["tui.toast.show"] + }, + "properties": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "message": { + "type": "string" + }, + "variant": { + "type": "string", + "enum": ["info", "success", "warning", "error"] + }, + "duration": { + "type": "integer", + "exclusiveMinimum": 0 + } + }, + "required": ["message", "variant"], + "additionalProperties": false + } + }, + "required": ["id", "type", "properties"], + "additionalProperties": false + }, + "Event.tui.session.select": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": ["tui.session.select"] + }, + "properties": { + "type": "object", + "properties": { + "sessionID": { + "type": "string", + "pattern": "^ses", + "description": "Session ID to navigate to" + } + }, + "required": ["sessionID"], + "additionalProperties": false + } + }, + "required": ["id", "type", "properties"], + "additionalProperties": false + }, + "IndexingStatusState": { + "type": "string", + "enum": ["Disabled", "In Progress", "Complete", "Error", "Standby"] + }, + "IndexingStatus": { + "type": "object", + "properties": { + "state": { + "$ref": "#/components/schemas/IndexingStatusState" + }, + "message": { + "type": "string" + }, + "processedFiles": { + "type": "integer", + "minimum": 0 + }, + "totalFiles": { + "type": "integer", + "minimum": 0 + }, + "percent": { + "type": "integer", + "minimum": 0, + "maximum": 100 + } + }, + "required": ["state", "message", "processedFiles", "totalFiles", "percent"], + "additionalProperties": false + }, "QuestionOption": { "type": "object", "properties": { @@ -14661,140 +14825,6 @@ "required": ["sessionID", "requestID"], "additionalProperties": false }, - "Event.tui.prompt.append": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": ["tui.prompt.append"] - }, - "properties": { - "type": "object", - "properties": { - "text": { - "type": "string" - } - }, - "required": ["text"], - "additionalProperties": false - } - }, - "required": ["id", "type", "properties"], - "additionalProperties": false - }, - "Event.tui.command.execute": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": ["tui.command.execute"] - }, - "properties": { - "type": "object", - "properties": { - "command": { - "anyOf": [ - { - "type": "string", - "enum": [ - "session.list", - "session.new", - "session.share", - "session.interrupt", - "session.compact", - "session.page.up", - "session.page.down", - "session.line.up", - "session.line.down", - "session.half.page.up", - "session.half.page.down", - "session.first", - "session.last", - "prompt.clear", - "prompt.submit", - "agent.cycle" - ] - }, - { - "type": "string" - } - ] - } - }, - "required": ["command"], - "additionalProperties": false - } - }, - "required": ["id", "type", "properties"], - "additionalProperties": false - }, - "Event.tui.toast.show": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": ["tui.toast.show"] - }, - "properties": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "message": { - "type": "string" - }, - "variant": { - "type": "string", - "enum": ["info", "success", "warning", "error"] - }, - "duration": { - "type": "integer", - "exclusiveMinimum": 0 - } - }, - "required": ["message", "variant"], - "additionalProperties": false - } - }, - "required": ["id", "type", "properties"], - "additionalProperties": false - }, - "Event.tui.session.select": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": ["tui.session.select"] - }, - "properties": { - "type": "object", - "properties": { - "sessionID": { - "type": "string", - "pattern": "^ses", - "description": "Session ID to navigate to" - } - }, - "required": ["sessionID"], - "additionalProperties": false - } - }, - "required": ["id", "type", "properties"], - "additionalProperties": false - }, "SessionNetworkWait": { "type": "object", "properties": { @@ -16723,36 +16753,6 @@ "required": ["text"], "additionalProperties": false }, - "IndexingStatusState": { - "type": "string", - "enum": ["Disabled", "In Progress", "Complete", "Error", "Standby"] - }, - "IndexingStatus": { - "type": "object", - "properties": { - "state": { - "$ref": "#/components/schemas/IndexingStatusState" - }, - "message": { - "type": "string" - }, - "processedFiles": { - "type": "integer", - "minimum": 0 - }, - "totalFiles": { - "type": "integer", - "minimum": 0 - }, - "percent": { - "type": "integer", - "minimum": 0, - "maximum": 100 - } - }, - "required": ["state", "message", "processedFiles", "totalFiles", "percent"], - "additionalProperties": false - }, "GlobalEvent": { "type": "object", "properties": { @@ -16767,9 +16767,6 @@ }, "payload": { "anyOf": [ - { - "$ref": "#/components/schemas/EventServerInstanceDisposed" - }, { "$ref": "#/components/schemas/EventServerConnected" }, @@ -16779,6 +16776,27 @@ { "$ref": "#/components/schemas/EventGlobalConfigUpdated" }, + { + "$ref": "#/components/schemas/Event.tui.prompt.append" + }, + { + "$ref": "#/components/schemas/Event.tui.command.execute" + }, + { + "$ref": "#/components/schemas/Event.tui.toast.show" + }, + { + "$ref": "#/components/schemas/Event.tui.session.select" + }, + { + "$ref": "#/components/schemas/EventKilocodeAgent_managerStart" + }, + { + "$ref": "#/components/schemas/EventIndexingStatus" + }, + { + "$ref": "#/components/schemas/EventServerInstanceDisposed" + }, { "$ref": "#/components/schemas/EventFileEdited" }, @@ -16800,18 +16818,6 @@ { "$ref": "#/components/schemas/EventLspUpdated" }, - { - "$ref": "#/components/schemas/Event.tui.prompt.append" - }, - { - "$ref": "#/components/schemas/Event.tui.command.execute" - }, - { - "$ref": "#/components/schemas/Event.tui.toast.show" - }, - { - "$ref": "#/components/schemas/Event.tui.session.select" - }, { "$ref": "#/components/schemas/EventMcpToolsChanged" }, @@ -16890,9 +16896,6 @@ { "$ref": "#/components/schemas/EventProjectUpdated" }, - { - "$ref": "#/components/schemas/EventKilocodeAgent_managerStart" - }, { "$ref": "#/components/schemas/EventVcsBranchUpdated" }, @@ -17025,9 +17028,6 @@ { "$ref": "#/components/schemas/EventSessionNextCompactionEnded" }, - { - "$ref": "#/components/schemas/EventIndexingStatus" - }, { "$ref": "#/components/schemas/SyncEventMessageUpdated" }, @@ -18085,6 +18085,10 @@ "type": "string", "enum": ["expanded", "collapsed"] }, + "code_edit_display": { + "type": "string", + "enum": ["expanded", "collapsed"] + }, "model": { "type": "string" }, @@ -22446,30 +22450,6 @@ "required": ["type", "name", "id", "seq", "aggregateID", "data"], "additionalProperties": false }, - "EventServerInstanceDisposed": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": ["server.instance.disposed"] - }, - "properties": { - "type": "object", - "properties": { - "directory": { - "type": "string" - } - }, - "required": ["directory"], - "additionalProperties": false - } - }, - "required": ["id", "type", "properties"], - "additionalProperties": false - }, "EventServerConnected": { "type": "object", "properties": { @@ -22524,6 +22504,109 @@ "required": ["id", "type", "properties"], "additionalProperties": false }, + "EventKilocodeAgent_managerStart": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": ["kilocode.agent_manager.start"] + }, + "properties": { + "type": "object", + "properties": { + "requestID": { + "type": "string" + }, + "sessionID": { + "type": "string", + "pattern": "^ses" + }, + "mode": { + "type": "string", + "enum": ["worktree", "local"] + }, + "versions": { + "type": "boolean" + }, + "tasks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "prompt": { + "type": "string" + }, + "name": { + "type": "string" + }, + "branchName": { + "type": "string" + } + }, + "additionalProperties": false + }, + "minItems": 1, + "maxItems": 20 + } + }, + "required": ["requestID", "sessionID", "mode", "tasks"], + "additionalProperties": false + } + }, + "required": ["id", "type", "properties"], + "additionalProperties": false + }, + "EventIndexingStatus": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": ["indexing.status"] + }, + "properties": { + "type": "object", + "properties": { + "status": { + "$ref": "#/components/schemas/IndexingStatus" + } + }, + "required": ["status"], + "additionalProperties": false + } + }, + "required": ["id", "type", "properties"], + "additionalProperties": false + }, + "EventServerInstanceDisposed": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": ["server.instance.disposed"] + }, + "properties": { + "type": "object", + "properties": { + "directory": { + "type": "string" + } + }, + "required": ["directory"], + "additionalProperties": false + } + }, + "required": ["id", "type", "properties"], + "additionalProperties": false + }, "EventFileEdited": { "type": "object", "properties": { @@ -23411,61 +23494,6 @@ "required": ["id", "type", "properties"], "additionalProperties": false }, - "EventKilocodeAgent_managerStart": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": ["kilocode.agent_manager.start"] - }, - "properties": { - "type": "object", - "properties": { - "requestID": { - "type": "string" - }, - "sessionID": { - "type": "string", - "pattern": "^ses" - }, - "mode": { - "type": "string", - "enum": ["worktree", "local"] - }, - "versions": { - "type": "boolean" - }, - "tasks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "prompt": { - "type": "string" - }, - "name": { - "type": "string" - }, - "branchName": { - "type": "string" - } - }, - "additionalProperties": false - }, - "minItems": 1, - "maxItems": 20 - } - }, - "required": ["requestID", "sessionID", "mode", "tasks"], - "additionalProperties": false - } - }, - "required": ["id", "type", "properties"], - "additionalProperties": false - }, "EventVcsBranchUpdated": { "type": "object", "properties": { @@ -25060,30 +25088,6 @@ "required": ["id", "type", "properties"], "additionalProperties": false }, - "EventIndexingStatus": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": ["indexing.status"] - }, - "properties": { - "type": "object", - "properties": { - "status": { - "$ref": "#/components/schemas/IndexingStatus" - } - }, - "required": ["status"], - "additionalProperties": false - } - }, - "required": ["id", "type", "properties"], - "additionalProperties": false - }, "SessionInfo": { "type": "object", "properties": {