From 6abcc0d071507f0b3b29c0cb986b843493594907 Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Tue, 2 Jun 2026 17:51:07 +0200 Subject: [PATCH 001/109] docs(kilo-docs): document inline session renaming --- packages/kilo-docs/pages/automate/agent-manager.md | 8 +++++++- .../kilo-docs/pages/code-with-ai/agents/chat-interface.md | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/kilo-docs/pages/automate/agent-manager.md b/packages/kilo-docs/pages/automate/agent-manager.md index edc7bacb1c..9d977ae4f7 100644 --- a/packages/kilo-docs/pages/automate/agent-manager.md +++ b/packages/kilo-docs/pages/automate/agent-manager.md @@ -136,6 +136,12 @@ Imported work stays associated with its branch or worktree and can be continued - Use session history to reopen local sessions or preview cloud sessions - Continue a cloud session locally from Agent Manager using the same extension sign-in and provider settings +### Renaming Worktrees + +Double-click a worktree name to edit its label inline. You can also right-click the worktree and choose **Rename**. Press `Enter` or click outside the field to save, or press `Escape` to cancel. + +Renaming a worktree changes only the label shown in Agent Manager. It does not rename the underlying git branch. + ## Starting Sessions From Chat Kilo can start Agent Manager sessions from chat with the `agent_manager` tool. It is available by default only in the VS Code extension because Agent Manager is an extension feature. @@ -168,7 +174,7 @@ Sections let you group worktrees into collapsible, color-coded folders in the si Multi-version worktrees (created via Multi-Version Mode) are moved together — assigning one version to a section moves all versions in the group. -### Renaming +### Renaming Sections Right-click the section header and select **Rename Section**. An inline text field appears — type the new name and press `Enter` to confirm or `Escape` to cancel. diff --git a/packages/kilo-docs/pages/code-with-ai/agents/chat-interface.md b/packages/kilo-docs/pages/code-with-ai/agents/chat-interface.md index 3708f9c809..ffa0f6da23 100644 --- a/packages/kilo-docs/pages/code-with-ai/agents/chat-interface.md +++ b/packages/kilo-docs/pages/code-with-ai/agents/chat-interface.md @@ -82,6 +82,12 @@ Run `/export` in chat, or open a local session's **History** context menu and ch Kilo builds the export from the complete local session history, not only the messages currently loaded in the chat view. +**Renaming sessions:** + +Double-click the current session title at the top of the chat to edit it inline. Press `Enter` or click outside the field to save, or press `Escape` to cancel. + +You can also rename local sessions from **History** using the edit button or the session's context menu. + {% /tab %} {% tab label="CLI" %} From df39c2cc1437ed1312e22447c61b83eb8c605c62 Mon Sep 17 00:00:00 2001 From: kirillk Date: Mon, 8 Jun 2026 14:52:59 -0400 Subject: [PATCH 002/109] feat(jetbrains): add editor tab VFS infrastructure --- .../ai/kilocode/client/vfs/KiloEditorKind.kt | 24 +++++ .../ai/kilocode/client/vfs/KiloFileEditor.kt | 25 +++++ .../kilocode/client/vfs/KiloFileEditorBase.kt | 38 ++++++++ .../client/vfs/KiloFileEditorProvider.kt | 36 ++++++++ .../kotlin/ai/kilocode/client/vfs/KiloPath.kt | 11 +++ .../ai/kilocode/client/vfs/KiloVfsManager.kt | 37 ++++++++ .../ai/kilocode/client/vfs/KiloVfsRegistry.kt | 19 ++++ .../ai/kilocode/client/vfs/KiloVirtualFile.kt | 59 ++++++++++++ .../client/vfs/KiloVirtualFileSystem.kt | 58 ++++++++++++ .../resources/kilo.jetbrains.frontend.xml | 3 + .../client/vfs/KiloFileEditorProviderTest.kt | 28 ++++++ .../kilocode/client/vfs/KiloVfsManagerTest.kt | 53 +++++++++++ .../ai/kilocode/client/vfs/KiloVfsTestBase.kt | 91 +++++++++++++++++++ .../client/vfs/KiloVirtualFileSystemTest.kt | 25 +++++ .../client/vfs/KiloVirtualFileTest.kt | 46 ++++++++++ 15 files changed, 553 insertions(+) create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloEditorKind.kt create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloFileEditor.kt create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloFileEditorBase.kt create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloFileEditorProvider.kt create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloPath.kt create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsManager.kt create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsRegistry.kt create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFile.kt create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystem.kt create mode 100644 packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloFileEditorProviderTest.kt create mode 100644 packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsManagerTest.kt create mode 100644 packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsTestBase.kt create mode 100644 packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystemTest.kt create mode 100644 packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileTest.kt diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloEditorKind.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloEditorKind.kt new file mode 100644 index 0000000000..6e6afa1b37 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloEditorKind.kt @@ -0,0 +1,24 @@ +package ai.kilocode.client.vfs + +import com.intellij.openapi.Disposable +import com.intellij.openapi.project.Project +import com.intellij.util.concurrency.annotations.RequiresEdt +import javax.swing.Icon +import javax.swing.JComponent + +interface KiloEditorKind { + val id: String + + fun title(project: Project, params: Map): String + + fun icon(project: Project, params: Map): Icon? = null + + fun presentablePath(project: Project, params: Map): String = title(project, params) + + fun isValid(project: Project, params: Map): Boolean = true + + @RequiresEdt + fun createContent(project: Project, file: KiloVirtualFile, parent: Disposable): JComponent + + fun preferredFocus(component: JComponent): JComponent? = null +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloFileEditor.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloFileEditor.kt new file mode 100644 index 0000000000..176820c8ee --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloFileEditor.kt @@ -0,0 +1,25 @@ +package ai.kilocode.client.vfs + +import com.intellij.openapi.project.Project +import com.intellij.openapi.vfs.VirtualFile +import com.intellij.util.concurrency.annotations.RequiresEdt +import javax.swing.JComponent + +class KiloFileEditor( + private val project: Project, + private val file: KiloVirtualFile, + private val kind: KiloEditorKind, +) : KiloFileEditorBase() { + private val ui: JComponent by lazy { kind.createContent(project, file, this) } + + @RequiresEdt + override fun getComponent(): JComponent = ui + + override fun getPreferredFocusedComponent(): JComponent? = kind.preferredFocus(ui) + + override fun getName(): String = kind.title(project, file.path.params) + + override fun getFile(): VirtualFile = file + + override fun isValid(): Boolean = super.isValid() && file.isValid +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloFileEditorBase.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloFileEditorBase.kt new file mode 100644 index 0000000000..c90efa7e8f --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloFileEditorBase.kt @@ -0,0 +1,38 @@ +package ai.kilocode.client.vfs + +import com.intellij.openapi.fileEditor.FileEditor +import com.intellij.openapi.fileEditor.FileEditorState +import com.intellij.openapi.fileEditor.FileEditorStateLevel +import com.intellij.openapi.util.CheckedDisposable +import com.intellij.openapi.util.UserDataHolderBase +import java.beans.PropertyChangeListener +import java.beans.PropertyChangeSupport + +abstract class KiloFileEditorBase : UserDataHolderBase(), FileEditor, CheckedDisposable { + private var disposed = false + private val support = PropertyChangeSupport(this) + + override fun isDisposed(): Boolean = disposed + + override fun dispose() { + disposed = true + } + + override fun isValid(): Boolean = !disposed + + fun firePropertyChange(prop: String, old: Boolean, new: Boolean) { + support.firePropertyChange(prop, old, new) + } + + override fun addPropertyChangeListener(listener: PropertyChangeListener) { + support.addPropertyChangeListener(listener) + } + + override fun removePropertyChangeListener(listener: PropertyChangeListener) { + support.removePropertyChangeListener(listener) + } + + override fun getState(level: FileEditorStateLevel): FileEditorState = FileEditorState.INSTANCE + override fun setState(state: FileEditorState) {} + override fun isModified(): Boolean = false +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloFileEditorProvider.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloFileEditorProvider.kt new file mode 100644 index 0000000000..51f025fd98 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloFileEditorProvider.kt @@ -0,0 +1,36 @@ +package ai.kilocode.client.vfs + +import com.intellij.openapi.components.service +import com.intellij.openapi.fileEditor.FileEditor +import com.intellij.openapi.fileEditor.FileEditorPolicy +import com.intellij.openapi.fileEditor.FileEditorProvider +import com.intellij.openapi.project.DumbAware +import com.intellij.openapi.project.Project +import com.intellij.openapi.util.Disposer +import com.intellij.openapi.vfs.VirtualFile + +class KiloFileEditorProvider : FileEditorProvider, DumbAware { + override fun accept(project: Project, file: VirtualFile): Boolean { + return file is KiloVirtualFile && service().get(file.path.kind) != null + } + + override fun acceptRequiresReadAction(): Boolean = false + + override fun createEditor(project: Project, file: VirtualFile): FileEditor { + val kilo = file as KiloVirtualFile + val kind = service().get(kilo.path.kind) ?: error("Unknown Kilo editor kind: ${kilo.path.kind}") + return KiloFileEditor(project, kilo, kind) + } + + override fun disposeEditor(editor: FileEditor) { + Disposer.dispose(editor) + } + + override fun getEditorTypeId(): String = EDITOR_TYPE_ID + + override fun getPolicy(): FileEditorPolicy = FileEditorPolicy.NONE + + companion object { + const val EDITOR_TYPE_ID = "KiloVfsEditor" + } +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloPath.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloPath.kt new file mode 100644 index 0000000000..2bfd1dc0fb --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloPath.kt @@ -0,0 +1,11 @@ +package ai.kilocode.client.vfs + +import kotlinx.serialization.Serializable + +@Serializable +data class KiloPath( + val launchId: String, + val projectHash: String, + val kind: String, + val params: Map = emptyMap(), +) diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsManager.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsManager.kt new file mode 100644 index 0000000000..8770cadd41 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsManager.kt @@ -0,0 +1,37 @@ +package ai.kilocode.client.vfs + +import com.intellij.openapi.components.Service +import com.intellij.openapi.fileEditor.FileEditorManager +import com.intellij.openapi.fileEditor.FileEditorProvider +import com.intellij.openapi.project.Project +import com.intellij.util.concurrency.annotations.RequiresEdt + +@Service(Service.Level.PROJECT) +class KiloVfsManager(private val project: Project) { + private val launchId = System.currentTimeMillis().toString() + + @RequiresEdt + fun open(kind: String, params: Map = emptyMap(), focus: Boolean = true): Boolean { + val file = file(kind, params) ?: return false + file.putUserData(FileEditorProvider.KEY, KiloFileEditorProvider()) + FileEditorManager.getInstance(project).openFile(file, focus) + return true + } + + @RequiresEdt + fun close(kind: String, params: Map = emptyMap()) { + val file = file(kind, params) ?: return + FileEditorManager.getInstance(project).closeFile(file) + } + + @RequiresEdt + fun updatePresentation(kind: String, params: Map = emptyMap()) { + val file = file(kind, params) ?: return + FileEditorManager.getInstance(project).updateFilePresentation(file) + } + + private fun file(kind: String, params: Map): KiloVirtualFile? { + val path = KiloPath(launchId, project.locationHash, kind, params) + return KiloVirtualFileSystem.getInstance().refreshAndFindFileByPath(KiloVirtualFileSystem.getInstance().getPath(path)) as? KiloVirtualFile + } +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsRegistry.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsRegistry.kt new file mode 100644 index 0000000000..374f2b600c --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsRegistry.kt @@ -0,0 +1,19 @@ +package ai.kilocode.client.vfs + +import com.intellij.openapi.components.Service +import java.util.concurrent.ConcurrentHashMap + +@Service(Service.Level.APP) +class KiloVfsRegistry { + private val kinds = ConcurrentHashMap() + + fun register(kind: KiloEditorKind) { + kinds[kind.id] = kind + } + + fun unregister(id: String) { + kinds.remove(id) + } + + fun get(id: String): KiloEditorKind? = kinds[id] +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFile.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFile.kt new file mode 100644 index 0000000000..a6861a6448 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFile.kt @@ -0,0 +1,59 @@ +@file:Suppress("LeakingThis") + +package ai.kilocode.client.vfs + +import com.intellij.openapi.components.service +import com.intellij.openapi.fileEditor.FileEditorManagerKeys +import com.intellij.openapi.fileTypes.FileType +import com.intellij.openapi.fileTypes.FileTypes +import com.intellij.openapi.project.Project +import com.intellij.openapi.vfs.VirtualFilePathWrapper +import com.intellij.openapi.vfs.VirtualFileWithoutContent +import com.intellij.testFramework.LightVirtualFileBase +import java.io.InputStream +import java.io.OutputStream + +class KiloVirtualFile( + val project: Project, + val path: KiloPath, +) : LightVirtualFileBase("", null, 0), VirtualFileWithoutContent, VirtualFilePathWrapper { + init { + putUserData(FileEditorManagerKeys.REOPEN_WINDOW, false) + putUserData(FileEditorManagerKeys.FORBID_TAB_SPLIT, true) + isWritable = false + } + + override fun getFileSystem(): KiloVirtualFileSystem = KiloVirtualFileSystem.getInstance() + + override fun getFileType(): FileType = FileTypes.UNKNOWN + + override fun getPath(): String = fileSystem.getPath(path) + + override fun getName(): String = kind()?.title(project, path.params) ?: path.kind + + override fun getPresentableName(): String = name + + override fun getPresentablePath(): String = kind()?.presentablePath(project, path.params) ?: name + + override fun enforcePresentableName(): Boolean = true + + override fun isValid(): Boolean { + val kind = kind() ?: return false + return !project.isDisposed && kind.isValid(project, path.params) + } + + override fun getLength(): Long = 0 + override fun contentsToByteArray(): ByteArray = throw UnsupportedOperationException() + override fun getInputStream(): InputStream = throw UnsupportedOperationException() + override fun getOutputStream(requestor: Any?, newModificationStamp: Long, newTimeStamp: Long): OutputStream = throw UnsupportedOperationException() + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other !is KiloVirtualFile) return false + return project == other.project && path == other.path + } + + override fun hashCode(): Int = 31 * project.hashCode() + path.hashCode() + + private fun kind(): KiloEditorKind? = service().get(path.kind) +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystem.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystem.kt new file mode 100644 index 0000000000..1e9189a9ae --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystem.kt @@ -0,0 +1,58 @@ +package ai.kilocode.client.vfs + +import com.intellij.openapi.components.service +import com.intellij.openapi.diagnostic.logger +import com.intellij.openapi.project.Project +import com.intellij.openapi.project.ProjectManager +import com.intellij.openapi.vfs.DeprecatedVirtualFileSystem +import com.intellij.openapi.vfs.NonPhysicalFileSystem +import com.intellij.openapi.vfs.VirtualFile +import com.intellij.openapi.vfs.VirtualFileManager +import com.intellij.openapi.vfs.VirtualFilePathWrapper +import kotlinx.serialization.json.Json + +class KiloVirtualFileSystem : DeprecatedVirtualFileSystem(), NonPhysicalFileSystem { + fun getPath(path: KiloPath): String = json.encodeToString(KiloPath.serializer(), path) + + fun findOrCreateFile(project: Project, path: KiloPath): VirtualFile? { + service().get(path.kind) ?: return null + return KiloVirtualFile(project, path) + } + + override fun findFileByPath(path: String): VirtualFile? { + val parsed = decode(path) ?: return null + val project = ProjectManager.getInstance().openProjects.find { it.locationHash == parsed.projectHash } ?: return null + return findOrCreateFile(project, parsed) + } + + override fun refreshAndFindFileByPath(path: String): VirtualFile? = findFileByPath(path) + + override fun extractPresentableUrl(path: String): String { + return (refreshAndFindFileByPath(path) as? VirtualFilePathWrapper)?.presentablePath ?: path + } + + override fun refresh(asynchronous: Boolean) {} + + override fun getProtocol(): String = PROTOCOL + + private fun decode(path: String): KiloPath? { + return try { + json.decodeFromString(KiloPath.serializer(), path) + } catch (err: Exception) { + log.warn("Cannot deserialize $path", err) + null + } + } + + companion object { + const val PROTOCOL = "kilo" + + private val json = Json + private val log = logger() + private val fallback = KiloVirtualFileSystem() + + fun getInstance(): KiloVirtualFileSystem { + return VirtualFileManager.getInstance().getFileSystem(PROTOCOL) as? KiloVirtualFileSystem ?: fallback + } + } +} diff --git a/packages/kilo-jetbrains/frontend/src/main/resources/kilo.jetbrains.frontend.xml b/packages/kilo-jetbrains/frontend/src/main/resources/kilo.jetbrains.frontend.xml index de1f491c9a..32f94e0a22 100644 --- a/packages/kilo-jetbrains/frontend/src/main/resources/kilo.jetbrains.frontend.xml +++ b/packages/kilo-jetbrains/frontend/src/main/resources/kilo.jetbrains.frontend.xml @@ -20,6 +20,9 @@ icon="/icons/kilo.svg" factoryClass="ai.kilocode.client.KiloToolWindowFactory"/> + + + ().unregister(KiloVfsTestKind.ID) + assertFalse(provider.accept(project, file)) + } +} diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsManagerTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsManagerTest.kt new file mode 100644 index 0000000000..531b2e2e1f --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsManagerTest.kt @@ -0,0 +1,53 @@ +package ai.kilocode.client.vfs + +import com.intellij.openapi.components.service +import com.intellij.openapi.fileEditor.FileEditorManager +import com.intellij.ui.components.JBLabel +import com.intellij.util.ui.UIUtil + +class KiloVfsManagerTest : KiloVfsTestBase() { + fun testOpenUsesRealFileEditorManager() { + val opened = edtValue { + project.service().open(KiloVfsTestKind.ID, mapOf("id" to "11")) + } + edt { UIUtil.dispatchAllInvocationEvents() } + + val files = FileEditorManager.getInstance(project).openFiles.filterIsInstance() + val editor = FileEditorManager.getInstance(project).selectedEditor as KiloFileEditor + val component = editor.component as JBLabel + + assertTrue(opened) + assertEquals(1, files.size) + assertEquals(KiloVfsTestKind.ID, files.single().path.kind) + assertEquals("11", files.single().path.params["id"]) + assertSame(kind.components.single(), component) + assertEquals("content:11", component.text) + } + + fun testOpeningSamePathDoesNotDuplicate() { + edt { + project.service().open(KiloVfsTestKind.ID, mapOf("id" to "12")) + project.service().open(KiloVfsTestKind.ID, mapOf("id" to "12")) + UIUtil.dispatchAllInvocationEvents() + } + + val files = FileEditorManager.getInstance(project).openFiles.filterIsInstance() + assertEquals(1, files.size) + } + + fun testCloseDisposesKindDisposable() { + edt { + project.service().open(KiloVfsTestKind.ID, mapOf("id" to "13")) + FileEditorManager.getInstance(project).selectedEditor?.component + UIUtil.dispatchAllInvocationEvents() + } + assertFalse(kind.disposables.single().disposed) + + edt { + project.service().close(KiloVfsTestKind.ID, mapOf("id" to "13")) + UIUtil.dispatchAllInvocationEvents() + } + + assertTrue(kind.disposables.single().disposed) + } +} diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsTestBase.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsTestBase.kt new file mode 100644 index 0000000000..9e345dad72 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsTestBase.kt @@ -0,0 +1,91 @@ +package ai.kilocode.client.vfs + +import com.intellij.openapi.Disposable +import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.components.service +import com.intellij.openapi.fileEditor.FileEditorManager +import com.intellij.openapi.fileEditor.FileEditorProvider +import com.intellij.openapi.util.Disposer +import com.intellij.testFramework.fixtures.BasePlatformTestCase +import com.intellij.ui.components.JBLabel +import com.intellij.util.ui.UIUtil +import javax.swing.JComponent + +abstract class KiloVfsTestBase : BasePlatformTestCase() { + protected lateinit var kind: KiloVfsTestKind + + override fun setUp() { + super.setUp() + kind = KiloVfsTestKind() + service().register(kind) + FileEditorProvider.EP_FILE_EDITOR_PROVIDER.point.registerExtension(KiloFileEditorProvider(), myFixture.testRootDisposable) + } + + override fun tearDown() { + try { + edt { + FileEditorManager.getInstance(project).openFiles.toList().forEach { file -> + FileEditorManager.getInstance(project).closeFile(file) + } + UIUtil.dispatchAllInvocationEvents() + } + service().unregister(KiloVfsTestKind.ID) + service().unregister("missing") + } finally { + super.tearDown() + } + } + + protected fun path(params: Map = mapOf("id" to "1"), kind: String = KiloVfsTestKind.ID): KiloPath { + return KiloPath("launch", project.locationHash, kind, params) + } + + protected fun edt(block: () -> Unit) { + ApplicationManager.getApplication().invokeAndWait(block) + } + + protected fun edtValue(block: () -> T): T { + var result: T? = null + ApplicationManager.getApplication().invokeAndWait { result = block() } + @Suppress("UNCHECKED_CAST") + return result as T + } +} + +class KiloVfsTestKind : KiloEditorKind { + val components = mutableListOf() + val disposables = mutableListOf() + + override val id: String = ID + + override fun title(project: com.intellij.openapi.project.Project, params: Map): String { + return "Test ${params["id"] ?: "new"}" + } + + override fun presentablePath(project: com.intellij.openapi.project.Project, params: Map): String { + return "Kilo Test / ${params["id"] ?: "new"}" + } + + override fun isValid(project: com.intellij.openapi.project.Project, params: Map): Boolean { + return params["valid"] != "false" + } + + override fun createContent(project: com.intellij.openapi.project.Project, file: KiloVirtualFile, parent: Disposable): JComponent { + val child = TestDisposable() + Disposer.register(parent, child) + disposables.add(child) + return JBLabel("content:${file.path.params["id"] ?: "new"}").also { components.add(it) } + } + + companion object { + const val ID = "test" + } +} + +class TestDisposable : Disposable { + var disposed = false + + override fun dispose() { + disposed = true + } +} diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystemTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystemTest.kt new file mode 100644 index 0000000000..dc3390ab45 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystemTest.kt @@ -0,0 +1,25 @@ +package ai.kilocode.client.vfs + +class KiloVirtualFileSystemTest : KiloVfsTestBase() { + fun testPathRoundTripAndFindFile() { + val fs = KiloVirtualFileSystem.getInstance() + val raw = fs.getPath(path(mapOf("id" to "42", "mode" to "tab"))) + val file = fs.findFileByPath(raw) as KiloVirtualFile + + assertEquals(KiloVfsTestKind.ID, file.path.kind) + assertEquals("42", file.path.params["id"]) + assertEquals("tab", file.path.params["mode"]) + assertEquals(project, file.project) + } + + fun testUnknownKindReturnsNull() { + val fs = KiloVirtualFileSystem.getInstance() + val raw = fs.getPath(path(kind = "missing")) + + assertNull(fs.findFileByPath(raw)) + } + + fun testMalformedPathReturnsNull() { + assertNull(KiloVirtualFileSystem.getInstance().findFileByPath("not-json")) + } +} diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileTest.kt new file mode 100644 index 0000000000..6ad45e4388 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileTest.kt @@ -0,0 +1,46 @@ +package ai.kilocode.client.vfs + +import com.intellij.openapi.components.service +import com.intellij.openapi.fileEditor.FileEditorManagerKeys + +class KiloVirtualFileTest : KiloVfsTestBase() { + fun testContentlessPresentationAndUserData() { + val file = KiloVirtualFile(project, path(mapOf("id" to "7"))) + val err = try { + file.contentsToByteArray() + null + } catch (err: UnsupportedOperationException) { + err + } + + assertNotNull(err) + assertFalse(file.isWritable) + assertEquals(false, file.getUserData(FileEditorManagerKeys.REOPEN_WINDOW)) + assertEquals(true, file.getUserData(FileEditorManagerKeys.FORBID_TAB_SPLIT)) + assertEquals("Test 7", file.name) + assertEquals("Test 7", file.presentableName) + assertEquals("Kilo Test / 7", file.presentablePath) + } + + fun testValueEqualityUsesProjectAndPath() { + val one = KiloVirtualFile(project, path(mapOf("id" to "same"))) + val two = KiloVirtualFile(project, path(mapOf("id" to "same"))) + val other = KiloVirtualFile(project, path(mapOf("id" to "other"))) + + assertEquals(one, two) + assertEquals(one.hashCode(), two.hashCode()) + assertNotSame(one, two) + assertFalse(one == other) + } + + fun testValidityReflectsProjectKindAndParams() { + val valid = KiloVirtualFile(project, path(mapOf("id" to "1"))) + val invalid = KiloVirtualFile(project, path(mapOf("id" to "1", "valid" to "false"))) + + assertTrue(valid.isValid) + assertFalse(invalid.isValid) + + service().unregister(KiloVfsTestKind.ID) + assertFalse(valid.isValid) + } +} From a8b127e0ca8a7f29a11d03e548e78d084ccc3aa6 Mon Sep 17 00:00:00 2001 From: kirillk Date: Mon, 8 Jun 2026 17:07:45 -0400 Subject: [PATCH 003/109] feat(jetbrains): support prompt file attachments --- .changeset/jetbrains-prompt-attachments.md | 5 + .../render-jetbrains-attachment-cards.md | 5 + .../kilocode/backend/cli/KiloCliDataParser.kt | 18 +- .../backend/cli/ChatDtoSerializationTest.kt | 29 +- .../backend/cli/ChatLogSummaryTest.kt | 20 ++ .../backend/cli/KiloCliDataParserTest.kt | 69 +++++ .../ai/kilocode/client/session/SessionUi.kt | 31 ++- .../session/controller/SessionController.kt | 33 ++- .../kilocode/client/session/model/Message.kt | 7 + .../client/session/model/PromptAttachment.kt | 52 ++++ .../client/session/model/SessionModel.kt | 14 + .../session/ui/attachment/AttachmentCard.kt | 254 ++++++++++++++++++ .../client/session/ui/model/ModelPicker.kt | 1 + .../ui/prompt/PromptAttachmentStrip.kt | 89 ++++++ .../client/session/ui/prompt/PromptPanel.kt | 122 ++++++++- .../client/session/ui/style/SessionUiStyle.kt | 9 + .../client/session/views/AttachmentView.kt | 70 +++++ .../client/session/views/ViewFactory.kt | 3 + .../resources/messages/KiloBundle.properties | 5 + .../session/controller/PromptLifecycleTest.kt | 21 ++ .../client/session/model/SessionModelTest.kt | 40 +++ .../client/session/ui/PromptPanelTest.kt | 105 ++++++-- .../client/session/ui/SessionUiUpdateTest.kt | 48 ++++ .../kotlin/ai/kilocode/log/ChatLogSummary.kt | 11 +- .../kotlin/ai/kilocode/rpc/dto/ChatDto.kt | 8 +- 25 files changed, 1022 insertions(+), 47 deletions(-) create mode 100644 .changeset/jetbrains-prompt-attachments.md create mode 100644 .changeset/render-jetbrains-attachment-cards.md create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/PromptAttachment.kt create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptAttachmentStrip.kt create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/AttachmentView.kt diff --git a/.changeset/jetbrains-prompt-attachments.md b/.changeset/jetbrains-prompt-attachments.md new file mode 100644 index 0000000000..efde818645 --- /dev/null +++ b/.changeset/jetbrains-prompt-attachments.md @@ -0,0 +1,5 @@ +--- +"@kilocode/kilo-jetbrains": patch +--- + +Support sending file and image attachments from the JetBrains chat prompt. diff --git a/.changeset/render-jetbrains-attachment-cards.md b/.changeset/render-jetbrains-attachment-cards.md new file mode 100644 index 0000000000..fc26c664e3 --- /dev/null +++ b/.changeset/render-jetbrains-attachment-cards.md @@ -0,0 +1,5 @@ +--- +"@kilocode/kilo-jetbrains": patch +--- + +Render file attachments as attachment cards in JetBrains prompts and session history. diff --git a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/cli/KiloCliDataParser.kt b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/cli/KiloCliDataParser.kt index ec5980b5e5..9ffa53b6ae 100644 --- a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/cli/KiloCliDataParser.kt +++ b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/cli/KiloCliDataParser.kt @@ -24,6 +24,7 @@ import ai.kilocode.rpc.dto.PermissionReplyDto import ai.kilocode.rpc.dto.PermissionRequestDto import ai.kilocode.rpc.dto.PartTimeDto import ai.kilocode.rpc.dto.PromptDto +import ai.kilocode.rpc.dto.PromptPartDto import ai.kilocode.rpc.dto.QuestionInfoDto import ai.kilocode.rpc.dto.QuestionOptionDto import ai.kilocode.rpc.dto.QuestionReplyDto @@ -370,7 +371,7 @@ object KiloCliDataParser { */ fun buildPromptJson(prompt: PromptDto): String { val parts = prompt.parts.joinToString(",") { part -> - """{"type":"${part.type}","text":${escape(part.text)}}""" + buildPromptPartJson(part) } val sb = StringBuilder() sb.append("""{"parts":[$parts]""") @@ -399,6 +400,18 @@ object KiloCliDataParser { return sb.toString() } + private fun buildPromptPartJson(part: PromptPartDto): String { + val fields = mutableListOf("\"type\":${escape(part.type)}") + if (part.type == "file") { + part.mime?.let { fields += "\"mime\":${escape(it)}" } + part.url?.let { fields += "\"url\":${escape(it)}" } + part.filename?.let { fields += "\"filename\":${escape(it)}" } + return "{${fields.joinToString(",")}}" + } + fields += "\"text\":${escape(part.text.orEmpty())}" + return "{${fields.joinToString(",")}}" + } + /** * Build the JSON body for `POST /session/{id}/summarize`. */ @@ -502,6 +515,9 @@ object KiloCliDataParser { messageID = obj.str("messageID") ?: "", type = obj.str("type") ?: "unknown", text = obj.str("text"), + mime = obj.str("mime"), + url = obj.str("url"), + filename = obj.str("filename"), tool = obj.str("tool"), callID = obj.str("callID"), state = state?.str("status"), diff --git a/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/ChatDtoSerializationTest.kt b/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/ChatDtoSerializationTest.kt index 194f9098b8..09df6ad590 100644 --- a/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/ChatDtoSerializationTest.kt +++ b/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/ChatDtoSerializationTest.kt @@ -216,10 +216,30 @@ class ChatDtoSerializationTest { assertEquals(2.0, decoded.time?.end) } + @Test + fun `PartDto file fields are preserved in round-trip`() { + val part = PartDto( + id = "p1", sessionID = "s1", messageID = "m1", + type = "file", mime = "image/png", url = "file:///tmp/a.png", filename = "a.png", + ) + val encoded = json.encodeToString(PartDto.serializer(), part) + assertTrue(encoded.contains(""""mime":"image/png"""")) + assertTrue(encoded.contains(""""url":"file:///tmp/a.png"""")) + assertTrue(encoded.contains(""""filename":"a.png"""")) + + val decoded = json.decodeFromString(PartDto.serializer(), encoded) + assertEquals("image/png", decoded.mime) + assertEquals("file:///tmp/a.png", decoded.url) + assertEquals("a.png", decoded.filename) + } + @Test fun `PromptDto variant is preserved in round-trip`() { val prompt = PromptDto( - parts = listOf(PromptPartDto("text", "hello")), + parts = listOf( + PromptPartDto("text", "hello"), + PromptPartDto(type = "file", mime = "image/png", url = "file:///tmp/a.png", filename = "a.png"), + ), providerID = "kilo", modelID = "gpt-5", agent = "code", @@ -228,7 +248,12 @@ class ChatDtoSerializationTest { val encoded = json.encodeToString(PromptDto.serializer(), prompt) assertTrue(encoded.contains(""""variant":"medium"""")) - assertEquals("medium", json.decodeFromString(PromptDto.serializer(), encoded).variant) + val decoded = json.decodeFromString(PromptDto.serializer(), encoded) + assertEquals("medium", decoded.variant) + assertEquals("file", decoded.parts[1].type) + assertEquals("image/png", decoded.parts[1].mime) + assertEquals("file:///tmp/a.png", decoded.parts[1].url) + assertEquals("a.png", decoded.parts[1].filename) } // ------ helpers ------ diff --git a/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/ChatLogSummaryTest.kt b/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/ChatLogSummaryTest.kt index 507c7503c0..29deb0cce4 100644 --- a/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/ChatLogSummaryTest.kt +++ b/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/ChatLogSummaryTest.kt @@ -154,6 +154,26 @@ class ChatLogSummaryTest { assertTrue(out.contains("variant=medium"), out) } + @Test + fun `prompt dto summary redacts file attachment urls`() { + System.setProperty("kilo.dev.log.chat.content", "preview") + + val out = ChatLogSummary.prompt( + PromptDto( + parts = listOf( + PromptPartDto(type = "text", text = "inspect"), + PromptPartDto(type = "file", mime = "image/png", url = "file:///secret/path.png", filename = "path.png"), + ) + ) + ) + + assertTrue(out.contains("attachments=1"), out) + assertTrue(out.contains("media=1"), out) + assertTrue(out.contains("attachmentTypes=image/png"), out) + assertFalse(out.contains("secret"), out) + assertFalse(out.contains("file:///"), out) + } + @Test fun `message updated summary includes role and model`() { val out = ChatLogSummary.event( diff --git a/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/KiloCliDataParserTest.kt b/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/KiloCliDataParserTest.kt index 979e7738d3..7e1036a3c2 100644 --- a/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/KiloCliDataParserTest.kt +++ b/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/KiloCliDataParserTest.kt @@ -162,6 +162,33 @@ class KiloCliDataParserTest { assertEquals("Hello", result.part.text) } + @Test + fun `parseChatEvent - file part preserves metadata`() { + val data = globalEvent(""" + "type": "message.part.updated", + "properties": { + "sessionID": "ses_1", + "part": { + "id": "file_1", + "sessionID": "ses_1", + "messageID": "msg_1", + "type": "file", + "mime": "image/png", + "url": "file:///tmp/a.png", + "filename": "a.png" + } + } + """) + + val result = KiloCliDataParser.parseChatEvent("message.part.updated", data) + assertNotNull(result) + assertTrue(result is ChatEventDto.PartUpdated) + assertEquals("file", result.part.type) + assertEquals("image/png", result.part.mime) + assertEquals("file:///tmp/a.png", result.part.url) + assertEquals("a.png", result.part.filename) + } + @Test fun `parseChatEvent - read tool part preserves input metadata and time`() { val data = globalEvent(""" @@ -1370,6 +1397,48 @@ class KiloCliDataParserTest { assertTrue(result.contains("""line1\nline2\t\"quoted\"""")) } + @Test + fun `buildPromptJson - mixed text and file parts`() { + val prompt = PromptDto( + parts = listOf( + PromptPartDto(type = "text", text = "see this"), + PromptPartDto(type = "file", mime = "image/png", url = "file:///tmp/a.png", filename = "a.png"), + ) + ) + + val result = KiloCliDataParser.buildPromptJson(prompt) + + assertEquals( + """{"parts":[{"type":"text","text":"see this"},{"type":"file","mime":"image/png","url":"file:///tmp/a.png","filename":"a.png"}]}""", + result, + ) + } + + @Test + fun `buildPromptJson - file only omits optional filename`() { + val prompt = PromptDto( + parts = listOf(PromptPartDto(type = "file", mime = "application/pdf", url = "file:///tmp/a.pdf")) + ) + + val result = KiloCliDataParser.buildPromptJson(prompt) + + assertEquals( + """{"parts":[{"type":"file","mime":"application/pdf","url":"file:///tmp/a.pdf"}]}""", + result, + ) + } + + @Test + fun `buildPromptJson - escapes file metadata`() { + val prompt = PromptDto( + parts = listOf(PromptPartDto(type = "file", mime = "text/plain", url = "file:///tmp/a%20b.txt", filename = "a \"b\".txt")) + ) + + val result = KiloCliDataParser.buildPromptJson(prompt) + + assertTrue(result.contains(""""filename":"a \"b\".txt""""), result) + } + // ---- buildSummarizeJson ---- @Test diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt index 99641c5e59..204cb624b8 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt @@ -36,6 +36,8 @@ import ai.kilocode.client.settings.profile.UserProfileConfigurable import ai.kilocode.client.telemetry.Telemetry import ai.kilocode.client.ui.layout.Stack import ai.kilocode.log.ChatLogSummary +import ai.kilocode.rpc.dto.PromptDto +import ai.kilocode.rpc.dto.PromptPartDto import com.intellij.util.ui.JBUI import ai.kilocode.log.KiloLog import com.intellij.ide.BrowserUtil @@ -295,7 +297,7 @@ class SessionUi( prompt = PromptPanel( project = project, - onSend = { text -> sendPrompt(text) }, + onSend = { text, files -> sendPrompt(text, files) }, onAbort = { controller.abort() }, ) @@ -308,7 +310,10 @@ class SessionUi( private fun bindUi() { prompt.mode.onSelect = { item -> controller.selectAgent(item.id) } - prompt.model.onSelect = { item -> controller.selectModel(item.provider, item.id) } + prompt.model.onSelect = { item -> + prompt.setAttachmentEnabled(item.attachment) + controller.selectModel(item.provider, item.id) + } prompt.reasoning.onSelect = { item -> controller.selectVariant(item.id) } prompt.onReset = { controller.clearModelOverride() } prompt.onChange = { scroll.refresh() } @@ -344,14 +349,16 @@ class SessionUi( it.display, it.provider, it.providerName, - it.recommendedIndex, - it.free, - it.variants, - ) + it.recommendedIndex, + it.free, + it.variants, + it.attachment, + ) } val selected = m.model?.let { full -> items.firstOrNull { it.key == full }?.key } prompt.model.setItems(items, selected) + prompt.setAttachmentEnabled(items.firstOrNull { it.key == selected }?.attachment ?: true) prompt.reasoning.setItems(m.variants.map { ReasoningPicker.Item(it, variantTitle(it)) }, m.variant) prompt.setResetVisible(m.modelOverride) prompt.setReady(m.isReady()) @@ -503,16 +510,20 @@ class SessionUi( } } - private fun sendPrompt(text: String) { - if (text.isBlank()) return + private fun sendPrompt(text: String, files: List) { + if (text.isBlank() && files.isEmpty()) return + val parts = buildList { + text.takeIf { it.isNotBlank() }?.let { add(PromptPartDto(type = "text", text = it)) } + addAll(files) + } LOG.debug { val agent = controller.model.agent ?: "none" val model = controller.model.model ?: "none" - "${ChatLogSummary.prompt(text)} agent=$agent model=$model ready=${controller.ready}" + "${ChatLogSummary.prompt(PromptDto(parts = parts))} agent=$agent model=$model ready=${controller.ready}" } prompt.clear() val follow = scroll.atBottom() - controller.prompt(text) + controller.prompt(text, files) scroll.followBottom(follow) } diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/controller/SessionController.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/controller/SessionController.kt index 609cfdd45d..b52a218512 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/controller/SessionController.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/controller/SessionController.kt @@ -195,13 +195,13 @@ class SessionController( updates.requestFlush(true) } - fun prompt(text: String) { + fun prompt(text: String, files: List = emptyList()) { assertEdt() val start = sid ?: ref?.key ?: "pending" val exists = sid != null - val dto = promptDto(text) - val props = promptProps() - LOG.debug { "${ChatLogSummary.sid(start)} ${ChatLogSummary.prompt(text)} ${ChatLogSummary.dir(directory)}" } + val dto = promptDto(text, files) + val props = promptProps(files) + LOG.debug { "${ChatLogSummary.sid(start)} ${ChatLogSummary.prompt(dto)} ${ChatLogSummary.dir(directory)}" } capture("Conversation Send Clicked", sessionProps(sid ?: ref?.key) + mapOf( "source" to "user", "hasExistingSession" to exists.toString(), @@ -624,11 +624,12 @@ class SessionController( info.name, provider.id, provider.name, - info.recommendedIndex, - info.free, - info.variants, - info.limit?.let { ModelLimitItem(it.context, it.input, it.output) }, - ) + info.recommendedIndex, + info.free, + info.variants, + info.limit?.let { ModelLimitItem(it.context, it.input, it.output) }, + info.attachment, + ) } } } ?: emptyList() @@ -1203,12 +1204,16 @@ class SessionController( } } - private fun promptDto(text: String): PromptDto { + private fun promptDto(text: String, files: List = emptyList()): PromptDto { val full = model.model val sel = full?.let(::parseModel) val variant = model.variant?.takeIf { it in model.variants } + val parts = buildList { + text.takeIf { it.isNotBlank() }?.let { add(PromptPartDto(type = "text", text = it)) } + addAll(files) + } return PromptDto( - parts = listOf(PromptPartDto(type = "text", text = text)), + parts = parts, providerID = sel?.first, modelID = sel?.second, agent = model.agent, @@ -1421,7 +1426,7 @@ class SessionController( } } - private fun promptProps(): Map = buildMap { + private fun promptProps(files: List = emptyList()): Map = buildMap { model.agent?.let { put("agent", it) } model.model?.let { key -> put("model", key) @@ -1431,6 +1436,10 @@ class SessionController( } } model.variant?.takeIf { it in model.variants }?.let { put("variant", it) } + if (files.isNotEmpty()) { + put("attachmentCount", files.size.toString()) + put("mediaAttachmentCount", files.count { it.mime?.startsWith("image/") == true || it.mime == "application/pdf" }.toString()) + } } private fun bucket(text: String): String = when (text.length) { diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/Message.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/Message.kt index a8169f7749..adf6fd8491 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/Message.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/Message.kt @@ -66,6 +66,13 @@ class Reasoning(id: String) : Content(id) { var done: Boolean = true } +/** User-provided file or image attachment. */ +class FileAttachment(id: String) : Content(id) { + var mime: String = "application/octet-stream" + var url: String = "" + var filename: String? = null +} + /** Tool invocation with lifecycle state. */ class Tool(id: String, val name: String, var kind: ToolKind) : Content(id) { var state: ToolExecState = ToolExecState.PENDING diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/PromptAttachment.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/PromptAttachment.kt new file mode 100644 index 0000000000..5dbee5a211 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/PromptAttachment.kt @@ -0,0 +1,52 @@ +package ai.kilocode.client.session.model + +import ai.kilocode.rpc.dto.PromptPartDto +import java.nio.file.Path +import kotlin.io.path.name + +data class PromptAttachment( + val id: String, + val name: String, + val mime: String, + val url: String, + val path: Path? = null, +) { + fun part() = PromptPartDto( + type = "file", + mime = mime, + url = url, + filename = name, + ) +} + +object PromptAttachmentExtractor { + fun files(files: List): List = files + .filter { it.exists() } + .map { file -> + val path = file.toPath() + PromptAttachment( + id = path.toAbsolutePath().normalize().toString(), + name = path.fileName?.toString() ?: path.name, + mime = mime(file), + url = path.toUri().toString(), + path = path, + ) + } + + fun media(mime: String): Boolean = mime.startsWith("image/") || mime == "application/pdf" + + private fun mime(file: java.io.File): String { + if (file.isDirectory) return "application/x-directory" + return when (file.extension.lowercase()) { + "png" -> "image/png" + "jpg", "jpeg" -> "image/jpeg" + "gif" -> "image/gif" + "webp" -> "image/webp" + "bmp" -> "image/bmp" + "svg" -> "image/svg+xml" + "pdf" -> "application/pdf" + "txt", "md", "kt", "kts", "java", "js", "jsx", "ts", "tsx", "json", "xml", "html", "css", "scss", "yml", "yaml", "toml", "sh", "py", "rb", "go", "rs", "c", "cc", "cpp", "h", "hpp" -> "text/plain" + else -> "application/octet-stream" + } + } +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/SessionModel.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/SessionModel.kt index 0533705f7e..19381bd669 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/SessionModel.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/SessionModel.kt @@ -373,6 +373,11 @@ class SessionModel { existing.content.append(text) existing.done = dto.time?.end != null || dto.time == null } + is FileAttachment -> { + existing.mime = dto.mime ?: "application/octet-stream" + existing.url = dto.url ?: "" + existing.filename = dto.filename + } is Tool -> { existing.kind = toolKind(dto.tool) existing.state = parseToolState(dto.state) @@ -408,6 +413,11 @@ class SessionModel { if (content != null && content.isNotEmpty()) this.content.append(content) done = dto.time?.end != null || dto.time == null } + "file" -> FileAttachment(dto.id).apply { + mime = dto.mime ?: "application/octet-stream" + url = dto.url ?: "" + filename = dto.filename + } "tool" -> Tool(dto.id, dto.tool ?: "unknown", toolKind(dto.tool)).apply { state = parseToolState(dto.state) callId = dto.callID @@ -568,6 +578,7 @@ data class ModelItem( val free: Boolean, val variants: List, val limit: ModelLimitItem?, + val attachment: Boolean = false, ) { val key: String get() = "$provider/$id" } @@ -602,6 +613,7 @@ private fun parseModelKey(value: String): Pair? { private fun Content.timelineTitle(): String = when (this) { is Text -> "Text" is Reasoning -> "Reasoning" + is FileAttachment -> filename?.takeIf { it.isNotBlank() } ?: "File" is Tool -> fileActionTitle() ?: title?.takeIf { it.isNotBlank() } ?: name is Compaction -> "Compaction" is StepFinish -> "Step finish" @@ -635,6 +647,7 @@ private fun tail(path: String): String { private fun Content.weight(): Int = when (this) { is Text -> content.length / 200 + 1 is Reasoning -> content.length / 200 + 1 + is FileAttachment -> 1 is Tool -> listOf(input.size, output?.length?.div(400) ?: 0, error?.length?.div(200) ?: 0).sum() + 1 is Compaction -> 2 is StepFinish -> tokens?.stepWeight() ?: 1 @@ -661,6 +674,7 @@ private fun renderMessage(msg: Message): List { out.add("reasoning#${part.id} done=${part.done}:") out.addAll(renderText(part.content)) } + is FileAttachment -> out.add("file#${part.id} ${part.mime} ${part.filename ?: tail(part.url)}") is Tool -> out.add(renderTool(part)) is Compaction -> out.add("compaction#${part.id}") is StepFinish -> out.add("step-finish#${part.id}") diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt new file mode 100644 index 0000000000..82de20a5ee --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt @@ -0,0 +1,254 @@ +package ai.kilocode.client.session.ui.attachment + +import ai.kilocode.client.plugin.KiloBundle +import ai.kilocode.client.session.ui.style.SessionUiStyle +import ai.kilocode.client.ui.HoverIcon +import ai.kilocode.client.ui.UiStyle +import ai.kilocode.client.ui.layout.HAlign +import ai.kilocode.client.ui.layout.VAlign +import ai.kilocode.client.ui.layout.align +import com.intellij.icons.AllIcons +import com.intellij.openapi.application.ApplicationManager +import com.intellij.ui.components.JBLabel +import com.intellij.util.concurrency.annotations.RequiresEdt +import com.intellij.util.ui.JBFont +import com.intellij.util.ui.JBUI +import com.intellij.util.ui.UIUtil +import java.awt.BorderLayout +import java.awt.Component +import java.awt.Container +import java.awt.Cursor +import java.awt.Dimension +import java.awt.Graphics +import java.awt.Graphics2D +import java.awt.Image +import java.awt.LayoutManager2 +import java.awt.RenderingHints +import java.awt.event.MouseAdapter +import java.awt.event.MouseEvent +import java.net.URI +import java.nio.file.Path +import javax.imageio.ImageIO +import javax.swing.Icon +import javax.swing.ImageIcon +import javax.swing.JButton +import javax.swing.JComponent +import javax.swing.JPanel +import javax.swing.SwingConstants + +data class AttachmentCardItem( + val name: String, + val mime: String, + val url: String, + val path: Path? = null, +) + +open class AttachmentCard( + private val item: AttachmentCardItem, + remove: (() -> Unit)? = null, + open: (() -> Unit)? = null, +) : JPanel(CardLayout()) { + private var gen = 0 + private var loaded = false + private val icon = mimeIcon(item.mime) + private val preview = PreviewPanel().apply { + layout = BorderLayout() + add(JBLabel(icon, SwingConstants.CENTER).align(HAlign.CENTER, VAlign.CENTER), BorderLayout.CENTER) + } + private var title: JBLabel? = null + private var kind: JBLabel? = null + private val titleLabel = JBLabel(item.name).apply { + font = JBFont.small().asBold() + title = this + } + private val kindLabel = JBLabel(item.mime).apply { + font = JBFont.small() + foreground = UIUtil.getContextHelpForeground() + kind = this + } + private val content = JPanel(BorderLayout()).apply { + isOpaque = false + border = JBUI.Borders.empty(UiStyle.Gap.sm()) + add(preview, BorderLayout.NORTH) + add( + JPanel(BorderLayout()).apply { + isOpaque = false + border = JBUI.Borders.emptyTop(UiStyle.Gap.sm()) + add(titleLabel, BorderLayout.NORTH) + add(kindLabel, BorderLayout.SOUTH) + }, + BorderLayout.CENTER, + ) + } + private val action = remove?.let { callback -> + HoverIcon().apply { + icon = AllIcons.Actions.Close + toolTipText = KiloBundle.message("prompt.attachment.remove", item.name) + accessibleContext?.accessibleName = toolTipText + addActionListener { callback() } + } + } + + init { + isOpaque = false + cursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR) + toolTipText = KiloBundle.message("prompt.attachment.tooltip", item.name, item.mime, item.url) + accessibleContext?.accessibleName = KiloBundle.message("prompt.attachment.open", item.name) + add(content) + if (action != null) add(action) + if (open != null) installOpen(content, open) + } + + override fun getPreferredSize(): Dimension = JBUI.size( + SessionUiStyle.View.Attachment.CARD_WIDTH, + SessionUiStyle.View.Attachment.CARD_HEIGHT, + ) + + override fun getMinimumSize(): Dimension = preferredSize + + override fun getMaximumSize(): Dimension = preferredSize + + override fun addNotify() { + super.addNotify() + if (loaded) return + loaded = true + load() + } + + override fun updateUI() { + super.updateUI() + title?.font = JBFont.small().asBold() + kind?.font = JBFont.small() + kind?.foreground = UIUtil.getContextHelpForeground() + } + + override fun paintComponent(g: Graphics) { + val g2 = g.create() as Graphics2D + try { + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON) + val arc = JBUI.scale(SessionUiStyle.View.Attachment.CORNER_ARC) + g2.color = SessionUiStyle.View.surface() + g2.fillRoundRect(0, 0, width, height, arc, arc) + g2.color = SessionUiStyle.View.line() + g2.drawRoundRect(0, 0, width - 1, height - 1, arc, arc) + } finally { + g2.dispose() + } + super.paintComponent(g) + } + + @RequiresEdt + private fun load() { + val path = local(item) ?: return + if (!item.mime.startsWith("image/")) return + val stamp = ++gen + val size = JBUI.size( + SessionUiStyle.View.Attachment.CARD_WIDTH - UiStyle.Gap.lg() * 2, + SessionUiStyle.View.Attachment.PREVIEW_HEIGHT, + ) + ApplicationManager.getApplication().executeOnPooledThread { + val image = runCatching { ImageIO.read(path.toFile()) }.getOrNull() + val scaled = image?.let { scale(it, size.width, size.height) } + if (scaled == null) return@executeOnPooledThread + ApplicationManager.getApplication().invokeLater { + if (gen != stamp || !isDisplayable) return@invokeLater + preview.setIcon(ImageIcon(scaled)) + } + } + } + + private fun installOpen(root: Component, open: () -> Unit) { + val listener = object : MouseAdapter() { + override fun mouseClicked(e: MouseEvent) { + open() + } + } + fun visit(node: Component) { + if (node is JButton) return + node.cursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR) + node.addMouseListener(listener) + if (node is Container) node.components.forEach(::visit) + } + visit(root) + } + + private class PreviewPanel : JPanel(BorderLayout()) { + init { + isOpaque = false + } + + override fun getPreferredSize(): Dimension = JBUI.size( + SessionUiStyle.View.Attachment.CARD_WIDTH - UiStyle.Gap.lg() * 2, + SessionUiStyle.View.Attachment.PREVIEW_HEIGHT, + ) + + fun setIcon(next: Icon) { + removeAll() + add(JBLabel(next, SwingConstants.CENTER).align(HAlign.CENTER, VAlign.CENTER), BorderLayout.CENTER) + revalidate() + repaint() + } + + override fun paintComponent(g: Graphics) { + val g2 = g.create() as Graphics2D + try { + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON) + val arc = JBUI.scale(SessionUiStyle.View.Attachment.CORNER_ARC) + g2.color = SessionUiStyle.View.headerHover() + g2.fillRoundRect(0, 0, width, height, arc, arc) + } finally { + g2.dispose() + } + super.paintComponent(g) + } + } + + private class CardLayout : LayoutManager2 { + override fun addLayoutComponent(comp: Component, constraints: Any?) = Unit + override fun addLayoutComponent(name: String?, comp: Component) = Unit + override fun removeLayoutComponent(comp: Component) = Unit + override fun minimumLayoutSize(parent: Container) = preferredLayoutSize(parent) + override fun preferredLayoutSize(parent: Container) = JBUI.size( + SessionUiStyle.View.Attachment.CARD_WIDTH, + SessionUiStyle.View.Attachment.CARD_HEIGHT, + ) + + override fun maximumLayoutSize(target: Container) = preferredLayoutSize(target) + override fun getLayoutAlignmentX(target: Container) = 0f + override fun getLayoutAlignmentY(target: Container) = 0f + override fun invalidateLayout(target: Container) = Unit + + override fun layoutContainer(parent: Container) { + if (parent.componentCount == 0) return + val content = parent.getComponent(0) + content.setBounds(0, 0, parent.width, parent.height) + if (parent.componentCount < 2) return + val action = parent.getComponent(1) + val size = JBUI.scale(SessionUiStyle.View.Attachment.CLOSE_SIZE) + action.setBounds(parent.width - size - UiStyle.Gap.xs(), UiStyle.Gap.xs(), size, size) + } + } +} + +private fun scale(image: Image, width: Int, height: Int): Image { + val iw = image.getWidth(null) + val ih = image.getHeight(null) + if (iw <= 0 || ih <= 0) return image + val ratio = minOf(width.toDouble() / iw, height.toDouble() / ih) + val w = maxOf(1, (iw * ratio).toInt()) + val h = maxOf(1, (ih * ratio).toInt()) + return image.getScaledInstance(w, h, Image.SCALE_SMOOTH) +} + +private fun local(item: AttachmentCardItem): Path? { + if (item.path != null) return item.path + val uri = runCatching { URI.create(item.url) }.getOrNull() ?: return null + if (uri.scheme != "file") return null + return runCatching { Path.of(uri) }.getOrNull() +} + +private fun mimeIcon(mime: String): Icon = when { + mime.startsWith("image/") -> AllIcons.FileTypes.Image + mime == "application/x-directory" -> AllIcons.Nodes.Folder + else -> AllIcons.FileTypes.Text +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/model/ModelPicker.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/model/ModelPicker.kt index d0d4071c90..337a6f8ea0 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/model/ModelPicker.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/model/ModelPicker.kt @@ -57,6 +57,7 @@ class ModelPicker : PickerButton() { val recommendedIndex: Double? = null, val free: Boolean = false, val variants: List = emptyList(), + val attachment: Boolean = false, ) { val key: String get() = "$provider/$id" diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptAttachmentStrip.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptAttachmentStrip.kt new file mode 100644 index 0000000000..9efa44aabf --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptAttachmentStrip.kt @@ -0,0 +1,89 @@ +package ai.kilocode.client.session.ui.prompt + +import ai.kilocode.client.plugin.KiloBundle +import ai.kilocode.client.session.model.PromptAttachment +import ai.kilocode.client.session.ui.attachment.AttachmentCard +import ai.kilocode.client.session.ui.attachment.AttachmentCardItem +import ai.kilocode.client.ui.UiStyle +import com.intellij.notification.Notification +import com.intellij.notification.NotificationType +import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.fileEditor.FileEditorManager +import com.intellij.openapi.project.Project +import com.intellij.openapi.vfs.LocalFileSystem +import com.intellij.util.concurrency.annotations.RequiresEdt +import com.intellij.util.ui.JBUI +import java.awt.FlowLayout +import javax.swing.JPanel + +class PromptAttachmentStrip( + private val project: Project, + private val removed: (PromptAttachment) -> Unit, +) : JPanel(FlowLayout(FlowLayout.LEFT, UiStyle.Gap.sm(), UiStyle.Gap.sm())) { + private val chips = LinkedHashMap() + + init { + border = JBUI.Borders.emptyBottom(UiStyle.Gap.sm()) + isVisible = false + } + + val count: Int get() = chips.size + + @RequiresEdt + fun add(item: PromptAttachment) { + if (chips.containsKey(item.id)) return + val chip = PromptAttachmentChip(project, item, remove = { removed(item) }) + chips[item.id] = chip + add(chip) + sync() + } + + @RequiresEdt + fun remove(item: PromptAttachment) { + val chip = chips.remove(item.id) ?: return + remove(chip) + sync() + } + + @RequiresEdt + fun clear() { + if (chips.isEmpty()) return + chips.clear() + removeAll() + sync() + } + + @RequiresEdt + private fun sync() { + isVisible = chips.isNotEmpty() + revalidate() + repaint() + } +} + +private class PromptAttachmentChip( + project: Project, + item: PromptAttachment, + remove: () -> Unit, +) : AttachmentCard( + AttachmentCardItem(item.name, item.mime, item.url, item.path), + remove = remove, + open = { open(project, item) }, +) { + companion object { + private fun open(project: Project, item: PromptAttachment) { + val path = item.path ?: return + ApplicationManager.getApplication().executeOnPooledThread { + val file = LocalFileSystem.getInstance().refreshAndFindFileByNioFile(path) + ApplicationManager.getApplication().invokeLater { + if (project.isDisposed) return@invokeLater + if (file == null) { + Notification("Kilo Code", KiloBundle.message("prompt.attachment.missing", item.name), NotificationType.WARNING).notify(project) + return@invokeLater + } + FileEditorManager.getInstance(project).openFile(file, true) + } + } + } + } +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptPanel.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptPanel.kt index 1ebc2c0968..f17478075d 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptPanel.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptPanel.kt @@ -4,6 +4,8 @@ import ai.kilocode.client.actions.SendPromptAction import ai.kilocode.client.actions.StopSessionAction import ai.kilocode.client.plugin.KiloBundle import ai.kilocode.client.session.ui.ReasoningPicker +import ai.kilocode.client.session.model.PromptAttachment +import ai.kilocode.client.session.model.PromptAttachmentExtractor import ai.kilocode.client.session.ui.style.SessionEditorStyle import ai.kilocode.client.session.ui.style.SessionEditorStyleTarget import ai.kilocode.client.session.ui.style.SessionUiStyle @@ -15,8 +17,12 @@ import ai.kilocode.client.ui.UiStyle import ai.kilocode.client.ui.iconButton import ai.kilocode.log.ChatLogSummary import ai.kilocode.log.KiloLog +import ai.kilocode.rpc.dto.PromptPartDto import com.intellij.icons.AllIcons import com.intellij.ide.DataManager +import com.intellij.ide.dnd.DnDEvent +import com.intellij.ide.dnd.DnDSupport +import com.intellij.ide.dnd.FileCopyPasteUtil import com.intellij.openapi.actionSystem.ActionManager import com.intellij.openapi.actionSystem.ActionPlaces import com.intellij.openapi.actionSystem.ActionUiKind @@ -63,7 +69,7 @@ import javax.swing.ScrollPaneConstants */ class PromptPanel( private val project: Project, - private val onSend: (String) -> Unit, + private val onSend: (String, List) -> Unit, private val onAbort: () -> Unit, ) : BorderLayoutPanel(), SessionEditorStyleTarget, SendPromptContext { @@ -85,8 +91,11 @@ class PromptPanel( var onAutoApproveToggle: (Boolean) -> Unit = {} private var style = SessionEditorStyle.current() private val shell = PromptShell() + private val attachments = mutableListOf() + private val strip = PromptAttachmentStrip(project) { removeAttachment(it) } private var bus: MessageBusConnection? = null private var autoApprove = false + private var attachment = true private val editor = PromptEditorTextField(project, this).apply { border = JBUI.Borders.empty() @@ -106,6 +115,8 @@ class PromptPanel( ed.settings.isAdditionalPageAtBottom = false ed.scrollPane.horizontalScrollBarPolicy = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER + installDnD(ed.contentComponent, "editor") + installDnD(ed.scrollPane, "scroll") ed.contentComponent.addFocusListener(object : FocusAdapter() { override fun focusGained(e: FocusEvent) { shell.repaint() @@ -151,7 +162,7 @@ class PromptPanel( private var ready = false override val isSendEnabled: Boolean - get() = ready && !busy && text().isNotEmpty() + get() = ready && !busy && (text().isNotEmpty() || attachments.isNotEmpty()) override val isStopEnabled: Boolean get() = busy @@ -175,6 +186,7 @@ class PromptPanel( onChange() } }) + shell.add(strip, BorderLayout.NORTH) shell.add(editor, BorderLayout.CENTER) val bar = BorderLayoutPanel().apply { @@ -195,6 +207,7 @@ class PromptPanel( bar.add(button) shell.add(bar, BorderLayout.SOUTH) add(shell, BorderLayout.CENTER) + installDnD(shell, "shell") syncTooltip() syncAutoApprove() } @@ -204,6 +217,11 @@ class PromptPanel( ready = value } + @RequiresEdt + fun setAttachmentEnabled(value: Boolean) { + attachment = value + } + @RequiresEdt fun setBusy(value: Boolean) { busy = value @@ -249,6 +267,8 @@ class PromptPanel( internal fun buttonForTest(): JButton = button + internal fun attachmentCountForTest(): Int = attachments.size + internal val defaultFocusedComponent: JComponent get() = editor @RequiresEdt @@ -264,9 +284,16 @@ class PromptPanel( @RequiresEdt fun clear() { editor.text = "" + attachments.clear() + strip.clear() syncEditorHeight() } + @RequiresEdt + fun addAttachmentForTest(item: PromptAttachment) { + addAttachment(item) + } + @RequiresEdt fun focus() { editor.requestFocusInWindow() @@ -287,10 +314,95 @@ class PromptPanel( private fun submit(src: String) { if (!isSendEnabled) return val txt = text() - LOG.debug { "${ChatLogSummary.prompt(txt)} src=$src busy=$busy" } - if (txt.isNotEmpty()) { - onSend(txt) + val files = attachments.map { it.part() } + LOG.debug { "${ChatLogSummary.prompt(promptDto(txt, files))} src=$src busy=$busy" } + onSend(txt, files) + } + + @RequiresEdt + private fun addAttachment(item: PromptAttachment) { + if (!attachment && PromptAttachmentExtractor.media(item.mime)) { + LOG.debug { "kind=prompt-attachment add name=${item.name} mime=${item.mime} blocked=unsupported-model" } + notify(KiloBundle.message("prompt.attachment.unsupported.model")) + return } + if (attachments.any { it.id == item.id }) { + LOG.debug { "kind=prompt-attachment add name=${item.name} mime=${item.mime} blocked=duplicate" } + return + } + attachments += item + strip.add(item) + LOG.debug { "kind=prompt-attachment add name=${item.name} mime=${item.mime} count=${attachments.size}" } + onChange() + } + + @RequiresEdt + private fun removeAttachment(item: PromptAttachment) { + if (!attachments.removeIf { it.id == item.id }) return + strip.remove(item) + onChange() + } + + private fun promptDto(text: String, files: List) = ai.kilocode.rpc.dto.PromptDto( + parts = buildList { + text.takeIf { it.isNotBlank() }?.let { add(PromptPartDto(type = "text", text = it)) } + addAll(files) + } + ) + + private fun installDnD(target: JComponent, area: String) { + LOG.debug { "kind=prompt-dnd install area=$area component=${target.javaClass.name}" } + DnDSupport.createBuilder(target) + .enableAsNativeTarget() + .setTargetChecker { event -> + if (!FileCopyPasteUtil.isFileListFlavorAvailable(event)) { + LOG.debug { "kind=prompt-dnd check area=$area accept=false flavor=false" } + return@setTargetChecker true + } + event.setDropPossible(true) + LOG.debug { "kind=prompt-dnd check area=$area accept=true flavor=true" } + false + } + .setDropHandlerWithResult { event -> + val start = System.nanoTime() + val files = dropFiles(event) + val ms = elapsedMs(start) + LOG.debug { "kind=prompt-dnd drop area=$area files=${files.size} extractMs=$ms queued=${files.isNotEmpty()}" } + if (files.isEmpty()) return@setDropHandlerWithResult false + processDrop(files, area, ms) + true + } + .install() + } + + private fun processDrop(files: List, area: String, dropMs: Long) { + ApplicationManager.getApplication().executeOnPooledThread { + val start = System.nanoTime() + try { + val items = PromptAttachmentExtractor.files(files) + val ms = elapsedMs(start) + LOG.debug { "kind=prompt-dnd extract area=$area files=${files.size} attachments=${items.size} extractMs=$ms dropMs=$dropMs" } + if (items.isEmpty()) return@executeOnPooledThread + ApplicationManager.getApplication().invokeLater { + if (project.isDisposed || !isDisplayable) return@invokeLater + LOG.debug { "kind=prompt-dnd attach area=$area files=${files.size} attachments=${items.size} extractMs=$ms dropMs=$dropMs" } + items.forEach(::addAttachment) + } + } catch (e: Exception) { + LOG.warn("kind=prompt-dnd extract area=$area files=${files.size} failed message=${e.message}", e) + } + } + } + + private fun dropFiles(event: DnDEvent): List { + if (!FileCopyPasteUtil.isFileListFlavorAvailable(event)) return emptyList() + return FileCopyPasteUtil.getFileListFromAttachedObject(event.attachedObject).orEmpty() + } + + private fun elapsedMs(start: Long) = (System.nanoTime() - start) / 1_000_000 + + private fun notify(text: String) { + com.intellij.notification.Notification("Kilo Code", text, com.intellij.notification.NotificationType.WARNING).notify(project) } @RequiresEdt diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt index 83fc0fa200..cb7b3b6982 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt @@ -71,6 +71,15 @@ object SessionUiStyle { const val SHELL_HORIZONTAL_PADDING = 8 } + /** Attachment preview card geometry. */ + object Attachment { + const val CARD_WIDTH = 180 + const val CARD_HEIGHT = 132 + const val PREVIEW_HEIGHT = 84 + const val CLOSE_SIZE = 24 + const val CORNER_ARC = 8 + } + /** Reasoning block preview sizing. */ object Reasoning { const val BODY_LINES = 5 diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/AttachmentView.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/AttachmentView.kt new file mode 100644 index 0000000000..76218ff9d7 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/AttachmentView.kt @@ -0,0 +1,70 @@ +package ai.kilocode.client.session.views + +import ai.kilocode.client.session.model.Content +import ai.kilocode.client.session.model.FileAttachment +import ai.kilocode.client.session.ui.attachment.AttachmentCard +import ai.kilocode.client.session.ui.attachment.AttachmentCardItem +import ai.kilocode.client.session.views.base.PartView +import ai.kilocode.client.ui.UiStyle +import java.awt.FlowLayout +import java.net.URI +import java.nio.file.Path + +class AttachmentView( + private var item: FileAttachment, + private val openFile: (String) -> Unit, + private val openUrl: (String) -> Unit, +) : PartView() { + override val contentId: String = item.id + private var chip = chip(item) + + init { + layout = FlowLayout(FlowLayout.LEFT, 0, UiStyle.Gap.xs()) + add(chip) + } + + override fun update(content: Content) { + if (content !is FileAttachment) return + if (same(content)) { + item = content + return + } + item = content + remove(chip) + chip = chip(content) + add(chip) + revalidate() + repaint() + } + + override fun dumpLabel(): String = "AttachmentView#${item.id}:${name(item)}" + + private fun chip(item: FileAttachment) = AttachmentCard( + AttachmentCardItem(name(item), item.mime, item.url), + open = { open(item) }, + ) + + private fun open(item: FileAttachment) { + val url = item.url.takeIf { it.isNotBlank() } ?: return + val uri = runCatching { URI.create(url) }.getOrNull() ?: return + if (uri.scheme == "file") { + val path = runCatching { Path.of(uri).toString() }.getOrNull() ?: return + openFile(path) + return + } + openUrl(url) + } + + private fun same(next: FileAttachment) = item.mime == next.mime && item.url == next.url && item.filename == next.filename + + private fun name(item: FileAttachment) = item.filename?.takeIf { it.isNotBlank() } + ?: tail(item.url).takeIf { it.isNotBlank() } + ?: "attachment" + + private fun tail(value: String): String { + val clean = value.trimEnd('/', '\\') + val index = maxOf(clean.lastIndexOf('/'), clean.lastIndexOf('\\')) + if (index < 0) return clean + return clean.substring(index + 1) + } +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/ViewFactory.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/ViewFactory.kt index fca054a0c9..d6c6389280 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/ViewFactory.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/ViewFactory.kt @@ -6,6 +6,7 @@ import ai.kilocode.client.session.views.question.QuestionResultView import ai.kilocode.client.session.ui.selection.SessionSelection import ai.kilocode.client.session.model.Compaction import ai.kilocode.client.session.model.Content +import ai.kilocode.client.session.model.FileAttachment import ai.kilocode.client.session.model.Generic import ai.kilocode.client.session.model.Reasoning import ai.kilocode.client.session.model.StepFinish @@ -41,6 +42,7 @@ object ViewFactory { ): PartView = when (content) { is Text -> TextView(content, openUrl = openUrl, selection = selection) is Reasoning -> ReasoningView(content, openUrl = openUrl, selection = selection) + is FileAttachment -> AttachmentView(content, openFile, openUrl) is Tool -> when { TodoWriteView.canRender(content) -> TodoWriteView(content) PlanExitView.canRender(content) -> PlanExitView(content, openFile, selection) @@ -71,6 +73,7 @@ object ViewFactory { selection: SessionSelection? = null, ): PartView = when (content) { is Text -> PromptView(content, openUrl = openUrl, selection = selection) + is FileAttachment -> AttachmentView(content, openFile, openUrl) else -> create(content, openFile, openUrl, selection) } diff --git a/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties b/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties index ff2594f38f..a05c654fc4 100644 --- a/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties +++ b/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties @@ -133,6 +133,11 @@ prompt.placeholder.with.newline=Type a message... ({0} for new line) prompt.button.send=Send prompt.button.stop=Stop prompt.button.send.tooltip.stop=To stop, press {0} +prompt.attachment.remove=Remove {0} +prompt.attachment.open=Open {0} +prompt.attachment.tooltip=Name: {0}\nType: {1}\nLocation: {2} +prompt.attachment.unsupported.model=The selected model does not support image or PDF attachments. +prompt.attachment.missing=Attachment no longer exists: {0} prompt.action.autoApprove.enable=Enable auto-approve prompt.action.autoApprove.disable=Disable auto-approve prompt.action.autoApprove.enabled.tooltip=Auto-approve is enabled. Permission prompts will be approved automatically. diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/controller/PromptLifecycleTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/controller/PromptLifecycleTest.kt index 07dcfb934f..e6da5ad5f1 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/controller/PromptLifecycleTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/controller/PromptLifecycleTest.kt @@ -14,6 +14,7 @@ import ai.kilocode.rpc.dto.PermissionFileDiffDto import ai.kilocode.rpc.dto.PermissionReplyDto import ai.kilocode.rpc.dto.PermissionRequestDto import ai.kilocode.rpc.dto.ProviderDto +import ai.kilocode.rpc.dto.PromptPartDto import ai.kilocode.rpc.dto.QuestionInfoDto import ai.kilocode.rpc.dto.QuestionOptionDto import ai.kilocode.rpc.dto.QuestionReplyDto @@ -45,6 +46,26 @@ class PromptLifecycleTest : SessionControllerTestBase() { assertEquals("short", event.properties["textLength"]) } + fun `test prompt sends text and file parts`() { + val (m, _, _) = prompted() + rpc.prompts.clear() + + edt { + m.prompt( + "see", + listOf(PromptPartDto(type = "file", mime = "image/png", url = "file:///tmp/a.png", filename = "a.png")), + ) + } + flush() + + val prompt = rpc.prompts.single().third + assertEquals("text", prompt.parts[0].type) + assertEquals("see", prompt.parts[0].text) + assertEquals("file", prompt.parts[1].type) + assertEquals("image/png", prompt.parts[1].mime) + assertEquals("file:///tmp/a.png", prompt.parts[1].url) + } + fun `test PermissionAsked moves state to AwaitingPermission`() { val (m, _, _) = prompted() diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/model/SessionModelTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/model/SessionModelTest.kt index 6e5d17d406..d98bffc727 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/model/SessionModelTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/model/SessionModelTest.kt @@ -153,6 +153,31 @@ class SessionModelTest : BasePlatformTestCase() { assertTrue(p.done) } + fun `test updateContent file creates attachment content and updates metadata`() { + model.addMessage(msg("m1", "user")) + events.clear() + + model.updateContent("m1", filePart("f1", "m1", "image/png", "file:///tmp/a.png", "a.png")) + + val file = model.message("m1")!!.parts["f1"] as FileAttachment + assertEquals("image/png", file.mime) + assertEquals("file:///tmp/a.png", file.url) + assertEquals("a.png", file.filename) + assertEquals("ContentAdded m1/f1", events.single().toString()) + + model.updateContent("m1", filePart("f1", "m1", "application/pdf", "file:///tmp/b.pdf", "b.pdf")) + + assertSame(file, model.message("m1")!!.parts["f1"]) + assertEquals("application/pdf", file.mime) + assertEquals("file:///tmp/b.pdf", file.url) + assertEquals("b.pdf", file.filename) + assertTrue(events.any { it.toString() == "ContentUpdated m1/f1" }) + assertModel(""" + user#m1 + file#f1 application/pdf b.pdf + """) + } + fun `test updateContent tool creates Tool content and tracks state`() { model.addMessage(msg("m1", "assistant")) @@ -848,12 +873,18 @@ class SessionModelTest : BasePlatformTestCase() { tokens: TokensDto? = null, todos: List = emptyList(), todoView: TodoViewDto? = null, + mime: String? = null, + url: String? = null, + filename: String? = null, ) = PartDto( id = id, sessionID = "ses", messageID = mid, type = type, text = text, + mime = mime, + url = url, + filename = filename, tool = tool, state = state, title = title, @@ -869,6 +900,15 @@ class SessionModelTest : BasePlatformTestCase() { tokens = tokens, ) + private fun filePart(id: String, mid: String, mime: String, url: String, filename: String) = part( + id = id, + mid = mid, + type = "file", + mime = mime, + url = url, + filename = filename, + ) + private fun question(id: String) = Question( id = id, items = listOf( diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/PromptPanelTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/PromptPanelTest.kt index 82d843f9f8..c4041ee3cb 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/PromptPanelTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/PromptPanelTest.kt @@ -2,6 +2,9 @@ package ai.kilocode.client.session.ui import ai.kilocode.client.session.ui.style.SessionEditorStyle import ai.kilocode.client.plugin.KiloBundle +import ai.kilocode.client.session.model.PromptAttachment +import ai.kilocode.client.session.ui.attachment.AttachmentCard +import ai.kilocode.client.session.ui.style.SessionUiStyle import ai.kilocode.client.session.ui.prompt.PromptDataKeys import ai.kilocode.client.session.ui.prompt.PromptPanel import com.intellij.icons.AllIcons @@ -11,6 +14,7 @@ import com.intellij.openapi.keymap.KeymapUtil import com.intellij.testFramework.fixtures.BasePlatformTestCase import com.intellij.ui.EditorTextField import com.intellij.util.ui.EmptyIcon +import com.intellij.util.ui.JBUI import java.awt.Container import javax.swing.JButton import javax.swing.SwingUtilities @@ -20,7 +24,7 @@ class PromptPanelTest : BasePlatformTestCase() { fun `test prompt input uses editor font settings`() { val style = SessionEditorStyle.current() - val panel = PromptPanel(project, {}, {}) + val panel = PromptPanel(project, { _, _ -> }, {}) val font = panel.inputFont() assertEquals(style.editorFamily, font.name) @@ -29,13 +33,13 @@ class PromptPanelTest : BasePlatformTestCase() { fun `test prompt input uses editor background`() { val style = SessionEditorStyle.current() - val panel = PromptPanel(project, {}, {}) + val panel = PromptPanel(project, { _, _ -> }, {}) assertEquals(style.editorScheme.defaultBackground, panel.defaultFocusedComponent.background) } fun `test applyStyle updates prompt input and height`() { - val panel = PromptPanel(project, {}, {}) + val panel = PromptPanel(project, { _, _ -> }, {}) val style = SessionEditorStyle.create(family = "Courier New", size = 26) panel.applyStyle(style) @@ -46,7 +50,7 @@ class PromptPanelTest : BasePlatformTestCase() { } fun `test prompt editor grows when lines are added`() { - val panel = PromptPanel(project, {}, {}) + val panel = PromptPanel(project, { _, _ -> }, {}) val editor = panel.defaultFocusedComponent as EditorTextField val min = editor.preferredSize.height @@ -56,7 +60,7 @@ class PromptPanelTest : BasePlatformTestCase() { } fun `test prompt editor shrinks when lines are removed`() { - val panel = PromptPanel(project, {}, {}) + val panel = PromptPanel(project, { _, _ -> }, {}) val editor = panel.defaultFocusedComponent as EditorTextField val min = editor.preferredSize.height @@ -69,7 +73,7 @@ class PromptPanelTest : BasePlatformTestCase() { } fun `test prompt editor shrinks after clear`() { - val panel = PromptPanel(project, {}, {}) + val panel = PromptPanel(project, { _, _ -> }, {}) val editor = panel.defaultFocusedComponent as EditorTextField val min = editor.preferredSize.height @@ -81,8 +85,60 @@ class PromptPanelTest : BasePlatformTestCase() { assertEquals(min, editor.preferredSize.height) } + fun `test attachment only prompt can send`() { + var sent = false + val panel = PromptPanel(project, { text, files -> + sent = text.isBlank() && files.single().url == "file:///tmp/a.png" + }, {}) + panel.setReady(true) + + panel.addAttachmentForTest(PromptAttachment("a", "a.png", "image/png", "file:///tmp/a.png")) + panel.send() + + assertTrue(sent) + } + + fun `test clear removes attachments`() { + val panel = PromptPanel(project, { _, _ -> }, {}) + + panel.addAttachmentForTest(PromptAttachment("a", "a.txt", "text/plain", "file:///tmp/a.txt")) + assertEquals(1, panel.attachmentCountForTest()) + + panel.clear() + + assertEquals(0, panel.attachmentCountForTest()) + } + + fun `test removed attachment can be added again`() { + val item = PromptAttachment("a", "a.txt", "text/plain", "file:///tmp/a.txt") + val panel = PromptPanel(project, { _, _ -> }, {}) + + panel.addAttachmentForTest(item) + attachmentRemoveButton(panel, item).doClick() + panel.addAttachmentForTest(item) + + assertEquals(1, panel.attachmentCountForTest()) + } + + fun `test attachment card has visible remove button and metadata tooltip`() { + val item = PromptAttachment("a", "a.txt", "text/plain", "file:///tmp/a.txt") + val panel = PromptPanel(project, { _, _ -> }, {}) + + panel.addAttachmentForTest(item) + + val button = attachmentRemoveButton(panel, item) + val card = attachmentCard(panel) + + assertTrue(button.isVisible) + assertTrue(card.toolTipText.contains("a.txt")) + assertTrue(card.toolTipText.contains("text/plain")) + assertTrue(card.toolTipText.contains("file:///tmp/a.txt")) + assertEquals(JBUI.scale(SessionUiStyle.View.Attachment.CARD_WIDTH), card.preferredSize.width) + assertEquals(JBUI.scale(SessionUiStyle.View.Attachment.CARD_HEIGHT), card.preferredSize.height) + } + fun `test reasoning picker hides when variants are empty`() { - val panel = PromptPanel(project, {}, {}) + val panel = PromptPanel(project, { _, _ -> }, {}) panel.reasoning.setItems(emptyList()) @@ -90,7 +146,7 @@ class PromptPanelTest : BasePlatformTestCase() { } fun `test reasoning picker shows selected variant`() { - val panel = PromptPanel(project, {}, {}) + val panel = PromptPanel(project, { _, _ -> }, {}) panel.reasoning.setItems(listOf(ReasoningPicker.Item("low", "Low"), ReasoningPicker.Item("high", "High")), "high") @@ -114,7 +170,7 @@ class PromptPanelTest : BasePlatformTestCase() { } fun `test reset visibility can be toggled`() { - val panel = PromptPanel(project, {}, {}) + val panel = PromptPanel(project, { _, _ -> }, {}) panel.setResetVisible(true) @@ -122,7 +178,7 @@ class PromptPanelTest : BasePlatformTestCase() { } fun `test prompt editor exposes send context`() { - val panel = PromptPanel(project, {}, {}) + val panel = PromptPanel(project, { _, _ -> }, {}) val sink = TestSink() (panel.defaultFocusedComponent as UiDataProvider).uiDataSnapshot(sink) @@ -131,7 +187,7 @@ class PromptPanelTest : BasePlatformTestCase() { } fun `test prompt button exposes send context`() { - val panel = PromptPanel(project, {}, {}) + val panel = PromptPanel(project, { _, _ -> }, {}) val sink = TestSink() (panel.buttonForTest() as UiDataProvider).uiDataSnapshot(sink) @@ -140,7 +196,7 @@ class PromptPanelTest : BasePlatformTestCase() { } fun `test prompt button switches between send and stop state`() { - val panel = PromptPanel(project, {}, {}) + val panel = PromptPanel(project, { _, _ -> }, {}) assertEquals(KeymapUtil.createTooltipText("Send", "Kilo.SendPrompt"), panel.buttonForTest().toolTipText) assertFalse(panel.isStopEnabled) @@ -152,7 +208,7 @@ class PromptPanelTest : BasePlatformTestCase() { } fun `test auto approve button toggles and updates tooltip`() { - val panel = PromptPanel(project, {}, {}) + val panel = PromptPanel(project, { _, _ -> }, {}) val button = autoApproveButton(panel) var seen: Boolean? = null panel.onAutoApproveToggle = { seen = it } @@ -183,7 +239,7 @@ class PromptPanelTest : BasePlatformTestCase() { } fun `test auto approve button sits next to send button`() { - val panel = PromptPanel(project, {}, {}) + val panel = PromptPanel(project, { _, _ -> }, {}) val auto = autoApproveButton(panel) val send = panel.buttonForTest() val items = auto.parent.components.toList() @@ -194,7 +250,7 @@ class PromptPanelTest : BasePlatformTestCase() { } fun `test pickers belong to rounded shell`() { - val panel = PromptPanel(project, {}, {}) + val panel = PromptPanel(project, { _, _ -> }, {}) val shell = panel.shellForTest() assertTrue(SwingUtilities.isDescendingFrom(panel.mode, shell)) @@ -212,6 +268,25 @@ class PromptPanelTest : BasePlatformTestCase() { } } + private fun attachmentRemoveButton(panel: PromptPanel, item: PromptAttachment): JButton { + val name = KiloBundle.message("prompt.attachment.remove", item.name) + return buttons(panel).first { it.accessibleContext.accessibleName == name } + } + + private fun attachmentCard(root: java.awt.Component): AttachmentCard { + fun visit(node: java.awt.Component): AttachmentCard? { + if (node is AttachmentCard) return node + if (node is Container) { + for (child in node.components) { + val card = visit(child) + if (card != null) return card + } + } + return null + } + return visit(root)!! + } + private fun buttons(root: java.awt.Component): List { val out = mutableListOf() fun visit(node: java.awt.Component) { diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionUiUpdateTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionUiUpdateTest.kt index 4d0177f566..57da6a8614 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionUiUpdateTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionUiUpdateTest.kt @@ -2,7 +2,10 @@ package ai.kilocode.client.session.ui import ai.kilocode.client.session.model.SessionModel import ai.kilocode.client.session.model.SessionState +import ai.kilocode.client.session.ui.attachment.AttachmentCard +import ai.kilocode.client.session.views.AttachmentView import ai.kilocode.client.session.views.TextView +import ai.kilocode.client.plugin.KiloBundle import ai.kilocode.rpc.dto.MessageDto import ai.kilocode.rpc.dto.MessageTimeDto import ai.kilocode.rpc.dto.MessageWithPartsDto @@ -10,6 +13,8 @@ import ai.kilocode.rpc.dto.PartDto import com.intellij.openapi.Disposable import com.intellij.openapi.util.Disposer import com.intellij.testFramework.fixtures.BasePlatformTestCase +import java.awt.Container +import javax.swing.JButton /** * Integration test: mutate [SessionModel] directly on the EDT and verify @@ -138,6 +143,28 @@ class SessionUiUpdateTest : BasePlatformTestCase() { assertNull(gv.border) } + fun `test user file part renders as attachment view`() { + model.upsertMessage(msg("u1", "user")) + model.updateContent( + "u1", + PartDto( + id = "f1", + sessionID = "ses", + messageID = "u1", + type = "file", + mime = "image/png", + url = "file:///tmp/a.png", + filename = "a.png", + ), + ) + + val view = panel.findMessage("u1")!!.part("f1") + assertTrue(view is AttachmentView) + assertEquals("AttachmentView#f1:a.png", view!!.dumpLabel()) + assertNotNull(find(view, AttachmentCard::class.java)) + assertFalse(buttons(view).any { it.accessibleContext.accessibleName == KiloBundle.message("prompt.attachment.remove", "a.png") }) + } + // ------ silent part types ------ fun `test step markers are not rendered in panel`() { @@ -209,4 +236,25 @@ class SessionUiUpdateTest : BasePlatformTestCase() { private fun toolPart(id: String, mid: String, tool: String, state: String) = PartDto( id = id, sessionID = "ses", messageID = mid, type = "tool", tool = tool, state = state, ) + + private fun find(root: java.awt.Component, type: Class): T? { + if (type.isInstance(root)) return type.cast(root) + if (root is Container) { + for (child in root.components) { + val found = find(child, type) + if (found != null) return found + } + } + return null + } + + private fun buttons(root: java.awt.Component): List { + val out = mutableListOf() + fun visit(node: java.awt.Component) { + if (node is JButton) out.add(node) + if (node is Container) node.components.forEach(::visit) + } + visit(root) + return out + } } diff --git a/packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/log/ChatLogSummary.kt b/packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/log/ChatLogSummary.kt index 664f5e22e5..5283789459 100644 --- a/packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/log/ChatLogSummary.kt +++ b/packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/log/ChatLogSummary.kt @@ -50,14 +50,23 @@ object ChatLogSummary { fun prompt(prompt: PromptDto): String { val out = mutableListOf() - val text = prompt.parts.joinToString("\n") { it.text } + val text = prompt.parts.mapNotNull { it.text }.joinToString("\n") + val files = prompt.parts.filter { it.type == "file" } out += "kind=prompt" out += "parts=${prompt.parts.size}" out += "chars=${text.length}" + if (files.isNotEmpty()) out += "attachments=${files.size}" + files.count { it.mime?.startsWith("image/") == true || it.mime == "application/pdf" } + .takeIf { it > 0 } + ?.let { out += "media=$it" } prompt.parts.map { it.type } .distinct() .takeIf { it.isNotEmpty() } ?.let { out += "types=${it.joinToString(",")}" } + files.mapNotNull { it.mime ?: it.type } + .distinct() + .takeIf { it.isNotEmpty() } + ?.let { out += "attachmentTypes=${it.joinToString(",")}" } prompt.agent?.takeIf { it.isNotBlank() }?.let { out += "agent=$it" } model(prompt.providerID, prompt.modelID)?.let { out += "model=$it" } prompt.variant?.takeIf { it.isNotBlank() }?.let { out += "variant=$it" } diff --git a/packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/rpc/dto/ChatDto.kt b/packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/rpc/dto/ChatDto.kt index e5c85cb0ab..21bf20897b 100644 --- a/packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/rpc/dto/ChatDto.kt +++ b/packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/rpc/dto/ChatDto.kt @@ -72,6 +72,9 @@ data class PartDto( val reason: String? = null, val cost: Double? = null, val tokens: TokensDto? = null, + val mime: String? = null, + val url: String? = null, + val filename: String? = null, ) @Serializable @@ -96,7 +99,10 @@ data class PromptDto( @Serializable data class PromptPartDto( val type: String, - val text: String, + val text: String? = null, + val mime: String? = null, + val url: String? = null, + val filename: String? = null, ) // --- Streaming Events --- From 7481b6f8cb585bb4654bb68f4b6cd582a5b7f1fd Mon Sep 17 00:00:00 2001 From: kirillk Date: Mon, 8 Jun 2026 18:34:37 -0400 Subject: [PATCH 004/109] feat(jetbrains): refine attachment preview cards --- .../session/ui/attachment/AttachmentCard.kt | 170 +++++++++++------- .../client/session/ui/style/SessionUiStyle.kt | 7 +- .../src/main/resources/icons/remove-hover.svg | 4 + .../resources/icons/remove-hover_dark.svg | 4 + .../src/main/resources/icons/remove.svg | 4 + .../src/main/resources/icons/remove_dark.svg | 4 + .../client/session/ui/PromptPanelTest.kt | 53 +++++- 7 files changed, 176 insertions(+), 70 deletions(-) create mode 100644 packages/kilo-jetbrains/frontend/src/main/resources/icons/remove-hover.svg create mode 100644 packages/kilo-jetbrains/frontend/src/main/resources/icons/remove-hover_dark.svg create mode 100644 packages/kilo-jetbrains/frontend/src/main/resources/icons/remove.svg create mode 100644 packages/kilo-jetbrains/frontend/src/main/resources/icons/remove_dark.svg diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt index 82de20a5ee..6e4221df66 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt @@ -2,18 +2,18 @@ package ai.kilocode.client.session.ui.attachment import ai.kilocode.client.plugin.KiloBundle import ai.kilocode.client.session.ui.style.SessionUiStyle -import ai.kilocode.client.ui.HoverIcon import ai.kilocode.client.ui.UiStyle +import ai.kilocode.client.ui.iconButton import ai.kilocode.client.ui.layout.HAlign import ai.kilocode.client.ui.layout.VAlign import ai.kilocode.client.ui.layout.align import com.intellij.icons.AllIcons import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.util.IconLoader +import com.intellij.openapi.util.text.StringUtil import com.intellij.ui.components.JBLabel import com.intellij.util.concurrency.annotations.RequiresEdt -import com.intellij.util.ui.JBFont import com.intellij.util.ui.JBUI -import com.intellij.util.ui.UIUtil import java.awt.BorderLayout import java.awt.Component import java.awt.Container @@ -27,6 +27,8 @@ import java.awt.RenderingHints import java.awt.event.MouseAdapter import java.awt.event.MouseEvent import java.net.URI +import java.net.URLDecoder +import java.nio.charset.StandardCharsets import java.nio.file.Path import javax.imageio.ImageIO import javax.swing.Icon @@ -35,6 +37,7 @@ import javax.swing.JButton import javax.swing.JComponent import javax.swing.JPanel import javax.swing.SwingConstants +import javax.swing.SwingUtilities data class AttachmentCardItem( val name: String, @@ -51,38 +54,37 @@ open class AttachmentCard( private var gen = 0 private var loaded = false private val icon = mimeIcon(item.mime) - private val preview = PreviewPanel().apply { - layout = BorderLayout() - add(JBLabel(icon, SwingConstants.CENTER).align(HAlign.CENTER, VAlign.CENTER), BorderLayout.CENTER) + private val tip = tooltip(item) + private val open = open?.let { callback -> + object : MouseAdapter() { + override fun mouseClicked(e: MouseEvent) { + callback() + } + } } - private var title: JBLabel? = null - private var kind: JBLabel? = null - private val titleLabel = JBLabel(item.name).apply { - font = JBFont.small().asBold() - title = this - } - private val kindLabel = JBLabel(item.mime).apply { - font = JBFont.small() - foreground = UIUtil.getContextHelpForeground() - kind = this + private val hover = object : MouseAdapter() { + override fun mouseEntered(e: MouseEvent) { + showAction(true) + } + + override fun mouseMoved(e: MouseEvent) { + showAction(true) + } + + override fun mouseExited(e: MouseEvent) { + val point = SwingUtilities.convertPoint(e.component, e.point, this@AttachmentCard) + showAction(contains(point)) + } } + private val preview = PreviewPanel(::watch).apply { setIcon(icon) } private val content = JPanel(BorderLayout()).apply { isOpaque = false - border = JBUI.Borders.empty(UiStyle.Gap.sm()) - add(preview, BorderLayout.NORTH) - add( - JPanel(BorderLayout()).apply { - isOpaque = false - border = JBUI.Borders.emptyTop(UiStyle.Gap.sm()) - add(titleLabel, BorderLayout.NORTH) - add(kindLabel, BorderLayout.SOUTH) - }, - BorderLayout.CENTER, - ) + border = JBUI.Borders.empty(UiStyle.Gap.xs()) + add(preview, BorderLayout.CENTER) } private val action = remove?.let { callback -> - HoverIcon().apply { - icon = AllIcons.Actions.Close + CloseButton().apply { + isVisible = false toolTipText = KiloBundle.message("prompt.attachment.remove", item.name) accessibleContext?.accessibleName = toolTipText addActionListener { callback() } @@ -92,11 +94,14 @@ open class AttachmentCard( init { isOpaque = false cursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR) - toolTipText = KiloBundle.message("prompt.attachment.tooltip", item.name, item.mime, item.url) + toolTipText = tip accessibleContext?.accessibleName = KiloBundle.message("prompt.attachment.open", item.name) add(content) - if (action != null) add(action) - if (open != null) installOpen(content, open) + if (action != null) { + add(action) + setComponentZOrder(action, 0) + } + watch(this) } override fun getPreferredSize(): Dimension = JBUI.size( @@ -115,13 +120,6 @@ open class AttachmentCard( load() } - override fun updateUI() { - super.updateUI() - title?.font = JBFont.small().asBold() - kind?.font = JBFont.small() - kind?.foreground = UIUtil.getContextHelpForeground() - } - override fun paintComponent(g: Graphics) { val g2 = g.create() as Graphics2D try { @@ -143,8 +141,8 @@ open class AttachmentCard( if (!item.mime.startsWith("image/")) return val stamp = ++gen val size = JBUI.size( - SessionUiStyle.View.Attachment.CARD_WIDTH - UiStyle.Gap.lg() * 2, - SessionUiStyle.View.Attachment.PREVIEW_HEIGHT, + SessionUiStyle.View.Attachment.CARD_WIDTH - UiStyle.Gap.xs() * 2, + SessionUiStyle.View.Attachment.CARD_HEIGHT - UiStyle.Gap.xs() * 2, ) ApplicationManager.getApplication().executeOnPooledThread { val image = runCatching { ImageIO.read(path.toFile()) }.getOrNull() @@ -157,34 +155,45 @@ open class AttachmentCard( } } - private fun installOpen(root: Component, open: () -> Unit) { - val listener = object : MouseAdapter() { - override fun mouseClicked(e: MouseEvent) { - open() + private fun watch(node: Component) { + if (node is JComponent && node !is JButton) node.toolTipText = tip + node.removeMouseListener(hover) + node.removeMouseMotionListener(hover) + node.addMouseListener(hover) + node.addMouseMotionListener(hover) + open?.let { + node.removeMouseListener(it) + if (node !is JButton) { + node.cursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR) + node.addMouseListener(it) } } - fun visit(node: Component) { - if (node is JButton) return - node.cursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR) - node.addMouseListener(listener) - if (node is Container) node.components.forEach(::visit) - } - visit(root) + if (node is Container) node.components.forEach(::watch) } - private class PreviewPanel : JPanel(BorderLayout()) { + private fun showAction(value: Boolean) { + val button = action ?: return + if (button.isVisible == value) return + button.isVisible = value + revalidate() + repaint() + } + + private class PreviewPanel(private val watch: (Component) -> Unit) : JPanel(BorderLayout()) { init { isOpaque = false } override fun getPreferredSize(): Dimension = JBUI.size( - SessionUiStyle.View.Attachment.CARD_WIDTH - UiStyle.Gap.lg() * 2, - SessionUiStyle.View.Attachment.PREVIEW_HEIGHT, + SessionUiStyle.View.Attachment.CARD_WIDTH - UiStyle.Gap.xs() * 2, + SessionUiStyle.View.Attachment.CARD_HEIGHT - UiStyle.Gap.xs() * 2, ) fun setIcon(next: Icon) { + val label = JBLabel(next, SwingConstants.CENTER).align(HAlign.CENTER, VAlign.CENTER) removeAll() - add(JBLabel(next, SwingConstants.CENTER).align(HAlign.CENTER, VAlign.CENTER), BorderLayout.CENTER) + add(label, BorderLayout.CENTER) + watch(label) revalidate() repaint() } @@ -219,15 +228,38 @@ open class AttachmentCard( override fun invalidateLayout(target: Container) = Unit override fun layoutContainer(parent: Container) { - if (parent.componentCount == 0) return - val content = parent.getComponent(0) - content.setBounds(0, 0, parent.width, parent.height) - if (parent.componentCount < 2) return - val action = parent.getComponent(1) val size = JBUI.scale(SessionUiStyle.View.Attachment.CLOSE_SIZE) - action.setBounds(parent.width - size - UiStyle.Gap.xs(), UiStyle.Gap.xs(), size, size) + for (i in 0 until parent.componentCount) { + val child = parent.getComponent(i) + if (child is JButton) { + child.setBounds(parent.width - size - UiStyle.Gap.xs(), UiStyle.Gap.xs(), size, size) + continue + } + child.setBounds(0, 0, parent.width, parent.height) + } } } + + private class CloseButton : JButton() { + init { + iconButton(this) + icon = REMOVE_ICON + addMouseListener(object : MouseAdapter() { + override fun mouseEntered(e: MouseEvent) { + icon = REMOVE_HOVER_ICON + } + + override fun mouseExited(e: MouseEvent) { + icon = REMOVE_ICON + } + }) + } + } + + companion object { + private val REMOVE_ICON: Icon = IconLoader.getIcon("/icons/remove.svg", AttachmentCard::class.java) + private val REMOVE_HOVER_ICON: Icon = IconLoader.getIcon("/icons/remove-hover.svg", AttachmentCard::class.java) + } } private fun scale(image: Image, width: Int, height: Int): Image { @@ -252,3 +284,17 @@ private fun mimeIcon(mime: String): Icon = when { mime == "application/x-directory" -> AllIcons.Nodes.Folder else -> AllIcons.FileTypes.Text } + +private fun tooltip(item: AttachmentCardItem): String = "${listOf( + "Name: ${item.name}", + "Type: ${item.mime}", + "Location: ${location(item)}", +).joinToString("
") { StringUtil.escapeXmlEntities(it) }}" + +private fun location(item: AttachmentCardItem): String { + if (item.path != null) return item.path.toString() + val uri = runCatching { URI.create(item.url) }.getOrNull() + if (uri?.scheme == "file") return runCatching { Path.of(uri).toString() } + .getOrElse { URLDecoder.decode(uri.rawSchemeSpecificPart.removePrefix("//"), StandardCharsets.UTF_8) } + return item.url +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt index cb7b3b6982..89264724be 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt @@ -73,10 +73,9 @@ object SessionUiStyle { /** Attachment preview card geometry. */ object Attachment { - const val CARD_WIDTH = 180 - const val CARD_HEIGHT = 132 - const val PREVIEW_HEIGHT = 84 - const val CLOSE_SIZE = 24 + const val CARD_WIDTH = 80 + const val CARD_HEIGHT = 59 + const val CLOSE_SIZE = 18 const val CORNER_ARC = 8 } diff --git a/packages/kilo-jetbrains/frontend/src/main/resources/icons/remove-hover.svg b/packages/kilo-jetbrains/frontend/src/main/resources/icons/remove-hover.svg new file mode 100644 index 0000000000..437e503501 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/resources/icons/remove-hover.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/kilo-jetbrains/frontend/src/main/resources/icons/remove-hover_dark.svg b/packages/kilo-jetbrains/frontend/src/main/resources/icons/remove-hover_dark.svg new file mode 100644 index 0000000000..e604cb6887 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/resources/icons/remove-hover_dark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/kilo-jetbrains/frontend/src/main/resources/icons/remove.svg b/packages/kilo-jetbrains/frontend/src/main/resources/icons/remove.svg new file mode 100644 index 0000000000..fe39011256 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/resources/icons/remove.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/kilo-jetbrains/frontend/src/main/resources/icons/remove_dark.svg b/packages/kilo-jetbrains/frontend/src/main/resources/icons/remove_dark.svg new file mode 100644 index 0000000000..a00b482d88 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/resources/icons/remove_dark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/PromptPanelTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/PromptPanelTest.kt index c4041ee3cb..f10bd60e27 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/PromptPanelTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/PromptPanelTest.kt @@ -13,9 +13,11 @@ import com.intellij.openapi.actionSystem.UiDataProvider import com.intellij.openapi.keymap.KeymapUtil import com.intellij.testFramework.fixtures.BasePlatformTestCase import com.intellij.ui.EditorTextField +import com.intellij.ui.components.JBLabel import com.intellij.util.ui.EmptyIcon import com.intellij.util.ui.JBUI import java.awt.Container +import java.awt.event.MouseEvent import javax.swing.JButton import javax.swing.SwingUtilities @@ -120,8 +122,8 @@ class PromptPanelTest : BasePlatformTestCase() { assertEquals(1, panel.attachmentCountForTest()) } - fun `test attachment card has visible remove button and metadata tooltip`() { - val item = PromptAttachment("a", "a.txt", "text/plain", "file:///tmp/a.txt") + fun `test attachment card is compact icon only with tooltip metadata and hover remove`() { + val item = PromptAttachment("a", "a.txt", "text/plain", "file:///tmp/a%20b.txt") val panel = PromptPanel(project, { _, _ -> }, {}) panel.addAttachmentForTest(item) @@ -129,12 +131,41 @@ class PromptPanelTest : BasePlatformTestCase() { val button = attachmentRemoveButton(panel, item) val card = attachmentCard(panel) - assertTrue(button.isVisible) + assertFalse(button.isVisible) assertTrue(card.toolTipText.contains("a.txt")) assertTrue(card.toolTipText.contains("text/plain")) - assertTrue(card.toolTipText.contains("file:///tmp/a.txt")) + assertTrue(card.toolTipText.contains("/tmp/a b.txt")) + assertFalse(card.toolTipText.contains("file:///")) + assertTrue(card.toolTipText.startsWith("")) + assertTrue(card.toolTipText.contains("Name: a.txt
Type: text/plain
Location: /tmp/a b.txt")) + assertFalse(labels(card).any { it.text == "a.txt" || it.text == "text/plain" || it.text == "/tmp/a b.txt" }) + assertTrue(components(card).filterIsInstance().any { it !== button && it.toolTipText == card.toolTipText }) assertEquals(JBUI.scale(SessionUiStyle.View.Attachment.CARD_WIDTH), card.preferredSize.width) assertEquals(JBUI.scale(SessionUiStyle.View.Attachment.CARD_HEIGHT), card.preferredSize.height) + assertEquals(0, card.getComponentZOrder(button)) + + val label = labels(card).first() + label.dispatchEvent(MouseEvent(label, MouseEvent.MOUSE_ENTERED, System.currentTimeMillis(), 0, 1, 1, 0, false)) + + assertTrue(button.isVisible) + val icon = button.icon + button.dispatchEvent(MouseEvent(button, MouseEvent.MOUSE_ENTERED, System.currentTimeMillis(), 0, 1, 1, 0, false)) + assertNotSame(icon, button.icon) + button.dispatchEvent(MouseEvent(button, MouseEvent.MOUSE_EXITED, System.currentTimeMillis(), 0, 1, 1, 0, false)) + assertSame(icon, button.icon) + } + + fun `test attachment child click opens item`() { + var opened = false + val card = AttachmentCard( + ai.kilocode.client.session.ui.attachment.AttachmentCardItem("a.txt", "text/plain", "file:///tmp/a.txt"), + open = { opened = true }, + ) + + val label = labels(card).first() + label.dispatchEvent(MouseEvent(label, MouseEvent.MOUSE_CLICKED, System.currentTimeMillis(), 0, 1, 1, 1, false)) + + assertTrue(opened) } fun `test reasoning picker hides when variants are empty`() { @@ -297,6 +328,20 @@ class PromptPanelTest : BasePlatformTestCase() { return out } + private fun labels(root: java.awt.Component): List { + return components(root).filterIsInstance() + } + + private fun components(root: java.awt.Component): List { + val out = mutableListOf() + fun visit(node: java.awt.Component) { + out.add(node) + if (node is Container) node.components.forEach(::visit) + } + visit(root) + return out + } + private class TestSink : DataSink { var send: Any? = null From 793cf934b72e7f9d71be3f23af058d88be67a9d3 Mon Sep 17 00:00:00 2001 From: kirillk Date: Mon, 8 Jun 2026 20:51:27 -0400 Subject: [PATCH 005/109] feat(jetbrains): add session file drop overlay --- .changeset/jetbrains-session-drop-overlay.md | 5 ++ .../ai/kilocode/client/session/SessionUi.kt | 32 +++++++ .../client/session/ui/SessionDropOverlay.kt | 89 +++++++++++++++++++ .../client/session/ui/prompt/PromptPanel.kt | 15 +++- .../client/session/ui/style/SessionUiStyle.kt | 16 ++++ .../kilocode/client/ui/LayeredOverlayPanel.kt | 2 +- .../resources/messages/KiloBundle.properties | 2 + .../client/session/SessionUiLayoutTest.kt | 61 +++++++++++++ .../client/session/ui/SessionRootPanelTest.kt | 73 +++++++++++++++ 9 files changed, 290 insertions(+), 5 deletions(-) create mode 100644 .changeset/jetbrains-session-drop-overlay.md create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionDropOverlay.kt diff --git a/.changeset/jetbrains-session-drop-overlay.md b/.changeset/jetbrains-session-drop-overlay.md new file mode 100644 index 0000000000..64be585e38 --- /dev/null +++ b/.changeset/jetbrains-session-drop-overlay.md @@ -0,0 +1,5 @@ +--- +"@kilocode/kilo-jetbrains": patch +--- + +Support dropping files anywhere in a JetBrains chat session to add them to the prompt. diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt index 204cb624b8..3e52941a7a 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt @@ -19,6 +19,7 @@ import ai.kilocode.client.session.ui.mode.ModePicker import ai.kilocode.client.session.ui.model.ModelPicker import ai.kilocode.client.session.ui.prompt.PromptPanel import ai.kilocode.client.session.ui.account.SessionAccountOverlay +import ai.kilocode.client.session.ui.SessionDropOverlay import ai.kilocode.client.session.ui.SessionRootPanel import ai.kilocode.client.session.ui.SessionMessageListPanel import ai.kilocode.client.session.ui.header.SessionHeaderPanel @@ -68,6 +69,7 @@ import java.awt.BorderLayout import java.awt.event.HierarchyEvent import javax.swing.JComponent import javax.swing.JPanel +import javax.swing.Timer import javax.swing.UIManager /** @@ -91,6 +93,7 @@ class SessionUi( companion object { private val LOG = KiloLog.create(SessionUi::class.java) + private const val HIDE_MS = 120 } private val project = project @@ -127,6 +130,13 @@ class SessionUi( private lateinit var root: SessionRootPanel private lateinit var account: SessionAccountOverlay + private lateinit var drop: SessionDropOverlay + private val hide = Timer(HIDE_MS) { + if (disposed || !this::drop.isInitialized) return@Timer + drop.setActive(false) + }.apply { + isRepeats = false + } private lateinit var sessionContent: JPanel @@ -301,6 +311,16 @@ class SessionUi( onAbort = { controller.abort() }, ) + drop = SessionDropOverlay() + root.addOverlay(drop) { pane, _ -> + java.awt.Rectangle(0, 0, pane.width, pane.height) + } + root.overlay.setComponentZOrder(drop, 0) + prompt.onFileDrag = ::syncDrop + prompt.installFileDrop(root, "session-root") + // The visual overlay returns contains(false) so normal UI remains clickable. + // Registering it as a native DnD target makes IntelliJ resolve a null over-component. + sessionContent.add(header, BorderLayout.NORTH) sessionContent.add(scroll.component, BorderLayout.CENTER) root.content.add(sessionContent, BorderLayout.CENTER) @@ -427,6 +447,17 @@ class SessionUi( } } + @RequiresEdt + private fun syncDrop(value: Boolean) { + if (disposed) return + if (value) { + hide.stop() + drop.setActive(true) + return + } + hide.restart() + } + private fun bindMigration() { cs.launch { migration.state.collect { state -> @@ -595,6 +626,7 @@ class SessionUi( override fun dispose() { disposed = true + hide.stop() modalFocus = null empty = null if (this::root.isInitialized) root.setModalContent(null) diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionDropOverlay.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionDropOverlay.kt new file mode 100644 index 0000000000..b87727cad7 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionDropOverlay.kt @@ -0,0 +1,89 @@ +package ai.kilocode.client.session.ui + +import ai.kilocode.client.plugin.KiloBundle +import ai.kilocode.client.session.ui.style.SessionUiStyle +import ai.kilocode.client.ui.RoundedContentPanel +import ai.kilocode.client.ui.layout.HAlign +import ai.kilocode.client.ui.layout.Stack +import ai.kilocode.client.ui.layout.VAlign +import ai.kilocode.client.ui.layout.align +import com.intellij.icons.AllIcons +import com.intellij.ui.components.JBLabel +import com.intellij.util.concurrency.annotations.RequiresEdt +import com.intellij.util.ui.JBFont +import com.intellij.util.ui.JBUI +import com.intellij.util.ui.UIUtil +import com.intellij.util.ui.components.BorderLayoutPanel +import java.awt.BorderLayout +import java.awt.Color +import java.awt.Graphics +import java.awt.Graphics2D + +class SessionDropOverlay : BorderLayoutPanel() { + private val title = KiloBundle.message("session.drop.files.title") + private val subtitle = KiloBundle.message("session.drop.files.subtitle") + private val text = "$title $subtitle" + private val card = Card() + private var active = false + + init { + isOpaque = false + accessibleContext?.accessibleName = text + + val primary = JBLabel(title).apply { + font = JBFont.h0() + foreground = UIUtil.getLabelForeground() + } + val secondary = JBLabel(subtitle).apply { + font = JBFont.h2() + foreground = UIUtil.getLabelForeground() + } + val icon = JBLabel(AllIcons.Actions.Download) + val labels = Stack.vertical(JBUI.scale(SessionUiStyle.View.DropOverlay.LABEL_GAP)) + .next(primary.align(HAlign.CENTER, VAlign.CENTER)) + .next(secondary.align(HAlign.CENTER, VAlign.CENTER)) + .next(icon.align(HAlign.CENTER, VAlign.CENTER)) + card.apply { + isVisible = false + add(labels, BorderLayout.CENTER) + } + add(card.align(HAlign.CENTER, VAlign.CENTER), BorderLayout.CENTER) + } + + @RequiresEdt + fun setActive(value: Boolean) { + if (active == value) return + active = value + card.isVisible = value + revalidate() + repaint() + } + + override fun contains(x: Int, y: Int): Boolean = false + + override fun paintComponent(g: Graphics) { + if (!active) { + super.paintComponent(g) + return + } + val g2 = g.create() as Graphics2D + try { + g2.color = SessionUiStyle.View.DropOverlay.scrim() + g2.fillRect(0, 0, width, height) + } finally { + g2.dispose() + } + super.paintComponent(g) + } + + private class Card : RoundedContentPanel( + JBUI.scale(SessionUiStyle.View.DropOverlay.CARD_VERTICAL_PADDING), + JBUI.scale(SessionUiStyle.View.DropOverlay.CARD_HORIZONTAL_PADDING), + ) { + override fun contentColor(): Color = SessionUiStyle.View.DropOverlay.card() + + override fun outlineColor(): Color? = null + + override fun cornerArc(): Int = JBUI.scale(SessionUiStyle.View.DropOverlay.CARD_ARC) + } +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptPanel.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptPanel.kt index f17478075d..7ebb3c14ca 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptPanel.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptPanel.kt @@ -89,6 +89,7 @@ class PromptPanel( var onReset: () -> Unit = {} var onChange: () -> Unit = {} var onAutoApproveToggle: (Boolean) -> Unit = {} + var onFileDrag: (Boolean) -> Unit = {} private var style = SessionEditorStyle.current() private val shell = PromptShell() private val attachments = mutableListOf() @@ -115,8 +116,8 @@ class PromptPanel( ed.settings.isAdditionalPageAtBottom = false ed.scrollPane.horizontalScrollBarPolicy = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER - installDnD(ed.contentComponent, "editor") - installDnD(ed.scrollPane, "scroll") + installFileDrop(ed.contentComponent, "editor") + installFileDrop(ed.scrollPane, "scroll") ed.contentComponent.addFocusListener(object : FocusAdapter() { override fun focusGained(e: FocusEvent) { shell.repaint() @@ -207,7 +208,7 @@ class PromptPanel( bar.add(button) shell.add(bar, BorderLayout.SOUTH) add(shell, BorderLayout.CENTER) - installDnD(shell, "shell") + installFileDrop(shell, "shell") syncTooltip() syncAutoApprove() } @@ -350,24 +351,30 @@ class PromptPanel( } ) - private fun installDnD(target: JComponent, area: String) { + internal fun installFileDrop(target: JComponent, area: String) { LOG.debug { "kind=prompt-dnd install area=$area component=${target.javaClass.name}" } DnDSupport.createBuilder(target) .enableAsNativeTarget() .setTargetChecker { event -> if (!FileCopyPasteUtil.isFileListFlavorAvailable(event)) { + onFileDrag(false) LOG.debug { "kind=prompt-dnd check area=$area accept=false flavor=false" } return@setTargetChecker true } event.setDropPossible(true) + onFileDrag(true) LOG.debug { "kind=prompt-dnd check area=$area accept=true flavor=true" } false } + .setCleanUpOnLeaveCallback { + onFileDrag(false) + } .setDropHandlerWithResult { event -> val start = System.nanoTime() val files = dropFiles(event) val ms = elapsedMs(start) LOG.debug { "kind=prompt-dnd drop area=$area files=${files.size} extractMs=$ms queued=${files.isNotEmpty()}" } + onFileDrag(false) if (files.isEmpty()) return@setDropHandlerWithResult false processDrop(files, area, ms) true diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt index 89264724be..3acd2f21af 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt @@ -79,6 +79,22 @@ object SessionUiStyle { const val CORNER_ARC = 8 } + /** Full-session file drop overlay geometry and colors. */ + object DropOverlay { + const val CARD_VERTICAL_PADDING = 16 + const val CARD_HORIZONTAL_PADDING = 20 + const val CARD_ARC = 12 + const val LABEL_GAP = 2 + private const val SCRIM_ALPHA = 210 + + fun scrim(): Color = JBColor.lazy { + val bg = UiStyle.Colors.bg() + Color(bg.red, bg.green, bg.blue, SCRIM_ALPHA) + } + + fun card(): Color = UiStyle.Colors.contentBackground() + } + /** Reasoning block preview sizing. */ object Reasoning { const val BODY_LINES = 5 diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/LayeredOverlayPanel.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/LayeredOverlayPanel.kt index 311bee99c9..1ff400346b 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/LayeredOverlayPanel.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/LayeredOverlayPanel.kt @@ -108,7 +108,7 @@ open class LayeredOverlayPanel( override fun contains(x: Int, y: Int): Boolean { for (child in components) { - if (child.isVisible && child.bounds.contains(x, y)) return true + if (child.isVisible && child.bounds.contains(x, y) && child.contains(x - child.x, y - child.y)) return true } return false } diff --git a/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties b/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties index a05c654fc4..f1584af00b 100644 --- a/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties +++ b/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties @@ -20,6 +20,8 @@ feedback.dialog.discord=Join our Discord community feedback.dialog.support=Customer Support session.scroll.bottom=Scroll to bottom session.scroll.question=Scroll to question +session.drop.files.title=Drop files here +session.drop.files.subtitle=to add them to the prompt session.tab.new=New Session session.tab.untitled=Untitled Session diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/SessionUiLayoutTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/SessionUiLayoutTest.kt index fc91e303e1..9fa3063df0 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/SessionUiLayoutTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/SessionUiLayoutTest.kt @@ -10,6 +10,7 @@ import ai.kilocode.client.session.model.SessionState import ai.kilocode.client.session.ui.ConnectionPanel import ai.kilocode.client.session.ui.empty.EmptySessionPanel import ai.kilocode.client.session.ui.LoadingPanel +import ai.kilocode.client.session.ui.SessionDropOverlay import ai.kilocode.client.session.ui.prompt.PromptPanel import ai.kilocode.client.session.ui.account.SessionAccountOverlay import ai.kilocode.client.session.ui.SessionMessageListPanel @@ -56,6 +57,59 @@ class SessionUiLayoutTest : SessionUiTestBase() { assertEquals(listOf(connection, prompt), stack.components.toList()) } + fun `test drop overlay is attached under root overlay layer`() { + val root = find(ui) + val drop = find(ui) + + assertSame(root.overlay, drop.parent) + assertTrue(drop.isVisible) + assertFalse(drop.contains(1, 1)) + assertFalse(root.blocker.components.contains(drop)) + } + + fun `test drop overlay is visual only and not native file drop target`() { + val drop = find(ui) + + assertNull(drop.dropTarget) + } + + fun `test prompt file drag leave does not immediately hide drop overlay`() { + val prompt = find(ui) + val drop = find(ui) + val card = dropCard(drop) + + layout() + prompt.onFileDrag(true) + assertFalse(drop.contains(1, 1)) + assertTrue(card.isVisible) + + prompt.onFileDrag(false) + assertFalse(drop.contains(1, 1)) + assertTrue(card.isVisible) + + prompt.onFileDrag(true) + drop.setActive(false) + } + + fun `test drop overlay covers full session after layout`() { + val root = find(ui) + val drop = find(ui) + + layout() + + assertEquals(java.awt.Rectangle(0, 0, root.overlay.width, root.overlay.height), drop.bounds) + } + + fun `test drop overlay is above account and scroll overlays`() { + val root = find(ui) + val drop = find(ui) + val account = find(ui) + val jump = jumpButton() + + assertTrue(root.overlay.getComponentZOrder(drop) < root.overlay.getComponentZOrder(account)) + assertTrue(root.overlay.getComponentZOrder(drop) < root.overlay.getComponentZOrder(jump)) + } + fun `test active views are children of message list panel`() { ui = newUi(id = "ses_test") settle() @@ -465,4 +519,11 @@ class SessionUiLayoutTest : SessionUiTestBase() { assertEquals(top, overlay.y) assertEquals(root.overlay.width - overlay.width - right, overlay.x) } + + private fun dropCard(drop: SessionDropOverlay) = drop.components + .single() + .let { it as javax.swing.JComponent } + .components + .single() + .let { it as javax.swing.JComponent } } diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionRootPanelTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionRootPanelTest.kt index f7e69f4ca4..d7559fdb8a 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionRootPanelTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionRootPanelTest.kt @@ -1,7 +1,10 @@ package ai.kilocode.client.session.ui import ai.kilocode.client.ui.UiStyle +import com.intellij.icons.AllIcons import com.intellij.testFramework.fixtures.BasePlatformTestCase +import com.intellij.ui.components.JBLabel +import com.intellij.util.ui.JBFont import com.intellij.util.ui.components.BorderLayoutPanel import java.awt.Dimension import java.awt.Rectangle @@ -71,6 +74,62 @@ class SessionRootPanelTest : BasePlatformTestCase() { assertTrue(child.laid) } + fun `test drop overlay starts visible but never captures hit tests`() { + val drop = SessionDropOverlay().apply { + setSize(200, 100) + } + val card = dropCard(drop) + + assertTrue(drop.isVisible) + assertFalse(drop.contains(50, 50)) + assertFalse(card.isVisible) + + drop.setActive(true) + assertFalse(drop.contains(50, 50)) + assertTrue(card.isVisible) + + drop.setActive(false) + assertFalse(drop.contains(50, 50)) + assertFalse(card.isVisible) + } + + fun `test drop overlay can fill root overlay bounds`() { + val root = SessionRootPanel().apply { + setSize(400, 260) + } + val drop = SessionDropOverlay() + + root.addOverlay(drop) { pane, _ -> + Rectangle(0, 0, pane.width, pane.height) + } + root.doLayout() + + assertEquals(Rectangle(0, 0, 400, 260), drop.bounds) + } + + fun `test drop overlay labels use platform heading fonts`() { + val drop = SessionDropOverlay() + val labels = dropLabels(drop) + + assertEquals("Drop files here", labels[0].text) + assertEquals(JBFont.h0(), labels[0].font) + assertEquals("to add them to the prompt", labels[1].text) + assertEquals(JBFont.h2(), labels[1].font) + assertSame(AllIcons.Actions.Download, labels[2].icon) + } + + fun `test drop overlay is registered in overlay layer not blocker`() { + val root = SessionRootPanel() + val drop = SessionDropOverlay() + + root.addOverlay(drop) { pane, _ -> + Rectangle(0, 0, pane.width, pane.height) + } + + assertSame(root.overlay, drop.parent) + assertFalse(root.blocker.components.contains(drop)) + } + fun `test setBlocked makes blocker visible and setBlocked false hides it`() { val root = SessionRootPanel().apply { setSize(200, 100) } root.doLayout() @@ -135,4 +194,18 @@ class SessionRootPanelTest : BasePlatformTestCase() { super.doLayout() } } + + private fun dropCard(drop: SessionDropOverlay) = drop.components + .single() + .let { it as javax.swing.JComponent } + .components + .single() + .let { it as javax.swing.JComponent } + + private fun dropLabels(drop: SessionDropOverlay): List { + val stack = dropCard(drop).components.single() as javax.swing.JComponent + return stack.components + .map { it as javax.swing.JComponent } + .map { it.components.single() as JBLabel } + } } From b85ce6df667324db7e30b870107eaa1ff55e27d1 Mon Sep 17 00:00:00 2001 From: kirillk Date: Tue, 9 Jun 2026 09:25:28 -0400 Subject: [PATCH 006/109] fix(jetbrains): refine drop overlay icon spacing --- .../ai/kilocode/client/session/ui/SessionDropOverlay.kt | 4 +++- .../ai/kilocode/client/session/ui/style/SessionUiStyle.kt | 1 + .../ai/kilocode/client/session/ui/SessionRootPanelTest.kt | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionDropOverlay.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionDropOverlay.kt index b87727cad7..c0a99af67e 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionDropOverlay.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionDropOverlay.kt @@ -9,6 +9,7 @@ import ai.kilocode.client.ui.layout.VAlign import ai.kilocode.client.ui.layout.align import com.intellij.icons.AllIcons import com.intellij.ui.components.JBLabel +import com.intellij.util.IconUtil import com.intellij.util.concurrency.annotations.RequiresEdt import com.intellij.util.ui.JBFont import com.intellij.util.ui.JBUI @@ -38,10 +39,11 @@ class SessionDropOverlay : BorderLayoutPanel() { font = JBFont.h2() foreground = UIUtil.getLabelForeground() } - val icon = JBLabel(AllIcons.Actions.Download) + val icon = JBLabel(IconUtil.scale(AllIcons.Actions.Download, null, 3f)) val labels = Stack.vertical(JBUI.scale(SessionUiStyle.View.DropOverlay.LABEL_GAP)) .next(primary.align(HAlign.CENTER, VAlign.CENTER)) .next(secondary.align(HAlign.CENTER, VAlign.CENTER)) + .gap(JBUI.scale(SessionUiStyle.View.DropOverlay.ICON_GAP)) .next(icon.align(HAlign.CENTER, VAlign.CENTER)) card.apply { isVisible = false diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt index 3acd2f21af..b1004274a4 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt @@ -85,6 +85,7 @@ object SessionUiStyle { const val CARD_HORIZONTAL_PADDING = 20 const val CARD_ARC = 12 const val LABEL_GAP = 2 + const val ICON_GAP = 10 private const val SCRIM_ALPHA = 210 fun scrim(): Color = JBColor.lazy { diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionRootPanelTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionRootPanelTest.kt index d7559fdb8a..6f8be31660 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionRootPanelTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionRootPanelTest.kt @@ -115,7 +115,8 @@ class SessionRootPanelTest : BasePlatformTestCase() { assertEquals(JBFont.h0(), labels[0].font) assertEquals("to add them to the prompt", labels[1].text) assertEquals(JBFont.h2(), labels[1].font) - assertSame(AllIcons.Actions.Download, labels[2].icon) + assertEquals(AllIcons.Actions.Download.iconWidth * 3, labels[2].icon.iconWidth) + assertEquals(AllIcons.Actions.Download.iconHeight * 3, labels[2].icon.iconHeight) } fun `test drop overlay is registered in overlay layer not blocker`() { From 49339a2583f6c51db9d1bfdc3f37ee5a4185b8a9 Mon Sep 17 00:00:00 2001 From: kirillk Date: Tue, 9 Jun 2026 11:30:21 -0400 Subject: [PATCH 007/109] feat(jetbrains): support pasting prompt attachments --- .changeset/jetbrains-paste-attachments.md | 5 + .../client/session/model/PromptAttachment.kt | 41 +++++ .../session/ui/attachment/AttachmentCard.kt | 1 + .../prompt/PromptAttachmentPasteProvider.kt | 42 +++++ .../client/session/ui/prompt/PromptPanel.kt | 36 +++- .../resources/kilo.jetbrains.frontend.xml | 1 + .../resources/messages/KiloBundle.properties | 1 + .../client/session/ui/PromptPanelTest.kt | 157 ++++++++++++++++++ 8 files changed, 276 insertions(+), 8 deletions(-) create mode 100644 .changeset/jetbrains-paste-attachments.md create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptAttachmentPasteProvider.kt diff --git a/.changeset/jetbrains-paste-attachments.md b/.changeset/jetbrains-paste-attachments.md new file mode 100644 index 0000000000..1003291b27 --- /dev/null +++ b/.changeset/jetbrains-paste-attachments.md @@ -0,0 +1,5 @@ +--- +"@kilocode/kilo-jetbrains": patch +--- + +Support pasting files and images into JetBrains chat prompts as attachments. diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/PromptAttachment.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/PromptAttachment.kt index 5dbee5a211..2e4f171035 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/PromptAttachment.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/PromptAttachment.kt @@ -1,6 +1,13 @@ package ai.kilocode.client.session.model import ai.kilocode.rpc.dto.PromptPartDto +import java.awt.Image +import java.awt.image.BufferedImage +import java.awt.image.MultiResolutionImage +import java.io.ByteArrayOutputStream +import java.util.Base64 +import java.util.UUID +import javax.imageio.ImageIO import java.nio.file.Path import kotlin.io.path.name @@ -35,6 +42,25 @@ object PromptAttachmentExtractor { fun media(mime: String): Boolean = mime.startsWith("image/") || mime == "application/pdf" + fun image(raw: Any): PromptAttachment? { + val image = when (raw) { + is MultiResolutionImage -> raw.resolutionVariants.firstOrNull()?.buffered() + is BufferedImage -> raw + is Image -> raw.buffered() + else -> null + } ?: return null + val out = ByteArrayOutputStream() + ImageIO.write(image, "png", out) + val id = UUID.randomUUID().toString() + val data = Base64.getEncoder().encodeToString(out.toByteArray()) + return PromptAttachment( + id = "clipboard-image:$id", + name = "pasted-image-$id.png", + mime = "image/png", + url = "data:image/png;base64,$data", + ) + } + private fun mime(file: java.io.File): String { if (file.isDirectory) return "application/x-directory" return when (file.extension.lowercase()) { @@ -49,4 +75,19 @@ object PromptAttachmentExtractor { else -> "application/octet-stream" } } + + private fun Image.buffered(): BufferedImage? { + if (this is BufferedImage) return this + val width = getWidth(null) + val height = getHeight(null) + if (width <= 0 || height <= 0) return null + val image = BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB) + val g = image.createGraphics() + try { + g.drawImage(this, 0, 0, null) + } finally { + g.dispose() + } + return image + } } diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt index 6e4221df66..27347b3b2b 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt @@ -294,6 +294,7 @@ private fun tooltip(item: AttachmentCardItem): String = "${listOf( private fun location(item: AttachmentCardItem): String { if (item.path != null) return item.path.toString() val uri = runCatching { URI.create(item.url) }.getOrNull() + if (uri?.scheme == "data") return KiloBundle.message("prompt.attachment.embedded") if (uri?.scheme == "file") return runCatching { Path.of(uri).toString() } .getOrElse { URLDecoder.decode(uri.rawSchemeSpecificPart.removePrefix("//"), StandardCharsets.UTF_8) } return item.url diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptAttachmentPasteProvider.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptAttachmentPasteProvider.kt new file mode 100644 index 0000000000..e6b0ffbae5 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptAttachmentPasteProvider.kt @@ -0,0 +1,42 @@ +package ai.kilocode.client.session.ui.prompt + +import com.intellij.ide.PasteProvider +import com.intellij.ide.dnd.FileCopyPasteUtil +import com.intellij.openapi.actionSystem.ActionUpdateThread +import com.intellij.openapi.actionSystem.CommonDataKeys +import com.intellij.openapi.actionSystem.DataContext +import com.intellij.openapi.editor.actions.PasteAction +import com.intellij.openapi.util.Key +import java.awt.datatransfer.DataFlavor +import java.awt.datatransfer.Transferable + +internal fun interface PromptAttachmentPasteHandler { + fun paste(transferable: Transferable) +} + +internal val PROMPT_ATTACHMENT_PASTE_HANDLER_KEY: Key = + Key.create("ai.kilocode.client.session.ui.prompt.PromptAttachmentPasteHandler") + +internal class PromptAttachmentPasteProvider : PasteProvider { + override fun getActionUpdateThread(): ActionUpdateThread = ActionUpdateThread.BGT + + override fun isPastePossible(dataContext: DataContext): Boolean = transferable(dataContext) != null + + override fun isPasteEnabled(dataContext: DataContext): Boolean = isPastePossible(dataContext) + + override fun performPaste(dataContext: DataContext) { + val editor = dataContext.getData(CommonDataKeys.EDITOR) ?: return + val handler = editor.getUserData(PROMPT_ATTACHMENT_PASTE_HANDLER_KEY) ?: return + val item = transferable(dataContext) ?: return + handler.paste(item) + } + + private fun transferable(dataContext: DataContext): Transferable? { + val editor = dataContext.getData(CommonDataKeys.EDITOR) ?: return null + if (editor.getUserData(PROMPT_ATTACHMENT_PASTE_HANDLER_KEY) == null) return null + val item = dataContext.getData(PasteAction.TRANSFERABLE_PROVIDER)?.produce() ?: return null + if (FileCopyPasteUtil.isFileListFlavorAvailable(item.transferDataFlavors)) return item + if (item.isDataFlavorSupported(DataFlavor.imageFlavor)) return item + return null + } +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptPanel.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptPanel.kt index 7ebb3c14ca..5463769f4a 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptPanel.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptPanel.kt @@ -52,10 +52,13 @@ import java.awt.Cursor import java.awt.Graphics import java.awt.Graphics2D import java.awt.RenderingHints +import java.awt.datatransfer.DataFlavor +import java.awt.datatransfer.Transferable import java.awt.event.FocusAdapter import java.awt.event.FocusEvent import java.awt.event.MouseAdapter import java.awt.event.MouseEvent +import java.util.concurrent.Future import javax.swing.Box import javax.swing.BoxLayout import javax.swing.Icon @@ -114,6 +117,7 @@ class PromptPanel( ed.scrollPane.viewport.background = style.editorScheme.defaultBackground ed.settings.isUseSoftWraps = true ed.settings.isAdditionalPageAtBottom = false + ed.putUserData(PROMPT_ATTACHMENT_PASTE_HANDLER_KEY, PromptAttachmentPasteHandler { processPaste(it) }) ed.scrollPane.horizontalScrollBarPolicy = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER installFileDrop(ed.contentComponent, "editor") @@ -295,6 +299,8 @@ class PromptPanel( addAttachment(item) } + internal fun processPasteForTest(transferable: Transferable): Future<*> = processPaste(transferable) + @RequiresEdt fun focus() { editor.requestFocusInWindow() @@ -376,27 +382,41 @@ class PromptPanel( LOG.debug { "kind=prompt-dnd drop area=$area files=${files.size} extractMs=$ms queued=${files.isNotEmpty()}" } onFileDrag(false) if (files.isEmpty()) return@setDropHandlerWithResult false - processDrop(files, area, ms) + processAttachments("prompt-dnd", area, files, null, ms) true } .install() } - private fun processDrop(files: List, area: String, dropMs: Long) { - ApplicationManager.getApplication().executeOnPooledThread { + private fun processPaste(transferable: Transferable): Future<*> { + return processAttachments("prompt-paste", "editor", null, transferable, 0) + } + + private fun processAttachments( + kind: String, + area: String, + files: List?, + transferable: Transferable?, + sourceMs: Long, + ): Future<*> { + return ApplicationManager.getApplication().executeOnPooledThread { val start = System.nanoTime() try { - val items = PromptAttachmentExtractor.files(files) + val list = files ?: transferable?.let { FileCopyPasteUtil.getFileList(it).orEmpty() }.orEmpty() + val image = transferable?.takeIf { list.isEmpty() && it.isDataFlavorSupported(DataFlavor.imageFlavor) } + ?.getTransferData(DataFlavor.imageFlavor) + ?.let(PromptAttachmentExtractor::image) + val items = PromptAttachmentExtractor.files(list) + listOfNotNull(image) val ms = elapsedMs(start) - LOG.debug { "kind=prompt-dnd extract area=$area files=${files.size} attachments=${items.size} extractMs=$ms dropMs=$dropMs" } + LOG.debug { "kind=$kind extract area=$area files=${list.size} image=${image != null} attachments=${items.size} extractMs=$ms sourceMs=$sourceMs" } if (items.isEmpty()) return@executeOnPooledThread ApplicationManager.getApplication().invokeLater { - if (project.isDisposed || !isDisplayable) return@invokeLater - LOG.debug { "kind=prompt-dnd attach area=$area files=${files.size} attachments=${items.size} extractMs=$ms dropMs=$dropMs" } + if (project.isDisposed) return@invokeLater + LOG.debug { "kind=$kind attach area=$area files=${list.size} image=${image != null} attachments=${items.size} extractMs=$ms sourceMs=$sourceMs" } items.forEach(::addAttachment) } } catch (e: Exception) { - LOG.warn("kind=prompt-dnd extract area=$area files=${files.size} failed message=${e.message}", e) + LOG.warn("kind=$kind extract area=$area failed message=${e.message}", e) } } } diff --git a/packages/kilo-jetbrains/frontend/src/main/resources/kilo.jetbrains.frontend.xml b/packages/kilo-jetbrains/frontend/src/main/resources/kilo.jetbrains.frontend.xml index de1f491c9a..0b317f1dc9 100644 --- a/packages/kilo-jetbrains/frontend/src/main/resources/kilo.jetbrains.frontend.xml +++ b/packages/kilo-jetbrains/frontend/src/main/resources/kilo.jetbrains.frontend.xml @@ -9,6 +9,7 @@ + }, {}) + val file = File.createTempFile("kilo-paste", ".txt") + file.writeText("hello") + + PlatformTestUtil.waitForFuture(panel.processPasteForTest(FileListTransferable(listOf(file)))) + UIUtil.dispatchAllInvocationEvents() + + assertEquals(1, panel.attachmentCountForTest()) + } + + fun `test raw image paste adds attachment`() { + val panel = PromptPanel(project, { _, _ -> }, {}) + val image = BufferedImage(2, 2, BufferedImage.TYPE_INT_ARGB) + + PlatformTestUtil.waitForFuture(panel.processPasteForTest(ImageTransferable(image))) + UIUtil.dispatchAllInvocationEvents() + + assertEquals(1, panel.attachmentCountForTest()) + } + + fun `test file paste ignores companion image flavor`() { + val panel = PromptPanel(project, { _, _ -> }, {}) + val file = File.createTempFile("kilo-paste", ".png") + file.writeBytes(byteArrayOf()) + val image = BufferedImage(2, 2, BufferedImage.TYPE_INT_ARGB) + + PlatformTestUtil.waitForFuture(panel.processPasteForTest(FileImageTransferable(listOf(file), image))) + UIUtil.dispatchAllInvocationEvents() + + assertEquals(1, panel.attachmentCountForTest()) + } + + fun `test normal text paste is not intercepted`() { + val editor = createEditor() + val provider = PromptAttachmentPasteProvider() + editor.putUserData(PROMPT_ATTACHMENT_PASTE_HANDLER_KEY, PromptAttachmentPasteHandler {}) + + try { + assertFalse(provider.isPasteEnabled(pasteContext(editor, StringSelection("hello")))) + } finally { + EditorFactory.getInstance().releaseEditor(editor) + } + } + + fun `test disabled media model blocks pasted image`() { + val panel = PromptPanel(project, { _, _ -> }, {}) + panel.setAttachmentEnabled(false) + + PlatformTestUtil.waitForFuture(panel.processPasteForTest(ImageTransferable(BufferedImage(2, 2, BufferedImage.TYPE_INT_ARGB)))) + UIUtil.dispatchAllInvocationEvents() + + assertEquals(0, panel.attachmentCountForTest()) + } + fun `test prompt button switches between send and stop state`() { val panel = PromptPanel(project, { _, _ -> }, {}) @@ -342,6 +444,61 @@ class PromptPanelTest : BasePlatformTestCase() { return out } + private fun createEditor(): Editor { + val factory = EditorFactory.getInstance() + return factory.createEditor(factory.createDocument(""), project) + } + + private fun pasteContext(editor: Editor, item: Transferable) = DataContext { id -> + when (id) { + CommonDataKeys.EDITOR.name -> editor + PasteAction.TRANSFERABLE_PROVIDER.name -> Producer { item } + else -> null + } + } + + private class FileListTransferable(private val files: List) : Transferable { + override fun getTransferDataFlavors(): Array = arrayOf(DataFlavor.javaFileListFlavor) + + override fun isDataFlavorSupported(flavor: DataFlavor): Boolean = flavor == DataFlavor.javaFileListFlavor + + override fun getTransferData(flavor: DataFlavor): Any { + if (!isDataFlavorSupported(flavor)) throw java.awt.datatransfer.UnsupportedFlavorException(flavor) + return files + } + } + + private class ImageTransferable(private val image: BufferedImage) : Transferable { + override fun getTransferDataFlavors(): Array = arrayOf(DataFlavor.imageFlavor) + + override fun isDataFlavorSupported(flavor: DataFlavor): Boolean = flavor == DataFlavor.imageFlavor + + override fun getTransferData(flavor: DataFlavor): Any { + if (!isDataFlavorSupported(flavor)) throw java.awt.datatransfer.UnsupportedFlavorException(flavor) + return image + } + } + + private class FileImageTransferable( + private val files: List, + private val image: BufferedImage, + ) : Transferable { + override fun getTransferDataFlavors(): Array = arrayOf( + DataFlavor.javaFileListFlavor, + DataFlavor.imageFlavor, + ) + + override fun isDataFlavorSupported(flavor: DataFlavor): Boolean { + return flavor == DataFlavor.javaFileListFlavor || flavor == DataFlavor.imageFlavor + } + + override fun getTransferData(flavor: DataFlavor): Any { + if (flavor == DataFlavor.javaFileListFlavor) return files + if (flavor == DataFlavor.imageFlavor) return image + throw java.awt.datatransfer.UnsupportedFlavorException(flavor) + } + } + private class TestSink : DataSink { var send: Any? = null From 52dfa5453ed6080270f9e07cf6e9cafd8df75cd7 Mon Sep 17 00:00:00 2001 From: kirillk Date: Tue, 9 Jun 2026 13:22:00 -0400 Subject: [PATCH 008/109] fix(jetbrains): sanitize read payloads in parser --- .changeset/jetbrains-hide-read-payloads.md | 5 + .../backend/app/KiloBackendChatManager.kt | 22 ++- .../kilocode/backend/cli/KiloCliDataParser.kt | 120 +++++++++++- .../backend/cli/KiloCliDataParserTest.kt | 171 ++++++++++++++++++ 4 files changed, 307 insertions(+), 11 deletions(-) create mode 100644 .changeset/jetbrains-hide-read-payloads.md diff --git a/.changeset/jetbrains-hide-read-payloads.md b/.changeset/jetbrains-hide-read-payloads.md new file mode 100644 index 0000000000..6216844f0c --- /dev/null +++ b/.changeset/jetbrains-hide-read-payloads.md @@ -0,0 +1,5 @@ +--- +"@kilocode/kilo-jetbrains": patch +--- + +Hide generated read-tool payload lines from JetBrains prompt bubbles while keeping attachments and assistant tool output visible. diff --git a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/app/KiloBackendChatManager.kt b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/app/KiloBackendChatManager.kt index 068980da19..b868ff25c9 100644 --- a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/app/KiloBackendChatManager.kt +++ b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/app/KiloBackendChatManager.kt @@ -70,6 +70,7 @@ class KiloBackendChatManager( private var client: OkHttpClient? = null private var base: String? = null private var watcher: Job? = null + private var normalizer = KiloCliDataParser.ChatEventNormalizer() fun start(http: OkHttpClient, port: Int, sse: SharedFlow) { client = http @@ -78,16 +79,18 @@ class KiloBackendChatManager( watcher = cs.launch { sse.collect { event -> if (event.type in CHAT_EVENTS) { - val parsed = KiloCliDataParser.parseChatEvent(event.type, event.data) - if (parsed != null) { - log.debug { ChatLogSummary.event(parsed) } - if (parsed is ChatEventDto.SessionStatusChanged && parsed.status.type != "busy") { - log.info( - "${ChatLogSummary.sid(parsed.sessionID)} kind=status route=chat-events emit=true " + - "${ChatLogSummary.status(parsed.status)} bytes=${event.data.length}", - ) + val events = normalizer.parse(event.type, event.data) + if (events != null) { + for (parsed in events) { + log.debug { ChatLogSummary.event(parsed) } + if (parsed is ChatEventDto.SessionStatusChanged && parsed.status.type != "busy") { + log.info( + "${ChatLogSummary.sid(parsed.sessionID)} kind=status route=chat-events emit=true " + + "${ChatLogSummary.status(parsed.status)} bytes=${event.data.length}", + ) + } + _events.emit(parsed) } - _events.emit(parsed) } else { log.warn("SSE parse returned null for type=${event.type} bytes=${event.data.length}") } @@ -102,6 +105,7 @@ class KiloBackendChatManager( watcher = null client = null base = null + normalizer = KiloCliDataParser.ChatEventNormalizer() log.info("Chat manager stopped") } diff --git a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/cli/KiloCliDataParser.kt b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/cli/KiloCliDataParser.kt index 9ffa53b6ae..39c3dce961 100644 --- a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/cli/KiloCliDataParser.kt +++ b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/cli/KiloCliDataParser.kt @@ -69,6 +69,8 @@ object KiloCliDataParser { private val json = Json { ignoreUnknownKeys = true } private val pretty = Json { ignoreUnknownKeys = true; prettyPrint = true } private val TYPE_REGEX = Regex(""""type"\s*:\s*"([^"]+)"""") + private val READ_TOOL_LINE = Regex("^\\s*Called\\s+the\\s+Read\\s+tool\\s+with\\s+the\\s+following\\s+input:", RegexOption.IGNORE_CASE) + private val READ_TOOL_PATH = Regex("\"(?:filePath|path)\"\\s*:") private val FIELD_RE = ConcurrentHashMap() // ================================================================ @@ -234,6 +236,88 @@ object KiloCliDataParser { } } + class ChatEventNormalizer { + private val roles = mutableMapOf() + private val raw = mutableMapOf() + private val text = mutableMapOf() + + fun parse(type: String, data: String): List? { + val event = parseChatEvent(type, data) ?: return null + return when (event) { + is ChatEventDto.MessageUpdated -> { + roles[event.info.id] = event.info.role + listOf(event) + } + + is ChatEventDto.MessageRemoved -> { + roles.remove(event.messageID) + clear(event.messageID) + listOf(event) + } + + is ChatEventDto.PartUpdated -> listOf(update(event)) + + is ChatEventDto.PartDelta -> delta(event) + + is ChatEventDto.PartRemoved -> { + val key = Key(event.messageID, event.partID) + raw.remove(key) + text.remove(key) + listOf(event) + } + + else -> listOf(event) + } + } + + private fun update(event: ChatEventDto.PartUpdated): ChatEventDto { + val part = event.part + val key = Key(part.messageID, part.id) + if (roles[part.messageID] != "user" || part.type != "text") { + raw.remove(key) + text.remove(key) + return event + } + + val value = part.text.orEmpty() + val clean = sanitizeUserPromptText(value) + raw[key] = value + text[key] = clean + return event.copy(part = part.copy(text = clean)) + } + + private fun delta(event: ChatEventDto.PartDelta): List { + if (event.field != "text" || roles[event.messageID] != "user") return listOf(event) + + val key = Key(event.messageID, event.partID) + val prev = text[key].orEmpty() + val next = raw[key].orEmpty() + event.delta + val clean = sanitizeUserPromptText(next) + raw[key] = next + text[key] = clean + + if (clean == prev) return emptyList() + if (clean.startsWith(prev)) return listOf(event.copy(delta = clean.removePrefix(prev))) + return listOf(ChatEventDto.PartUpdated( + sessionID = event.sessionID, + part = PartDto( + id = event.partID, + sessionID = event.sessionID, + messageID = event.messageID, + type = "text", + text = clean, + ), + )) + } + + private fun clear(id: String) { + raw.keys.filter { it.messageID == id }.forEach(raw::remove) + text.keys.filter { it.messageID == id }.forEach(text::remove) + } + + private data class Key(val messageID: String, val partID: String) + } + /** * Parse an SSE `session.status` event into a (sessionID, [SessionStatusDto]) pair. * Returns null if the required fields are missing. @@ -268,14 +352,36 @@ object KiloCliDataParser { return arr.mapNotNull { elem -> val obj = elem.jsonObject val info = obj["info"]?.jsonObject ?: return@mapNotNull null + val msg = parseMessage(info) val parts = obj["parts"]?.jsonArray ?: JsonArray(emptyList()) MessageWithPartsDto( - info = parseMessage(info), - parts = parts.map { parsePart(it.jsonObject) }, + info = msg, + parts = parts.map { sanitizePart(parsePart(it.jsonObject), msg.role) }, ) } } + internal fun sanitizeUserPromptText(text: String): String { + val lines = text.lines() + if (lines.none(::readPayload)) return text + + val out = mutableListOf() + var gap = false + for (line in lines) { + if (readPayload(line)) { + gap = true + continue + } + if (line.isBlank() && out.lastOrNull()?.isBlank() == true && gap) { + gap = false + continue + } + out.add(line) + if (line.isNotBlank()) gap = false + } + return out.joinToString("\n") + } + fun parseCloudSessions(raw: String): CloudSessionListDto { val obj = tryParseObject(raw) ?: return CloudSessionListDto(emptyList()) val items = obj["cliSessions"]?.jsonArray ?: JsonArray(emptyList()) @@ -535,6 +641,16 @@ object KiloCliDataParser { ) } + private fun sanitizePart(part: PartDto, role: String): PartDto { + if (role != "user" || part.type != "text") return part + return part.copy(text = part.text?.let(::sanitizeUserPromptText)) + } + + private fun readPayload(line: String): Boolean { + if (!READ_TOOL_LINE.containsMatchIn(line)) return false + return READ_TOOL_PATH.containsMatchIn(line) + } + internal fun parseTodos(raw: JsonElement?): List { return parseTodosOrNull(raw) ?: emptyList() } diff --git a/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/KiloCliDataParserTest.kt b/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/KiloCliDataParserTest.kt index 7e1036a3c2..00fdd9ba1e 100644 --- a/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/KiloCliDataParserTest.kt +++ b/packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/KiloCliDataParserTest.kt @@ -17,6 +17,7 @@ import org.junit.jupiter.api.Nested import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFailsWith +import kotlin.test.assertFalse import kotlin.test.assertNotNull import kotlin.test.assertNull import kotlin.test.assertTrue @@ -189,6 +190,80 @@ class KiloCliDataParserTest { assertEquals("a.png", result.part.filename) } + @Test + fun `ChatEventNormalizer - user part updated sanitizes text`() { + val norm = KiloCliDataParser.ChatEventNormalizer() + norm.parse("message.updated", messageUpdated("m1", "user")) + + val events = norm.parse("message.part.updated", partUpdated( + "m1", + "p1", + "text", + "before\nCalled the Read tool with the following input: {\"filePath\":\"/tmp/a.kt\"}\nafter", + )) + + val event = events!!.single() as ChatEventDto.PartUpdated + assertEquals("before\nafter", event.part.text) + } + + @Test + fun `ChatEventNormalizer - assistant part updated preserves text`() { + val norm = KiloCliDataParser.ChatEventNormalizer() + norm.parse("message.updated", messageUpdated("m1", "assistant")) + val payload = "Called the Read tool with the following input: {\"filePath\":\"/tmp/a.kt\"}" + + val events = norm.parse("message.part.updated", partUpdated("m1", "p1", "text", payload)) + + val event = events!!.single() as ChatEventDto.PartUpdated + assertEquals(payload, event.part.text) + } + + @Test + fun `ChatEventNormalizer - user text deltas append normally`() { + val norm = KiloCliDataParser.ChatEventNormalizer() + norm.parse("message.updated", messageUpdated("m1", "user")) + + val first = norm.parse("message.part.delta", partDelta("m1", "p1", "hello")) + val second = norm.parse("message.part.delta", partDelta("m1", "p1", " world")) + + assertEquals("hello", (first!!.single() as ChatEventDto.PartDelta).delta) + assertEquals(" world", (second!!.single() as ChatEventDto.PartDelta).delta) + } + + @Test + fun `ChatEventNormalizer - split generated payload delta is suppressed`() { + val norm = KiloCliDataParser.ChatEventNormalizer() + norm.parse("message.updated", messageUpdated("m1", "user")) + + val first = norm.parse("message.part.delta", partDelta("m1", "p1", "hello\n")) + val second = norm.parse( + "message.part.delta", + partDelta("m1", "p1", "Called the Read tool with the following input: {\"filePath\":\"/tmp/a.kt\"}"), + ) + + assertEquals("hello\n", (first!!.single() as ChatEventDto.PartDelta).delta) + val event = second!!.single() as ChatEventDto.PartUpdated + assertEquals("hello", event.part.text) + assertFalse(event.part.text!!.contains("Read tool")) + assertFalse(event.part.text!!.contains("/tmp/a.kt")) + } + + @Test + fun `ChatEventNormalizer - partial noisy line is replaced when identified`() { + val norm = KiloCliDataParser.ChatEventNormalizer() + norm.parse("message.updated", messageUpdated("m1", "user")) + + val first = norm.parse("message.part.delta", partDelta("m1", "p1", "before\nCalled the Read")) + val second = norm.parse( + "message.part.delta", + partDelta("m1", "p1", " tool with the following input: {\"path\":\"/tmp/a.kt\"}\nafter"), + ) + + assertEquals("before\nCalled the Read", (first!!.single() as ChatEventDto.PartDelta).delta) + val event = second!!.single() as ChatEventDto.PartUpdated + assertEquals("before\nafter", event.part.text) + } + @Test fun `parseChatEvent - read tool part preserves input metadata and time`() { val data = globalEvent(""" @@ -1009,6 +1084,34 @@ class KiloCliDataParserTest { assertEquals("Hi there", result[1].parts[0].text) } + @Test + fun `parseMessages - sanitizes user text read payloads only`() { + val raw = """[ + { + "info": { "id": "m1", "sessionID": "s1", "role": "user", "time": { "created": 1.0 } }, + "parts": [ + { "id": "p1", "sessionID": "s1", "messageID": "m1", "type": "text", "text": "before\nCalled the Read tool with the following input: {\"filePath\":\"/tmp/user.kt\"}\nafter" }, + { "id": "f1", "sessionID": "s1", "messageID": "m1", "type": "file", "filename": "a.png", "url": "file:///tmp/a.png" }, + { "id": "t1", "sessionID": "s1", "messageID": "m1", "type": "tool", "tool": "read", "state": { "input": { "filePath": "/tmp/tool.kt" } } } + ] + }, + { + "info": { "id": "m2", "sessionID": "s1", "role": "assistant", "time": { "created": 2.0 } }, + "parts": [{ "id": "p2", "sessionID": "s1", "messageID": "m2", "type": "text", "text": "Called the Read tool with the following input: {\"filePath\":\"/tmp/assistant.kt\"}" }] + } + ]""" + + val result = KiloCliDataParser.parseMessages(raw) + + assertEquals("before\nafter", result[0].parts[0].text) + assertEquals("a.png", result[0].parts[1].filename) + assertEquals("/tmp/tool.kt", result[0].parts[2].input["filePath"]) + assertEquals( + "Called the Read tool with the following input: {\"filePath\":\"/tmp/assistant.kt\"}", + result[1].parts[0].text, + ) + } + @Test fun `parseMessages - message with tool parts`() { val raw = """[{ @@ -1785,6 +1888,34 @@ class KiloCliDataParserTest { assertNull(result[0].message) } + @Test + fun `sanitizeUserPromptText - removes read payload lines`() { + val text = "before\nCalled the Read tool with the following input: {\"filePath\":\"/tmp/a.kt\"}\nafter" + + assertEquals("before\nafter", KiloCliDataParser.sanitizeUserPromptText(text)) + } + + @Test + fun `sanitizeUserPromptText - handles read case variants and path key`() { + val text = "before\nCalled the READ tool with the following input: {\"path\":\"/tmp/a.kt\"}\nafter" + + assertEquals("before\nafter", KiloCliDataParser.sanitizeUserPromptText(text)) + } + + @Test + fun `sanitizeUserPromptText - preserves ordinary prose without path key`() { + val text = "Called the Read tool with the following input: please inspect the file" + + assertEquals(text, KiloCliDataParser.sanitizeUserPromptText(text)) + } + + @Test + fun `sanitizeUserPromptText - collapses only blanks introduced by payload removal`() { + val text = "before\n\nCalled the Read tool with the following input: {\"filePath\":\"/tmp/a.kt\"}\n\nafter\n\n\nkeep" + + assertEquals("before\n\nafter\n\n\nkeep", KiloCliDataParser.sanitizeUserPromptText(text)) + } + // ================================================================ // Helpers // ================================================================ @@ -1792,4 +1923,44 @@ class KiloCliDataParserTest { /** Wrap payload content in a GlobalEvent structure. */ private fun globalEvent(payload: String): String = """{"directory":"/tmp","payload":{$payload}}""" + + private fun messageUpdated(id: String, role: String): String = globalEvent(""" + "type": "message.updated", + "properties": { + "sessionID": "s1", + "info": { "id": "$id", "sessionID": "s1", "role": "$role", "time": { "created": 1.0 } } + } + """) + + private fun partUpdated(mid: String, pid: String, type: String, text: String): String = globalEvent(""" + "type": "message.part.updated", + "properties": { + "sessionID": "s1", + "part": { "id": "$pid", "sessionID": "s1", "messageID": "$mid", "type": "$type", "text": ${escape(text)} } + } + """) + + private fun partDelta(mid: String, pid: String, delta: String): String = globalEvent(""" + "type": "message.part.delta", + "properties": { + "sessionID": "s1", + "messageID": "$mid", + "partID": "$pid", + "field": "text", + "delta": ${escape(delta)} + } + """) + + private fun escape(text: String) = buildString { + append('"') + for (ch in text) { + when (ch) { + '\\' -> append("\\\\") + '"' -> append("\\\"") + '\n' -> append("\\n") + else -> append(ch) + } + } + append('"') + } } From 9f8f698e38f8317b0f19d1f7406b0d6cc9777ad9 Mon Sep 17 00:00:00 2001 From: kirillk Date: Tue, 9 Jun 2026 14:15:34 -0400 Subject: [PATCH 009/109] fix(jetbrains): refine prompt attachment rendering --- .../jetbrains-horizontal-attachments.md | 5 + .../jetbrains-prompt-attachment-preview.md | 5 + .../ai/kilocode/client/session/SessionUi.kt | 36 ++- .../client/session/model/SessionModel.kt | 7 + .../session/ui/SessionMessageListPanel.kt | 6 +- .../session/ui/attachment/AttachmentCard.kt | 8 +- .../ui/attachment/AttachmentOpeners.kt | 64 ++++++ .../client/session/views/AttachmentView.kt | 37 +-- .../client/session/views/MessageView.kt | 122 ++++++++-- .../session/views/PromptAttachmentView.kt | 126 ++++++++++ .../kilocode/client/session/views/TurnView.kt | 4 +- .../client/session/views/ViewFactory.kt | 8 +- .../client/session/model/SessionModelTest.kt | 21 ++ .../client/session/ui/PromptPanelTest.kt | 25 +- .../client/session/ui/SessionUiUpdateTest.kt | 217 +++++++++++++++++- 15 files changed, 646 insertions(+), 45 deletions(-) create mode 100644 .changeset/jetbrains-horizontal-attachments.md create mode 100644 .changeset/jetbrains-prompt-attachment-preview.md create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentOpeners.kt create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/PromptAttachmentView.kt diff --git a/.changeset/jetbrains-horizontal-attachments.md b/.changeset/jetbrains-horizontal-attachments.md new file mode 100644 index 0000000000..2b167a0198 --- /dev/null +++ b/.changeset/jetbrains-horizontal-attachments.md @@ -0,0 +1,5 @@ +--- +"@kilocode/kilo-jetbrains": patch +--- + +Show JetBrains prompt attachments in one horizontal scrolling row in session history. diff --git a/.changeset/jetbrains-prompt-attachment-preview.md b/.changeset/jetbrains-prompt-attachment-preview.md new file mode 100644 index 0000000000..f5b33305c4 --- /dev/null +++ b/.changeset/jetbrains-prompt-attachment-preview.md @@ -0,0 +1,5 @@ +--- +"@kilocode/kilo-jetbrains": patch +--- + +Show JetBrains prompt attachments inside the prompt bubble with previews and open embedded attachments in editor tabs. diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt index 3e52941a7a..c1839a8c38 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt @@ -8,6 +8,7 @@ import ai.kilocode.client.migration.KiloMigrationService import ai.kilocode.client.migration.MigrationUiController import ai.kilocode.client.migration.MigrationUiState import ai.kilocode.client.migration.ui.MigrationOverlayPanel +import ai.kilocode.client.session.model.FileAttachment import ai.kilocode.client.session.model.SessionModelEvent import ai.kilocode.client.session.model.SessionState import ai.kilocode.client.session.scroll.SessionScroll @@ -22,6 +23,8 @@ import ai.kilocode.client.session.ui.account.SessionAccountOverlay import ai.kilocode.client.session.ui.SessionDropOverlay import ai.kilocode.client.session.ui.SessionRootPanel import ai.kilocode.client.session.ui.SessionMessageListPanel +import ai.kilocode.client.session.ui.attachment.isEmbeddedAttachment +import ai.kilocode.client.session.ui.attachment.openEmbeddedAttachment import ai.kilocode.client.session.ui.header.SessionHeaderPanel import ai.kilocode.client.session.ui.selection.SessionSelection import ai.kilocode.client.session.ui.style.SessionEditorStyle @@ -67,6 +70,8 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.awt.BorderLayout import java.awt.event.HierarchyEvent +import java.net.URI +import java.nio.file.Path import javax.swing.JComponent import javax.swing.JPanel import javax.swing.Timer @@ -299,7 +304,17 @@ class SessionUi( dismiss = { controller.dismissLoginRequired() }, selection = selection, ) - messageBody = SessionMessageListPanel(controller.model, this, question, permission, login, ::openFile, ::openUrl, selection) + messageBody = SessionMessageListPanel( + controller.model, + this, + question, + permission, + login, + ::openFile, + ::openUrl, + selection, + ::openAttachment, + ) header = SessionHeaderPanel(controller, this) scroll = SessionScroll(root, sessionContent, messageBody, blankBody) @@ -568,6 +583,25 @@ class SessionUi( BrowserUtil.browse(url) } + private fun openAttachment(item: FileAttachment) { + val url = item.url.takeIf { it.isNotBlank() } ?: return + if (isEmbeddedAttachment(url)) { + openEmbeddedAttachment(project, attachmentName(item), item.mime, url) + return + } + val uri = runCatching { URI.create(url) }.getOrNull() ?: return + if (uri.scheme == "file") { + val path = runCatching { Path.of(uri).toString() }.getOrNull() ?: return + openFile(path) + return + } + openUrl(url) + } + + private fun attachmentName(item: FileAttachment) = item.filename?.takeIf { it.isNotBlank() } + ?: item.url.substringBefore(',').substringAfterLast('/').takeIf { it.isNotBlank() } + ?: "attachment" + private fun onStateChanged(state: SessionState) { if (disposed) return prompt.setBusy(state.isBusy()) diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/SessionModel.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/SessionModel.kt index 19381bd669..79eeb432f8 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/SessionModel.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/model/SessionModel.kt @@ -158,6 +158,10 @@ class SessionModel { if (dto.type in SILENT_PART_TYPES) return val msg = entries[messageId] ?: return val existing = msg.parts[dto.id] + if (empty(dto)) { + if (existing is Text) removeContent(messageId, dto.id) + return + } if (existing != null) { updateExisting(messageId, existing, dto) return @@ -243,6 +247,7 @@ class SessionModel { val item = Message(msg.info) for (part in msg.parts) { if (part.type in SILENT_PART_TYPES) continue + if (empty(part)) continue val content = fromDto(part, part.text) item.parts[content.id] = content } @@ -403,6 +408,8 @@ class SessionModel { updateHeader() } + private fun empty(dto: PartDto) = dto.type == "text" && dto.text?.isNotBlank() != true + private fun fromDto(dto: PartDto, text: CharSequence? = null): Content { val content = text ?: dto.text return when (dto.type) { diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionMessageListPanel.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionMessageListPanel.kt index d2506bb67b..9258fa9f7e 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionMessageListPanel.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionMessageListPanel.kt @@ -4,6 +4,7 @@ import ai.kilocode.client.session.model.SessionModel import ai.kilocode.client.session.model.SessionModelEvent import ai.kilocode.client.session.model.SessionState import ai.kilocode.client.session.model.ToolCallRef +import ai.kilocode.client.session.model.FileAttachment import ai.kilocode.client.session.ui.style.SessionEditorStyle import ai.kilocode.client.session.ui.selection.SessionSelection import ai.kilocode.client.session.ui.style.SessionEditorStyleTarget @@ -51,6 +52,7 @@ class SessionMessageListPanel( private val openFile: (String) -> Unit, private val openUrl: (String) -> Unit = {}, private val selection: SessionSelection? = null, + private val openAttachment: (FileAttachment) -> Unit = { ai.kilocode.client.session.views.AttachmentView.openDefault(it, openFile, openUrl) }, ) : SessionLayoutPanel( JBUI.scale(SessionUiStyle.SessionLayout.GAP), JBUI.insets( @@ -177,7 +179,7 @@ class SessionMessageListPanel( // ------ private event handlers ------ private fun onTurnAdded(turn: ai.kilocode.client.session.model.Turn) { - val tv = TurnView(turn.id, openFile, style, openUrl, selection) + val tv = TurnView(turn.id, openFile, style, openUrl, selection, openAttachment) turnViews[turn.id] = tv for (msgId in turn.messageIds) { val msg = model.message(msgId) ?: continue @@ -233,7 +235,7 @@ class SessionMessageListPanel( removeAll() for (turn in model.turns()) { - val tv = TurnView(turn.id, openFile, style, openUrl, selection) + val tv = TurnView(turn.id, openFile, style, openUrl, selection, openAttachment) turnViews[turn.id] = tv for (msgId in turn.messageIds) { val msg = model.message(msgId) ?: continue diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt index 27347b3b2b..1d83156ecd 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt @@ -26,6 +26,7 @@ import java.awt.LayoutManager2 import java.awt.RenderingHints import java.awt.event.MouseAdapter import java.awt.event.MouseEvent +import java.io.ByteArrayInputStream import java.net.URI import java.net.URLDecoder import java.nio.charset.StandardCharsets @@ -137,7 +138,6 @@ open class AttachmentCard( @RequiresEdt private fun load() { - val path = local(item) ?: return if (!item.mime.startsWith("image/")) return val stamp = ++gen val size = JBUI.size( @@ -145,7 +145,11 @@ open class AttachmentCard( SessionUiStyle.View.Attachment.CARD_HEIGHT - UiStyle.Gap.xs() * 2, ) ApplicationManager.getApplication().executeOnPooledThread { - val image = runCatching { ImageIO.read(path.toFile()) }.getOrNull() + val image = runCatching { + val data = decodeDataImage(item.url) + val path = local(item) + if (data != null) ImageIO.read(ByteArrayInputStream(data)) else path?.let { ImageIO.read(it.toFile()) } + }.getOrNull() val scaled = image?.let { scale(it, size.width, size.height) } if (scaled == null) return@executeOnPooledThread ApplicationManager.getApplication().invokeLater { diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentOpeners.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentOpeners.kt new file mode 100644 index 0000000000..20543f137d --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentOpeners.kt @@ -0,0 +1,64 @@ +package ai.kilocode.client.session.ui.attachment + +import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.fileEditor.FileEditorManager +import com.intellij.openapi.fileTypes.FileTypeManager +import com.intellij.openapi.project.Project +import com.intellij.testFramework.BinaryLightVirtualFile +import com.intellij.testFramework.LightVirtualFile +import com.intellij.util.concurrency.annotations.RequiresEdt +import java.net.URLDecoder +import java.nio.charset.StandardCharsets +import java.util.Base64 + +@RequiresEdt +fun openEmbeddedAttachment(project: Project, name: String, mime: String, url: String) { + val data = parseDataUrl(url) ?: return + val type = FileTypeManager.getInstance().getFileTypeByFileName(name) + val file = if (textual(mime)) { + LightVirtualFile(name, type, data.bytes.toString(StandardCharsets.UTF_8)) + } else { + BinaryLightVirtualFile(name, type, data.bytes) + } + FileEditorManager.getInstance(project).openFile(file, true) +} + +@RequiresEdt +fun openEmbeddedAttachment(project: Project, item: AttachmentCardItem) { + openEmbeddedAttachment(project, item.name, item.mime, item.url) +} + +fun decodeDataImage(url: String): ByteArray? { + val data = parseDataUrl(url) ?: return null + if (!data.mime.startsWith("image/")) return null + return data.bytes +} + +private data class DataUrl(val mime: String, val bytes: ByteArray) + +private fun parseDataUrl(url: String): DataUrl? { + if (!url.startsWith("data:")) return null + val comma = url.indexOf(',') + if (comma < 0) return null + val meta = url.substring(5, comma) + val body = url.substring(comma + 1) + val parts = meta.split(';').filter { it.isNotBlank() } + val mime = parts.firstOrNull()?.takeIf { it.contains('/') } ?: "text/plain" + val bytes = if (parts.any { it.equals("base64", ignoreCase = true) }) { + runCatching { Base64.getDecoder().decode(body) }.getOrNull() ?: return null + } else { + URLDecoder.decode(body, StandardCharsets.UTF_8).toByteArray(StandardCharsets.UTF_8) + } + return DataUrl(mime, bytes) +} + +private fun textual(mime: String) = mime.startsWith("text/") || mime in setOf( + "application/json", + "application/javascript", + "application/xml", + "application/x-yaml", +) + +fun isEmbeddedAttachment(url: String) = url.startsWith("data:") + +fun isLocalAttachment(url: String) = runCatching { java.net.URI.create(url).scheme == "file" }.getOrDefault(false) diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/AttachmentView.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/AttachmentView.kt index 76218ff9d7..50f07635b1 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/AttachmentView.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/AttachmentView.kt @@ -6,20 +6,27 @@ import ai.kilocode.client.session.ui.attachment.AttachmentCard import ai.kilocode.client.session.ui.attachment.AttachmentCardItem import ai.kilocode.client.session.views.base.PartView import ai.kilocode.client.ui.UiStyle +import com.intellij.util.ui.JBUI import java.awt.FlowLayout import java.net.URI import java.nio.file.Path class AttachmentView( private var item: FileAttachment, - private val openFile: (String) -> Unit, - private val openUrl: (String) -> Unit, + private val openAttachment: (FileAttachment) -> Unit, ) : PartView() { + constructor( + item: FileAttachment, + openFile: (String) -> Unit, + openUrl: (String) -> Unit, + ) : this(item, { openDefault(it, openFile, openUrl) }) + override val contentId: String = item.id private var chip = chip(item) init { layout = FlowLayout(FlowLayout.LEFT, 0, UiStyle.Gap.xs()) + border = JBUI.Borders.empty(0, UiStyle.Gap.pad(), UiStyle.Gap.pad(), UiStyle.Gap.pad()) add(chip) } @@ -41,22 +48,24 @@ class AttachmentView( private fun chip(item: FileAttachment) = AttachmentCard( AttachmentCardItem(name(item), item.mime, item.url), - open = { open(item) }, + open = { openAttachment(item) }, ) - private fun open(item: FileAttachment) { - val url = item.url.takeIf { it.isNotBlank() } ?: return - val uri = runCatching { URI.create(url) }.getOrNull() ?: return - if (uri.scheme == "file") { - val path = runCatching { Path.of(uri).toString() }.getOrNull() ?: return - openFile(path) - return - } - openUrl(url) - } - private fun same(next: FileAttachment) = item.mime == next.mime && item.url == next.url && item.filename == next.filename + companion object { + fun openDefault(item: FileAttachment, openFile: (String) -> Unit, openUrl: (String) -> Unit) { + val url = item.url.takeIf { it.isNotBlank() } ?: return + val uri = runCatching { URI.create(url) }.getOrNull() ?: return + if (uri.scheme == "file") { + val path = runCatching { Path.of(uri).toString() }.getOrNull() ?: return + openFile(path) + return + } + openUrl(url) + } + } + private fun name(item: FileAttachment) = item.filename?.takeIf { it.isNotBlank() } ?: tail(item.url).takeIf { it.isNotBlank() } ?: "attachment" diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/MessageView.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/MessageView.kt index 5b71c23b5e..f086fee6af 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/MessageView.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/MessageView.kt @@ -1,11 +1,14 @@ package ai.kilocode.client.session.views import ai.kilocode.client.session.model.Content +import ai.kilocode.client.session.model.FileAttachment import ai.kilocode.client.session.model.Message import ai.kilocode.client.session.model.StepFinish +import ai.kilocode.client.session.model.Text import ai.kilocode.client.session.model.Tool import ai.kilocode.client.session.model.ToolCallRef import ai.kilocode.client.session.model.ToolExecState +import ai.kilocode.client.session.model.ToolKind import ai.kilocode.client.session.ui.SessionView import ai.kilocode.client.session.ui.style.SessionEditorStyle import ai.kilocode.client.session.ui.selection.SessionSelection @@ -36,6 +39,7 @@ class MessageView( private var style: SessionEditorStyle = SessionEditorStyle.current(), private val openUrl: (String) -> Unit = {}, private val selection: SessionSelection? = null, + private val openAttachment: (FileAttachment) -> Unit = { AttachmentView.openDefault(it, openFile, openUrl) }, ) : ai.kilocode.client.session.ui.SessionLayoutPanel( JBUI.scale(SessionUiStyle.SessionLayout.GAP), ), Disposable, SessionEditorStyleTarget, SessionView { @@ -48,6 +52,7 @@ class MessageView( get() = if (role == SessionUiStyle.View.Message.USER_ROLE) SessionView.Kind.UserPrompt else SessionView.Kind.Default private val parts = LinkedHashMap() + private var attachments: PromptAttachmentView? = null private var hidden: ToolCallRef? = null init { @@ -57,8 +62,11 @@ class MessageView( // Populate content that already exists (e.g. after loadHistory) for ((_, content) in msg.parts) { - if (content is StepFinish) continue - if (isHidden(content)) continue + if (content is StepFinish || !visible(content)) continue + if (content is FileAttachment && user()) { + upsertAttachment(content, refresh = false) + continue + } val view = view(content) view.applyStyle(style) parts[content.id] = view @@ -79,15 +87,12 @@ class MessageView( /** Add or update the renderer for [content]. */ fun upsertPart(content: Content) { if (content is StepFinish) return - if (isHidden(content)) { - // Remove any stale view for this content so it disappears when suppressed - val stale = parts.remove(content.id) - if (stale != null) { - remove(stale) - Disposer.dispose(stale) - syncBorder() - refresh() - } + if (!visible(content)) { + removeView(content.id) + return + } + if (content is FileAttachment && user()) { + upsertAttachment(content) return } val existing = parts[content.id] @@ -123,6 +128,7 @@ class MessageView( /** Remove the renderer for [contentId] if present. */ fun removePart(contentId: String) { + if (removeAttachment(contentId)) return val view = parts.remove(contentId) ?: return remove(view) Disposer.dispose(view) @@ -136,6 +142,7 @@ class MessageView( */ private fun isHidden(content: Content): Boolean { if (content !is Tool) return false + if (user() && content.kind == ToolKind.READ) return true if (content.name == "todoread") return true if (content.name == "todowrite" && content.state != ToolExecState.COMPLETED) return true val ref = hidden ?: return false @@ -144,6 +151,11 @@ class MessageView( return msg.info.id == ref.messageId && content.callId == ref.callId } + private fun visible(content: Content): Boolean { + if (isHidden(content)) return false + return content !is Text || content.content.isNotBlank() + } + /** * Clear and rebuild all part views from [msg.parts]. * Called only when the hidden ref changes to avoid unnecessary rebuilds. @@ -153,10 +165,18 @@ class MessageView( remove(it) Disposer.dispose(it) } + attachments?.let { + remove(it) + Disposer.dispose(it) + } parts.clear() + attachments = null for ((_, content) in msg.parts) { - if (content is StepFinish) continue - if (isHidden(content)) continue + if (content is StepFinish || !visible(content)) continue + if (content is FileAttachment && user()) { + upsertAttachment(content, refresh = false) + continue + } val view = view(content) view.applyStyle(style) parts[content.id] = view @@ -172,9 +192,9 @@ class MessageView( } private fun view(content: Content) = if (msg.info.role == SessionUiStyle.View.Message.USER_ROLE) { - ViewFactory.createUser(content, openFile, openUrl, selection) + ViewFactory.createUser(content, openFile, openUrl, selection, openAttachment) } else { - ViewFactory.create(content, openFile, openUrl, selection) + ViewFactory.create(content, openFile, openUrl, selection, openAttachment) } /** Append a streaming delta to the renderer for [contentId]. */ @@ -185,18 +205,23 @@ class MessageView( } /** Look up a renderer by part id. */ - fun part(id: String): PartView? = parts[id] + fun part(id: String): PartView? = parts[id] ?: attachments?.takeIf { it.contains(id) } /** Ordered part ids — stable for test assertions. */ - fun partIds(): List = parts.keys.toList() + fun partIds(): List = msg.parts.values.mapNotNull { + if (it is StepFinish || !visible(it)) return@mapNotNull null + if (it is FileAttachment && user()) return@mapNotNull it.id.takeIf { id -> attachments?.contains(id) == true } + it.id.takeIf { id -> parts.containsKey(id) } + } /** Compact dump for test assertions. */ - fun dump(): String = parts.values.joinToString(", ") { it.dumpLabel() } + fun dump(): String = components.filterIsInstance().joinToString(", ") { it.dumpLabel() } override fun applyStyle(style: SessionEditorStyle) { this.style = style if (msg.info.role == SessionUiStyle.View.Message.USER_ROLE) background = style.editorScheme.defaultBackground for (view in parts.values) view.applyStyle(style) + attachments?.applyStyle(style) refresh() } @@ -205,7 +230,12 @@ class MessageView( remove(it) Disposer.dispose(it) } + attachments?.let { + remove(it) + Disposer.dispose(it) + } parts.clear() + attachments = null hidden = null } @@ -235,5 +265,61 @@ class MessageView( repaint() } + private fun upsertAttachment(content: FileAttachment, refresh: Boolean = true) { + val view = attachments ?: PromptAttachmentView(msg.info.id, openAttachment).also { + attachments = it + it.applyStyle(style) + add(it, attachmentIndex()) + } + view.upsert(content) + repositionAttachments() + syncBorder() + if (refresh) refresh() + } + + private fun removeAttachment(id: String): Boolean { + val view = attachments ?: return false + if (!view.remove(id)) return false + if (view.isEmpty()) { + remove(view) + Disposer.dispose(view) + attachments = null + } else { + repositionAttachments() + } + syncBorder() + refresh() + return true + } + + private fun removeView(id: String) { + val view = parts.remove(id) ?: return + remove(view) + Disposer.dispose(view) + syncBorder() + refresh() + } + + private fun repositionAttachments() { + val view = attachments ?: return + val at = attachmentIndex() + val current = components.indexOfFirst { it === view } + if (current == at) return + remove(view) + add(view, at.coerceAtMost(componentCount)) + } + + private fun attachmentIndex(): Int { + var at = 0 + for (content in msg.parts.values) { + if (content is StepFinish || !visible(content)) continue + if (content is FileAttachment && user()) return at + if (parts.containsKey(content.id)) at++ + } + return componentCount + } + + private fun user() = msg.info.role == SessionUiStyle.View.Message.USER_ROLE + private fun assistantBorder() = JBUI.Borders.empty() } diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/PromptAttachmentView.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/PromptAttachmentView.kt new file mode 100644 index 0000000000..e5b61242b5 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/PromptAttachmentView.kt @@ -0,0 +1,126 @@ +package ai.kilocode.client.session.views + +import ai.kilocode.client.session.model.Content +import ai.kilocode.client.session.model.FileAttachment +import ai.kilocode.client.session.ui.attachment.AttachmentCard +import ai.kilocode.client.session.ui.attachment.AttachmentCardItem +import ai.kilocode.client.session.ui.style.SessionUiStyle +import ai.kilocode.client.session.views.base.PartView +import ai.kilocode.client.ui.UiStyle +import ai.kilocode.client.ui.layout.Stack +import com.intellij.ui.components.JBScrollPane +import com.intellij.util.concurrency.annotations.RequiresEdt +import com.intellij.util.ui.JBUI +import java.awt.Dimension +import javax.swing.ScrollPaneConstants + +class PromptAttachmentView( + messageId: String, + private val openAttachment: (FileAttachment) -> Unit, +) : PartView() { + override val contentId: String = "attachments:$messageId" + + private val items = LinkedHashMap() + private val cards = LinkedHashMap() + private val row = Stack.horizontal(gap = UiStyle.Gap.sm()) + private val scroll = JBScrollPane(row).apply { + border = null + isOpaque = false + viewport.isOpaque = false + horizontalScrollBarPolicy = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED + verticalScrollBarPolicy = ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER + } + + init { + isOpaque = false + border = JBUI.Borders.empty( + 0, + JBUI.scale(SessionUiStyle.View.Prompt.SHELL_HORIZONTAL_PADDING), + JBUI.scale(SessionUiStyle.View.Prompt.SHELL_VERTICAL_PADDING), + JBUI.scale(SessionUiStyle.View.Prompt.SHELL_HORIZONTAL_PADDING), + ) + add(scroll) + } + + fun contains(id: String) = items.containsKey(id) + + fun isEmpty() = items.isEmpty() + + fun ids(): List = items.keys.toList() + + fun scrollPane(): JBScrollPane = scroll + + @RequiresEdt + fun upsert(item: FileAttachment) { + val old = items[item.id] + items[item.id] = item + if (old == null || !same(old, item)) cards[item.id] = card(item) + sync() + } + + @RequiresEdt + fun remove(id: String): Boolean { + val item = items.remove(id) ?: return false + cards.remove(item.id) + sync() + return true + } + + override fun update(content: Content) { + if (content is FileAttachment) upsert(content) + } + + override fun getPreferredSize(): Dimension { + val ins = insets + val pref = scroll.preferredSize + return Dimension(0, pref.height + bar() + ins.top + ins.bottom) + } + + override fun getMinimumSize() = preferredSize + + override fun doLayout() { + val ins = insets + scroll.setBounds( + ins.left, + ins.top, + maxOf(0, width - ins.left - ins.right), + maxOf(0, height - ins.top - ins.bottom), + ) + } + + override fun dispose() { + row.removeAll() + cards.clear() + items.clear() + } + + override fun dumpLabel(): String = "PromptAttachmentView#$contentId[${items.keys.joinToString(",")}]" + + @RequiresEdt + private fun sync() { + row.removeAll() + for (id in items.keys) row.next(cards.getValue(id)) + revalidate() + repaint() + } + + private fun card(item: FileAttachment) = AttachmentCard( + AttachmentCardItem(name(item), item.mime, item.url), + open = { openAttachment(item) }, + ) + + private fun same(a: FileAttachment, b: FileAttachment) = a.mime == b.mime && a.url == b.url && a.filename == b.filename + + private fun bar() = scroll.horizontalScrollBar.preferredSize.height + + private fun name(item: FileAttachment) = item.filename?.takeIf { it.isNotBlank() } + ?: tail(item.url).takeIf { it.isNotBlank() } + ?: "attachment" + + private fun tail(value: String): String { + val clean = value.trimEnd('/', '\\') + val index = maxOf(clean.lastIndexOf('/'), clean.lastIndexOf('\\')) + if (index < 0) return clean + return clean.substring(index + 1) + } +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/TurnView.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/TurnView.kt index 5320b21dbf..c2951cec12 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/TurnView.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/TurnView.kt @@ -1,6 +1,7 @@ package ai.kilocode.client.session.views import ai.kilocode.client.session.model.Message +import ai.kilocode.client.session.model.FileAttachment import ai.kilocode.client.session.ui.SessionLayoutPanel import ai.kilocode.client.session.ui.style.SessionEditorStyle import ai.kilocode.client.session.ui.selection.SessionSelection @@ -25,6 +26,7 @@ class TurnView( private var style: SessionEditorStyle = SessionEditorStyle.current(), private val openUrl: (String) -> Unit = {}, private val selection: SessionSelection? = null, + private val openAttachment: (FileAttachment) -> Unit = { AttachmentView.openDefault(it, openFile, openUrl) }, ) : SessionLayoutPanel(JBUI.scale(SessionUiStyle.SessionLayout.GAP)), Disposable, SessionEditorStyleTarget { constructor(id: String, openFile: (String) -> Unit) : this(id, openFile, SessionEditorStyle.current()) @@ -37,7 +39,7 @@ class TurnView( /** Add a new [MessageView] for [msg] at the end of this turn. */ fun addMessage(msg: Message): MessageView { - val view = MessageView(msg, openFile, style, openUrl, selection) + val view = MessageView(msg, openFile, style, openUrl, selection, openAttachment) messages[msg.info.id] = view add(view) revalidate() diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/ViewFactory.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/ViewFactory.kt index d6c6389280..309a5b16d6 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/ViewFactory.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/ViewFactory.kt @@ -39,10 +39,11 @@ object ViewFactory { openFile: (String) -> Unit, openUrl: (String) -> Unit = {}, selection: SessionSelection? = null, + openAttachment: (FileAttachment) -> Unit = { AttachmentView.openDefault(it, openFile, openUrl) }, ): PartView = when (content) { is Text -> TextView(content, openUrl = openUrl, selection = selection) is Reasoning -> ReasoningView(content, openUrl = openUrl, selection = selection) - is FileAttachment -> AttachmentView(content, openFile, openUrl) + is FileAttachment -> AttachmentView(content, openAttachment) is Tool -> when { TodoWriteView.canRender(content) -> TodoWriteView(content) PlanExitView.canRender(content) -> PlanExitView(content, openFile, selection) @@ -71,10 +72,11 @@ object ViewFactory { openFile: (String) -> Unit, openUrl: (String) -> Unit = {}, selection: SessionSelection? = null, + openAttachment: (FileAttachment) -> Unit = { AttachmentView.openDefault(it, openFile, openUrl) }, ): PartView = when (content) { is Text -> PromptView(content, openUrl = openUrl, selection = selection) - is FileAttachment -> AttachmentView(content, openFile, openUrl) - else -> create(content, openFile, openUrl, selection) + is FileAttachment -> AttachmentView(content, openAttachment) + else -> create(content, openFile, openUrl, selection, openAttachment) } /** diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/model/SessionModelTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/model/SessionModelTest.kt index d98bffc727..ab1ea65096 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/model/SessionModelTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/model/SessionModelTest.kt @@ -133,6 +133,27 @@ class SessionModelTest : BasePlatformTestCase() { assertTrue(events.single() is SessionModelEvent.ContentUpdated) } + fun `test updateContent ignores new empty text content`() { + model.addMessage(msg("m1", "user")) + events.clear() + + model.updateContent("m1", part("p1", "m1", "text", text = " ")) + + assertNull(model.message("m1")!!.parts["p1"]) + assertTrue(events.isEmpty()) + } + + fun `test updateContent removes existing text when it becomes empty`() { + model.addMessage(msg("m1", "user")) + model.updateContent("m1", part("p1", "m1", "text", text = "visible")) + events.clear() + + model.updateContent("m1", part("p1", "m1", "text", text = "")) + + assertNull(model.message("m1")!!.parts["p1"]) + assertEquals("ContentRemoved m1/p1", events.single().toString()) + } + fun `test updateContent reasoning creates Reasoning content`() { model.addMessage(msg("m1", "assistant")) diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/PromptPanelTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/PromptPanelTest.kt index 0e11fe6474..20e1a2665f 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/PromptPanelTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/PromptPanelTest.kt @@ -4,6 +4,7 @@ import ai.kilocode.client.session.ui.style.SessionEditorStyle import ai.kilocode.client.plugin.KiloBundle import ai.kilocode.client.session.model.PromptAttachment import ai.kilocode.client.session.ui.attachment.AttachmentCard +import ai.kilocode.client.session.ui.attachment.AttachmentCardItem import ai.kilocode.client.session.ui.style.SessionUiStyle import ai.kilocode.client.session.ui.prompt.PROMPT_ATTACHMENT_PASTE_HANDLER_KEY import ai.kilocode.client.session.ui.prompt.PromptAttachmentPasteHandler @@ -33,8 +34,12 @@ import java.awt.datatransfer.StringSelection import java.awt.datatransfer.Transferable import java.awt.event.MouseEvent import java.awt.image.BufferedImage +import java.io.ByteArrayOutputStream import java.io.File +import java.util.Base64 +import javax.imageio.ImageIO import javax.swing.JButton +import javax.swing.ImageIcon import javax.swing.SwingUtilities @Suppress("UnstableApiUsage") @@ -190,7 +195,7 @@ class PromptPanelTest : BasePlatformTestCase() { fun `test attachment child click opens item`() { var opened = false val card = AttachmentCard( - ai.kilocode.client.session.ui.attachment.AttachmentCardItem("a.txt", "text/plain", "file:///tmp/a.txt"), + AttachmentCardItem("a.txt", "text/plain", "file:///tmp/a.txt"), open = { opened = true }, ) @@ -200,6 +205,24 @@ class PromptPanelTest : BasePlatformTestCase() { assertTrue(opened) } + fun `test attachment card previews embedded image data`() { + val image = BufferedImage(2, 2, BufferedImage.TYPE_INT_ARGB) + val out = ByteArrayOutputStream() + ImageIO.write(image, "png", out) + val card = AttachmentCard( + AttachmentCardItem("a.png", "image/png", "data:image/png;base64,${Base64.getEncoder().encodeToString(out.toByteArray())}"), + ) + + card.addNotify() + repeat(20) { + UIUtil.dispatchAllInvocationEvents() + if (labels(card).any { it.icon is ImageIcon }) return@repeat + Thread.sleep(20) + } + + assertTrue(labels(card).any { it.icon is ImageIcon }) + } + fun `test reasoning picker hides when variants are empty`() { val panel = PromptPanel(project, { _, _ -> }, {}) diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionUiUpdateTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionUiUpdateTest.kt index 57da6a8614..18de992813 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionUiUpdateTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionUiUpdateTest.kt @@ -3,7 +3,10 @@ package ai.kilocode.client.session.ui import ai.kilocode.client.session.model.SessionModel import ai.kilocode.client.session.model.SessionState import ai.kilocode.client.session.ui.attachment.AttachmentCard +import ai.kilocode.client.session.ui.style.SessionUiStyle import ai.kilocode.client.session.views.AttachmentView +import ai.kilocode.client.session.views.PromptAttachmentView +import ai.kilocode.client.session.views.ReadToolView import ai.kilocode.client.session.views.TextView import ai.kilocode.client.plugin.KiloBundle import ai.kilocode.rpc.dto.MessageDto @@ -13,8 +16,11 @@ import ai.kilocode.rpc.dto.PartDto import com.intellij.openapi.Disposable import com.intellij.openapi.util.Disposer import com.intellij.testFramework.fixtures.BasePlatformTestCase +import com.intellij.util.ui.JBUI import java.awt.Container +import java.awt.event.MouseEvent import javax.swing.JButton +import javax.swing.ScrollPaneConstants /** * Integration test: mutate [SessionModel] directly on the EDT and verify @@ -143,7 +149,29 @@ class SessionUiUpdateTest : BasePlatformTestCase() { assertNull(gv.border) } - fun `test user file part renders as attachment view`() { + fun `test assistant file part renders as attachment view`() { + model.upsertMessage(msg("a1", "assistant")) + model.updateContent( + "a1", + PartDto( + id = "f1", + sessionID = "ses", + messageID = "a1", + type = "file", + mime = "image/png", + url = "file:///tmp/a.png", + filename = "a.png", + ), + ) + + val view = panel.findMessage("a1")!!.part("f1") + assertTrue(view is AttachmentView) + assertEquals("AttachmentView#f1:a.png", view!!.dumpLabel()) + assertNotNull(find(view, AttachmentCard::class.java)) + assertFalse(buttons(view).any { it.accessibleContext.accessibleName == KiloBundle.message("prompt.attachment.remove", "a.png") }) + } + + fun `test user file part renders as prompt attachment strip`() { model.upsertMessage(msg("u1", "user")) model.updateContent( "u1", @@ -159,12 +187,185 @@ class SessionUiUpdateTest : BasePlatformTestCase() { ) val view = panel.findMessage("u1")!!.part("f1") - assertTrue(view is AttachmentView) - assertEquals("AttachmentView#f1:a.png", view!!.dumpLabel()) + assertTrue(view is PromptAttachmentView) + assertEquals("PromptAttachmentView#attachments:u1[f1]", view!!.dumpLabel()) assertNotNull(find(view, AttachmentCard::class.java)) assertFalse(buttons(view).any { it.accessibleContext.accessibleName == KiloBundle.message("prompt.attachment.remove", "a.png") }) } + fun `test user text and attachments share one prompt container`() { + val opened = mutableListOf() + val item = SessionMessageListPanel(model, parent, openFile = {}, openAttachment = { opened.add(it.url) }) + model.upsertMessage(msg("u1", "user")) + model.updateContent("u1", part("p1", "u1", "text", text = "look at this")) + model.updateContent( + "u1", + PartDto( + id = "f1", + sessionID = "ses", + messageID = "u1", + type = "file", + mime = "image/png", + url = "data:image/png;base64,aGVsbG8=", + filename = "a.png", + ), + ) + model.updateContent( + "u1", + PartDto( + id = "f2", + sessionID = "ses", + messageID = "u1", + type = "file", + mime = "text/plain", + url = "data:text/plain;base64,aGVsbG8=", + filename = "note.txt", + ), + ) + + val msg = item.findMessage("u1")!! + val attachment = msg.part("f1")!! + val other = msg.part("f2")!! + + assertSame(msg, attachment.parent) + assertSame(attachment, other) + assertEquals(listOf("p1", "f1", "f2"), msg.partIds()) + assertEquals(1, msg.components.filterIsInstance().size) + assertEquals(2, findAll(attachment, AttachmentCard::class.java).size) + + val cards = findAll(attachment, AttachmentCard::class.java) + for (card in cards) { + card.dispatchEvent(MouseEvent(card, MouseEvent.MOUSE_CLICKED, System.currentTimeMillis(), 0, 1, 1, 1, false)) + } + + assertEquals(listOf("data:image/png;base64,aGVsbG8=", "data:text/plain;base64,aGVsbG8="), opened) + } + + fun `test empty sanitized user text does not create prompt panel`() { + model.upsertMessage(msg("u1", "user")) + model.updateContent("u1", part("p1", "u1", "text", text = "read these screenshots")) + model.updateContent("u1", part("p2", "u1", "text", text = " ")) + model.updateContent( + "u1", + PartDto( + id = "f1", + sessionID = "ses", + messageID = "u1", + type = "file", + mime = "image/png", + url = "data:image/png;base64,aGVsbG8=", + filename = "a.png", + ), + ) + + val msg = panel.findMessage("u1")!! + + assertNull(msg.part("p2")) + assertEquals(listOf("p1", "f1"), msg.partIds()) + assertEquals(1, msg.components.filterIsInstance().size) + assertEquals(1, msg.components.filterIsInstance().size) + } + + fun `test prompt text panel is removed when content becomes empty`() { + model.upsertMessage(msg("u1", "user")) + model.updateContent("u1", part("p1", "u1", "text", text = "visible")) + + assertNotNull(panel.findMessage("u1")!!.part("p1")) + + model.updateContent("u1", part("p1", "u1", "text", text = "")) + + val msg = panel.findMessage("u1")!! + assertNull(msg.part("p1")) + assertTrue(msg.partIds().isEmpty()) + assertEquals(0, msg.components.filterIsInstance().size) + } + + fun `test user attachment strip scrolls horizontally only`() { + model.upsertMessage(msg("u1", "user")) + for (i in 1..8) { + model.updateContent( + "u1", + PartDto( + id = "f$i", + sessionID = "ses", + messageID = "u1", + type = "file", + mime = "image/png", + url = "file:///tmp/$i.png", + filename = "$i.png", + ), + ) + } + + val view = panel.findMessage("u1")!!.part("f1") as PromptAttachmentView + val height = view.preferredSize.height + val pane = view.scrollPane() + + assertEquals(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED, pane.horizontalScrollBarPolicy) + assertEquals(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER, pane.verticalScrollBarPolicy) + assertEquals(0, view.insets.top) + assertEquals(JBUI.scale(SessionUiStyle.View.Prompt.SHELL_VERTICAL_PADDING), view.insets.bottom) + assertEquals( + JBUI.scale(SessionUiStyle.View.Attachment.CARD_HEIGHT) + + pane.horizontalScrollBar.preferredSize.height + + JBUI.scale(SessionUiStyle.View.Prompt.SHELL_VERTICAL_PADDING), + height, + ) + + model.updateContent( + "u1", + PartDto( + id = "f9", + sessionID = "ses", + messageID = "u1", + type = "file", + mime = "image/png", + url = "file:///tmp/9.png", + filename = "9.png", + ), + ) + + assertEquals(height, view.preferredSize.height) + assertEquals((1..9).map { "f$it" }, view.ids()) + } + + fun `test user read tool payload is hidden but assistant read tool renders`() { + model.upsertMessage(msg("u1", "user")) + model.upsertMessage(msg("a1", "assistant")) + model.updateContent("u1", toolPart("ut1", "u1", "read", "completed")) + model.updateContent("a1", toolPart("at1", "a1", "read", "completed")) + + val user = panel.findMessage("u1")!! + val assistant = panel.findMessage("a1")!! + + assertTrue(user.partIds().isEmpty()) + assertNull(user.part("ut1")) + assertTrue(assistant.part("at1") is ReadToolView) + } + + fun `test transcript attachment click delegates to attachment opener`() { + val opened = mutableListOf() + val item = SessionMessageListPanel(model, parent, openFile = {}, openAttachment = { opened.add(it.url) }) + model.upsertMessage(msg("u1", "user")) + model.updateContent( + "u1", + PartDto( + id = "f1", + sessionID = "ses", + messageID = "u1", + type = "file", + mime = "text/plain", + url = "data:text/plain;base64,aGVsbG8=", + filename = "note.txt", + ), + ) + + val card = find(item.findMessage("u1")!!.part("f1")!!, AttachmentCard::class.java)!! + card.dispatchEvent(MouseEvent(card, MouseEvent.MOUSE_CLICKED, System.currentTimeMillis(), 0, 1, 1, 1, false)) + + assertEquals(listOf("data:text/plain;base64,aGVsbG8="), opened) + } + // ------ silent part types ------ fun `test step markers are not rendered in panel`() { @@ -248,6 +449,16 @@ class SessionUiUpdateTest : BasePlatformTestCase() { return null } + private fun findAll(root: java.awt.Component, type: Class): List { + val out = mutableListOf() + fun visit(node: java.awt.Component) { + if (type.isInstance(node)) out.add(type.cast(node)) + if (node is Container) node.components.forEach(::visit) + } + visit(root) + return out + } + private fun buttons(root: java.awt.Component): List { val out = mutableListOf() fun visit(node: java.awt.Component) { From 2f9c6ecdd00c49b9c53a8e72bf8971cabf51821a Mon Sep 17 00:00:00 2001 From: kirillk Date: Wed, 10 Jun 2026 09:24:14 -0400 Subject: [PATCH 010/109] feat(jetbrains): open embedded attachments in editor tabs --- .changeset/silent-comet-attachments.md | 5 + .../ai/kilocode/client/session/SessionUi.kt | 14 +- .../session/ui/SessionMessageListPanel.kt | 2 +- .../session/ui/attachment/AttachmentCard.kt | 9 +- .../ui/attachment/AttachmentEditorKind.kt | 185 ++++++++++++++++++ .../ui/attachment/AttachmentOpeners.kt | 37 ++-- .../client/session/views/MessageView.kt | 8 +- .../kilocode/client/session/views/TurnView.kt | 2 +- .../ai/kilocode/client/vfs/KiloVfsManager.kt | 5 +- .../ai/kilocode/client/vfs/KiloVirtualFile.kt | 5 +- .../resources/messages/KiloBundle.properties | 8 + .../client/session/ui/SessionUiUpdateTest.kt | 8 +- .../ui/attachment/AttachmentEditorKindTest.kt | 92 +++++++++ .../kilocode/client/vfs/KiloVfsManagerTest.kt | 8 +- .../client/vfs/KiloVirtualFileTest.kt | 5 + 15 files changed, 342 insertions(+), 51 deletions(-) create mode 100644 .changeset/silent-comet-attachments.md create mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKind.kt create mode 100644 packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKindTest.kt diff --git a/.changeset/silent-comet-attachments.md b/.changeset/silent-comet-attachments.md new file mode 100644 index 0000000000..fb622dba66 --- /dev/null +++ b/.changeset/silent-comet-attachments.md @@ -0,0 +1,5 @@ +--- +"@kilocode/kilo-jetbrains": patch +--- + +Open embedded transcript attachments in stable Kilo editor tabs. diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt index c1839a8c38..e9fa288276 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt @@ -24,7 +24,9 @@ import ai.kilocode.client.session.ui.SessionDropOverlay import ai.kilocode.client.session.ui.SessionRootPanel import ai.kilocode.client.session.ui.SessionMessageListPanel import ai.kilocode.client.session.ui.attachment.isEmbeddedAttachment -import ai.kilocode.client.session.ui.attachment.openEmbeddedAttachment +import ai.kilocode.client.session.ui.attachment.AttachmentEditorKind +import ai.kilocode.client.session.ui.attachment.attachmentParams +import ai.kilocode.client.session.ui.attachment.ensureAttachmentEditorKind import ai.kilocode.client.session.ui.header.SessionHeaderPanel import ai.kilocode.client.session.ui.selection.SessionSelection import ai.kilocode.client.session.ui.style.SessionEditorStyle @@ -39,6 +41,7 @@ import ai.kilocode.client.session.views.question.QuestionView import ai.kilocode.client.settings.profile.UserProfileConfigurable import ai.kilocode.client.telemetry.Telemetry import ai.kilocode.client.ui.layout.Stack +import ai.kilocode.client.vfs.KiloVfsManager import ai.kilocode.log.ChatLogSummary import ai.kilocode.rpc.dto.PromptDto import ai.kilocode.rpc.dto.PromptPartDto @@ -181,6 +184,7 @@ class SessionUi( init { buildUi() + ensureAttachmentEditorKind() Disposer.register(this, selection) scroll.show(body(controller.model.state)) bindUi() @@ -583,10 +587,14 @@ class SessionUi( BrowserUtil.browse(url) } - private fun openAttachment(item: FileAttachment) { + private fun openAttachment(messageId: String, item: FileAttachment) { val url = item.url.takeIf { it.isNotBlank() } ?: return if (isEmbeddedAttachment(url)) { - openEmbeddedAttachment(project, attachmentName(item), item.mime, url) + val id = controller.id ?: return + project.service().open( + AttachmentEditorKind.ID, + attachmentParams(id, messageId, item, attachmentName(item), workspace.directory), + ) return } val uri = runCatching { URI.create(url) }.getOrNull() ?: return diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionMessageListPanel.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionMessageListPanel.kt index 9258fa9f7e..10c2bdeda1 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionMessageListPanel.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/SessionMessageListPanel.kt @@ -52,7 +52,7 @@ class SessionMessageListPanel( private val openFile: (String) -> Unit, private val openUrl: (String) -> Unit = {}, private val selection: SessionSelection? = null, - private val openAttachment: (FileAttachment) -> Unit = { ai.kilocode.client.session.views.AttachmentView.openDefault(it, openFile, openUrl) }, + private val openAttachment: (String, FileAttachment) -> Unit = { _, item -> ai.kilocode.client.session.views.AttachmentView.openDefault(item, openFile, openUrl) }, ) : SessionLayoutPanel( JBUI.scale(SessionUiStyle.SessionLayout.GAP), JBUI.insets( diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt index 1d83156ecd..2c2a746b20 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentCard.kt @@ -7,7 +7,6 @@ import ai.kilocode.client.ui.iconButton import ai.kilocode.client.ui.layout.HAlign import ai.kilocode.client.ui.layout.VAlign import ai.kilocode.client.ui.layout.align -import com.intellij.icons.AllIcons import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.util.IconLoader import com.intellij.openapi.util.text.StringUtil @@ -54,7 +53,7 @@ open class AttachmentCard( ) : JPanel(CardLayout()) { private var gen = 0 private var loaded = false - private val icon = mimeIcon(item.mime) + private val icon = attachmentIcon(item.mime, item.name) private val tip = tooltip(item) private val open = open?.let { callback -> object : MouseAdapter() { @@ -283,12 +282,6 @@ private fun local(item: AttachmentCardItem): Path? { return runCatching { Path.of(uri) }.getOrNull() } -private fun mimeIcon(mime: String): Icon = when { - mime.startsWith("image/") -> AllIcons.FileTypes.Image - mime == "application/x-directory" -> AllIcons.Nodes.Folder - else -> AllIcons.FileTypes.Text -} - private fun tooltip(item: AttachmentCardItem): String = "${listOf( "Name: ${item.name}", "Type: ${item.mime}", diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKind.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKind.kt new file mode 100644 index 0000000000..2ed0e1b182 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKind.kt @@ -0,0 +1,185 @@ +package ai.kilocode.client.session.ui.attachment + +import ai.kilocode.client.app.KiloSessionService +import ai.kilocode.client.plugin.KiloBundle +import ai.kilocode.client.ui.UiStyle +import ai.kilocode.client.ui.layout.Stack +import ai.kilocode.client.vfs.KiloEditorKind +import ai.kilocode.client.vfs.KiloVfsRegistry +import ai.kilocode.client.vfs.KiloVirtualFile +import com.intellij.openapi.Disposable +import com.intellij.openapi.components.Service +import com.intellij.openapi.components.service +import com.intellij.openapi.project.Project +import com.intellij.openapi.util.Disposer +import com.intellij.ui.components.JBLabel +import com.intellij.ui.components.JBScrollPane +import com.intellij.ui.components.JBTextArea +import com.intellij.util.concurrency.annotations.RequiresEdt +import com.intellij.util.ui.Centerizer +import com.intellij.util.ui.JBUI +import java.awt.BorderLayout +import java.awt.image.BufferedImage +import java.io.ByteArrayInputStream +import javax.imageio.ImageIO +import javax.swing.Icon +import javax.swing.ImageIcon +import javax.swing.JComponent +import javax.swing.JPanel +import javax.swing.SwingConstants +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.cancel +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext + +internal object AttachmentEditorKind : KiloEditorKind { + const val ID = "attachment" + + override val id: String = ID + + override fun title(project: Project, params: Map): String { + return name(params) + } + + override fun icon(project: Project, params: Map): Icon? { + return attachmentIcon(params["mime"].orEmpty(), name(params)) + } + + override fun presentablePath(project: Project, params: Map): String { + return KiloBundle.message("session.attachment.path", params["sessionId"].orEmpty(), name(params)) + } + + override fun isValid(project: Project, params: Map): Boolean { + if (project.isDisposed) return false + return params["sessionId"].isPresent() && + params["messageId"].isPresent() && + params["partId"].isPresent() && + params["directory"].isPresent() + } + + @RequiresEdt + override fun createContent(project: Project, file: KiloVirtualFile, parent: Disposable): JComponent { + val panel = JPanel(BorderLayout()).apply { + border = JBUI.Borders.empty(UiStyle.Gap.pad()) + } + panel.add(center(KiloBundle.message("session.attachment.loading")), BorderLayout.CENTER) + project.service().load(file.path.params, parent) { data -> + panel.removeAll() + panel.add(component(data), BorderLayout.CENTER) + panel.revalidate() + panel.repaint() + } + return panel + } + + private fun component(data: AttachmentData): JComponent = when (data) { + is AttachmentData.Text -> text(data.text) + is AttachmentData.Image -> JBScrollPane(JBLabel(ImageIcon(data.image), SwingConstants.CENTER)) + is AttachmentData.Binary -> metadata(data.name, data.mime, data.size) + is AttachmentData.Missing -> center(KiloBundle.message("session.attachment.missing")) + is AttachmentData.Error -> center(KiloBundle.message("session.attachment.error", data.message)) + } + + private fun text(value: String): JComponent { + val area = JBTextArea(value).apply { + isEditable = false + lineWrap = false + border = JBUI.Borders.empty(UiStyle.Gap.sm()) + } + return JBScrollPane(area) + } + + private fun metadata(name: String, mime: String, size: Int): JComponent { + return Stack.vertical(gap = UiStyle.Gap.sm()).apply { + border = JBUI.Borders.empty(UiStyle.Gap.pad()) + next(JBLabel(KiloBundle.message("session.attachment.unsupported", name))) + next(JBLabel(KiloBundle.message("session.attachment.mime", mime.ifBlank { "unknown" }))) + next(JBLabel(KiloBundle.message("session.attachment.size", size))) + } + } + + private fun center(value: String): JComponent = Centerizer(JBLabel(value), Centerizer.TYPE.BOTH) + + private fun name(params: Map): String { + return params["filename"]?.takeIf { it.isNotBlank() } + ?: params["partId"]?.takeIf { it.isNotBlank() } + ?: KiloBundle.message("session.attachment.title") + } +} + +@Service(Service.Level.PROJECT) +internal class KiloAttachmentEditorService( + private val project: Project, + private val cs: CoroutineScope, +) { + fun load(params: Map, parent: Disposable, done: (AttachmentData) -> Unit) { + var disposed = false + val job = cs.launch { + val data = runCatching { fetch(params) } + .getOrElse { AttachmentData.Error(it.message ?: it::class.java.simpleName) } + withContext(Dispatchers.Main) { + if (!project.isDisposed && !disposed) done(data) + } + } + Disposer.register(parent) { + disposed = true + job.cancel() + } + } + + private suspend fun fetch(params: Map): AttachmentData { + val session = params["sessionId"] ?: return AttachmentData.Missing + val message = params["messageId"] ?: return AttachmentData.Missing + val part = params["partId"] ?: return AttachmentData.Missing + val dir = params["directory"] ?: return AttachmentData.Missing + val item = project.service() + .messages(session, dir) + .firstOrNull { it.info.id == message } + ?.parts + ?.firstOrNull { it.id == part && it.type == "file" } + ?: return AttachmentData.Missing + val data = parseDataUrl(item.url.orEmpty()) ?: return AttachmentData.Missing + val mime = item.mime?.takeIf { it.isNotBlank() } ?: data.mime + val name = item.filename?.takeIf { it.isNotBlank() } + ?: params["filename"]?.takeIf { it.isNotBlank() } + ?: part + if (textual(mime)) return AttachmentData.Text(data.bytes.toString(Charsets.UTF_8)) + if (mime.startsWith("image/")) { + return withContext(Dispatchers.IO) { + val image = ImageIO.read(ByteArrayInputStream(data.bytes)) ?: return@withContext AttachmentData.Binary(name, mime, data.bytes.size) + AttachmentData.Image(image) + } + } + return AttachmentData.Binary(name, mime, data.bytes.size) + } +} + +internal fun ensureAttachmentEditorKind() { + service().register(AttachmentEditorKind) +} + +internal fun attachmentParams( + sessionId: String, + messageId: String, + item: ai.kilocode.client.session.model.FileAttachment, + filename: String, + directory: String, +): Map = linkedMapOf( + "sessionId" to sessionId, + "messageId" to messageId, + "partId" to item.id, + "filename" to filename, + "mime" to item.mime, + "directory" to directory, +) + +internal sealed interface AttachmentData { + data class Text(val text: String) : AttachmentData + data class Image(val image: BufferedImage) : AttachmentData + data class Binary(val name: String, val mime: String, val size: Int) : AttachmentData + data object Missing : AttachmentData + data class Error(val message: String) : AttachmentData +} + +private fun String?.isPresent(): Boolean = !this.isNullOrBlank() diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentOpeners.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentOpeners.kt index 20543f137d..371addaa17 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentOpeners.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentOpeners.kt @@ -1,32 +1,11 @@ package ai.kilocode.client.session.ui.attachment -import com.intellij.openapi.application.ApplicationManager -import com.intellij.openapi.fileEditor.FileEditorManager +import com.intellij.icons.AllIcons import com.intellij.openapi.fileTypes.FileTypeManager -import com.intellij.openapi.project.Project -import com.intellij.testFramework.BinaryLightVirtualFile -import com.intellij.testFramework.LightVirtualFile -import com.intellij.util.concurrency.annotations.RequiresEdt import java.net.URLDecoder import java.nio.charset.StandardCharsets import java.util.Base64 - -@RequiresEdt -fun openEmbeddedAttachment(project: Project, name: String, mime: String, url: String) { - val data = parseDataUrl(url) ?: return - val type = FileTypeManager.getInstance().getFileTypeByFileName(name) - val file = if (textual(mime)) { - LightVirtualFile(name, type, data.bytes.toString(StandardCharsets.UTF_8)) - } else { - BinaryLightVirtualFile(name, type, data.bytes) - } - FileEditorManager.getInstance(project).openFile(file, true) -} - -@RequiresEdt -fun openEmbeddedAttachment(project: Project, item: AttachmentCardItem) { - openEmbeddedAttachment(project, item.name, item.mime, item.url) -} +import javax.swing.Icon fun decodeDataImage(url: String): ByteArray? { val data = parseDataUrl(url) ?: return null @@ -34,9 +13,9 @@ fun decodeDataImage(url: String): ByteArray? { return data.bytes } -private data class DataUrl(val mime: String, val bytes: ByteArray) +internal data class DataUrl(val mime: String, val bytes: ByteArray) -private fun parseDataUrl(url: String): DataUrl? { +internal fun parseDataUrl(url: String): DataUrl? { if (!url.startsWith("data:")) return null val comma = url.indexOf(',') if (comma < 0) return null @@ -52,13 +31,19 @@ private fun parseDataUrl(url: String): DataUrl? { return DataUrl(mime, bytes) } -private fun textual(mime: String) = mime.startsWith("text/") || mime in setOf( +internal fun textual(mime: String) = mime.startsWith("text/") || mime in setOf( "application/json", "application/javascript", "application/xml", "application/x-yaml", ) +internal fun attachmentIcon(mime: String, name: String = "attachment"): Icon = when { + mime.startsWith("image/") -> AllIcons.FileTypes.Image + mime == "application/x-directory" -> AllIcons.Nodes.Folder + else -> FileTypeManager.getInstance().getFileTypeByFileName(name).icon ?: AllIcons.FileTypes.Text +} + fun isEmbeddedAttachment(url: String) = url.startsWith("data:") fun isLocalAttachment(url: String) = runCatching { java.net.URI.create(url).scheme == "file" }.getOrDefault(false) diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/MessageView.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/MessageView.kt index f086fee6af..221a8377f7 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/MessageView.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/MessageView.kt @@ -39,7 +39,7 @@ class MessageView( private var style: SessionEditorStyle = SessionEditorStyle.current(), private val openUrl: (String) -> Unit = {}, private val selection: SessionSelection? = null, - private val openAttachment: (FileAttachment) -> Unit = { AttachmentView.openDefault(it, openFile, openUrl) }, + private val openAttachment: (String, FileAttachment) -> Unit = { _, item -> AttachmentView.openDefault(item, openFile, openUrl) }, ) : ai.kilocode.client.session.ui.SessionLayoutPanel( JBUI.scale(SessionUiStyle.SessionLayout.GAP), ), Disposable, SessionEditorStyleTarget, SessionView { @@ -192,9 +192,9 @@ class MessageView( } private fun view(content: Content) = if (msg.info.role == SessionUiStyle.View.Message.USER_ROLE) { - ViewFactory.createUser(content, openFile, openUrl, selection, openAttachment) + ViewFactory.createUser(content, openFile, openUrl, selection) { openAttachment(msg.info.id, it) } } else { - ViewFactory.create(content, openFile, openUrl, selection, openAttachment) + ViewFactory.create(content, openFile, openUrl, selection) { openAttachment(msg.info.id, it) } } /** Append a streaming delta to the renderer for [contentId]. */ @@ -266,7 +266,7 @@ class MessageView( } private fun upsertAttachment(content: FileAttachment, refresh: Boolean = true) { - val view = attachments ?: PromptAttachmentView(msg.info.id, openAttachment).also { + val view = attachments ?: PromptAttachmentView(msg.info.id) { openAttachment(msg.info.id, it) }.also { attachments = it it.applyStyle(style) add(it, attachmentIndex()) diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/TurnView.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/TurnView.kt index c2951cec12..a3b17eb8af 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/TurnView.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/TurnView.kt @@ -26,7 +26,7 @@ class TurnView( private var style: SessionEditorStyle = SessionEditorStyle.current(), private val openUrl: (String) -> Unit = {}, private val selection: SessionSelection? = null, - private val openAttachment: (FileAttachment) -> Unit = { AttachmentView.openDefault(it, openFile, openUrl) }, + private val openAttachment: (String, FileAttachment) -> Unit = { _, item -> AttachmentView.openDefault(item, openFile, openUrl) }, ) : SessionLayoutPanel(JBUI.scale(SessionUiStyle.SessionLayout.GAP)), Disposable, SessionEditorStyleTarget { constructor(id: String, openFile: (String) -> Unit) : this(id, openFile, SessionEditorStyle.current()) diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsManager.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsManager.kt index 8770cadd41..47247d41f0 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsManager.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsManager.kt @@ -1,5 +1,6 @@ package ai.kilocode.client.vfs +import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.components.Service import com.intellij.openapi.fileEditor.FileEditorManager import com.intellij.openapi.fileEditor.FileEditorProvider @@ -13,7 +14,9 @@ class KiloVfsManager(private val project: Project) { @RequiresEdt fun open(kind: String, params: Map = emptyMap(), focus: Boolean = true): Boolean { val file = file(kind, params) ?: return false - file.putUserData(FileEditorProvider.KEY, KiloFileEditorProvider()) + if (ApplicationManager.getApplication().isUnitTestMode) { + file.putUserData(FileEditorProvider.KEY, KiloFileEditorProvider()) + } FileEditorManager.getInstance(project).openFile(file, focus) return true } diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFile.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFile.kt index a6861a6448..163ad699d4 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFile.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFile.kt @@ -4,6 +4,7 @@ package ai.kilocode.client.vfs import com.intellij.openapi.components.service import com.intellij.openapi.fileEditor.FileEditorManagerKeys +import com.intellij.openapi.fileEditor.impl.EditorHistoryManager import com.intellij.openapi.fileTypes.FileType import com.intellij.openapi.fileTypes.FileTypes import com.intellij.openapi.project.Project @@ -16,7 +17,7 @@ import java.io.OutputStream class KiloVirtualFile( val project: Project, val path: KiloPath, -) : LightVirtualFileBase("", null, 0), VirtualFileWithoutContent, VirtualFilePathWrapper { +) : LightVirtualFileBase("", null, 0), VirtualFileWithoutContent, VirtualFilePathWrapper, EditorHistoryManager.IncludeInEditorHistoryFile { init { putUserData(FileEditorManagerKeys.REOPEN_WINDOW, false) putUserData(FileEditorManagerKeys.FORBID_TAB_SPLIT, true) @@ -42,6 +43,8 @@ class KiloVirtualFile( return !project.isDisposed && kind.isValid(project, path.params) } + override fun isPersistedInEditorHistory(): Boolean = false + override fun getLength(): Long = 0 override fun contentsToByteArray(): ByteArray = throw UnsupportedOperationException() override fun getInputStream(): InputStream = throw UnsupportedOperationException() diff --git a/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties b/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties index 32fbd39dee..526bad4594 100644 --- a/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties +++ b/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties @@ -141,6 +141,14 @@ prompt.attachment.tooltip=Name: {0}\nType: {1}\nLocation: {2} prompt.attachment.embedded=Embedded content prompt.attachment.unsupported.model=The selected model does not support image or PDF attachments. prompt.attachment.missing=Attachment no longer exists: {0} +session.attachment.title=Attachment +session.attachment.path=Kilo / Attachments / {0} / {1} +session.attachment.loading=Loading attachment... +session.attachment.missing=Attachment not found +session.attachment.unsupported=Cannot preview {0} +session.attachment.mime=Type: {0} +session.attachment.size=Size: {0} bytes +session.attachment.error=Failed to load attachment: {0} prompt.action.autoApprove.enable=Enable auto-approve prompt.action.autoApprove.disable=Disable auto-approve prompt.action.autoApprove.enabled.tooltip=Auto-approve is enabled. Permission prompts will be approved automatically. diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionUiUpdateTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionUiUpdateTest.kt index 18de992813..8abacd2cd0 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionUiUpdateTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/SessionUiUpdateTest.kt @@ -195,7 +195,7 @@ class SessionUiUpdateTest : BasePlatformTestCase() { fun `test user text and attachments share one prompt container`() { val opened = mutableListOf() - val item = SessionMessageListPanel(model, parent, openFile = {}, openAttachment = { opened.add(it.url) }) + val item = SessionMessageListPanel(model, parent, openFile = {}, openAttachment = { _, it -> opened.add(it.url) }) model.upsertMessage(msg("u1", "user")) model.updateContent("u1", part("p1", "u1", "text", text = "look at this")) model.updateContent( @@ -344,8 +344,8 @@ class SessionUiUpdateTest : BasePlatformTestCase() { } fun `test transcript attachment click delegates to attachment opener`() { - val opened = mutableListOf() - val item = SessionMessageListPanel(model, parent, openFile = {}, openAttachment = { opened.add(it.url) }) + val opened = mutableListOf>() + val item = SessionMessageListPanel(model, parent, openFile = {}, openAttachment = { msg, it -> opened.add(msg to it.url) }) model.upsertMessage(msg("u1", "user")) model.updateContent( "u1", @@ -363,7 +363,7 @@ class SessionUiUpdateTest : BasePlatformTestCase() { val card = find(item.findMessage("u1")!!.part("f1")!!, AttachmentCard::class.java)!! card.dispatchEvent(MouseEvent(card, MouseEvent.MOUSE_CLICKED, System.currentTimeMillis(), 0, 1, 1, 1, false)) - assertEquals(listOf("data:text/plain;base64,aGVsbG8="), opened) + assertEquals(listOf("u1" to "data:text/plain;base64,aGVsbG8="), opened) } // ------ silent part types ------ diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKindTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKindTest.kt new file mode 100644 index 0000000000..30a2bd681e --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKindTest.kt @@ -0,0 +1,92 @@ +package ai.kilocode.client.session.ui.attachment + +import ai.kilocode.client.session.model.FileAttachment +import ai.kilocode.client.vfs.KiloPath +import ai.kilocode.client.vfs.KiloVfsManager +import ai.kilocode.client.vfs.KiloVfsRegistry +import ai.kilocode.client.vfs.KiloVfsTestBase +import ai.kilocode.client.vfs.KiloVirtualFile +import com.intellij.openapi.components.service +import com.intellij.openapi.fileEditor.FileEditorManager +import com.intellij.util.ui.UIUtil + +class AttachmentEditorKindTest : KiloVfsTestBase() { + override fun setUp() { + super.setUp() + ensureAttachmentEditorKind() + } + + override fun tearDown() { + try { + service().unregister(AttachmentEditorKind.ID) + } finally { + super.tearDown() + } + } + + fun testParamsUseStableIdentityOrder() { + val item = FileAttachment("part1").apply { + mime = "text/plain" + url = "data:text/plain;base64,aGVsbG8=" + filename = "note.txt" + } + + val params = attachmentParams("ses1", "msg1", item, "note.txt", "/repo") + + assertEquals(listOf("sessionId", "messageId", "partId", "filename", "mime", "directory"), params.keys.toList()) + assertEquals("ses1", params["sessionId"]) + assertEquals("msg1", params["messageId"]) + assertEquals("part1", params["partId"]) + assertEquals("note.txt", params["filename"]) + assertEquals("text/plain", params["mime"]) + assertEquals("/repo", params["directory"]) + } + + fun testPresentationUsesAttachmentMetadata() { + val file = KiloVirtualFile(project, KiloPath("launch", project.locationHash, AttachmentEditorKind.ID, mapOf( + "sessionId" to "ses1", + "messageId" to "msg1", + "partId" to "part1", + "filename" to "note.txt", + "mime" to "text/plain", + "directory" to "/repo", + ))) + + assertTrue(file.isValid) + assertEquals("note.txt", file.name) + assertEquals("Kilo / Attachments / ses1 / note.txt", file.presentablePath) + } + + fun testMissingRequiredParamsInvalidatesFile() { + val file = KiloVirtualFile(project, KiloPath("launch", project.locationHash, AttachmentEditorKind.ID, mapOf( + "sessionId" to "ses1", + "partId" to "part1", + "filename" to "note.txt", + "mime" to "text/plain", + "directory" to "/repo", + ))) + + assertFalse(file.isValid) + } + + fun testOpeningSameAttachmentParamsDoesNotDuplicate() { + val params = mapOf( + "sessionId" to "ses1", + "messageId" to "msg1", + "partId" to "part1", + "filename" to "note.txt", + "mime" to "text/plain", + "directory" to "/repo", + ) + + edt { + project.service().open(AttachmentEditorKind.ID, params) + project.service().open(AttachmentEditorKind.ID, params) + UIUtil.dispatchAllInvocationEvents() + } + + val files = FileEditorManager.getInstance(project).openFiles.filterIsInstance() + .filter { it.path.kind == AttachmentEditorKind.ID } + assertEquals(1, files.size) + } +} diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsManagerTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsManagerTest.kt index 531b2e2e1f..a5f19dd0d3 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsManagerTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsManagerTest.kt @@ -2,6 +2,7 @@ package ai.kilocode.client.vfs import com.intellij.openapi.components.service import com.intellij.openapi.fileEditor.FileEditorManager +import com.intellij.openapi.fileEditor.impl.EditorHistoryManager import com.intellij.ui.components.JBLabel import com.intellij.util.ui.UIUtil @@ -15,11 +16,14 @@ class KiloVfsManagerTest : KiloVfsTestBase() { val files = FileEditorManager.getInstance(project).openFiles.filterIsInstance() val editor = FileEditorManager.getInstance(project).selectedEditor as KiloFileEditor val component = editor.component as JBLabel + val file = files.single() + val history = EditorHistoryManager.getInstance(project).fileList assertTrue(opened) assertEquals(1, files.size) - assertEquals(KiloVfsTestKind.ID, files.single().path.kind) - assertEquals("11", files.single().path.params["id"]) + assertEquals(KiloVfsTestKind.ID, file.path.kind) + assertEquals("11", file.path.params["id"]) + assertTrue(history.contains(file)) assertSame(kind.components.single(), component) assertEquals("content:11", component.text) } diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileTest.kt index 6ad45e4388..bb6bad4dd6 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileTest.kt @@ -2,10 +2,13 @@ package ai.kilocode.client.vfs import com.intellij.openapi.components.service import com.intellij.openapi.fileEditor.FileEditorManagerKeys +import com.intellij.openapi.fileEditor.impl.EditorHistoryManager class KiloVirtualFileTest : KiloVfsTestBase() { fun testContentlessPresentationAndUserData() { val file = KiloVirtualFile(project, path(mapOf("id" to "7"))) + val included: EditorHistoryManager.IncludeInEditorHistoryFile = file + val history: EditorHistoryManager.OptionallyIncluded = included val err = try { file.contentsToByteArray() null @@ -17,6 +20,8 @@ class KiloVirtualFileTest : KiloVfsTestBase() { assertFalse(file.isWritable) assertEquals(false, file.getUserData(FileEditorManagerKeys.REOPEN_WINDOW)) assertEquals(true, file.getUserData(FileEditorManagerKeys.FORBID_TAB_SPLIT)) + assertTrue(history.isIncludedInEditorHistory(project)) + assertFalse(history.isPersistedInEditorHistory()) assertEquals("Test 7", file.name) assertEquals("Test 7", file.presentableName) assertEquals("Kilo Test / 7", file.presentablePath) From 3dc1ac5f513d54fd54364fc71a07fa9295bf50ff Mon Sep 17 00:00:00 2001 From: kirillk Date: Wed, 10 Jun 2026 18:44:58 -0400 Subject: [PATCH 011/109] fix(jetbrains): stabilize Kilo VFS keys --- .changeset/jetbrains-vfs-recents.md | 5 + .../ui/attachment/AttachmentEditorKind.kt | 15 ++- .../kotlin/ai/kilocode/client/vfs/KiloPath.kt | 10 +- .../ai/kilocode/client/vfs/KiloVfsManager.kt | 4 +- .../client/vfs/KiloVirtualFileSystem.kt | 6 +- .../ui/attachment/AttachmentEditorKindTest.kt | 105 +++++++++++++++++- .../kilocode/client/vfs/KiloVfsManagerTest.kt | 27 +++++ .../ai/kilocode/client/vfs/KiloVfsTestBase.kt | 2 +- .../client/vfs/KiloVirtualFileSystemTest.kt | 12 ++ 9 files changed, 173 insertions(+), 13 deletions(-) create mode 100644 .changeset/jetbrains-vfs-recents.md diff --git a/.changeset/jetbrains-vfs-recents.md b/.changeset/jetbrains-vfs-recents.md new file mode 100644 index 0000000000..6bdd29a9da --- /dev/null +++ b/.changeset/jetbrains-vfs-recents.md @@ -0,0 +1,5 @@ +--- +"@kilocode/kilo-jetbrains": patch +--- + +Show distinct embedded attachments as separate JetBrains editor tabs and Recent Files entries. diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKind.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKind.kt index 2ed0e1b182..7bd06349df 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKind.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKind.kt @@ -32,6 +32,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.cancel import kotlinx.coroutines.launch import kotlinx.coroutines.withContext +import java.security.MessageDigest internal object AttachmentEditorKind : KiloEditorKind { const val ID = "attachment" @@ -137,7 +138,12 @@ internal class KiloAttachmentEditorService( .messages(session, dir) .firstOrNull { it.info.id == message } ?.parts - ?.firstOrNull { it.id == part && it.type == "file" } + ?.firstOrNull { + if (it.type != "file") return@firstOrNull false + val key = params["attachmentKey"] + if (key.isPresent()) attachmentKey(it.id, it.filename.orEmpty(), it.url.orEmpty()) == key + else it.id == part + } ?: return AttachmentData.Missing val data = parseDataUrl(item.url.orEmpty()) ?: return AttachmentData.Missing val mime = item.mime?.takeIf { it.isNotBlank() } ?: data.mime @@ -169,6 +175,7 @@ internal fun attachmentParams( "sessionId" to sessionId, "messageId" to messageId, "partId" to item.id, + "attachmentKey" to attachmentKey(item.id, item.filename.orEmpty(), item.url), "filename" to filename, "mime" to item.mime, "directory" to directory, @@ -183,3 +190,9 @@ internal sealed interface AttachmentData { } private fun String?.isPresent(): Boolean = !this.isNullOrBlank() + +private fun attachmentKey(part: String, name: String, url: String): String { + val value = listOf(part, name, url).joinToString("\u0000") + val bytes = MessageDigest.getInstance("SHA-256").digest(value.toByteArray(Charsets.UTF_8)) + return bytes.take(16).joinToString("") { "%02x".format(it) } +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloPath.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloPath.kt index 2bfd1dc0fb..6f64411373 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloPath.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloPath.kt @@ -4,8 +4,14 @@ import kotlinx.serialization.Serializable @Serializable data class KiloPath( - val launchId: String, val projectHash: String, val kind: String, val params: Map = emptyMap(), -) +) { + fun canonical(): KiloPath = copy(params = canonicalParams(params)) +} + +internal fun canonicalParams(params: Map): Map { + if (params.size < 2) return params + return params.toSortedMap() +} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsManager.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsManager.kt index 47247d41f0..7dfd399e43 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsManager.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVfsManager.kt @@ -9,8 +9,6 @@ import com.intellij.util.concurrency.annotations.RequiresEdt @Service(Service.Level.PROJECT) class KiloVfsManager(private val project: Project) { - private val launchId = System.currentTimeMillis().toString() - @RequiresEdt fun open(kind: String, params: Map = emptyMap(), focus: Boolean = true): Boolean { val file = file(kind, params) ?: return false @@ -34,7 +32,7 @@ class KiloVfsManager(private val project: Project) { } private fun file(kind: String, params: Map): KiloVirtualFile? { - val path = KiloPath(launchId, project.locationHash, kind, params) + val path = KiloPath(project.locationHash, kind, params) return KiloVirtualFileSystem.getInstance().refreshAndFindFileByPath(KiloVirtualFileSystem.getInstance().getPath(path)) as? KiloVirtualFile } } diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystem.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystem.kt index 1e9189a9ae..52f264fc5e 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystem.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystem.kt @@ -12,11 +12,11 @@ import com.intellij.openapi.vfs.VirtualFilePathWrapper import kotlinx.serialization.json.Json class KiloVirtualFileSystem : DeprecatedVirtualFileSystem(), NonPhysicalFileSystem { - fun getPath(path: KiloPath): String = json.encodeToString(KiloPath.serializer(), path) + fun getPath(path: KiloPath): String = json.encodeToString(KiloPath.serializer(), path.canonical()) fun findOrCreateFile(project: Project, path: KiloPath): VirtualFile? { service().get(path.kind) ?: return null - return KiloVirtualFile(project, path) + return KiloVirtualFile(project, path.canonical()) } override fun findFileByPath(path: String): VirtualFile? { @@ -37,7 +37,7 @@ class KiloVirtualFileSystem : DeprecatedVirtualFileSystem(), NonPhysicalFileSyst private fun decode(path: String): KiloPath? { return try { - json.decodeFromString(KiloPath.serializer(), path) + json.decodeFromString(KiloPath.serializer(), path).canonical() } catch (err: Exception) { log.warn("Cannot deserialize $path", err) null diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKindTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKindTest.kt index 30a2bd681e..b864b10ee8 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKindTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/attachment/AttachmentEditorKindTest.kt @@ -1,14 +1,26 @@ package ai.kilocode.client.session.ui.attachment +import ai.kilocode.client.app.KiloSessionService import ai.kilocode.client.session.model.FileAttachment +import ai.kilocode.client.testing.FakeSessionRpcApi import ai.kilocode.client.vfs.KiloPath import ai.kilocode.client.vfs.KiloVfsManager import ai.kilocode.client.vfs.KiloVfsRegistry import ai.kilocode.client.vfs.KiloVfsTestBase import ai.kilocode.client.vfs.KiloVirtualFile +import ai.kilocode.rpc.dto.MessageDto +import ai.kilocode.rpc.dto.MessageTimeDto +import ai.kilocode.rpc.dto.MessageWithPartsDto +import ai.kilocode.rpc.dto.PartDto import com.intellij.openapi.components.service import com.intellij.openapi.fileEditor.FileEditorManager +import com.intellij.openapi.fileEditor.impl.EditorHistoryManager +import com.intellij.openapi.util.Disposer +import com.intellij.testFramework.replaceService import com.intellij.util.ui.UIUtil +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.cancel class AttachmentEditorKindTest : KiloVfsTestBase() { override fun setUp() { @@ -33,17 +45,21 @@ class AttachmentEditorKindTest : KiloVfsTestBase() { val params = attachmentParams("ses1", "msg1", item, "note.txt", "/repo") - assertEquals(listOf("sessionId", "messageId", "partId", "filename", "mime", "directory"), params.keys.toList()) + assertEquals(listOf("sessionId", "messageId", "partId", "attachmentKey", "filename", "mime", "directory"), params.keys.toList()) assertEquals("ses1", params["sessionId"]) assertEquals("msg1", params["messageId"]) assertEquals("part1", params["partId"]) + assertTrue(params["attachmentKey"].isNullOrBlank().not()) assertEquals("note.txt", params["filename"]) assertEquals("text/plain", params["mime"]) assertEquals("/repo", params["directory"]) + assertFalse(params.keys.any { it.contains("launch", ignoreCase = true) }) + assertFalse(params.keys.any { it.contains("time", ignoreCase = true) }) + assertFalse(params.keys.any { it.contains("random", ignoreCase = true) }) } fun testPresentationUsesAttachmentMetadata() { - val file = KiloVirtualFile(project, KiloPath("launch", project.locationHash, AttachmentEditorKind.ID, mapOf( + val file = KiloVirtualFile(project, KiloPath(project.locationHash, AttachmentEditorKind.ID, mapOf( "sessionId" to "ses1", "messageId" to "msg1", "partId" to "part1", @@ -58,7 +74,7 @@ class AttachmentEditorKindTest : KiloVfsTestBase() { } fun testMissingRequiredParamsInvalidatesFile() { - val file = KiloVirtualFile(project, KiloPath("launch", project.locationHash, AttachmentEditorKind.ID, mapOf( + val file = KiloVirtualFile(project, KiloPath(project.locationHash, AttachmentEditorKind.ID, mapOf( "sessionId" to "ses1", "partId" to "part1", "filename" to "note.txt", @@ -89,4 +105,87 @@ class AttachmentEditorKindTest : KiloVfsTestBase() { .filter { it.path.kind == AttachmentEditorKind.ID } assertEquals(1, files.size) } + + fun testDuplicatePartAttachmentsUseDistinctHistoryEntries() { + val first = FileAttachment("part1").apply { + mime = "text/plain" + url = "data:text/plain;base64,b25l" + filename = "note.txt" + } + val second = FileAttachment("part1").apply { + mime = "text/plain" + url = "data:text/plain;base64,dHdv" + filename = "note.txt" + } + val one = attachmentParams("ses1", "msg1", first, "note.txt", "/repo") + val two = attachmentParams("ses1", "msg1", second, "note.txt", "/repo") + + assertFalse(one == two) + assertFalse(one["attachmentKey"] == two["attachmentKey"]) + + edt { + project.service().open(AttachmentEditorKind.ID, one) + project.service().open(AttachmentEditorKind.ID, two) + UIUtil.dispatchAllInvocationEvents() + } + + val files = FileEditorManager.getInstance(project).openFiles.filterIsInstance() + .filter { it.path.kind == AttachmentEditorKind.ID } + val history = EditorHistoryManager.getInstance(project).fileList.filterIsInstance() + .filter { it.path.kind == AttachmentEditorKind.ID } + assertEquals(2, files.size) + assertEquals(2, history.size) + assertTrue(history.containsAll(files)) + } + + @Suppress("UnstableApiUsage") + fun testFetchUsesAttachmentKeyBeforeDuplicatePartId() { + val cs = CoroutineScope(SupervisorJob()) + val rpc = FakeSessionRpcApi() + val first = PartDto( + id = "part1", + sessionID = "ses1", + messageID = "msg1", + type = "file", + mime = "text/plain", + url = "data:text/plain;base64,b25l", + filename = "note.txt", + ) + val second = first.copy(url = "data:text/plain;base64,dHdv") + rpc.history.add(MessageWithPartsDto( + info = MessageDto( + id = "msg1", + sessionID = "ses1", + role = "user", + time = MessageTimeDto(created = 0.0), + ), + parts = listOf(first, second), + )) + project.replaceService(KiloSessionService::class.java, KiloSessionService(project, cs, rpc), testRootDisposable) + val item = FileAttachment("part1").apply { + mime = "text/plain" + url = second.url.orEmpty() + filename = "note.txt" + } + var result: AttachmentData? = null + val parent = Disposer.newDisposable() + + try { + KiloAttachmentEditorService(project, cs).load(attachmentParams("ses1", "msg1", item, "note.txt", "/repo"), parent) { + result = it + } + + val until = System.currentTimeMillis() + 5_000 + while (result == null && System.currentTimeMillis() < until) { + UIUtil.dispatchAllInvocationEvents() + Thread.sleep(50) + } + val data = result + assertTrue(data is AttachmentData.Text) + assertEquals("two", (data as AttachmentData.Text).text) + } finally { + Disposer.dispose(parent) + cs.cancel() + } + } } diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsManagerTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsManagerTest.kt index a5f19dd0d3..c588259afc 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsManagerTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsManagerTest.kt @@ -39,6 +39,33 @@ class KiloVfsManagerTest : KiloVfsTestBase() { assertEquals(1, files.size) } + fun testOpeningSameStableParamsInDifferentOrderDoesNotDuplicate() { + edt { + project.service().open(KiloVfsTestKind.ID, linkedMapOf("mode" to "tab", "id" to "stable")) + project.service().open(KiloVfsTestKind.ID, linkedMapOf("id" to "stable", "mode" to "tab")) + UIUtil.dispatchAllInvocationEvents() + } + + val files = FileEditorManager.getInstance(project).openFiles.filterIsInstance() + val history = EditorHistoryManager.getInstance(project).fileList.filterIsInstance() + assertEquals(1, files.size) + assertEquals(1, history.size) + } + + fun testDistinctPathsCreateDistinctHistoryEntries() { + edt { + project.service().open(KiloVfsTestKind.ID, mapOf("id" to "21")) + project.service().open(KiloVfsTestKind.ID, mapOf("id" to "22")) + UIUtil.dispatchAllInvocationEvents() + } + + val files = FileEditorManager.getInstance(project).openFiles.filterIsInstance() + val history = EditorHistoryManager.getInstance(project).fileList.filterIsInstance() + assertEquals(2, files.size) + assertEquals(2, history.size) + assertTrue(history.containsAll(files)) + } + fun testCloseDisposesKindDisposable() { edt { project.service().open(KiloVfsTestKind.ID, mapOf("id" to "13")) diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsTestBase.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsTestBase.kt index 9e345dad72..ccb7d4b246 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsTestBase.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVfsTestBase.kt @@ -37,7 +37,7 @@ abstract class KiloVfsTestBase : BasePlatformTestCase() { } protected fun path(params: Map = mapOf("id" to "1"), kind: String = KiloVfsTestKind.ID): KiloPath { - return KiloPath("launch", project.locationHash, kind, params) + return KiloPath(project.locationHash, kind, params) } protected fun edt(block: () -> Unit) { diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystemTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystemTest.kt index dc3390ab45..cfab19d1d7 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystemTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/vfs/KiloVirtualFileSystemTest.kt @@ -12,6 +12,18 @@ class KiloVirtualFileSystemTest : KiloVfsTestBase() { assertEquals(project, file.project) } + fun testSerializedPathUsesStableCanonicalParams() { + val fs = KiloVirtualFileSystem.getInstance() + val one = fs.getPath(path(linkedMapOf("mode" to "tab", "id" to "42"))) + val two = fs.getPath(path(linkedMapOf("id" to "42", "mode" to "tab"))) + val file = fs.findFileByPath(one) as KiloVirtualFile + + assertEquals(one, two) + assertFalse(one.contains("launchId")) + assertFalse(one.contains("launch")) + assertEquals(listOf("id", "mode"), file.path.params.keys.toList()) + } + fun testUnknownKindReturnsNull() { val fs = KiloVirtualFileSystem.getInstance() val raw = fs.getPath(path(kind = "missing")) From 7749efdbf2b7d2f93c06bee8687a4c749351fcc2 Mon Sep 17 00:00:00 2001 From: kirillk Date: Wed, 10 Jun 2026 18:48:33 -0400 Subject: [PATCH 012/109] fix(jetbrains): order editor disposal fallback --- .../kotlin/ai/kilocode/client/session/views/tool/ToolSupport.kt | 2 +- .../src/main/kotlin/ai/kilocode/client/ui/md/MdViewHybrid.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/tool/ToolSupport.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/tool/ToolSupport.kt index 81744bfb98..a78246d060 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/tool/ToolSupport.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/tool/ToolSupport.kt @@ -209,10 +209,10 @@ class ToolBody private constructor( val disposable = Disposer.newDisposable("Tool body") val body = runCatching { val field = ToolField(preview(tool), SessionEditorStyle.current()).also { ed -> - ed.setDisposedWith(disposable) Disposer.register(disposable) { ed.getEditor(false)?.let(EditorFactory.getInstance()::releaseEditor) } + ed.setDisposedWith(disposable) } ToolBody(null, field, pane(field, true), disposable) }.getOrElse { err -> diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/md/MdViewHybrid.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/md/MdViewHybrid.kt index cd03b91b5c..a245c1e010 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/md/MdViewHybrid.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/md/MdViewHybrid.kt @@ -498,10 +498,10 @@ internal class MdViewHybrid( val value = text.trimEnd('\n') val field = runCatching { CodeField(file, opts, text).also { ed -> - ed.setDisposedWith(disposable) Disposer.register(disposable) { ed.getEditor(false)?.let(EditorFactory.getInstance()::releaseEditor) } + ed.setDisposedWith(disposable) selection?.register(ed, disposable) } }.getOrElse { err -> From bb31723e7353c0649b9854812f9f803e04d92156 Mon Sep 17 00:00:00 2001 From: kirillk Date: Wed, 10 Jun 2026 20:21:39 -0400 Subject: [PATCH 013/109] fix(jetbrains): polish session header controls --- .changeset/jetbrains-session-icons.md | 5 ++ .../client/session/ui/header/RotatedIcon.kt | 27 ------- .../session/ui/header/SessionHeaderPanel.kt | 75 ++++++++++++++----- .../client/session/views/ReasoningView.kt | 2 +- .../client/session/views/SessionViewIcons.kt | 5 +- .../views/base/AbstractSessionPartView.kt | 2 +- .../views/question/QuestionResultView.kt | 2 +- .../ai/kilocode/client/ui/FilledBadgeIcon.kt | 5 +- .../resources/messages/KiloBundle.properties | 1 + .../ui/header/SessionHeaderPanelTest.kt | 32 +++++--- .../session/views/QuestionResultViewTest.kt | 31 ++++++++ .../client/session/views/ReasoningViewTest.kt | 21 ++++++ .../views/base/AbstractSessionPartViewTest.kt | 19 +++++ 13 files changed, 166 insertions(+), 61 deletions(-) create mode 100644 .changeset/jetbrains-session-icons.md delete mode 100644 packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/header/RotatedIcon.kt diff --git a/.changeset/jetbrains-session-icons.md b/.changeset/jetbrains-session-icons.md new file mode 100644 index 0000000000..7787da1199 --- /dev/null +++ b/.changeset/jetbrains-session-icons.md @@ -0,0 +1,5 @@ +--- +"@kilocode/kilo-jetbrains": patch +--- + +Polish session header controls and align session view icons. diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/header/RotatedIcon.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/header/RotatedIcon.kt deleted file mode 100644 index e4f37d6933..0000000000 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/header/RotatedIcon.kt +++ /dev/null @@ -1,27 +0,0 @@ -package ai.kilocode.client.session.ui.header - -import java.awt.Component -import java.awt.Graphics -import java.awt.Graphics2D -import java.awt.geom.AffineTransform -import javax.swing.Icon - -internal class RotatedIcon(private val base: Icon) : Icon { - override fun getIconWidth(): Int = base.iconWidth - - override fun getIconHeight(): Int = base.iconHeight - - override fun paintIcon(c: Component?, g: Graphics, x: Int, y: Int) { - val g2 = g.create() as Graphics2D - try { - val tx = AffineTransform() - tx.translate((x + iconWidth / 2.0), (y + iconHeight / 2.0)) - tx.rotate(Math.PI) - tx.translate((-iconWidth / 2.0), (-iconHeight / 2.0)) - g2.transform(tx) - base.paintIcon(c, g2, 0, 0) - } finally { - g2.dispose() - } - } -} diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/header/SessionHeaderPanel.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/header/SessionHeaderPanel.kt index c92b1a255b..c4cce82969 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/header/SessionHeaderPanel.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/header/SessionHeaderPanel.kt @@ -8,8 +8,10 @@ import ai.kilocode.client.session.ui.style.SessionEditorStyleTarget import ai.kilocode.client.session.controller.SessionController import ai.kilocode.client.session.ui.style.SessionUiStyle import ai.kilocode.client.session.views.todo.TodoListPanel +import ai.kilocode.client.ui.FilledBadgeIcon import ai.kilocode.client.ui.HoverIcon import ai.kilocode.client.ui.UiStyle +import ai.kilocode.client.ui.layout.Stack import ai.kilocode.rpc.dto.TodoDto import ai.kilocode.rpc.dto.TokensDto import com.intellij.icons.AllIcons @@ -42,8 +44,6 @@ class SessionHeaderPanel( companion object { private val COMPRESS_ICON: Icon = IconLoader.getIcon("/icons/compress.svg", SessionHeaderPanel::class.java) - private val CHEVRON_ICON: Icon = IconLoader.getIcon("/icons/chevron-down.svg", SessionHeaderPanel::class.java) - private val CHEVRON_UP_ICON: Icon = RotatedIcon(CHEVRON_ICON) private val UP_ICON: Icon = IconLoader.getIcon("/icons/arrow-up.svg", SessionHeaderPanel::class.java) private val DOWN_ICON: Icon = IconLoader.getIcon("/icons/arrow-down-to-line.svg", SessionHeaderPanel::class.java) private const val TOUCH_BEGIN = 2 @@ -60,15 +60,20 @@ class SessionHeaderPanel( private val todoList = TodoListPanel() private val compact = HoverIcon().apply { icon = COMPRESS_ICON + cursor = java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.HAND_CURSOR) toolTipText = KiloBundle.message("session.header.compact.description") accessibleContext.accessibleName = KiloBundle.message("session.header.compact") addActionListener { controller.compact() } } - private val expand = HoverIcon().apply { - icon = CHEVRON_ICON + private val expand = JBLabel().apply { + cursor = java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.HAND_CURSOR) toolTipText = KiloBundle.message("session.header.expand") accessibleContext.accessibleName = KiloBundle.message("session.header.expand") - addActionListener { toggle() } + addMouseListener(object : MouseAdapter() { + override fun mouseClicked(event: MouseEvent) { + toggle() + } + }) } private val timeline = TimelinePanel() private val viewport = JViewport().apply { @@ -97,16 +102,18 @@ class SessionHeaderPanel( iconTextGap = UiStyle.Gap.xs() } private val top = BorderLayoutPanel() - private val right = JPanel(FlowLayout(FlowLayout.RIGHT, UiStyle.Gap.md(), 0)).apply { - isOpaque = false - add(cost) - add(context) - add(compact) - add(expand) + private val center = BorderLayoutPanel().apply { + border = JBUI.Borders.empty(0, UiStyle.Gap.md(), 0, 0) } + private val right = Stack.horizontal() + .next(cost) + .gap(UiStyle.Gap.xl()) + .next(context) + .gap(UiStyle.Gap.sm()) + .next(compact) private val tokens = JPanel(FlowLayout(FlowLayout.LEFT, 0, 0)).apply { isOpaque = false - border = JBUI.Borders.empty(UiStyle.Gap.sm(), 0, 0, 0) + border = JBUI.Borders.empty(UiStyle.Gap.sm(), UiStyle.Gap.pad(), 0, UiStyle.Gap.pad()) add(tokenTitle) add(Box.createHorizontalStrut(UiStyle.Gap.md())) add(input) @@ -141,13 +148,16 @@ class SessionHeaderPanel( add(todoBox) } private var style = SessionEditorStyle.current() + private var costValue = "" init { isOpaque = true updateUI() - top.add(title, BorderLayout.CENTER) - top.add(right, BorderLayout.EAST) + center.add(title, BorderLayout.CENTER) + center.add(right, BorderLayout.EAST) + top.add(expand, BorderLayout.WEST) + top.add(center, BorderLayout.CENTER) add(top, BorderLayout.NORTH) timeline.addMouseListener(object : MouseAdapter() { override fun mousePressed(event: MouseEvent) { @@ -209,7 +219,7 @@ class SessionHeaderPanel( super.updateUI() border = JBUI.Borders.compound( JBUI.Borders.customLine(JBUI.CurrentTheme.ToolWindow.borderColor(), 1, 0, 1, 0), - JBUI.Borders.empty(UiStyle.Gap.lg(), UiStyle.Gap.pad(), UiStyle.Gap.sm(), UiStyle.Gap.pad()), + JBUI.Borders.empty(), ) } @@ -227,7 +237,7 @@ class SessionHeaderPanel( syncExpanded(expanded()) - set(cost, money(header.cost)) + setCost(money(header.cost)) set(context, contextText(header.context)) context.toolTipText = contextTip(header.context) setTokens(header.tokens) @@ -247,6 +257,10 @@ class SessionHeaderPanel( background = style.editorBackground foreground = style.editorForeground top.background = style.editorBackground + top.isOpaque = true + top.border = JBUI.Borders.empty(UiStyle.Gap.md(), UiStyle.Gap.sm(), UiStyle.Gap.md(), UiStyle.Gap.sm()) + center.background = style.editorBackground + center.isOpaque = true right.background = style.editorBackground tokens.background = style.editorBackground todoRow.background = style.editorBackground @@ -257,6 +271,9 @@ class SessionHeaderPanel( title.foreground = style.editorForeground cost.font = style.regularFont cost.foreground = style.editorForeground + cost.icon = costValue.takeIf { it.isNotBlank() }?.let { + FilledBadgeIcon(it, style.editorForeground, style.editorBackground, style.regularFont) + } context.font = style.regularFont context.foreground = style.editorForeground todos.font = style.smallFont @@ -279,7 +296,11 @@ class SessionHeaderPanel( internal fun titleText(): String = title.text - internal fun costText(): String = cost.text + internal fun costText(): String = costValue + + internal fun costTip() = cost.toolTipText + + internal fun costIcon() = cost.icon internal fun contextText(): String = context.text @@ -392,6 +413,18 @@ class SessionHeaderPanel( tokens.isVisible = total > 0 } + private fun setCost(value: String?) { + costValue = value.orEmpty() + cost.text = "" + cost.icon = costValue.takeIf { it.isNotBlank() }?.let { + FilledBadgeIcon(it, style.editorForeground, style.editorBackground, style.regularFont) + } + val tip = costValue.takeIf { it.isNotBlank() }?.let { KiloBundle.message("session.header.cost.tooltip", it) } + cost.toolTipText = tip + cost.accessibleContext.accessibleName = tip + cost.isVisible = costValue.isNotBlank() + } + private fun syncTodos(items: List) { val total = items.size val done = items.count { it.status == "completed" } @@ -447,7 +480,10 @@ class SessionHeaderPanel( private fun collapse(): Boolean { val attached = body.parent === this - if (!attached) return false + if (!attached) { + setExpand(false) + return false + } remove(body) setExpand(false) return attached @@ -455,7 +491,8 @@ class SessionHeaderPanel( private fun setExpand(expanded: Boolean) { val key = if (expanded) "session.header.collapse" else "session.header.expand" - expand.icon = if (expanded) CHEVRON_UP_ICON else CHEVRON_ICON + expand.text = "" + expand.icon = if (expanded) AllIcons.General.ChevronDown else AllIcons.General.ChevronRight expand.toolTipText = KiloBundle.message(key) expand.accessibleContext.accessibleName = KiloBundle.message(key) } diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/ReasoningView.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/ReasoningView.kt index 21afb1fcab..796e18bddb 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/ReasoningView.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/ReasoningView.kt @@ -317,7 +317,7 @@ class ReasoningBody( private fun reasoningParts(selection: SessionSelection? = null): ReasoningParts { val title = JBLabel(KiloBundle.message("session.part.reasoning")).apply { foreground = UiStyle.Colors.weak() } - val icon = JBLabel(SessionViewIcons.eye).apply { foreground = UiStyle.Colors.weak() } + val icon = JBLabel(SessionViewIcons.brain).apply { foreground = UiStyle.Colors.weak() } val header = JPanel(BorderLayout(JBUI.scale(SessionUiStyle.View.Layout.GAP), 0)).apply { isOpaque = false add(icon, BorderLayout.WEST) diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/SessionViewIcons.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/SessionViewIcons.kt index c59f5d371f..4ce4d3b423 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/SessionViewIcons.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/SessionViewIcons.kt @@ -1,15 +1,18 @@ package ai.kilocode.client.session.views import com.intellij.openapi.util.IconLoader +import javax.swing.Icon object SessionViewIcons { val brain = icon("brain") val bubble = icon("bubble-5") val bulletList = icon("bullet-list") val checklist = icon("checklist") - val chevronDown = icon("chevron-down") + val chevronDown: Icon = icon("chevron-down") val chevronLeft = icon("chevron-left") val chevronRight = icon("chevron-right") + val chevronCollapsed: Icon = chevronRight + val chevronExpanded: Icon = chevronDown val code = icon("code") val codeLines = icon("code-lines") val console = icon("console") diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/base/AbstractSessionPartView.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/base/AbstractSessionPartView.kt index ac93b08e83..df67cbbca6 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/base/AbstractSessionPartView.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/base/AbstractSessionPartView.kt @@ -157,7 +157,7 @@ abstract class AbstractSessionPartView( } private fun syncArrow(): Boolean { - val icon = if (isExpanded()) SessionViewIcons.chevronDown else SessionViewIcons.chevronRight + val icon = if (isExpanded()) SessionViewIcons.chevronExpanded else SessionViewIcons.chevronCollapsed if (arrow.icon === icon) return false arrow.icon = icon return true diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/question/QuestionResultView.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/question/QuestionResultView.kt index f1c241141f..0b50d79826 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/question/QuestionResultView.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/question/QuestionResultView.kt @@ -285,7 +285,7 @@ class QuestionResultView(tool: Tool, private val selection: SessionSelection? = } private fun syncArrow() { - arrow.icon = if (isExpanded()) SessionViewIcons.chevronDown else SessionViewIcons.chevronRight + arrow.icon = if (isExpanded()) SessionViewIcons.chevronExpanded else SessionViewIcons.chevronCollapsed } override fun setHovered(value: Boolean) { diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/FilledBadgeIcon.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/FilledBadgeIcon.kt index 11e0e961a6..8987154fa2 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/FilledBadgeIcon.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/FilledBadgeIcon.kt @@ -4,6 +4,7 @@ import com.intellij.util.ui.JBFont import com.intellij.util.ui.JBUI import java.awt.Color import java.awt.Component +import java.awt.Font import java.awt.Graphics import java.awt.Graphics2D import java.awt.RenderingHints @@ -14,9 +15,9 @@ internal class FilledBadgeIcon( internal val text: String, private val bg: Color, private val fg: Color, + private val font: Font = JBFont.small(), ) : Icon { override fun getIconWidth(): Int { - val font = JBFont.small() val width = font.getStringBounds(text, FontRenderContext(null, true, true)).width.toInt() return width + UiStyle.Gap.lg() * 2 } @@ -31,7 +32,7 @@ internal class FilledBadgeIcon( g2.color = bg g2.fillRoundRect(0, 0, iconWidth, iconHeight, iconHeight, iconHeight) g2.color = fg - g2.font = JBFont.small() + g2.font = font val fm = g2.fontMetrics val base = (iconHeight + fm.ascent - fm.descent) / 2 g2.drawString(text, UiStyle.Gap.lg(), base) diff --git a/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties b/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties index 9141c1b9a8..80e5e0ed52 100644 --- a/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties +++ b/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties @@ -119,6 +119,7 @@ session.header.compact=Compact session session.header.compact.description=Summarize the session to reduce context size session.header.expand=Show session metrics session.header.collapse=Hide session metrics +session.header.cost.tooltip={0} spent in this session session.header.todos.progress={0}/{1} todos complete session.header.todos.done=All {0} todos complete session.header.todos.toggle=Toggle to-dos diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/header/SessionHeaderPanelTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/header/SessionHeaderPanelTest.kt index 599f2ebed0..960a0c9b90 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/header/SessionHeaderPanelTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/header/SessionHeaderPanelTest.kt @@ -17,7 +17,9 @@ import ai.kilocode.rpc.dto.PartTimeDto import ai.kilocode.rpc.dto.ProviderDto import ai.kilocode.rpc.dto.TodoDto import ai.kilocode.rpc.dto.TokensDto +import com.intellij.icons.AllIcons import com.intellij.ide.util.PropertiesComponent +import java.awt.Cursor import java.awt.Color import java.awt.Point import java.awt.event.MouseEvent @@ -59,6 +61,7 @@ class SessionHeaderPanelTest : SessionControllerTestBase() { assertFalse(panel.isExpanded()) assertEquals("Generated title", panel.titleText()) assertEquals("$0.07", panel.costText()) + assertEquals("$0.07 spent in this session", panel.costTip()) assertEquals("1%", panel.contextText()) assertEquals("Tokens 13.7K 2.5K cache write 25 cache read 75", panel.tokenText()) assertEquals("Tokens used by the latest assistant response: input, output, cache writes, and cache reads.", panel.tokenTip()) @@ -73,7 +76,11 @@ class SessionHeaderPanelTest : SessionControllerTestBase() { List(panel.foregrounds().size) { style.editorForeground }, panel.foregrounds(), ) - assertNotNull(panel.expandButton().icon) + assertEquals("", panel.expandButton().text) + assertSame(AllIcons.General.ChevronRight, panel.expandButton().icon) + assertEquals(Cursor.HAND_CURSOR, panel.expandButton().cursor.type) + assertNotNull(panel.costIcon()) + assertNotSame(panel.compactButton().parent, panel.expandButton().parent) } fun `test compact button follows eligibility and invokes controller`() { @@ -96,7 +103,7 @@ class SessionHeaderPanelTest : SessionControllerTestBase() { val c = promptedHeader() val panel = SessionHeaderPanel(c, parent) - panel.expandButton().doClick() + click(panel.expandButton()) assertTrue(panel.isExpanded()) assertTrue(panel.todoVisible()) assertFalse(panel.todoListVisible()) @@ -184,7 +191,7 @@ class SessionHeaderPanelTest : SessionControllerTestBase() { val bar = panel.contextBar() assertFalse(panel.isExpanded()) - panel.expandButton().doClick() + click(panel.expandButton()) assertTrue(panel.isExpanded()) assertSame(body, panel.bodyPanel()) @@ -261,7 +268,7 @@ class SessionHeaderPanelTest : SessionControllerTestBase() { assertNull(panel.timelineToolTip()) assertEquals(-1, panel.timelineHover()) - panel.expandButton().doClick() + click(panel.expandButton()) assertFalse(panel.isExpanded()) assertSame(body, panel.bodyPanel()) @@ -297,26 +304,33 @@ class SessionHeaderPanelTest : SessionControllerTestBase() { assertFalse(panel.isExpanded()) assertEquals("Show session metrics", panel.expandTip()) + assertEquals("", panel.expandButton().text) + assertSame(AllIcons.General.ChevronRight, panel.expandButton().icon) + assertNotSame(panel.compactButton().parent, panel.expandButton().parent) - panel.expandButton().doClick() + click(panel.expandButton()) emit(ChatEventDto.SessionUpdated("ses_test", session("ses_test", title = "New title"))) assertTrue(panel.isExpanded()) assertEquals("Hide session metrics", panel.expandTip()) + assertEquals("", panel.expandButton().text) + assertSame(AllIcons.General.ChevronDown, panel.expandButton().icon) - panel.expandButton().doClick() + click(panel.expandButton()) emit(ChatEventDto.MessageUpdated("ses_test", assistant(cost = 0.2))) assertFalse(panel.isExpanded()) assertEquals("Show session metrics", panel.expandTip()) + assertEquals("", panel.expandButton().text) + assertSame(AllIcons.General.ChevronRight, panel.expandButton().icon) } fun `test collapse persists and new header starts collapsed`() { val c = promptedHeader() val panel = SessionHeaderPanel(c, parent) - panel.expandButton().doClick() - panel.expandButton().doClick() + click(panel.expandButton()) + click(panel.expandButton()) assertFalse(panel.isExpanded()) assertFalse(PropertiesComponent.getInstance().getBoolean(SessionHeaderPanel.EXPANDED_KEY, true)) @@ -334,7 +348,7 @@ class SessionHeaderPanelTest : SessionControllerTestBase() { assertFalse(panel.isExpanded()) - panel.expandButton().doClick() + click(panel.expandButton()) assertTrue(panel.isExpanded()) assertTrue(PropertiesComponent.getInstance().getBoolean(SessionHeaderPanel.EXPANDED_KEY, false)) diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/QuestionResultViewTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/QuestionResultViewTest.kt index 5c4bb2947a..868ba5a4cd 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/QuestionResultViewTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/QuestionResultViewTest.kt @@ -13,6 +13,8 @@ import java.awt.Component import java.awt.Container import java.awt.event.MouseEvent import java.awt.image.BufferedImage +import javax.swing.Icon +import javax.swing.JLabel import javax.swing.JPanel import javax.swing.border.Border @@ -131,6 +133,24 @@ class QuestionResultViewTest : BasePlatformTestCase() { assertFalse("Should be collapsed after second toggle", view.isExpanded()) } + fun `test toggle uses right and down chevron icons`() { + val view = QuestionResultView(completedTool( + input = mapOf("questions" to """[{"question":"Q1"}]"""), + metadata = mapOf("answers" to """[["A1"]]"""), + )) + + assertTrue(icons(view).contains(SessionViewIcons.chevronCollapsed)) + assertTrue(icons(view).contains(SessionViewIcons.chevronRight)) + val closed = SessionViewIcons.chevronCollapsed + + view.toggle() + + assertTrue(icons(view).contains(SessionViewIcons.chevronExpanded)) + assertTrue(icons(view).contains(SessionViewIcons.chevronDown)) + assertEquals(closed.iconWidth, SessionViewIcons.chevronExpanded.iconWidth) + assertEquals(closed.iconHeight, SessionViewIcons.chevronExpanded.iconHeight) + } + fun `test hover only changes header background`() { val view = QuestionResultView(completedTool( input = mapOf("questions" to """[{"question":"Q1"}]"""), @@ -310,4 +330,15 @@ class QuestionResultViewTest : BasePlatformTestCase() { assertEquals(rgb, Color(image.getRGB(2, 4), true).rgb) } + private fun icons(component: Component): List { + val found = mutableListOf() + collect(component, found) + return found + } + + private fun collect(component: Component, found: MutableList) { + if (component is JLabel) component.icon?.let(found::add) + if (component is Container) component.components.forEach { collect(it, found) } + } + } diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/ReasoningViewTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/ReasoningViewTest.kt index c09062ec80..e718bdcc8b 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/ReasoningViewTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/ReasoningViewTest.kt @@ -10,6 +10,8 @@ import com.intellij.util.ui.JBUI import com.intellij.util.ui.UIUtil import java.awt.Component import java.awt.Container +import javax.swing.Icon +import javax.swing.JLabel import javax.swing.JPanel import javax.swing.ScrollPaneConstants @@ -177,6 +179,14 @@ class ReasoningViewTest : BasePlatformTestCase() { assertTrue(font.size < style.editorSize) } + fun `test reasoning header uses brain icon`() { + val view = ReasoningView(reasoning("p1", done = true, text = "one")) + val icons = icons(view) + + assertTrue(icons.contains(SessionViewIcons.brain)) + assertFalse(icons.contains(SessionViewIcons.eye)) + } + fun `test applyStyle updates reasoning in place`() { val view = ReasoningView(reasoning("p1", done = true, text = "one\ntwo\nthree\nfour")) val component = view.md.component @@ -285,4 +295,15 @@ class ReasoningViewTest : BasePlatformTestCase() { } error("scroll not found") } + + private fun icons(component: Component): List { + val found = mutableListOf() + collect(component, found) + return found + } + + private fun collect(component: Component, found: MutableList) { + if (component is JLabel) component.icon?.let(found::add) + if (component is Container) component.components.forEach { collect(it, found) } + } } diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/base/AbstractSessionPartViewTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/base/AbstractSessionPartViewTest.kt index bc8e1e9ed1..6fb2cde06f 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/base/AbstractSessionPartViewTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/base/AbstractSessionPartViewTest.kt @@ -2,11 +2,13 @@ package ai.kilocode.client.session.views.base import ai.kilocode.client.session.model.Content import ai.kilocode.client.session.ui.style.SessionUiStyle +import ai.kilocode.client.session.views.SessionViewIcons import com.intellij.testFramework.fixtures.BasePlatformTestCase import java.awt.Color import java.awt.Component import java.awt.event.MouseEvent import java.awt.image.BufferedImage +import javax.swing.Icon import javax.swing.JLabel import javax.swing.JPanel import javax.swing.border.Border @@ -43,6 +45,22 @@ class AbstractSessionPartViewTest : BasePlatformTestCase() { assertSame(view, content.parent) } + fun `test toggle uses right and down chevron icons`() { + val view = TestView(content = JLabel("body")) + + assertSame(SessionViewIcons.chevronCollapsed, view.arrowIcon()) + assertSame(SessionViewIcons.chevronRight, view.arrowIcon()) + val closed = view.arrowIcon() + + view.toggle() + + assertSame(SessionViewIcons.chevronExpanded, view.arrowIcon()) + assertSame(SessionViewIcons.chevronDown, view.arrowIcon()) + assertNotSame(closed, view.arrowIcon()) + assertEquals(closed.iconWidth, view.arrowIcon().iconWidth) + assertEquals(closed.iconHeight, view.arrowIcon().iconHeight) + } + fun `test non expandable hides content`() { val content = JLabel("body") val view = TestView(content = content, expanded = true) @@ -96,6 +114,7 @@ class AbstractSessionPartViewTest : BasePlatformTestCase() { override val contentId = "test" override fun update(content: Content) {} fun arrowVisible() = arrow.isVisible + fun arrowIcon(): Icon = arrow.icon } private fun TestView.component(index: Int): Component = components[index] From b0ec91cef439633eef955d44747e03bb5e15ee4f Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 11 Jun 2026 10:06:23 +0200 Subject: [PATCH 014/109] feat(vscode): add attention notifications --- .changeset/notify-background-sessions.md | 5 + packages/kilo-vscode/.vscodeignore | 3 + packages/kilo-vscode/audio-wav/alert-01.wav | Bin 0 -> 90190 bytes packages/kilo-vscode/audio-wav/alert-02.wav | Bin 0 -> 92238 bytes packages/kilo-vscode/audio-wav/alert-03.wav | Bin 0 -> 28750 bytes packages/kilo-vscode/audio-wav/alert-04.wav | Bin 0 -> 67662 bytes packages/kilo-vscode/audio-wav/alert-05.wav | Bin 0 -> 65614 bytes packages/kilo-vscode/audio-wav/alert-06.wav | Bin 0 -> 100430 bytes packages/kilo-vscode/audio-wav/alert-07.wav | Bin 0 -> 63566 bytes packages/kilo-vscode/audio-wav/alert-08.wav | Bin 0 -> 51278 bytes packages/kilo-vscode/audio-wav/alert-09.wav | Bin 0 -> 59470 bytes packages/kilo-vscode/audio-wav/alert-10.wav | Bin 0 -> 110670 bytes packages/kilo-vscode/audio-wav/bip-bop-01.wav | Bin 0 -> 57422 bytes packages/kilo-vscode/audio-wav/bip-bop-02.wav | Bin 0 -> 57422 bytes packages/kilo-vscode/audio-wav/bip-bop-03.wav | Bin 0 -> 36942 bytes packages/kilo-vscode/audio-wav/bip-bop-04.wav | Bin 0 -> 49230 bytes packages/kilo-vscode/audio-wav/bip-bop-05.wav | Bin 0 -> 32846 bytes packages/kilo-vscode/audio-wav/bip-bop-06.wav | Bin 0 -> 75854 bytes packages/kilo-vscode/audio-wav/bip-bop-07.wav | Bin 0 -> 41038 bytes packages/kilo-vscode/audio-wav/bip-bop-08.wav | Bin 0 -> 55374 bytes packages/kilo-vscode/audio-wav/bip-bop-09.wav | Bin 0 -> 151630 bytes packages/kilo-vscode/audio-wav/bip-bop-10.wav | Bin 0 -> 100430 bytes packages/kilo-vscode/audio-wav/nope-01.wav | Bin 0 -> 36942 bytes packages/kilo-vscode/audio-wav/nope-02.wav | Bin 0 -> 43086 bytes packages/kilo-vscode/audio-wav/nope-03.wav | Bin 0 -> 38990 bytes packages/kilo-vscode/audio-wav/nope-04.wav | Bin 0 -> 32846 bytes packages/kilo-vscode/audio-wav/nope-05.wav | Bin 0 -> 36942 bytes packages/kilo-vscode/audio-wav/nope-06.wav | Bin 0 -> 41038 bytes packages/kilo-vscode/audio-wav/nope-07.wav | Bin 0 -> 26702 bytes packages/kilo-vscode/audio-wav/nope-08.wav | Bin 0 -> 43086 bytes packages/kilo-vscode/audio-wav/nope-09.wav | Bin 0 -> 51278 bytes packages/kilo-vscode/audio-wav/nope-10.wav | Bin 0 -> 26702 bytes packages/kilo-vscode/audio-wav/nope-11.wav | Bin 0 -> 96334 bytes packages/kilo-vscode/audio-wav/nope-12.wav | Bin 0 -> 75854 bytes .../kilo-vscode/audio-wav/staplebops-01.wav | Bin 0 -> 32846 bytes .../kilo-vscode/audio-wav/staplebops-02.wav | Bin 0 -> 34894 bytes .../kilo-vscode/audio-wav/staplebops-03.wav | Bin 0 -> 55374 bytes .../kilo-vscode/audio-wav/staplebops-04.wav | Bin 0 -> 30798 bytes .../kilo-vscode/audio-wav/staplebops-05.wav | Bin 0 -> 22606 bytes .../kilo-vscode/audio-wav/staplebops-06.wav | Bin 0 -> 36942 bytes .../kilo-vscode/audio-wav/staplebops-07.wav | Bin 0 -> 163918 bytes packages/kilo-vscode/audio-wav/yup-01.wav | Bin 0 -> 55374 bytes packages/kilo-vscode/audio-wav/yup-02.wav | Bin 0 -> 71758 bytes packages/kilo-vscode/audio-wav/yup-03.wav | Bin 0 -> 65614 bytes packages/kilo-vscode/audio-wav/yup-04.wav | Bin 0 -> 63566 bytes packages/kilo-vscode/audio-wav/yup-05.wav | Bin 0 -> 90190 bytes packages/kilo-vscode/audio-wav/yup-06.wav | Bin 0 -> 55374 bytes packages/kilo-vscode/package.json | 167 ++++++++++++- packages/kilo-vscode/src/KiloProvider.ts | 33 ++- .../src/agent-manager/AgentManagerProvider.ts | 13 +- packages/kilo-vscode/src/extension.ts | 3 + .../src/services/attention/attention.ts | 220 ++++++++++++++++++ .../src/services/attention/index.ts | 1 + .../src/services/attention/service.ts | 87 +++++++ .../src/services/attention/sound.ts | 161 +++++++++++++ .../cli-backend/connection-service.ts | 8 + .../kilo-vscode/tests/unit/attention.test.ts | 166 +++++++++++++ .../components/settings/NotificationsTab.tsx | 139 ++++++----- .../kilo-vscode/webview-ui/src/i18n/ar.ts | 4 + .../kilo-vscode/webview-ui/src/i18n/br.ts | 5 + .../kilo-vscode/webview-ui/src/i18n/bs.ts | 5 + .../kilo-vscode/webview-ui/src/i18n/da.ts | 4 + .../kilo-vscode/webview-ui/src/i18n/de.ts | 5 + .../kilo-vscode/webview-ui/src/i18n/en.ts | 5 + .../kilo-vscode/webview-ui/src/i18n/es.ts | 5 + .../kilo-vscode/webview-ui/src/i18n/fr.ts | 5 + .../kilo-vscode/webview-ui/src/i18n/it.ts | 5 + .../kilo-vscode/webview-ui/src/i18n/ja.ts | 5 + .../kilo-vscode/webview-ui/src/i18n/ko.ts | 4 + .../kilo-vscode/webview-ui/src/i18n/nl.ts | 5 + .../kilo-vscode/webview-ui/src/i18n/no.ts | 4 + .../kilo-vscode/webview-ui/src/i18n/pl.ts | 5 + .../kilo-vscode/webview-ui/src/i18n/ru.ts | 5 + .../kilo-vscode/webview-ui/src/i18n/th.ts | 4 + .../kilo-vscode/webview-ui/src/i18n/tr.ts | 4 + .../kilo-vscode/webview-ui/src/i18n/uk.ts | 5 + .../kilo-vscode/webview-ui/src/i18n/zh.ts | 4 + .../kilo-vscode/webview-ui/src/i18n/zht.ts | 4 + .../src/types/messages/extension-messages.ts | 1 + .../src/types/messages/webview-messages.ts | 7 + 80 files changed, 1028 insertions(+), 78 deletions(-) create mode 100644 .changeset/notify-background-sessions.md create mode 100644 packages/kilo-vscode/audio-wav/alert-01.wav create mode 100644 packages/kilo-vscode/audio-wav/alert-02.wav create mode 100644 packages/kilo-vscode/audio-wav/alert-03.wav create mode 100644 packages/kilo-vscode/audio-wav/alert-04.wav create mode 100644 packages/kilo-vscode/audio-wav/alert-05.wav create mode 100644 packages/kilo-vscode/audio-wav/alert-06.wav create mode 100644 packages/kilo-vscode/audio-wav/alert-07.wav create mode 100644 packages/kilo-vscode/audio-wav/alert-08.wav create mode 100644 packages/kilo-vscode/audio-wav/alert-09.wav create mode 100644 packages/kilo-vscode/audio-wav/alert-10.wav create mode 100644 packages/kilo-vscode/audio-wav/bip-bop-01.wav create mode 100644 packages/kilo-vscode/audio-wav/bip-bop-02.wav create mode 100644 packages/kilo-vscode/audio-wav/bip-bop-03.wav create mode 100644 packages/kilo-vscode/audio-wav/bip-bop-04.wav create mode 100644 packages/kilo-vscode/audio-wav/bip-bop-05.wav create mode 100644 packages/kilo-vscode/audio-wav/bip-bop-06.wav create mode 100644 packages/kilo-vscode/audio-wav/bip-bop-07.wav create mode 100644 packages/kilo-vscode/audio-wav/bip-bop-08.wav create mode 100644 packages/kilo-vscode/audio-wav/bip-bop-09.wav create mode 100644 packages/kilo-vscode/audio-wav/bip-bop-10.wav create mode 100644 packages/kilo-vscode/audio-wav/nope-01.wav create mode 100644 packages/kilo-vscode/audio-wav/nope-02.wav create mode 100644 packages/kilo-vscode/audio-wav/nope-03.wav create mode 100644 packages/kilo-vscode/audio-wav/nope-04.wav create mode 100644 packages/kilo-vscode/audio-wav/nope-05.wav create mode 100644 packages/kilo-vscode/audio-wav/nope-06.wav create mode 100644 packages/kilo-vscode/audio-wav/nope-07.wav create mode 100644 packages/kilo-vscode/audio-wav/nope-08.wav create mode 100644 packages/kilo-vscode/audio-wav/nope-09.wav create mode 100644 packages/kilo-vscode/audio-wav/nope-10.wav create mode 100644 packages/kilo-vscode/audio-wav/nope-11.wav create mode 100644 packages/kilo-vscode/audio-wav/nope-12.wav create mode 100644 packages/kilo-vscode/audio-wav/staplebops-01.wav create mode 100644 packages/kilo-vscode/audio-wav/staplebops-02.wav create mode 100644 packages/kilo-vscode/audio-wav/staplebops-03.wav create mode 100644 packages/kilo-vscode/audio-wav/staplebops-04.wav create mode 100644 packages/kilo-vscode/audio-wav/staplebops-05.wav create mode 100644 packages/kilo-vscode/audio-wav/staplebops-06.wav create mode 100644 packages/kilo-vscode/audio-wav/staplebops-07.wav create mode 100644 packages/kilo-vscode/audio-wav/yup-01.wav create mode 100644 packages/kilo-vscode/audio-wav/yup-02.wav create mode 100644 packages/kilo-vscode/audio-wav/yup-03.wav create mode 100644 packages/kilo-vscode/audio-wav/yup-04.wav create mode 100644 packages/kilo-vscode/audio-wav/yup-05.wav create mode 100644 packages/kilo-vscode/audio-wav/yup-06.wav create mode 100644 packages/kilo-vscode/src/services/attention/attention.ts create mode 100644 packages/kilo-vscode/src/services/attention/index.ts create mode 100644 packages/kilo-vscode/src/services/attention/service.ts create mode 100644 packages/kilo-vscode/src/services/attention/sound.ts create mode 100644 packages/kilo-vscode/tests/unit/attention.test.ts diff --git a/.changeset/notify-background-sessions.md b/.changeset/notify-background-sessions.md new file mode 100644 index 0000000000..b8779a6591 --- /dev/null +++ b/.changeset/notify-background-sessions.md @@ -0,0 +1,5 @@ +--- +"kilo-code": minor +--- + +Notify when sessions finish, error, or need input across the sidebar, editor tabs, and Agent Manager, with configurable system or bundled attention sounds. diff --git a/packages/kilo-vscode/.vscodeignore b/packages/kilo-vscode/.vscodeignore index a1779eec27..b8e0d54b25 100644 --- a/packages/kilo-vscode/.vscodeignore +++ b/packages/kilo-vscode/.vscodeignore @@ -25,3 +25,6 @@ AGENTS.md # Include bin/ directory for CLI binary (production) !bin/** + +# Include WAV assets used by extension-host notification playback +!audio-wav/** diff --git a/packages/kilo-vscode/audio-wav/alert-01.wav b/packages/kilo-vscode/audio-wav/alert-01.wav new file mode 100644 index 0000000000000000000000000000000000000000..061fdb53c3a43da782b6478fd923ba07ce6ce276 GIT binary patch literal 90190 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 literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/alert-02.wav b/packages/kilo-vscode/audio-wav/alert-02.wav new file mode 100644 index 0000000000000000000000000000000000000000..b73daff94a88faef7c69f670e4f2e621b4d5c1e9 GIT binary patch literal 92238 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 literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/alert-07.wav b/packages/kilo-vscode/audio-wav/alert-07.wav new file mode 100644 index 0000000000000000000000000000000000000000..ed04924bec926f657ad8da287699a48c14a0cb68 GIT binary patch literal 63566 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 literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/alert-08.wav b/packages/kilo-vscode/audio-wav/alert-08.wav new file mode 100644 index 0000000000000000000000000000000000000000..f9de3611dd42107ef82c67ef65f05863d4560ec3 GIT binary patch literal 51278 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

yv4GHvZ=LwS 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 Q5|DrdBp?9^{I3Ll104|P00000 literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/bip-bop-01.wav b/packages/kilo-vscode/audio-wav/bip-bop-01.wav new file mode 100644 index 0000000000000000000000000000000000000000..eb259650ce1247a738a7c14204de23ef51afef3b GIT binary patch literal 57422 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 literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/bip-bop-02.wav b/packages/kilo-vscode/audio-wav/bip-bop-02.wav new file mode 100644 index 0000000000000000000000000000000000000000..44c5ea0d5c5fe74b8f0505a7576003d9289d19dc GIT binary patch literal 57422 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 literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/bip-bop-05.wav b/packages/kilo-vscode/audio-wav/bip-bop-05.wav new file mode 100644 index 0000000000000000000000000000000000000000..f9db904297d48cb0c4fb2d8cce68d88be04004e6 GIT binary patch literal 32846 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 KXaY|r@P7bW160re literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/nope-01.wav b/packages/kilo-vscode/audio-wav/nope-01.wav new file mode 100644 index 0000000000000000000000000000000000000000..3fa989aaaa2cfef90e65dafb32db8ae20bad6d73 GIT binary patch literal 36942 zcmeI4caT(7_Q%h;FLaumNP>!Bf<>}`C<;haKmi40gaJl^BCDWcK*T^07XcR)5d>5~ zP*>CiSq!Kw0wSOUMP~+Oh8ZU@Gd6-^$jO{&bhDq zo}##Y@PGjWmJ{81(;YY8Gjq-*X+*?m{of^8Jcdb78r?E@$)2&B`YrA*o)UhK?$(xf$kfQz+0YyL&Py`eKML-cy1QY>9KoL*`6ahs*5l{pa z0YyL&Py`f#|6Kx>6-SFDUNOAOySQapQmeem%C;a4O-C~lS3U7rV9dh&@c9}tq4X4^WBt6nUq6K(Q+t*lF0#iaVuoiTUAz>b=E4utK6!_=MePj826x-ojz&8ZhvS}B%0o*$bVYZq?^9RulR`iAC<<;Hu? z@ovjq;Xdg+qmSanRtsxNynSSg@6+07_1>y6RaI3BYi2cE5Y z%u6%xO}{tw&7>*Lhqa}#*8a+KL&_JHIDbtoTv9mlx9YQ(RLrVr5*S2RxQ?fe&2(hF znz1;ob6R1#KVw^ZpX7)2*Ms%dXG#|qk1I|oNh`@Od9$Rf_{)+-AQX_jc*Z-;VwEOz9QXd3AxBE)^$B?k?V4y1zz?FHTC! zUYLC*jgw4wU(ddjTQer4XS&WrI@gRSJAJmM{M)*h!%xRWxI>*$vA^`d?;qECBQKj* zCs!ord)By;U432Ox_5e(Ii37vU|-GI%2%s>_0FipIa*umvf!E8C#zi5$Lp2_XIbrx z+0G#@uk!(CQ|D!lYxM5cH=%2ML%q4)A^y*zokX5~gFa1cis^wa-ea{zbq_W?8;r$P zXi1Ks<10tLxkwz2Rt4VnZS(aEObVC9Bce+0Xk;3r^zV30EHiYy?;~$d@8$+Gyn%KZ z6^?0+HhNw>FIdxH`m%yG(ck%MBhB1vEHd(pw#FuXlejuQHuz}$ZFM`my#o_tx^~QX zNZ)Rq3+?u8Y%l})(a(k9sBqMohPlR=XB;sGm_v;FcwQvxi+J1CxAZrS45fF)BKjus zNuZg3d|+;*J)354XSOrhai#g8vDav84l-vMd&HITR-xy7-5MtPmIO~l%-9Q&)}fPu zH-l>3K;O)Vwp;%;_ z<F~UeQ4(oaPJ}oX5@@MhX$ezGczU+nv>YFrV`o9mhj{ahK#ajJ3 z<56RivCDYX7-zIMbYr(ZR6n8RYLALHXh$qP+}VH5JE!hNFZn+R_qSdbxw>C>8v(se zPdB<7R~skw@p`rPiZ(>^XxqgW?q#)$jPyU|?N}G_jtH!eGSAoU*O%+F^jq~l`Y?U6 zK1$EjcW4u}HX3V1;xTa#v(-9s$iJ)ps`?SWr$Sxh2Y8LvQcu$BG_R)Xf54hY^nrRI ztSS(9io=}EpIR@(4un&KBmJ}evxCn>w#7U0-^48Kdu^cpmEOXbZfr4D8R^DN`e^M5 zv4>sUnvTYs#d0H=;dP<5;rvJ}x;OqJvG`pq)q3g2^-jiv#+$|)##m#&{-gE+9$`bQ zjj^fGU(LCcN&n>8!mC$>Ji zBRU~AF#cV9aNHmLIkG*nCHhgk4^Pz&>kEw4#(Z^X!R{nm?Rl#MHVZP&B;ck)iRnmdvKc)UTEj{haoXN-%!`L zbX!5ukNr-Wzs{~`?cZ*l)F+rlW`F0+o>=OF>}#9-z3D?)->1CicDQCbpLc9DhEs*F zSNXA`+*4am9Xj2q@{`~pan3yBnBlz6mFHQOIw@;>lMOi!Wb{w|#2}`WxZGGr zZ-nO54XPMYdZu(|<-6WUsFVhnm%GNfCwV?iGE=svyq?lLWkB*-PpUiL+0SvxC=!$6 zUxc>#x_f)nzEZo>yV`eu=#TOFS{p|j*L3%CPy3`&&n(YEPpRj9&s_Hx&Pww!JxD!c zOTuGAT|-?$tAc9+PXxMzc1OGN^~PDpXjipsqwA2fw{wa!)wRsk!L{Ep!)Ptm#N(0V zNPXnjm}XrX4@L%uuM4}PldXx`c5|NdQztpwI`*0&bA#hHXAkGw<|o=cR1iBIT^D=X zI>28GA^qTkvZqUCqeP+IS&iL5aW)vE|%sg|IFhE= z8osrsaX_#>Lw`b_q_@+3+77L+wnCid#k`wu6AdCCPldO%b=m`3i74S6bj(_2B~w>k zAf{_SXlJ!O+JoB9BFrQBCjN|Pi@3NWm-AI(gqST>h*!k(;t7#2`ieh@cH#Em!juoXK_cDb1zp@C(mDm(xu6)RJ>~DZkHO@P0nYg=i%Sz6!O!e zi;w|*z_mYj#-*;#sJw^*?DZK%9N9hOp3glk|#W6IP zCLjyfA{s~Nd&KbXv<)-wpl);twW4b&7oXP9CfW=s8)z~8k@C>y&`QLrfT}4>jEJ0| zFX=suzl-%{=+d_Sz4POA~)U+5=XchDAki$0_SR7IEaP`-<&fbmf7f$X>nYcsK{ zPC(lSv~p#LN?auoOEbgrgC-x#FdCs5whv8w3Yq>?+eMz*YaroBc5S@Mq7#8{R^^T zB|gu?nsKnQ8#m)PEH9!%^ff%JrYu-Ck!NGhTK)h}vM+fr+HSOOke~0PZNmN?#uvk{ zAL$_M^I=a7g_Z?)f;@%2F$=jr0Jh$YJ$o5vaT14-9c3WAhh78o2{Z}>S6~mHCI<+0 zN2c9@UD%sDBJZ-X7i-~h5$%U3pVDsR#Y)8FC3tlJ5y=F5Bf#F)Ir!TElWT=!M7& zB9#<_FHwquS~JMHgxi3gd|kvDu%sO-h`_TT&aGe&y-kiSx0* zvo{%M<}{qSt;AWr)+)Asv3|6^w+>o+tgDFXxs2iS;-!b%8F2F{0zluVJ*os>A9a`eYR$Gtp!{A`5yW7%Q<(Sl?L(@SU^I+7F8lTSw7;u#Thu zN9!l+XR8pc$U1HPny77*!|v)ttAfUJ&|ZJOY7tFTTV%yWwlFl;C#o5;ej;ltveF@2 z2={Oc=i z$u)A0TqpY@ATCG43Gx=IK9WphT}{f8-pQ!Q*vQ#ZkMvAlWo^#>lRb@dWTx1bOFdFw zW96=KZev|f$_yv!U%o_6h49(7T7!=^e>-N4G;M3*kZ(s*###C!$x3o|&dFSA{JT&O zwCjShf+oF{KG}Xq3vHjIhq1)MC}#Q3=eiHOK-To+E0mZa?Ur+8J(Ql=jKYx8kZASTceZ5NBln=)FRO>4^AWMFktW3xIve+&KVhAWsvQ$KYDd}j zOlG9bO6sdmJU?o1mHGmZEqAZX0Vz2OZ8mwkzA7^#j9JoSSwF2ySZ1%Xqhs$>sqtU+ z%O2Z8n}VHHjX7dxjGc9M%`}+MA~{P7?A>r-FWD9}uD7Mw(X#E7vh2wH`^C<2OrBA^H; z0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2Or zBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs> zC<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBJkf$;NSmG^8dd*|J{*P-YWu% J!2f*${{XEL%PRl? literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/nope-02.wav b/packages/kilo-vscode/audio-wav/nope-02.wav new file mode 100644 index 0000000000000000000000000000000000000000..10948cf9667fe4305eb776daefd3199fd950a4b3 GIT binary patch literal 43086 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 V8*N`rJ_LLS_z>_R@c#~h{{?sG0q+0+ literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/nope-03.wav b/packages/kilo-vscode/audio-wav/nope-03.wav new file mode 100644 index 0000000000000000000000000000000000000000..dbfb6eeb6e57148cafbbaf59a55d3268a8e9c6bc GIT binary patch literal 38990 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 LJ{E!hGX(w{zJziI literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/nope-05.wav b/packages/kilo-vscode/audio-wav/nope-05.wav new file mode 100644 index 0000000000000000000000000000000000000000..562e49f95768405a7d24b9cf650ff67a5d2aa440 GIT binary patch literal 36942 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 literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/nope-07.wav b/packages/kilo-vscode/audio-wav/nope-07.wav new file mode 100644 index 0000000000000000000000000000000000000000..f7d760c2a611d3d3fda88163263435c05ef0c5e2 GIT binary patch literal 26702 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 literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/nope-08.wav b/packages/kilo-vscode/audio-wav/nope-08.wav new file mode 100644 index 0000000000000000000000000000000000000000..7ee5c72b48a7a2f6bebb99edcf6c2c17b183ed9a GIT binary patch literal 43086 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 LFarO7An?Bc!xCj1 literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/nope-10.wav b/packages/kilo-vscode/audio-wav/nope-10.wav new file mode 100644 index 0000000000000000000000000000000000000000..9c43e5765ed286fd2dfb5008913cfd7b6be9e878 GIT binary patch literal 26702 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 literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/nope-11.wav b/packages/kilo-vscode/audio-wav/nope-11.wav new file mode 100644 index 0000000000000000000000000000000000000000..934bdd42e9aaa2a92260a4d164e16e86a618aae1 GIT binary patch literal 96334 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 I-;RO*2M{WMz5oCK literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/nope-12.wav b/packages/kilo-vscode/audio-wav/nope-12.wav new file mode 100644 index 0000000000000000000000000000000000000000..ed0b49189a32e34b41c61bc28032b109d723ffdb GIT binary patch literal 75854 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 W1WW`>1WW`>1WW`>1WW`Z>Hh&O)HzcC literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/staplebops-01.wav b/packages/kilo-vscode/audio-wav/staplebops-01.wav new file mode 100644 index 0000000000000000000000000000000000000000..4c429b7461286afe23ebfe6269b4228093c3cf7c GIT binary patch literal 32846 zcmeHO2b2{>v+kZ7Ht&)|P(c9!$w(F?=cFV-L6S<4AR=M_CH*Eu6hs6;1yK7)6oDuLQ3Rq0L=lK05Je!0Koo%}0#O8_2t*NxA`nF& zia->BC<0Lgq6kD0_;(g&3cZ#SUQr6ouW!XWC-9pFH&sBTmKY-1 zi*BMPe!W)=7d1sQk%TwPqsL!$4N*?qCtecU(aQv}R8JR6Qp;eS^}vhkR2nQTydk>!^N6jFzA2n$E6ZHK&Unt*6WP z-F2-*b=+=YJ9b4;+x4uwrgcm|>+0+MT%NLvIaAblbG3r&lMpRSJIHSZ!`J$KuP2@S1?AgIRf#-d_d@tB{>oqD*H?T%q)vZ;s zr5K2Jf6&j!5!ME)g1e|I=nQv0_TG_FBjKFPvkoULNSYP*b5i>fi%MKbY8YEO{$Nbd znqd7V3hTY@g|TB?ef34#$}f_2aGdy=CNmE6B2$&X_2xzX$oSnp7-qV4s|uu`VDRVp_l=Tvs#>?&EsvUlbd z%U_#UG5@G9BXHRMK`(Xn^Ze>A{oo!EvncLNe9y$DiCyASVvc!Nc&Eo~iklQaHvZm(#}YQj z&xv0Vm*;KlN){ihPO7dtrW)v8YKF7bz9smLe}peBw|@4q%&g4CS(UTTXWx_CEzh4f z#3uu%0zNQUG46Q$dXOTNl`ChzUM&iVWE zJNicX6M|LjU+kk!cRd8ddc9m~4RAGb&+>fa{oT9So9-bkpG$+EV1P9InG)d45n+2a&-E(PBSeBe*_-uaG}4zk_d;FU>d2UoKEC z&^8bZtPc*d|Fkn!Vq$9goRjv8*Hu;6PQ+%&m={;(gvYk0jXGhsz+f(eWb`86nUBbTEu5P!q zhuiPl`|Ki4KWBxLpdM8}VqTc4&+86iF;ML-Kb3yj#(Ke8Yo%Iot}?Fbt}3pwt`t|g zwZmFujkQ`^iPkRphU_Fga;ZRtYLn=`>*W>h;m^~|rhr}XrT$GUa$mir@xl^8%T9&ZNTU8*_?N%{MSZC!= z@&oy_>?m)M=foG{SaH5A8mfZ29iOV|E_II@qW+;4 zsjVta-Jo0OC-fry3+C}UVxX8Vz7>B8w=6GP$o}$K`I?+37s-$0hw?o+Q%;ei?+&J2C{-ok=f!`u|iB04~vE( zMV!*B_3L_&ZlZ6}0riL41WDghGt?{U1@)484Oo7vHmHM`#Y^Csq0qu+U|LFa1V)R+ zJ`oVN$(HgF$TLrVF4xLUXdC1=a*2FPJ}(DC!jiDlP2w%_h^UQ~W0#(%hv~a@iarIY zW~njie$_(V2|UZ9Rl=Om8v1=!%~KmyDr9U6Ew0d~bxF}#Ocq~>)1ruMA_vQ<@)NmH z{w7b!%Q8!5$P4nQ+%CVAbLBJgK3NTk`MqMHcuX{c9{1|`dWf#4WAtIQ5_%k_I;(oB zyeg@RsKTl^`mKX8G!!x~Q~Q-m->DzgbM+pqt&PQK@sapVSfJPgl;_H?Sm_Md>9=aHx~!6QP4qZU zFVsI_7AOuW2Z?Fm{a2AKQeH0_gzJ3bhvZgMqbJStA85a7Hny==dy{kS}U%_^dDIdm09rXA#^soW8nuPK30KA3; zVuLs;eCYFbSsT5!hrM>f7;Gi)LT@Fd3ljb!zQNdd2EImZ_$Qb3F8#Tlu1D!^x<1fN z)IoJgor2vSR!7uvbxvg|sc+Dgbu-;tkJWEt2KZHH>mnE(_lObVWnjA&R(lGPY7r}w zfnth`mu?vpm&7r#LwqgXhgUNU9#1X!aC!QWUavpI+%;PFfi2e4cj!`}pMsu~bRk@o z(v@(xwZ2~u*OT=-dX?S*YgO>H?u7R=P&|c^_O4ilUbms&1L6-zd{i8PP3;grh%aGX zv&9tHX>ZXAv-yqizRqI?S*Mp^q)kDu4`GbA*G=_Z811!zVqIJ{(;am$Js8Npf*zM) z{Qs`g;Hln>KHGxQNMJi1y)F@}(C;SkqxcD*O}PG2d;*JkO^kY64I_p?AVw7wfkn!FW)91nAxeop#mT z(RW|i@niZ~{gQqQ^XZr1Z9h;6z;14Zge^sP%;=A! n252O5J%tRlH4>9+>EnXKd zh^HZ4AIwm9i3*}9=A6smcZXi1KZX6h4pg57uET-f!;tDB^fe6M$LSaJOh~sJ*zd&i zY4DAcMQI?^1T#->_`**BwHL&zkaUKaiS`D@%uC?nNyye$bOB%Wuuhc_vGC5%Vm;pu zN-JSI@8}tjate?gkDkZjI1zol2K_FC?pEuq(Dw<TL6GgajG!N!kD7|Ht4TG@k2=Y7UZ0YUZL;r8<_ki|F zV6av1(?=m)0QxHiFTaYYi}|A+`0oWN9>&NXiZ%qjJS6%-XI){%%^+D-Q5Lc#VF#3l zw@<=i_G0v}*Wbc!mg~=8uZu%%DaPk2-2EQw#CD9mqtILy_AVZ9S_1vuA!?wwRWV>eJ4zdSzRSSp6i_1hcABWPu!B!+7nBmwSQlhDgdO1)i5=Oe7d(=6QeR}DWS`X2MVvE$5m_vuN7mzqZb&9~ z2pftVC10UP`Y00WfwYr!#VQFUepca4vQIyFB($lgY*>COY?CPGhb)SIp{SN8gcIqW zq$m`!ry?P3Cxt8`IV4*=cqi^j>%@CLxTJB!c7HB}R2pW8_pyc^!n{`pepFw)fi(cW z`zF0qK4cAcZE??Z&$O24*X+8%T>EwXskkg&6sy&X&Jk5uPPT@)cDr76J!<^{@8^&_ zEsm+>s*oO}b~`URWu1}E5Y<*s5#?ORJ$*cf612*C)k;R)5!g*JrNMu4YzcYqG4Ot2qjBp?D@7L8-#R(=N_)BUB4qtQuCnfN?Y3T$ z^~FMXWP7oHIH-o`vbd+z)@$j{eVSQhxkEjtUT}_8i(g#+RBc70-$un}IoQpZW z8|H^4dMRwJBz&&J@LdOoJgc?vD9+*DlVT6NyjdZi`l6815sA_dkG2;2(O4;;gcnd5 ztHmU6(-`}S5%BI0iv8$m5&V+-_2cmNR_Z6QH@qn3W7if7|NmR~7iAD-45~PIE#zss z5qm6*J#+^4C+pxNkhl5{-u)2rHWUBA9%!_@$qLAqWobD9J-@CmsIl1RJ%}jgLD5U@ zkhVO5h(i%sMZ5`bHdQUeUg0&+ZGou3gV1gg_8+U^kFJRmZVXnXhFAydz>9bQ_htYcfoQ=zw9Q!g3d6%D-B*@n<$8>}PcWKF zKnF=cyq|anJB_2jG8H~#8+ai$JgBW$dru$&+Y{?-Jv`GDp6AV2y%X@QH&)ql7)Mj! zLo|ZNl!SQkImqt8uL`l@7(pxGC5)C6SietVwxJn@XQ3Q?OT}*&F`5IIk!ih+0|km- zOIU5*m6?RrNLq<`zO)$^DIPQ${^;2Yh&1TN0u?s;6%TtVwCtzW@V zPYN?X^+B`01UkH;8hXB~1^>MV*Q?o)x#)j5hYK#*=!XMKo$%s~Nh)eRdsPXDW zJ`hVoz7RF?x5Cme9;_dA#S5U7jx2!I7ld$eq-(w+Ji{3B%0~UuJvtJ$M2)59clet9 z1iC}=@tL1AJkS&51+iCQs4`{JouMD8LDnLnM;KBg8)bf2&-6a?L|ietBu|)!f}9zf z3ClwICaDd7^e+FA4%iCF&vA!rfHY6pCq5dT(Wv4-dXui026I8z*HY#281~25CYTDn z$9x;BVjChGWm{lhl`M>X1ol6|Sn&JC^D`W9md$X*TH<~fJ=SF~gdW=k%RxApKjM@8 zSmvL`IE{2_{0qxZZ_sn*NN-h$ptYuym|N=HEz4Pm^SkR1B@i z-^^R|9$6?;H8w;zL|T%OhPY&Dc-&qsujz?3XT}N9=EinwY}fS0*fV$Go(LDy7-zUFF?xuk%-6;`%r_q2Y$41K9mAS7`VQZt z-&spRjAgQ1vS6}pgAXA?+=t&`dTeJr-Xf1I0Y6RD!&i|w@h|2`6xo7Fc9J_1U%tb< z8wo-$6hMmJA)X@f3?s?UQ-5rYEOR8Hta-LT#?jmfpAF80`}G??OYdK=T}_F3A+DG| zV;zQXJ{v3w-ZgJr|4cNm{k!_vf)wc+qi4y`gpM%<@7*L}a8C6Zi zfUd$SoP%FzpXtXjGxQuiDN(;f>oo5=^0B)}!zUM^$4!xU%oQ#7^XCAnx`luA-B2Meu5aB+7Oq~?JU^jgXk@3Rf z9QtmAJLRzpFDW`8>r)QdiSFpF4R+sJx5Li-j4mtAB3d7Z8ktpyAijk-{YB))enx!z zSwzxLAWoKq7~Un_7kP)W$nf2Ri2Mvh%xfc`?8QF*KJ-=r`G6JRNh22GL$tp?-kyT^ z#BRhk#$kum7tya`qAwzDh`*_QYJ!^OY;?*v?;}R^sMF3FsV+N}5pybyYJgjWQp-e= z)l6=3-{p0Cs>e5u|ImA9q0>d?#`a8kxA+%vE#ub}%Za%;xJ-==F3A~?^Fwys{LlUU zGFDwEcJX}b&zBy}_#&-aMr~Bc9LihlFKdr=x#Q+qMaB7;J#jl?Mkd^zG$Ns7(xWLq z7kaE{{~{CPQ^m&Mb9OzuYko@JAYb$Rs=ikO4Rd8yr@SUP4`kT6F9a3_JIh5@ZKt8i zb{~pe5`Q}0j@=S_C}Cz&*Z7}evg7u|G!PkLL2T=|s_qtIQ}ANm)|@dp-{!b;7lOai zxkK`H=6Ce353C9Y)Q-u4TDSxi7}*gq?{S68j~#O?W+ibKIYvHKGwTFjq8p zz2TYU>ZgYXKgho=uX^6s*_AUYX3WW|nzK1~m#>yRRJTIJEx~nz`vvbiF|EBb+(q4` zJ)>e?kDC#n8owjHW&EnxRQG5x%E=6*`VRQk`(pFwObkP8ys$Tum=ZM1l|Z7 z3iJ#Pu)lVmQ-k$RS;|v0_PzKQ5=O+oADiL5&9mI~oAsmo1rf83sPu@l9=5)d>3X^I zR&bHu>)V*W)OXTX-q+Z-(BC2GbsY7Ms3CVDPS#eO6mQAu)=KLJ*9=!TcS}!WZ>5+q zF(bSO+-FfC(*!Zk+vHGPMY&a9XOg|dK54&b_q2Q1@%G5zPk{r00l@*msli3|1_ya? zdCZ#bdc)NdZ?<-gb{%%T;y&PB;;!pn>>BTS3-{JpLBvY;=`s4O>W1l{oAaXG*6wZ3 zwPT&SPGe`OQxcUnH>o64ymw}WdI|)p3Xqblyd$ls8g{~-;j;ElvHPmGur9mjBs+D zEouW|$0x-NG6(envk<#04^MfPs42I|LDobo-g;X$mzMkkwLlLe^Opp<7b8O15Ruz# zwMVT(<-$_63iU4sRHlm8RnXfw!`Vyhq|3@h_K#_jQUH+xoN~KCn7_hBPycGVr;0o zV+pE~=E=#Z5~_>H@)l&3TVhsN1MX_+JkXkj%A+o-scHb^I;uhHRaDMosH(`3ufojH z46(s&!Ydo1D&{p{xeiq++fjqF6g4sfPz98SjQrD>bJFxD$g`K%7u9OizzjwWOw&*; zN)PoodRPaFmGq;?A7|*=Vl1?rCT>N%_Hp?tDqI%H1<=lT`5-v-$~}nK_Q3qM5A_wj zP=%2O9^XZU$yhZSpDCyr`UX`WNudg?uQC5tLq>T4DmesVtsPNWG8$Da6hH5SsBRfV zjCY_qb0D&bS*Qv4hwh@wXdmig)}n%CK4>jKmS8h#J1pqr0c5k+gW?^Soo9;m;;e|5 zcc4z@UfBz+GwMceh5LC}e2#p1N9g3J{unh`EuiDeYB#E1mLT@K5SFtJ^z&6I-3~P= zpJBef5pmUts9rcAY*A9yfNq^yY}~<|FI7 z64CTAkgNsjjw(R*TS2>;ZiK3fhfy;y511UrDpnei;XbG)c>^@RMBU6!;%C%!tVe~% z2dGFGizt6HtTb+{U)zy^pM_eDq0mhSaM~0#K`l^=^dRhI3hJ6xVV%2-I^jx)clQUy zX{ej{6qQwLLNy!9P_Z!`G4BCb@2X%u%|zCA4Js9;qMGKBP+dqz(CP|m!}ar6`IaF@ ze+p}JDXehaQL!)?V{Rentwa^wa@2n;fSx9!BBd81-M3@?zlh$y0lim&{G(X&dZYCP zWv(t+h`j!8talpm@*3c;Hzp66m6eIr!eF&I5HL2f!3_#MZp`xWTTfNalT zN=eI!KrKrD{4IZbX&Cqi|YZ>&q4Vt|KPbeAaRYgXj4Kgl$FcKa? zdl;1Nht0J>2B0#yk4I+llKvA}^sRa=B>o&UKSBExGJbm zvs}wijYVfzcY8?R822i}=P3?q4m_@N$U6K6d4I&b^gX2h4xjblcL(Yl{y=^-9p0Z8 zxe%_~s0oa?hN30tHVf4NREHLB!AuYbzbhYBbru{R!rPqr-v+LB{b%*U1@stz|CNNS z=FQ-+BJ8UM=A}DfB*KQNRz3AfjmdV%`vbUI4<5II-X7EzoWNS23vVwG z6$51IN@EU502M!Yr<#yssMGirJnTl}iiRWL<{UH=SHGm%+;j>~f< zJ{QtZ6qWpTH=ZR5RErQ5A9p%e?PcN#2eBGQ84u! zWEremu7BX_7Ro)C7&~RvC^l^BOk(l8sS9BZ6#_j%n6g8xTgpA9W7kBr2j?M4DjL-w zWP%&o$5B-S*WHkvQXL3YG8BQ zQ)9w8IAh@)n>BVonGus`v39naNQ+{7Vf)}}3)&Ay*22)J zAqzG1*hYEOa#adf|L~D2P)M_6YZT2RxmdfzO*jrsBi~f&kab6nT^heU_9+HUV~At$ zG%id&%0yyK43YZc*dUD?GdjX!BQjpc@nYhSBg0`DM1kI=_rmdS^Nq$BNBY7MXYQ9H z3wZg;UzlU!(;&bxc#@o}o_PMC5tbCPaGLq3iifm8nPgKv#q};`=HvN-vz}oT!~9a- zj8HRCNh2p^NWz&u&IRyDW2tFAGxLnm2G1Zoi%@lusqW(c3?nHS2|~f3$mhuHLcxeL zV?&5>KH1E!Z24qm#_kCv%F`20W?tiZGv;%FWfj*L~n;j4b6)zmsuZZPUQMG zl7elEbw!rSW5`%N&&{McVh5pzo!**y;p)*@m`0daOp+jWU zi{)c{js25Wd34i#e!}!Tc99WY`v61iTD@FL6NMqD%RBokd3 z8zfY@g=Z8(n8#bB6_V~b=ggTYl7*x(TrqOt(H4mYNyWMdBg>c?4h=ta=J=e^mwAGp zH%ERZtc`;9&6tG|HrO$Dj4|7`!8?*~elJo-261B%VLVA5`eO;rn?~d2%ywWblBn^B zH-14udh~lFKgLG*Eu%k!i#Z!)jC~p!ETOR+LyIK}b3!sOPpm1LiD;E7n2DrO&TsPb zWJlC5@xaz*dS_aOCOvKb!ZNcJlI+)OMjobadN6kl{YdFZHqwAWJMwHa!{^8&J!SM1 zdFHq2NrN3BN>W^p+rPSJqz>a&@JS=jU!Cb`wsJ<6zW-}~j0_!_|45k$qk`YV-}q^B zEJ%f^nR|>!q&)u&n`lc^nEwCj{jrDbtAj)m(?EoA=4H zLG_u^<5$-x!v=E#y4l+Sz% z@6=fT$09&)L|(irQtmc??uB;8kt#MI`WQR0`|8~%SLzpNl$I$pcLOI?@F-Q6zNQ%aD)Rv<=lriC$VZmK&!AOIN z6B&-fnluq*iUYI6Mg}v&7$1@(9M2_7r2jxMac0g2nE$Xb$kN%2(a3wz>nH+I1pd1a z;92eZtJc+{@A@;~e-|hJH|Q8V3nKb|L$;_CQ3Rq0L=lK05Je!0Koo%}0#O8_2t*Nx fA`nF&ia->BC<0Lgq6kD0h$0Y0Ad0~MX9WHOI;C1HyRMv)*Qh#&$2!T>6YB07SKA}9tFOduvy6ceJ13BkdLpa_@- zM^RCNf+7YoihxK);KJqRd(!UyzwZ=1=Yr1s@4dBVt@r=yu-Dz`?5?i*s;axXtGKvV z&z?QUDRo)*OV1v1%N-4CDy1}zv))x|Tz{=RRa5ou)wkbKc;Bl}&kK9??b)vY_q_+- zHKg6?tva-C)uwf8b=}}Q1}jj>{L3JaK_G)b27wF$83Zy2WDv+8kU=1WKn8&f0vQA{ z2xJh*Ado>IgFps>3g?e+{_4JFOOtBPvukOrm!jz5jY)lN z@y1$r&-UCq=UXrJ1*yo_{LZ(56kXmc6-f2KGh6xi^KfR%B+eS=VCoz?cxL+uzDVMn zM4K!XMbBBP5-qb;nGLBtRfKa*wa@0N+Bnx#wN#<4rE=76+!ANSs+rnrk5!$~=0tUd%2lVUqt$lXRkc*V*dx$-F;G~Ab5peiXRRjKmuw9+ z*ZyFSQNP+@>S^_vy;&_+n`{G}?=@4;+X=R@@xbwZKWeV>F4uoI$J&;9n->i9^v?0D zs`T$p-sHb)-&WI%@5j|t-NW8s-%^e3`N>*|w~~|0X7ho{4cw|0CQR(MSTH`&Z>(?e z`lyf0wca_QHL7{?6#riPy*Ac+)Fppg?P+-n)u$#BS`v6Od57s4o)D}Tn^}5U`MA=&qIw5P z4?I*nFjk^^+Y4=}nrhbhV-hv1!v67*ce85eBx`(I?}{T&sIxUPEPQn+?yt7{LTv+m zyr%=T{YR@FFE8Bp*510sSCpud9%V0|*~m+fDTkzMlP4ULtRI_S@l- z&?S+nIX&|)&iy>{Yj|4d1h2LlZTtDR#y+kHRcx&)jH%c?RWm9!l)X`2x9ZsF?y45i zMC{>Y4|70m2woE28@eDoC-h;kXLxp`S@`kbC80HutFtFXsseZF8|}R0f%rY~y|LG$ zCsch{*(N$7esf}I!X}9jgig4+QTFeiwWfqd$Jt|pSen(A1Dl79=Yons7fgZ2-=r43sO|&PP0e-H(Be^lTKY59N zteJ0Cn>)-N|22Q2-`5ZLJ^fauo!x8)tLFL>Jyu_-ztj!9y57(F8U3>U0hF@zeD%8e zt9nF@Q9aZkE=HDSc8od7{NjJ%*D+U{=BB+_X7cPh z^EP-r&pcx;wq4YBYP&M(7`;_J2~^vua=Xj+R}tMqdwQAryLwbzt{SUt_Cq_`cDD`e z0rQ>t#JpktW~P~UAoms%w(ac*`-a_Q8>)fo6}3U-qxEh2Y5lgI3+X@7)Acxgqwa_S zc&U0!{aMBBKcJJ=w%E)wPn+w&OGne%bTH?bYrxePCTcp{2kqAw2QLM^ovJBpSLhSq~lyeg#?{r3dOxx~AR?dc)Oe z7+vSv$LvM6p{<0id;-l*HqYblEnu+0Xxq|WX`i)U*_dsG{wJxgRFSHy+kxsJJw#sz z-g@d5I#=&fpR1?Tm8v;3wZM+I1At?;-D6gng=UWV5Y(2L9T=0F*}vEa?E99pL{D{> zdPDu7N>mNqRG+51=&rg0WUZwu)jIWo8ms!N7MQoJAvFKBdRIN8Zc)8pGsbR!<-TA?*{kh& zpxFvMHMJ+&HnuB9&ms09`zkQm44pJpXM^H{>P7XQny&mcnjYLeGQMDCqii^*;2oKrIAr z9{`03>H&4VI$yO`^`MiD_6u0fbM}6F6DVG4F9xm4?RBt~$LuS1j$L63G1oRx-P9H8 zcE~(gO$WV?)ExB>@b-p!0oaX%HqL}T@?nKP+Ihfm0&HUh=DEQ*uCv4Jo%Rv?yqymF zTW$A3-lJ7pAT$tmF$TJP0XF`sdPz-$2aX1ImxEeMRTuHVPP-fuO}CTm4eCAfr zy&Ke?vs3Ly_8a>Pq|H_hReKq;P!T53=ba|s1f>COKx)^rZ zNu7+*s{qtW5bOMiRtq8V2cYl{`20J#`V5iCGW4{|mV;V>ItsnFQXOD}XM@K+knTd& z8`&O3*=b=ieJG`7o?6wKx_rxZb8IS21&Dl@-d*-68h+baj6H8 zKO0APAl43CHv?~V5hrO_O0nGyU)pGYf|o2uMDzo=S_zKV!-97qLaPA12yC>z`V(xw zIpk`sPQ}q0+&0IXKjD`G6^2(-0+*f8+>hYpJ9yM$y9hik1;y2%whg#4Zp_8^$Eg$1 zp0aiaZ#}?aM{wE_)Q$qKVOU5RB-w0#hF`1%S1WK{0~%W)eOW3Rtp!_atWH8i*bZ$w zL#|GscPfx-0?F$j{-kUr_DD$Wf zbZSAWZ2YP)e#C4Qa45k{R0Kr!;jai!Wq4Nw8h(mO1YhUCR~P};#!(A*1$fTG+c4r) z3%=tiI%Tl!Vze*CQ4UOE_=WL!5Z^_>O%_`4$i`g+?}BJeE)r-Tv(bY`9M7^|2;sY2 z^i(6&cdb;<`Kew5sdjO+s6bEUI9H_lOMqvt7((bH7hIC#dMWwq<5~yLH9(Ji2mZ-9 zX^`_$aPGM0lanF}ev+UoJaJ9pp|v}L=!?>Y@P;dy^dajXe#>tn=rs=<)xc2;oYa9P z>f%f+bHQyGbg7R@@KOvt?8Vw*Cv?06UbY=~yP=(8{8j~SoP?xTGo_O{IFnLdijwF= zXq7;tJcR(XhCi4iG~AJP!rk{_;DL^sq7t%L|yfkWyi2{|<+3**Z?AWAC4TG|U2 z0aylgOMGb;&cbM82XK_)JuQT*w{Qv_BI6FhB@0|w(5Qms2Y|p{c+YNl?{B!<4}Fn> z#o8_lJP_5o&~m+lxaNa5uKG+0)$$Y%?6>5fwkbZ63yrX)cu50X>p_wl&`K8c#wBjx|3NowM=q8afx`anL8yo0o;RoW?6)m-~hH^Q69R+-W;B@++yAPH@o zbn^arkS|iA|B@E1UZ`Oy^3May6CBCZLEmxSApQ_cQ4WKKLyK#5S?`k?54IP2LP@BI z_tB%+Qm%r(pf0--+(!^9?o1BSzA5~=aiaP*0TTk-P%sEgdRZ8>DbqfLmXC!o8u z9?GB#(E|O1dX=$=UP3<82W^9r(mtvq7faETQIKBdxFK@Xgp4z^4vxoZjfkDNF;(zP zQ>Q$XHhrYEA!8Yl7mm`{(Kgc3(dM0Whs)-;B2Vsc*5TwN?oJQ9QWs7tCl}Fna?$Ry zQualQm$qqLi6;_k+C0Z3u~^Za*cl~rI6E#J<{$~=`JKDt6YYwBJacU4nfj64DUKt& z!6W^@Jk>gZcrxo?UzDv1UvswgU}w3I zI)J#3{+B@C(vq_?cc*HqBQY{j-}D;~J5Sc;;2Ofr&RwLXh>h1Grf7|L_g=i&Z+|wY zm^t<(eX)00;N#$!;3M7?`$V#1Li^9#SJhAICiRLL>8~^S`fl%vz{0@&fqve%>SwhF ztNTq@^E9=On+kuXf42XGf1kO;j!{PhHiZU+*6FVx-(1@VYoM(rW@f54bhh58j@9i{ z3)@EJc;D&9>Uz7@eCQXLzo@3(bni9qJnvhqD(9#Hw!jSa=YofF-PcPX!k?xtwAYxo z?ER|LO!6-<@7PW1Vy{o&fxy^6rB}m?VQrRcoB7j{{gNfgTpQHi=t)=+zJyi!ary;# z$M;5=yCLgFm7}+)>-3}8o7ky8N6UTccvau7GWmAA8EooeJ+sX8w7szgI#qw5XL&UO z^SxYYXhRx70^{p^)gmgZ^DAQBDNlj z_j|DlJ6$)>Kd4<;O)N!J*-f3JE>f?l#cHkk0`cQ+dlI7NPqEj~0kPhxSaEgGo%KAd zHbeRijL91jFE7D5{zk!4q5!22`r287K&#Sl8Jk=TN*qLe>zW)uYNrRQw z2+ZiUR6|6!mt*Cp^fausrhrq%f-CLo*e_TGi$4Y{h=_huKaaKWar#&FGQR%N4#XPx z6YNZ>K@bnW_DexGGTDhc7%x%sZL$@_~S-IHQ)LA4Yw}XcYxVL42p6*Cgof1`@x42DxVxLd+PI z2O)P9oK^wvooHJKF7}|$B;GLg<<34WEP|-U2W7@oT<;|Dw-3LEFg7z*lPH(5H23*A zR&qq=oSMM967ZohdXgS-m*}(tt@FSGX)|&R!OlsYqchhu2EA0GWdIx~pj!rBBG5z; z?${qAb4FSoMt23gG-xqC4S~}*o+v9LJ@S$SHV0C&bLB%hXaNWCJD)7taP%jxKJpKV zgY*^nN~HR$!dG0wCV>`_=Uh;RcH~f^b0Q&jz?r8K5^x1TZ7@zGADr7bzf_`+1l|%I zuKXnOP~fK+zmZ$Y7RN7~zZee(!ABAlDIF25N@YP9;0iPwUy>(E!8KG7?(%>Q zbzFuwoZ)C^g}CP6Th5jVSVb}3aurIv_!Z}Ot`udhmxLuH(KD^T62H>YX}i=Y*TwWD zN<;fA#_vQX3NE7fo*qD)i4j+&l#Njbt(j;r;^Oy3xN`kN+C-7|OIeEXE7#u=k5W$l zF1aPz61|o-PVDIyA@oIWElncU1o-Bj z24&}Z$b!4{##4-17}1b3%Ed3arc~&SdlRI`ScAG{Z;Wji5mMWXPlyMj9@>Ks zEin?I7w`+>%(V{tqAw9C_C)z<3zRbtoDh5+w@n; z&-hc}J_LHQvZLJ-M~ThIDJ6)e`eC$3>7`G;rB<`S-G1=G5rqCn%jb%j7DUuJhEjI= zm#lL68~LN3SKuluF^($apPobn#WSf#9^_Qsa-1NC{9~Ld@m~pANhFF+Q`SdsAr;C= zeOzRU_D2)GS9t&JWDya)(5u=RNI^J|S^3`yvAL z7;2AxAs)nan49I;r~Jluc))i=lk)LTR!X!O+7;JqLWg`Y{%31`CI94JdX({$9I#)~ z6np14L_+=@Y?$hsH2KV51S>&Q-U&zPR`NAz@gMtSFNg9ZZ~42U=_vB*ZOD|s&z(%%Sw>E|@n^t=DcowPf&^`TGy6)Kr;{$E9ac1F8*>vGz= z*cQF)@Ewinwt1+9Q+`_VA02{?ShVZSJvrRmvs~Rk^XOInH`-4INYkE;l>HknOKoKa}GLO zUuntQ&c1w={sX;F{PBKhjYK%qvgtq*#)j7WUrP{0mo$7+has0yLz%? zEBme7X_Z`w?CZ&_;w(l`paoR7sLe5y#0NOF!0sE=Z9vk0?i9lYU6s?gR$EV&=GO1X%M{)G9y4AoDZ zKbs)qmxa9L9>kwVpqeQQJ6jtOc^d2<)WdlL_6Ia}KTd_m7u)98cPPX87er3SsBh6v zfm)KnZZX#S5$qMzLPf<2(B6XfEx|*PZKQqx{;ja`KM9$*?VxlDb~oB1i}tha0jz(- zxe9HXp@M1+sD6wUXFIh9eAiVU+2g_06x3c-AeVb8IG&42tv%S87>3GRs&1e5`K5uFak59qer#sXCays*P&8dBGc@ z&+xOucSiaqcY4?5w8y^HmAQ|qKxOUZXNga$zK=bZn4%vE$IX;jx8!5V#pY{uRq`7% zBfKS8sJiN-_3+S@S!de?u`bvZ>Y4b_uWR=uUo_)%ap22H^Q`gSki-SiOA^odMxY;a_?xvrv)I#@>}YJz)|9&9kah9~t;CkQ>|)xLdb33zKsa>*5uO9RJ>AZGWis z)%Q9pkO)i;9N~>q585|Pp+Cbv%Wt0?3Hj@oIB4IlgQ}G&M#~@KE8;8T(f9?)a{nB= zP2J=b1ZH~+bQyNS*4UraMsI20i@-I(cqo(=&;By^xcm|MGxJ{0ZI^pl?&-NRat>tg z&e|EdD`LY<71-jswP(KEnQn&c3@%A`2CCaUtRQA(Xj`D#jh84 zEP1n}ZE5$iC1rif`&PamJv#A$$?>v+?}q9{&dgex-9C40UXy~GYDAIhoKs_Ijbm!A zs8ORvS^n{P*XGp7zBTeys7tVeS4aKDEJ!|{7#S~)j<1?uX)2DaXjp!9*&C&~Wn;_U zFFU4uP5H!%t(B{zU&L=qu7*`iRV}?Sfq1ZX_|3416Mcz+Ezr%i_4o; z+*+}$;+D#`RawzQG#GD`xI8)8UvHYK>-7uXH-X=RyF+Wje~;XrRggV8ds()h?d5FC zo|@e*`^~I); zc4T104?iA`hpq~J8Z?3SfnnZcy+G}>`Svt3#GjrlPh65%9Pbui8@n%dYAh5hjvk0+ z#X7}C$5zL>#OKC)B-STJC!6`}{AW#XjG2qoDBZ+c;tdS!4Garz40Z`U75X+*8p;XR z4hO?KLLY=~4%H3K4t5PLL~k>^nixS=VB~q!ZZT(>zx$1`Gk!|)+r-U@;}SdKpTu8^ zPl&%9pA+92KPGWaVosuN^1)*iM`=YaC1 z$&Sfp$wtZM$upAu@jN@ZH`&s^%U|LjWk#a9=|t53Y`1?#)l8+jK)lWTn?^W+> zZ>Q&bIf1-DC{XUL^FH#%djq}ZUa6j=@6c^@A?kJdWB&LGwKS)r3TrNQ*)K2+P2At$ zFZMq~UShgG%b(+a<8StT|9I2O+==R}_1Nh@3oYhg-e`fn+}DxM$i;YcW2z!;wJy{~ z=Xv$K23~D1jJ`JLd3rJ`!Fpm$+@WTxd$5Ze#@z8d_Uccz26b99(eFUh4fS{pOrFUy zxu!0-Xl>3$KH(uV-TZ*6t0t(odJGjlJ1~2lh02>(utUEWb#*5r6EGMRiDOVv_ay!v z*7xY4`cmCpH`n?40QS^pVxPJ{=B5bduFp}~b31CzTHD&lDr^IG^UMck7NnYK-Zvkc z#b%A!g$l3w_B8Z&2Q;|=$Y!H;Kk)rBcIr2%3iR3-b!a_wZ+)@ur~B$Y`b^Z2HNqZ# z5i$YqVW<9T>}?mQ9jMiL&faLd*`v|h2D8A-FfX8X?m=@ejt6iz8MSj?m|u)<8ez}< zF6^PNKvd8Yd+Xz|L%tojwm}ag^;4+s`-h&7D!(uF=lXrzP1g%i1Go*fg{Arc?CBT%Epj=NU^N%%W;%{aw8^MjYKwV$DfBo9 zm24I@d~ch_P`h|8dTE5-YMGj*KKeY(^fos_*7wX$sOme#US%gD_n|PC--P_hG8I=% zfaGvk&pW6kU7^>bnsKB45gDkD^sCV8An;U6?^GWn1M?R|7rS8vV^A;G&{jZyGf;mx z4F1y7bVj}8>82}cCkMhSo`ybGpPcC!?;UozuioA;V~ z%&3$mUxa*1U{TsOMrHObK;?7TY925efC{vks5RWDvUL;qNgqfw6!PAIIrApi?!~A+ zY=Z1wA-;JVG7bVVH6i6faPML74=XTWEU)_q$6+vtHh%u^xLDHs#l zf`@MK!~XEud%)MrsJHtH*}h_o0IVoHAG#Ti(d0Q~;@&}qYd*%HZ_xJ=AF4`0Rqev(VcmK=U?Kral8KK1N;t zR_xj3BkRSAL+S5XNI3%|=f{W(=i!)({PTP0?IqMTJ`5DD1ODBh_am_4Ku#LgD-VoG0_Qbc1AfJ!y!UkyNQ#%W2J&mm4J+RqfsAatdQnA)^ zC}g__HI>hxO7%VH`v+9f6=IE(hx)%(&`WPbus5Q|`(gP{qB`|C^fLi+jYnPdX!Ld? zqTvg%zBmnQnfkEOa*W4o;E$gm*Z3Mx9S>X|fIN3&^t=aJ9i6J*oQQGl9jqyqAYZ>7 zYeI|vwecs+=cgkE?F&?IfW6*{9R354^g;Akjsohf0E`u+q~}r+6N6!I#5YuT52Y z-hlJ<=;uoG)CV}8ft=@wnD^^p#pGk%wHy7d1*OHXnh#N}{0^#d-$G7%I(nZ41pfi7 z7eM~y7`HbgXUMEe1bNP*ppWL@yFDzg8^-f<&~I<_&y7U+?6 zlwHs#YemmW9cM!7E|9$~{Ja_XIvVTMT-YX8x(ASN+zx6#gXSt!jD83DOCZnJI4=bk z%TaClBW!9jJf{$z$K0fcReCMdSRRc&n?QmVupHKswmo>XMn9}5JrVl_%3xcwE{Uj>RH&sVUSCCHSshaX|{+fw;mW)q0sQOIzg z2q{j5PCCH`x`Ohbaqfbrc95+FtmimL!~YK@`M9E#ESrJMI@te8(ET3ReTVBZ#0;w; zgm^)$KsCpe2>qw>6k#($6G0AFB*$-hRiy0tS(Rt( zy++5cnqiG#)@!mNmU(NbxFTilFG>BESM$)j+GN%oq!%f>s|edG?2+lvy6WG~b0hjORX?dl2z z*|%h^0CASuJZhDP!-*(Sr;_()?ujVTZk)|XWi9J!)5lI^o>^1MT)fjSGg(B=RUp%L zSSRXgOkFjx^u*kcWc-+MmwH!PXd$T5Hl?<>JeBd1Y#gh@xa;RCXlawxD{-A>q;At8 z#C(|8kgF&aOX53MpDWoR?kuuGS8AxGikdaLJcyW79?MRka4+@X%ny=(*4sJ{+ne$L z%0UmPIA~##?IT9%N@CiT)HX{+F?(@UlgziW8u$P(DTME`uErg|;hFU+^kL>OrLI@1 zxa$D(`ZyZk;JD!GrlmrcIXY^Yl*u{ksfk^ZS0YZlIp#Q;q)MHVs*DM)@;B|Z zvWqJ|M%#D3%WSJ;ZfU79-njj9sRyPVvQ}31$))x-?O#%T>-LDrz4IxlG?r>h+1K_{ zJ#aUl-XqjG?#RAz^>Ihux;p8Snk*az#&uP-Qk#)np)!_csgmR!E`o=T1@NDVaj>Y%>!clv=`1CGIyls zUREDVRW#+{K|i1uP^&WY2oEyD5n=Y9K3vvG-iQXO_boEWOeBT+o#cOAg<|e9Tn0&sQf>;xL)OJ(TMBSQ4k$Tj+PRLt`3il zXz6m$0^A7Y#*f48FwKf!@_Q}F2v^-7h??V5Mpb%(_#;OY9*iyIpl!QMEirNVrib)!UG!F8uVBvJ@M(RJhx^Mp7)#2d2k!POyFRex1ITX^`KK#z{>SPg))kUIx<=@?O0+q zsk4xEQuS7j+Tot#{6-Ktl!G)cPL}F#(iBB@!9#R;DF5!u^wpu2<|d7%vxc;er1$Fh zrFA6{gR{FsuSB={7$<1|F`YwO{?SwQ*41%xQl(}3{T;uNx9)3qt&ZrwyLaDLzy7|T zKYGI!>3?E5|Nfl*`d{5uZ(kkHv^}R0Ouut?)mt2XU!8LL{!l)uWALx;4{h=Lr^DO* z5pvEF<=g5s(wtSl6IrUiargh~mqVp@U;j_9)j9m{-~Ums|9vX|(-wc!yL;zo%CkJV z-~Mw~*X#ez>wiw}|6eInkCg3yr#>@WWe~_9kU=1WKn8&f0vQA{2xJh*Ado>IgFps> z3<4PhG6-Z4$RLnGAcH^#feZo}1TqL@5Xc~qK_G)b27wF$83Zy2WDv+8kU`*oI|Ba) DcK{>H literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/staplebops-03.wav b/packages/kilo-vscode/audio-wav/staplebops-03.wav new file mode 100644 index 0000000000000000000000000000000000000000..e9ce09bb54c2aed6cdf0e3de801307f299b4c9d2 GIT binary patch literal 55374 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 z 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 literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/staplebops-05.wav b/packages/kilo-vscode/audio-wav/staplebops-05.wav new file mode 100644 index 0000000000000000000000000000000000000000..194f85d02c66ff48bb196ee342147e631caa3c98 GIT binary patch literal 22606 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 literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/yup-01.wav b/packages/kilo-vscode/audio-wav/yup-01.wav new file mode 100644 index 0000000000000000000000000000000000000000..2361194deb255803d9d2ca0387b4f477cccd0d0b GIT binary patch literal 55374 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
+ o.value === agentSound())} - value={(o) => o.value} - label={(o) => language.t(o.labelKey)} - onSelect={(o) => { - if (o) { - setAgentSound(o.value) - save("sounds.agent", o.value) - } - }} - variant="secondary" - size="small" - triggerVariant="settings" - /> + {picker(agentSound, setAgentSound, "sounds.agent", "agent")} - o.value === errorSound())} - value={(o) => o.value} - label={(o) => language.t(o.labelKey)} - onSelect={(o) => { - if (o) { - setErrorSound(o.value) - save("sounds.errors", o.value) - } - }} - variant="secondary" - size="small" - triggerVariant="settings" - /> + {picker(errorSound, setErrorSound, "sounds.errors", "errors")}
diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts index cab471ffc3..c0c2d46c05 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts @@ -1224,6 +1224,8 @@ export const dict = { "settings.notifications.permissions.description": "إظهار إشعار عند طلبات الأذونات", "settings.notifications.errors.title": "أخطاء", "settings.notifications.errors.description": "إظهار إشعار عند الأخطاء", + "settings.notifications.playWhenFocused.title": "تشغيل الأصوات عند التركيز", + "settings.notifications.playWhenFocused.description": "السماح بأصوات الإشعار حتى عندما تكون نافذة VS Code مُركَزة", "settings.notifications.sounds": "أصوات", "settings.notifications.agentSound.title": "صوت إكمال الوكيل", "settings.notifications.agentSound.description": "الصوت عند إكمال الوكيل", @@ -1233,6 +1235,8 @@ export const dict = { "settings.notifications.errorSound.description": "الصوت عند الأخطاء", "settings.notifications.sound.default": "افتراضي", "settings.notifications.sound.none": "بدون", + "settings.notifications.sound.system": "النظام", + "settings.notifications.testSound": "اختبار", "settings.experimental.share.title": "وضع المشاركة", "settings.experimental.share.description": "سلوك مشاركة الجلسة", "settings.experimental.share.manual": "يدوي", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/br.ts b/packages/kilo-vscode/webview-ui/src/i18n/br.ts index dc4d6cd22c..f59e1d2701 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/br.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/br.ts @@ -1252,6 +1252,9 @@ export const dict = { "settings.notifications.permissions.description": "Mostrar notificação em solicitações de permissão", "settings.notifications.errors.title": "Erros", "settings.notifications.errors.description": "Mostrar notificação em erros", + "settings.notifications.playWhenFocused.title": "Reproduzir sons quando focado", + "settings.notifications.playWhenFocused.description": + "Permitir notificações sonoras mesmo quando a janela do VS Code estiver focada", "settings.notifications.sounds": "Sons", "settings.notifications.agentSound.title": "Som de conclusão do agente", "settings.notifications.agentSound.description": "Som ao concluir o agente", @@ -1261,6 +1264,8 @@ export const dict = { "settings.notifications.errorSound.description": "Som em erros", "settings.notifications.sound.default": "Padrão", "settings.notifications.sound.none": "Nenhum", + "settings.notifications.sound.system": "Sistema", + "settings.notifications.testSound": "Teste", "settings.experimental.share.title": "Modo de compartilhamento", "settings.experimental.share.description": "Comportamento do compartilhamento de sessão", "settings.experimental.share.manual": "Manual", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts index 8d63e13afd..218c87035c 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts @@ -1253,6 +1253,9 @@ export const dict = { "settings.notifications.permissions.description": "Prikaži obavijest pri zahtjevima za dozvolu", "settings.notifications.errors.title": "Greške", "settings.notifications.errors.description": "Prikaži obavijest pri greškama", + "settings.notifications.playWhenFocused.title": "Reproduciraj zvukove prilikom fokusa", + "settings.notifications.playWhenFocused.description": + "Omogući zvučne obavijesti čak i kad je VS Code prozor fokusiran", "settings.notifications.sounds": "Zvukovi", "settings.notifications.agentSound.title": "Zvuk završetka agenta", "settings.notifications.agentSound.description": "Zvuk pri završetku agenta", @@ -1262,6 +1265,8 @@ export const dict = { "settings.notifications.errorSound.description": "Zvuk pri greškama", "settings.notifications.sound.default": "Zadano", "settings.notifications.sound.none": "Ništa", + "settings.notifications.sound.system": "Sistem", + "settings.notifications.testSound": "Test", "settings.experimental.share.title": "Način dijeljenja", "settings.experimental.share.description": "Ponašanje dijeljenja sesije", "settings.experimental.share.manual": "Ručno", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/da.ts b/packages/kilo-vscode/webview-ui/src/i18n/da.ts index 598bc50baa..7dab573923 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/da.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/da.ts @@ -1246,6 +1246,8 @@ export const dict = { "settings.notifications.permissions.description": "Vis notifikation ved tilladelsesanmodninger", "settings.notifications.errors.title": "Fejl", "settings.notifications.errors.description": "Vis notifikation ved fejl", + "settings.notifications.playWhenFocused.title": "Afspil lyde ved fokus", + "settings.notifications.playWhenFocused.description": "Tillad lydnotifikationer, selvom VS Code-vinduet er i fokus", "settings.notifications.sounds": "Lyde", "settings.notifications.agentSound.title": "Agentafslutningslyd", "settings.notifications.agentSound.description": "Lyd ved agentafslutning", @@ -1255,6 +1257,8 @@ export const dict = { "settings.notifications.errorSound.description": "Lyd ved fejl", "settings.notifications.sound.default": "Standard", "settings.notifications.sound.none": "Ingen", + "settings.notifications.sound.system": "System", + "settings.notifications.testSound": "Test", "settings.experimental.share.title": "Delingstilstand", "settings.experimental.share.description": "Adfærd for sessionsdeling", "settings.experimental.share.manual": "Manuel", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/de.ts b/packages/kilo-vscode/webview-ui/src/i18n/de.ts index 6eace87888..ac2932b7cc 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/de.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/de.ts @@ -1267,6 +1267,9 @@ export const dict = { "settings.notifications.permissions.description": "Benachrichtigung bei Berechtigungsanfragen anzeigen", "settings.notifications.errors.title": "Fehler", "settings.notifications.errors.description": "Benachrichtigung bei Fehlern anzeigen", + "settings.notifications.playWhenFocused.title": "Sounds bei Fokus abspielen", + "settings.notifications.playWhenFocused.description": + "Sound-Benachrichtigungen abspielen, auch wenn das VS Code-Fenster fokussiert ist", "settings.notifications.sounds": "Töne", "settings.notifications.agentSound.title": "Agent-Abschlusston", "settings.notifications.agentSound.description": "Ton bei Agent-Abschluss abspielen", @@ -1276,6 +1279,8 @@ export const dict = { "settings.notifications.errorSound.description": "Ton bei Fehlern abspielen", "settings.notifications.sound.default": "Standard", "settings.notifications.sound.none": "Kein", + "settings.notifications.sound.system": "System", + "settings.notifications.testSound": "Test", "settings.experimental.share.title": "Freigabemodus", "settings.experimental.share.description": "Verhalten der Sitzungsfreigabe", "settings.experimental.share.manual": "Manuell", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/en.ts b/packages/kilo-vscode/webview-ui/src/i18n/en.ts index 7248463abc..ca7d126277 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/en.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/en.ts @@ -1232,6 +1232,9 @@ export const dict = { "settings.notifications.permissions.description": "Show notification on permission requests", "settings.notifications.errors.title": "Errors", "settings.notifications.errors.description": "Show notification on errors", + "settings.notifications.playWhenFocused.title": "Play Sounds When Focused", + "settings.notifications.playWhenFocused.description": + "Allow sound notifications to play even when VS Code window is focused", "settings.notifications.sounds": "Sounds", "settings.notifications.agentSound.title": "Agent Completion Sound", "settings.notifications.agentSound.description": "Sound to play when agent completes", @@ -1241,6 +1244,8 @@ export const dict = { "settings.notifications.errorSound.description": "Sound to play on errors", "settings.notifications.sound.default": "Default", "settings.notifications.sound.none": "None", + "settings.notifications.sound.system": "System", + "settings.notifications.testSound": "Test", "settings.experimental.share.title": "Share Mode", "settings.experimental.share.description": "How session sharing behaves", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/es.ts b/packages/kilo-vscode/webview-ui/src/i18n/es.ts index 72872019d4..600950e820 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/es.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/es.ts @@ -1259,6 +1259,9 @@ export const dict = { "settings.notifications.permissions.description": "Mostrar notificación en solicitudes de permiso", "settings.notifications.errors.title": "Errores", "settings.notifications.errors.description": "Mostrar notificación en errores", + "settings.notifications.playWhenFocused.title": "Reproducir sonidos cuando está enfocado", + "settings.notifications.playWhenFocused.description": + "Permitir notificaciones de sonido aun cuando la ventana de VS Code esté enfocada", "settings.notifications.sounds": "Sonidos", "settings.notifications.agentSound.title": "Sonido de finalización del agente", "settings.notifications.agentSound.description": "Sonido a reproducir cuando el agente finaliza", @@ -1268,6 +1271,8 @@ export const dict = { "settings.notifications.errorSound.description": "Sonido a reproducir en errores", "settings.notifications.sound.default": "Predeterminado", "settings.notifications.sound.none": "Ninguno", + "settings.notifications.sound.system": "Sistema", + "settings.notifications.testSound": "Prueba", "settings.experimental.share.title": "Modo de compartir", "settings.experimental.share.description": "Comportamiento de compartir sesión", "settings.experimental.share.manual": "Manual", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts index 52b480e5b4..6a85698c13 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts @@ -1271,6 +1271,9 @@ export const dict = { "settings.notifications.permissions.description": "Afficher une notification lors des demandes d'autorisation", "settings.notifications.errors.title": "Erreurs", "settings.notifications.errors.description": "Afficher une notification en cas d'erreur", + "settings.notifications.playWhenFocused.title": "Jouer les sons quand VS Code est focusé", + "settings.notifications.playWhenFocused.description": + "Permettre les notifications sonores même quand la fenêtre VS Code est focusée", "settings.notifications.sounds": "Sons", "settings.notifications.agentSound.title": "Son d'achèvement de l'agent", "settings.notifications.agentSound.description": "Son à jouer lorsque l'agent termine", @@ -1280,6 +1283,8 @@ export const dict = { "settings.notifications.errorSound.description": "Son à jouer en cas d'erreur", "settings.notifications.sound.default": "Par défaut", "settings.notifications.sound.none": "Aucun", + "settings.notifications.sound.system": "Système", + "settings.notifications.testSound": "Tester", "settings.experimental.share.title": "Mode de partage", "settings.experimental.share.description": "Comportement du partage de session", "settings.experimental.share.manual": "Manuel", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/it.ts b/packages/kilo-vscode/webview-ui/src/i18n/it.ts index cd3cb99474..34e43c9163 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/it.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/it.ts @@ -1099,8 +1099,13 @@ export const dict = { "settings.notifications.permSound.description": "Suono da riprodurre per le richieste di autorizzazione", "settings.notifications.errorSound.title": "Suono errore", "settings.notifications.errorSound.description": "Suono da riprodurre per gli errori", + "settings.notifications.playWhenFocused.title": "Riproduci suoni quando è in focus", + "settings.notifications.playWhenFocused.description": + "Consenti notifiche audio anche quando la finestra di VS Code è in primo piano", "settings.notifications.sound.default": "Predefinito", "settings.notifications.sound.none": "Nessuno", + "settings.notifications.sound.system": "Sistema", + "settings.notifications.testSound": "Test", "settings.experimental.share.title": "Modalità condivisione", "settings.experimental.share.description": "Come si comporta la condivisione sessione", "settings.experimental.share.manual": "Manuale", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts index cd18525a7c..8c3e1a7171 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts @@ -1241,6 +1241,9 @@ export const dict = { "settings.notifications.permissions.description": "権限リクエスト時に通知を表示", "settings.notifications.errors.title": "エラー", "settings.notifications.errors.description": "エラー発生時に通知を表示", + "settings.notifications.playWhenFocused.title": "フォーカス時にサウンドを再生", + "settings.notifications.playWhenFocused.description": + "VS Codeウィンドウにフォーカスがある場合でもサウンド通知を再生できるようにする", "settings.notifications.sounds": "サウンド", "settings.notifications.agentSound.title": "エージェント完了サウンド", "settings.notifications.agentSound.description": "エージェント完了時に再生するサウンド", @@ -1250,6 +1253,8 @@ export const dict = { "settings.notifications.errorSound.description": "エラー発生時に再生するサウンド", "settings.notifications.sound.default": "デフォルト", "settings.notifications.sound.none": "なし", + "settings.notifications.sound.system": "システム", + "settings.notifications.testSound": "テスト", "settings.experimental.share.title": "共有モード", "settings.experimental.share.description": "セッション共有の動作", "settings.experimental.share.manual": "手動", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts index 60229454ea..eb5441696d 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts @@ -1235,6 +1235,8 @@ export const dict = { "settings.notifications.permissions.description": "권한 요청 시 알림 표시", "settings.notifications.errors.title": "오류", "settings.notifications.errors.description": "오류 발생 시 알림 표시", + "settings.notifications.playWhenFocused.title": "포커스 시 소리 재생", + "settings.notifications.playWhenFocused.description": "VS Code 창이 포커스되어 있어도 소리 알림 재생", "settings.notifications.sounds": "소리", "settings.notifications.agentSound.title": "에이전트 완료 소리", "settings.notifications.agentSound.description": "에이전트 완료 시 재생할 소리", @@ -1244,6 +1246,8 @@ export const dict = { "settings.notifications.errorSound.description": "오류 발생 시 재생할 소리", "settings.notifications.sound.default": "기본값", "settings.notifications.sound.none": "없음", + "settings.notifications.sound.system": "시스템", + "settings.notifications.testSound": "테스트 소리", "settings.experimental.share.title": "공유 모드", "settings.experimental.share.description": "세션 공유 동작 방식", "settings.experimental.share.manual": "수동", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts index 2844f9892e..92281b1e1e 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts @@ -1247,6 +1247,9 @@ export const dict = { "settings.notifications.permissions.description": "Toon melding bij toestemmingsverzoeken", "settings.notifications.errors.title": "Fouten", "settings.notifications.errors.description": "Toon melding bij fouten", + "settings.notifications.playWhenFocused.title": "Speel geluid bij focus", + "settings.notifications.playWhenFocused.description": + "Sta geluidsmeldingen toe zelfs als VS Code-venster focus heeft", "settings.notifications.sounds": "Geluiden", "settings.notifications.agentSound.title": "Agent Voltooiingsgeluid", "settings.notifications.agentSound.description": "Geluid om af te spelen wanneer agent voltooit", @@ -1256,6 +1259,8 @@ export const dict = { "settings.notifications.errorSound.description": "Geluid om af te spelen bij fouten", "settings.notifications.sound.default": "Standaard", "settings.notifications.sound.none": "Geen", + "settings.notifications.sound.system": "Systeem", + "settings.notifications.testSound": "Test", "settings.experimental.share.title": "Deelmodus", "settings.experimental.share.description": "Hoe sessiedelen zich gedraagt", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/no.ts b/packages/kilo-vscode/webview-ui/src/i18n/no.ts index a89f24c634..36b000ac02 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/no.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/no.ts @@ -1212,6 +1212,8 @@ export const dict = { "settings.notifications.permissions.description": "Vis varsling ved tillatelsesforespørsler", "settings.notifications.errors.title": "Feil", "settings.notifications.errors.description": "Vis varsling ved feil", + "settings.notifications.playWhenFocused.title": "Spill lyd ved fokus", + "settings.notifications.playWhenFocused.description": "Tillat lydvarsler selv om VS Code-vinduet er i fokus", "settings.notifications.sounds": "Lyder", "settings.notifications.agentSound.title": "Agentfullføringslyd", "settings.notifications.agentSound.description": "Lyd ved agentfullføring", @@ -1221,6 +1223,8 @@ export const dict = { "settings.notifications.errorSound.description": "Lyd ved feil", "settings.notifications.sound.default": "Standard", "settings.notifications.sound.none": "Ingen", + "settings.notifications.sound.system": "System", + "settings.notifications.testSound": "Test", "settings.experimental.share.title": "Delingsmodus", "settings.experimental.share.description": "Oppførsel for sesjonsdeling", "settings.experimental.share.manual": "Manuell", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts index 2772485832..d28f708e72 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts @@ -1211,6 +1211,9 @@ export const dict = { "settings.notifications.permissions.description": "Pokaż powiadomienie przy żądaniach uprawnień", "settings.notifications.errors.title": "Błędy", "settings.notifications.errors.description": "Pokaż powiadomienie przy błędach", + "settings.notifications.playWhenFocused.title": "Odtwarzaj dźwięki przy fokusu", + "settings.notifications.playWhenFocused.description": + "Pozwól na dźwięki powiadomień, nawet gdy okno VS Code jest w fokusu", "settings.notifications.sounds": "Dźwięki", "settings.notifications.agentSound.title": "Dźwięk zakończenia agenta", "settings.notifications.agentSound.description": "Dźwięk odtwarzany po zakończeniu agenta", @@ -1220,6 +1223,8 @@ export const dict = { "settings.notifications.errorSound.description": "Dźwięk odtwarzany przy błędach", "settings.notifications.sound.default": "Domyślny", "settings.notifications.sound.none": "Brak", + "settings.notifications.sound.system": "System", + "settings.notifications.testSound": "Test", "settings.experimental.share.title": "Tryb udostępniania", "settings.experimental.share.description": "Zachowanie udostępniania sesji", "settings.experimental.share.manual": "Ręczny", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts index 08b05aa679..5d961761d3 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts @@ -1249,6 +1249,9 @@ export const dict = { "settings.notifications.permissions.description": "Показать уведомление при запросах разрешений", "settings.notifications.errors.title": "Ошибки", "settings.notifications.errors.description": "Показать уведомление при ошибках", + "settings.notifications.playWhenFocused.title": "Воспроизводить звуки при фокусе", + "settings.notifications.playWhenFocused.description": + "Разрешить звуковые уведомления, даже когда окно VS Code находится в фокусе", "settings.notifications.sounds": "Звуки", "settings.notifications.agentSound.title": "Звук завершения агента", "settings.notifications.agentSound.description": "Звук при завершении агента", @@ -1258,6 +1261,8 @@ export const dict = { "settings.notifications.errorSound.description": "Звук при ошибках", "settings.notifications.sound.default": "По умолчанию", "settings.notifications.sound.none": "Нет", + "settings.notifications.sound.system": "Система", + "settings.notifications.testSound": "Тест", "settings.experimental.share.title": "Режим обмена", "settings.experimental.share.description": "Поведение обмена сессиями", "settings.experimental.share.manual": "Вручную", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/th.ts b/packages/kilo-vscode/webview-ui/src/i18n/th.ts index e1771e16e2..a219db371d 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/th.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/th.ts @@ -1232,6 +1232,8 @@ export const dict = { "settings.notifications.permissions.description": "แสดงการแจ้งเตือนเมื่อมีคำขออนุญาต", "settings.notifications.errors.title": "ข้อผิดพลาด", "settings.notifications.errors.description": "แสดงการแจ้งเตือนเมื่อเกิดข้อผิดพลาด", + "settings.notifications.playWhenFocused.title": "เล่นเสียงเมื่อโฟกัส", + "settings.notifications.playWhenFocused.description": "อนุญาตให้แจ้งเตือนด้วยเสียงแม้ว่าหน้าต่าง VS Code อยู่ในโฟกัส", "settings.notifications.sounds": "เสียง", "settings.notifications.agentSound.title": "เสียงเอเจนต์เสร็จสิ้น", "settings.notifications.agentSound.description": "เสียงเมื่อเอเจนต์ทำงานเสร็จ", @@ -1241,6 +1243,8 @@ export const dict = { "settings.notifications.errorSound.description": "เสียงเมื่อเกิดข้อผิดพลาด", "settings.notifications.sound.default": "ค่าเริ่มต้น", "settings.notifications.sound.none": "ไม่มี", + "settings.notifications.sound.system": "ระบบ", + "settings.notifications.testSound": "ทดสอบ", "settings.experimental.share.title": "โหมดแชร์", "settings.experimental.share.description": "พฤติกรรมการแชร์เซสชัน", "settings.experimental.share.manual": "ด้วยตนเอง", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts index de81971535..41b7947e3c 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts @@ -1240,6 +1240,8 @@ export const dict = { "settings.notifications.permissions.description": "İzin isteklerinde bildirim göster", "settings.notifications.errors.title": "Hatalar", "settings.notifications.errors.description": "Hata oluştuğunda bildirim göster", + "settings.notifications.playWhenFocused.title": "Odaklandığında Sesleri Çal", + "settings.notifications.playWhenFocused.description": "VS Code penceresi odaklıyken bile ses bildirimlerine izin ver", "settings.notifications.sounds": "Sesler", "settings.notifications.agentSound.title": "Ajan Tamamlanma Sesi", "settings.notifications.agentSound.description": "Ajan tamamlandığında çalınacak ses", @@ -1249,6 +1251,8 @@ export const dict = { "settings.notifications.errorSound.description": "Hata oluştuğunda çalınacak ses", "settings.notifications.sound.default": "Varsayılan", "settings.notifications.sound.none": "Yok", + "settings.notifications.sound.system": "Sistem", + "settings.notifications.testSound": "Test", "settings.experimental.share.title": "Paylaşım Modu", "settings.experimental.share.description": "Oturum paylaşımının nasıl davranacağı", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts index a7d87d2683..2a2b4f609d 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts @@ -1240,6 +1240,9 @@ export const dict = { "settings.notifications.permissions.description": "Показувати сповіщення при запитах дозволів", "settings.notifications.errors.title": "Помилки", "settings.notifications.errors.description": "Показувати сповіщення при виникненні помилок", + "settings.notifications.playWhenFocused.title": "Відтворювати звуки при фокусі", + "settings.notifications.playWhenFocused.description": + "Дозволяти звукові сповіщення, навіть коли вікно VS Code знаходиться на фокусі", "settings.notifications.sounds": "Звуки", "settings.notifications.agentSound.title": "Звук завершення агента", "settings.notifications.agentSound.description": "Звук, що відтворюється після завершення агента", @@ -1249,6 +1252,8 @@ export const dict = { "settings.notifications.errorSound.description": "Звук, що відтворюється при виникненні помилок", "settings.notifications.sound.default": "За замовчуванням", "settings.notifications.sound.none": "Немає", + "settings.notifications.sound.system": "Система", + "settings.notifications.testSound": "Тест", "settings.experimental.share.title": "Режим публікації", "settings.experimental.share.description": "Як поводиться публікація сесій", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts index 235bdedf08..288c267689 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts @@ -1214,6 +1214,8 @@ export const dict = { "settings.notifications.permissions.description": "权限请求时显示通知", "settings.notifications.errors.title": "错误", "settings.notifications.errors.description": "发生错误时显示通知", + "settings.notifications.playWhenFocused.title": "聚焦时播放声音", + "settings.notifications.playWhenFocused.description": "即使 VS Code 窗口处于焦点状态也播放声音通知", "settings.notifications.sounds": "声音", "settings.notifications.agentSound.title": "智能体完成提示音", "settings.notifications.agentSound.description": "智能体完成时播放的声音", @@ -1223,6 +1225,8 @@ export const dict = { "settings.notifications.errorSound.description": "发生错误时播放的声音", "settings.notifications.sound.default": "默认", "settings.notifications.sound.none": "无", + "settings.notifications.sound.system": "系统", + "settings.notifications.testSound": "测试", "settings.experimental.share.title": "分享模式", "settings.experimental.share.description": "会话分享行为", "settings.experimental.share.manual": "手动", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts index ce876c5c60..78deacc622 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts @@ -1182,6 +1182,8 @@ export const dict = { "settings.notifications.permissions.description": "權限請求時顯示通知", "settings.notifications.errors.title": "錯誤", "settings.notifications.errors.description": "發生錯誤時顯示通知", + "settings.notifications.playWhenFocused.title": "聚焦時播放聲音", + "settings.notifications.playWhenFocused.description": "即使 VS Code 視窗聚焦也播放聲音通知", "settings.notifications.sounds": "聲音", "settings.notifications.agentSound.title": "Agent 完成提示音", "settings.notifications.agentSound.description": "Agent 完成時播放的聲音", @@ -1191,6 +1193,8 @@ export const dict = { "settings.notifications.errorSound.description": "發生錯誤時播放的聲音", "settings.notifications.sound.default": "預設", "settings.notifications.sound.none": "無", + "settings.notifications.sound.system": "系統", + "settings.notifications.testSound": "測試", "settings.experimental.share.title": "分享模式", "settings.experimental.share.description": "工作階段分享行為", "settings.experimental.share.manual": "手動", diff --git a/packages/kilo-vscode/webview-ui/src/types/messages/extension-messages.ts b/packages/kilo-vscode/webview-ui/src/types/messages/extension-messages.ts index 4524f278df..8043b71ab4 100644 --- a/packages/kilo-vscode/webview-ui/src/types/messages/extension-messages.ts +++ b/packages/kilo-vscode/webview-ui/src/types/messages/extension-messages.ts @@ -489,6 +489,7 @@ export interface NotificationSettingsLoadedMessage { notifyAgent: boolean notifyPermissions: boolean notifyErrors: boolean + playWhenFocused: boolean soundAgent: string soundPermissions: string soundErrors: string diff --git a/packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts b/packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts index f0c0f315c0..78467d68a8 100644 --- a/packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts +++ b/packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts @@ -433,6 +433,12 @@ export interface RequestNotificationSettingsMessage { type: "requestNotificationSettings" } +export interface TestNotificationMessage { + type: "testNotification" + settingType: "agent" | "permissions" | "errors" + sound: string +} + export interface ResetAllSettingsRequest { type: "resetAllSettings" } @@ -1133,6 +1139,7 @@ export type WebviewMessage = | UpdateConfigMessage | OpenSettingsTabRequest | RequestNotificationSettingsMessage + | TestNotificationMessage | ResetAllSettingsRequest | SettingsTabChangedMessage | SyncSessionRequest From 91620677432f1f1ab1bb39ca6adee51318c501b3 Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 11 Jun 2026 10:22:21 +0200 Subject: [PATCH 015/109] fix(vscode): suppress focused session sounds --- packages/kilo-vscode/src/KiloProvider.ts | 1 + .../unit/kilo-provider-load-messages.test.ts | 21 +++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/packages/kilo-vscode/src/KiloProvider.ts b/packages/kilo-vscode/src/KiloProvider.ts index 82b13619b2..863a1cc5cb 100644 --- a/packages/kilo-vscode/src/KiloProvider.ts +++ b/packages/kilo-vscode/src/KiloProvider.ts @@ -2440,6 +2440,7 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper this.stopCurrentSessionProcesses(session.id) this.setCurrentSession(session) this.contextSessionID = session.id + this.focusSession(session.id) this.trackDirectory(session.id, dir) this.trackedSessionIds.add(session.id) this.postMessage({ diff --git a/packages/kilo-vscode/tests/unit/kilo-provider-load-messages.test.ts b/packages/kilo-vscode/tests/unit/kilo-provider-load-messages.test.ts index a63808d556..9eefca637a 100644 --- a/packages/kilo-vscode/tests/unit/kilo-provider-load-messages.test.ts +++ b/packages/kilo-vscode/tests/unit/kilo-provider-load-messages.test.ts @@ -43,6 +43,7 @@ function createClient(options?: { deleteDeferred?: Deferred sessionData?: unknown sessionGet?: (params: { sessionID: string; directory?: string }) => Promise<{ data: unknown }> + sessionCreate?: () => Promise<{ data: unknown }> }) { const calls: { before?: string; limit?: number }[] = [] const stopped: { sessionID: string; directory?: string }[] = [] @@ -51,6 +52,7 @@ function createClient(options?: { stopped, session: { list: async () => ({ data: [] }), + create: async () => options?.sessionCreate?.() ?? { data: null }, get: async (params: { sessionID: string; directory?: string }) => { if (options?.sessionGet) return options.sessionGet(params) return { data: options?.sessionData ?? null } @@ -84,7 +86,9 @@ function createClient(options?: { } function createConnection(client: ReturnType) { + const focused: string[] = [] return { + focused, connect: async () => {}, getClient: () => client, onEventFiltered: () => () => undefined, @@ -103,7 +107,7 @@ function createConnection(client: ReturnType) { recordMessageSessionId: () => undefined, notifyNotificationDismissed: () => undefined, pruneSession: () => undefined, - registerFocused: () => undefined, + registerFocused: (_key: string, id: string) => focused.push(id), unregisterFocused: () => undefined, } } @@ -119,6 +123,7 @@ type ProviderInternals = { handleEvent: (event: unknown) => void handleLoadMessages: (sid: string, opts?: { mode?: string; before?: string; limit?: number }) => Promise handleDeleteSession: (sid: string) => Promise + resolveSession: () => Promise<{ sid: string; dir: string } | undefined> } function makeProvider(client: ReturnType) { @@ -132,9 +137,21 @@ function makeProvider(client: ReturnType) { sent.push(message) }, } - return { provider, internal, sent } + return { provider, internal, sent, focused: connection.focused } } +describe("KiloProvider session focus", () => { + it("registers a newly created session as focused", async () => { + const session = { id: "s-new", directory: "/repo", time: { created: 1, updated: 1 } } + const client = createClient({ sessionCreate: async () => ({ data: session }) }) + const { internal, focused } = makeProvider(client) + + await internal.resolveSession() + + expect(focused).toContain("s-new") + }) +}) + describe("KiloProvider.handleLoadMessages / focus mode freshness", () => { it("stops background processes for the previous session when switching sessions", async () => { const client = createClient({ From d80c99b4ed002fa2b7a59a6ce066df2aedd30e0c Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 11 Jun 2026 11:53:40 +0200 Subject: [PATCH 016/109] fix(vscode): make notifications explicit opt-ins --- .changeset/notify-background-sessions.md | 2 +- packages/kilo-vscode/package.json | 32 +++-- packages/kilo-vscode/src/KiloProvider.ts | 9 +- .../src/services/attention/service.ts | 5 +- .../src/services/attention/sound.ts | 19 +-- .../kilo-vscode/tests/unit/attention.test.ts | 27 +++++ .../components/settings/NotificationsTab.tsx | 109 +++++++++++++----- .../kilo-vscode/webview-ui/src/i18n/ar.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/br.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/bs.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/da.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/de.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/en.ts | 14 ++- .../kilo-vscode/webview-ui/src/i18n/es.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/fr.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/it.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/ja.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/ko.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/nl.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/no.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/pl.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/ru.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/th.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/tr.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/uk.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/zh.ts | 3 +- .../kilo-vscode/webview-ui/src/i18n/zht.ts | 3 +- .../src/types/messages/extension-messages.ts | 3 + 28 files changed, 200 insertions(+), 77 deletions(-) diff --git a/.changeset/notify-background-sessions.md b/.changeset/notify-background-sessions.md index b8779a6591..cb975adacd 100644 --- a/.changeset/notify-background-sessions.md +++ b/.changeset/notify-background-sessions.md @@ -2,4 +2,4 @@ "kilo-code": minor --- -Notify when sessions finish, error, or need input across the sidebar, editor tabs, and Agent Manager, with configurable system or bundled attention sounds. +Offer opt-in notifications and configurable attention sounds when sessions finish, error, or need input across the sidebar, editor tabs, and Agent Manager. diff --git a/packages/kilo-vscode/package.json b/packages/kilo-vscode/package.json index 8e1cfc8fe4..6cf1304811 100644 --- a/packages/kilo-vscode/package.json +++ b/packages/kilo-vscode/package.json @@ -944,23 +944,38 @@ }, "kilo-code.new.notifications.agent": { "type": "boolean", - "default": true, - "description": "Show a notification when an agent completes a task" + "default": false, + "description": "Show a notification when an agent completes while VS Code is unfocused" }, "kilo-code.new.notifications.permissions": { "type": "boolean", - "default": true, - "description": "Show a notification when a permission or question needs input" + "default": false, + "description": "Show a notification when a permission or question needs input while VS Code is unfocused" }, "kilo-code.new.notifications.errors": { "type": "boolean", - "default": true, - "description": "Show a notification when a session errors" + "default": false, + "description": "Show a notification when a session errors while VS Code is unfocused" + }, + "kilo-code.new.sounds.agentEnabled": { + "type": "boolean", + "default": false, + "description": "Play a sound when an agent completes a task" + }, + "kilo-code.new.sounds.permissionsEnabled": { + "type": "boolean", + "default": false, + "description": "Play a sound when a permission or question needs input" + }, + "kilo-code.new.sounds.errorsEnabled": { + "type": "boolean", + "default": false, + "description": "Play a sound when a session errors" }, "kilo-code.new.sounds.playWhenFocused": { "type": "boolean", "default": false, - "description": "Play attention sounds when the affected session is focused" + "description": "Also play sound notifications for the session currently visible in VS Code instead of only background sessions" }, "kilo-code.new.sounds.agent": { "type": "string", @@ -968,7 +983,6 @@ "enum": [ "system", "default", - "none", "alert-01", "alert-02", "alert-03", @@ -1023,7 +1037,6 @@ "enum": [ "system", "default", - "none", "alert-01", "alert-02", "alert-03", @@ -1078,7 +1091,6 @@ "enum": [ "system", "default", - "none", "alert-01", "alert-02", "alert-03", diff --git a/packages/kilo-vscode/src/KiloProvider.ts b/packages/kilo-vscode/src/KiloProvider.ts index 863a1cc5cb..9211df5d5b 100644 --- a/packages/kilo-vscode/src/KiloProvider.ts +++ b/packages/kilo-vscode/src/KiloProvider.ts @@ -2316,10 +2316,13 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper this.postMessage({ type: "notificationSettingsLoaded", settings: { - notifyAgent: notifications.get("agent", true), - notifyPermissions: notifications.get("permissions", true), - notifyErrors: notifications.get("errors", true), + notifyAgent: notifications.get("agent", false), + notifyPermissions: notifications.get("permissions", false), + notifyErrors: notifications.get("errors", false), playWhenFocused: sounds.get("playWhenFocused", false), + soundAgentEnabled: sounds.get("agentEnabled", false), + soundPermissionsEnabled: sounds.get("permissionsEnabled", false), + soundErrorsEnabled: sounds.get("errorsEnabled", false), soundAgent: sounds.get("agent", "system"), soundPermissions: sounds.get("permissions", "system"), soundErrors: sounds.get("errors", "system"), diff --git a/packages/kilo-vscode/src/services/attention/service.ts b/packages/kilo-vscode/src/services/attention/service.ts index 86ddc119b7..312909d790 100644 --- a/packages/kilo-vscode/src/services/attention/service.ts +++ b/packages/kilo-vscode/src/services/attention/service.ts @@ -69,8 +69,8 @@ export class AttentionService implements vscode.Disposable { appFocused: this.appFocused, sessionFocused: this.connection.isSessionFocused(notice.sessionID), subagent: notice.subagent, - notifications: notifications.get(key, true), - sound: id !== undefined, + notifications: notifications.get(key, false), + sound: sounds.get(`${key}Enabled`, false) && id !== undefined, playWhenFocused: sounds.get("playWhenFocused", false), }) @@ -78,6 +78,7 @@ export class AttentionService implements vscode.Disposable { if (!result.notification) return const message = `${clean(notice.title)}: ${notice.message}` + console.debug("[Kilo New] attention notification shown", { kind: notice.kind, sessionID: notice.sessionID }) if (notice.kind === "error") { void vscode.window.showErrorMessage(message) return diff --git a/packages/kilo-vscode/src/services/attention/sound.ts b/packages/kilo-vscode/src/services/attention/sound.ts index c6c2661fb1..e0294bb1b3 100644 --- a/packages/kilo-vscode/src/services/attention/sound.ts +++ b/packages/kilo-vscode/src/services/attention/sound.ts @@ -140,14 +140,19 @@ function fileCommands(file: string): Array<{ cmd: string; args: string[]; env?: } async function perform(id: SoundID, dir: string) { - if (id === "system") return run(systemCommands()) - const file = path.resolve(dir, `${id}.wav`) - if (!file.startsWith(`${path.resolve(dir)}${path.sep}`)) return false - if (!fs.existsSync(file)) { - console.warn("[Kilo New] notification sound is missing", { file }) - return false + const play = async () => { + if (id === "system") return run(systemCommands()) + const file = path.resolve(dir, `${id}.wav`) + if (!file.startsWith(`${path.resolve(dir)}${path.sep}`)) return false + if (!fs.existsSync(file)) { + console.warn("[Kilo New] notification sound is missing", { file }) + return false + } + return run(fileCommands(file)) } - return run(fileCommands(file)) + const ok = await play() + if (ok) console.debug("[Kilo New] notification sound played", { id }) + return ok } export async function playSound(id: SoundID, dir = root) { diff --git a/packages/kilo-vscode/tests/unit/attention.test.ts b/packages/kilo-vscode/tests/unit/attention.test.ts index 31f01c5fec..f201526e1a 100644 --- a/packages/kilo-vscode/tests/unit/attention.test.ts +++ b/packages/kilo-vscode/tests/unit/attention.test.ts @@ -145,6 +145,33 @@ describe("delivery", () => { playWhenFocused: false, }), ).toEqual({ notification: false, sound: true }) + expect( + delivery({ + appFocused: false, + sessionFocused: false, + subagent: false, + notifications: true, + sound: false, + playWhenFocused: true, + }), + ).toEqual({ notification: true, sound: false }) + }) +}) + +describe("notification defaults", () => { + it("keeps visual and sound notifications opt-in", async () => { + const manifest = (await Bun.file(new URL("../../package.json", import.meta.url)).json()) as { + contributes: { configuration: { properties: Record } } + } + const properties = manifest.contributes.configuration.properties + + expect(properties["kilo-code.new.notifications.agent"]?.default).toBe(false) + expect(properties["kilo-code.new.notifications.permissions"]?.default).toBe(false) + expect(properties["kilo-code.new.notifications.errors"]?.default).toBe(false) + expect(properties["kilo-code.new.sounds.agentEnabled"]?.default).toBe(false) + expect(properties["kilo-code.new.sounds.permissionsEnabled"]?.default).toBe(false) + expect(properties["kilo-code.new.sounds.errorsEnabled"]?.default).toBe(false) + expect(properties["kilo-code.new.sounds.agent"]?.enum).not.toContain("none") }) }) diff --git a/packages/kilo-vscode/webview-ui/src/components/settings/NotificationsTab.tsx b/packages/kilo-vscode/webview-ui/src/components/settings/NotificationsTab.tsx index 6eff48bbd5..a1f9fa7bbe 100644 --- a/packages/kilo-vscode/webview-ui/src/components/settings/NotificationsTab.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/settings/NotificationsTab.tsx @@ -1,4 +1,4 @@ -import { Component, createSignal, onCleanup } from "solid-js" +import { Component, Show, createSignal, onCleanup } from "solid-js" import { Button } from "@kilocode/kilo-ui/button" import { Switch } from "@kilocode/kilo-ui/switch" import { Select } from "@kilocode/kilo-ui/select" @@ -24,7 +24,6 @@ const groups = [ const SOUND_OPTIONS: SoundOption[] = [ { value: "system", labelKey: "settings.notifications.sound.system" }, { value: "default", labelKey: "settings.notifications.sound.default" }, - { value: "none", labelKey: "settings.notifications.sound.none" }, ...groups.flatMap((group) => Array.from({ length: group.count }, (_, index) => { const suffix = String(index + 1).padStart(2, "0") @@ -40,10 +39,13 @@ const NotificationsTab: Component = () => { const vscode = useVSCode() const language = useLanguage() - const [agentNotify, setAgentNotify] = createSignal(true) - const [permNotify, setPermNotify] = createSignal(true) - const [errorNotify, setErrorNotify] = createSignal(true) + const [agentNotify, setAgentNotify] = createSignal(false) + const [permNotify, setPermNotify] = createSignal(false) + const [errorNotify, setErrorNotify] = createSignal(false) const [playWhenFocused, setPlayWhenFocused] = createSignal(false) + const [agentSoundEnabled, setAgentSoundEnabled] = createSignal(false) + const [permSoundEnabled, setPermSoundEnabled] = createSignal(false) + const [errorSoundEnabled, setErrorSoundEnabled] = createSignal(false) const [agentSound, setAgentSound] = createSignal("system") const [permSound, setPermSound] = createSignal("system") const [errorSound, setErrorSound] = createSignal("system") @@ -55,9 +57,16 @@ const NotificationsTab: Component = () => { setPermNotify(settings.notifyPermissions) setErrorNotify(settings.notifyErrors) setPlayWhenFocused(settings.playWhenFocused) - setAgentSound(settings.soundAgent) - setPermSound(settings.soundPermissions) - setErrorSound(settings.soundErrors) + setAgentSoundEnabled(settings.soundAgentEnabled) + setPermSoundEnabled(settings.soundPermissionsEnabled) + setErrorSoundEnabled(settings.soundErrorsEnabled) + setAgentSound(SOUND_OPTIONS.some((option) => option.value === settings.soundAgent) ? settings.soundAgent : "system") + setPermSound( + SOUND_OPTIONS.some((option) => option.value === settings.soundPermissions) ? settings.soundPermissions : "system", + ) + setErrorSound( + SOUND_OPTIONS.some((option) => option.value === settings.soundErrors) ? settings.soundErrors : "system", + ) }) onCleanup(unsubscribe) @@ -72,12 +81,26 @@ const NotificationsTab: Component = () => { } const picker = ( + enabled: () => boolean, + setEnabled: (value: boolean) => void, value: () => string, set: (value: string) => void, key: string, kind: "agent" | "permissions" | "errors", + label: string, ) => (
+ { + setEnabled(checked) + save(`sounds.${key}Enabled`, checked) + if (checked) save(`sounds.${key}`, value()) + }} + hideLabel + > + {label} + o.value === props.v.splitReasoning)} + value={(o) => String(o.value)} + label={(o) => props.t(o.labelKey)} + onSelect={(o) => props.onChangeSplitReasoning(o?.value)} + placeholder={props.t("provider.custom.models.variants.splitReasoning.placeholder")} + variant="secondary" + size="small" + triggerVariant="settings" + /> +
void onChangeVariantEnableThinking: (vi: number, val: EnableThinkingValue) => void onChangeVariantThinking: (vi: number, val: ThinkingTypeValue) => void + onChangeVariantSplitReasoning: (vi: number, val: SplitReasoningValue) => void onChangeVariantReasoningEffort: (vi: number, val: ReasoningEffortValue) => void onChangeVariantChatTemplateArgs: (vi: number, val: ChatTemplateArgsValue) => void } @@ -318,6 +354,7 @@ export function ModelCard(props: ModelCardProps) { onChangeName={(val) => props.onChangeVariantName(vi(), val)} onChangeEnableThinking={(val) => props.onChangeVariantEnableThinking(vi(), val)} onChangeThinking={(val) => props.onChangeVariantThinking(vi(), val)} + onChangeSplitReasoning={(val) => props.onChangeVariantSplitReasoning(vi(), val)} onChangeReasoningEffort={(val) => props.onChangeVariantReasoningEffort(vi(), val)} onChangeChatTemplateArgs={(val) => props.onChangeVariantChatTemplateArgs(vi(), val)} onRemove={() => props.onRemoveVariant(vi())} diff --git a/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderValidation.ts b/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderValidation.ts index 1438e70722..35ca1a6c7e 100644 --- a/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderValidation.ts +++ b/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderValidation.ts @@ -106,6 +106,7 @@ function serializeVariant(v: VariantEntry): [string, Record] { const cfg: Record = {} if (v.enableThinking !== undefined) cfg.enable_thinking = v.enableThinking if (v.thinking !== undefined) cfg.thinking = { type: v.thinking } + if (v.splitReasoning !== undefined) cfg.reasoning_split = v.splitReasoning if (v.reasoningEffort !== undefined) cfg.reasoningEffort = v.reasoningEffort if (v.chatTemplateArgs !== undefined) cfg.chat_template_args = { enable_thinking: v.chatTemplateArgs } return [v.name.trim(), cfg] diff --git a/packages/kilo-vscode/webview-ui/src/i18n/en.ts b/packages/kilo-vscode/webview-ui/src/i18n/en.ts index 86b8aa7893..b329c8e0fc 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/en.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/en.ts @@ -837,6 +837,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "Enable thinking via chat template args (e.g. Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", From ef3ad342fcdc3755cbad02eaa4ecdc97100f0bf0 Mon Sep 17 00:00:00 2001 From: chrarnoldus <12196001+chrarnoldus@users.noreply.github.com> Date: Mon, 15 Jun 2026 09:25:44 +0000 Subject: [PATCH 044/109] feat(vscode): select custom provider API Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> --- .changeset/calm-models-reason.md | 2 +- packages/kilo-vscode/src/provider-actions.ts | 4 +- .../kilo-vscode/src/shared/custom-provider.ts | 23 ++++++---- .../kilo-vscode/src/shared/provider-model.ts | 12 +++++- .../custom-provider-dialog-validate.test.ts | 8 ++++ .../tests/unit/custom-provider.test.ts | 33 +++++++++++++-- .../settings/CustomProviderDialog.tsx | 42 ++++++++++++++++++- .../settings/CustomProviderModelCard.tsx | 6 +-- .../settings/CustomProviderValidation.ts | 7 ++-- .../src/components/settings/ProvidersTab.tsx | 6 +-- .../kilo-vscode/webview-ui/src/i18n/en.ts | 1 + 11 files changed, 118 insertions(+), 26 deletions(-) diff --git a/.changeset/calm-models-reason.md b/.changeset/calm-models-reason.md index 67c0806061..743068c124 100644 --- a/.changeset/calm-models-reason.md +++ b/.changeset/calm-models-reason.md @@ -2,4 +2,4 @@ "kilo-code": minor --- -Support adaptive thinking and split reasoning variants for custom OpenAI-compatible providers. +Support multiple provider APIs, adaptive thinking, and split reasoning variants for custom providers. diff --git a/packages/kilo-vscode/src/provider-actions.ts b/packages/kilo-vscode/src/provider-actions.ts index 32623f5a64..739ff339e9 100644 --- a/packages/kilo-vscode/src/provider-actions.ts +++ b/packages/kilo-vscode/src/provider-actions.ts @@ -9,7 +9,7 @@ import { sanitizeCustomProviderConfig, withCustomProviderDeletions, } from "./shared/custom-provider" -import { CUSTOM_PROVIDER_PACKAGE, KILO_AUTO, parseModelString } from "./shared/provider-model" +import { isCustomProviderPackage, KILO_AUTO, parseModelString } from "./shared/provider-model" import { configFeatures } from "./features" /** @@ -33,7 +33,7 @@ function record(value: unknown): value is Record { } function customProvider(config: unknown) { - return record(config) && config.npm === CUSTOM_PROVIDER_PACKAGE + return record(config) && isCustomProviderPackage(config.npm) } function same(a: unknown, b: unknown): boolean { diff --git a/packages/kilo-vscode/src/shared/custom-provider.ts b/packages/kilo-vscode/src/shared/custom-provider.ts index a359a84d70..a3aa335d14 100644 --- a/packages/kilo-vscode/src/shared/custom-provider.ts +++ b/packages/kilo-vscode/src/shared/custom-provider.ts @@ -1,5 +1,6 @@ import { z } from "zod" -import { CUSTOM_PROVIDER_PACKAGE, PROVIDER_ID_PATTERN } from "./provider-model" +import { CUSTOM_PROVIDER_PACKAGE, CUSTOM_PROVIDER_PACKAGES, PROVIDER_ID_PATTERN } from "./provider-model" +import type { CustomProviderPackage } from "./provider-model" const INVALID_PROVIDER_ID = "Invalid provider ID" const INVALID_ENV = "Invalid environment variable name" @@ -23,7 +24,7 @@ export type VariantConfig = z.infer export const CustomProviderConfigSchema = z .object({ - npm: z.string().optional(), + npm: z.enum(CUSTOM_PROVIDER_PACKAGES).default(CUSTOM_PROVIDER_PACKAGE), name: z.string().trim().min(1).max(200), env: z.array(EnvSchema).max(1).optional(), options: z @@ -54,7 +55,7 @@ export const CustomProviderConfigSchema = z .strict() export type SanitizedProviderConfig = { - npm: typeof CUSTOM_PROVIDER_PACKAGE + npm: CustomProviderPackage name: string env?: string[] options: { @@ -119,7 +120,7 @@ export function normalizeCustomProviderConfig( : undefined return { - npm: CUSTOM_PROVIDER_PACKAGE, + npm: config.npm, name: config.name.trim(), ...(config.env ? { env: config.env.map((item) => item.trim()) } : {}), options: { @@ -172,10 +173,11 @@ export function withCustomProviderDeletions(existing: unknown, next: SanitizedPr continue } const oldModel = oldModels[id] - const oldVariants = isRecord(oldModel) && isRecord(oldModel.variants) ? oldModel.variants : {} const newModel = patched[id] - if (!isRecord(newModel)) continue - const newVariants = isRecord(newModel.variants) ? newModel.variants : {} + if (!isRecord(oldModel) || !isRecord(newModel)) continue + const model = oldModel.reasoning === true && !("reasoning" in newModel) ? { ...newModel, reasoning: null } : newModel + const oldVariants = isRecord(oldModel.variants) ? oldModel.variants : {} + const newVariants = isRecord(model.variants) ? model.variants : {} const changes = Object.fromEntries( Object.entries(oldVariants).flatMap(([name, oldVariant]) => { if (!(name in newVariants)) return [[name, null]] @@ -187,8 +189,11 @@ export function withCustomProviderDeletions(existing: unknown, next: SanitizedPr return [[name, { ...newVariant, ...nulls }]] }), ) - if (Object.keys(changes).length === 0) continue - patched[id] = { ...newModel, variants: { ...newVariants, ...changes } } + if (Object.keys(changes).length === 0) { + patched[id] = model + continue + } + patched[id] = { ...model, variants: { ...newVariants, ...changes } } } return { ...next, models: patched as SanitizedProviderConfig["models"] } diff --git a/packages/kilo-vscode/src/shared/provider-model.ts b/packages/kilo-vscode/src/shared/provider-model.ts index cb7d6b9c34..bc36e31015 100644 --- a/packages/kilo-vscode/src/shared/provider-model.ts +++ b/packages/kilo-vscode/src/shared/provider-model.ts @@ -1,6 +1,12 @@ export const KILO_PROVIDER_ID = "kilo" export const KILO_AUTO = { providerID: KILO_PROVIDER_ID, modelID: "kilo-auto/free" } as const -export const CUSTOM_PROVIDER_PACKAGE = "@ai-sdk/openai-compatible" +export const CUSTOM_PROVIDER_PACKAGES = [ + "@ai-sdk/openai-compatible", + "@ai-sdk/openai", + "@ai-sdk/anthropic", +] as const +export type CustomProviderPackage = (typeof CUSTOM_PROVIDER_PACKAGES)[number] +export const CUSTOM_PROVIDER_PACKAGE: CustomProviderPackage = "@ai-sdk/openai-compatible" export const PROVIDER_ID_PATTERN = /^[a-z0-9][a-z0-9-_]*$/ export const PROVIDER_PRIORITY = [ @@ -13,6 +19,10 @@ export const PROVIDER_PRIORITY = [ "vercel", ] as const +export function isCustomProviderPackage(value: unknown): value is CustomProviderPackage { + return CUSTOM_PROVIDER_PACKAGES.includes(value as CustomProviderPackage) +} + export function parseModelString(raw: string | undefined | null) { if (!raw) return null const slash = raw.indexOf("/") diff --git a/packages/kilo-vscode/tests/unit/custom-provider-dialog-validate.test.ts b/packages/kilo-vscode/tests/unit/custom-provider-dialog-validate.test.ts index d44f19ece1..58ccb989a5 100644 --- a/packages/kilo-vscode/tests/unit/custom-provider-dialog-validate.test.ts +++ b/packages/kilo-vscode/tests/unit/custom-provider-dialog-validate.test.ts @@ -9,6 +9,7 @@ function base(): FormState { return { providerID: "my-provider", name: "My Provider", + npm: "@ai-sdk/openai-compatible", baseURL: "https://example.com/v1", apiKey: "", models: [{ id: "model-1", name: "Model One", reasoning: false, variants: [] }], @@ -28,6 +29,13 @@ function args(form: FormState) { } describe("validateCustomProvider – variant name validation", () => { + it("persists the selected provider package", () => { + const form = base() + form.npm = "@ai-sdk/openai" + + expect(validateCustomProvider(args(form)).result?.config.npm).toBe("@ai-sdk/openai") + }) + it("allows reconnecting a disabled provider id", () => { const form = base() const out = validateCustomProvider({ diff --git a/packages/kilo-vscode/tests/unit/custom-provider.test.ts b/packages/kilo-vscode/tests/unit/custom-provider.test.ts index 8df6620454..c39816c106 100644 --- a/packages/kilo-vscode/tests/unit/custom-provider.test.ts +++ b/packages/kilo-vscode/tests/unit/custom-provider.test.ts @@ -8,6 +8,16 @@ import { validateProviderID, withCustomProviderDeletions, } from "../../src/shared/custom-provider" +import { isCustomProviderPackage } from "../../src/shared/provider-model" + +describe("isCustomProviderPackage", () => { + it("recognizes supported custom provider packages", () => { + expect(isCustomProviderPackage("@ai-sdk/openai-compatible")).toBe(true) + expect(isCustomProviderPackage("@ai-sdk/openai")).toBe(true) + expect(isCustomProviderPackage("@ai-sdk/anthropic")).toBe(true) + expect(isCustomProviderPackage("malicious-package")).toBe(false) + }) +}) describe("validateProviderID", () => { it("accepts valid provider ids", () => { @@ -64,9 +74,9 @@ describe("resolveCustomProviderKey", () => { }) describe("sanitizeCustomProviderConfig", () => { - it("normalizes config and forces the approved package", () => { + it("normalizes config and preserves an approved package", () => { const result = sanitizeCustomProviderConfig({ - npm: "malicious-package", + npm: "@ai-sdk/anthropic", name: " My Provider ", env: [" MY_PROVIDER_KEY "], options: { @@ -83,7 +93,7 @@ describe("sanitizeCustomProviderConfig", () => { expect(result).toEqual({ value: { - npm: "@ai-sdk/openai-compatible", + npm: "@ai-sdk/anthropic", name: "My Provider", env: ["MY_PROVIDER_KEY"], options: { @@ -100,6 +110,17 @@ describe("sanitizeCustomProviderConfig", () => { }) }) + it("rejects unapproved packages", () => { + const result = sanitizeCustomProviderConfig({ + npm: "malicious-package", + name: "Bad Provider", + options: { baseURL: "https://example.com/v1" }, + models: { "model-1": { name: "Model One" } }, + }) + + expect("error" in result ? result.error : "").toContain("Invalid option") + }) + it("accepts supported thinking variant options", () => { const result = sanitizeCustomProviderConfig({ name: "Thinking Provider", @@ -195,6 +216,12 @@ describe("withCustomProviderDeletions", () => { expect(model.variants.low).toBeNull() }) + it("emits null when reasoning is disabled on a surviving model", () => { + const existing = { models: { keep: { name: "Keep", reasoning: true } } } + const result = withCustomProviderDeletions(existing, baseNext) + expect(result.models.keep).toEqual({ name: "Keep", reasoning: null }) + }) + it("emits null for options removed from a surviving variant", () => { const existing = { models: { diff --git a/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx b/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx index 0010925c9d..eace0b339b 100644 --- a/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx @@ -3,6 +3,7 @@ import { useDialog } from "@kilocode/kilo-ui/context/dialog" import { Dialog } from "@kilocode/kilo-ui/dialog" import { IconButton } from "@kilocode/kilo-ui/icon-button" import { ProviderIcon } from "@kilocode/kilo-ui/provider-icon" +import { Select } from "@kilocode/kilo-ui/select" import { Spinner } from "@kilocode/kilo-ui/spinner" import { TextField } from "@kilocode/kilo-ui/text-field" import { showToast } from "@kilocode/kilo-ui/toast" @@ -15,6 +16,11 @@ import { useVSCode } from "../../context/vscode" import type { ExtensionMessage, ProviderConfig } from "../../types/messages" import { createProviderAction } from "../../utils/provider-action" import { MASKED_CUSTOM_PROVIDER_KEY, resolveCustomProviderKey } from "../../../../src/shared/custom-provider" +import { + CUSTOM_PROVIDER_PACKAGE, + isCustomProviderPackage, + type CustomProviderPackage, +} from "../../../../src/shared/provider-model" import { ModelCard } from "./CustomProviderModelCard" import type { ChatTemplateArgsValue, @@ -29,6 +35,12 @@ import type { FormErrors, FormState, HeaderRow } from "./CustomProviderValidatio const DEBOUNCE_MS = 500 const SEARCH_DEBOUNCE_MS = 150 +const PACKAGE_OPTIONS: Array<{ value: CustomProviderPackage; label: string }> = [ + { value: "@ai-sdk/openai-compatible", label: "OpenAI Compatible" }, + { value: "@ai-sdk/openai", label: "OpenAI Responses" }, + { value: "@ai-sdk/anthropic", label: "Anthropic Messages" }, +] + /** Subsequence fuzzy match — "gpt4o" matches "gpt-4o-mini". */ function fuzzy(query: string, target: string) { const q = query.toLowerCase() @@ -109,9 +121,11 @@ const CustomProviderDialog = (props: CustomProviderDialogProps) => { ? provider.authStates()[props.existing.providerID] : undefined + const savedPackage = props.existing?.config?.npm const [form, setForm] = createStore({ providerID: props.existing?.providerID ?? "", name: props.existing?.name ?? "", + npm: isCustomProviderPackage(savedPackage) ? savedPackage : CUSTOM_PROVIDER_PACKAGE, baseURL: (props.existing?.config?.options as { baseURL?: string } | undefined)?.baseURL ?? "", apiKey: resolveCustomProviderKey(auth), models: initModels(), @@ -161,11 +175,13 @@ const CustomProviderDialog = (props: CustomProviderDialogProps) => { // SolidJS store proxies track at the property level — any store write // (including setForm("models", ...)) invalidates effects that read from // the same store, causing unwanted re-runs that wipe the model picker. + const [fetchPackage, setFetchPackage] = createSignal(form.npm) const [fetchURL, setFetchURL] = createSignal(form.baseURL) const [fetchKey, setFetchKey] = createSignal("") let fetchVersion = 0 createEffect(() => { + const npm = fetchPackage() const url = fetchURL() const key = fetchKey() void key // subscribe to key changes without using the value here @@ -176,7 +192,7 @@ const CustomProviderDialog = (props: CustomProviderDialogProps) => { setFetchStatus(undefined) setSearch("") - if (!/^https?:\/\//.test(url.trim())) return + if (npm === "@ai-sdk/anthropic" || !/^https?:\/\//.test(url.trim())) return fetchVersion++ const version = fetchVersion @@ -492,6 +508,30 @@ const CustomProviderDialog = (props: CustomProviderDialogProps) => { validationState={errors.name ? "invalid" : undefined} error={errors.name} /> +
+ + o.value === props.v.outputEffort)} + value={(o) => String(o.value)} + label={(o) => props.t(o.labelKey)} + onSelect={(o) => props.onChangeOutputEffort(o?.value)} + placeholder={props.t("provider.custom.models.variants.outputEffort.placeholder")} + variant="secondary" + size="small" + triggerVariant="settings" + /> +
void onChangeVariantSplitReasoning: (vi: number, val: SplitReasoningValue) => void onChangeVariantReasoningEffort: (vi: number, val: ReasoningEffortValue) => void + onChangeVariantOutputEffort: (vi: number, val: OutputEffortValue) => void onChangeVariantChatTemplateArgs: (vi: number, val: ChatTemplateArgsValue) => void } @@ -356,6 +394,7 @@ export function ModelCard(props: ModelCardProps) { onChangeThinking={(val) => props.onChangeVariantThinking(vi(), val)} onChangeSplitReasoning={(val) => props.onChangeVariantSplitReasoning(vi(), val)} onChangeReasoningEffort={(val) => props.onChangeVariantReasoningEffort(vi(), val)} + onChangeOutputEffort={(val) => props.onChangeVariantOutputEffort(vi(), val)} onChangeChatTemplateArgs={(val) => props.onChangeVariantChatTemplateArgs(vi(), val)} onRemove={() => props.onRemoveVariant(vi())} /> diff --git a/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderValidation.ts b/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderValidation.ts index c7db59ffee..82abe0ed08 100644 --- a/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderValidation.ts +++ b/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderValidation.ts @@ -109,6 +109,7 @@ function serializeVariant(v: VariantEntry): [string, Record] { if (v.thinking !== undefined) cfg.thinking = { type: v.thinking } if (v.splitReasoning !== undefined) cfg.reasoning_split = v.splitReasoning if (v.reasoningEffort !== undefined) cfg.reasoningEffort = v.reasoningEffort + if (v.outputEffort !== undefined) cfg.effort = v.outputEffort if (v.chatTemplateArgs !== undefined) cfg.chat_template_args = { enable_thinking: v.chatTemplateArgs } return [v.name.trim(), cfg] } diff --git a/packages/kilo-vscode/webview-ui/src/i18n/en.ts b/packages/kilo-vscode/webview-ui/src/i18n/en.ts index aab8d5b142..e56f2db1b6 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/en.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/en.ts @@ -856,6 +856,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "Remove model", "provider.custom.models.add": "Add model", "provider.custom.models.fetch": "Fetch models", From a10caf9195d3c4350378e40e82f1300f8c97a44e Mon Sep 17 00:00:00 2001 From: chrarnoldus <12196001+chrarnoldus@users.noreply.github.com> Date: Mon, 15 Jun 2026 11:32:04 +0000 Subject: [PATCH 051/109] fix(vscode): complete custom provider translations Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> --- .../kilo-vscode/tests/unit/custom-provider.test.ts | 3 ++- packages/kilo-vscode/webview-ui/src/i18n/ar.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/br.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/bs.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/da.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/de.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/es.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/fr.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/it.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/ja.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/ko.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/nl.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/no.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/pl.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/ru.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/th.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/tr.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/uk.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/zh.ts | 13 +++++++++++++ packages/kilo-vscode/webview-ui/src/i18n/zht.ts | 13 +++++++++++++ 20 files changed, 249 insertions(+), 1 deletion(-) diff --git a/packages/kilo-vscode/tests/unit/custom-provider.test.ts b/packages/kilo-vscode/tests/unit/custom-provider.test.ts index 66a820990a..b915337695 100644 --- a/packages/kilo-vscode/tests/unit/custom-provider.test.ts +++ b/packages/kilo-vscode/tests/unit/custom-provider.test.ts @@ -118,7 +118,7 @@ describe("sanitizeCustomProviderConfig", () => { models: { "model-1": { name: "Model One" } }, }) - expect("error" in result ? result.error : "").toContain("Invalid option") + expect("error" in result ? result.error : "").toContain("Invalid enum value") }) it("accepts supported thinking variant options", () => { @@ -152,6 +152,7 @@ describe("sanitizeCustomProviderConfig", () => { thinking: { thinking: { type: "adaptive" }, reasoning_split: true, + effort: "max", chat_template_args: { enable_thinking: true }, }, }, diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts index 8782325613..ad62402b59 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts @@ -837,6 +837,7 @@ export const dict = { "provider.custom.field.providerID.description": "أحرف صغيرة وأرقام وواصلات أو شرطات سفلية", "provider.custom.field.name.label": "الاسم المعروض", "provider.custom.field.name.placeholder": "مزود الذكاء الاصطناعي", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "عنوان URL الأساسي", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", "provider.custom.field.apiKey.label": "مفتاح API", @@ -862,6 +863,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "تفعيل التفكير عبر وسائط قالب الدردشة (مثل Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", "provider.custom.models.variants.chatTemplateArgs.true": "true", @@ -874,6 +880,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "إزالة النموذج", "provider.custom.models.add": "إضافة نموذج", "provider.custom.models.fetch": "جلب النماذج", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/br.ts b/packages/kilo-vscode/webview-ui/src/i18n/br.ts index 2da2912caa..7a9a6b5876 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/br.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/br.ts @@ -849,6 +849,7 @@ export const dict = { "provider.custom.field.providerID.description": "Letras minúsculas, números, hifens ou underscores", "provider.custom.field.name.label": "Nome de exibição", "provider.custom.field.name.placeholder": "Meu Provedor de IA", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "URL base", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", "provider.custom.field.apiKey.label": "Chave de API", @@ -874,6 +875,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "Ativar pensamento via args do template de chat (ex. Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", @@ -887,6 +893,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "Remover modelo", "provider.custom.models.add": "Adicionar modelo", "provider.custom.models.fetch": "Buscar modelos", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts index 79f9d982cf..94f2fd6cf9 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts @@ -890,6 +890,7 @@ export const dict = { "provider.custom.field.providerID.description": "Mala slova, brojevi, crtice ili donje crte", "provider.custom.field.name.label": "Naziv za prikaz", "provider.custom.field.name.placeholder": "Moj AI provajder", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "Osnovni URL", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", "provider.custom.field.apiKey.label": "API ključ", @@ -916,6 +917,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "Omogući razmišljanje preko argumenata chat predloška (npr. Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", @@ -929,6 +935,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "Ukloni model", "provider.custom.models.add": "Dodaj model", "provider.custom.models.fetch": "Preuzmi modele", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/da.ts b/packages/kilo-vscode/webview-ui/src/i18n/da.ts index d4390284ac..0874bd7426 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/da.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/da.ts @@ -884,6 +884,7 @@ export const dict = { "provider.custom.field.providerID.description": "Små bogstaver, tal, bindestreger eller understregninger", "provider.custom.field.name.label": "Visningsnavn", "provider.custom.field.name.placeholder": "Min AI-udbyder", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "Basis-URL", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", "provider.custom.field.apiKey.label": "API-nøgle", @@ -909,6 +910,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "Aktivér tænkning via chat-skabelonargs (f.eks. Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", @@ -922,6 +928,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "Fjern model", "provider.custom.models.add": "Tilføj model", "provider.custom.models.fetch": "Hent modeller", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/de.ts b/packages/kilo-vscode/webview-ui/src/i18n/de.ts index e4e5627d00..9fb03f72c9 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/de.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/de.ts @@ -896,6 +896,7 @@ export const dict = { "provider.custom.field.providerID.description": "Kleinbuchstaben, Zahlen, Bindestriche oder Unterstriche", "provider.custom.field.name.label": "Anzeigename", "provider.custom.field.name.placeholder": "Mein KI-Anbieter", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "Basis-URL", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", "provider.custom.field.apiKey.label": "API-Schlüssel", @@ -922,6 +923,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "Nachdenken über Chat-Vorlagenargumente aktivieren (z.B. Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", @@ -935,6 +941,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "Modell entfernen", "provider.custom.models.add": "Modell hinzufügen", "provider.custom.models.fetch": "Modelle abrufen", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/es.ts b/packages/kilo-vscode/webview-ui/src/i18n/es.ts index d756101b4a..7e4d2dd7d5 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/es.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/es.ts @@ -892,6 +892,7 @@ export const dict = { "provider.custom.field.providerID.description": "Letras minúsculas, números, guiones o guiones bajos", "provider.custom.field.name.label": "Nombre para mostrar", "provider.custom.field.name.placeholder": "Mi proveedor de IA", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "URL base", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", "provider.custom.field.apiKey.label": "Clave API", @@ -917,6 +918,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "Activar pensamiento mediante args de plantilla de chat (ej. Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", @@ -930,6 +936,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "Eliminar modelo", "provider.custom.models.add": "Añadir modelo", "provider.custom.models.fetch": "Obtener modelos", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts index 58059b7b5e..9731c99057 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts @@ -898,6 +898,7 @@ export const dict = { "provider.custom.field.providerID.description": "Lettres minuscules, chiffres, tirets ou underscores", "provider.custom.field.name.label": "Nom d'affichage", "provider.custom.field.name.placeholder": "Mon fournisseur IA", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "URL de base", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", "provider.custom.field.apiKey.label": "Clé API", @@ -924,6 +925,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "Activer la réflexion via les args du modèle de chat (ex. Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", @@ -937,6 +943,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "Supprimer le modèle", "provider.custom.models.add": "Ajouter un modèle", "provider.custom.models.fetch": "Récupérer les modèles", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/it.ts b/packages/kilo-vscode/webview-ui/src/i18n/it.ts index ba297b9c18..a8a617d1f3 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/it.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/it.ts @@ -708,6 +708,7 @@ export const dict = { "provider.custom.field.providerID.description": "Lettere minuscole, numeri, trattini o underscore", "provider.custom.field.name.label": "Nome visualizzato", "provider.custom.field.name.placeholder": "Il mio provider AI", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "URL base", "provider.custom.field.baseURL.placeholder": "https://api.mio-provider.com/v1", "provider.custom.field.apiKey.label": "API key", @@ -733,6 +734,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "Enable thinking via chat template args (e.g. Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", @@ -746,6 +752,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "Rimuovi modello", "provider.custom.models.add": "Aggiungi modello", "provider.custom.models.fetch": "Recupera modelli", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts index ca2ce756fe..1116ff351f 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts @@ -880,6 +880,7 @@ export const dict = { "provider.custom.field.providerID.description": "小文字、数字、ハイフン、アンダースコア", "provider.custom.field.name.label": "表示名", "provider.custom.field.name.placeholder": "マイAIプロバイダー", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "ベースURL", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", "provider.custom.field.apiKey.label": "APIキー", @@ -905,6 +906,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "チャットテンプレート引数で思考を有効化 (例: Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", "provider.custom.models.variants.chatTemplateArgs.true": "true", @@ -917,6 +923,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "モデルを削除", "provider.custom.models.add": "モデルを追加", "provider.custom.models.fetch": "モデルを取得", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts index d679e27bee..e4101eb0d4 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts @@ -842,6 +842,7 @@ export const dict = { "provider.custom.field.providerID.description": "소문자, 숫자, 하이픈 또는 밑줄", "provider.custom.field.name.label": "표시 이름", "provider.custom.field.name.placeholder": "내 AI 공급자", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "기본 URL", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", "provider.custom.field.apiKey.label": "API 키", @@ -867,6 +868,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "채팅 템플릿 인수로 사고 활성화 (예: Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", "provider.custom.models.variants.chatTemplateArgs.true": "true", @@ -879,6 +885,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "모델 제거", "provider.custom.models.add": "모델 추가", "provider.custom.models.fetch": "모델 가져오기", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts index 14a2cc42b8..6475eac883 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts @@ -846,6 +846,7 @@ export const dict = { "provider.custom.field.providerID.description": "Kleine letters, cijfers, koppeltekens of onderstrepingstekens", "provider.custom.field.name.label": "Weergavenaam", "provider.custom.field.name.placeholder": "Mijn AI Provider", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "Basis-URL", "provider.custom.field.baseURL.placeholder": "https://api.mijnprovider.com/v1", "provider.custom.field.apiKey.label": "API-sleutel", @@ -871,6 +872,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "Nadenken inschakelen via chat template args (bijv. Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", @@ -884,6 +890,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "Model verwijderen", "provider.custom.models.add": "Model toevoegen", "provider.custom.models.fetch": "Modellen ophalen", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/no.ts b/packages/kilo-vscode/webview-ui/src/i18n/no.ts index 3e1b704e95..221a7b93f5 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/no.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/no.ts @@ -851,6 +851,7 @@ export const dict = { "provider.custom.field.providerID.description": "Små bokstaver, tall, bindestreker eller understreker", "provider.custom.field.name.label": "Visningsnavn", "provider.custom.field.name.placeholder": "Min AI-leverandør", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "Basis-URL", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", "provider.custom.field.apiKey.label": "API-nøkkel", @@ -876,6 +877,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "Aktiver tenkning via chat-malargumenter (f.eks. Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", @@ -889,6 +895,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "Fjern modell", "provider.custom.models.add": "Legg til modell", "provider.custom.models.fetch": "Hent modeller", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts index 77b8f2160b..8ce89d36dc 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts @@ -849,6 +849,7 @@ export const dict = { "provider.custom.field.providerID.description": "Małe litery, cyfry, myślniki lub podkreślenia", "provider.custom.field.name.label": "Nazwa wyświetlana", "provider.custom.field.name.placeholder": "Mój dostawca AI", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "Bazowy URL", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", "provider.custom.field.apiKey.label": "Klucz API", @@ -875,6 +876,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "Włącz myślenie przez argumenty szablonu czatu (np. Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", @@ -888,6 +894,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "Usuń model", "provider.custom.models.add": "Dodaj model", "provider.custom.models.fetch": "Pobierz modele", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts index 61cc7872f0..0077280381 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts @@ -888,6 +888,7 @@ export const dict = { "provider.custom.field.providerID.description": "Строчные буквы, цифры, дефисы или подчёркивания", "provider.custom.field.name.label": "Отображаемое имя", "provider.custom.field.name.placeholder": "Мой AI-провайдер", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "Базовый URL", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", "provider.custom.field.apiKey.label": "API-ключ", @@ -914,6 +915,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "Включить размышление через аргументы шаблона чата (напр. Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", @@ -927,6 +933,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "Удалить модель", "provider.custom.models.add": "Добавить модель", "provider.custom.models.fetch": "Получить модели", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/th.ts b/packages/kilo-vscode/webview-ui/src/i18n/th.ts index bc3bcdd18e..3b6a3cd6ac 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/th.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/th.ts @@ -876,6 +876,7 @@ export const dict = { "provider.custom.field.providerID.description": "ตัวอักษรพิมพ์เล็ก ตัวเลข ขีดกลาง หรือขีดล่าง", "provider.custom.field.name.label": "ชื่อที่แสดง", "provider.custom.field.name.placeholder": "ผู้ให้บริการ AI ของฉัน", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "URL พื้นฐาน", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", "provider.custom.field.apiKey.label": "คีย์ API", @@ -901,6 +902,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "เปิดใช้งานการคิดผ่านอาร์กิวเมนต์เทมเพลตแชท (เช่น Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", @@ -914,6 +920,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "ลบโมเดล", "provider.custom.models.add": "เพิ่มโมเดล", "provider.custom.models.fetch": "ดึงโมเดล", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts index 0925c62031..8e6f4db8d7 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts @@ -844,6 +844,7 @@ export const dict = { "provider.custom.field.providerID.description": "Küçük harfler, rakamlar, tire veya alt çizgi", "provider.custom.field.name.label": "Görünen ad", "provider.custom.field.name.placeholder": "Yapay Zeka Sağlayıcım", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "Temel URL", "provider.custom.field.baseURL.placeholder": "https://api.saglayicim.com/v1", "provider.custom.field.apiKey.label": "API anahtarı", @@ -870,6 +871,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "Sohbet şablonu argümanları ile düşünmeyi etkinleştir (ör. Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", @@ -883,6 +889,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "Modeli kaldır", "provider.custom.models.add": "Model ekle", "provider.custom.models.fetch": "Modelleri getir", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts index 3ff24e78ca..cce99b0f62 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts @@ -845,6 +845,7 @@ export const dict = { "provider.custom.field.providerID.description": "Малі літери, цифри, дефіс або підкреслення", "provider.custom.field.name.label": "Відображувана назва", "provider.custom.field.name.placeholder": "Мій ШІ-провайдер", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "Базовий URL", "provider.custom.field.baseURL.placeholder": "https://api.miy-provyder.com/v1", "provider.custom.field.apiKey.label": "API-ключ", @@ -871,6 +872,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "Увімкнути мислення через аргументи шаблону чату (напр. Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", @@ -884,6 +890,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "Видалити модель", "provider.custom.models.add": "Додати модель", "provider.custom.models.fetch": "Отримати моделі", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts index 8470cde2a2..354414bfff 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts @@ -862,6 +862,7 @@ export const dict = { "provider.custom.field.providerID.description": "小写字母、数字、连字符或下划线", "provider.custom.field.name.label": "显示名称", "provider.custom.field.name.placeholder": "我的 AI 提供商", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "基础 URL", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", "provider.custom.field.apiKey.label": "API 密钥", @@ -887,6 +888,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "通过聊天模板参数启用思考(如 Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", "provider.custom.models.variants.chatTemplateArgs.true": "true", @@ -899,6 +905,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "移除模型", "provider.custom.models.add": "添加模型", "provider.custom.models.fetch": "获取模型", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts index edda8ac724..e4095d3b5e 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts @@ -830,6 +830,7 @@ export const dict = { "provider.custom.field.providerID.description": "小寫字母、數字、連字號或底線", "provider.custom.field.name.label": "顯示名稱", "provider.custom.field.name.placeholder": "我的 AI 提供商", + "provider.custom.field.package.label": "Provider API", "provider.custom.field.baseURL.label": "基礎 URL", "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1", "provider.custom.field.apiKey.label": "API 金鑰", @@ -855,6 +856,11 @@ export const dict = { "provider.custom.models.variants.thinking.placeholder": "thinking", "provider.custom.models.variants.thinking.enabled": "enabled", "provider.custom.models.variants.thinking.disabled": "disabled", + "provider.custom.models.variants.thinking.adaptive": "adaptive", + "provider.custom.models.variants.splitReasoning.label": "Split reasoning (required for e.g. MiniMax)", + "provider.custom.models.variants.splitReasoning.placeholder": "reasoning_split", + "provider.custom.models.variants.splitReasoning.true": "true", + "provider.custom.models.variants.splitReasoning.false": "false", "provider.custom.models.variants.chatTemplateArgs.label": "透過聊天範本參數啟用思考(如 Hugging Face)", "provider.custom.models.variants.chatTemplateArgs.placeholder": "chat_template_args", "provider.custom.models.variants.chatTemplateArgs.true": "true", @@ -867,6 +873,13 @@ export const dict = { "provider.custom.models.variants.reasoningEffort.medium": "medium", "provider.custom.models.variants.reasoningEffort.high": "high", "provider.custom.models.variants.reasoningEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.label": "Output effort (e.g. Anthropic)", + "provider.custom.models.variants.outputEffort.placeholder": "effort", + "provider.custom.models.variants.outputEffort.low": "low", + "provider.custom.models.variants.outputEffort.medium": "medium", + "provider.custom.models.variants.outputEffort.high": "high", + "provider.custom.models.variants.outputEffort.xhigh": "xhigh", + "provider.custom.models.variants.outputEffort.max": "max", "provider.custom.models.remove": "移除模型", "provider.custom.models.add": "新增模型", "provider.custom.models.fetch": "取得模型", From 239369a8e5bb9295e93847ebc48612c080fdab4b Mon Sep 17 00:00:00 2001 From: chrarnoldus <12196001+chrarnoldus@users.noreply.github.com> Date: Mon, 15 Jun 2026 11:45:29 +0000 Subject: [PATCH 052/109] refactor(vscode): simplify custom provider dialog Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> --- .../settings/CustomProviderDialog.tsx | 89 ++++++++++--------- 1 file changed, 46 insertions(+), 43 deletions(-) diff --git a/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx b/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx index 5078467f25..6572264599 100644 --- a/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx @@ -54,6 +54,50 @@ function fuzzy(query: string, target: string) { } type FetchedModel = { id: string; name: string } +type RawModel = { name?: string; reasoning?: boolean; variants?: Record> } + +function parseVariant([name, cfg]: [string, Record]): VariantEntry { + return { + name, + enableThinking: typeof cfg.enable_thinking === "boolean" ? cfg.enable_thinking : undefined, + thinking: + typeof cfg.thinking === "object" && cfg.thinking !== null + ? ((cfg.thinking as { type?: string }).type as ThinkingTypeValue) + : undefined, + splitReasoning: typeof cfg.reasoning_split === "boolean" ? cfg.reasoning_split : undefined, + reasoningEffort: + typeof cfg.reasoningEffort === "string" ? (cfg.reasoningEffort as ReasoningEffortValue) : undefined, + outputEffort: typeof cfg.effort === "string" ? (cfg.effort as OutputEffortValue) : undefined, + chatTemplateArgs: + typeof cfg.chat_template_args === "object" && cfg.chat_template_args !== null + ? ((cfg.chat_template_args as { enable_thinking?: boolean }).enable_thinking as ChatTemplateArgsValue) + : undefined, + } +} + +function initModels(cfg: ProviderConfig | undefined): ModelEntry[] { + if (!cfg?.models || typeof cfg.models !== "object") return [{ id: "", name: "", reasoning: false, variants: [] }] + const entries = Object.entries(cfg.models) + if (entries.length === 0) return [{ id: "", name: "", reasoning: false, variants: [] }] + return entries.map(([id, model]) => { + const raw = model as RawModel + return { + id, + name: raw.name ?? id, + reasoning: raw.reasoning ?? false, + variants: Object.entries(raw.variants ?? {}).map(parseVariant), + } + }) +} + +function initHeaders(cfg: ProviderConfig | undefined): HeaderRow[] { + const opts = cfg?.options as { headers?: Record } | undefined + const headers = opts?.headers + if (!headers || typeof headers !== "object") return [{ key: "", value: "" }] + const entries = Object.entries(headers) + if (entries.length === 0) return [{ key: "", value: "" }] + return entries.map(([key, value]) => ({ key, value })) +} export interface CustomProviderDialogProps { onBack?: () => void @@ -76,47 +120,6 @@ const CustomProviderDialog = (props: CustomProviderDialogProps) => { const editing = () => !!props.existing - function initModels(): ModelEntry[] { - const cfg = props.existing?.config - if (!cfg?.models || typeof cfg.models !== "object") return [{ id: "", name: "", reasoning: false, variants: [] }] - const entries = Object.entries(cfg.models) - if (entries.length === 0) return [{ id: "", name: "", reasoning: false, variants: [] }] - return entries.map(([id, m]) => { - const raw = m as { name?: string; reasoning?: boolean; variants?: Record> } - const variants: VariantEntry[] = Object.entries(raw?.variants ?? {}).map(([vname, vcfg]) => ({ - name: vname, - enableThinking: typeof vcfg.enable_thinking === "boolean" ? (vcfg.enable_thinking as boolean) : undefined, - thinking: - typeof vcfg.thinking === "object" && vcfg.thinking !== null - ? ((vcfg.thinking as { type?: string }).type as ThinkingTypeValue) - : undefined, - splitReasoning: typeof vcfg.reasoning_split === "boolean" ? vcfg.reasoning_split : undefined, - reasoningEffort: - typeof vcfg.reasoningEffort === "string" ? (vcfg.reasoningEffort as ReasoningEffortValue) : undefined, - outputEffort: typeof vcfg.effort === "string" ? (vcfg.effort as OutputEffortValue) : undefined, - chatTemplateArgs: - typeof vcfg.chat_template_args === "object" && vcfg.chat_template_args !== null - ? ((vcfg.chat_template_args as { enable_thinking?: boolean }).enable_thinking as ChatTemplateArgsValue) - : undefined, - })) - return { - id, - name: raw?.name ?? id, - reasoning: raw?.reasoning ?? false, - variants, - } - }) - } - - function initHeaders(): HeaderRow[] { - const opts = props.existing?.config?.options as { headers?: Record } | undefined - const headers = opts?.headers - if (!headers || typeof headers !== "object") return [{ key: "", value: "" }] - const entries = Object.entries(headers) - if (entries.length === 0) return [{ key: "", value: "" }] - return entries.map(([key, value]) => ({ key, value })) - } - const auth = props.existing?.config?.env?.length ? undefined : props.existing @@ -130,8 +133,8 @@ const CustomProviderDialog = (props: CustomProviderDialogProps) => { npm: isCustomProviderPackage(savedPackage) ? savedPackage : CUSTOM_PROVIDER_PACKAGE, baseURL: (props.existing?.config?.options as { baseURL?: string } | undefined)?.baseURL ?? "", apiKey: resolveCustomProviderKey(auth), - models: initModels(), - headers: initHeaders(), + models: initModels(props.existing?.config), + headers: initHeaders(props.existing?.config), saving: false, }) From 8f6a722895714e2318a578ea20b2beab15917789 Mon Sep 17 00:00:00 2001 From: chrarnoldus <12196001+chrarnoldus@users.noreply.github.com> Date: Mon, 15 Jun 2026 11:53:36 +0000 Subject: [PATCH 053/109] refactor(vscode): extract provider form initialization Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> --- .../settings/CustomProviderDialog.tsx | 52 +++++++++++-------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx b/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx index 6572264599..22a9967e91 100644 --- a/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx @@ -13,7 +13,7 @@ import { useConfig } from "../../context/config" import { useLanguage } from "../../context/language" import { useProvider } from "../../context/provider" import { useVSCode } from "../../context/vscode" -import type { ExtensionMessage, ProviderConfig } from "../../types/messages" +import type { ExtensionMessage, ProviderAuthState, ProviderConfig } from "../../types/messages" import { createProviderAction } from "../../utils/provider-action" import { MASKED_CUSTOM_PROVIDER_KEY, resolveCustomProviderKey } from "../../../../src/shared/custom-provider" import { @@ -99,14 +99,35 @@ function initHeaders(cfg: ProviderConfig | undefined): HeaderRow[] { return entries.map(([key, value]) => ({ key, value })) } +type ExistingProvider = { + providerID: string + name: string + config: ProviderConfig +} + +function resolveAuth(existing: ExistingProvider | undefined, states: Record) { + if (!existing || existing.config.env?.length) return + return states[existing.providerID] +} + +function initForm(existing: ExistingProvider | undefined, auth: ProviderAuthState | undefined): FormState { + const npm = existing?.config?.npm + return { + providerID: existing?.providerID ?? "", + name: existing?.name ?? "", + npm: isCustomProviderPackage(npm) ? npm : CUSTOM_PROVIDER_PACKAGE, + baseURL: (existing?.config?.options as { baseURL?: string } | undefined)?.baseURL ?? "", + apiKey: resolveCustomProviderKey(auth), + models: initModels(existing?.config), + headers: initHeaders(existing?.config), + saving: false, + } +} + export interface CustomProviderDialogProps { onBack?: () => void /** When set, the dialog opens in edit mode with pre-filled values. */ - existing?: { - providerID: string - name: string - config: ProviderConfig - } + existing?: ExistingProvider } const CustomProviderDialog = (props: CustomProviderDialogProps) => { @@ -120,23 +141,8 @@ const CustomProviderDialog = (props: CustomProviderDialogProps) => { const editing = () => !!props.existing - const auth = props.existing?.config?.env?.length - ? undefined - : props.existing - ? provider.authStates()[props.existing.providerID] - : undefined - - const savedPackage = props.existing?.config?.npm - const [form, setForm] = createStore({ - providerID: props.existing?.providerID ?? "", - name: props.existing?.name ?? "", - npm: isCustomProviderPackage(savedPackage) ? savedPackage : CUSTOM_PROVIDER_PACKAGE, - baseURL: (props.existing?.config?.options as { baseURL?: string } | undefined)?.baseURL ?? "", - apiKey: resolveCustomProviderKey(auth), - models: initModels(props.existing?.config), - headers: initHeaders(props.existing?.config), - saving: false, - }) + const auth = resolveAuth(props.existing, provider.authStates()) + const [form, setForm] = createStore(initForm(props.existing, auth)) const [errors, setErrors] = createStore({ providerID: undefined, From d22d773003628a4e90c9d6d65044e9f806780b21 Mon Sep 17 00:00:00 2001 From: chrarnoldus <12196001+chrarnoldus@users.noreply.github.com> Date: Mon, 15 Jun 2026 12:05:19 +0000 Subject: [PATCH 054/109] style(vscode): format custom provider settings Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com> --- packages/kilo-vscode/src/shared/provider-model.ts | 6 +----- .../src/components/settings/CustomProviderDialog.tsx | 4 +--- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/packages/kilo-vscode/src/shared/provider-model.ts b/packages/kilo-vscode/src/shared/provider-model.ts index bc36e31015..77c74f8ac2 100644 --- a/packages/kilo-vscode/src/shared/provider-model.ts +++ b/packages/kilo-vscode/src/shared/provider-model.ts @@ -1,10 +1,6 @@ export const KILO_PROVIDER_ID = "kilo" export const KILO_AUTO = { providerID: KILO_PROVIDER_ID, modelID: "kilo-auto/free" } as const -export const CUSTOM_PROVIDER_PACKAGES = [ - "@ai-sdk/openai-compatible", - "@ai-sdk/openai", - "@ai-sdk/anthropic", -] as const +export const CUSTOM_PROVIDER_PACKAGES = ["@ai-sdk/openai-compatible", "@ai-sdk/openai", "@ai-sdk/anthropic"] as const export type CustomProviderPackage = (typeof CUSTOM_PROVIDER_PACKAGES)[number] export const CUSTOM_PROVIDER_PACKAGE: CustomProviderPackage = "@ai-sdk/openai-compatible" export const PROVIDER_ID_PATTERN = /^[a-z0-9][a-z0-9-_]*$/ diff --git a/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx b/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx index 22a9967e91..c314e52269 100644 --- a/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/settings/CustomProviderDialog.tsx @@ -611,9 +611,7 @@ const CustomProviderDialog = (props: CustomProviderDialogProps) => { onChangeVariantReasoningEffort={(vi, val) => setForm("models", i(), "variants", vi, "reasoningEffort", val) } - onChangeVariantOutputEffort={(vi, val) => - setForm("models", i(), "variants", vi, "outputEffort", val) - } + onChangeVariantOutputEffort={(vi, val) => setForm("models", i(), "variants", vi, "outputEffort", val)} onChangeVariantChatTemplateArgs={(vi, val) => setForm("models", i(), "variants", vi, "chatTemplateArgs", val) } From a4b967662bb5f6618b51e6ea28b5d57f96e2b45e Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Mon, 15 Jun 2026 14:13:57 +0200 Subject: [PATCH 055/109] refactor(vscode): align sounds with opencode attention --- .changeset/notify-background-sessions.md | 2 +- bun.lock | 1 + packages/kilo-vscode/audio-wav/alert-01.wav | Bin 90190 -> 0 bytes packages/kilo-vscode/audio-wav/alert-02.wav | Bin 92238 -> 0 bytes packages/kilo-vscode/audio-wav/alert-03.wav | Bin 28750 -> 0 bytes packages/kilo-vscode/audio-wav/alert-04.wav | Bin 67662 -> 0 bytes packages/kilo-vscode/audio-wav/alert-05.wav | Bin 65614 -> 0 bytes packages/kilo-vscode/audio-wav/alert-06.wav | Bin 100430 -> 0 bytes packages/kilo-vscode/audio-wav/alert-07.wav | Bin 63566 -> 0 bytes packages/kilo-vscode/audio-wav/alert-08.wav | Bin 51278 -> 0 bytes packages/kilo-vscode/audio-wav/alert-09.wav | Bin 59470 -> 0 bytes packages/kilo-vscode/audio-wav/alert-10.wav | Bin 110670 -> 0 bytes packages/kilo-vscode/audio-wav/bip-bop-02.wav | Bin 57422 -> 0 bytes packages/kilo-vscode/audio-wav/bip-bop-04.wav | Bin 49230 -> 0 bytes packages/kilo-vscode/audio-wav/bip-bop-05.wav | Bin 32846 -> 0 bytes packages/kilo-vscode/audio-wav/bip-bop-06.wav | Bin 75854 -> 0 bytes packages/kilo-vscode/audio-wav/bip-bop-07.wav | Bin 41038 -> 0 bytes packages/kilo-vscode/audio-wav/bip-bop-08.wav | Bin 55374 -> 0 bytes packages/kilo-vscode/audio-wav/bip-bop-09.wav | Bin 151630 -> 0 bytes packages/kilo-vscode/audio-wav/bip-bop-10.wav | Bin 100430 -> 0 bytes packages/kilo-vscode/audio-wav/nope-01.wav | Bin 36942 -> 0 bytes packages/kilo-vscode/audio-wav/nope-02.wav | Bin 43086 -> 0 bytes packages/kilo-vscode/audio-wav/nope-04.wav | Bin 32846 -> 0 bytes packages/kilo-vscode/audio-wav/nope-05.wav | Bin 36942 -> 0 bytes packages/kilo-vscode/audio-wav/nope-06.wav | Bin 41038 -> 0 bytes packages/kilo-vscode/audio-wav/nope-07.wav | Bin 26702 -> 0 bytes packages/kilo-vscode/audio-wav/nope-08.wav | Bin 43086 -> 0 bytes packages/kilo-vscode/audio-wav/nope-09.wav | Bin 51278 -> 0 bytes packages/kilo-vscode/audio-wav/nope-10.wav | Bin 26702 -> 0 bytes packages/kilo-vscode/audio-wav/nope-11.wav | Bin 96334 -> 0 bytes packages/kilo-vscode/audio-wav/nope-12.wav | Bin 75854 -> 0 bytes .../kilo-vscode/audio-wav/staplebops-01.wav | Bin 32846 -> 0 bytes .../kilo-vscode/audio-wav/staplebops-02.wav | Bin 34894 -> 0 bytes .../kilo-vscode/audio-wav/staplebops-03.wav | Bin 55374 -> 0 bytes .../kilo-vscode/audio-wav/staplebops-04.wav | Bin 30798 -> 0 bytes .../kilo-vscode/audio-wav/staplebops-05.wav | Bin 22606 -> 0 bytes .../kilo-vscode/audio-wav/staplebops-07.wav | Bin 163918 -> 0 bytes packages/kilo-vscode/audio-wav/yup-02.wav | Bin 71758 -> 0 bytes packages/kilo-vscode/audio-wav/yup-03.wav | Bin 65614 -> 0 bytes packages/kilo-vscode/audio-wav/yup-04.wav | Bin 63566 -> 0 bytes packages/kilo-vscode/audio-wav/yup-05.wav | Bin 90190 -> 0 bytes packages/kilo-vscode/audio-wav/yup-06.wav | Bin 55374 -> 0 bytes packages/kilo-vscode/package.json | 177 +-------------- packages/kilo-vscode/src/KiloProvider.ts | 13 +- .../src/services/attention/attention.ts | 204 ------------------ .../src/services/attention/index.ts | 2 +- .../src/services/attention/service.ts | 132 +++++++++--- .../src/services/attention/sound.ts | 115 ++-------- .../kilo-vscode/tests/unit/attention.test.ts | 191 ++++++++-------- .../components/settings/NotificationsTab.tsx | 172 +++------------ .../src/components/settings/Settings.tsx | 2 +- .../kilo-vscode/webview-ui/src/i18n/ar.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/br.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/bs.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/da.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/de.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/en.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/es.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/fr.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/it.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/ja.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/ko.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/nl.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/no.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/pl.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/ru.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/th.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/tr.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/uk.ts | 14 +- .../kilo-vscode/webview-ui/src/i18n/zh.ts | 13 +- .../kilo-vscode/webview-ui/src/i18n/zht.ts | 13 +- .../src/types/messages/extension-messages.ts | 7 +- .../src/types/messages/webview-messages.ts | 2 - 73 files changed, 465 insertions(+), 833 deletions(-) delete mode 100644 packages/kilo-vscode/audio-wav/alert-01.wav delete mode 100644 packages/kilo-vscode/audio-wav/alert-02.wav delete mode 100644 packages/kilo-vscode/audio-wav/alert-03.wav delete mode 100644 packages/kilo-vscode/audio-wav/alert-04.wav delete mode 100644 packages/kilo-vscode/audio-wav/alert-05.wav delete mode 100644 packages/kilo-vscode/audio-wav/alert-06.wav delete mode 100644 packages/kilo-vscode/audio-wav/alert-07.wav delete mode 100644 packages/kilo-vscode/audio-wav/alert-08.wav delete mode 100644 packages/kilo-vscode/audio-wav/alert-09.wav delete mode 100644 packages/kilo-vscode/audio-wav/alert-10.wav delete mode 100644 packages/kilo-vscode/audio-wav/bip-bop-02.wav delete mode 100644 packages/kilo-vscode/audio-wav/bip-bop-04.wav delete mode 100644 packages/kilo-vscode/audio-wav/bip-bop-05.wav delete mode 100644 packages/kilo-vscode/audio-wav/bip-bop-06.wav delete mode 100644 packages/kilo-vscode/audio-wav/bip-bop-07.wav delete mode 100644 packages/kilo-vscode/audio-wav/bip-bop-08.wav delete mode 100644 packages/kilo-vscode/audio-wav/bip-bop-09.wav delete mode 100644 packages/kilo-vscode/audio-wav/bip-bop-10.wav delete mode 100644 packages/kilo-vscode/audio-wav/nope-01.wav delete mode 100644 packages/kilo-vscode/audio-wav/nope-02.wav delete mode 100644 packages/kilo-vscode/audio-wav/nope-04.wav delete mode 100644 packages/kilo-vscode/audio-wav/nope-05.wav delete mode 100644 packages/kilo-vscode/audio-wav/nope-06.wav delete mode 100644 packages/kilo-vscode/audio-wav/nope-07.wav delete mode 100644 packages/kilo-vscode/audio-wav/nope-08.wav delete mode 100644 packages/kilo-vscode/audio-wav/nope-09.wav delete mode 100644 packages/kilo-vscode/audio-wav/nope-10.wav delete mode 100644 packages/kilo-vscode/audio-wav/nope-11.wav delete mode 100644 packages/kilo-vscode/audio-wav/nope-12.wav delete mode 100644 packages/kilo-vscode/audio-wav/staplebops-01.wav delete mode 100644 packages/kilo-vscode/audio-wav/staplebops-02.wav delete mode 100644 packages/kilo-vscode/audio-wav/staplebops-03.wav delete mode 100644 packages/kilo-vscode/audio-wav/staplebops-04.wav delete mode 100644 packages/kilo-vscode/audio-wav/staplebops-05.wav delete mode 100644 packages/kilo-vscode/audio-wav/staplebops-07.wav delete mode 100644 packages/kilo-vscode/audio-wav/yup-02.wav delete mode 100644 packages/kilo-vscode/audio-wav/yup-03.wav delete mode 100644 packages/kilo-vscode/audio-wav/yup-04.wav delete mode 100644 packages/kilo-vscode/audio-wav/yup-05.wav delete mode 100644 packages/kilo-vscode/audio-wav/yup-06.wav delete mode 100644 packages/kilo-vscode/src/services/attention/attention.ts diff --git a/.changeset/notify-background-sessions.md b/.changeset/notify-background-sessions.md index 6b5646bcf7..ab70e48f38 100644 --- a/.changeset/notify-background-sessions.md +++ b/.changeset/notify-background-sessions.md @@ -2,4 +2,4 @@ "kilo-code": minor --- -Offer opt-in attention sounds when sessions finish, error, or need input across the sidebar, editor tabs, and Agent Manager. +Offer opt-in OpenCode attention sounds when sessions finish, error, or need input across the sidebar, editor tabs, and Agent Manager. diff --git a/bun.lock b/bun.lock index ab98b23ad5..7db38de37b 100644 --- a/bun.lock +++ b/bun.lock @@ -302,6 +302,7 @@ "@kilocode/kilo-i18n": "workspace:*", "@kilocode/kilo-indexing": "workspace:*", "@kilocode/kilo-ui": "workspace:*", + "@kilocode/plugin": "workspace:*", "@kilocode/sdk": "workspace:*", "@opencode-ai/ui": "workspace:*", "@pierre/diffs": "catalog:", diff --git a/packages/kilo-vscode/audio-wav/alert-01.wav b/packages/kilo-vscode/audio-wav/alert-01.wav deleted file mode 100644 index 061fdb53c3a43da782b6478fd923ba07ce6ce276..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90190 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 diff --git a/packages/kilo-vscode/audio-wav/alert-02.wav b/packages/kilo-vscode/audio-wav/alert-02.wav deleted file mode 100644 index b73daff94a88faef7c69f670e4f2e621b4d5c1e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92238 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 diff --git a/packages/kilo-vscode/audio-wav/alert-07.wav b/packages/kilo-vscode/audio-wav/alert-07.wav deleted file mode 100644 index ed04924bec926f657ad8da287699a48c14a0cb68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63566 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 diff --git a/packages/kilo-vscode/audio-wav/alert-08.wav b/packages/kilo-vscode/audio-wav/alert-08.wav deleted file mode 100644 index f9de3611dd42107ef82c67ef65f05863d4560ec3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51278 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

yv4GHvZ=LwS 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 Q5|DrdBp?9^{I3Ll104|P00000 diff --git a/packages/kilo-vscode/audio-wav/bip-bop-02.wav b/packages/kilo-vscode/audio-wav/bip-bop-02.wav deleted file mode 100644 index 44c5ea0d5c5fe74b8f0505a7576003d9289d19dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57422 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 diff --git a/packages/kilo-vscode/audio-wav/bip-bop-05.wav b/packages/kilo-vscode/audio-wav/bip-bop-05.wav deleted file mode 100644 index f9db904297d48cb0c4fb2d8cce68d88be04004e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32846 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 KXaY|r@P7bW160re diff --git a/packages/kilo-vscode/audio-wav/nope-01.wav b/packages/kilo-vscode/audio-wav/nope-01.wav deleted file mode 100644 index 3fa989aaaa2cfef90e65dafb32db8ae20bad6d73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36942 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 J!2f*${{XEL%PRl? diff --git a/packages/kilo-vscode/audio-wav/nope-02.wav b/packages/kilo-vscode/audio-wav/nope-02.wav deleted file mode 100644 index 10948cf9667fe4305eb776daefd3199fd950a4b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43086 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 V8*N`rJ_LLS_z>_R@c#~h{{?sG0q+0+ diff --git a/packages/kilo-vscode/audio-wav/nope-04.wav b/packages/kilo-vscode/audio-wav/nope-04.wav deleted file mode 100644 index dd1893e4b2a8016ff6329d55a7b725dc01886855..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32846 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 LJ{E!hGX(w{zJziI diff --git a/packages/kilo-vscode/audio-wav/nope-05.wav b/packages/kilo-vscode/audio-wav/nope-05.wav deleted file mode 100644 index 562e49f95768405a7d24b9cf650ff67a5d2aa440..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36942 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 diff --git a/packages/kilo-vscode/audio-wav/nope-07.wav b/packages/kilo-vscode/audio-wav/nope-07.wav deleted file mode 100644 index f7d760c2a611d3d3fda88163263435c05ef0c5e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26702 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 diff --git a/packages/kilo-vscode/audio-wav/nope-08.wav b/packages/kilo-vscode/audio-wav/nope-08.wav deleted file mode 100644 index 7ee5c72b48a7a2f6bebb99edcf6c2c17b183ed9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43086 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 LFarO7An?Bc!xCj1 diff --git a/packages/kilo-vscode/audio-wav/nope-10.wav b/packages/kilo-vscode/audio-wav/nope-10.wav deleted file mode 100644 index 9c43e5765ed286fd2dfb5008913cfd7b6be9e878..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26702 zcmeHuXLu7w7w)=9TV!KwgPXLH0n>XYbO=2VdP_p@y?00`p(i0E1PFnIPN<=W5_&>! zp@kN(c4uZK+j5t-$=-VweLUa2_qjjr{c-E|9fe(l$mG#hd%E)2-O~XGTZpCobP#hUoQ0gzUD}vHLd0SbBH5T zl8AS8m^tPrf(lWFQAO{tFjLHrDYe<^`&LZpLiz|@&AgC|#qW^+uXLeuq32LN<~2lZ z))7KI)c$|v3Wt_Lb(-~?JW`Ye+6;qx&4_>+ii}A3ndwFE>Ii8g{2kxs)od{cKl9$C z3<8z;GwDK9rVQ`(5z zP<_R~gUM}3W>Z45oSA3x8KN>E#iTMnk&tiJ8A3V|S~s9Yvu%^F_qc_SGoOP0$q$2) zCZ{G3R;bs+$HcLK-r8HFaZJl6egwZQ7D) z>n87(cQTkYg)I8L&1;ZrYRZ(!v=IgL38YYq$&uMdbSQ1MAL7&GAqY=~A;06sjhn2%yj*-IT|y(?l&)r)jkY)M}P7$A^$4rY1xEDMW8_Z?=CAROb$&gno^qfWMXD&-7q+4$JA>8o=x2` z(6ZT^LV7MXXvj0sH~A`pI?bzTdn-j@pXe^Uw* zc@ulHOh~7po@lmjjv66L3E^zgn4E<4XMudPMYD$)fQTu9S=M|iGE{gr?KNb}+PiV# zz1@av$wb0L!9+!YuSsd*Ex$`K>od7CYYo}GiGl`ghelqLXBu>1+OmbR!M#aq>dXee z2#NtrW#B>qZX)5y3i&2hsu6%z6v!(y^5IT@XW^zE6lhn65`H5Gex_}jT${Z{fmTCS z5Dq#rF){N@t2O16;cNC_2GG$U@BJ7O0g{+J>0oD}ep!l&0}ffL6mVl=83oS_cv_|5 z%7O$YZ86kfj&YIyk;n#=e&8$|t~u`{GWid}eKxdeQmUX~8gfI{W46gbs%b~6kq2}t zlr`lm0t)}T+DlQ1R1B3$RiMgKb>Y7(!Y&s3iE6f?sv2 zGSEj;u~ZpIO9JXBpbm!=8d?m^U3pNd43!Ki1%R6!q%>u-P=&@TgBaLIH(na|4IiLo zYM>a#K@Q}#zSE5#WGn`*bKYTD8gL1NS`?s(h8APsR|e7&CK?ji71 zXh^`P4!8!OM%9P~DKiWY(5ryF0CYY;J{GvBLDhqLO>J?|Qam8TLK`uFYZUMl2fPQM z9C>FeR-iC_hA@yc2EL{h(7;n1XdMC4rNCZt0Bsde$pS7tz$G!B!ZqIzjem^40kvnw zd1IHc&A11$-G%3Lpj4oQIhL4xzW{1U1BA@+B^g@afIAyJC&RZcRTZ?%fzDz8H4gYU zdxZfd;(*#prBE*TrM#1>AyuFHfT}`urzTQesW#NdR8Oi2)rA^Fb%UqMfPNYvs)2oJ zU{hw_i-oU=q6i574m@r$P8nB>eZ~>vlJTpt$T$mnzhFE8DgFUW{{fD3j6cCL%TQjB ziU6)Ykn|1UkZb$_b)*}&K~FEBj0iHGhnhK%fu^!S3on4q0}>}tJRn_$szbGcZ#($S zqgGMVs1?+DYAQ8@nnN|GS^)nYsgJ1kR3Bbx^V`i*llbu4nVruLo)$S zJM;eCuQXhg|6p*Gr+}8%~_;>yBws9G3 z%`lsixLVvgmZ9RZ% z7+6XvkS87VdKhXwYkY3}43=^P5WWH5m(cfW1FxllD=TmxPqhXOnj?BL)Z~WTIIvWbpTnbfON5tn+Dj_0v_{?X3+LgkTDq~z+h=vV0E#e^|xSgZsQU3 zy$sO#Tfi#-BlQ*IN6_yh;Qs+UOCXC6H5$TA4r}Ic>?s72pBWUK#yxj^#yxeNzDn5wfLw|T(!6farU^(SS_}BT#LB%al7KC#*K|* z;=0E*j+-5~Ij&CJg1C8cx8g>`O^O>IcPegYT%oN(gsg1OiONpM&hzzyE0Z0UJvRHS z?}D#Swk zTnniU#OvZ%Q59#4=fujWn>Y?#5VFWezFO*^@%#DJ_T&5o`vylcKi)CSf$fJK+4i}P z0>>Ul1Ae1pq+^QX2giO#LwKIzIObUBknDB&xAr!CTyh%MpYG09q$@GcXpzCpWcqh{ zIZfy-^hUZgqtpB7U+Ce?Y-R;rhIz#dwxm&m{pUTq(0t*hFcBq-X=1k69(53Z7b=M# z18?!DBHAWa6L$zr#gEVnbW}X=zAa1?N1-ujo+yc1gjr|~Jl)TWR>v!UD???6{E_mD znhtK!oj{b_N7!aWW?!z**-KwznSR=J^$S2N`yvY0akA3-DWC9$4( zR+ulgMs?8yF<)pR4ilrrRzeT)N0N!ZPT!oKi_*v~bW`XhJP~5hDYQ%ME8Z2u(PeSC z_(IUd9e4~{Axse8AeUHLOu(6$ceJ{eQ_LMUK>tneV!vQI(~Id3n0U4hvxc2aQ?{^_ zmyT%1=dLQwF^)wki|h~hY`!ty+p!j~)$QdRW%+yjUcQy1mVJ$VjYHx4^9LQ*?8)}U zjts{lrz2@C`?0k)6QFb0#!P4CCez;1BYa_Cp!XU2+}%SMfX0eniXWqyXq5O^m4G1q3kBB^Kgqor>G#9l;qs4aO6R{R*fySX?@upZBNuY~# zagkUo&H!s_B_0!-`%1}$@*BCSVpBRP1C{TU3d#j}gz}vduAG(EDIaU?HCAn^Gf@oP{h#UbmLX{n8@W3 z-NU;^PL7yOb)wc5rxc|Y^DvU`Dz2d~R~9Hsv^zx?i#@@8T3pc#%kHS_aX%-VjW1Jr zL(Jmnm8_pli=J2N%b1@_g+*t@IOD3sh^5NKmnpj{;daUyyCly6%G_zaIm-#31{>njlW&C>JUcgf@zMyx(((J7nwLSI8 za&NtClvmaNqM%v6kXJLeNj_6x%l2pA34Eh1*EZ_|wHE%F`G4m>$Xk&!%BN%`c%!`O z-W3_cy+s(IS-3CWz7`eEt)Q96TalZXNz4@Mtw?WVRp`n8 z(*M$jXqR=Vr5baGVd>GOtkGyf{!P&_G$E&~mPSV4#gQQhy%E_P@MVg7$z1j2TeEI_MV&=SjkMbm}tfhiwI(?3{K8U9f6P{4o6#0}D{Z$Pqgyf0tTg?XCCu`f^)hpUxn=pnQiV>ZcQe=M zRLe5UbvlpUY^_Ke^b0!3PUqrcTq&D)WdF$VspG4ZA5*#}AB%I_J_$=x_bRpId4bD; z)d4-wT-l(0r+lWAQwfZgGqk_8hFY3ZUpbL4llxf2!-Xa&71hBm!Xh3W6laP*iHF3U zVk$b0PKpegguX>gq*pxptu%fUy(AmGsf6AZkcLyc}o&<6N z%jK`-=W-KempoIhDchCh@{>TC+$E46hzTSF*2+ICo8^mHpP~dj0KY;Vu|0EmVJV{n zbDQ1HR%h117}=k>PCudRGCi5L%mpTrO<-3sk<2va98-}=U=Gu>>BdZTdI6xk-`dRT zvmU0$(n(<5A2TV;hs+DQfbI|1Lb@R{oQYx%Fl(8|OjMb1d_|ZE`|?ZpdiJ*|PaLc5 zNlEchHH*6_0|HLvq&83eTdt`#R8J^Ls!!>pZdP^mnLJ-hR;zojiUqhSIsoJEYBUKC zLJQC@XfJAoW}w>0hMohGN$4MO33>?Q^km!#mmzD&aq=3sC%bVI#NexFJ1$S|qG++u zy;b}KrQyT)nYc^jP&mv+_r&vJXOw|nSJ)wQA zC8>hCQyC%GQJ<^-DC?9B${2aEJWp;WFH-8sQOd@Gi)0U)OqybWl#$Mmy5tp!lvd!E zQn{?>{+zHz)&jcN`dOrA&7e<%6?UfkvL7?8Xg9rp@v|GbR%~S^i>biwW1K9{&SY9K zH|f&!C2N|s&^jMbZ^#T|X0lV+4%}t-p6zAQ5!YjWgtMR1&7bDi@h5oIVX;T0&?&c5 zPNnQl`Yk2OF+2HS{CMjw{kamSM(BCk7Bx?;QBYZGgA6nldi4h=OFS&T73!ioXs2jF zo53Pe&`Xp9^IjO9f##z?bSHGjh_i zmz2Uo@O6|c+VC};fuG@JWV$rRQ&&2P_u|Xoooz??*h5N75}rabJg0Du;DO#GqhshJ zJdUgpXQ#)b#+jE2o>L5cm3c~U46AObMW139CFCc?CLd3kka#+=ccPGVHo0%Y?8KXi ztr8NG!cz7pjZEyF^mlTE{pW<2ao?6*oG>maCUK_CZu!Pi(~?g=v`&wxXSqNhWN$O| z={)OOYbx^(vw%IzIoTQ3o9rLa*65n-1jAYA&1eL@ce;mUNij#iyL}Vmp?9YhtH1^i^Ud`SdtP$*{FDh;xysJ;t-sqXZ2HI2&!3>nA4AWm0 z_0q})TKm6}Hz-7Al~aB>;E-=-sP6UdrS6vKEAUIZiFbwH(G=-E`Agu$R?>FwBhL?{ z5@AUPDcOUhN#0eSg`Vr)QQj{yB=11bWuDkos3^Y11ITN1P8=+JBUFa|5yZdarGl3J z_uEH8SClP%S@6Uk8%Wj;DQ)~S3pc1$sOnMnq#j9!lWRJf+1uNP+v8JSC1s>IliMUt zO^!)?nzSyV0vi|kHatFjNaTUYLTgj2E3%XIj5R+p&NA29#d6JZgN|b2tYg9tMN;fy zb^!A^eVs9EwM)6VQOs8ER#eaE1-9DEW$Q6!H_NcgtsBA*=`C|V_x_3<f1qixtG4uqKd%MefJ$9C9;D@=O#~psAinZ(XlWs$+%xCEb&* zNW3%$55uY6Mczr|A^HoIM~2v*l!wvxfOy8e4%S_?dya5fyy&g&uc|gxCu`LdN?ENh z&^5)QywHBpqqRx$ioj!q1>JsHMD*&)VvRFWt>xpoCS8n6j%v+pv|eTEbA!2C;4x${ zb8Ju8BABrv>Eo6OT#HiuxCHBQ>lJz+!?LH?8|+!e!T!cnVZLKtT02>XvO~FMbWd8R zW$P2BC+nd(`mVJty_H>O8^g|}f427HCY3$GFH62_n-w-npDSNbqSQ#aogArdR?hk> z7iI=lsa2G3)FoOCwWS&*eW^^7HCEvYHi#FIStyeqtIrK+T&C*VEi`4YVQ zBF}b@k#z?XDVSZ)4qrYV?v!BA9LFdv}x$@CRxWlxS zYi#?;c7U7Dyk)}J3T$mwWItewVT47Di`~b5%lIvIESIcbFkZT5WKr1j@P*cRYm><2 z$R^>dEVnF;nE~;`6H*dtCVNu~lRK83W$PLKyB_O*75G_esqGEcEV``(15w(%VAY}# z+CBM>+96o0XpAx@yO@08>5_354;QZqpW^49`_e?Bi4BECr~>&H*6Llb7uH-oC7UOf z1j%`+lH?*z)CrZwJ;;ZiSZ|D1z%7Lu_;*jC7@3~r?&>}*4#$z=Ot+N&mHUR!Q0(E3 zdLyK76n~JEf*#5pIYVw<_`2|sKV4a+?+9!!tfK_A#j2p}SO0=p^>~qH^Z_kL7%i!C z)NoydQ90e$D(h`to8U?7U}hq_hv{$iSjIriWg^#utIh7WZe=XC`fM%sJKF?ql&y4> zMw@HXJ+|smLH089ioU><=Dgfk+dZy4r0wCxfnWP0_Z7F0{=_0jes4*O+#WtSGA#05 zctnIh(iR;SpAkJK;s<@Y{JnoU_)H(_wX{L9C@1K(^?v#gT~J4=*5E#hHYVvubTQb} z*cp7NJPGvA`N{j3d@t-0^3YrSA&CSp--Am_9q}Y_E_y2J!ex9P-xQv^%eV#MGzlXO zQA^=hw;|4kS>GZ4DlS|!dkcA9ffrK2R!09TU7=H%{p?m|Jky6=#D+yjm0Hg2p|jXlr3RJ?i5U-V;MyW*nAgKW3be|d zX=-AJ#7fD$<3b8f+M0Mj>9C_Ge=O;3!ja_h&3I5qy z@wr$iY!q1>hIMoSUBK~DC-M!cN<=h`tRzkF9DIQ^_MDOmq=uxDcSE4A{y?3p-_xe) zGqnVzidtQ-u1gRx@v41wOOV#9DCOj`+6KLv+DWk}-IVp(IIX+B7Cg#qH7AG9Sm2pM zT6qsi%{&`2W_mL{d!+}SFz+H#hm;{3&_ul3bH@7-sV8?CB$22WsL)~TEj8qYiVWS7-7!&NEi1KSF&rHyC4XRb0Iz&bm|R>V2E%29)DN7!}TP;NT2 zoUYIO&aPq`F;m$B?i1Tq+c&n-TpM;7$Fc=XIj#o#9e1B~Sepgw`l?7*#PMz&MPNyo zBu>E_#O3L;1X*Y$9uzvej|s2ciDIJoI=vfsT9s{`a6@-6w1yg5JzjwpG`OJ!Z|d3**|h!s&+au-)4 zpOgKt8vX{=Acdqg9)@P(5rmTZ!Z(FXC5JqZrJmAC=^)u6O_G9m8#yZ>LNJy_c~0Yz z(!7jCIlF^x>2J9>&cc4rC36j#9n4V{)0eGQwmb96(u1jI+iCs8GKopE)kswMj~o{r zv?Gfj<=n@wcAT)kah7);b~bV~w6AascV6Y=UE`cp`E>pdemB2}|J(VOGcT!YY_v70 z_#>IkNX0o2>)lRvpogf3^evu`M&a>ff;d~KN|u7p{}n1m5An~if|`SR;r944@}Rcp z0Ic*D3Ay4xG!tw}6NU&3S`58+HpCt_poIc*OK2@RA#4(2-QC>d#b1R35QX?raNzNR zB*dazWX*4;?Dc2L?!X@ZFM&2nD`ib!u5wFu%hNOl{G55}B{+z38CH0;G)e8QUQ)Yg zSlg=9h5l;j)2z$sC@v8FA=pbxZY8_Gwu+rd-(gm9Kd}Sp-b_PoAbXM7&BfS;voia+ zZ8CR_Jq2TVI@^#t%Y9%Q$+hO9qqp0}G8?&}w$m)l_TX;Veq%Q=i?~tTD>jeKrTm50 zvI@lN5WgLRQb{|(kJ6EwboPgR&5=DoxZg@?3eOnxuK<(}BK9Pvu(R zt#VCWs;Fv=8kDEXd;Q&&F6t6xQJ_IqLzF3eAl}27$R>OQ@!!%|!e5D-#AA3L{zBX+ zl!aJ|72SsjaWio_tcnk!M!2R}Ui=yz$6w&1VjZlJmEe&aCHqKA$&WMf6^KhDll>CL z)9^tu9mc19Qe&{`2NBokGF&Uzq~0C(wWEvulHFq;=0NtT_R@~yDdqWZoUtj7+LV3vnGT2v*qu?m>4CPLj7(cNii@NtTK{DVX&2qP zxX|}E-Xo-;rc!0(7K1o|&O@C0o)`%}=S92;Hz0`oDh-sz;A>=+bOz=iH(G{&AWP74 z@d?EK^B``}5|_nc#EVag-Ed8*m3ReKSJe^a@jOq6dZZNQ%|tCk0=@IfqgxO`KMlk+m3lkO-^_KqG^QJ{%V8|p2l41+o0oG#9B+v25!aVJ$Mua;xNq38 z;9<>S-0W@JQ}!O+fuZS2);PK@ZDah*`k0UHU7UY7uJU{MKODOp^&A~jjFfqfR`zXW zPguf~-vfK(p2{=1w7-KtDKK2VBvAdxhorfq;eYaDRLj;(I+HYL$q7#ba;^E(5WEYPd2wLt5b;XoXaZ zbRvI{t$=(s&Oy_$hP#tPl89I1`XrLf$!V^|1Pip?T3Nkc@U!3!Jv^vu!?oRd*S{3jX>dv3bCMb;&9k~87WT1JPM}&h6a!!;!mgxP?RO7!5e8z>SGFg{Q#be+MuuTFw$Cj zBxQO6c|Yr-epa)=`XaZuIUR_dnlhh1>zKmyfn*G6Z3*DzOWr&#_g zSF*E#b7S<6%w^jT-0rC3wqI;Jx$d@vsAVwzEMddAz1(spm7UMjV4gE8>3Y_&;P3BY zezAUH^+EjeS89J@QifkB10%-wZZ3U=yS7-@9hUyU?Q@TK`=R>|>@KzzJGo^sQv3t+ z^0%5(uA)TAQ($MPvdSqv1FMwX>TZQm&M1A=wQ3i&ua>4i4&DoJ4u= zzTw#?9g-5Hik{_?N(Nh+^eHJorN!p3KZsBt=vm{@ zMesxoGz%r5-r_{@HTs#fBcCD(4Ut+&>v6V-gby;lFPL2PW86^Ja_3f;4tr`#oJ;uS zj@G=_IXbnJYq@J`xw)?L&MSNk=f|$LuJ4@#oi|cHciB@5_^vS%xzD0{*nW@t#Vka-S3)L7Xp2JPbP) zi`{L+ZQ@?xQ=yMg8+{?L!V9qowzlsIjotm+l!pYys3QVrR84*&@79}Zmz45qTcxSm zM9WZLXp~+-ucg<7@o1`gUb(KdR;%bs)y#|`WW9&rc#q+Ul{A>u6Cfh?F{weW;VvZF zGvD(y_TnWFVfqJV(fxQlK1rrZS24lMNo9NiZNjfeIdW0#hFaich@NdB?L4JC6-Y;q zEkn+Y3LDRkvi(w~pCi(lnA+Gim;cE%*m=sa-j$qM%f+QOPCerM*45G3-9E^f;;ip1 zaOUw-%MEeeb$w;uV*8eTYEzh6FuUz!SFp92?#!pm6Z&iV60BopgO61aRyEz|L?Yf)73)o0Hd^MeXA0!`;^Dt47^dQ2s^n0 za95O%nv+@Rs&E8$p?8U&xQpC5Xg}<`jlfT##S^#|Ng`3C1;jUhhDi7bd>ef!=~5|A zEiaNTk-q@VL7qLZoAjCV5B>??m9}Oc2~4xxDciApeCjR7XxHx4`mTeH+0F&7u};=C z)p^1>-Iec3O-*r8sUuTsxTd=Pb@g)9aaMDNC&h7BEJx^j5L<7>T%;ZJVCEIOo@VHy zu)qGA6(Ab?Eqe(t+e#NPTiE+nO+A}=4NY}F5jLSju{OGn*OJL3C_Y0!;NQhZA}`($ zrob-EIu(Qteamz8RxS<$C_W{Id&M|N4`?SJzW7g3vm?q$jZDdA)7e9sjlkLIIp=Z#i>FlD_ zg%z@QOLnp!R2sJvtCOyH zr`QS|C4KQkR3CQuTf%O_ZE>GC6#VCGbX(j;S_V3+GnAnbzi=Jn2ibc&K6muu*YF=#n*CpSuI=twS`!Y0!<=ro#VR<3R{37JSX!S28W@MfQp$Kac`fk^CN^fT%L9&ajoiwecI2>J&4Mk++(!3tl% z4$x|J5?Rq8d=zgd(Kt<7U3gg=s@>NvhwU!?D(Oo;-uZXRI9_&k<8vHU9iQ_1oo5^; z_~Fjs{5gIp|1E#OLGzNmFQ4c5E~X62bH@O?RJI-0g`32jVr#(KX$6zUra@Hk26Kps zVDspS^aJqx8bBQ9Dcg>H&NS!xvu-Ax*;(AuZ^^DIEtjfGwbGGHc>vXf z-QMreMOc4df<3Z4JQjSI*XT2}7VpA4(NQ!8_rQZ8CUOVe!x;GyjjxKU&@OaWoCp5( zE3^v5i)G+U&1mr|8YX@z_0#_;B_y?Ql;&Uaar`UCL4FLM?f8P%c!eL$Tlt~W zbeKuj^UEC9_$khR9C?mGuySn9KQEISRolkf_Hn(qLUs^4fc=P@&K_gGv|X}Y;3{(E zY&~tGVa0WtTh2CRJ2BUo)yyrnCKnmjTOO5NmUz)A{DPbz%fU0NDs?3@VcgjVzP}%r zlll=6Q_==pUupsovt5!8?~q1Gd&x(*cjjevm3Bf_)UGgI4pP5V3m`H!7yQ4o${^LQ zo>3QSleMq3MD?XoTYso6Q^VCOieG!A5%r}yBX<~?MLLq-P#*YyjqwUH2`8e_C>t$- z>nZT@7UC8Jd}N%4D}dFG0NdqY)u53dNDPceACrnC1)stn5eZi&9}*w#jQ>Ina0EGt z+oImWKWH#+DUOABpWt6@!7Ll4Fmsr3-0+yA_8QLNj!*c%_%+T{{s6zkb{WY5hu7h8EaIE-r+BM#gmbAA@ma3U{8nd2{)gxq5HY&Tj7E1Fnnj!Fj1QuzPBQcwtS_A0LHX zf=uG_Y>}!+w_&8~MXV4ztd16<(ReMMM{c4)D1rFV2GS0_mPRP)TD}~Fy@$`VZCW?= zw0c1;qZ7b$f&M_dsx{M^Yc+xoU(u;M}NYVHHPKQ_HIU3i2$ctzJln@=cEZ~1pV|p=`3ZEG-)r) z596de(o4@Gui&}sS?yUPeI^~0I!cd7MafI@a5kO*!JV5h&-8`zTVTDL1_;b1pMa-O z9`AwP{0RS&yG^aHeW>kHGS!iK9Sy!jQ*GMfDiEbD=_Gkcuf$()5KN*V4kQ=Vzg25A?Q!k(qO zGaR>*o6kLCUo*X!W6VgVdFeWiuKWl`z;VjnjX&y~!as&M!YMus#_Y1r^ZaAyFRmxf zZmz4Yv(7HAB=B9YIZrz)ItiTL$g+Q$xY;@}w>2q^dBS)Wk{|J1^0Bmu)B!7K0M>G! zoCgnOI{Apq02~jKXsNSgmExrx;AJn6ej*wffY0JcDH`UtkS74e!Kz#a6f(`As?mmbunntgcd`v_Z-+@KH~w7Oj$YK&`6|(hg}( ztw0&2uGc=->SzsAiA)c zslmPB+Hh{}49s6Yz-)8?=Bv8Qa)_XR3Ok6uvH^$%-eM!l^l_=qWzJ2mEZ6t0NY~iZ z-l@Bt<(!lGXyT!#&#{29%%#(E;hf+2sFG%>ew7@BVJ?oZ_j)XNzAKcP}o4>&D`KhFI(_iiA_(dyJ7r6F3`Q zl^ROjH+mRf!+H6q#$Gsiy&ulKw}5lFx;Z%83IO*S;8U-hs>r(xwPpG-n6lw&VldcRWz$;Uo;ly%sZ!n(#h}6H3W&zS?}} z;yJvZ6GfS)#I4X)bI5B6Zxf^eT_t$aAfC!I8bRA1Lfd`ee0qK0A|KA%H-t7T!g=c2 z@HO9-srv4%j7(^Yp*+yG52V)NOn(fV_AU$cC%{`a`M`k!9EIL~GT*o{-%84Smlh3F z=DRiK`#9!XCg%G^<~vX3$$0baGV`6Ll1~W&B?y!tP=Y`S0woBPAW(up2?8Yulps)o zKnVgR2$UdDfcH**$6oR diff --git a/packages/kilo-vscode/audio-wav/nope-11.wav b/packages/kilo-vscode/audio-wav/nope-11.wav deleted file mode 100644 index 934bdd42e9aaa2a92260a4d164e16e86a618aae1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96334 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 I-;RO*2M{WMz5oCK diff --git a/packages/kilo-vscode/audio-wav/nope-12.wav b/packages/kilo-vscode/audio-wav/nope-12.wav deleted file mode 100644 index ed0b49189a32e34b41c61bc28032b109d723ffdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75854 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 W1WW`>1WW`>1WW`>1WW`Z>Hh&O)HzcC diff --git a/packages/kilo-vscode/audio-wav/staplebops-01.wav b/packages/kilo-vscode/audio-wav/staplebops-01.wav deleted file mode 100644 index 4c429b7461286afe23ebfe6269b4228093c3cf7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32846 zcmeHO2b2{>v+kZ7Ht&)|P(c9!$w(F?=cFV-L6S<4AR=M_CH*Eu6hs6;1yK7)6oDuLQ3Rq0L=lK05Je!0Koo%}0#O8_2t*NxA`nF& zia->BC<0Lgq6kD0_;(g&3cZ#SUQr6ouW!XWC-9pFH&sBTmKY-1 zi*BMPe!W)=7d1sQk%TwPqsL!$4N*?qCtecU(aQv}R8JR6Qp;eS^}vhkR2nQTydk>!^N6jFzA2n$E6ZHK&Unt*6WP z-F2-*b=+=YJ9b4;+x4uwrgcm|>+0+MT%NLvIaAblbG3r&lMpRSJIHSZ!`J$KuP2@S1?AgIRf#-d_d@tB{>oqD*H?T%q)vZ;s zr5K2Jf6&j!5!ME)g1e|I=nQv0_TG_FBjKFPvkoULNSYP*b5i>fi%MKbY8YEO{$Nbd znqd7V3hTY@g|TB?ef34#$}f_2aGdy=CNmE6B2$&X_2xzX$oSnp7-qV4s|uu`VDRVp_l=Tvs#>?&EsvUlbd z%U_#UG5@G9BXHRMK`(Xn^Ze>A{oo!EvncLNe9y$DiCyASVvc!Nc&Eo~iklQaHvZm(#}YQj z&xv0Vm*;KlN){ihPO7dtrW)v8YKF7bz9smLe}peBw|@4q%&g4CS(UTTXWx_CEzh4f z#3uu%0zNQUG46Q$dXOTNl`ChzUM&iVWE zJNicX6M|LjU+kk!cRd8ddc9m~4RAGb&+>fa{oT9So9-bkpG$+EV1P9InG)d45n+2a&-E(PBSeBe*_-uaG}4zk_d;FU>d2UoKEC z&^8bZtPc*d|Fkn!Vq$9goRjv8*Hu;6PQ+%&m={;(gvYk0jXGhsz+f(eWb`86nUBbTEu5P!q zhuiPl`|Ki4KWBxLpdM8}VqTc4&+86iF;ML-Kb3yj#(Ke8Yo%Iot}?Fbt}3pwt`t|g zwZmFujkQ`^iPkRphU_Fga;ZRtYLn=`>*W>h;m^~|rhr}XrT$GUa$mir@xl^8%T9&ZNTU8*_?N%{MSZC!= z@&oy_>?m)M=foG{SaH5A8mfZ29iOV|E_II@qW+;4 zsjVta-Jo0OC-fry3+C}UVxX8Vz7>B8w=6GP$o}$K`I?+37s-$0hw?o+Q%;ei?+&J2C{-ok=f!`u|iB04~vE( zMV!*B_3L_&ZlZ6}0riL41WDghGt?{U1@)484Oo7vHmHM`#Y^Csq0qu+U|LFa1V)R+ zJ`oVN$(HgF$TLrVF4xLUXdC1=a*2FPJ}(DC!jiDlP2w%_h^UQ~W0#(%hv~a@iarIY zW~njie$_(V2|UZ9Rl=Om8v1=!%~KmyDr9U6Ew0d~bxF}#Ocq~>)1ruMA_vQ<@)NmH z{w7b!%Q8!5$P4nQ+%CVAbLBJgK3NTk`MqMHcuX{c9{1|`dWf#4WAtIQ5_%k_I;(oB zyeg@RsKTl^`mKX8G!!x~Q~Q-m->DzgbM+pqt&PQK@sapVSfJPgl;_H?Sm_Md>9=aHx~!6QP4qZU zFVsI_7AOuW2Z?Fm{a2AKQeH0_gzJ3bhvZgMqbJStA85a7Hny==dy{kS}U%_^dDIdm09rXA#^soW8nuPK30KA3; zVuLs;eCYFbSsT5!hrM>f7;Gi)LT@Fd3ljb!zQNdd2EImZ_$Qb3F8#Tlu1D!^x<1fN z)IoJgor2vSR!7uvbxvg|sc+Dgbu-;tkJWEt2KZHH>mnE(_lObVWnjA&R(lGPY7r}w zfnth`mu?vpm&7r#LwqgXhgUNU9#1X!aC!QWUavpI+%;PFfi2e4cj!`}pMsu~bRk@o z(v@(xwZ2~u*OT=-dX?S*YgO>H?u7R=P&|c^_O4ilUbms&1L6-zd{i8PP3;grh%aGX zv&9tHX>ZXAv-yqizRqI?S*Mp^q)kDu4`GbA*G=_Z811!zVqIJ{(;am$Js8Npf*zM) z{Qs`g;Hln>KHGxQNMJi1y)F@}(C;SkqxcD*O}PG2d;*JkO^kY64I_p?AVw7wfkn!FW)91nAxeop#mT z(RW|i@niZ~{gQqQ^XZr1Z9h;6z;14Zge^sP%;=A! n252O5J%tRlH4>9+>EnXKd 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 DcK{>H diff --git a/packages/kilo-vscode/audio-wav/staplebops-03.wav b/packages/kilo-vscode/audio-wav/staplebops-03.wav deleted file mode 100644 index e9ce09bb54c2aed6cdf0e3de801307f299b4c9d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55374 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 z zua|b#S>4?>y^iOWXHdopq+uD?Jx-53{etTwr#Y>q{Uz%p^EBlnX*BPqwoN`C9~xa4 zP6bE7a)o^5yi;?V=avVOt8yE8Yr;o%1-gXP@X6@)xHoCl8nC|dB-47!JlkML5$9;v zM)$7tmpoF&xQur)I%mW@O+2rr4{H^!Tj zI}|?G%sbI{%Xi(sHn=zRN~C#gO8i2yw6=|pm9LumS=QLzcC1eO(RIrGO8Wbr8J_8$ zLK)9`CZ@CWPA-R&J8szqSZA9b%A=(h`MaqG$&qni#2tA%^ktxPpsxQ_-#uT-d)Hgf zf8ICQ-y!&VuwD3ORvi^ zXO+*mXj*L=qI{t4k(SF3VuK?yBmec)@!yGD4evHupw? zKP1km@nj9{f;^u0N*qjPsyT^<$vIka=||-k>jB#+YtrF&&v)6~>)mn3R9E4`H#|4f zrl-xbUQs%lyz)`Gv*~N;Jg>{@sh1P;;>W{}g}x8&@&|*FaPPo({xPAe!CJwKq4v>@ zNfXz!-+4m%*0k9+%GoOYU`9N%UXkiqku0V7g`#g3{v&;3S||HDYfbZB$;wZrh9%!k zu1QRdjg5X084=p%&+u-}@#MD7?VCH;Th8Ax$ik8E^616*nPfSw4?7}Pw>+?oaLh_; z>1^tHL|>7`dDcvC)f=BUv+iza=bEGDZayY*4~w~o_b&uJHT9!YyC?Z1wujy?{* z?X2~ZEn;nf5wp7T99yatRr@5bB(}ugj=mGF5&X&jo`0yXpLe*ogtwyC;Eor zC|D8Yyx4Jljko7P&w)^oOR?F}3g9p5^pI=H=seVOfNYZuE= zQwL?46y{a58maz?pJMUIYvFF83BjDe(!icT-=Hh>Q)pMXbo9B{SMg_)#niRh2=TtYp8c3D zW=&acnU|W%DWjz2{Epf)bqk~VTd{AV(a7hK@sTeh+aryl?PGJ|f9PZPKz@exk?$*m z&D$(qt7`il z%ShkIpOFR8*|CH1vdQr&Ct^f5>73ltw9fpeWv_L#?S`$EeT03IeSqC-YiR3Yt!B9j zo@UFxvu1pU+9Gu%@mYLYY;kl`qUK@XRTdr>GtXND|WAa zlf9LFf$c}@G)p7%UZsw_h}rl%>VxF_iT?3%v0c&j(dyCG(a)kqVmYx;ym<2Y)X!>D zevGx07b{mxcg>qE-K#U2dovj-!KC@!ZQ8viWNJshGS~<*8=OjkNhsIV%v!lU? zJK8h)M|56nc6>{sLTaU2iqB+bd8~5VRL|1Onr-{hX0cbXU$Zs0jkdlCc`hk^d+%V)G136YG9!F`LJB z!a4*J9X0PTy`vP7mx2wq)kUdZ$<~RN#;^PyGlJ`^3Y8!cJX@-13 z$uZqC@3lN{-D1tPUa?NHhAq`BwajUz3-T(dH%n^U)XAw)$uANY;w|He*aKLrUpyzi zBrz`eVQQIrLQ7};r0Mc}724yZX^ZyVeJQXerikd zY@$Nqc>JsQg7^*G(cMb?nw*?krN*?vtfSOPF0C{&S1p$B zb6;~4vmL%MR@p9hl9sSl`~@whO6s4Vhi}k+@n3GzON2V)lN-JZB1sS=BMhVTBvcA zX`k_GtRE{Oe;_ZC9j0x{_sU6=#k5g*-1MXTmi!*>BA#V;`D0oaZL3;2wJP;Us$Ozr zs!Hlka-dpQ{V(R}g>V-?SE?)hDeaUi$y|O}nIl(IX30~fPvv(dFCWQD@H(2Njer(b zZDA@)eOCK1HCf%PO;(@A8p&QQONy|=e6#$sbd+^AwZI5}*tC=l<}P`kdf)6Rbl5i7 zI=*y^QX8aCLb34CVB$gQe*aLz$gbEv^C$5eH*UuVd+tleQ+N3N{U z(Ot>Sj%Lv{w?2-ZvwJMfQdd&Xt4IB%y)B|+0ww(^?GrXD9!mYlx+sOMADYiw3Z+%G ztu+0tOgH&0-(ybQ-5#{gG&jg-l)Ec~_eRc)8$d*%7?Da;9GKJ;i=@`s5zTJPla z;A64p`2t6?!sndh6<4ZKaGdsX+IH=3vXZ@1ub(+k$aN@e9G z^AuiAJEmMohW%R1s?~`fj1N%5sb5m>a%O64{z=KQ477e`+G)99o2p#pUUg<-rdHcj zTFRDIS~IQL@+4`I)Q(-#p5&e7%1TMOu=yoRGbPRRlle_VfQRfH;_gT_mdZ|5Nd1s3 zm3me!tTp2;SPiT&O=L%~a`OXL6hGi&)TQbOK9`qfZn>{KS$a}FrdZ4tb8XWbrjTil z^1i%Oi7K7se$ol{uEtWgla1AE?F8m*>OW3QX zSL6?+h-{V*EA=fFWjl@|{73BwKcl{=?dErr*OCFAqc%&`<}0=5G+OQWot0IdkQeeV zS$FonmcCNsiHK3?c@XbC9RRBsRz`V>R`2n`hhx7-H~GIQ1#c;{nTxBrCM5jN-YGAOw)3- zue2rFZY`7V!U|hCwwg7QhDx2KFnbH@XdBpYHk@zJc4@b?_1aWzkv3cVP7~?DHYqJlT}+piSCxgzZl#8DP+lwd zloffVR7rYHYA(IUuJVR_t~O13RI8#!Qu|Yxsa7ec+Eaa~?tw1Pq1BUEO>M~LhVcKYi*@AN1LJj zr2V1Y(Ms{2d=g*Ew_z2vEo+2z&RqTtAIV?m&G}7jr*=k@`D45pe~oYDfAYOpO)ZO+ z-y2u~U5C70{3&kdx3$Gu2d%c&LVFQ?ysov<%4@264l#Bde7dPxUQJV7YBBY3wH56A zHE?JLd>!Dz2COw#VWZg>Y&R<>^_K=q?@J#`1At;}shnhyZbSRa>@*87r*spmp(?w? zzGlnWLBtXtyUDyPO|nT@QZuQE)J}R^8YR6Ty&}CRwUKH_#Uw2DNRkvo?d$9u+sa-8 z;3m(JNmIg}8rMprgxsg0bo`L%t1_mFK$H~p)N96<3^O6&uGoJNk zO~Jt!-vfL`a1&pry`eE}srnyi=us=Hwbg93y*gH1t$NjxT4QaP_72hZkz5~{u#h>9}ZG-lnHb5JsjnY2TmT3nyRm$C^Q2YMTIqA(*ikAaIV8IjXAjsF_9r{b zF0gAX%KYpkJC3?*kv6iqz-20%$=*k_7>m>e>++0UfxoT;rzY_?u*N+f%sC0Iim-<4 zIW`!jCb7xvb2cAo0a}=j^LLQnjn##QCs1z~Z_G>ZB>eh!@O3N@8m9HvI%##Za#|U! zIyl`=8=*}^bXcby&~i05FU@Q79;o*^e+Sx6K#cx@ui-oK?BEi=jHe#A(SHal^jTPg ze*qpc8#2#ivv4$my$Sxk$_8LA@d^<7gw23VbM*8M>w|UsK447+JT)qTXHWE0$Bm~A z#c@X83DWZpGptepvUg-Jf>A#LnPZ#X0EJ~Kawj8$Q(055z2}h6MNkSDoRe2N~$V4);+u+77 z*nU2r!x!@hLVG48R@89g*AY0*TJt1Mzcof|4CLET9~219iX(2 z{|Nqk%E$5nyaR8-tMdxH3NWq7EAjG3)p!?RI|}w3%irZ6@p=4f^!W|n1pXa^4_oo< zq$uR73caeK?WU|1tB2#Kaa13DHvv9%fPGt7`6Znz|6w1pY4H20_^n`zz=s7uYXX?` zD&kjnM8|qMN@buceQin4A|Jqp4siboTx$!<48aKS1{;HM>OJsh0Puf~bz)s{ttND% zXMrI+ojJ+(g9$4k^DI7te+KD41pkuo%%&vzD*}v5;`vlM zFt+MXf9!Y;76gYL;OWmFKzu7OU&Oz{Zy}KQ9++=I{vEUu!?PbJo2>|6 zAH*}G+hF4@{LbO&(M8C17|)QdA(~#s)3Gp0+{4wYh_w4*!yS-s1KM88SMcwk!7~0i z{CO_yybRKB3lq5#0Q8K)1ciP zV7e6AZbi8rD18z&x8dw(eY+LN??HQeaQ-Wh`wdq%!qdM)jfH$B*gp@P{0{i6K&0Kw ze}@#u@a&JC(3!x9lHktcU}t^k*%Vkc(^Fe8rVpY*U)CQiA`PF1hFw{E;6SN9nA;E> zZUAh^dm4hvH4&RDf$#J*+JvW!F4(ycJfN5!B}(B+DV!C?8Aa=A@Pp<+xDDFuiS~PA z+g)$J6>^)yJDNcr>Z1{R3N2TL=M!`2d8-88)6>%+{P`}}a~W*8jo%gEd>%*>Tj)9D zAMoLQz;+|BT?MYJ1S`MMIl2IBp9Xv31BJL;bV?^RHh{VIdwBc+d(i=#_V2^>YO;_-+ z39Aj;(a84*JgXFtE~@($J@F=N?jhEB@q370F8nZ|zsV4WJ`w#WqN5l=K8AP16M9}B zfZlh2C^7Q@m`Y6BhO`-8w;H_q7C0?HT%3(GM^9gZVGH%#d0^@iJ$(k+he0v>!4=@gz9h1GQx@Yu6`)lMmM8l+1`nP_dI~(P zgI{%|Y?Po>3FAyz=uf(5fm_88sS5w2E#h|r@Tm>%etUz_FS3_`|4{sffa86@ye_!X z86Mmo{!Q#_3_e#w+ccutflCPZ5d&^R^0P>1pv#}oX`k-96#LdeW06+!(& zEysQ>#uA#5Y(RY73{TyG==%%&br0gfUNG(u5IP2I&ggBQL#(&}79IzKDG_?dkxuEn zybXJL@n!&7F`*-9*WXwm1d7AU%EMQxf)`IfgC~I0Q_!X*bn6D)2Vo=`iD)+lGmdfK z-#8q-1y;STb88eh`5Mxj;M-uJ^a5)1hHv%-LeC*}#(3TVqZoN)HS|(W_edv30~%H6 z-Hlto=bUcmW6+AyK3#g!k7jH~|ME%7KLBQs?!N=Wy})9Z{@VhK$X8bZ!|&ls-{41k zif1cu^qqdR8h9FLZq;MqZ)oQL5Ihgu&OnN*I>&B6q8#9q#2X7X*iyWOLT|WK08Zs~ zmQ@2rHIbgw$KzUh9IFiNDuacDWHzomh4eI7*a$p&3L`CXk|Gqnzd#X?MunC@rUmjT zHAQ|?{ir@#eM+CVX6sflEK^OlPF3VR2A-7z(~5$*G?TI;zR|luglPb%67#Nu4}XFI zM}X9Boj1Q>za8;sBY5>aqR&G3-U6US2(5tctwvf0EH?rjV%tujOwsT#F!~c1oz<;$ z0v4gs;P_v;7ZE)vUC?7Hc_~(5AOnrlF+>NBF~bfVN!DWUy3)X?Dp0BfBp=g}s)d+T z7m56h(4lDF2B|d=>I^SyuOGM2^P6BCsfV&p0*i{U2HB(nB3TLWs+gY0UM2DK;EZMs zE<_6Y(c3+CU{wTps{Wph2_pj@CZnuN_Xa!SnS@zJ9J4*~c8`XmknTJ8py6d8Kt6XA zh*E?)3f@w>r2Fwx^fQvMbx(2kbBmWLs%hKOjQgEL_nBK$aa04S4y+b2GCwe=JB3nh^k&Q@4*tG*{ zt@Jqu9d`o5S|V3O#G1gq64Dc}z@vzMWS6qANm=A)>upp7v&!LGX^akKfG%C7ccYv@ z&xHA-8R*5qvWL1}q+0}MWNmr}=>dEv0Bs}sER5dB3Zewf*m6+GZV$F86injziS+oTc84{W?Rzm2kY(91R5 zr!QfD8Hk@o&GWjQ?&~dvA%7Cg4C^DEAIB=N^yvJopvS;$=v@(bh`Yqcz_wb5ji^hm__`)Nw zz@s`(%V1BjI1^V2fsGdY=uIs@B&Ijm=Az6=D5kH16`awp#0n=;`DZ+=q+;9*d#L1O5Uc`%{?R zo`BcAk7!vFHZKeAe2Y8bvxu*+VI;Z^>^Jfc5ivF*Ry4tk_znE}v)^Ec0hr&8LK_v} zS@kd`tihe~2m0KD<{@o>Q5k6E1}cZp`+dZQB03t4*=JaXT7&uZ$C%s9$I8T~7)g4e z=IfBAD=@hPe|dm8hXx#OLF?k-tr2h3=D8c}coAA`Bv8r*sPfPFtc1ap(E=;L=p!zGA*6IHwu+ zF8K5k%v=@$opWf5-i8dI)f~t}bErFdRHT_o5O+c(6~!ESOEihLJcxLe5uLJNk8C~K zRRKS4BL-YWjeFSM0H-CCq6pXm;|1OI)yMeK5aZ~x7*C&vZ#Te-YJKecV~nj0o&;dO zqA1Y;xutd1Wr3*;;q}kJ>W}L&w=QPNgE4>U38rR&aTT$z2kaT%Ogjy!R}dL;imPtXQw3_YilpPLyAX z`;ymy?rxxa1~GFj=7T#>`Zi`Facs|n#VatkUJX1MWGey8XjWi?4juK?3_JX&82pBO zFaTe^1#hQ$>19ZJ2E7&m4;liGHo)ZxFsv9P?+*S9f%ZvYdIu5t8O)zs0;|KY?+@rb z4dv*)L@#W|fI~JgehfSdq5NHp4po72Hd^b5mRf*;y>ZkZ93G09O+y`Xis@$fbzz+4 zfHy1P4PHFW?}72EBHmZLgmxam*+6*RM3!&w$~?+H+v&d8Ay_+<{W(f&5KG-d#xhf#^fDc^E!(2-v1@jiTs9l#W5BI^Zlv zd&hv?A>b|P+X z#(u1%bOn|#02i6jU3&g=Hc$h!Ioi7>m1Y!|dV1}X4n6lSSjlsyJK4gim`;L~>a!$#a=AB9EIfQ*y< z3VS`|B{0J)4tY=D`c>E_j1n}r)bJ+ilek;x4xS`=F)-`_@+ZOKW_AiK?S!;H!8$?S z9QSe~!Ms9PS+xMM;i#1jjBfDiY!B8Khhr|@knKfmFM)`12wvC$b!&l@Ut$f;#^wW= z%ka9g(DDEx!fX~}x4_<;u)uKkJ?8FT@viWe_pzdO8XSESdOy$mVTJxIzsoks8|7Vm zllpRQIXs~x1SmO?_3@i17A2tJ5C?>B!Jf6inVQp;^A}GCgEdlFS zP^UJKX^0p)33tW4f$A|>Vgg#H6}#eyl!xJECE)w?-n17yE(zRrh~~{yZVD8- zBQ7ogk{^ND5}xy|)PCddf!*cUTz+1gq}@=T)&_$O4ba{oEu^hve;`u!lTu8Q)<|O! zor!L&%yFgsh(6pD#ed!A7e#(6MI5RXMHuh)>kXUJL7plinqmc zf{9>Jd%jI;u1&^Mjh3+W0jvf}utx{1WiN$%jUeeBHcL7oO_l0M-(gPhEynkfm_s(z zqiJziU<&&M>k>CHK5qgG)*~jA!T59wE9xiEb0u793%2)!?b^YoZsU3{tOqXv0yOWH z5IsJDhrEfk&qipi5<3U42!b6R@I4dPDW10h3#wx!{0lJdP4sgHaf8-dKjlMtYhIUk z2Xn_`9dI4ia$dtMXeb|y)!CkSdhkAu2chgXc;;HH_KX8hUjWue;n~Nb?*&M78D4xG zR^5+?vIH^sdqmwc$iIz9dJ6elfd5fE<9q{XoCfbFf;|bug-aO!K0}Su`kYll{I88T z7l9O;5v7BOOF>-Q4SeLEMZ zy~5uHs{Qz@SP}1v8EFsTItHuXwX5HMT=uBmC+Dt*X$7)-Ae%0ma~vbe~ua-d72p zUm4eF{?!l&h*6{l>b26x`t}%=ngWU1xcVfx)Db1BwKw;|Hdnh&j8?gfHp!NH?o=K)0a6F5Hu zX=o(Bk2YgCx{7gRiEWfYw4!BJUp3UG${D>r`-o zX1Gzbkcp9xzBZyYhcv{n2(*o(2Tj*N1rGGR2gBG%U#D30dzuokA>H#o4*N9Ltwxq= z2s^dHol`Y^PD`sQjd5Hanid6K9$-LsLKd_YfFyB@i%EEqtm{B`o)4i3?Jq-a;ts8J z5jHu{obChZOC$RBh(=xdHYWrvVnBhu9!elqQxEiX(1LlV9oo^=6s`)*Qm}M7a${(d z+N0iR_4q1|Xl`>&Z<)T?qI=-`=r;|vR?r%u5ko$M_Vg7F-3ie8zJxu;6$M%mv+3@D zo^#NbO0?EQ=NUlPjqCIc6v;`e7z(b?-89`xcro74_c{^uPDuN3#Bi0NG_7EGP@ldL zBMZ6p7HF>HKq4${C_}Sny8jL0CswMdC9%d!D<6bl9IaB0SihmVBpW@;p|7ZDZl4Ly za^uK_trLCHdN6T>?#LW^E`7~J-)xb*qECt_gnTaAH=%~CAJa;a_)3dP2r>FnOhXIwKVxms zo1qmdPdRiKO)GR{3(}E%Q#_-fcIit=if<$dwL+Glm`cx<2y3#AAtTv9f_CI5RD!&P z7))Onl2sh2PpAtm$^O(PF`sgYiNqxOR*`-}FVaV>chPEl0EwQLgi$VrJw*|!LF^;x z&>;4N3h7Q#6Bc5Pjc_BWi3@gEn|#a-&ld5D)-s(qPs2504Sk!bpsYj3izKA)3JE*G z5PDW4Y(b?&tKzy~BVj=rkPna);z%%`zBmklEA+)CJ>4SB#A+W!j}VgZA<~riKw6T= zh*rqb8YzlD+Eah@ZKgOTxd=;Q7u~IreQ3O(H8YA1f<075;6d65j+4B^3$iO|WYaB1 zSO{McxnxTkcWt_z#Tq#wF7y;pfWEmkVn7V`p=dz%B8%le7S^L{6gMf6-lRR1iou44 z#>6X<($GO5E;OTWLCIQ#K5@^$U$BwNP%V;_S`i*eM>>GI+?0n4y1gjE5HHDQf5(}y zA++dEcoMZKN(t=^Yg1kN)>WWFd!r8Rg?zN7V?!sh5oti0P$I7&CfcDL*}&i=9g)W3 z8r2YX5nHmVkd6F~n3n*K2}mPGPudDg5bA7{^%p<)?E7H>ekEHKrg}!;Z3WTT~QCC=n zWDz5Zu(V(`^-VGvQGq;3_#@duSO`KRPuNhD6gk8L%FWYK%*hB3!DC}fyd`W1HNk3; zL)Z#`Hdt-MF5wY`nc$nijbt*gBZg4KBA+FsjFg9*!Fhul!gB?_#0L?h1UNovx?;Dv}^A_f?-z=#7PvWcxI zLDnHYi8x6ykB-T%WHZ{+Hh-c>FA`m)Khn*xJ?WPpQIRil=-BW+17Q)}MUEAo&Zsz z=R|ZYd{y{1)u%C0*nqZTzC~zK5C2RC-U4UhLw?>9+6KmC2Qk(dtPxlfQe=CPgzt;3 zF**{P@{-~Egoem9m?k2iK%0&Qav~xM?2H;lT@l}fpHOr*tZ#UC-Y85m3*XPLlRzX7 z7r|J(STFFQ96BP5=!mw24DmyFsfci5>@Yk~Fhg*I=A(kcB8pHe zxM@j*y-ZG&C`;i4lSj z5mC(8iqTbgr4irAXN^SC8s19s7&wvU!d@f;9TR3`XG-LyB8k{f9+?;S#CR*bnEaLe z))+O&YX#p7PZKO5PEpFUf{3dI2T2ygBMn{|yfq@HXi@mAfgFv)!dq!npku?Q41W`z zmgl=vipq+3nr9OOdx3;tbN(1j%rSJLV=2y`F&%lAC6@P|IVo#U}ZsteHu!NY45?X``MIXXTFon(x z&Je1^H-RqI7Be71h*}qagj;?F2pq+@FJ`oc|IuD(NqPyiXogBjXfEQlu!)$12|NGQ z)nAc`ddqJ&p`&1nQBvd)8U}v^BKg@z+KZSg*g<7UdQpqElrIvsOGly=BUkJV_R&6% z-^OTQL`y0wS{CwCPX>bs8IgpIg`G*qyjch339JNOhEE!CkLuGEV@rFoLjGta(85rNuVhZ_@7(CRmfrBMD^&;m^&Jh87K;l z3yTqw0#ySAV>HY^9_Aerc1Fs}75*m}N_G%O0%viJS{Jq=T#YzEy$hZixEQF2crC_v z;)C!q;c)^V<5*~yUpHZ^ysg1wqc?$#fv&+wDn+u0KSM4;krG`q>Koh>yd$m%?-cC% zJC5Y5gagfX1#X7F8jQ@t#b{5on8#tkO@Uk9mZT9#{v{Y>7m^AM1foLv{9BF#jMX!X~ipr)h@aZ5cj+kNoj47t`mk-lcR*#i+gjSH~B3wORTCHycUQV zSP@2IoDyC`SP8E-N{HDPwNFSD*mXR zah39fB?KBq8G#caDq0q;80{PSl3pV68e2m?+8cTK<^TJ!z((jna?qdXLqGiA=Ys$L zwlzu%UGsFw%g@t@niIMkt&5)jeVeBVUC%o+j*PtgwZ%2TIwMwy2qPkhG2V&jV3afV zMhzp{5LVQpu@{yQvKy8Vj1;~s{8~f<5qm`x&Wi+8LX;KpL-5zIJhe%G#$NP9+dLhG zhNS!7|MJQjN1_#B7em^-z3BPhEGn2Lwnll;CiR$K7DEC9b&|=DE00IQ2Mr7jKQl^- zy0jHOVYF|Q7gwk!Q9@WlSS-(r=_;L3EyJ3|RU_}8RyBGSbwz*FkC2e|hEzg(0}F%C zqMWc@9$E(av^Q!H)<&!U-qt_;!e~X*GR~;IfBXAqzEO(u|4lL>m(h|@`|tXa{`5zs z#8IAQDTjV}2>!E-xSqEaeTjCAR`XgGSO1@%=e1+V^mjS)IP-VOsdS#qd94_7idORE z$UD!IF#lC*L1_N>>;K=L390f+|9?8pL+9U165^ID*5d1wE(Bcrrv@t-{ywZ+wc+ZrWk|8Lg|@(K_rK%fAD0tEiwAn?Bcx5f^4 diff --git a/packages/kilo-vscode/audio-wav/staplebops-05.wav b/packages/kilo-vscode/audio-wav/staplebops-05.wav deleted file mode 100644 index 194f85d02c66ff48bb196ee342147e631caa3c98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22606 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 diff --git a/packages/kilo-vscode/audio-wav/yup-02.wav b/packages/kilo-vscode/audio-wav/yup-02.wav deleted file mode 100644 index acf914a649147f82f8159d5e0c383c0c6005a949..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71758 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 ZAOa#F0wN#+A|L`HAOa#F0{<_8{{Rp-X08AL diff --git a/packages/kilo-vscode/audio-wav/yup-03.wav b/packages/kilo-vscode/audio-wav/yup-03.wav deleted file mode 100644 index 58865b47fc3b8392ffb8c081a7f37f7d63474db6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65614 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 diff --git a/packages/kilo-vscode/audio-wav/yup-04.wav b/packages/kilo-vscode/audio-wav/yup-04.wav deleted file mode 100644 index 08f474cc771dd277c7da14d5da87b6ebc7d8ef2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63566 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 diff --git a/packages/kilo-vscode/audio-wav/yup-05.wav b/packages/kilo-vscode/audio-wav/yup-05.wav deleted file mode 100644 index 8837d4040a8e1d94bc96d70867e2d0636c9aa3d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90190 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 diff --git a/packages/kilo-vscode/package.json b/packages/kilo-vscode/package.json index ddf2af1422..a8f230726b 100644 --- a/packages/kilo-vscode/package.json +++ b/packages/kilo-vscode/package.json @@ -942,182 +942,10 @@ "default": false, "description": "Run browser automation in headless mode (no visible window). When disabled, you can watch the agent interact with the browser." }, - "kilo-code.new.sounds.agentEnabled": { + "kilo-code.new.attention.enabled": { "type": "boolean", "default": false, - "description": "Play a sound when an agent completes a task" - }, - "kilo-code.new.sounds.permissionsEnabled": { - "type": "boolean", - "default": false, - "description": "Play a sound when a permission or question needs input" - }, - "kilo-code.new.sounds.errorsEnabled": { - "type": "boolean", - "default": false, - "description": "Play a sound when a session errors" - }, - "kilo-code.new.sounds.agent": { - "type": "string", - "default": "system", - "enum": [ - "system", - "default", - "alert-01", - "alert-02", - "alert-03", - "alert-04", - "alert-05", - "alert-06", - "alert-07", - "alert-08", - "alert-09", - "alert-10", - "bip-bop-01", - "bip-bop-02", - "bip-bop-03", - "bip-bop-04", - "bip-bop-05", - "bip-bop-06", - "bip-bop-07", - "bip-bop-08", - "bip-bop-09", - "bip-bop-10", - "staplebops-01", - "staplebops-02", - "staplebops-03", - "staplebops-04", - "staplebops-05", - "staplebops-06", - "staplebops-07", - "nope-01", - "nope-02", - "nope-03", - "nope-04", - "nope-05", - "nope-06", - "nope-07", - "nope-08", - "nope-09", - "nope-10", - "nope-11", - "nope-12", - "yup-01", - "yup-02", - "yup-03", - "yup-04", - "yup-05", - "yup-06" - ], - "description": "Sound to play when an agent completes" - }, - "kilo-code.new.sounds.permissions": { - "type": "string", - "default": "system", - "enum": [ - "system", - "default", - "alert-01", - "alert-02", - "alert-03", - "alert-04", - "alert-05", - "alert-06", - "alert-07", - "alert-08", - "alert-09", - "alert-10", - "bip-bop-01", - "bip-bop-02", - "bip-bop-03", - "bip-bop-04", - "bip-bop-05", - "bip-bop-06", - "bip-bop-07", - "bip-bop-08", - "bip-bop-09", - "bip-bop-10", - "staplebops-01", - "staplebops-02", - "staplebops-03", - "staplebops-04", - "staplebops-05", - "staplebops-06", - "staplebops-07", - "nope-01", - "nope-02", - "nope-03", - "nope-04", - "nope-05", - "nope-06", - "nope-07", - "nope-08", - "nope-09", - "nope-10", - "nope-11", - "nope-12", - "yup-01", - "yup-02", - "yup-03", - "yup-04", - "yup-05", - "yup-06" - ], - "description": "Sound to play when a permission or question needs input" - }, - "kilo-code.new.sounds.errors": { - "type": "string", - "default": "system", - "enum": [ - "system", - "default", - "alert-01", - "alert-02", - "alert-03", - "alert-04", - "alert-05", - "alert-06", - "alert-07", - "alert-08", - "alert-09", - "alert-10", - "bip-bop-01", - "bip-bop-02", - "bip-bop-03", - "bip-bop-04", - "bip-bop-05", - "bip-bop-06", - "bip-bop-07", - "bip-bop-08", - "bip-bop-09", - "bip-bop-10", - "staplebops-01", - "staplebops-02", - "staplebops-03", - "staplebops-04", - "staplebops-05", - "staplebops-06", - "staplebops-07", - "nope-01", - "nope-02", - "nope-03", - "nope-04", - "nope-05", - "nope-06", - "nope-07", - "nope-08", - "nope-09", - "nope-10", - "nope-11", - "nope-12", - "yup-01", - "yup-02", - "yup-03", - "yup-04", - "yup-05", - "yup-06" - ], - "description": "Sound to play when a session errors" + "description": "Play OpenCode attention sounds when sessions complete, error, or need input" }, "kilo-code.new.showTaskTimeline": { "type": "boolean", @@ -1199,6 +1027,7 @@ "@kilocode/kilo-i18n": "workspace:*", "@kilocode/kilo-indexing": "workspace:*", "@kilocode/kilo-ui": "workspace:*", + "@kilocode/plugin": "workspace:*", "@kilocode/sdk": "workspace:*", "@opencode-ai/ui": "workspace:*", "@pierre/diffs": "catalog:", diff --git a/packages/kilo-vscode/src/KiloProvider.ts b/packages/kilo-vscode/src/KiloProvider.ts index 299387ace7..7cbea32d29 100644 --- a/packages/kilo-vscode/src/KiloProvider.ts +++ b/packages/kilo-vscode/src/KiloProvider.ts @@ -1066,7 +1066,7 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper this.sendNotificationSettings() break case "testNotification": - previewSound(message.settingType, message.sound) + previewSound() break case "requestTimelineSetting": this.sendTimelineSetting() @@ -2293,18 +2293,13 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper this.connectionService.notifyNotificationDismissed(notificationId) } - /** Read sound settings from VS Code config and push to webview. */ + /** Read attention settings from VS Code config and push to webview. */ private sendNotificationSettings(): void { - const sounds = vscode.workspace.getConfiguration("kilo-code.new.sounds") + const attention = vscode.workspace.getConfiguration("kilo-code.new.attention") this.postMessage({ type: "notificationSettingsLoaded", settings: { - soundAgentEnabled: sounds.get("agentEnabled", false), - soundPermissionsEnabled: sounds.get("permissionsEnabled", false), - soundErrorsEnabled: sounds.get("errorsEnabled", false), - soundAgent: sounds.get("agent", "system"), - soundPermissions: sounds.get("permissions", "system"), - soundErrors: sounds.get("errors", "system"), + attentionEnabled: attention.get("enabled", false), }, }) } diff --git a/packages/kilo-vscode/src/services/attention/attention.ts b/packages/kilo-vscode/src/services/attention/attention.ts deleted file mode 100644 index 3934a58e04..0000000000 --- a/packages/kilo-vscode/src/services/attention/attention.ts +++ /dev/null @@ -1,204 +0,0 @@ -import type { SSEPayload } from "../cli-backend/sdk-sse-adapter" - -export type AttentionKind = "done" | "subagent_done" | "question" | "permission" | "error" - -export type AttentionSignal = - | { - type: "session" - sessionID: string - title?: string | null - parentID?: string | null - deleted?: boolean - } - | { type: "status"; sessionID: string; status: "active" | "idle" } - | { type: "question"; sessionID: string; requestID: string; open: boolean } - | { type: "permission"; sessionID: string; requestID: string; open: boolean } - | { type: "error"; sessionID: string; error?: unknown } - -export type AttentionNotice = { - sessionID: string - kind: AttentionKind - title?: string - message: string - subagent: boolean -} - -type Meta = { - title?: string - parentID?: string -} - -type SessionSignal = Extract -type StatusSignal = Extract -type RequestSignal = Extract -type ErrorSignal = Extract - -export function sessionErrorMessage(error: unknown) { - if (!error || typeof error !== "object") return "Session error" - if ("name" in error && error.name === "MessageAbortedError") return "Session aborted" - if (!("data" in error) || !error.data || typeof error.data !== "object") return "Session error" - if (!("message" in error.data) || error.data.message !== "SSE read timed out") return "Session error" - return "Model stopped responding" -} - -export class AttentionTracker { - private readonly active = new Set() - private readonly errored = new Set() - private readonly questions = new Set() - private readonly permissions = new Set() - private readonly sessions = new Map() - - handle(signal: AttentionSignal): AttentionNotice | undefined { - switch (signal.type) { - case "session": - return this.handleSession(signal) - case "question": - return this.handleRequest(signal, this.questions, "question", "Question needs input") - case "permission": - return this.handleRequest(signal, this.permissions, "permission", "Permission needs input") - case "error": - return this.handleError(signal) - case "status": - return this.handleStatus(signal) - } - } - - reset() { - this.active.clear() - this.errored.clear() - this.questions.clear() - this.permissions.clear() - } - - dispose() { - this.reset() - this.sessions.clear() - } - - private handleSession(signal: SessionSignal): AttentionNotice | undefined { - if (signal.deleted) { - this.sessions.delete(signal.sessionID) - this.active.delete(signal.sessionID) - this.errored.delete(signal.sessionID) - return - } - const current = this.sessions.get(signal.sessionID) ?? {} - const title = signal.title === undefined ? current.title : signal.title || undefined - const parentID = signal.parentID === undefined ? current.parentID : signal.parentID || undefined - this.sessions.set(signal.sessionID, { title, parentID }) - } - - private handleRequest(signal: RequestSignal, requests: Set, kind: AttentionKind, message: string) { - if (!signal.open) { - requests.delete(signal.requestID) - return - } - if (requests.has(signal.requestID)) return - requests.add(signal.requestID) - return this.notice(signal.sessionID, kind, message) - } - - private handleError(signal: ErrorSignal) { - if (!this.active.has(signal.sessionID)) return - this.errored.add(signal.sessionID) - return this.notice(signal.sessionID, "error", sessionErrorMessage(signal.error)) - } - - private handleStatus(signal: StatusSignal) { - if (signal.status === "active") { - this.active.add(signal.sessionID) - this.errored.delete(signal.sessionID) - return - } - if (!this.active.has(signal.sessionID)) return - this.active.delete(signal.sessionID) - if (this.errored.delete(signal.sessionID)) return - const session = this.sessions.get(signal.sessionID) - return this.notice(signal.sessionID, session?.parentID ? "subagent_done" : "done", "Session done") - } - - private notice(sessionID: string, kind: AttentionKind, message: string): AttentionNotice { - const session = this.sessions.get(sessionID) - return { - sessionID, - kind, - title: session?.title, - message, - subagent: session?.parentID !== undefined, - } - } -} - -export function toAttentionSignal(event: SSEPayload): AttentionSignal | undefined { - if (event.type === "sync") { - if (event.name === "session.created.1") { - return { - type: "session", - sessionID: event.data.sessionID, - title: event.data.info.title, - parentID: event.data.info.parentID ?? null, - } - } - if (event.name === "session.updated.1") { - return { - type: "session", - sessionID: event.data.sessionID, - title: event.data.info.title, - parentID: event.data.info.parentID, - } - } - if (event.name === "session.deleted.1") { - return { type: "session", sessionID: event.data.sessionID, deleted: true } - } - return - } - - if (event.type === "session.status") { - const status = event.properties.status.type - if (status === "busy" || status === "retry") { - return { type: "status", sessionID: event.properties.sessionID, status: "active" } - } - if (status === "idle") return { type: "status", sessionID: event.properties.sessionID, status: "idle" } - return - } - - if (event.type === "question.asked") { - return { - type: "question", - sessionID: event.properties.sessionID, - requestID: event.properties.id, - open: true, - } - } - if (event.type === "question.replied" || event.type === "question.rejected") { - return { - type: "question", - sessionID: event.properties.sessionID, - requestID: event.properties.requestID, - open: false, - } - } - if (event.type === "permission.asked") { - return { - type: "permission", - sessionID: event.properties.sessionID, - requestID: event.properties.id, - open: true, - } - } - if (event.type === "permission.replied") { - return { - type: "permission", - sessionID: event.properties.sessionID, - requestID: event.properties.requestID, - open: false, - } - } - if (event.type === "session.error" && event.properties.sessionID) { - return { - type: "error", - sessionID: event.properties.sessionID, - error: event.properties.error, - } - } -} diff --git a/packages/kilo-vscode/src/services/attention/index.ts b/packages/kilo-vscode/src/services/attention/index.ts index fa18a0a644..a621bf6e22 100644 --- a/packages/kilo-vscode/src/services/attention/index.ts +++ b/packages/kilo-vscode/src/services/attention/index.ts @@ -1 +1 @@ -export { AttentionService, previewSound, type AttentionSetting } from "./service" +export { AttentionService, previewSound } from "./service" diff --git a/packages/kilo-vscode/src/services/attention/service.ts b/packages/kilo-vscode/src/services/attention/service.ts index 4eecae7b00..cc272a9191 100644 --- a/packages/kilo-vscode/src/services/attention/service.ts +++ b/packages/kilo-vscode/src/services/attention/service.ts @@ -1,56 +1,120 @@ import * as vscode from "vscode" +import type { TuiAttentionSoundName } from "@kilocode/plugin/tui" +import type { SSEPayload } from "../cli-backend/sdk-sse-adapter" import type { KiloConnectionService } from "../cli-backend/connection-service" -import { AttentionTracker, toAttentionSignal, type AttentionKind, type AttentionNotice } from "./attention" -import { playSound, resolveSoundID } from "./sound" +import { playSound } from "./sound" -export type AttentionSetting = "agent" | "permissions" | "errors" +type Sync = Extract +type Question = Extract +type Permission = Extract +type Status = Extract +type Error = Extract -function setting(kind: AttentionKind): AttentionSetting { - if (kind === "error") return "errors" - if (kind === "question" || kind === "permission") return "permissions" - return "agent" -} - -function fallback(kind: AttentionSetting): AttentionKind { - if (kind === "errors") return "error" - if (kind === "permissions") return "permission" - return "done" -} - -export function previewSound(kind: AttentionSetting, value: string) { - const id = resolveSoundID(value, fallback(kind)) - if (id) void playSound(id) +export function previewSound() { + void playSound("default") } export class AttentionService implements vscode.Disposable { - private readonly tracker = new AttentionTracker() + private readonly active = new Set() + private readonly errored = new Set() + private readonly questions = new Set() + private readonly permissions = new Set() + private readonly parents = new Map() private readonly unsubscribeEvent: () => void private readonly unsubscribeState: () => void constructor(connection: KiloConnectionService) { - this.unsubscribeEvent = connection.onEvent((event) => { - const signal = toAttentionSignal(event) - if (!signal) return - const notice = this.tracker.handle(signal) - if (notice) this.notify(notice) - }) + this.unsubscribeEvent = connection.onEvent((event) => this.handle(event)) this.unsubscribeState = connection.onStateChange((state) => { - if (state === "error" || state === "disconnected") this.tracker.reset() + if (state === "error" || state === "disconnected") this.reset() }) } dispose() { this.unsubscribeEvent() this.unsubscribeState() - this.tracker.dispose() + this.reset() + this.parents.clear() } - private notify(notice: AttentionNotice) { - const key = setting(notice.kind) - const sounds = vscode.workspace.getConfiguration("kilo-code.new.sounds") - if (!sounds.get(`${key}Enabled`, false)) return - const value = sounds.get(key, "system") - const id = resolveSoundID(value, notice.kind) - if (id) void playSound(id) + private handle(event: SSEPayload) { + if (event.type === "sync") return this.sync(event) + if (event.type === "question.asked" || event.type === "question.replied" || event.type === "question.rejected") { + return this.question(event) + } + if (event.type === "permission.asked" || event.type === "permission.replied") return this.permission(event) + if (event.type === "session.status") return this.status(event) + if (event.type === "session.error") return this.error(event) + } + + private sync(event: Sync) { + if (event.name === "session.created.1") { + this.parents.set(event.data.sessionID, event.data.info.parentID) + return + } + if (event.name === "session.updated.1") { + if (event.data.info.parentID !== undefined) { + this.parents.set(event.data.sessionID, event.data.info.parentID ?? undefined) + } + return + } + if (event.name !== "session.deleted.1") return + this.parents.delete(event.data.sessionID) + this.active.delete(event.data.sessionID) + this.errored.delete(event.data.sessionID) + } + + private question(event: Question) { + if (event.type !== "question.asked") { + this.questions.delete(event.properties.requestID) + return + } + if (this.questions.has(event.properties.id)) return + this.questions.add(event.properties.id) + this.notify("question") + } + + private permission(event: Permission) { + if (event.type !== "permission.asked") { + this.permissions.delete(event.properties.requestID) + return + } + if (this.permissions.has(event.properties.id)) return + this.permissions.add(event.properties.id) + this.notify("permission") + } + + private status(event: Status) { + const sessionID = event.properties.sessionID + if (event.properties.status.type === "busy" || event.properties.status.type === "retry") { + this.active.add(sessionID) + this.errored.delete(sessionID) + return + } + if (event.properties.status.type !== "idle") return + if (!this.active.has(sessionID)) return + this.active.delete(sessionID) + if (this.errored.delete(sessionID)) return + this.notify(this.parents.get(sessionID) ? "subagent_done" : "done") + } + + private error(event: Error) { + const sessionID = event.properties.sessionID + if (!sessionID || !this.active.has(sessionID)) return + this.errored.add(sessionID) + this.notify("error") + } + + private notify(sound: TuiAttentionSoundName) { + const config = vscode.workspace.getConfiguration("kilo-code.new.attention") + if (!config.get("enabled", false)) return + void playSound(sound) + } + + private reset() { + this.active.clear() + this.errored.clear() + this.questions.clear() + this.permissions.clear() } } diff --git a/packages/kilo-vscode/src/services/attention/sound.ts b/packages/kilo-vscode/src/services/attention/sound.ts index e0294bb1b3..c42f7158d8 100644 --- a/packages/kilo-vscode/src/services/attention/sound.ts +++ b/packages/kilo-vscode/src/services/attention/sound.ts @@ -1,80 +1,22 @@ import * as fs from "fs" import * as path from "path" +import type { TuiAttentionSoundName } from "@kilocode/plugin/tui" import { exec } from "../../util/process" -import type { AttentionKind } from "./attention" -export const CustomSoundIDs = [ - "alert-01", - "alert-02", - "alert-03", - "alert-04", - "alert-05", - "alert-06", - "alert-07", - "alert-08", - "alert-09", - "alert-10", - "bip-bop-01", - "bip-bop-02", - "bip-bop-03", - "bip-bop-04", - "bip-bop-05", - "bip-bop-06", - "bip-bop-07", - "bip-bop-08", - "bip-bop-09", - "bip-bop-10", - "staplebops-01", - "staplebops-02", - "staplebops-03", - "staplebops-04", - "staplebops-05", - "staplebops-06", - "staplebops-07", - "nope-01", - "nope-02", - "nope-03", - "nope-04", - "nope-05", - "nope-06", - "nope-07", - "nope-08", - "nope-09", - "nope-10", - "nope-11", - "nope-12", - "yup-01", - "yup-02", - "yup-03", - "yup-04", - "yup-05", - "yup-06", -] as const - -export type CustomSoundID = (typeof CustomSoundIDs)[number] -export type SoundID = "system" | CustomSoundID - -const ids = new Set(CustomSoundIDs) -const root = path.join(__dirname, "../audio-wav") -const defaults: Record = { - done: "bip-bop-01", - subagent_done: "yup-01", +const files: Record = { + default: "bip-bop-01", question: "bip-bop-03", permission: "staplebops-06", error: "nope-03", + done: "bip-bop-01", + subagent_done: "yup-01", } +const root = path.join(__dirname, "../audio-wav") let chain = Promise.resolve(false) let queued = 0 const limit = 3 -export function resolveSoundID(value: string | undefined, kind: AttentionKind): SoundID | undefined { - if (!value || value === "none") return - if (value === "default") return defaults[kind] - if (value === "system") return "system" - if (ids.has(value)) return value as CustomSoundID -} - async function run(commands: Array<{ cmd: string; args: string[]; env?: NodeJS.ProcessEnv }>) { for (const command of commands) { const ok = await exec(command.cmd, command.args, command.env ? { env: command.env } : {}).then( @@ -89,26 +31,7 @@ async function run(commands: Array<{ cmd: string; args: string[]; env?: NodeJS.P return false } -function systemCommands(): Array<{ cmd: string; args: string[] }> { - if (process.platform === "darwin") return [{ cmd: "osascript", args: ["-e", "beep"] }] - if (process.platform === "linux") { - return [ - { cmd: "canberra-gtk-play", args: ["-i", "message-new-instant"] }, - { cmd: "paplay", args: ["/usr/share/sounds/freedesktop/stereo/message.oga"] }, - ] - } - if (process.platform === "win32") { - return [ - { - cmd: "powershell", - args: ["-NoProfile", "-NonInteractive", "-Command", "[System.Media.SystemSounds]::Exclamation.Play()"], - }, - ] - } - return [] -} - -function fileCommands(file: string): Array<{ cmd: string; args: string[]; env?: NodeJS.ProcessEnv }> { +function commands(file: string): Array<{ cmd: string; args: string[]; env?: NodeJS.ProcessEnv }> { if (process.platform === "darwin") { return [ { cmd: "afplay", args: [file] }, @@ -139,26 +62,22 @@ function fileCommands(file: string): Array<{ cmd: string; args: string[]; env?: return [] } -async function perform(id: SoundID, dir: string) { - const play = async () => { - if (id === "system") return run(systemCommands()) - const file = path.resolve(dir, `${id}.wav`) - if (!file.startsWith(`${path.resolve(dir)}${path.sep}`)) return false - if (!fs.existsSync(file)) { - console.warn("[Kilo New] notification sound is missing", { file }) - return false - } - return run(fileCommands(file)) +async function perform(name: TuiAttentionSoundName, dir: string) { + const file = path.resolve(dir, `${files[name]}.wav`) + if (!file.startsWith(`${path.resolve(dir)}${path.sep}`)) return false + if (!fs.existsSync(file)) { + console.warn("[Kilo New] notification sound is missing", { file }) + return false } - const ok = await play() - if (ok) console.debug("[Kilo New] notification sound played", { id }) + const ok = await run(commands(file)) + if (ok) console.debug("[Kilo New] notification sound played", { name }) return ok } -export async function playSound(id: SoundID, dir = root) { +export async function playSound(name: TuiAttentionSoundName, dir = root) { if (queued >= limit) return false queued += 1 - const task = chain.catch(() => false).then(() => perform(id, dir)) + const task = chain.catch(() => false).then(() => perform(name, dir)) chain = task.finally(() => { queued -= 1 }) diff --git a/packages/kilo-vscode/tests/unit/attention.test.ts b/packages/kilo-vscode/tests/unit/attention.test.ts index ed4779d17b..e7bf59a093 100644 --- a/packages/kilo-vscode/tests/unit/attention.test.ts +++ b/packages/kilo-vscode/tests/unit/attention.test.ts @@ -1,130 +1,119 @@ import { describe, expect, it } from "bun:test" -import { - AttentionTracker, - sessionErrorMessage, - type AttentionNotice, - type AttentionSignal, -} from "../../src/services/attention/attention" -import { resolveSoundID } from "../../src/services/attention/sound" +import type { TuiAttentionSoundName } from "@kilocode/plugin/tui" +import { AttentionService } from "../../src/services/attention/service" +import type { KiloConnectionService } from "../../src/services/cli-backend/connection-service" +import type { SSEPayload } from "../../src/services/cli-backend/sdk-sse-adapter" -function collect(signals: AttentionSignal[]) { - const tracker = new AttentionTracker() - const notices: AttentionNotice[] = [] - for (const signal of signals) { - const notice = tracker.handle(signal) - if (notice) notices.push(notice) +function setup() { + const sounds: TuiAttentionSoundName[] = [] + const events: Array<(event: SSEPayload) => void> = [] + const states: Array<(state: "connecting" | "connected" | "disconnected" | "error") => void> = [] + const connection = { + onEvent: (handler: (event: SSEPayload) => void) => { + events.push(handler) + return () => undefined + }, + onStateChange: (handler: (state: "connecting" | "connected" | "disconnected" | "error") => void) => { + states.push(handler) + return () => undefined + }, + } as unknown as KiloConnectionService + const service = new AttentionService(connection) + ;(service as unknown as { notify: (sound: TuiAttentionSoundName) => void }).notify = (sound) => sounds.push(sound) + return { + sounds, + event: (event: SSEPayload) => events[0]?.(event), + state: (state: "connecting" | "connected" | "disconnected" | "error") => states[0]?.(state), + service, } - return notices } -describe("AttentionTracker", () => { - it("notifies once after an active session becomes idle", () => { - const notices = collect([ - { type: "session", sessionID: "s1", title: "Fix the bug", parentID: null }, - { type: "status", sessionID: "s1", status: "active" }, - { type: "status", sessionID: "s1", status: "idle" }, - { type: "status", sessionID: "s1", status: "idle" }, - ]) +function event(value: unknown) { + return value as SSEPayload +} - expect(notices).toEqual([ - { - sessionID: "s1", - kind: "done", - title: "Fix the bug", - message: "Session done", - subagent: false, - }, - ]) +describe("AttentionService", () => { + it("plays the upstream completion sound once after active becomes idle", () => { + const test = setup() + test.event(event({ type: "session.status", properties: { sessionID: "s1", status: { type: "busy" } } })) + test.event(event({ type: "session.status", properties: { sessionID: "s1", status: { type: "idle" } } })) + test.event(event({ type: "session.status", properties: { sessionID: "s1", status: { type: "idle" } } })) + + expect(test.sounds).toEqual(["done"]) + test.service.dispose() }) - it("uses the subagent completion sound category", () => { - const notices = collect([ - { type: "session", sessionID: "child", title: "Research", parentID: "parent" }, - { type: "status", sessionID: "child", status: "active" }, - { type: "status", sessionID: "child", status: "idle" }, - ]) + it("uses the upstream subagent completion sound", () => { + const test = setup() + test.event( + event({ + type: "sync", + name: "session.created.1", + data: { sessionID: "child", info: { parentID: "parent" } }, + }), + ) + test.event( + event({ type: "sync", name: "session.updated.1", data: { sessionID: "child", info: { title: "work" } } }), + ) + test.event(event({ type: "session.status", properties: { sessionID: "child", status: { type: "retry" } } })) + test.event(event({ type: "session.status", properties: { sessionID: "child", status: { type: "idle" } } })) - expect(notices[0]).toMatchObject({ kind: "subagent_done", subagent: true }) + expect(test.sounds).toEqual(["subagent_done"]) + test.service.dispose() }) - it("notifies for distinct questions and permissions while suppressing duplicate requests", () => { - const notices = collect([ - { type: "question", sessionID: "s1", requestID: "q1", open: true }, - { type: "question", sessionID: "s1", requestID: "q1", open: true }, - { type: "question", sessionID: "s1", requestID: "q1", open: false }, - { type: "question", sessionID: "s1", requestID: "q1", open: true }, - { type: "permission", sessionID: "s1", requestID: "p1", open: true }, - { type: "permission", sessionID: "s1", requestID: "p1", open: true }, - ]) + it("deduplicates question and permission requests", () => { + const test = setup() + test.event(event({ type: "question.asked", properties: { id: "q1", sessionID: "s1" } })) + test.event(event({ type: "question.asked", properties: { id: "q1", sessionID: "s1" } })) + test.event(event({ type: "question.replied", properties: { requestID: "q1", sessionID: "s1" } })) + test.event(event({ type: "question.asked", properties: { id: "q1", sessionID: "s1" } })) + test.event(event({ type: "permission.asked", properties: { id: "p1", sessionID: "s1" } })) + test.event(event({ type: "permission.asked", properties: { id: "p1", sessionID: "s1" } })) - expect(notices.map((notice) => notice.kind)).toEqual(["question", "question", "permission"]) + expect(test.sounds).toEqual(["question", "question", "permission"]) + test.service.dispose() }) - it("notifies an active session error and suppresses its following completion", () => { - const notices = collect([ - { type: "status", sessionID: "s1", status: "active" }, - { type: "error", sessionID: "s1", error: { name: "ApiError" } }, - { type: "status", sessionID: "s1", status: "idle" }, - ]) + it("plays the error sound and suppresses the following completion", () => { + const test = setup() + test.event(event({ type: "session.status", properties: { sessionID: "s1", status: { type: "busy" } } })) + test.event(event({ type: "session.error", properties: { sessionID: "s1", error: { name: "ApiError" } } })) + test.event(event({ type: "session.status", properties: { sessionID: "s1", status: { type: "idle" } } })) - expect(notices).toEqual([ - { - sessionID: "s1", - kind: "error", - title: undefined, - message: "Session error", - subagent: false, - }, - ]) + expect(test.sounds).toEqual(["error"]) + test.service.dispose() }) - it("clears active transitions when the connection resets", () => { - const tracker = new AttentionTracker() - tracker.handle({ type: "status", sessionID: "s1", status: "active" }) - tracker.reset() + it("clears transitions when the backend disconnects", () => { + const test = setup() + test.event(event({ type: "session.status", properties: { sessionID: "s1", status: { type: "busy" } } })) + test.state("disconnected") + test.event(event({ type: "session.status", properties: { sessionID: "s1", status: { type: "idle" } } })) - expect(tracker.handle({ type: "status", sessionID: "s1", status: "idle" })).toBeUndefined() + expect(test.sounds).toEqual([]) + test.service.dispose() }) }) -describe("sessionErrorMessage", () => { - it("classifies aborts and response timeouts", () => { - expect(sessionErrorMessage({ name: "MessageAbortedError" })).toBe("Session aborted") - expect(sessionErrorMessage({ data: { message: "SSE read timed out" } })).toBe("Model stopped responding") - expect(sessionErrorMessage({ name: "ApiError" })).toBe("Session error") - }) -}) - -describe("sound defaults", () => { - it("keeps every sound category opt-in", async () => { +describe("attention defaults", () => { + it("keeps OpenCode attention sounds opt-in", async () => { const manifest = (await Bun.file(new URL("../../package.json", import.meta.url)).json()) as { - contributes: { configuration: { properties: Record } } + contributes: { configuration: { properties: Record } } } const properties = manifest.contributes.configuration.properties - expect(properties["kilo-code.new.notifications.agent"]).toBeUndefined() - expect(properties["kilo-code.new.notifications.permissions"]).toBeUndefined() - expect(properties["kilo-code.new.notifications.errors"]).toBeUndefined() - expect(properties["kilo-code.new.sounds.agentEnabled"]?.default).toBe(false) - expect(properties["kilo-code.new.sounds.permissionsEnabled"]?.default).toBe(false) - expect(properties["kilo-code.new.sounds.errorsEnabled"]?.default).toBe(false) - expect(properties["kilo-code.new.sounds.agent"]?.enum).not.toContain("none") - }) -}) - -describe("resolveSoundID", () => { - it("uses the OpenCode attention defaults", () => { - expect(resolveSoundID("default", "done")).toBe("bip-bop-01") - expect(resolveSoundID("default", "question")).toBe("bip-bop-03") - expect(resolveSoundID("default", "permission")).toBe("staplebops-06") - expect(resolveSoundID("default", "error")).toBe("nope-03") - expect(resolveSoundID("default", "subagent_done")).toBe("yup-01") + expect(properties["kilo-code.new.attention.enabled"]?.default).toBe(false) + expect(properties["kilo-code.new.sounds.agentEnabled"]).toBeUndefined() + expect(properties["kilo-code.new.sounds.permissionsEnabled"]).toBeUndefined() + expect(properties["kilo-code.new.sounds.errorsEnabled"]).toBeUndefined() }) - it("accepts system and bundled sounds and rejects invalid values", () => { - expect(resolveSoundID("system", "done")).toBe("system") - expect(resolveSoundID("alert-04", "done")).toBe("alert-04") - expect(resolveSoundID("none", "done")).toBeUndefined() - expect(resolveSoundID("unknown", "done")).toBeUndefined() + it("packages the upstream default sound set", async () => { + const names = ["bip-bop-01", "bip-bop-03", "staplebops-06", "nope-03", "yup-01"] + const exists = await Promise.all( + names.map((name) => Bun.file(new URL(`../../audio-wav/${name}.wav`, import.meta.url)).exists()), + ) + expect(exists).toEqual([true, true, true, true, true]) }) }) diff --git a/packages/kilo-vscode/webview-ui/src/components/settings/NotificationsTab.tsx b/packages/kilo-vscode/webview-ui/src/components/settings/NotificationsTab.tsx index 72fee2f3b8..bc2c6a8547 100644 --- a/packages/kilo-vscode/webview-ui/src/components/settings/NotificationsTab.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/settings/NotificationsTab.tsx @@ -1,166 +1,54 @@ import { Component, createSignal, onCleanup } from "solid-js" import { Button } from "@kilocode/kilo-ui/button" import { Switch } from "@kilocode/kilo-ui/switch" -import { Select } from "@kilocode/kilo-ui/select" import { Card } from "@kilocode/kilo-ui/card" import { useVSCode } from "../../context/vscode" import { useLanguage } from "../../context/language" import type { ExtensionMessage } from "../../types/messages" import SettingsRow from "./SettingsRow" -interface SoundOption { - value: string - labelKey: string -} - -const groups = [ - { value: "alert", key: "alert", count: 10 }, - { value: "bip-bop", key: "bipbop", count: 10 }, - { value: "staplebops", key: "staplebops", count: 7 }, - { value: "nope", key: "nope", count: 12 }, - { value: "yup", key: "yup", count: 6 }, -] - -const SOUND_OPTIONS: SoundOption[] = [ - { value: "system", labelKey: "settings.notifications.sound.system" }, - { value: "default", labelKey: "settings.notifications.sound.default" }, - ...groups.flatMap((group) => - Array.from({ length: group.count }, (_, index) => { - const suffix = String(index + 1).padStart(2, "0") - return { - value: `${group.value}-${suffix}`, - labelKey: `sound.option.${group.key}${suffix}`, - } - }), - ), -] - const NotificationsTab: Component = () => { const vscode = useVSCode() const language = useLanguage() - - const [agentSoundEnabled, setAgentSoundEnabled] = createSignal(false) - const [permSoundEnabled, setPermSoundEnabled] = createSignal(false) - const [errorSoundEnabled, setErrorSoundEnabled] = createSignal(false) - const [agentSound, setAgentSound] = createSignal("system") - const [permSound, setPermSound] = createSignal("system") - const [errorSound, setErrorSound] = createSignal("system") + const [enabled, setEnabled] = createSignal(false) const unsubscribe = vscode.onMessage((message: ExtensionMessage) => { if (message.type !== "notificationSettingsLoaded") return - const settings = message.settings - setAgentSoundEnabled(settings.soundAgentEnabled) - setPermSoundEnabled(settings.soundPermissionsEnabled) - setErrorSoundEnabled(settings.soundErrorsEnabled) - setAgentSound(SOUND_OPTIONS.some((option) => option.value === settings.soundAgent) ? settings.soundAgent : "system") - setPermSound( - SOUND_OPTIONS.some((option) => option.value === settings.soundPermissions) ? settings.soundPermissions : "system", - ) - setErrorSound( - SOUND_OPTIONS.some((option) => option.value === settings.soundErrors) ? settings.soundErrors : "system", - ) + setEnabled(message.settings.attentionEnabled) }) onCleanup(unsubscribe) vscode.postMessage({ type: "requestNotificationSettings" }) - const save = (key: string, value: unknown) => { - vscode.postMessage({ type: "updateSetting", key, value }) - } - - const test = (settingType: "agent" | "permissions" | "errors", sound: string) => { - vscode.postMessage({ type: "testNotification", settingType, sound }) - } - - const picker = ( - enabled: () => boolean, - setEnabled: (value: boolean) => void, - value: () => string, - set: (value: string) => void, - key: string, - kind: "agent" | "permissions" | "errors", - label: string, - ) => ( -
- { - setEnabled(checked) - save(`sounds.${key}Enabled`, checked) - if (checked) save(`sounds.${key}`, value()) - }} - hideLabel - > - {label} - - option.value === sound())} + value={(option) => option.value} + label={(option) => language.t(option.labelKey)} + onSelect={(option) => { + if (!option) return + setSound(option.value) + vscode.postMessage({ type: "updateSetting", key: "attention.sound", value: option.value }) }} - hideLabel - > - {language.t("settings.notifications.enable.title")} - + disabled={!enabled()} + variant="secondary" + size="small" + triggerVariant="settings" + /> diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts index 567e7bf286..4a6e245cfc 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts @@ -1226,8 +1226,7 @@ export const dict = { "settings.notifications.errors.description": "إظهار إشعار عند الأخطاء", "settings.notifications.sounds": "أصوات", "settings.notifications.enable.title": "تمكين الإشعارات الصوتية", - "settings.notifications.enable.description": - "تشغيل أصوات تنبيه OpenCode عند اكتمال الجلسات أو حدوث خطأ أو الحاجة إلى ردّك", + "settings.notifications.enable.description": "تشغيل أصوات عند اكتمال الجلسات أو حدوث خطأ أو الحاجة إلى ردّك", "settings.notifications.testSound": "اختبار", "settings.notifications.agentSound.title": "صوت إكمال الوكيل", "settings.notifications.agentSound.description": "الصوت عند إكمال الوكيل", @@ -1236,6 +1235,9 @@ export const dict = { "settings.notifications.errorSound.title": "صوت الخطأ", "settings.notifications.errorSound.description": "الصوت عند الأخطاء", "settings.notifications.sound.default": "افتراضي", + "settings.notifications.sound.system": "النظام", + "settings.notifications.sound.description": + "يستخدم الخيار الافتراضي أصواتًا مختلفة عند الاكتمال أو الحاجة إلى ردّك أو حدوث خطأ. تستخدم الخيارات الأخرى صوتًا واحدًا لجميع الأحداث.", "settings.notifications.sound.none": "بدون", "settings.experimental.share.title": "وضع المشاركة", "settings.experimental.share.description": "سلوك مشاركة الجلسة", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/br.ts b/packages/kilo-vscode/webview-ui/src/i18n/br.ts index 3737e00dc3..974180d56d 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/br.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/br.ts @@ -1255,7 +1255,7 @@ export const dict = { "settings.notifications.sounds": "Sons", "settings.notifications.enable.title": "Ativar notificações sonoras", "settings.notifications.enable.description": - "Reproduzir os sons de alerta do OpenCode quando as sessões forem concluídas, ocorrer um erro ou sua interação for necessária", + "Reproduzir sons quando as sessões forem concluídas, ocorrer um erro ou sua interação for necessária", "settings.notifications.testSound": "Testar", "settings.notifications.agentSound.title": "Som de conclusão do agente", "settings.notifications.agentSound.description": "Som ao concluir o agente", @@ -1264,6 +1264,9 @@ export const dict = { "settings.notifications.errorSound.title": "Som de erro", "settings.notifications.errorSound.description": "Som em erros", "settings.notifications.sound.default": "Padrão", + "settings.notifications.sound.system": "Sistema", + "settings.notifications.sound.description": + "A opção padrão usa sons diferentes para conclusão, interação e erros. As outras opções usam um único som para todos os eventos.", "settings.notifications.sound.none": "Nenhum", "settings.experimental.share.title": "Modo de compartilhamento", "settings.experimental.share.description": "Comportamento do compartilhamento de sessão", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts index 0eb5e8a45b..9f1cd11353 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts @@ -1256,7 +1256,7 @@ export const dict = { "settings.notifications.sounds": "Zvukovi", "settings.notifications.enable.title": "Omogući zvučne obavijesti", "settings.notifications.enable.description": - "Reproduciraj OpenCode zvukove upozorenja kada se sesije završe, dođe do greške ili je potreban vaš odgovor", + "Reproduciraj zvukove kada se sesije završe, naiđu na grešku ili trebaju vaš unos", "settings.notifications.testSound": "Testiraj", "settings.notifications.agentSound.title": "Zvuk završetka agenta", "settings.notifications.agentSound.description": "Zvuk pri završetku agenta", @@ -1265,6 +1265,9 @@ export const dict = { "settings.notifications.errorSound.title": "Zvuk greške", "settings.notifications.errorSound.description": "Zvuk pri greškama", "settings.notifications.sound.default": "Zadano", + "settings.notifications.sound.system": "Sistem", + "settings.notifications.sound.description": + "Zadana opcija koristi različite zvukove za završetak, unos i greške. Ostale opcije koriste jedan zvuk za sve događaje.", "settings.notifications.sound.none": "Ništa", "settings.experimental.share.title": "Način dijeljenja", "settings.experimental.share.description": "Ponašanje dijeljenja sesije", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/da.ts b/packages/kilo-vscode/webview-ui/src/i18n/da.ts index 6968466b5f..9eb46c2500 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/da.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/da.ts @@ -1249,7 +1249,7 @@ export const dict = { "settings.notifications.sounds": "Lyde", "settings.notifications.enable.title": "Aktivér lydnotifikationer", "settings.notifications.enable.description": - "Afspil notifikationslyde fra OpenCode, når sessioner afsluttes, der opstår en fejl, eller der er brug for input fra dig", + "Afspil lyde, når sessioner fuldføres, der opstår en fejl, eller der er brug for input fra dig", "settings.notifications.testSound": "Test", "settings.notifications.agentSound.title": "Agentafslutningslyd", "settings.notifications.agentSound.description": "Lyd ved agentafslutning", @@ -1258,6 +1258,9 @@ export const dict = { "settings.notifications.errorSound.title": "Fejllyd", "settings.notifications.errorSound.description": "Lyd ved fejl", "settings.notifications.sound.default": "Standard", + "settings.notifications.sound.system": "System", + "settings.notifications.sound.description": + "Standardindstillingen bruger forskellige lyde til afslutning, input og fejl. Andre valg bruger én lyd til alle hændelser.", "settings.notifications.sound.none": "Ingen", "settings.experimental.share.title": "Delingstilstand", "settings.experimental.share.description": "Adfærd for sessionsdeling", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/de.ts b/packages/kilo-vscode/webview-ui/src/i18n/de.ts index fe2a9f607a..d4a7e8aca7 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/de.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/de.ts @@ -1270,7 +1270,7 @@ export const dict = { "settings.notifications.sounds": "Töne", "settings.notifications.enable.title": "Tonbenachrichtigungen aktivieren", "settings.notifications.enable.description": - "OpenCode-Hinweistöne wiedergeben, wenn Sitzungen abgeschlossen werden, ein Fehler auftritt oder Ihre Eingabe erforderlich ist", + "Töne wiedergeben, wenn Sitzungen abgeschlossen werden, ein Fehler auftritt oder Ihre Eingabe erforderlich ist", "settings.notifications.testSound": "Testen", "settings.notifications.agentSound.title": "Agent-Abschlusston", "settings.notifications.agentSound.description": "Ton bei Agent-Abschluss abspielen", @@ -1279,6 +1279,9 @@ export const dict = { "settings.notifications.errorSound.title": "Fehlerton", "settings.notifications.errorSound.description": "Ton bei Fehlern abspielen", "settings.notifications.sound.default": "Standard", + "settings.notifications.sound.system": "System", + "settings.notifications.sound.description": + "Die Standardeinstellung verwendet unterschiedliche Töne für Abschluss, Eingabe und Fehler. Bei anderen Optionen wird für alle Ereignisse derselbe Ton verwendet.", "settings.notifications.sound.none": "Kein", "settings.experimental.share.title": "Freigabemodus", "settings.experimental.share.description": "Verhalten der Sitzungsfreigabe", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/en.ts b/packages/kilo-vscode/webview-ui/src/i18n/en.ts index 608c6b2de5..d3984f4b15 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/en.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/en.ts @@ -1235,7 +1235,7 @@ export const dict = { "settings.notifications.sounds": "Sounds", "settings.notifications.enable.title": "Enable Sound Notifications", "settings.notifications.enable.description": - "Play OpenCode attention sounds when sessions complete, encounter an error, or need your input", + "Play sounds when sessions complete, encounter an error, or need your input", "settings.notifications.testSound": "Test", "settings.notifications.agentSound.title": "Agent Completion Sound", "settings.notifications.agentSound.description": "Sound to play when agent completes", @@ -1244,6 +1244,9 @@ export const dict = { "settings.notifications.errorSound.title": "Error Sound", "settings.notifications.errorSound.description": "Sound to play on errors", "settings.notifications.sound.default": "Default", + "settings.notifications.sound.system": "System", + "settings.notifications.sound.description": + "Default uses different sounds for completion, input, and errors. Other choices use one sound for every event.", "settings.notifications.sound.none": "None", "settings.experimental.share.title": "Share Mode", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/es.ts b/packages/kilo-vscode/webview-ui/src/i18n/es.ts index b1d976e690..dba2f801f5 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/es.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/es.ts @@ -1262,7 +1262,7 @@ export const dict = { "settings.notifications.sounds": "Sonidos", "settings.notifications.enable.title": "Activar las notificaciones sonoras", "settings.notifications.enable.description": - "Reproducir sonidos de aviso de OpenCode cuando las sesiones finalicen, se produzca un error o se requiera tu intervención", + "Reproducir sonidos cuando las sesiones finalicen, se produzca un error o se requiera tu intervención", "settings.notifications.testSound": "Probar", "settings.notifications.agentSound.title": "Sonido de finalización del agente", "settings.notifications.agentSound.description": "Sonido a reproducir cuando el agente finaliza", @@ -1271,6 +1271,9 @@ export const dict = { "settings.notifications.errorSound.title": "Sonido de error", "settings.notifications.errorSound.description": "Sonido a reproducir en errores", "settings.notifications.sound.default": "Predeterminado", + "settings.notifications.sound.system": "Sistema", + "settings.notifications.sound.description": + "La opción predeterminada utiliza sonidos diferentes para la finalización, la intervención y los errores. Las demás opciones utilizan un solo sonido para todos los eventos.", "settings.notifications.sound.none": "Ninguno", "settings.experimental.share.title": "Modo de compartir", "settings.experimental.share.description": "Comportamiento de compartir sesión", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts index 557dc92e2d..36b6039254 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts @@ -1274,7 +1274,7 @@ export const dict = { "settings.notifications.sounds": "Sons", "settings.notifications.enable.title": "Activer les notifications sonores", "settings.notifications.enable.description": - "Lire les sons d’alerte d’OpenCode lorsque les sessions se terminent, rencontrent une erreur ou nécessitent votre intervention", + "Lire des sons lorsque les sessions se terminent, rencontrent une erreur ou nécessitent votre intervention", "settings.notifications.testSound": "Tester", "settings.notifications.agentSound.title": "Son d'achèvement de l'agent", "settings.notifications.agentSound.description": "Son à jouer lorsque l'agent termine", @@ -1283,6 +1283,9 @@ export const dict = { "settings.notifications.errorSound.title": "Son d'erreur", "settings.notifications.errorSound.description": "Son à jouer en cas d'erreur", "settings.notifications.sound.default": "Par défaut", + "settings.notifications.sound.system": "Système", + "settings.notifications.sound.description": + "L’option par défaut utilise des sons différents pour la fin des sessions, les demandes d’intervention et les erreurs. Les autres options utilisent un même son pour tous les événements.", "settings.notifications.sound.none": "Aucun", "settings.experimental.share.title": "Mode de partage", "settings.experimental.share.description": "Comportement du partage de session", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/it.ts b/packages/kilo-vscode/webview-ui/src/i18n/it.ts index ad334a63ee..ccb569c937 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/it.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/it.ts @@ -1095,7 +1095,7 @@ export const dict = { "settings.notifications.sounds": "Suoni", "settings.notifications.enable.title": "Abilita le notifiche sonore", "settings.notifications.enable.description": - "Riproduci i suoni di avviso di OpenCode quando le sessioni si concludono, si verifica un errore o è richiesto il tuo intervento", + "Riproduci suoni quando le sessioni si concludono, si verifica un errore o è richiesto il tuo intervento", "settings.notifications.testSound": "Prova", "settings.notifications.agentSound.title": "Suono completamento agente", "settings.notifications.agentSound.description": "Suono da riprodurre quando l'agente completa un task", @@ -1104,6 +1104,9 @@ export const dict = { "settings.notifications.errorSound.title": "Suono errore", "settings.notifications.errorSound.description": "Suono da riprodurre per gli errori", "settings.notifications.sound.default": "Predefinito", + "settings.notifications.sound.system": "Sistema", + "settings.notifications.sound.description": + "L'opzione predefinita usa suoni diversi per completamento, intervento ed errori. Le altre opzioni usano un unico suono per tutti gli eventi.", "settings.notifications.sound.none": "Nessuno", "settings.experimental.share.title": "Modalità condivisione", "settings.experimental.share.description": "Come si comporta la condivisione sessione", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts index d2674f7781..03537cb874 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts @@ -1244,7 +1244,7 @@ export const dict = { "settings.notifications.sounds": "サウンド", "settings.notifications.enable.title": "サウンド通知を有効にする", "settings.notifications.enable.description": - "セッションが完了したとき、エラーが発生したとき、またはユーザー入力が必要なときに OpenCode の通知音を再生します", + "セッションの完了時、エラーの発生時、またはユーザー入力が必要なときにサウンドを再生します", "settings.notifications.testSound": "テスト", "settings.notifications.agentSound.title": "エージェント完了サウンド", "settings.notifications.agentSound.description": "エージェント完了時に再生するサウンド", @@ -1253,6 +1253,9 @@ export const dict = { "settings.notifications.errorSound.title": "エラーサウンド", "settings.notifications.errorSound.description": "エラー発生時に再生するサウンド", "settings.notifications.sound.default": "デフォルト", + "settings.notifications.sound.system": "システム", + "settings.notifications.sound.description": + "デフォルトでは、完了、入力、エラーにそれぞれ異なるサウンドが使用されます。その他の選択肢では、すべてのイベントに同じサウンドが使用されます。", "settings.notifications.sound.none": "なし", "settings.experimental.share.title": "共有モード", "settings.experimental.share.description": "セッション共有の動作", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts index 89b8891864..9e04e54d0b 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts @@ -1238,7 +1238,7 @@ export const dict = { "settings.notifications.sounds": "소리", "settings.notifications.enable.title": "소리 알림 활성화", "settings.notifications.enable.description": - "세션이 완료되거나 오류가 발생하거나 사용자 입력이 필요할 때 OpenCode 알림음을 재생합니다", + "세션이 완료되거나 오류가 발생하거나 사용자 입력이 필요할 때 소리를 재생합니다", "settings.notifications.testSound": "테스트", "settings.notifications.agentSound.title": "에이전트 완료 소리", "settings.notifications.agentSound.description": "에이전트 완료 시 재생할 소리", @@ -1247,6 +1247,9 @@ export const dict = { "settings.notifications.errorSound.title": "오류 소리", "settings.notifications.errorSound.description": "오류 발생 시 재생할 소리", "settings.notifications.sound.default": "기본값", + "settings.notifications.sound.system": "시스템", + "settings.notifications.sound.description": + "기본값은 완료, 입력, 오류에 서로 다른 소리를 사용합니다. 다른 옵션에서는 모든 이벤트에 동일한 소리를 사용합니다.", "settings.notifications.sound.none": "없음", "settings.experimental.share.title": "공유 모드", "settings.experimental.share.description": "세션 공유 동작 방식", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts index 22ce85c078..58f3f317e2 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts @@ -1250,7 +1250,7 @@ export const dict = { "settings.notifications.sounds": "Geluiden", "settings.notifications.enable.title": "Geluidsmeldingen inschakelen", "settings.notifications.enable.description": - "Waarschuwingsgeluiden van OpenCode afspelen wanneer sessies worden voltooid, er een fout optreedt of uw invoer vereist is", + "Geluiden afspelen wanneer sessies worden voltooid, er een fout optreedt of uw invoer vereist is", "settings.notifications.testSound": "Testen", "settings.notifications.agentSound.title": "Agent Voltooiingsgeluid", "settings.notifications.agentSound.description": "Geluid om af te spelen wanneer agent voltooit", @@ -1259,6 +1259,9 @@ export const dict = { "settings.notifications.errorSound.title": "Fout Geluid", "settings.notifications.errorSound.description": "Geluid om af te spelen bij fouten", "settings.notifications.sound.default": "Standaard", + "settings.notifications.sound.system": "Systeem", + "settings.notifications.sound.description": + "Standaard worden verschillende geluiden gebruikt voor voltooiing, invoer en fouten. Andere keuzes gebruiken voor elke gebeurtenis hetzelfde geluid.", "settings.notifications.sound.none": "Geen", "settings.experimental.share.title": "Deelmodus", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/no.ts b/packages/kilo-vscode/webview-ui/src/i18n/no.ts index 733b98ced9..1ed412658b 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/no.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/no.ts @@ -1215,7 +1215,7 @@ export const dict = { "settings.notifications.sounds": "Lyder", "settings.notifications.enable.title": "Aktiver lydvarsler", "settings.notifications.enable.description": - "Spill av varsellyder fra OpenCode når økter fullføres, det oppstår en feil eller det trengs innspill fra deg", + "Spill av lyder når økter fullføres, det oppstår en feil eller det trengs innspill fra deg", "settings.notifications.testSound": "Test", "settings.notifications.agentSound.title": "Agentfullføringslyd", "settings.notifications.agentSound.description": "Lyd ved agentfullføring", @@ -1224,6 +1224,9 @@ export const dict = { "settings.notifications.errorSound.title": "Feillyd", "settings.notifications.errorSound.description": "Lyd ved feil", "settings.notifications.sound.default": "Standard", + "settings.notifications.sound.system": "System", + "settings.notifications.sound.description": + "Standardvalget bruker forskjellige lyder for fullføring, innspill og feil. Andre valg bruker én lyd for alle hendelser.", "settings.notifications.sound.none": "Ingen", "settings.experimental.share.title": "Delingsmodus", "settings.experimental.share.description": "Oppførsel for sesjonsdeling", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts index 31c2e559dc..32b60d1725 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts @@ -1214,7 +1214,7 @@ export const dict = { "settings.notifications.sounds": "Dźwięki", "settings.notifications.enable.title": "Włącz powiadomienia dźwiękowe", "settings.notifications.enable.description": - "Odtwarzaj dźwięki alertów OpenCode, gdy sesje się zakończą, wystąpi błąd lub będzie potrzebna Twoja odpowiedź", + "Odtwarzaj dźwięki, gdy sesje się zakończą, wystąpi błąd lub będzie potrzebna Twoja reakcja", "settings.notifications.testSound": "Testuj", "settings.notifications.agentSound.title": "Dźwięk zakończenia agenta", "settings.notifications.agentSound.description": "Dźwięk odtwarzany po zakończeniu agenta", @@ -1223,6 +1223,9 @@ export const dict = { "settings.notifications.errorSound.title": "Dźwięk błędu", "settings.notifications.errorSound.description": "Dźwięk odtwarzany przy błędach", "settings.notifications.sound.default": "Domyślny", + "settings.notifications.sound.system": "System", + "settings.notifications.sound.description": + "Opcja domyślna używa różnych dźwięków dla zakończenia, oczekiwania na reakcję i błędów. Pozostałe opcje używają jednego dźwięku dla wszystkich zdarzeń.", "settings.notifications.sound.none": "Brak", "settings.experimental.share.title": "Tryb udostępniania", "settings.experimental.share.description": "Zachowanie udostępniania sesji", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts index d53dd129f0..3af6df4e39 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts @@ -1252,7 +1252,7 @@ export const dict = { "settings.notifications.sounds": "Звуки", "settings.notifications.enable.title": "Включить звуковые уведомления", "settings.notifications.enable.description": - "Воспроизводить звуки оповещения OpenCode при завершении сеансов, возникновении ошибки или необходимости вашего участия", + "Воспроизводить звуки при завершении сеансов, возникновении ошибки или необходимости вашего участия", "settings.notifications.testSound": "Тест", "settings.notifications.agentSound.title": "Звук завершения агента", "settings.notifications.agentSound.description": "Звук при завершении агента", @@ -1261,6 +1261,9 @@ export const dict = { "settings.notifications.errorSound.title": "Звук ошибки", "settings.notifications.errorSound.description": "Звук при ошибках", "settings.notifications.sound.default": "По умолчанию", + "settings.notifications.sound.system": "Системный", + "settings.notifications.sound.description": + "По умолчанию для завершения, запроса вашего участия и ошибок используются разные звуки. В остальных вариантах для всех событий используется один и тот же звук.", "settings.notifications.sound.none": "Нет", "settings.experimental.share.title": "Режим обмена", "settings.experimental.share.description": "Поведение обмена сессиями", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/th.ts b/packages/kilo-vscode/webview-ui/src/i18n/th.ts index 505f25e067..0486f9b00f 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/th.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/th.ts @@ -1235,7 +1235,7 @@ export const dict = { "settings.notifications.sounds": "เสียง", "settings.notifications.enable.title": "เปิดใช้การแจ้งเตือนด้วยเสียง", "settings.notifications.enable.description": - "เล่นเสียงแจ้งเตือนของ OpenCode เมื่อเซสชันเสร็จสิ้น เกิดข้อผิดพลาด หรือต้องการให้คุณป้อนข้อมูล", + "เล่นเสียงเมื่อเซสชันเสร็จสิ้น เกิดข้อผิดพลาด หรือต้องการให้คุณป้อนข้อมูล", "settings.notifications.testSound": "ทดสอบ", "settings.notifications.agentSound.title": "เสียงเอเจนต์เสร็จสิ้น", "settings.notifications.agentSound.description": "เสียงเมื่อเอเจนต์ทำงานเสร็จ", @@ -1244,6 +1244,9 @@ export const dict = { "settings.notifications.errorSound.title": "เสียงข้อผิดพลาด", "settings.notifications.errorSound.description": "เสียงเมื่อเกิดข้อผิดพลาด", "settings.notifications.sound.default": "ค่าเริ่มต้น", + "settings.notifications.sound.system": "ระบบ", + "settings.notifications.sound.description": + "ค่าเริ่มต้นจะใช้เสียงที่แตกต่างกันสำหรับการเสร็จสิ้น การป้อนข้อมูล และข้อผิดพลาด ส่วนตัวเลือกอื่นจะใช้เสียงเดียวสำหรับทุกเหตุการณ์", "settings.notifications.sound.none": "ไม่มี", "settings.experimental.share.title": "โหมดแชร์", "settings.experimental.share.description": "พฤติกรรมการแชร์เซสชัน", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts index c07cda0d35..e22f47693b 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts @@ -1243,7 +1243,7 @@ export const dict = { "settings.notifications.sounds": "Sesler", "settings.notifications.enable.title": "Sesli bildirimleri etkinleştir", "settings.notifications.enable.description": - "Oturumlar tamamlandığında, bir hata oluştuğunda veya sizden giriş beklendiğinde OpenCode uyarı seslerini çal", + "Oturumlar tamamlandığında, bir hatayla karşılaşıldığında veya sizden giriş beklendiğinde ses çal", "settings.notifications.testSound": "Test et", "settings.notifications.agentSound.title": "Ajan Tamamlanma Sesi", "settings.notifications.agentSound.description": "Ajan tamamlandığında çalınacak ses", @@ -1252,6 +1252,9 @@ export const dict = { "settings.notifications.errorSound.title": "Hata Sesi", "settings.notifications.errorSound.description": "Hata oluştuğunda çalınacak ses", "settings.notifications.sound.default": "Varsayılan", + "settings.notifications.sound.system": "Sistem", + "settings.notifications.sound.description": + "Varsayılan seçenekte tamamlanma, giriş ve hatalar için farklı sesler kullanılır. Diğer seçeneklerde tüm etkinlikler için tek bir ses kullanılır.", "settings.notifications.sound.none": "Yok", "settings.experimental.share.title": "Paylaşım Modu", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts index 3e505ac10c..823c36db38 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts @@ -1243,7 +1243,7 @@ export const dict = { "settings.notifications.sounds": "Звуки", "settings.notifications.enable.title": "Увімкнути звукові сповіщення", "settings.notifications.enable.description": - "Відтворювати звуки сповіщень OpenCode, коли сеанси завершуються, виникає помилка або потрібна ваша відповідь", + "Відтворювати звуки, коли сеанси завершуються, виникає помилка або потрібна ваша відповідь", "settings.notifications.testSound": "Тест", "settings.notifications.agentSound.title": "Звук завершення агента", "settings.notifications.agentSound.description": "Звук, що відтворюється після завершення агента", @@ -1252,6 +1252,9 @@ export const dict = { "settings.notifications.errorSound.title": "Звук помилки", "settings.notifications.errorSound.description": "Звук, що відтворюється при виникненні помилок", "settings.notifications.sound.default": "За замовчуванням", + "settings.notifications.sound.system": "Системний", + "settings.notifications.sound.description": + "За замовчуванням для завершення, запиту на введення та помилок використовуються різні звуки. В інших варіантах для всіх подій використовується один і той самий звук.", "settings.notifications.sound.none": "Немає", "settings.experimental.share.title": "Режим публікації", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts index bababe91d8..157445cc37 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts @@ -1216,7 +1216,7 @@ export const dict = { "settings.notifications.errors.description": "发生错误时显示通知", "settings.notifications.sounds": "声音", "settings.notifications.enable.title": "启用声音通知", - "settings.notifications.enable.description": "在会话完成、发生错误或需要你输入时播放 OpenCode 提示音", + "settings.notifications.enable.description": "在会话完成、遇到错误或需要你输入时播放声音", "settings.notifications.testSound": "测试", "settings.notifications.agentSound.title": "智能体完成提示音", "settings.notifications.agentSound.description": "智能体完成时播放的声音", @@ -1225,6 +1225,9 @@ export const dict = { "settings.notifications.errorSound.title": "错误提示音", "settings.notifications.errorSound.description": "发生错误时播放的声音", "settings.notifications.sound.default": "默认", + "settings.notifications.sound.system": "系统", + "settings.notifications.sound.description": + "默认选项为完成、输入和错误使用不同的声音。其他选项为所有事件使用同一种声音。", "settings.notifications.sound.none": "无", "settings.experimental.share.title": "分享模式", "settings.experimental.share.description": "会话分享行为", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts index 91bcb573d2..2807444dbf 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts @@ -1184,7 +1184,7 @@ export const dict = { "settings.notifications.errors.description": "發生錯誤時顯示通知", "settings.notifications.sounds": "聲音", "settings.notifications.enable.title": "啟用聲音通知", - "settings.notifications.enable.description": "在工作階段完成、發生錯誤或需要你輸入時播放 OpenCode 提示音", + "settings.notifications.enable.description": "在工作階段完成、遇到錯誤或需要你輸入時播放聲音", "settings.notifications.testSound": "測試", "settings.notifications.agentSound.title": "Agent 完成提示音", "settings.notifications.agentSound.description": "Agent 完成時播放的聲音", @@ -1193,6 +1193,9 @@ export const dict = { "settings.notifications.errorSound.title": "錯誤提示音", "settings.notifications.errorSound.description": "發生錯誤時播放的聲音", "settings.notifications.sound.default": "預設", + "settings.notifications.sound.system": "系統", + "settings.notifications.sound.description": + "預設選項會為完成、輸入和錯誤使用不同的聲音。其他選項則會對所有事件使用同一種聲音。", "settings.notifications.sound.none": "無", "settings.experimental.share.title": "分享模式", "settings.experimental.share.description": "工作階段分享行為", diff --git a/packages/kilo-vscode/webview-ui/src/types/messages/extension-messages.ts b/packages/kilo-vscode/webview-ui/src/types/messages/extension-messages.ts index 0106b758b4..da4d5d961b 100644 --- a/packages/kilo-vscode/webview-ui/src/types/messages/extension-messages.ts +++ b/packages/kilo-vscode/webview-ui/src/types/messages/extension-messages.ts @@ -487,6 +487,7 @@ export interface NotificationSettingsLoadedMessage { type: "notificationSettingsLoaded" settings: { attentionEnabled: boolean + attentionSound: string } } diff --git a/packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts b/packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts index a541eac85d..994f959de2 100644 --- a/packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts +++ b/packages/kilo-vscode/webview-ui/src/types/messages/webview-messages.ts @@ -435,6 +435,7 @@ export interface RequestNotificationSettingsMessage { export interface TestNotificationMessage { type: "testNotification" + sound: string } export interface ResetAllSettingsRequest { From d3c0c03f3b688d69f49602aa16b738513807c134 Mon Sep 17 00:00:00 2001 From: Mark IJbema Date: Mon, 15 Jun 2026 15:54:49 +0200 Subject: [PATCH 057/109] feat: add opencode changeset generator --- script/opencode-changesets.test.ts | 45 +++++++ script/opencode-changesets.ts | 202 +++++++++++++++++++++++++++++ 2 files changed, 247 insertions(+) create mode 100644 script/opencode-changesets.test.ts create mode 100644 script/opencode-changesets.ts diff --git a/script/opencode-changesets.test.ts b/script/opencode-changesets.test.ts new file mode 100644 index 0000000000..ca213ec170 --- /dev/null +++ b/script/opencode-changesets.test.ts @@ -0,0 +1,45 @@ +import { describe, expect, test } from "bun:test" + +import { changeset, select, type Release } from "./opencode-changesets" + +const releases: Release[] = [ + { tag_name: "v1.2.3", body: "Patch release" }, + { tag_name: "v1.2.2", body: "\r\n## Core\r\n\r\n- Fix issue\r\n" }, + { tag_name: "1.2.1", body: "Old tag without prefix" }, + { tag_name: "v1.2.0", body: "Base release" }, + { tag_name: "v1.2.4", body: "Draft release", draft: true }, + { tag_name: "v1.2.5", body: "Prerelease", prerelease: true }, +] + +describe("opencode changesets", () => { + test("selects releases in semver range with normalized tags", () => { + expect(select(releases, "1.2.0", "v1.2.3")).toEqual([ + { tag_name: "v1.2.1", body: "Old tag without prefix" }, + { tag_name: "v1.2.2", body: "\r\n## Core\r\n\r\n- Fix issue\r\n" }, + { tag_name: "v1.2.3", body: "Patch release" }, + ]) + }) + + test("can include prereleases", () => { + expect(select(releases, "1.2.3", "1.2.5", true).map((release) => release.tag_name)).toEqual(["v1.2.5"]) + }) + + test("formats changeset markdown", () => { + expect( + changeset({ tag_name: "v1.2.2", body: "\r\n## Core\r\n\r\n- Fix issue\r\n" }, { + packages: ["@kilocode/cli", "kilo-code"], + bump: "patch", + }), + ).toBe(`--- +"@kilocode/cli": patch +"kilo-code": patch +--- + +Integrate upstream opencode v1.2.2 release notes. + +## Core + +- Fix issue +`) + }) +}) diff --git a/script/opencode-changesets.ts b/script/opencode-changesets.ts new file mode 100644 index 0000000000..a20f27a469 --- /dev/null +++ b/script/opencode-changesets.ts @@ -0,0 +1,202 @@ +#!/usr/bin/env bun + +import path from "path" +import semver from "semver" +import { parseArgs } from "util" + +type Bump = "major" | "minor" | "patch" + +export type Release = { + tag_name: string + name?: string | null + body?: string | null + draft?: boolean + prerelease?: boolean +} + +type Opts = { + from: string + to: string + repo: string + root: string + packages: string[] + bump: Bump + dry: boolean + force: boolean + prerelease: boolean +} + +const usage = ` +Usage: bun script/opencode-changesets.ts [options] + +Creates one changeset per upstream opencode release in the semver range (from, to]. + +Options: + --from Starting opencode version, exclusive + --to Ending opencode version, inclusive + --repo GitHub repository (default: anomalyco/opencode) + --package Changeset package (repeatable; defaults to @kilocode/cli and kilo-code) + --bump Changeset bump type: major, minor, patch (default: patch) + --dry-run Print changesets without writing files + --force Overwrite existing generated changeset files + --include-prerelease Include prerelease GitHub releases + -h, --help Show this help message + +Examples: + bun script/opencode-changesets.ts 1.17.0 1.17.7 + bun script/opencode-changesets.ts --from v1.16.0 --to v1.17.7 --dry-run +` + +function clean(input: string) { + const raw = input.trim().replace(/^v/, "") + const version = semver.valid(raw) + if (!version) throw new Error(`Invalid semver version: ${input}`) + return version +} + +function tag(input: string) { + return `v${clean(input)}` +} + +function slug(input: string) { + return `opencode-${tag(input).replace(/[^a-zA-Z0-9]+/g, "-").replace(/^-|-$/g, "").toLowerCase()}.md` +} + +function packages(input: string[], bump: Bump) { + return input.map((item) => `"${item}": ${bump}`).join("\n") +} + +function body(release: Release) { + const text = release.body?.replace(/\r\n?/g, "\n").trim() + if (text) return text + + const name = release.name?.trim() + if (name && name !== release.tag_name) return name + + return `Integrate upstream opencode ${release.tag_name}.` +} + +function isRelease(input: unknown): input is Release { + return Boolean(input && typeof input === "object" && "tag_name" in input && typeof input.tag_name === "string") +} + +export function select(releases: Release[], from: string, to: string, prerelease = false) { + const base = clean(from) + const head = clean(to) + if (semver.gt(base, head) || base === head) throw new Error(`Expected from version to be lower than to version`) + + const seen = new Set() + return releases + .filter((release) => !release.draft) + .filter((release) => prerelease || !release.prerelease) + .map((release) => ({ release, version: semver.valid(release.tag_name.replace(/^v/, "")) })) + .filter((item): item is { release: Release; version: string } => Boolean(item.version)) + .filter((item) => { + if (seen.has(item.version)) return false + seen.add(item.version) + return semver.gt(item.version, base) && semver.lte(item.version, head) + }) + .sort((a, b) => semver.compare(a.version, b.version)) + .map((item) => ({ ...item.release, tag_name: tag(item.version) })) +} + +export function changeset(release: Release, opts: Pick) { + return `---\n${packages(opts.packages, opts.bump)}\n---\n\nIntegrate upstream opencode ${release.tag_name} release notes.\n\n${body(release)}\n` +} + +async function all(repo: string) { + const list: Release[] = [] + const auth = process.env.GH_TOKEN ?? process.env.GITHUB_TOKEN + + for (let page = 1; ; page++) { + const res = await fetch(`https://api.github.com/repos/${repo}/releases?per_page=100&page=${page}`, { + headers: { + Accept: "application/vnd.github+json", + ...(auth ? { Authorization: `Bearer ${auth}` } : {}), + }, + }) + + if (!res.ok) throw new Error(`GitHub releases request failed for ${repo}: ${res.status} ${await res.text()}`) + + const json: unknown = await res.json() + if (!Array.isArray(json) || !json.every(isRelease)) throw new Error(`GitHub returned invalid release data`) + + const batch = json + list.push(...batch) + if (batch.length < 100) return list + } +} + +function opts() { + const parsed = parseArgs({ + args: Bun.argv.slice(2), + options: { + from: { type: "string" }, + to: { type: "string" }, + repo: { type: "string", default: "anomalyco/opencode" }, + package: { type: "string", multiple: true }, + bump: { type: "string", default: "patch" }, + "dry-run": { type: "boolean", default: false }, + force: { type: "boolean", default: false }, + "include-prerelease": { type: "boolean", default: false }, + help: { type: "boolean", short: "h", default: false }, + }, + allowPositionals: true, + }) + + if (parsed.values.help) { + process.stdout.write(usage) + process.exit(0) + } + + const from = parsed.values.from ?? parsed.positionals[0] + const to = parsed.values.to ?? parsed.positionals[1] + if (!from || !to) throw new Error("Expected from and to opencode versions") + + const bump = parsed.values.bump + if (bump !== "major" && bump !== "minor" && bump !== "patch") throw new Error(`Invalid bump type: ${bump}`) + + return { + from, + to, + repo: parsed.values.repo, + root: path.resolve(import.meta.dir, ".."), + packages: parsed.values.package?.length ? parsed.values.package : ["@kilocode/cli", "kilo-code"], + bump, + dry: parsed.values["dry-run"], + force: parsed.values.force, + prerelease: parsed.values["include-prerelease"], + } satisfies Opts +} + +async function write(releases: Release[], opts: Opts) { + const dir = path.join(opts.root, ".changeset") + + for (const release of releases) { + const file = path.join(dir, slug(release.tag_name)) + const text = changeset(release, opts) + + if (opts.dry) { + process.stdout.write(`--- ${path.relative(opts.root, file)} ---\n${text}\n`) + continue + } + + if (!opts.force && (await Bun.file(file).exists())) throw new Error(`Changeset already exists: ${file}`) + await Bun.write(file, text) + process.stdout.write(`Wrote ${path.relative(opts.root, file)}\n`) + } +} + +export async function run(opts: Opts) { + const releases = select(await all(opts.repo), opts.from, opts.to, opts.prerelease) + if (releases.length === 0) throw new Error(`No opencode releases found in range (${opts.from}, ${opts.to}]`) + + await write(releases, opts) +} + +if (import.meta.main) { + await run(opts()).catch((err) => { + process.stderr.write(`${err instanceof Error ? err.message : String(err)}\n`) + process.exit(1) + }) +} From d880a536b7114d8d8a96e3cd033144a424a60b71 Mon Sep 17 00:00:00 2001 From: Mark IJbema Date: Mon, 15 Jun 2026 15:56:54 +0200 Subject: [PATCH 058/109] fix: annotate opencode changeset script --- script/opencode-changesets.test.ts | 2 ++ script/opencode-changesets.ts | 1 + 2 files changed, 3 insertions(+) diff --git a/script/opencode-changesets.test.ts b/script/opencode-changesets.test.ts index ca213ec170..82eb498b52 100644 --- a/script/opencode-changesets.test.ts +++ b/script/opencode-changesets.test.ts @@ -1,3 +1,5 @@ +// kilocode_change - new file + import { describe, expect, test } from "bun:test" import { changeset, select, type Release } from "./opencode-changesets" diff --git a/script/opencode-changesets.ts b/script/opencode-changesets.ts index a20f27a469..2c5d3ff211 100644 --- a/script/opencode-changesets.ts +++ b/script/opencode-changesets.ts @@ -1,4 +1,5 @@ #!/usr/bin/env bun +// kilocode_change - new file import path from "path" import semver from "semver" From 38459184f27a5a22d9314fcb6e113ddec7b2f0e2 Mon Sep 17 00:00:00 2001 From: Johnny Eric Amancio Date: Mon, 15 Jun 2026 16:20:19 +0200 Subject: [PATCH 059/109] feat(cli): align native plan with architect (#11170) * feat(cli): align native plan with architect * fix(cli): support repo-root plan files * test(cli): focus native plan reminder assertions --- .changeset/native-plan-architect-parity.md | 5 + packages/opencode/src/kilocode/agent/index.ts | 1 + .../kilocode/session/native-plan-prompt.txt | 47 ++++++++ .../opencode/src/kilocode/session/prompt.ts | 20 +--- packages/opencode/src/session/prompt.ts | 108 +++--------------- .../agent-permission-overrides.test.ts | 1 + .../test/kilocode/plan-exit-detection.test.ts | 69 ++++++++++- 7 files changed, 134 insertions(+), 117 deletions(-) create mode 100644 .changeset/native-plan-architect-parity.md create mode 100644 packages/opencode/src/kilocode/session/native-plan-prompt.txt diff --git a/.changeset/native-plan-architect-parity.md b/.changeset/native-plan-architect-parity.md new file mode 100644 index 0000000000..2de5bf1895 --- /dev/null +++ b/.changeset/native-plan-architect-parity.md @@ -0,0 +1,5 @@ +--- +"@kilocode/cli": patch +--- + +Make native Plan mode follow Architect-style planning behavior while preserving Plan mode restrictions and repo-root plan files. diff --git a/packages/opencode/src/kilocode/agent/index.ts b/packages/opencode/src/kilocode/agent/index.ts index 6dd914f4b7..a178c45f35 100644 --- a/packages/opencode/src/kilocode/agent/index.ts +++ b/packages/opencode/src/kilocode/agent/index.ts @@ -169,6 +169,7 @@ function planEditRules(worktree: string) { return { "*": "deny" as const, [path.join(".kilo", "plans", "*.md")]: "allow" as const, + [path.join("plans", "*.md")]: "allow" as const, [path.join(".plans", "*.md")]: "allow" as const, [path.join(".opencode", "plans", "*.md")]: "allow" as const, [path.relative(worktree, path.join(Global.Path.data, path.join("plans", "*.md")))]: "allow" as const, diff --git a/packages/opencode/src/kilocode/session/native-plan-prompt.txt b/packages/opencode/src/kilocode/session/native-plan-prompt.txt new file mode 100644 index 0000000000..108154c739 --- /dev/null +++ b/packages/opencode/src/kilocode/session/native-plan-prompt.txt @@ -0,0 +1,47 @@ + +# Native Plan Mode + +You are Kilo Code, an experienced technical leader who is inquisitive, skeptical, and an excellent planner. + +Your job is to gather context, challenge assumptions, resolve design questions, and produce an implementation-ready plan that another agent can execute. You do not implement source-code changes. + +## Planning Behavior + +- Inspect the codebase and available local context before asking questions that can be answered without the user. +- Interview the user about every important aspect of the plan until you reach shared understanding. +- Walk down each branch of the design tree, resolving dependencies between decisions one by one. +- Ask one question at a time, and include your recommended answer. +- Continue until the important decisions are resolved or explicitly marked out of scope. +- Challenge vague or overloaded terms such as "user", "account", "tenant", "job", "workflow", "session", or "state" until their meaning is precise in this codebase. +- Cross-check user claims against the actual code and available context. If they conflict, call out the contradiction directly. +- Use concrete scenarios and edge cases to test the proposed design. +- Prefer short, actionable plans over long speculative documents. +- Never provide level-of-effort estimates such as hours, days, or weeks. + +## Plan Files + +- You may create and edit plan Markdown files only. +- Follow the latest Plan File reminder for the target plan location. +- Prefer `.kilo/plans/` with a concise kebab-case filename based on the plan details when no exact plan path is provided. +- Use repo-root `plans/`, `.plans/`, or `.opencode/plans/` only when requested or required by the repo/client and your permissions allow it. +- Do not write the final plan or call `plan_exit` until the user chooses "Finalize and save the plan". +- After final approval, write the final plan to the chosen plan file, then call `plan_exit` with the saved plan path. +- Do not edit source files or non-plan documentation files. +- Do not run mutating commands. +- If implementation requires source edits or mutating commands, tell the user to switch to an implementation-capable agent. + +## Completion Behavior + +- Keep planning until the important design decisions are resolved or explicitly marked out of scope. +- If material uncertainty remains, keep the plan open: summarize the current state, identify the most important unresolved decision, and ask exactly one next question with your recommended answer. +- If the plan is implementation-ready but not saved, do not print the full plan in chat. Give a concise draft-ready summary, then ask exactly one question with these choices: + 1. Finalize and save the plan + 2. Continue refining +- Recommend "Finalize and save the plan" only when the goal, constraints, affected boundaries, data flow, failure modes, rollout or migration path, and validation plan are addressed or explicitly out of scope. +- If the user chooses "Finalize and save the plan", write the complete finalized Markdown plan to the chosen plan file, then call `plan_exit` as described above. +- If the user chooses "Continue refining", keep planning and do not write the final plan or call `plan_exit`. +- After `plan_exit`, rely on the client follow-up to ask whether the user wants to implement the saved plan in a new session. +- Do not implement source or documentation changes as this agent. + +Saved plans should be concise and actionable. Prefer a clear ordered task list over a lengthy design document. Include only the context, decisions, risks, validation steps, and open questions another implementation-capable agent needs to execute safely. + diff --git a/packages/opencode/src/kilocode/session/prompt.ts b/packages/opencode/src/kilocode/session/prompt.ts index 90e33619f9..7a78d09239 100644 --- a/packages/opencode/src/kilocode/session/prompt.ts +++ b/packages/opencode/src/kilocode/session/prompt.ts @@ -20,7 +20,7 @@ import { environmentDetails, type EditorContext } from "@/kilocode/editor-contex import { Identifier } from "@/id/id" import { Filesystem } from "@/util/filesystem" import { InstanceState } from "@/effect/instance-state" -import PROMPT_PLAN from "@/session/prompt/plan.txt" +import NATIVE_PLAN_PROMPT from "@/kilocode/session/native-plan-prompt.txt" import CODE_SWITCH from "@/session/prompt/code-switch.txt" export namespace KiloSessionPrompt { @@ -282,21 +282,7 @@ export namespace KiloSessionPrompt { const ctx = Instance.bind(() => Instance.current)() const plan = Session.plan(input.session, ctx) - if (mode(input.agent.name) === "plan") { - add( - [ - PROMPT_PLAN, - "", - "## Plan File", - "Use the plan path specified by the user or project instructions when present and permissions allow it.", - "If none is specified, create a plan in .kilo/plans/ using a concise kebab-case filename based on the plan details.", - "Do not choose .kilo/plans/ when instructions specify an allowed plan path such as .plans/.", - "You may write/edit plan Markdown files only. Do not edit source files.", - "When finalizing, call plan_exit with the path of the plan file you wrote.", - ].join("\n"), - ) - return - } + if (mode(input.agent.name) === "plan") add(NATIVE_PLAN_PROMPT) const file = input.messages ? PlanFile.latest(input.messages) : undefined const saved = PlanFile.resolve(file, ctx) @@ -311,7 +297,7 @@ export namespace KiloSessionPrompt { "## Plan File", info, "Use the chosen plan path as the main plan file. Do not write or edit other files unless the user explicitly asks and your permissions allow it.", - "Project/user instructions about plan location (for example .plans/) are authorized when permissions allow them; they do not conflict with this reminder. When finalizing, call plan_exit with the path of the plan file you wrote.", + "Project/user instructions about plan location (for example plans/ or .plans/) are authorized when permissions allow them; they do not conflict with this reminder. When finalizing, call plan_exit with the path of the plan file you wrote.", 'Before creating or updating the plan file, or calling plan_exit, ask the user to choose exactly one of: "Finalize and save the plan" or "Continue refining". If the user chooses to finalize, write the main plan file, then call plan_exit.', ].join("\n") add(`\n${body}\n`) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index f0874ab321..ebb8c652be 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -411,17 +411,19 @@ export const layer = Layer.effect( const userMessage = input.messages.findLast((msg) => msg.info.role === "user") if (!userMessage) return input.messages + // kilocode_change start - shared planning reminder path + // No-op unless the active agent is plan-like. + yield* Effect.promise(() => + KiloSessionPrompt.insertPlanReminders({ + agent: input.agent, + session: input.session, + userMessage, + messages: input.messages, + }), + ) + // kilocode_change end + if (!flags.experimentalPlanMode) { - // kilocode_change start - inject plan file path so agent writes to .kilo/plans/ - yield* Effect.promise(() => - KiloSessionPrompt.insertPlanReminders({ - agent: input.agent, - session: input.session, - userMessage, - messages: input.messages, - }), - ) - // kilocode_change end const wasPlan = input.messages.some((msg) => msg.info.role === "assistant" && msg.info.agent === "plan") if (wasPlan && input.agent.name === "code") { // kilocode_change - renamed from "build" to "code" @@ -454,91 +456,9 @@ export const layer = Layer.effect( return input.messages } - if (input.agent.name !== "plan" || assistantMessage?.info.agent === "plan") return input.messages - - const ctx = yield* InstanceState.context - const plan = Session.plan(input.session, ctx) - const exists = yield* fsys.existsSafe(plan) - if (!exists) yield* fsys.ensureDir(path.dirname(plan)).pipe(Effect.catch(Effect.die)) - const part = yield* sessions.updatePart({ - id: PartID.ascending(), - messageID: userMessage.info.id, - sessionID: userMessage.info.sessionID, - type: "text", - text: ` -Plan mode is active. The user indicated that they do not want you to execute yet -- you MUST NOT make any edits (with the exception of the plan file mentioned below), run any non-readonly tools (including changing configs or making commits), or otherwise make any changes to the system. This supersedes any other instructions you have received. - -## Plan File Info: -${exists ? `A plan file already exists at ${plan}. You can read it and make incremental edits using the edit tool.` : `No plan file exists yet. You should create your plan at ${plan} using the write tool.`} -You should build your plan incrementally by writing to or editing this file. NOTE that this is the only file you are allowed to edit - other than this you are only allowed to take READ-ONLY actions. - -## Plan Workflow - -### Phase 1: Initial Understanding -Goal: Gain a comprehensive understanding of the user's request by reading through code and asking them questions. Critical: In this phase you should only use the explore subagent type. - -1. Focus on understanding the user's request and the code associated with their request - -2. **Launch up to 3 explore agents IN PARALLEL** (single message, multiple tool calls) to efficiently explore the codebase. - - Use 1 agent when the task is isolated to known files, the user provided specific file paths, or you're making a small targeted change. - - Use multiple agents when: the scope is uncertain, multiple areas of the codebase are involved, or you need to understand existing patterns before planning. - - Quality over quantity - 3 agents maximum, but you should try to use the minimum number of agents necessary (usually just 1) - - If using multiple agents: Provide each agent with a specific search focus or area to explore. Example: One agent searches for existing implementations, another explores related components, a third investigates testing patterns - -3. After exploring the code, use the question tool to clarify ambiguities in the user request up front. - -### Phase 2: Design -Goal: Design an implementation approach. - -Launch general agent(s) to design the implementation based on the user's intent and your exploration results from Phase 1. - -You can launch up to 1 agent(s) in parallel. - -**Guidelines:** -- **Default**: Launch at least 1 Plan agent for most tasks - it helps validate your understanding and consider alternatives -- **Skip agents**: Only for truly trivial tasks (typo fixes, single-line changes, simple renames) - -Examples of when to use multiple agents: -- The task touches multiple parts of the codebase -- It's a large refactor or architectural change -- There are many edge cases to consider -- You'd benefit from exploring different approaches - -Example perspectives by task type: -- New feature: simplicity vs performance vs maintainability -- Bug fix: root cause vs workaround vs prevention -- Refactoring: minimal change vs clean architecture - -In the agent prompt: -- Provide comprehensive background context from Phase 1 exploration including filenames and code path traces -- Describe requirements and constraints -- Request a detailed implementation plan - -### Phase 3: Review -Goal: Review the plan(s) from Phase 2 and ensure alignment with the user's intentions. -1. Read the critical files identified by agents to deepen your understanding -2. Ensure that the plans align with the user's original request -3. Use question tool to clarify any remaining questions with the user - -### Phase 4: Final Plan -Goal: Write your final plan to the plan file (the only file you can edit). -- Include only your recommended approach, not all alternatives -- Ensure that the plan file is concise enough to scan quickly, but detailed enough to execute effectively -- Include the paths of critical files to be modified -- Include a verification section describing how to test the changes end-to-end (run the code, use MCP tools, run tests) - -### Phase 5: Call plan_exit tool -At the very end of your turn, once you have asked the user questions and are happy with your final plan file - you should always call plan_exit to indicate to the user that you are done planning. -This is critical - your turn should only end with either asking the user a question or calling plan_exit. Do not stop unless it's for these 2 reasons. - -**Important:** Use question tool to clarify requirements/approach, use plan_exit to request plan approval. Do NOT use question tool to ask "Is this plan okay?" - that's what plan_exit does. - -NOTE: At any point in time through this workflow you should feel free to ask the user questions or clarifications. Don't make large assumptions about user intent. The goal is to present a well researched plan to the user, and tie any loose ends before implementation begins. -`, - synthetic: true, - }) - userMessage.parts.push(part) + // kilocode_change start - replace native Plan's separate prompt with the shared reminder above return input.messages + // kilocode_change end }) const resolveTools = Effect.fn("SessionPrompt.resolveTools")(function* (input: { diff --git a/packages/opencode/test/kilocode/agent-permission-overrides.test.ts b/packages/opencode/test/kilocode/agent-permission-overrides.test.ts index fe223252e5..f9ce397c82 100644 --- a/packages/opencode/test/kilocode/agent-permission-overrides.test.ts +++ b/packages/opencode/test/kilocode/agent-permission-overrides.test.ts @@ -70,6 +70,7 @@ test("plan agent still hard-denies non-plan edits after user edit allow", async expect(plan).toBeDefined() expect(Permission.evaluate("edit", "src/output.log", plan!.permission).action).toBe("deny") expect(Permission.evaluate("edit", ".kilo/plans/fix.md", plan!.permission).action).toBe("allow") + expect(Permission.evaluate("edit", "plans/fix.md", plan!.permission).action).toBe("allow") expect(Permission.evaluate("edit", ".plans/fix.md", plan!.permission).action).toBe("allow") }, }) diff --git a/packages/opencode/test/kilocode/plan-exit-detection.test.ts b/packages/opencode/test/kilocode/plan-exit-detection.test.ts index 0ee10c66c6..a0732f45b6 100644 --- a/packages/opencode/test/kilocode/plan-exit-detection.test.ts +++ b/packages/opencode/test/kilocode/plan-exit-detection.test.ts @@ -149,6 +149,13 @@ async function waitQuestion(sessionID: string) { } } +function content(message: MessageV2.WithParts) { + return message.parts + .filter((part): part is MessageV2.TextPart => part.type === "text") + .map((part) => part.text) + .join("\n") +} + describe("plan_exit detection", () => { test("PlanFollowup.ask triggers when plan_exit tool is present", () => withInstance(async () => { @@ -641,7 +648,7 @@ describe("plan_exit detection", () => { expect(text).not.toContain("No plan file exists yet") })) - test("plan reminder prefers project plan path instructions over fallback", () => + test("native plan reminder prefers project plan path instructions over fallback", () => withInstance(async () => { const session = await sessions.create({}) const id = MessageID.ascending() @@ -660,7 +667,7 @@ describe("plan_exit detection", () => { messageID: id, sessionID: session.id, type: "text", - text: "Create a plan. AGENTS says plans go in .plans/.", + text: "Create a plan. AGENTS says plans go in plans/.", }, ], } @@ -675,12 +682,62 @@ describe("plan_exit detection", () => { const part = user.parts.at(-1) const text = part?.type === "text" ? part.text : "" expect(text).toContain("Use the plan path specified by the user or project instructions") - expect(text).toContain("Do not choose .kilo/plans/") - expect(text).toContain(".plans/") + expect(text).toContain("plans/ or .plans/") expect(text).toContain("If none is specified") expect(text).not.toContain(Session.plan(session, Instance.current)) })) + test("native plan reminder reuses custom plan_exit path when refining", () => + withInstance(async () => { + const seeded = await seed({ + tools: [ + { + tool: "plan_exit", + input: { path: ".plans/fix.md" }, + output: "Plan is ready at .plans/fix.md. Ending planning turn.", + }, + ], + }) + const file = path.join(Instance.worktree, ".plans", "fix.md") + await fs.mkdir(path.dirname(file), { recursive: true }) + await Bun.write(file, "Do implementation step 1") + + const session = await sessions.get(seeded.sessionID) + const id = MessageID.ascending() + const user: MessageV2.WithParts = { + info: { + id, + role: "user", + sessionID: seeded.sessionID, + time: { created: Date.now() }, + agent: "plan", + model, + }, + parts: [ + { + id: PartID.ascending(), + messageID: id, + sessionID: seeded.sessionID, + type: "text", + text: "Continue refining", + }, + ], + } + await KiloSessionPrompt.insertPlanReminders({ + agent: { name: "plan", options: {} }, + session, + userMessage: user, + messages: [...seeded.messages, user], + }) + + const text = content(user) + expect(text).toContain("The current saved plan file is") + expect(text.replaceAll(path.sep, "/")).toContain(".plans/fix.md") + expect(text).toContain("Read and edit this file when refining the plan") + expect(text).toContain("experienced technical leader") + expect(text).not.toContain("No plan file exists yet") + })) + test("architect reminder prefers project plan path instructions over fallback", () => withInstance(async () => { const session = await sessions.create({}) @@ -700,7 +757,7 @@ describe("plan_exit detection", () => { messageID: id, sessionID: session.id, type: "text", - text: "Create a plan. AGENTS says plans go in .plans/.", + text: "Create a plan. AGENTS says plans go in plans/.", }, ], } @@ -716,7 +773,7 @@ describe("plan_exit detection", () => { const text = part?.type === "text" ? part.text : "" expect(text).toContain("Use the plan path specified by the user or project instructions") expect(text).toContain("If none is specified") - expect(text).toContain(".plans/") + expect(text).toContain("plans/ or .plans/") expect(text).not.toContain("Default to") expect(text).not.toContain("A fallback plan file exists") })) From 7ef41f5a9bf145045b51dd638695063b070a6f6c Mon Sep 17 00:00:00 2001 From: Mark IJbema Date: Mon, 15 Jun 2026 16:20:36 +0200 Subject: [PATCH 060/109] chore: move opencode changesets into upstream scripts --- script/upstream/README.md | 27 +++++++++++++++++++ .../opencode-changesets.test.ts | 2 -- script/{ => upstream}/opencode-changesets.ts | 9 +++---- 3 files changed, 31 insertions(+), 7 deletions(-) rename script/{ => upstream}/opencode-changesets.test.ts (97%) rename script/{ => upstream}/opencode-changesets.ts (96%) diff --git a/script/upstream/README.md b/script/upstream/README.md index 0423f0dd88..c136db668b 100644 --- a/script/upstream/README.md +++ b/script/upstream/README.md @@ -34,6 +34,7 @@ bun run merge.ts --version v1.1.50 --base-branch catrielmuller/kilo-opencode-v1. | `merge.ts` | Main orchestration script for upstream merges | | `list-versions.ts` | List available upstream versions | | `analyze.ts` | Analyze changes without merging | +| `opencode-changesets.ts` | Generate Kilo changesets from upstream opencode release notes | | `fix-kilocode-markers.ts` | Rebuild `kilocode_change` markers for one file against the last merged upstream | | `reset-to-upstream.ts` | Reset one file to the transformed last merged upstream version | | `find-reset-candidates.ts` | Bulk-find files that have drifted insignificantly from upstream and (optionally) reset them | @@ -60,6 +61,32 @@ bun run merge.ts --version v1.1.50 --base-branch catrielmuller/kilo-opencode-v1. | `codemods/transform-imports.ts` | Transform import statements using ts-morph | | `codemods/transform-strings.ts` | Transform string literals | +## Release Notes Changesets + +After merging upstream opencode releases, use `opencode-changesets.ts` to turn the upstream GitHub release notes into Kilo changesets: + +```bash +bun script/upstream/opencode-changesets.ts 1.17.0 1.17.7 +``` + +The script fetches releases from `anomalyco/opencode`, selects published releases in the semver range `(from, to]`, and writes one `.changeset/opencode-vX-Y-Z.md` file per release. It defaults to patch changesets for the fixed release group, `@kilocode/cli` and `kilo-code`. + +Preview without writing files: + +```bash +bun script/upstream/opencode-changesets.ts --from v1.16.0 --to v1.17.7 --dry-run +``` + +Useful options: + +| Option | Description | +|---|---| +| `--repo ` | Fetch releases from another GitHub repository | +| `--package ` | Add a changeset package; repeat for multiple packages | +| `--bump ` | Set the generated changeset bump type | +| `--force` | Overwrite existing generated changeset files | +| `--include-prerelease` | Include prerelease GitHub releases | + ## Merge Process The merge automation follows this process, applying **all transformations BEFORE the merge** to minimize conflicts: diff --git a/script/opencode-changesets.test.ts b/script/upstream/opencode-changesets.test.ts similarity index 97% rename from script/opencode-changesets.test.ts rename to script/upstream/opencode-changesets.test.ts index 82eb498b52..ca213ec170 100644 --- a/script/opencode-changesets.test.ts +++ b/script/upstream/opencode-changesets.test.ts @@ -1,5 +1,3 @@ -// kilocode_change - new file - import { describe, expect, test } from "bun:test" import { changeset, select, type Release } from "./opencode-changesets" diff --git a/script/opencode-changesets.ts b/script/upstream/opencode-changesets.ts similarity index 96% rename from script/opencode-changesets.ts rename to script/upstream/opencode-changesets.ts index 2c5d3ff211..59fe27c837 100644 --- a/script/opencode-changesets.ts +++ b/script/upstream/opencode-changesets.ts @@ -1,5 +1,4 @@ #!/usr/bin/env bun -// kilocode_change - new file import path from "path" import semver from "semver" @@ -28,7 +27,7 @@ type Opts = { } const usage = ` -Usage: bun script/opencode-changesets.ts [options] +Usage: bun script/upstream/opencode-changesets.ts [options] Creates one changeset per upstream opencode release in the semver range (from, to]. @@ -44,8 +43,8 @@ Options: -h, --help Show this help message Examples: - bun script/opencode-changesets.ts 1.17.0 1.17.7 - bun script/opencode-changesets.ts --from v1.16.0 --to v1.17.7 --dry-run + bun script/upstream/opencode-changesets.ts 1.17.0 1.17.7 + bun script/upstream/opencode-changesets.ts --from v1.16.0 --to v1.17.7 --dry-run ` function clean(input: string) { @@ -161,7 +160,7 @@ function opts() { from, to, repo: parsed.values.repo, - root: path.resolve(import.meta.dir, ".."), + root: path.resolve(import.meta.dir, "../.."), packages: parsed.values.package?.length ? parsed.values.package : ["@kilocode/cli", "kilo-code"], bump, dry: parsed.values["dry-run"], From 105d3be8ae2fc42a39b92ae92c823c73ab3d3dcf Mon Sep 17 00:00:00 2001 From: "kilo-maintainer[bot]" Date: Mon, 15 Jun 2026 14:30:32 +0000 Subject: [PATCH 061/109] chore: update nix node_modules hashes --- nix/hashes.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nix/hashes.json b/nix/hashes.json index 022fc3658c..d484352aa8 100644 --- a/nix/hashes.json +++ b/nix/hashes.json @@ -1,8 +1,8 @@ { "nodeModules": { - "x86_64-linux": "sha256-eDZ7bR8/xjtQj8Y+X02h/D7afn2TGC3xOTnDmwFKkwo=", - "aarch64-linux": "sha256-CvsqQ8uSoZmc/9ClO4I/Wwb2NIQqynt57n/G0P9mFPY=", - "aarch64-darwin": "sha256-mIC3G1zON6WmKyZT5YaYGc0Wh6v/tQ+aJaZcU7/nyzE=", - "x86_64-darwin": "sha256-U6A3ZPFUVUDdgwxCJXX5X0HzR6DiLzIoHViDoQDiMMY=" + "x86_64-linux": "sha256-jvRriUZ4wVKCs5Lek4b+Ln98WJe3QUZ9xzLX7E6XUG4=", + "aarch64-linux": "sha256-tcr6VJXR0H0iCS4LaRPb8tjapNIt8+WVn1jyWWiwUdg=", + "aarch64-darwin": "sha256-Rwg8EbHvxNo1mDr2RqPUDAX7QR//pFcnmgXfDbIx4oY=", + "x86_64-darwin": "sha256-Wsu1lxKb/gzdi7i0iwok9Uejk9QLEn/K3jaqURjsyT0=" } } From f5440b7c7fd181116dea50e2411d04c80945b8ce Mon Sep 17 00:00:00 2001 From: Mark IJbema Date: Mon, 15 Jun 2026 17:14:09 +0200 Subject: [PATCH 062/109] fix: filter upstream changeset notes --- script/upstream/README.md | 4 +- script/upstream/opencode-changesets.test.ts | 41 ++++++++++++++++++++- script/upstream/opencode-changesets.ts | 41 ++++++++++++++++++++- 3 files changed, 82 insertions(+), 4 deletions(-) diff --git a/script/upstream/README.md b/script/upstream/README.md index c136db668b..557d064b29 100644 --- a/script/upstream/README.md +++ b/script/upstream/README.md @@ -69,7 +69,7 @@ After merging upstream opencode releases, use `opencode-changesets.ts` to turn t bun script/upstream/opencode-changesets.ts 1.17.0 1.17.7 ``` -The script fetches releases from `anomalyco/opencode`, selects published releases in the semver range `(from, to]`, and writes one `.changeset/opencode-vX-Y-Z.md` file per release. It defaults to patch changesets for the fixed release group, `@kilocode/cli` and `kilo-code`. +The script fetches releases from `anomalyco/opencode`, selects published releases in the semver range `(from, to]`, and writes one `.changeset/opencode-vX-Y-Z.md` file per release. It defaults to patch changesets for the fixed release group, `@kilocode/cli` and `kilo-code`. Generated notes omit contributor thank-you blocks and the upstream `Desktop` section by default because Kilo does not ship the opencode desktop app. Preview without writing files: @@ -84,6 +84,8 @@ Useful options: | `--repo ` | Fetch releases from another GitHub repository | | `--package ` | Add a changeset package; repeat for multiple packages | | `--bump ` | Set the generated changeset bump type | +| `--drop-section ` | Omit a markdown `##` section by heading; repeat for multiple sections | +| `--no-default-drop-section` | Disable the default dropped sections, such as `Desktop` | | `--force` | Overwrite existing generated changeset files | | `--include-prerelease` | Include prerelease GitHub releases | diff --git a/script/upstream/opencode-changesets.test.ts b/script/upstream/opencode-changesets.test.ts index ca213ec170..9d2f75fcbd 100644 --- a/script/upstream/opencode-changesets.test.ts +++ b/script/upstream/opencode-changesets.test.ts @@ -29,17 +29,56 @@ describe("opencode changesets", () => { changeset({ tag_name: "v1.2.2", body: "\r\n## Core\r\n\r\n- Fix issue\r\n" }, { packages: ["@kilocode/cli", "kilo-code"], bump: "patch", + drop: ["Desktop"], }), ).toBe(`--- "@kilocode/cli": patch "kilo-code": patch --- -Integrate upstream opencode v1.2.2 release notes. +Changes from opencode v1.2.2 upstream: ## Core - Fix issue +`) + }) + + test("filters ignored sections and contributor thanks", () => { + expect( + changeset({ + tag_name: "v1.2.2", + body: `## Core + +- Keep this + +## Desktop + +- Drop this + +## Misc + +- Drop misc + +**Thank you to 1 community contributor:** + +- @user: + - Helped +`, + }, { + packages: ["@kilocode/cli"], + bump: "patch", + drop: ["Desktop", "Misc"], + }), + ).toBe(`--- +"@kilocode/cli": patch +--- + +Changes from opencode v1.2.2 upstream: + +## Core + +- Keep this `) }) }) diff --git a/script/upstream/opencode-changesets.ts b/script/upstream/opencode-changesets.ts index 59fe27c837..b815549077 100644 --- a/script/upstream/opencode-changesets.ts +++ b/script/upstream/opencode-changesets.ts @@ -21,6 +21,7 @@ type Opts = { root: string packages: string[] bump: Bump + drop: string[] dry: boolean force: boolean prerelease: boolean @@ -37,6 +38,8 @@ Options: --repo GitHub repository (default: anomalyco/opencode) --package Changeset package (repeatable; defaults to @kilocode/cli and kilo-code) --bump Changeset bump type: major, minor, patch (default: patch) + --drop-section Omit a markdown ## section by heading (repeatable; defaults to Desktop) + --no-default-drop-section Do not drop the default Desktop section --dry-run Print changesets without writing files --force Overwrite existing generated changeset files --include-prerelease Include prerelease GitHub releases @@ -76,6 +79,36 @@ function body(release: Release) { return `Integrate upstream opencode ${release.tag_name}.` } +function filter(input: string, drop: string[]) { + const drops = new Set(drop.map((item) => item.trim().toLowerCase()).filter(Boolean)) + const lines = input.replace(/\r\n?/g, "\n").split("\n") + const out: string[] = [] + let section = false + let thanks = false + + for (const line of lines) { + const match = line.match(/^##\s+(.+?)\s*$/) + if (match) { + section = drops.has(match[1].trim().toLowerCase()) + thanks = false + } + + if (line.match(/^\*\*Thank you to \d+ community contributors?:\*\*\s*$/)) { + thanks = true + continue + } + + if (thanks) { + if (!line.startsWith("-") && !line.startsWith(" -") && line.trim() !== "") thanks = false + if (thanks) continue + } + + if (!section) out.push(line) + } + + return out.join("\n").replace(/\n{3,}/g, "\n\n").trim() +} + function isRelease(input: unknown): input is Release { return Boolean(input && typeof input === "object" && "tag_name" in input && typeof input.tag_name === "string") } @@ -100,8 +133,9 @@ export function select(releases: Release[], from: string, to: string, prerelease .map((item) => ({ ...item.release, tag_name: tag(item.version) })) } -export function changeset(release: Release, opts: Pick) { - return `---\n${packages(opts.packages, opts.bump)}\n---\n\nIntegrate upstream opencode ${release.tag_name} release notes.\n\n${body(release)}\n` +export function changeset(release: Release, opts: Pick) { + const text = filter(body(release), opts.drop) || "No upstream release notes were published." + return `---\n${packages(opts.packages, opts.bump)}\n---\n\nChanges from opencode ${release.tag_name} upstream:\n\n${text}\n` } async function all(repo: string) { @@ -136,6 +170,8 @@ function opts() { repo: { type: "string", default: "anomalyco/opencode" }, package: { type: "string", multiple: true }, bump: { type: "string", default: "patch" }, + "drop-section": { type: "string", multiple: true }, + "no-default-drop-section": { type: "boolean", default: false }, "dry-run": { type: "boolean", default: false }, force: { type: "boolean", default: false }, "include-prerelease": { type: "boolean", default: false }, @@ -163,6 +199,7 @@ function opts() { root: path.resolve(import.meta.dir, "../.."), packages: parsed.values.package?.length ? parsed.values.package : ["@kilocode/cli", "kilo-code"], bump, + drop: [...(parsed.values["no-default-drop-section"] ? [] : ["Desktop"]), ...(parsed.values["drop-section"] ?? [])], dry: parsed.values["dry-run"], force: parsed.values.force, prerelease: parsed.values["include-prerelease"], From b498488c4fd7148a4c809778d799e84931d6c9c8 Mon Sep 17 00:00:00 2001 From: Mark IJbema Date: Mon, 15 Jun 2026 17:30:46 +0200 Subject: [PATCH 063/109] fix: bundle upstream release changesets --- script/upstream/README.md | 2 +- script/upstream/opencode-changesets.test.ts | 90 +++++++++++++++++-- script/upstream/opencode-changesets.ts | 95 +++++++++++++++++---- 3 files changed, 161 insertions(+), 26 deletions(-) diff --git a/script/upstream/README.md b/script/upstream/README.md index 557d064b29..54130ac983 100644 --- a/script/upstream/README.md +++ b/script/upstream/README.md @@ -69,7 +69,7 @@ After merging upstream opencode releases, use `opencode-changesets.ts` to turn t bun script/upstream/opencode-changesets.ts 1.17.0 1.17.7 ``` -The script fetches releases from `anomalyco/opencode`, selects published releases in the semver range `(from, to]`, and writes one `.changeset/opencode-vX-Y-Z.md` file per release. It defaults to patch changesets for the fixed release group, `@kilocode/cli` and `kilo-code`. Generated notes omit contributor thank-you blocks and the upstream `Desktop` section by default because Kilo does not ship the opencode desktop app. +The script fetches releases from `anomalyco/opencode`, selects published releases in the semver range `(from, to]`, and writes one `.changeset/opencode-vX-Y-Z-to-vX-Y-Z.md` file for the whole range. It merges notes from every release into shared `##` sections and `###` categories, so all `Core` bugfixes in the range appear under one `## Core` / `### Bugfixes` block. It defaults to patch changesets for the fixed release group, `@kilocode/cli` and `kilo-code`. Generated notes omit contributor thank-you blocks and the upstream `Desktop` section by default because Kilo does not ship the opencode desktop app. Preview without writing files: diff --git a/script/upstream/opencode-changesets.test.ts b/script/upstream/opencode-changesets.test.ts index 9d2f75fcbd..19026852fa 100644 --- a/script/upstream/opencode-changesets.test.ts +++ b/script/upstream/opencode-changesets.test.ts @@ -26,7 +26,9 @@ describe("opencode changesets", () => { test("formats changeset markdown", () => { expect( - changeset({ tag_name: "v1.2.2", body: "\r\n## Core\r\n\r\n- Fix issue\r\n" }, { + changeset([{ tag_name: "v1.2.2", body: "\r\n## Core\r\n\r\n- Fix issue\r\n" }], { + from: "1.2.1", + to: "1.2.2", packages: ["@kilocode/cli", "kilo-code"], bump: "patch", drop: ["Desktop"], @@ -36,7 +38,7 @@ describe("opencode changesets", () => { "kilo-code": patch --- -Changes from opencode v1.2.2 upstream: +Changes from opencode v1.2.1 to v1.2.2 upstream: ## Core @@ -46,9 +48,10 @@ Changes from opencode v1.2.2 upstream: test("filters ignored sections and contributor thanks", () => { expect( - changeset({ - tag_name: "v1.2.2", - body: `## Core + changeset([ + { + tag_name: "v1.2.2", + body: `## Core - Keep this @@ -65,7 +68,10 @@ Changes from opencode v1.2.2 upstream: - @user: - Helped `, - }, { + }, + ], { + from: "1.2.1", + to: "1.2.2", packages: ["@kilocode/cli"], bump: "patch", drop: ["Desktop", "Misc"], @@ -74,11 +80,81 @@ Changes from opencode v1.2.2 upstream: "@kilocode/cli": patch --- -Changes from opencode v1.2.2 upstream: +Changes from opencode v1.2.1 to v1.2.2 upstream: ## Core - Keep this +`) + }) + + test("bundles release notes into shared sections", () => { + expect( + changeset([ + { + tag_name: "v1.2.1", + body: `## Core + +### Bugfixes + +- Fix first + +## TUI + +### Improvements + +- Improve first +`, + }, + { + tag_name: "v1.2.2", + body: `## Core + +### Bugfixes + +- Fix second + +### Improvements + +- Improve core + +## TUI + +### Improvements + +- Improve second +`, + }, + ], { + from: "1.2.0", + to: "1.2.2", + packages: ["@kilocode/cli"], + bump: "patch", + drop: ["Desktop"], + }), + ).toBe(`--- +"@kilocode/cli": patch +--- + +Changes from opencode v1.2.0 to v1.2.2 upstream: + +## Core + +### Bugfixes + +- Fix first +- Fix second + +### Improvements + +- Improve core + +## TUI + +### Improvements + +- Improve first +- Improve second `) }) }) diff --git a/script/upstream/opencode-changesets.ts b/script/upstream/opencode-changesets.ts index b815549077..f9d0e9c93d 100644 --- a/script/upstream/opencode-changesets.ts +++ b/script/upstream/opencode-changesets.ts @@ -27,10 +27,12 @@ type Opts = { prerelease: boolean } +type Group = Map> + const usage = ` Usage: bun script/upstream/opencode-changesets.ts [options] -Creates one changeset per upstream opencode release in the semver range (from, to]. +Creates one changeset for upstream opencode releases in the semver range (from, to]. Options: --from Starting opencode version, exclusive @@ -61,8 +63,10 @@ function tag(input: string) { return `v${clean(input)}` } -function slug(input: string) { - return `opencode-${tag(input).replace(/[^a-zA-Z0-9]+/g, "-").replace(/^-|-$/g, "").toLowerCase()}.md` +function slug(from: string, to: string) { + const base = tag(from).replace(/[^a-zA-Z0-9]+/g, "-").replace(/^-|-$/g, "").toLowerCase() + const head = tag(to).replace(/[^a-zA-Z0-9]+/g, "-").replace(/^-|-$/g, "").toLowerCase() + return `opencode-${base}-to-${head}.md` } function packages(input: string[], bump: Bump) { @@ -109,6 +113,64 @@ function filter(input: string, drop: string[]) { return out.join("\n").replace(/\n{3,}/g, "\n\n").trim() } +function add(groups: Group, section: string, category: string, line: string) { + if (!groups.has(section)) groups.set(section, new Map()) + const group = groups.get(section)! + if (!group.has(category)) group.set(category, []) + group.get(category)!.push(line) +} + +function collect(releases: Release[], drop: string[]) { + const groups: Group = new Map() + + for (const release of releases) { + const text = filter(body(release), drop) + let section = "Core" + let category = "" + + for (const line of text.split("\n")) { + const heading = line.match(/^##\s+(.+?)\s*$/) + if (heading) { + section = heading[1].trim() + category = "" + if (!groups.has(section)) groups.set(section, new Map()) + continue + } + + const sub = line.match(/^###\s+(.+?)\s*$/) + if (sub) { + category = sub[1].trim() + if (!groups.has(section)) groups.set(section, new Map()) + if (!groups.get(section)!.has(category)) groups.get(section)!.set(category, []) + continue + } + + if (!line.trim()) continue + add(groups, section, category, line) + } + } + + return groups +} + +function render(groups: Group) { + const lines: string[] = [] + + for (const [section, cats] of groups) { + const entries = [...cats.values()].flat() + if (entries.length === 0) continue + + lines.push(`## ${section}`, "") + for (const [category, items] of cats) { + if (items.length === 0) continue + if (category) lines.push(`### ${category}`, "") + lines.push(...items, "") + } + } + + return lines.join("\n").trim() +} + function isRelease(input: unknown): input is Release { return Boolean(input && typeof input === "object" && "tag_name" in input && typeof input.tag_name === "string") } @@ -133,9 +195,9 @@ export function select(releases: Release[], from: string, to: string, prerelease .map((item) => ({ ...item.release, tag_name: tag(item.version) })) } -export function changeset(release: Release, opts: Pick) { - const text = filter(body(release), opts.drop) || "No upstream release notes were published." - return `---\n${packages(opts.packages, opts.bump)}\n---\n\nChanges from opencode ${release.tag_name} upstream:\n\n${text}\n` +export function changeset(releases: Release[], opts: Pick) { + const text = render(collect(releases, opts.drop)) || "No upstream release notes were published." + return `---\n${packages(opts.packages, opts.bump)}\n---\n\nChanges from opencode ${tag(opts.from)} to ${tag(opts.to)} upstream:\n\n${text}\n` } async function all(repo: string) { @@ -208,20 +270,17 @@ function opts() { async function write(releases: Release[], opts: Opts) { const dir = path.join(opts.root, ".changeset") + const file = path.join(dir, slug(opts.from, opts.to)) + const text = changeset(releases, opts) - for (const release of releases) { - const file = path.join(dir, slug(release.tag_name)) - const text = changeset(release, opts) - - if (opts.dry) { - process.stdout.write(`--- ${path.relative(opts.root, file)} ---\n${text}\n`) - continue - } - - if (!opts.force && (await Bun.file(file).exists())) throw new Error(`Changeset already exists: ${file}`) - await Bun.write(file, text) - process.stdout.write(`Wrote ${path.relative(opts.root, file)}\n`) + if (opts.dry) { + process.stdout.write(`--- ${path.relative(opts.root, file)} ---\n${text}\n`) + return } + + if (!opts.force && (await Bun.file(file).exists())) throw new Error(`Changeset already exists: ${file}`) + await Bun.write(file, text) + process.stdout.write(`Wrote ${path.relative(opts.root, file)}\n`) } export async function run(opts: Opts) { From f78e54c81c67a1b79af8b98ec4af3686aa716bfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Catriel=20M=C3=BCller?= Date: Mon, 15 Jun 2026 12:53:05 -0300 Subject: [PATCH 064/109] fix(cli): use Kilo packages for upgrades --- .changeset/fix-kilo-npm-upgrade.md | 5 + .../code-with-ai/platforms/cli-reference.md | 2 +- packages/kilo-docs/source-links.md | 4 +- packages/opencode/src/cli/cmd/uninstall.ts | 5 +- packages/opencode/src/cli/cmd/upgrade.ts | 4 +- packages/opencode/src/cli/upgrade.ts | 4 +- packages/opencode/src/installation/index.ts | 67 +++--- .../src/kilocode/installation/index.ts | 26 +++ .../test/installation/installation.test.ts | 12 +- .../kilocode/installation/upgrade.test.ts | 221 ++++++++++++++++++ 10 files changed, 307 insertions(+), 43 deletions(-) create mode 100644 .changeset/fix-kilo-npm-upgrade.md create mode 100644 packages/opencode/src/kilocode/installation/index.ts create mode 100644 packages/opencode/test/kilocode/installation/upgrade.test.ts diff --git a/.changeset/fix-kilo-npm-upgrade.md b/.changeset/fix-kilo-npm-upgrade.md new file mode 100644 index 0000000000..307a40eb8f --- /dev/null +++ b/.changeset/fix-kilo-npm-upgrade.md @@ -0,0 +1,5 @@ +--- +"@kilocode/cli": patch +--- + +Fix upgrades to resolve Kilo CLI packages and releases instead of OpenCode packages and versions. diff --git a/packages/kilo-docs/pages/code-with-ai/platforms/cli-reference.md b/packages/kilo-docs/pages/code-with-ai/platforms/cli-reference.md index e6bc537b98..2f760b9bdb 100644 --- a/packages/kilo-docs/pages/code-with-ai/platforms/cli-reference.md +++ b/packages/kilo-docs/pages/code-with-ai/platforms/cli-reference.md @@ -650,7 +650,7 @@ Positionals: Options: --help Show help [boolean] --version Show version number [boolean] - -m, --method installation method to use [string] [choices: "curl", "npm", "pnpm", "bun", "brew", "choco", "scoop"] + -m, --method installation method to use [string] [choices: "curl", "npm", "yarn", "pnpm", "bun", "brew", "choco", "scoop"] ``` ## kilo uninstall diff --git a/packages/kilo-docs/source-links.md b/packages/kilo-docs/source-links.md index 5ae4764c68..a1311dad23 100644 --- a/packages/kilo-docs/source-links.md +++ b/packages/kilo-docs/source-links.md @@ -122,6 +122,8 @@ - +- + - @@ -143,8 +145,6 @@ - -- - - - diff --git a/packages/opencode/src/cli/cmd/uninstall.ts b/packages/opencode/src/cli/cmd/uninstall.ts index 6b32981443..18c5ca466e 100644 --- a/packages/opencode/src/cli/cmd/uninstall.ts +++ b/packages/opencode/src/cli/cmd/uninstall.ts @@ -8,6 +8,7 @@ import path from "path" import os from "os" import { Filesystem } from "@/util/filesystem" import { Process } from "@/util/process" +import { Brew as KiloBrew } from "@/kilocode/installation" // kilocode_change interface UninstallArgs { keepConfig: boolean @@ -133,7 +134,7 @@ async function showRemovalSummary(targets: RemovalTargets, method: Installation. pnpm: "pnpm uninstall -g @kilocode/cli", // kilocode_change bun: "bun remove -g @kilocode/cli", // kilocode_change yarn: "yarn global remove @kilocode/cli", // kilocode_change - brew: "brew uninstall opencode", + brew: `brew uninstall ${KiloBrew.name}`, // kilocode_change choco: "choco uninstall kilo", // kilocode_change scoop: "scoop uninstall kilo", // kilocode_change } @@ -184,7 +185,7 @@ async function executeUninstall(method: Installation.Method, targets: RemovalTar pnpm: ["pnpm", "uninstall", "-g", "@kilocode/cli"], // kilocode_change bun: ["bun", "remove", "-g", "@kilocode/cli"], // kilocode_change yarn: ["yarn", "global", "remove", "@kilocode/cli"], // kilocode_change - brew: ["brew", "uninstall", "opencode"], + brew: ["brew", "uninstall", KiloBrew.name], // kilocode_change choco: ["choco", "uninstall", "kilo"], // kilocode_change scoop: ["scoop", "uninstall", "kilo"], // kilocode_change } diff --git a/packages/opencode/src/cli/cmd/upgrade.ts b/packages/opencode/src/cli/cmd/upgrade.ts index 8aa6049d2c..67bd30b3e6 100644 --- a/packages/opencode/src/cli/cmd/upgrade.ts +++ b/packages/opencode/src/cli/cmd/upgrade.ts @@ -17,7 +17,7 @@ export const UpgradeCommand = { alias: "m", describe: "installation method to use", type: "string", - choices: ["curl", "npm", "pnpm", "bun", "brew", "choco", "scoop"], + choices: ["curl", "npm", "yarn", "pnpm", "bun", "brew", "choco", "scoop"], // kilocode_change }) }, handler: async (args: { target?: string; method?: string }) => { @@ -43,7 +43,7 @@ export const UpgradeCommand = { } } prompts.log.info("Using method: " + method) - const target = args.target ? args.target.replace(/^v/, "") : await Installation.latest() + const target = args.target ? args.target.replace(/^v/, "") : await Installation.latest(method) // kilocode_change if (InstallationVersion === target) { prompts.log.warn(`kilo upgrade skipped: ${target} is already installed`) // kilocode_change diff --git a/packages/opencode/src/cli/upgrade.ts b/packages/opencode/src/cli/upgrade.ts index f177ce841a..6a2f0b8e72 100644 --- a/packages/opencode/src/cli/upgrade.ts +++ b/packages/opencode/src/cli/upgrade.ts @@ -9,8 +9,8 @@ export async function upgrade() { const config = await AppRuntime.runPromise(Config.Service.use((cfg) => cfg.getGlobal())) if (config.autoupdate === false || Flag.KILO_DISABLE_AUTOUPDATE) return const method = await Installation.method() - // kilocode_change start - only auto-upgrade for npm/pnpm/bun (we only publish @kilocode/cli via npm registry) - if (method !== "npm" && method !== "pnpm" && method !== "bun") return + // kilocode_change start - only auto-upgrade for npm/yarn/pnpm/bun (we only publish @kilocode/cli via npm registry) + if (method !== "npm" && method !== "yarn" && method !== "pnpm" && method !== "bun") return // kilocode_change end const latest = await Installation.latest(method).catch(() => {}) if (!latest) return diff --git a/packages/opencode/src/installation/index.ts b/packages/opencode/src/installation/index.ts index 9b0e06c4af..78537c5636 100644 --- a/packages/opencode/src/installation/index.ts +++ b/packages/opencode/src/installation/index.ts @@ -11,6 +11,9 @@ import { makeRuntime } from "@opencode-ai/core/effect/runtime" import semver from "semver" import { InstallationChannel, InstallationVersion } from "@opencode-ai/core/installation/version" import { NpmConfig } from "@opencode-ai/core/npm-config" +// kilocode_change start +import { Brew as KiloBrew, Choco as KiloChoco, Npm as KiloNpm, Release as KiloRelease, Scoop as KiloScoop } from "@/kilocode/installation" +// kilocode_change end const log = Log.create({ service: "installation" }) @@ -51,7 +54,7 @@ export const Info = Schema.Struct({ export type Info = Schema.Schema.Type export function userAgent(client = "cli") { - return `opencode/${InstallationChannel}/${InstallationVersion}/${client}` + return `kilo/${InstallationChannel}/${InstallationVersion}/${client}` // kilocode_change } export const USER_AGENT = userAgent() @@ -129,15 +132,15 @@ export const layer: Layer.Layer text(["yarn", "global", "list"]) }, { name: "pnpm", command: () => text(["pnpm", "list", "-g", "--depth=0"]) }, { name: "bun", command: () => text(["bun", "pm", "ls", "-g"]) }, - { name: "brew", command: () => text(["brew", "list", "--formula", "opencode"]) }, - { name: "scoop", command: () => text(["scoop", "list", "opencode"]) }, - { name: "choco", command: () => text(["choco", "list", "--limit-output", "opencode"]) }, + { name: "brew", command: () => text(["brew", "list", "--formula", KiloBrew.formula]) }, // kilocode_change + { name: "scoop", command: () => text(["scoop", "list", KiloScoop.name]) }, // kilocode_change + { name: "choco", command: () => text(["choco", "list", "--limit-output", KiloChoco.name]) }, // kilocode_change ] checks.sort((a, b) => { @@ -186,8 +190,16 @@ export const layer: Layer.Layer { Effect.gen(function* () { const result = yield* Installation.Service.use((svc) => svc.latest("npm")) expect(result).toBe("1.5.0") - expect(npmCalls).toContain(`https://registry.npmjs.org/opencode-ai/${InstallationChannel}`) + expect(npmCalls).toContain(`https://registry.npmjs.org/@kilocode%2fcli/${InstallationChannel}`) // kilocode_change }), ) @@ -96,7 +96,7 @@ describe("installation", () => { Effect.gen(function* () { const result = yield* Installation.Service.use((svc) => svc.latest("bun")) expect(result).toBe("1.6.0") - expect(bunCalls).toContain(`https://registry.npmjs.org/opencode-ai/${InstallationChannel}`) + expect(bunCalls).toContain(`https://registry.npmjs.org/@kilocode%2fcli/${InstallationChannel}`) // kilocode_change }), ) @@ -110,7 +110,7 @@ describe("installation", () => { Effect.gen(function* () { const result = yield* Installation.Service.use((svc) => svc.latest("pnpm")) expect(result).toBe("1.7.0") - expect(pnpmCalls).toContain(`https://registry.npmjs.org/opencode-ai/${InstallationChannel}`) + expect(pnpmCalls).toContain(`https://registry.npmjs.org/@kilocode%2fcli/${InstallationChannel}`) // kilocode_change }), ) @@ -135,8 +135,8 @@ describe("installation", () => { () => jsonResponse({ versions: { stable: "2.0.0" } }), (cmd, args) => { // getBrewFormula: return core formula (no tap) - if (cmd === "brew" && args.includes("--formula") && args.includes("anomalyco/tap/opencode")) return "" - if (cmd === "brew" && args.includes("--formula") && args.includes("opencode")) return "opencode" + if (cmd === "brew" && args.includes("--formula") && args.includes("Kilo-Org/tap/kilo")) return "" // kilocode_change + if (cmd === "brew" && args.includes("--formula") && args.includes("kilo")) return "kilo" // kilocode_change return "" }, ), @@ -154,7 +154,7 @@ describe("installation", () => { testLayer( () => jsonResponse({}), // HTTP not used for tap formula (cmd, args) => { - if (cmd === "brew" && args.includes("anomalyco/tap/opencode") && args.includes("--formula")) return "opencode" + if (cmd === "brew" && args.includes("Kilo-Org/tap/kilo") && args.includes("--formula")) return "kilo" // kilocode_change if (cmd === "brew" && args.includes("--json=v2")) return brewInfoJson return "" }, diff --git a/packages/opencode/test/kilocode/installation/upgrade.test.ts b/packages/opencode/test/kilocode/installation/upgrade.test.ts new file mode 100644 index 0000000000..b2ecaf48f4 --- /dev/null +++ b/packages/opencode/test/kilocode/installation/upgrade.test.ts @@ -0,0 +1,221 @@ +import { describe, expect } from "bun:test" +import { Effect, Layer, Stream } from "effect" +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" +import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" +import { InstallationChannel } from "@opencode-ai/core/installation/version" +import { AppProcess } from "@opencode-ai/core/process" +import { Installation } from "../../../src/installation" +import { testEffect } from "../../lib/effect" + +const encoder = new TextEncoder() + +function json(body: unknown) { + return new Response(JSON.stringify(body), { + status: 200, + headers: { "content-type": "application/json" }, + }) +} + +function http(handler: (request: HttpClientRequest.HttpClientRequest) => Response = () => json({})) { + const client = HttpClient.make((request) => Effect.succeed(HttpClientResponse.fromWeb(request, handler(request)))) + return Layer.succeed(HttpClient.HttpClient, client) +} + +function spawner(handler: (cmd: string, args: readonly string[]) => string) { + const child = ChildProcessSpawner.make((command) => { + const std = ChildProcess.isStandardCommand(command) ? command : undefined + const output = handler(std?.command ?? "", std?.args ?? []) + return Effect.succeed( + ChildProcessSpawner.makeHandle({ + pid: ChildProcessSpawner.ProcessId(0), + exitCode: Effect.succeed(ChildProcessSpawner.ExitCode(0)), + isRunning: Effect.succeed(false), + kill: () => Effect.void, + stdin: { [Symbol.for("effect/Sink/TypeId")]: Symbol.for("effect/Sink/TypeId") } as never, + stdout: output ? Stream.make(encoder.encode(output)) : Stream.empty, + stderr: Stream.empty, + all: Stream.empty, + getInputFd: () => ({ [Symbol.for("effect/Sink/TypeId")]: Symbol.for("effect/Sink/TypeId") }) as never, + getOutputFd: () => Stream.empty, + unref: Effect.succeed(Effect.void), + }), + ) + }) + return Layer.succeed(ChildProcessSpawner.ChildProcessSpawner, child) +} + +function layer( + handler: (cmd: string, args: readonly string[]) => string, + request?: (request: HttpClientRequest.HttpClientRequest) => Response, +) { + const proc = AppProcess.layer.pipe(Layer.provide(spawner(handler))) + return Installation.layer.pipe(Layer.provide(http(request)), Layer.provide(proc)) +} + +describe("Kilo installation upgrade", () => { + const release: string[] = [] + testEffect( + layer( + () => "", + (request) => { + release.push(request.url) + return json({ tag_name: "v8.8.8" }) + }, + ), + ).effect("reads fallback versions from Kilo GitHub releases", () => + Effect.gen(function* () { + const result = yield* Installation.Service.use((svc) => svc.latest("unknown")) + expect(result).toBe("8.8.8") + expect(release).toContain("https://api.github.com/repos/Kilo-Org/kilocode/releases/latest") + }), + ) + + const urls: string[] = [] + testEffect( + layer( + () => "", + (request) => { + urls.push(request.url) + return json({ version: "8.8.8" }) + }, + ), + ).effect("reads yarn versions from the Kilo package registry", () => + Effect.gen(function* () { + const result = yield* Installation.Service.use((svc) => svc.latest("yarn")) + expect(result).toBe("8.8.8") + expect(urls).toContain(`https://registry.npmjs.org/@kilocode%2fcli/${InstallationChannel}`) + }), + ) + + testEffect( + layer((cmd, args) => { + if (cmd === "npm" && args.includes("list")) return "@kilocode/cli@7.3.45" + return "" + }), + ).effect("detects npm installs from the Kilo package", () => + Effect.gen(function* () { + const result = yield* Installation.Service.use((svc) => svc.method()) + expect(result).toBe("npm") + }), + ) + + const choco: string[] = [] + testEffect( + layer( + () => "", + (request) => { + choco.push(request.url) + return json({ d: { results: [{ Version: "8.8.8" }] } }) + }, + ), + ).effect("reads choco versions from the Kilo package", () => + Effect.gen(function* () { + const result = yield* Installation.Service.use((svc) => svc.latest("choco")) + expect(result).toBe("8.8.8") + expect(choco).toContain( + "https://community.chocolatey.org/api/v2/Packages?$filter=Id%20eq%20%27kilo%27%20and%20IsLatestVersion&$select=Version", + ) + }), + ) + + const scoop: string[] = [] + testEffect( + layer( + () => "", + (request) => { + scoop.push(request.url) + return json({ version: "8.8.8" }) + }, + ), + ).effect("reads scoop versions from the Kilo manifest", () => + Effect.gen(function* () { + const result = yield* Installation.Service.use((svc) => svc.latest("scoop")) + expect(result).toBe("8.8.8") + expect(scoop).toContain("https://raw.githubusercontent.com/ScoopInstaller/Main/master/bucket/kilo.json") + }), + ) + + const calls: string[] = [] + const upgrade = layer((cmd, args) => { + calls.push([cmd, ...args].join(" ")) + return "" + }) + + testEffect(upgrade).effect("installs the Kilo npm package", () => + Effect.gen(function* () { + yield* Installation.Service.use((svc) => svc.upgrade("npm", "9.9.9")) + expect(calls).toContain("npm install -g @kilocode/cli@9.9.9") + }), + ) + + testEffect(upgrade).effect("installs the Kilo yarn package", () => + Effect.gen(function* () { + yield* Installation.Service.use((svc) => svc.upgrade("yarn", "9.9.9")) + expect(calls).toContain("yarn global add @kilocode/cli@9.9.9") + }), + ) + + testEffect(upgrade).effect("installs the Kilo pnpm package", () => + Effect.gen(function* () { + yield* Installation.Service.use((svc) => svc.upgrade("pnpm", "9.9.9")) + expect(calls).toContain("pnpm install -g @kilocode/cli@9.9.9") + }), + ) + + testEffect(upgrade).effect("installs the Kilo bun package", () => + Effect.gen(function* () { + yield* Installation.Service.use((svc) => svc.upgrade("bun", "9.9.9")) + expect(calls).toContain("bun install -g @kilocode/cli@9.9.9") + }), + ) + + const brew: string[] = [] + const brewer = layer((cmd, args) => { + brew.push([cmd, ...args].join(" ")) + if (cmd === "brew" && args.includes("list")) return "kilo" + if (cmd === "brew" && args.includes("--repo")) return "/tmp/kilo-homebrew-tap" + return "" + }) + + testEffect(brewer).effect("upgrades the Kilo brew formula", () => + Effect.gen(function* () { + yield* Installation.Service.use((svc) => svc.upgrade("brew", "9.9.9")) + expect(brew).toContain("brew tap Kilo-Org/tap") + expect(brew).toContain("brew upgrade Kilo-Org/tap/kilo") + }), + ) + + testEffect(upgrade).effect("upgrades the Kilo choco package", () => + Effect.gen(function* () { + yield* Installation.Service.use((svc) => svc.upgrade("choco", "9.9.9")) + expect(calls).toContain("choco upgrade kilo --version=9.9.9 -y") + }), + ) + + testEffect(upgrade).effect("installs the Kilo scoop package", () => + Effect.gen(function* () { + yield* Installation.Service.use((svc) => svc.upgrade("scoop", "9.9.9")) + expect(calls).toContain("scoop install kilo@9.9.9") + }), + ) + + const curl: string[] = [] + testEffect( + layer( + (cmd, args) => { + curl.push([cmd, ...args].join(" ")) + return "" + }, + (request) => { + curl.push(request.url) + return new Response("#!/usr/bin/env bash", { status: 200 }) + }, + ), + ).effect("uses the Kilo install script for curl upgrades", () => + Effect.gen(function* () { + yield* Installation.Service.use((svc) => svc.upgrade("curl", "9.9.9")) + expect(curl).toContain("https://kilo.ai/install") + expect(curl).toContain("bash") + }), + ) +}) From 312c3ab012bd2b466451aec7a7353b8abd93a70c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Catriel=20M=C3=BCller?= Date: Mon, 15 Jun 2026 12:53:39 -0300 Subject: [PATCH 065/109] chore(cli): annotate Kilo upgrade switch --- packages/opencode/src/installation/index.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/installation/index.ts b/packages/opencode/src/installation/index.ts index 78537c5636..d262663f64 100644 --- a/packages/opencode/src/installation/index.ts +++ b/packages/opencode/src/installation/index.ts @@ -266,12 +266,14 @@ export const layer: Layer.Layer Date: Mon, 15 Jun 2026 18:08:38 +0200 Subject: [PATCH 066/109] chore: add bundled opencode changeset --- .changeset/opencode-v1-14-51-to-v1-15-4.md | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .changeset/opencode-v1-14-51-to-v1-15-4.md diff --git a/.changeset/opencode-v1-14-51-to-v1-15-4.md b/.changeset/opencode-v1-14-51-to-v1-15-4.md new file mode 100644 index 0000000000..f878d88641 --- /dev/null +++ b/.changeset/opencode-v1-14-51-to-v1-15-4.md @@ -0,0 +1,55 @@ +--- +"@kilocode/cli": patch +"kilo-code": patch +--- + +Changes from opencode v1.14.51 to v1.15.4 upstream: + +## Core + +### Improvements + +- Added an Effect-based core event system for more complete event delivery across sessions and integrations. +- Clarified how to recover when the npm package is installed without its native binary. +- Reduced unnecessary prompting around shell, task, and todo flows. + +### Bugfixes + +- Ignored invalid exports in custom tool modules instead of failing tool loading. +- Ignored project instruction lookup errors so sessions keep loading when project instruction discovery fails. +- Fixed versioned event projector lookups so event replay uses the right handlers. +- Avoid duplicate consecutive entries in prompt history. +- Show full config validation errors during TUI startup instead of a generic failure. +- Fixed npm installs so the CLI can recover and fetch the right native binary on more setups. +- Fixed multiline `@` mentions in prompts. +- Preserved custom tool metadata from Zod schemas. +- Preserved custom tool argument descriptions in generated schemas. +- Fixed file watching in repos where `.git` is a symlink. (@kagura-agent) +- Fixed sync events not reaching project-scoped subscribers in injected instances. +- Reduced wasted work when reading very large files after output truncation. +- Fixed project-scoped bus events so file watcher and update notifications reach the right instance. +- Fixed custom LSP servers not sending refresh events after they initialize. +- Hid background subagent task instructions unless experimental background mode is enabled. + +## SDK + +### Bugfixes + +- Restored missing event types in the JavaScript SDK, including session and message events. + +## TUI + +### Improvements + +- Added a collapsed thinking view that can be expanded inline. +- Added pinned sessions with quick-switch slots in the session picker. +- Newly pinned sessions now stay at the end of the pinned list instead of jumping to the top. +- Made Markdown H1 headings easier to distinguish. + +### Bugfixes + +- Fixed thinking mode defaults so reasoning starts collapsed consistently. +- Limited session quick-switching to pinned sessions. +- Fixed Markdown table rendering in chat output. +- Fixed `opencode run --agent` resolving project-local agents. +- Fixed async commands losing the active instance context, which could break agent generation and GitHub-driven runs. From 681b8090f367ae4c2d0f15c6e99b137271e11439 Mon Sep 17 00:00:00 2001 From: kirillk Date: Mon, 15 Jun 2026 12:12:43 -0400 Subject: [PATCH 067/109] fix(jetbrains): consolidate shell terminal parsing --- .../session/views/tool/ShellToolView.kt | 56 +---------------- .../client/ui/md/hybrid/MdLanguage.kt | 54 ++-------------- .../client/ui/md/hybrid/MdTerminal.kt | 62 ++++++++++++++----- .../client/session/views/ShellToolViewTest.kt | 9 +++ .../kilocode/client/ui/md/MdTerminalTest.kt | 26 ++++++++ .../kilocode/client/ui/md/MdViewHybridTest.kt | 8 +++ 6 files changed, 99 insertions(+), 116 deletions(-) create mode 100644 packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/ui/md/MdTerminalTest.kt diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/tool/ShellToolView.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/tool/ShellToolView.kt index 464baef4af..7200420d4e 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/tool/ShellToolView.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/views/tool/ShellToolView.kt @@ -12,6 +12,7 @@ import ai.kilocode.client.ui.md.MdCodeBlockBorder import ai.kilocode.client.ui.md.MdCodeBlockFactory import ai.kilocode.client.ui.md.MdCodeBlockOptions import ai.kilocode.client.ui.md.MdViewFactory +import ai.kilocode.client.ui.md.hybrid.MdTerminal import com.intellij.openapi.Disposable import com.intellij.openapi.util.Disposer import com.intellij.ui.EditorTextField @@ -282,7 +283,7 @@ private data class ShellContent( } } -private fun outputLang(text: String): String = if (ANSI.containsMatchIn(text)) "ansi-stdout" else "shell-output" +private fun outputLang(text: String): String = if (MdTerminal.hasAnsi(text)) "ansi-stdout" else "shell-output" private fun StringBuilder.section(title: String, text: String, lang: String) { if (text.isBlank()) return @@ -300,55 +301,4 @@ private fun fence(text: String): String { return "`".repeat(maxOf(3, size + 1)) } -private fun clean(text: String): String = strip(normalize(text)) - -private fun strip(text: String): String = ANSI.replace(text, "") - -private fun normalize(text: String): String = lines(text.replace("\r\n", "\n")).joinToString("\n") { line -> - val frame = if ('\r' !in line) line else frames(line).lastOrNull { it.isNotEmpty() } ?: "" - backspace(frame) -} - -private fun backspace(text: String): String { - val out = StringBuilder() - var idx = 0 - while (idx < text.length) { - val ch = text[idx++] - if (ch == '\b') { - if (out.isNotEmpty()) out.deleteCharAt(out.length - 1) - continue - } - out.append(ch) - } - return out.toString() -} - -private fun lines(text: String): List { - val list = mutableListOf() - var start = 0 - while (true) { - val index = text.indexOf('\n', start) - if (index < 0) { - list.add(text.substring(start)) - return list - } - list.add(text.substring(start, index)) - start = index + 1 - } -} - -private fun frames(text: String): List { - val list = mutableListOf() - var start = 0 - while (true) { - val index = text.indexOf('\r', start) - if (index < 0) { - list.add(text.substring(start)) - return list - } - list.add(text.substring(start, index)) - start = index + 1 - } -} - -private val ANSI = Regex("\\u001B\\[[0-?]*[ -/]*[@-~]") +private fun clean(text: String): String = MdTerminal.strip(MdTerminal.reduce(text, keepSgr = false)) diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/md/hybrid/MdLanguage.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/md/hybrid/MdLanguage.kt index 1c90651229..4acb36e8d1 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/md/hybrid/MdLanguage.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/md/hybrid/MdLanguage.kt @@ -15,6 +15,7 @@ internal enum class Stream { Stdout, Stderr } internal enum class Mode { Ansi, Shell, Command } internal object MdLanguage { + /** Internal terminal fence tags produced by ShellToolView shell transcript markdown. */ private val terms = mapOf( "ansi" to Kind.Terminal(Stream.Stdout, Mode.Ansi), "ansi-stdout" to Kind.Terminal(Stream.Stdout, Mode.Ansi), @@ -27,79 +28,34 @@ internal object MdLanguage { "shell-error" to Kind.Terminal(Stream.Stderr, Mode.Ansi), ) + // Alias layer only; canonical extensions fall through to FileTypeRegistry below. private val files = mapOf( - "kt" to "kt", "kotlin" to "kt", - "js" to "js", "javascript" to "js", - "jsx" to "jsx", - "ts" to "ts", "typescript" to "ts", - "tsx" to "tsx", - "java" to "java", - "py" to "py", "python" to "py", - "sh" to "sh", "bash" to "sh", "shell" to "sh", "zsh" to "sh", "shellscript" to "sh", - "json" to "json", - "xml" to "xml", - "html" to "html", - "css" to "css", - "md" to "md", "markdown" to "md", - "yaml" to "yaml", "yml" to "yaml", - "toml" to "toml", - "go" to "go", "golang" to "go", - "rs" to "rs", "rust" to "rs", - "rb" to "rb", "ruby" to "rb", - "php" to "php", - "swift" to "swift", - "scala" to "scala", - "sql" to "sql", - "dockerfile" to "dockerfile", "docker" to "dockerfile", - "gradle" to "gradle", - "kts" to "kts", - "c" to "c", - "h" to "h", - "cpp" to "cpp", "c++" to "cpp", - "cc" to "cc", - "cxx" to "cxx", - "hpp" to "hpp", "h++" to "hpp", - "cs" to "cs", "csharp" to "cs", "c#" to "cs", - "fs" to "fs", "fsharp" to "fs", "f#" to "fs", - "ps1" to "ps1", "powershell" to "ps1", "pwsh" to "ps1", - "bat" to "bat", "batch" to "bat", "cmd" to "bat", - "makefile" to "makefile", "make" to "makefile", "terraform" to "tf", - "tf" to "tf", - "hcl" to "hcl", - "vue" to "vue", - "svelte" to "svelte", - "graphql" to "graphql", - "proto" to "proto", - "ini" to "ini", - "properties" to "properties", - "diff" to "diff", - "patch" to "patch", ) fun kind(lang: String?): Kind { @@ -108,8 +64,10 @@ internal object MdLanguage { if (key == "shell script") return Kind.Source(type("sh")) val single = key.substringBefore(' ') terms[single]?.let { return it } - val ext = files[key] ?: files[single] ?: return Kind.Source(PlainTextFileType.INSTANCE) - return Kind.Source(type(ext)) + files[key]?.let { return Kind.Source(type(it)) } + files[single]?.let { return Kind.Source(type(it)) } + type(key).takeIf { it != PlainTextFileType.INSTANCE }?.let { return Kind.Source(it) } + return Kind.Source(type(single)) } private fun type(ext: String): FileType { diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/md/hybrid/MdTerminal.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/md/hybrid/MdTerminal.kt index dba405690a..2422c9b981 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/md/hybrid/MdTerminal.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/ui/md/hybrid/MdTerminal.kt @@ -9,6 +9,8 @@ internal data class Range(val start: Int, val end: Int, val key: Key<*>) internal data class Term(val text: String, val ranges: List) internal object MdTerminal { + private val ansi = Regex("\\u001B\\[[0-?]*[ -/]*[@-~]") + fun decode(text: String, stream: Stream): Term { val out = StringBuilder() val ranges = mutableListOf() @@ -16,7 +18,8 @@ internal object MdTerminal { Stream.Stdout -> ProcessOutputTypes.STDOUT Stream.Stderr -> ProcessOutputTypes.STDERR } - AnsiEscapeDecoder().escapeText(controls(text), key) { chunk, attrs -> + // AnsiEscapeDecoder handles SGR coloring; full terminal emulation is too heavy for inline transcripts. + AnsiEscapeDecoder().escapeText(reduce(text, keepSgr = true), key) { chunk, attrs -> val start = out.length out.append(chunk) val end = out.length @@ -25,10 +28,44 @@ internal object MdTerminal { return Term(out.toString().trimEnd('\n'), ranges) } - private fun controls(text: String): String { + fun split(text: String, delim: Char): List { + val list = mutableListOf() + var start = 0 + while (true) { + val index = text.indexOf(delim, start) + if (index < 0) { + list.add(text.substring(start)) + return list + } + list.add(text.substring(start, index)) + start = index + 1 + } + } + + fun backspace(text: String): String { val out = StringBuilder() - val line = StringBuilder() - val src = text.replace("\r\n", "\n") + var idx = 0 + while (idx < text.length) { + val ch = text[idx++] + if (ch == '\b') { + if (out.isNotEmpty()) out.deleteCharAt(out.length - 1) + continue + } + out.append(ch) + } + return out.toString() + } + + fun reduce(text: String, keepSgr: Boolean): String = split(text.replace("\r\n", "\n"), '\n') + .joinToString("\n") { controls(it, keepSgr) } + + fun strip(text: String): String = ansi.replace(text, "") + + fun hasAnsi(text: String): Boolean = ansi.containsMatchIn(text) + + private fun controls(text: String, keepSgr: Boolean): String { + val out = StringBuilder() + val src = text var idx = 0 fun esc(): String? { if (src[idx] != '\u001B') return null @@ -44,26 +81,21 @@ internal object MdTerminal { } val seq = src.substring(idx, end + 1) idx = end + 1 - return if (seq.endsWith('m')) seq else "" + return if (keepSgr && seq.endsWith('m')) seq else "" } while (idx < src.length) { val seq = esc() if (seq != null) { - line.append(seq) + out.append(seq) continue } when (val ch = src[idx++]) { - '\r' -> line.clear() - '\n' -> { - out.append(line).append('\n') - line.clear() - } - '\b' -> if (line.isNotEmpty()) line.deleteCharAt(line.length - 1) - '\t' -> line.append(ch) - else -> if (!ch.isISOControl()) line.append(ch) + '\r' -> out.clear() + '\b' -> if (out.isNotEmpty()) out.deleteCharAt(out.length - 1) + '\t' -> out.append(ch) + else -> if (!ch.isISOControl()) out.append(ch) } } - out.append(line) return out.toString() } } diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/ShellToolViewTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/ShellToolViewTest.kt index 00f8a5b9bd..8046cfe3d3 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/ShellToolViewTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/views/ShellToolViewTest.kt @@ -107,6 +107,15 @@ class ShellToolViewTest : BasePlatformTestCase() { assertEquals(listOf("ad"), view.codeTexts()) } + fun `test clean output delegates terminal reducer`() { + val view = track(ShellToolView(tool().also { + it.output = "\u001B[31mspin 1\u001B[0m\r\u001B[32mspin 2\u001B[0m\nabc\bd\u001B[K" + })) + + assertEquals("spin 2\nabd", view.outputText()) + assertEquals("spin 2\nabd", view.bodyText()) + } + fun `test output backticks use longer markdown fence`() { val view = track(ShellToolView(tool().also { it.output = "before\n```\nafter" })) diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/ui/md/MdTerminalTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/ui/md/MdTerminalTest.kt new file mode 100644 index 0000000000..c7766d764b --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/ui/md/MdTerminalTest.kt @@ -0,0 +1,26 @@ +package ai.kilocode.client.ui.md + +import ai.kilocode.client.ui.md.hybrid.MdTerminal +import com.intellij.testFramework.fixtures.BasePlatformTestCase + +class MdTerminalTest : BasePlatformTestCase() { + fun `test split preserves trailing empty segment`() { + assertEquals(listOf("one", "two", ""), MdTerminal.split("one\ntwo\n", '\n')) + } + + fun `test reduce collapses carriage frames and backspaces`() { + assertEquals("done\nab", MdTerminal.reduce("step 1\rstep 2\rdone\nabc\b", keepSgr = false)) + } + + fun `test reduce keeps only sgr escapes when requested`() { + val text = "\u001B[32mgreen\u001B[0m\u001B[K" + + assertEquals("\u001B[32mgreen\u001B[0m", MdTerminal.reduce(text, keepSgr = true)) + assertEquals("green", MdTerminal.reduce(text, keepSgr = false)) + } + + fun `test strip removes ansi escapes`() { + assertEquals("green", MdTerminal.strip("\u001B[32mgreen\u001B[0m")) + assertTrue(MdTerminal.hasAnsi("\u001B[32mgreen\u001B[0m")) + } +} diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/ui/md/MdViewHybridTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/ui/md/MdViewHybridTest.kt index 3613657c50..6a6a4ce3ad 100644 --- a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/ui/md/MdViewHybridTest.kt +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/ui/md/MdViewHybridTest.kt @@ -533,6 +533,14 @@ class MdViewHybridTest : BasePlatformTestCase() { view.set("```yaml\nvalue: 1\n```") assertSame(type("yaml"), editors().single().fileType) + + view.set("```golang\nfmt.Println(1)\n```") + + assertSame(type("go"), editors().single().fileType) + + view.set("```pwsh\nWrite-Host hi\n```") + + assertSame(type("ps1"), editors().single().fileType) } fun `test unknown fenced code language uses plain text`() { From 425ced4292d5ab74019bfca0e21156e2480ae718 Mon Sep 17 00:00:00 2001 From: Mark IJbema Date: Mon, 15 Jun 2026 18:14:20 +0200 Subject: [PATCH 068/109] fix: omit SDK from upstream changesets --- .changeset/opencode-v1-14-51-to-v1-15-4.md | 6 ------ script/upstream/README.md | 4 ++-- script/upstream/opencode-changesets.test.ts | 10 +++++++--- script/upstream/opencode-changesets.ts | 6 +++--- 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/.changeset/opencode-v1-14-51-to-v1-15-4.md b/.changeset/opencode-v1-14-51-to-v1-15-4.md index f878d88641..0bf0046e62 100644 --- a/.changeset/opencode-v1-14-51-to-v1-15-4.md +++ b/.changeset/opencode-v1-14-51-to-v1-15-4.md @@ -31,12 +31,6 @@ Changes from opencode v1.14.51 to v1.15.4 upstream: - Fixed custom LSP servers not sending refresh events after they initialize. - Hid background subagent task instructions unless experimental background mode is enabled. -## SDK - -### Bugfixes - -- Restored missing event types in the JavaScript SDK, including session and message events. - ## TUI ### Improvements diff --git a/script/upstream/README.md b/script/upstream/README.md index 54130ac983..edf9e0fc96 100644 --- a/script/upstream/README.md +++ b/script/upstream/README.md @@ -69,7 +69,7 @@ After merging upstream opencode releases, use `opencode-changesets.ts` to turn t bun script/upstream/opencode-changesets.ts 1.17.0 1.17.7 ``` -The script fetches releases from `anomalyco/opencode`, selects published releases in the semver range `(from, to]`, and writes one `.changeset/opencode-vX-Y-Z-to-vX-Y-Z.md` file for the whole range. It merges notes from every release into shared `##` sections and `###` categories, so all `Core` bugfixes in the range appear under one `## Core` / `### Bugfixes` block. It defaults to patch changesets for the fixed release group, `@kilocode/cli` and `kilo-code`. Generated notes omit contributor thank-you blocks and the upstream `Desktop` section by default because Kilo does not ship the opencode desktop app. +The script fetches releases from `anomalyco/opencode`, selects published releases in the semver range `(from, to]`, and writes one `.changeset/opencode-vX-Y-Z-to-vX-Y-Z.md` file for the whole range. It merges notes from every release into shared `##` sections and `###` categories, so all `Core` bugfixes in the range appear under one `## Core` / `### Bugfixes` block. It defaults to patch changesets for the fixed release group, `@kilocode/cli` and `kilo-code`. Generated notes omit contributor thank-you blocks and the upstream `Desktop` and `SDK` sections by default because Kilo does not ship the opencode desktop app and SDK release notes are not user-facing for Kilo. Preview without writing files: @@ -85,7 +85,7 @@ Useful options: | `--package ` | Add a changeset package; repeat for multiple packages | | `--bump ` | Set the generated changeset bump type | | `--drop-section ` | Omit a markdown `##` section by heading; repeat for multiple sections | -| `--no-default-drop-section` | Disable the default dropped sections, such as `Desktop` | +| `--no-default-drop-section` | Disable the default dropped sections, such as `Desktop` and `SDK` | | `--force` | Overwrite existing generated changeset files | | `--include-prerelease` | Include prerelease GitHub releases | diff --git a/script/upstream/opencode-changesets.test.ts b/script/upstream/opencode-changesets.test.ts index 19026852fa..54e6738395 100644 --- a/script/upstream/opencode-changesets.test.ts +++ b/script/upstream/opencode-changesets.test.ts @@ -31,7 +31,7 @@ describe("opencode changesets", () => { to: "1.2.2", packages: ["@kilocode/cli", "kilo-code"], bump: "patch", - drop: ["Desktop"], + drop: ["Desktop", "SDK"], }), ).toBe(`--- "@kilocode/cli": patch @@ -63,6 +63,10 @@ Changes from opencode v1.2.1 to v1.2.2 upstream: - Drop misc +## SDK + +- Drop sdk + **Thank you to 1 community contributor:** - @user: @@ -74,7 +78,7 @@ Changes from opencode v1.2.1 to v1.2.2 upstream: to: "1.2.2", packages: ["@kilocode/cli"], bump: "patch", - drop: ["Desktop", "Misc"], + drop: ["Desktop", "Misc", "SDK"], }), ).toBe(`--- "@kilocode/cli": patch @@ -130,7 +134,7 @@ Changes from opencode v1.2.1 to v1.2.2 upstream: to: "1.2.2", packages: ["@kilocode/cli"], bump: "patch", - drop: ["Desktop"], + drop: ["Desktop", "SDK"], }), ).toBe(`--- "@kilocode/cli": patch diff --git a/script/upstream/opencode-changesets.ts b/script/upstream/opencode-changesets.ts index f9d0e9c93d..8bd79aa8bb 100644 --- a/script/upstream/opencode-changesets.ts +++ b/script/upstream/opencode-changesets.ts @@ -40,8 +40,8 @@ Options: --repo GitHub repository (default: anomalyco/opencode) --package Changeset package (repeatable; defaults to @kilocode/cli and kilo-code) --bump Changeset bump type: major, minor, patch (default: patch) - --drop-section Omit a markdown ## section by heading (repeatable; defaults to Desktop) - --no-default-drop-section Do not drop the default Desktop section + --drop-section Omit a markdown ## section by heading (repeatable; defaults to Desktop and SDK) + --no-default-drop-section Do not drop the default Desktop and SDK sections --dry-run Print changesets without writing files --force Overwrite existing generated changeset files --include-prerelease Include prerelease GitHub releases @@ -261,7 +261,7 @@ function opts() { root: path.resolve(import.meta.dir, "../.."), packages: parsed.values.package?.length ? parsed.values.package : ["@kilocode/cli", "kilo-code"], bump, - drop: [...(parsed.values["no-default-drop-section"] ? [] : ["Desktop"]), ...(parsed.values["drop-section"] ?? [])], + drop: [...(parsed.values["no-default-drop-section"] ? [] : ["Desktop", "SDK"]), ...(parsed.values["drop-section"] ?? [])], dry: parsed.values["dry-run"], force: parsed.values.force, prerelease: parsed.values["include-prerelease"], From 046b03a19de2b4017211efb70d0641499789efa8 Mon Sep 17 00:00:00 2001 From: Johnny Eric Amancio Date: Mon, 15 Jun 2026 18:19:41 +0200 Subject: [PATCH 069/109] fix(cli): prefix generated plan filenames with timestamp (#11245) --- .changeset/plan-timestamp-prefix.md | 5 +++++ .../src/kilocode/session/native-plan-prompt.txt | 2 +- packages/opencode/src/kilocode/session/prompt.ts | 3 ++- .../opencode/test/kilocode/plan-exit-detection.test.ts | 10 ++++------ 4 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 .changeset/plan-timestamp-prefix.md diff --git a/.changeset/plan-timestamp-prefix.md b/.changeset/plan-timestamp-prefix.md new file mode 100644 index 0000000000..d757c9686b --- /dev/null +++ b/.changeset/plan-timestamp-prefix.md @@ -0,0 +1,5 @@ +--- +"@kilocode/cli": patch +--- + +Restore session timestamp prefixes for generated plan filenames while preserving descriptive model-chosen names. diff --git a/packages/opencode/src/kilocode/session/native-plan-prompt.txt b/packages/opencode/src/kilocode/session/native-plan-prompt.txt index 108154c739..f6cfdf2ece 100644 --- a/packages/opencode/src/kilocode/session/native-plan-prompt.txt +++ b/packages/opencode/src/kilocode/session/native-plan-prompt.txt @@ -22,7 +22,7 @@ Your job is to gather context, challenge assumptions, resolve design questions, - You may create and edit plan Markdown files only. - Follow the latest Plan File reminder for the target plan location. -- Prefer `.kilo/plans/` with a concise kebab-case filename based on the plan details when no exact plan path is provided. +- If no exact plan file path is provided, follow the latest Plan File reminder for the directory and generated filename pattern. - Use repo-root `plans/`, `.plans/`, or `.opencode/plans/` only when requested or required by the repo/client and your permissions allow it. - Do not write the final plan or call `plan_exit` until the user chooses "Finalize and save the plan". - After final approval, write the final plan to the chosen plan file, then call `plan_exit` with the saved plan path. diff --git a/packages/opencode/src/kilocode/session/prompt.ts b/packages/opencode/src/kilocode/session/prompt.ts index 7a78d09239..2200e4089f 100644 --- a/packages/opencode/src/kilocode/session/prompt.ts +++ b/packages/opencode/src/kilocode/session/prompt.ts @@ -287,12 +287,13 @@ export namespace KiloSessionPrompt { const file = input.messages ? PlanFile.latest(input.messages) : undefined const saved = PlanFile.resolve(file, ctx) const target = saved ?? plan + const time = input.session.time.created const dir = path.dirname(target) if (saved && !(await Filesystem.exists(target))) await ensurePlanDir(dir) const info = saved ? `The current saved plan file is ${target}. Read and edit this file when refining the plan.` - : `Use the plan path specified by the user or project instructions when present and permissions allow it. If none is specified, create a plan in ${dir} using a concise kebab-case filename based on the plan details.` + : `Use any exact plan file path from user or project instructions unchanged. If only a directory is specified, create the plan there; otherwise create it in ${dir}. For generated filenames, use ${time}-.md, choosing the suffix from the plan details, for example ${time}-database-cache-plan.md.` const body = [ "## Plan File", info, diff --git a/packages/opencode/test/kilocode/plan-exit-detection.test.ts b/packages/opencode/test/kilocode/plan-exit-detection.test.ts index a0732f45b6..def09b3bea 100644 --- a/packages/opencode/test/kilocode/plan-exit-detection.test.ts +++ b/packages/opencode/test/kilocode/plan-exit-detection.test.ts @@ -681,9 +681,9 @@ describe("plan_exit detection", () => { const part = user.parts.at(-1) const text = part?.type === "text" ? part.text : "" - expect(text).toContain("Use the plan path specified by the user or project instructions") + expect(text).toContain(`${session.time.created}-.md`) + expect(text).toContain(`${session.time.created}-database-cache-plan.md`) expect(text).toContain("plans/ or .plans/") - expect(text).toContain("If none is specified") expect(text).not.toContain(Session.plan(session, Instance.current)) })) @@ -733,8 +733,7 @@ describe("plan_exit detection", () => { const text = content(user) expect(text).toContain("The current saved plan file is") expect(text.replaceAll(path.sep, "/")).toContain(".plans/fix.md") - expect(text).toContain("Read and edit this file when refining the plan") - expect(text).toContain("experienced technical leader") + expect(text).not.toContain(`${session.time.created}-.md`) expect(text).not.toContain("No plan file exists yet") })) @@ -771,8 +770,7 @@ describe("plan_exit detection", () => { const part = user.parts.at(-1) const text = part?.type === "text" ? part.text : "" - expect(text).toContain("Use the plan path specified by the user or project instructions") - expect(text).toContain("If none is specified") + expect(text).toContain(`${session.time.created}-.md`) expect(text).toContain("plans/ or .plans/") expect(text).not.toContain("Default to") expect(text).not.toContain("A fallback plan file exists") From c5d39d090c34f9fea834718a799bb921ee69df3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Catriel=20M=C3=BCller?= Date: Mon, 15 Jun 2026 14:33:01 -0300 Subject: [PATCH 070/109] fix(cli): rebrand opencode leftovers --- .changeset/kilo-branding-leftovers.md | 5 + packages/kilo-docs/source-links.md | 22 +- packages/opencode/AGENTS.md | 2 +- packages/opencode/script/run-workspace-server | 4 +- packages/opencode/specs/tui-plugins.md | 16 +- packages/opencode/src/auth/index.ts | 2 +- packages/opencode/src/cli/cmd/providers.ts | 12 +- .../opencode/src/cli/cmd/tui/attention.ts | 6 +- .../cli/cmd/tui/component/dialog-provider.tsx | 7 +- .../cmd/tui/component/dialog-retry-action.tsx | 4 +- .../src/cli/cmd/tui/config/tui-migrate.ts | 2 +- .../opencode/src/cli/cmd/tui/config/tui.ts | 2 +- .../tui/feature-plugins/home/tips-view.tsx | 14 +- .../tui/feature-plugins/sidebar/footer.tsx | 12 +- .../cli/cmd/tui/routes/session/sidebar.tsx | 8 +- .../src/command/template/initialize.txt | 6 +- packages/opencode/src/config/config.ts | 4 +- .../opencode/src/control-plane/dev/README.md | 6 +- .../cli/cmd/tui/context/tui-config.tsx | 2 +- packages/opencode/src/plugin/digitalocean.ts | 10 +- .../routes/instance/httpapi/groups/config.ts | 4 +- .../instance/httpapi/groups/experimental.ts | 4 +- .../routes/instance/httpapi/groups/global.ts | 10 +- .../instance/httpapi/groups/instance.ts | 10 +- .../routes/instance/httpapi/groups/project.ts | 4 +- .../routes/instance/httpapi/groups/pty.ts | 2 +- .../routes/instance/httpapi/groups/session.ts | 6 +- packages/opencode/src/skill/index.ts | 18 - .../src/skill/prompt/customize-opencode.md | 377 ------------------ .../test/cli/cmd/tui/attention.test.ts | 14 +- packages/opencode/test/config/tui.test.ts | 2 +- packages/opencode/test/fixture/tui-plugin.ts | 2 +- packages/opencode/test/fixture/tui-runtime.ts | 2 +- .../test/kilocode/builtin-skills.test.ts | 4 +- .../cli/cmd/tui/context/tui-config.test.ts | 2 +- 35 files changed, 102 insertions(+), 505 deletions(-) create mode 100644 .changeset/kilo-branding-leftovers.md delete mode 100644 packages/opencode/src/skill/prompt/customize-opencode.md diff --git a/.changeset/kilo-branding-leftovers.md b/.changeset/kilo-branding-leftovers.md new file mode 100644 index 0000000000..b9db063093 --- /dev/null +++ b/.changeset/kilo-branding-leftovers.md @@ -0,0 +1,5 @@ +--- +"@kilocode/cli": patch +--- + +Replace remaining OpenCode-branded CLI and TUI copy with Kilo branding. diff --git a/packages/kilo-docs/source-links.md b/packages/kilo-docs/source-links.md index a1311dad23..49c8e1c151 100644 --- a/packages/kilo-docs/source-links.md +++ b/packages/kilo-docs/source-links.md @@ -27,6 +27,8 @@ - +- + - - @@ -116,10 +118,16 @@ - +- + - - +- + +- + - - @@ -127,6 +135,8 @@ - +- + - @@ -135,18 +145,6 @@ - -- - -- - -- - -- - -- - -- - - - diff --git a/packages/opencode/AGENTS.md b/packages/opencode/AGENTS.md index 565b93773c..dbd905e0f6 100644 --- a/packages/opencode/AGENTS.md +++ b/packages/opencode/AGENTS.md @@ -1,4 +1,4 @@ -# opencode agent guidelines +# Kilo CLI package guidelines ## Build/Test diff --git a/packages/opencode/script/run-workspace-server b/packages/opencode/script/run-workspace-server index 4371a15797..3953f1ae3d 100755 --- a/packages/opencode/script/run-workspace-server +++ b/packages/opencode/script/run-workspace-server @@ -1,11 +1,11 @@ #!/usr/bin/env bun -// This script runs a separate OpenCode server to be used as a remote +// This script runs a separate Kilo server to be used as a remote // kilocode_change // workspace, simulating a remote environment but all local to make // debugger easier // // *Important*: make sure you add the debug workspace plugin first. -// In `.opencode/opencode.jsonc` in the root of this project add: +// In `.kilo/kilo.jsonc` in the root of this project add: // kilocode_change // // "plugin": ["../packages/opencode/src/control-plane/dev/debug-workspace-plugin.ts"] // diff --git a/packages/opencode/specs/tui-plugins.md b/packages/opencode/specs/tui-plugins.md index f583642666..67eb9122b5 100644 --- a/packages/opencode/specs/tui-plugins.md +++ b/packages/opencode/specs/tui-plugins.md @@ -18,7 +18,7 @@ Example: ```json { - "$schema": "https://opencode.ai/tui.json", + "$schema": "https://app.kilo.ai/tui.json", "theme": "smoke-theme", "leader_timeout": 2000, "keybinds": { @@ -35,7 +35,7 @@ Example: "notifications": true, "sound": true, "volume": 0.4, - "sound_pack": "opencode.default", + "sound_pack": "kilo.default", "sounds": { "error": "/Users/me/sounds/error.mp3" } @@ -184,15 +184,15 @@ npm plugins can declare a version compatibility range in `package.json` using th } ``` -- The value is a semver range checked against the running OpenCode version. +- The value is a semver range checked against the running Kilo version. - If the range is not satisfied, the plugin is skipped with a warning and a session error. - If `engines.opencode` is absent, no check is performed (backward compatible). - File plugins are never checked; only npm package plugins are validated. - Install flow is shared by CLI and TUI in `src/plugin/install.ts`. - Shared helpers are `installPlugin`, `readPluginManifest`, and `patchPluginConfig`. -- `opencode plugin ` and TUI install both run install → manifest read → config patch. -- Alias: `opencode plug `. +- `kilo plugin ` and TUI install both run install → manifest read → config patch. +- Alias: `kilo plug `. - `-g` / `--global` writes into the global config dir. - Local installs resolve target dir inside `patchPluginConfig`. - For local scope, path is `/.opencode` only when VCS is git and `worktree !== "/"`; otherwise `/.opencode`. @@ -213,7 +213,7 @@ npm plugins can declare a version compatibility range in `package.json` using th - There is no uninstall, list, or update CLI command for external plugins. - Local file plugins are configured directly in `tui.json`. -When `plugin` entries exist in a writable `.opencode` dir or `KILO_CONFIG_DIR`, OpenCode installs `@kilocode/plugin` into that dir and writes: +When `plugin` entries exist in a writable `.opencode` dir or `KILO_CONFIG_DIR`, Kilo installs `@kilocode/plugin` into that dir and writes: - `package.json` - `bun.lock` @@ -246,7 +246,7 @@ Top-level API groups exposed to `tui(api, options, meta)`: ### Keymap - `api.keymap` exposes the raw `Keymap` instance from the host. -- The host already installs the default OpenTUI bundle (`default keys`, metadata fields, and enabled fields) plus OpenCode's comma bindings, leader token, base layout fallback, pending-sequence helpers, and managed textarea layer. +- The host already installs the default OpenTUI bundle (`default keys`, metadata fields, and enabled fields) plus Kilo's comma bindings, leader token, base layout fallback, pending-sequence helpers, and managed textarea layer. - Register commands with `api.keymap.registerLayer({ commands: [...] })`. - Register key bindings with `bindings: [{ key, cmd, desc }]` in the same layer or a separate layer. - Use `api.keymap.acquireResource(...)` for shared plugin addon setup that should ref-count against the host keymap. @@ -275,7 +275,7 @@ Top-level API groups exposed to `tui(api, options, meta)`: - `api.attention.soundboard.registerPack({ id, name?, sounds })` registers a sound pack and returns a disposer. Relative paths resolve from the plugin root and are cleaned up on plugin deactivation. - `api.attention.soundboard.activate(id, { persist })` selects the active pack. `persist: true` writes the selected pack id to TUI KV state, not `tui.json`. - `api.attention.soundboard.current()` and `list()` expose the active/registered packs for plugin UX. -- Config `attention.sounds` overrides active-pack sounds by slot. Failed loads fall back to the active pack and then `opencode.default`. +- Config `attention.sounds` overrides active-pack sounds by slot. Failed loads fall back to the active pack and then `kilo.default`. - The host strips ANSI/control characters and collapses newlines before sending text to the terminal notification API. - Terminal and OS settings decide whether a requested notification is visibly displayed. - Prefer privacy-safe messages such as `"A question needs your input"`; avoid full commands, paths, prompts, errors, secrets, or file contents unless the plugin intentionally exposes them. diff --git a/packages/opencode/src/auth/index.ts b/packages/opencode/src/auth/index.ts index 9779f7202c..de4375add8 100644 --- a/packages/opencode/src/auth/index.ts +++ b/packages/opencode/src/auth/index.ts @@ -5,7 +5,7 @@ import { Global } from "@opencode-ai/core/global" import { AppFileSystem } from "@opencode-ai/core/filesystem" import { Telemetry } from "@kilocode/kilo-telemetry" // kilocode_change -export const OAUTH_DUMMY_KEY = "opencode-oauth-dummy-key" +export const OAUTH_DUMMY_KEY = "kilo-oauth-dummy-key" // kilocode_change const file = path.join(Global.Path.data, "auth.json") diff --git a/packages/opencode/src/cli/cmd/providers.ts b/packages/opencode/src/cli/cmd/providers.ts index 00341e1912..8983fe4502 100644 --- a/packages/opencode/src/cli/cmd/providers.ts +++ b/packages/opencode/src/cli/cmd/providers.ts @@ -370,7 +370,6 @@ export const ProvidersLoginCommand = effectCmd({ // kilocode_change start const priority: Record = { kilo: 0, - opencode: 1, anthropic: 2, "github-copilot": 3, openai: 4, @@ -401,7 +400,6 @@ export const ProvidersLoginCommand = effectCmd({ value: x.id, hint: { kilo: "recommended", // kilocode_change - opencode: "recommended", openai: "ChatGPT login or API key", // kilocode_change }[x.id], })), @@ -457,7 +455,7 @@ export const ProvidersLoginCommand = effectCmd({ } yield* Prompt.log.warn( - `This only stores a credential for ${provider} - you will need configure it in opencode.json, check the docs for examples.`, + `This only stores a credential for ${provider} - you will need configure it in kilo.json, check the docs for examples.`, // kilocode_change ) } @@ -466,22 +464,18 @@ export const ProvidersLoginCommand = effectCmd({ "Amazon Bedrock authentication priority:\n" + " 1. Bearer token (AWS_BEARER_TOKEN_BEDROCK or /connect)\n" + " 2. AWS credential chain (profile, access keys, IAM roles, EKS IRSA)\n\n" + - "Configure via opencode.json options (profile, region, endpoint) or\n" + + "Configure via kilo.json options (profile, region, endpoint) or\n" + // kilocode_change "AWS environment variables (AWS_PROFILE, AWS_REGION, AWS_ACCESS_KEY_ID, AWS_WEB_IDENTITY_TOKEN_FILE).", ) } - if (provider === "opencode") { - yield* Prompt.log.info("Create an api key at https://opencode.ai/auth") - } - if (provider === "vercel") { yield* Prompt.log.info("You can create an api key at https://vercel.link/ai-gateway-token") } if (["cloudflare", "cloudflare-ai-gateway"].includes(provider)) { yield* Prompt.log.info( - "Cloudflare AI Gateway can be configured with CLOUDFLARE_GATEWAY_ID, CLOUDFLARE_ACCOUNT_ID, and CLOUDFLARE_API_TOKEN environment variables. Read more: https://opencode.ai/docs/providers/#cloudflare-ai-gateway", + "Cloudflare AI Gateway can be configured with CLOUDFLARE_GATEWAY_ID, CLOUDFLARE_ACCOUNT_ID, and CLOUDFLARE_API_TOKEN environment variables. Read more: https://kilo.ai/docs/ai-providers/cloudflare", // kilocode_change ) } diff --git a/packages/opencode/src/cli/cmd/tui/attention.ts b/packages/opencode/src/cli/cmd/tui/attention.ts index 3af7b2e64a..04adb495e4 100644 --- a/packages/opencode/src/cli/cmd/tui/attention.ts +++ b/packages/opencode/src/cli/cmd/tui/attention.ts @@ -40,14 +40,14 @@ type TuiAttentionHost = TuiAttention & { const log = Log.create({ service: "tui.attention" }) -const DEFAULT_TITLE = "opencode" -const DEFAULT_PACK_ID = "opencode.default" +const DEFAULT_TITLE = "Kilo" // kilocode_change +const DEFAULT_PACK_ID = "kilo.default" // kilocode_change const KV_SOUND_PACK = "attention_sound_pack" const TITLE_LIMIT = 80 const MESSAGE_LIMIT = 240 const BUILTIN_PACK: RegisteredSoundPack = { id: DEFAULT_PACK_ID, - name: "OpenCode Default", + name: "Kilo Default", // kilocode_change builtin: true, sounds: { default: defaultSoundPath, diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx index 163eedadce..3d15fce24c 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx @@ -48,12 +48,7 @@ export function providerOptions(list: { id: string; name: string }[]): ProviderO title: provider.name, value: provider.id, providerID: provider.id, - description: { - opencode: "(Recommended)", - anthropic: "(API key)", - openai: "(ChatGPT Plus/Pro or API key)", - "opencode-go": "Low cost subscription for everyone", - }[provider.id], + description: KiloProvider.PROVIDER_DESCRIPTIONS[provider.id], // kilocode_change category: provider.id in PROVIDER_PRIORITY ? "Popular" : "Providers", })), ), diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-retry-action.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-retry-action.tsx index 6e4db2a21a..84c88caf0c 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-retry-action.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-retry-action.tsx @@ -7,7 +7,7 @@ import { Link } from "@tui/ui/link" import { BgPulse } from "./bg-pulse" import { useBindings } from "../keymap" -const GO_URL = "https://opencode.ai/go" +const KILO_PRICING_URL = "https://kilo.ai/pricing" // kilocode_change const PAD_X = 3 const PAD_TOP_OUTER = 1 const FOREGROUND_ALPHA = 186 @@ -40,7 +40,7 @@ export function DialogRetryAction(props: DialogRetryActionProps) { const dialog = useDialog() const { theme } = useTheme() const fg = selectedForeground(theme) - const showGoTreatment = () => props.link === GO_URL + const showGoTreatment = () => props.link === KILO_PRICING_URL // kilocode_change const textBg = () => (showGoTreatment() ? panelOverlay(theme.backgroundPanel) : undefined) const [selected, setSelected] = createSignal<"dismiss" | "action">("action") diff --git a/packages/opencode/src/cli/cmd/tui/config/tui-migrate.ts b/packages/opencode/src/cli/cmd/tui/config/tui-migrate.ts index 2d44ebbe46..9dc3a9e837 100644 --- a/packages/opencode/src/cli/cmd/tui/config/tui-migrate.ts +++ b/packages/opencode/src/cli/cmd/tui/config/tui-migrate.ts @@ -12,7 +12,7 @@ import * as ConfigPaths from "@/config/paths" const log = Log.create({ service: "tui.migrate" }) -const TUI_SCHEMA_URL = "https://opencode.ai/tui.json" +const TUI_SCHEMA_URL = "https://app.kilo.ai/tui.json" // kilocode_change const decodeTheme = Schema.decodeUnknownOption(Schema.String) const decodeRecord = Schema.decodeUnknownOption(Schema.Record(Schema.String, Schema.Unknown)) diff --git a/packages/opencode/src/cli/cmd/tui/config/tui.ts b/packages/opencode/src/cli/cmd/tui/config/tui.ts index 0934295c36..d9ff1c293b 100644 --- a/packages/opencode/src/cli/cmd/tui/config/tui.ts +++ b/packages/opencode/src/cli/cmd/tui/config/tui.ts @@ -253,7 +253,7 @@ const loadState = Effect.fn("TuiConfig.loadState")(function* (ctx: { directory: notifications: acc.result.attention?.notifications ?? true, sound: acc.result.attention?.sound ?? true, volume: acc.result.attention?.volume ?? 0.4, - sound_pack: acc.result.attention?.sound_pack ?? "opencode.default", + sound_pack: acc.result.attention?.sound_pack ?? "kilo.default", // kilocode_change sounds: acc.result.attention?.sounds ?? {}, }, keybinds: createBindingLookup(TuiKeybind.toBindingConfig(parsedKeybinds), { diff --git a/packages/opencode/src/cli/cmd/tui/feature-plugins/home/tips-view.tsx b/packages/opencode/src/cli/cmd/tui/feature-plugins/home/tips-view.tsx index 3988fb2ff1..e060a7cb34 100644 --- a/packages/opencode/src/cli/cmd/tui/feature-plugins/home/tips-view.tsx +++ b/packages/opencode/src/cli/cmd/tui/feature-plugins/home/tips-view.tsx @@ -217,10 +217,10 @@ const TIPS: Tip[] = [ "Override any keybind in {highlight}tui.json{/highlight} via the {highlight}keybinds{/highlight} section", "Set any keybind to {highlight}none{/highlight} to disable it completely", "Configure local or remote MCP servers in the {highlight}mcp{/highlight} config section", - "Add {highlight}.md{/highlight} files to {highlight}.opencode/commands/{/highlight} to define reusable custom prompts", + "Add {highlight}.md{/highlight} files to {highlight}.kilo/command/{/highlight} to define reusable custom prompts", // kilocode_change "Use {highlight}$ARGUMENTS{/highlight}, {highlight}$1{/highlight}, {highlight}$2{/highlight} in custom commands for dynamic input", "Use backticks in commands to inject shell output (e.g., {highlight}`git status`{/highlight})", - "Add {highlight}.md{/highlight} files to {highlight}.opencode/agents/{/highlight} for specialized AI personas", + "Add {highlight}.md{/highlight} files to {highlight}.kilo/agent/{/highlight} for specialized AI personas", // kilocode_change "Configure per-agent permissions for {highlight}edit{/highlight}, {highlight}bash{/highlight}, and {highlight}webfetch{/highlight} tools", 'Use patterns like {highlight}"git *": "allow"{/highlight} for granular bash permissions', 'Set {highlight}"rm -rf *": "deny"{/highlight} to block destructive commands', @@ -229,9 +229,9 @@ const TIPS: Tip[] = [ 'Set {highlight}"formatter": false{/highlight} in config to disable formatters enabled by another config layer', "Define custom formatter commands with file extensions in config", 'Set {highlight}"lsp": true{/highlight} in config to enable built-in LSP servers for code analysis', - "Create {highlight}.ts{/highlight} files in {highlight}.opencode/tools/{/highlight} to define new LLM tools", + "Create {highlight}.ts{/highlight} files in {highlight}.kilo/tools/{/highlight} to define new LLM tools", // kilocode_change "Tool definitions can invoke scripts written in Python, Go, etc", - "Add {highlight}.ts{/highlight} files to {highlight}.opencode/plugins/{/highlight} for event hooks", + "Add {highlight}.ts{/highlight} files to {highlight}.kilo/plugins/{/highlight} for event hooks", // kilocode_change "Use plugins to send OS notifications when sessions complete", "Create a plugin to prevent Kilo from reading sensitive files", "Use {highlight}kilo run{/highlight} for non-interactive scripting", // kilocode_change @@ -243,12 +243,12 @@ const TIPS: Tip[] = [ "Run {highlight}kilo upgrade{/highlight} to update to the latest version", "Run {highlight}kilo auth list{/highlight} to see all configured providers", "Run {highlight}kilo agent create{/highlight} for guided agent creation", // kilocode_change - "Use {highlight}/opencode{/highlight} in GitHub issues/PRs to trigger AI actions", + "Use {highlight}/kilo{/highlight} in GitHub issues/PRs to trigger AI actions", // kilocode_change "Run {highlight}kilo github install{/highlight} to set up the GitHub workflow", // kilocode_change - "Comment {highlight}/opencode fix this{/highlight} on issues to auto-create PRs", + "Comment {highlight}/kilo fix this{/highlight} on issues to auto-create PRs", // kilocode_change "Comment {highlight}/oc{/highlight} on PR code lines for targeted code reviews", 'Use {highlight}"theme": "system"{/highlight} to match your terminal\'s colors', - "Create JSON theme files in {highlight}.opencode/themes/{/highlight} directory", + "Create JSON theme files in {highlight}.kilo/themes/{/highlight} directory", // kilocode_change "Themes support dark/light variants for both modes", "Use numeric xterm color codes 0-255 in custom theme JSON", "Use {highlight}{env:VAR_NAME}{/highlight} syntax to reference environment variables in config", diff --git a/packages/opencode/src/cli/cmd/tui/feature-plugins/sidebar/footer.tsx b/packages/opencode/src/cli/cmd/tui/feature-plugins/sidebar/footer.tsx index cb3ba451de..5a54455b6f 100644 --- a/packages/opencode/src/cli/cmd/tui/feature-plugins/sidebar/footer.tsx +++ b/packages/opencode/src/cli/cmd/tui/feature-plugins/sidebar/footer.tsx @@ -49,7 +49,9 @@ function View(props: { api: TuiPluginApi }) { ✕ - OpenCode includes free models so you can start immediately. + {/* kilocode_change start */} + Kilo includes free models so you can start immediately. + {/* kilocode_change end */} Connect from 75+ providers to use other models, including Claude, GPT, Gemini etc @@ -64,13 +66,11 @@ function View(props: { api: TuiPluginApi }) { {path().parent}/ {path().name} + {/* kilocode_change start */} - Open - - Code - {" "} - {props.api.app.version} + Kilo {props.api.app.version} + {/* kilocode_change end */} ) } diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx index 0f9214092e..07346125bf 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx @@ -87,13 +87,11 @@ export function Sidebar(props: { sessionID: string; overlay?: boolean }) { + {/* kilocode_change start */} - Open - - Code - {" "} - {InstallationVersion} + Kilo {InstallationVersion} + {/* kilocode_change end */} diff --git a/packages/opencode/src/command/template/initialize.txt b/packages/opencode/src/command/template/initialize.txt index 90751e3d6f..a403dac904 100644 --- a/packages/opencode/src/command/template/initialize.txt +++ b/packages/opencode/src/command/template/initialize.txt @@ -1,6 +1,6 @@ Create or update `AGENTS.md` for this repository. -The goal is a compact instruction file that helps future OpenCode sessions avoid mistakes and ramp up quickly. Every line should answer: "Would an agent likely miss this without help?" If not, leave it out. +The goal is a compact instruction file that helps future Kilo sessions avoid mistakes and ramp up quickly. Every line should answer: "Would an agent likely miss this without help?" If not, leave it out. User-provided focus or constraints (honor these): $ARGUMENTS @@ -12,7 +12,7 @@ Read the highest-value sources first: - build, test, lint, formatter, typecheck, and codegen config - CI workflows and pre-commit / task runner config - existing instruction files (`AGENTS.md`, `CLAUDE.md`, `.cursor/rules/`, `.cursorrules`, `.github/copilot-instructions.md`) -- repo-local OpenCode config such as `opencode.json` +- repo-local Kilo config such as `kilo.json` If architecture is still unclear after reading config and docs, inspect a small number of representative code files to find the real entrypoints, package boundaries, and execution flow. Prefer reading the files that explain how the system is wired together over random leaf files. @@ -57,7 +57,7 @@ Exclude: - long tutorials or exhaustive file trees - obvious language conventions - speculative claims or anything you could not verify -- content better stored in another file referenced via `opencode.json` `instructions` +- content better stored in another file referenced via `kilo.json` `instructions` When in doubt, omit. diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index 457bfc9b04..440fb4aa4a 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -163,7 +163,7 @@ export const Info = Schema.Struct({ description: "Server configuration for the kilo serve command", // kilocode_change }), command: Schema.optional(Schema.Record(Schema.String, ConfigCommand.Info)).annotate({ - description: "Command configuration, see https://opencode.ai/docs/commands", + description: "Command configuration, see https://kilo.ai/docs/customize/workflows", // kilocode_change }), skills: Schema.optional(ConfigSkills.Info).annotate({ description: "Additional skill folder paths" }), reference: Schema.optional(ConfigReference.Info).annotate({ @@ -285,7 +285,7 @@ export const Info = Schema.Struct({ [Schema.Record(Schema.String, ConfigAgent.Info)], ), // kilocode_change start - ).annotate({ description: "Agent configuration, see https://opencode.ai/docs/agents" }), + ).annotate({ description: "Agent configuration, see https://kilo.ai/docs/customize/custom-subagents" }), // kilocode_change provider: Schema.optional(Schema.Record(Schema.String, Schema.NullOr(ConfigProvider.Info))).annotate({ // kilocode_change end description: "Custom provider configurations and model overrides", diff --git a/packages/opencode/src/control-plane/dev/README.md b/packages/opencode/src/control-plane/dev/README.md index 74d68a75a8..3f015b1ae7 100644 --- a/packages/opencode/src/control-plane/dev/README.md +++ b/packages/opencode/src/control-plane/dev/README.md @@ -1,16 +1,16 @@ -This is a plugin to simulate a remote environment locally. Add this to `.opencode/opencode.jsonc`: +This is a plugin to simulate a remote environment locally. Add this to `.kilo/kilo.jsonc`: ```json "plugin": ["../packages/opencode/src/control-plane/dev/debug-workspace-plugin.ts"], ``` -In a separate terminal, run a separate OpenCode server. This will act like a remote server and the local instance will proxy all requests to it: +In a separate terminal, run a separate Kilo server. This will act like a remote server and the local instance will proxy all requests to it: ``` ./packages/opencode/script/run-workspace-server ``` -With the plugin install, you can now run OpenCode and create a `debug` workspace type. This will create a "remote" workspace which talks to the second workspace server started above. +With the plugin install, you can now run Kilo and create a `debug` workspace type. This will create a "remote" workspace which talks to the second workspace server started above. How this works: diff --git a/packages/opencode/src/kilocode/cli/cmd/tui/context/tui-config.tsx b/packages/opencode/src/kilocode/cli/cmd/tui/context/tui-config.tsx index 5a667fe693..bb9ac401c6 100644 --- a/packages/opencode/src/kilocode/cli/cmd/tui/context/tui-config.tsx +++ b/packages/opencode/src/kilocode/cli/cmd/tui/context/tui-config.tsx @@ -30,7 +30,7 @@ export namespace KiloTuiConfig { notifications: next.attention?.notifications ?? true, sound: next.attention?.sound ?? true, volume: next.attention?.volume ?? 0.4, - sound_pack: next.attention?.sound_pack ?? "opencode.default", + sound_pack: next.attention?.sound_pack ?? "kilo.default", sounds: next.attention?.sounds ?? {}, }, keybinds: createBindingLookup(TuiKeybind.toBindingConfig(keybinds), { diff --git a/packages/opencode/src/plugin/digitalocean.ts b/packages/opencode/src/plugin/digitalocean.ts index e94cee93cb..16feb58ffc 100644 --- a/packages/opencode/src/plugin/digitalocean.ts +++ b/packages/opencode/src/plugin/digitalocean.ts @@ -14,7 +14,7 @@ const OAUTH_PORT = 1456 const OAUTH_REDIRECT_PATH = "/auth/callback" const OAUTH_TOKEN_PATH = "/auth/token" const ROUTER_REFRESH_INTERVAL_MS = 5 * 60 * 1000 -const MAK_NAME_PREFIX = "opencode-oauth" +const MAK_NAME_PREFIX = "kilo-oauth" // kilocode_change interface ImplicitTokenPayload { access_token: string @@ -65,11 +65,12 @@ function buildAuthorizeUrl(state: string): string { return `${DO_AUTHORIZE_URL}?${params.toString()}` } +// kilocode_change start - Kilo branding for the DigitalOcean OAuth callback page const HTML_CALLBACK = ` - OpenCode - DigitalOcean Authorization + Kilo - DigitalOcean Authorization

qrv?$yWEoU)Uzw&6A{wJk}PvS4xAjMCsQ0 zwI9?+AGOihrgf*YSl{;lyqe;Ax~|JgL>SVUDHv&;&Sm(UTQn3U-i*d z;Z57BY$`DAAJ%D|+Ex{Rl?P;nvRd&gTDsQv>PlHfZF;*@gKMACuep^@%}rEFhN4n3 zNTO;dYZUsLpZYYFo~5acHllIm6*LtblolmH^HPUvi<<$OOW8wrTB3WcEY_6jtg%#9 zxLisf^|};FHlgm$EIKDhnzpO32IT{_Xe5-kN|Uxo&pV1!=_xEt(YY-JCcri=OYv!G z>Q2j2cDa;vr8FoC<&U0Mv=^7kDm+_}6)wM~Q>`SCu2eRv2xxuEX7{MHDBv_#EAeMITTTlqw7N{g0F zcw8z;_t074sZmunDPNREjjz(9wGpSbh^}cXjH%{T^4z1c<5Fu1(`qe6E!Or?oUhJJ zl9U7`Q`zX!YhTrTP?%ENpeg9=@@dbg)%8=+XgbBI`dusBR%HuCMspOFs`V=*6)p9X zrP>ZHfoPRn<$>#m{`OLoZm*sh6_<*YlH$_Pz1md2)<$P_t$K;W-4rdgT-vTFTu!%N zTcN$sye_TcR+?RFwM_R+lBnMuRYm=AWe^o{7N&4*(sBy-Yf4w2y3*bj?I#ViX)4`c zSc{hBwkb3&jT})a-?XetW1yv|v(~76P*%_wRxOuOyHtuoOICL1J0(*eU9Squx?H}d zFDym3sk8D+OHr2U9%|KA{4)v{J56=@`BFJrgVJ|7HMMA4l&>mw)LvMUo-MV1h5Lxs z-ITPV{n`%Aujw_N+pl|E{n~3yt0}alx}Vw=jc#!%+#b?&sieYp#G#%Ql|{NwNmTN5 zo3`U>=SwkHT!ncr?Jq3FMZ>)++<)b3l3mzNO{L#Wg z^;KC$v~C;Oq3+a?WGFdWmzH`d5AnG@$`5M$_cpEJ>eQEOyE<*ro}zXY_U}?!jh<@N z9v7z36s}C_z0|tG@~?DV6df(=Qay$5)U|7mw&GH~mva_b4j5 zyAt)4+X_q2{8y9UT5=^>N>bsYwySWPl2Nq9y;nSik8Yp7a_v->Qv20)DO<19uetwK ztgghXZBe?fM4_c#sjo11(QD!>nukScir#BoS8l&rFHtK^SEEq2D5)y5Rm-LHm);e% zp)mKA`~JOFJ+dyRE{gEKV^7hU!Ik>&al7M^*IrvHE2ibnT8_4I0pU#jQdqq>qU|DAEWnpIb_GRsIhQPlU-+zzlYC8U>wqH7%{P$b=e_P+>9{n>5{#oDUlDrlV z0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW z0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW z0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW z0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW0S^HW N0S^HWf&Z5X{4ZLaKVkp? literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/yup-02.wav b/packages/kilo-vscode/audio-wav/yup-02.wav new file mode 100644 index 0000000000000000000000000000000000000000..acf914a649147f82f8159d5e0c383c0c6005a949 GIT binary patch literal 71758 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 ZAOa#F0wN#+A|L`HAOa#F0{<_8{{Rp-X08AL literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/yup-03.wav b/packages/kilo-vscode/audio-wav/yup-03.wav new file mode 100644 index 0000000000000000000000000000000000000000..58865b47fc3b8392ffb8c081a7f37f7d63474db6 GIT binary patch literal 65614 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 literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/yup-04.wav b/packages/kilo-vscode/audio-wav/yup-04.wav new file mode 100644 index 0000000000000000000000000000000000000000..08f474cc771dd277c7da14d5da87b6ebc7d8ef2b GIT binary patch literal 63566 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 literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/audio-wav/yup-05.wav b/packages/kilo-vscode/audio-wav/yup-05.wav new file mode 100644 index 0000000000000000000000000000000000000000..8837d4040a8e1d94bc96d70867e2d0636c9aa3d8 GIT binary patch literal 90190 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 literal 0 HcmV?d00001 diff --git a/packages/kilo-vscode/package.json b/packages/kilo-vscode/package.json index 8627c3cb17..8e1cfc8fe4 100644 --- a/packages/kilo-vscode/package.json +++ b/packages/kilo-vscode/package.json @@ -945,44 +945,187 @@ "kilo-code.new.notifications.agent": { "type": "boolean", "default": true, - "description": "Show notification when agent completes a task" + "description": "Show a notification when an agent completes a task" }, "kilo-code.new.notifications.permissions": { "type": "boolean", "default": true, - "description": "Show notification on permission requests" + "description": "Show a notification when a permission or question needs input" }, "kilo-code.new.notifications.errors": { "type": "boolean", "default": true, - "description": "Show notification on errors" + "description": "Show a notification when a session errors" + }, + "kilo-code.new.sounds.playWhenFocused": { + "type": "boolean", + "default": false, + "description": "Play attention sounds when the affected session is focused" }, "kilo-code.new.sounds.agent": { "type": "string", - "default": "default", + "default": "system", "enum": [ + "system", "default", - "none" + "none", + "alert-01", + "alert-02", + "alert-03", + "alert-04", + "alert-05", + "alert-06", + "alert-07", + "alert-08", + "alert-09", + "alert-10", + "bip-bop-01", + "bip-bop-02", + "bip-bop-03", + "bip-bop-04", + "bip-bop-05", + "bip-bop-06", + "bip-bop-07", + "bip-bop-08", + "bip-bop-09", + "bip-bop-10", + "staplebops-01", + "staplebops-02", + "staplebops-03", + "staplebops-04", + "staplebops-05", + "staplebops-06", + "staplebops-07", + "nope-01", + "nope-02", + "nope-03", + "nope-04", + "nope-05", + "nope-06", + "nope-07", + "nope-08", + "nope-09", + "nope-10", + "nope-11", + "nope-12", + "yup-01", + "yup-02", + "yup-03", + "yup-04", + "yup-05", + "yup-06" ], - "description": "Sound to play when agent completes" + "description": "Sound to play when an agent completes" }, "kilo-code.new.sounds.permissions": { "type": "string", - "default": "default", + "default": "system", "enum": [ + "system", "default", - "none" + "none", + "alert-01", + "alert-02", + "alert-03", + "alert-04", + "alert-05", + "alert-06", + "alert-07", + "alert-08", + "alert-09", + "alert-10", + "bip-bop-01", + "bip-bop-02", + "bip-bop-03", + "bip-bop-04", + "bip-bop-05", + "bip-bop-06", + "bip-bop-07", + "bip-bop-08", + "bip-bop-09", + "bip-bop-10", + "staplebops-01", + "staplebops-02", + "staplebops-03", + "staplebops-04", + "staplebops-05", + "staplebops-06", + "staplebops-07", + "nope-01", + "nope-02", + "nope-03", + "nope-04", + "nope-05", + "nope-06", + "nope-07", + "nope-08", + "nope-09", + "nope-10", + "nope-11", + "nope-12", + "yup-01", + "yup-02", + "yup-03", + "yup-04", + "yup-05", + "yup-06" ], - "description": "Sound to play on permission requests" + "description": "Sound to play when a permission or question needs input" }, "kilo-code.new.sounds.errors": { "type": "string", - "default": "default", + "default": "system", "enum": [ + "system", "default", - "none" + "none", + "alert-01", + "alert-02", + "alert-03", + "alert-04", + "alert-05", + "alert-06", + "alert-07", + "alert-08", + "alert-09", + "alert-10", + "bip-bop-01", + "bip-bop-02", + "bip-bop-03", + "bip-bop-04", + "bip-bop-05", + "bip-bop-06", + "bip-bop-07", + "bip-bop-08", + "bip-bop-09", + "bip-bop-10", + "staplebops-01", + "staplebops-02", + "staplebops-03", + "staplebops-04", + "staplebops-05", + "staplebops-06", + "staplebops-07", + "nope-01", + "nope-02", + "nope-03", + "nope-04", + "nope-05", + "nope-06", + "nope-07", + "nope-08", + "nope-09", + "nope-10", + "nope-11", + "nope-12", + "yup-01", + "yup-02", + "yup-03", + "yup-04", + "yup-05", + "yup-06" ], - "description": "Sound to play on errors" + "description": "Sound to play when a session errors" }, "kilo-code.new.showTaskTimeline": { "type": "boolean", diff --git a/packages/kilo-vscode/src/KiloProvider.ts b/packages/kilo-vscode/src/KiloProvider.ts index 1e227f9003..82b13619b2 100644 --- a/packages/kilo-vscode/src/KiloProvider.ts +++ b/packages/kilo-vscode/src/KiloProvider.ts @@ -11,6 +11,7 @@ import type { Config, } from "@kilocode/sdk/v2/client" import { type KiloConnectionService, ServerStartupError } from "./services/cli-backend" +import { previewSound } from "./services/attention" import type { EditorContext, IndexingStatus } from "./services/cli-backend/types" import { FileIgnoreController } from "./services/autocomplete/shims/FileIgnoreController" import { ChatTextAreaAutocomplete } from "./services/autocomplete/chat-autocomplete/ChatTextAreaAutocomplete" @@ -242,6 +243,7 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper private webview: vscode.Webview | null = null private currentSession: Session | null = null + private viewActive = true /** Remembers the last selected session so /new can stay in the same worktree after clearSession. */ private contextSessionID: string | undefined private connectionState: "connecting" | "connected" | "disconnected" | "error" = "connecting" @@ -377,12 +379,23 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper } private focusSession(id?: string): void { this.streams.focus(id) - if (id) this.connectionService.registerFocused(this.instanceId, id) + if (id && this.viewActive) this.connectionService.registerFocused(this.instanceId, id) else this.connectionService.unregisterFocused(this.instanceId) } + private setViewActive(active: boolean): void { + this.viewActive = active + if (!active) { + this.connectionService.unregisterFocused(this.instanceId) + return + } + const id = this.contextSessionID ?? this.currentSession?.id + if (id) this.connectionService.registerFocused(this.instanceId, id) + } + public setStreamVisibility(active: boolean): void { this.visibleTaskStreams.setActive(active) + this.setViewActive(active) } public setProjectDirectory(directory: string | null): void { @@ -595,9 +608,11 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper this.setupWebviewMessageHandler(panel.webview) this.viewStateDisposable?.dispose() - this.viewStateDisposable = this.visibleTaskStreams.bindPanel(panel, () => - this.focusSession(panel.active ? this.currentSession?.id : undefined), - ) + this.viewStateDisposable = this.visibleTaskStreams.bindPanel(panel, () => { + this.setViewActive(panel.active) + this.focusSession(panel.active ? this.currentSession?.id : undefined) + }) + this.setViewActive(panel.active) this.initializeConnection() } @@ -1064,6 +1079,9 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper case "requestNotificationSettings": this.sendNotificationSettings() break + case "testNotification": + previewSound(message.settingType, message.sound) + break case "requestTimelineSetting": this.sendTimelineSetting() break @@ -2301,9 +2319,10 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper notifyAgent: notifications.get("agent", true), notifyPermissions: notifications.get("permissions", true), notifyErrors: notifications.get("errors", true), - soundAgent: sounds.get("agent", "default"), - soundPermissions: sounds.get("permissions", "default"), - soundErrors: sounds.get("errors", "default"), + playWhenFocused: sounds.get("playWhenFocused", false), + soundAgent: sounds.get("agent", "system"), + soundPermissions: sounds.get("permissions", "system"), + soundErrors: sounds.get("errors", "system"), }, }) } diff --git a/packages/kilo-vscode/src/agent-manager/AgentManagerProvider.ts b/packages/kilo-vscode/src/agent-manager/AgentManagerProvider.ts index dd16ecc609..bf22e14702 100644 --- a/packages/kilo-vscode/src/agent-manager/AgentManagerProvider.ts +++ b/packages/kilo-vscode/src/agent-manager/AgentManagerProvider.ts @@ -78,6 +78,7 @@ export class AgentManagerProvider implements Disposable { * Updated synchronously — unlike the session provider's currentSession which depends on * an async `session.get` round-trip and can be stale during rapid tab switches. */ private activeSessionId: string | undefined + private focusedId: string | undefined constructor( private readonly host: Host, private readonly connectionService: KiloConnectionService, @@ -222,6 +223,12 @@ export class AgentManagerProvider implements Disposable { this.onVisibilityChange?.(ctx.visible) ctx.onDidChangeVisibility((visible) => { this.statsPoller.setVisible(visible) + this.onVisibilityChange?.(visible) + if (visible && this.focusedId) { + this.connectionService.registerFocused("agent-manager", this.focusedId) + return + } + this.connectionService.unregisterFocused("agent-manager") }) ctx.sessions.onFollowupAdopted((session, directory) => { @@ -241,6 +248,8 @@ export class AgentManagerProvider implements Disposable { this.prBridge.poller.stop() this.diffs.stop() this.panel = undefined + this.connectionService.unregisterFocused("agent-manager") + this.connectionService.registerOpen("agent-manager", []) this.onVisibilityChange?.(false) } ctx.sessions.dispose() @@ -448,7 +457,8 @@ export class AgentManagerProvider implements Disposable { if (m.type === "loadMessages") { this.activeSessionId = m.sessionID - this.connectionService.registerFocused("agent-manager", m.sessionID) + this.focusedId = m.sessionID + if (this.panel?.visible) this.connectionService.registerFocused("agent-manager", m.sessionID) this.terminalManager.syncOnSessionSwitch(m.sessionID) this.prBridge.poller.setActiveWorktreeId(this.state?.getSession(m.sessionID)?.worktreeId ?? undefined) return msg @@ -456,6 +466,7 @@ export class AgentManagerProvider implements Disposable { if (m.type === "clearSession") { this.activeSessionId = undefined + this.focusedId = undefined this.connectionService.unregisterFocused("agent-manager") void Promise.resolve().then(() => { if (!this.panel || !this.state) return diff --git a/packages/kilo-vscode/src/extension.ts b/packages/kilo-vscode/src/extension.ts index 2d956ed825..44d0c9a6c5 100644 --- a/packages/kilo-vscode/src/extension.ts +++ b/packages/kilo-vscode/src/extension.ts @@ -14,6 +14,7 @@ import { KiloConnectionService } from "./services/cli-backend" import { registerAutocompleteProvider } from "./services/autocomplete" import { ensureBackendForAutocomplete } from "./services/autocomplete/ensure-backend" import { AutocompleteServiceManager } from "./services/autocomplete/AutocompleteServiceManager" +import { AttentionService } from "./services/attention" import { BrowserAutomationService } from "./services/browser-automation" import { TelemetryEventName, TelemetryProxy } from "./services/telemetry" import { registerCommitMessageService } from "./services/commit-message" @@ -48,6 +49,7 @@ export function activate(context: vscode.ExtensionContext) { // Create shared connection service (one server for all webviews) const connectionService = new KiloConnectionService(context) + const attention = new AttentionService(connectionService) let restore = context.workspaceState.get(RESTORE_KEY) ?? {} const remember = (patch: RestoreState) => { const next = { ...restore, ...patch } @@ -517,6 +519,7 @@ export function activate(context: vscode.ExtensionContext) { dispose: () => { shuttingDown = true unsubscribeStateChange() + attention.dispose() browserAutomationService.dispose() provider.dispose() connectionService.dispose() diff --git a/packages/kilo-vscode/src/services/attention/attention.ts b/packages/kilo-vscode/src/services/attention/attention.ts new file mode 100644 index 0000000000..af97411e14 --- /dev/null +++ b/packages/kilo-vscode/src/services/attention/attention.ts @@ -0,0 +1,220 @@ +import type { SSEPayload } from "../cli-backend/sdk-sse-adapter" + +export type AttentionKind = "done" | "subagent_done" | "question" | "permission" | "error" + +export type AttentionSignal = + | { + type: "session" + sessionID: string + title?: string | null + parentID?: string | null + deleted?: boolean + } + | { type: "status"; sessionID: string; status: "active" | "idle" } + | { type: "question"; sessionID: string; requestID: string; open: boolean } + | { type: "permission"; sessionID: string; requestID: string; open: boolean } + | { type: "error"; sessionID: string; error?: unknown } + +export type AttentionNotice = { + sessionID: string + kind: AttentionKind + title?: string + message: string + subagent: boolean +} + +type Meta = { + title?: string + parentID?: string +} + +type SessionSignal = Extract +type StatusSignal = Extract +type RequestSignal = Extract +type ErrorSignal = Extract + +type DeliveryInput = { + appFocused: boolean + sessionFocused: boolean + subagent: boolean + notifications: boolean + sound: boolean + playWhenFocused: boolean +} + +export function delivery(input: DeliveryInput) { + return { + notification: input.notifications && !input.appFocused && !input.subagent, + sound: input.sound && (input.playWhenFocused || !input.appFocused || !input.sessionFocused), + } +} + +export function sessionErrorMessage(error: unknown) { + if (!error || typeof error !== "object") return "Session error" + if ("name" in error && error.name === "MessageAbortedError") return "Session aborted" + if (!("data" in error) || !error.data || typeof error.data !== "object") return "Session error" + if (!("message" in error.data) || error.data.message !== "SSE read timed out") return "Session error" + return "Model stopped responding" +} + +export class AttentionTracker { + private readonly active = new Set() + private readonly errored = new Set() + private readonly questions = new Set() + private readonly permissions = new Set() + private readonly sessions = new Map() + + handle(signal: AttentionSignal): AttentionNotice | undefined { + switch (signal.type) { + case "session": + return this.handleSession(signal) + case "question": + return this.handleRequest(signal, this.questions, "question", "Question needs input") + case "permission": + return this.handleRequest(signal, this.permissions, "permission", "Permission needs input") + case "error": + return this.handleError(signal) + case "status": + return this.handleStatus(signal) + } + } + + reset() { + this.active.clear() + this.errored.clear() + this.questions.clear() + this.permissions.clear() + } + + dispose() { + this.reset() + this.sessions.clear() + } + + private handleSession(signal: SessionSignal): AttentionNotice | undefined { + if (signal.deleted) { + this.sessions.delete(signal.sessionID) + this.active.delete(signal.sessionID) + this.errored.delete(signal.sessionID) + return + } + const current = this.sessions.get(signal.sessionID) ?? {} + const title = signal.title === undefined ? current.title : signal.title || undefined + const parentID = signal.parentID === undefined ? current.parentID : signal.parentID || undefined + this.sessions.set(signal.sessionID, { title, parentID }) + } + + private handleRequest(signal: RequestSignal, requests: Set, kind: AttentionKind, message: string) { + if (!signal.open) { + requests.delete(signal.requestID) + return + } + if (requests.has(signal.requestID)) return + requests.add(signal.requestID) + return this.notice(signal.sessionID, kind, message) + } + + private handleError(signal: ErrorSignal) { + if (!this.active.has(signal.sessionID)) return + this.errored.add(signal.sessionID) + return this.notice(signal.sessionID, "error", sessionErrorMessage(signal.error)) + } + + private handleStatus(signal: StatusSignal) { + if (signal.status === "active") { + this.active.add(signal.sessionID) + this.errored.delete(signal.sessionID) + return + } + if (!this.active.has(signal.sessionID)) return + this.active.delete(signal.sessionID) + if (this.errored.delete(signal.sessionID)) return + const session = this.sessions.get(signal.sessionID) + return this.notice(signal.sessionID, session?.parentID ? "subagent_done" : "done", "Session done") + } + + private notice(sessionID: string, kind: AttentionKind, message: string): AttentionNotice { + const session = this.sessions.get(sessionID) + return { + sessionID, + kind, + title: session?.title, + message, + subagent: session?.parentID !== undefined, + } + } +} + +export function toAttentionSignal(event: SSEPayload): AttentionSignal | undefined { + if (event.type === "sync") { + if (event.name === "session.created.1") { + return { + type: "session", + sessionID: event.data.sessionID, + title: event.data.info.title, + parentID: event.data.info.parentID ?? null, + } + } + if (event.name === "session.updated.1") { + return { + type: "session", + sessionID: event.data.sessionID, + title: event.data.info.title, + parentID: event.data.info.parentID, + } + } + if (event.name === "session.deleted.1") { + return { type: "session", sessionID: event.data.sessionID, deleted: true } + } + return + } + + if (event.type === "session.status") { + const status = event.properties.status.type + if (status === "busy" || status === "retry") { + return { type: "status", sessionID: event.properties.sessionID, status: "active" } + } + if (status === "idle") return { type: "status", sessionID: event.properties.sessionID, status: "idle" } + return + } + + if (event.type === "question.asked") { + return { + type: "question", + sessionID: event.properties.sessionID, + requestID: event.properties.id, + open: true, + } + } + if (event.type === "question.replied" || event.type === "question.rejected") { + return { + type: "question", + sessionID: event.properties.sessionID, + requestID: event.properties.requestID, + open: false, + } + } + if (event.type === "permission.asked") { + return { + type: "permission", + sessionID: event.properties.sessionID, + requestID: event.properties.id, + open: true, + } + } + if (event.type === "permission.replied") { + return { + type: "permission", + sessionID: event.properties.sessionID, + requestID: event.properties.requestID, + open: false, + } + } + if (event.type === "session.error" && event.properties.sessionID) { + return { + type: "error", + sessionID: event.properties.sessionID, + error: event.properties.error, + } + } +} diff --git a/packages/kilo-vscode/src/services/attention/index.ts b/packages/kilo-vscode/src/services/attention/index.ts new file mode 100644 index 0000000000..fa18a0a644 --- /dev/null +++ b/packages/kilo-vscode/src/services/attention/index.ts @@ -0,0 +1 @@ +export { AttentionService, previewSound, type AttentionSetting } from "./service" diff --git a/packages/kilo-vscode/src/services/attention/service.ts b/packages/kilo-vscode/src/services/attention/service.ts new file mode 100644 index 0000000000..86ddc119b7 --- /dev/null +++ b/packages/kilo-vscode/src/services/attention/service.ts @@ -0,0 +1,87 @@ +import * as vscode from "vscode" +import type { KiloConnectionService } from "../cli-backend/connection-service" +import { AttentionTracker, delivery, toAttentionSignal, type AttentionKind, type AttentionNotice } from "./attention" +import { playSound, resolveSoundID } from "./sound" + +export type AttentionSetting = "agent" | "permissions" | "errors" + +function setting(kind: AttentionKind): AttentionSetting { + if (kind === "error") return "errors" + if (kind === "question" || kind === "permission") return "permissions" + return "agent" +} + +function fallback(kind: AttentionSetting): AttentionKind { + if (kind === "errors") return "error" + if (kind === "permissions") return "permission" + return "done" +} + +function clean(value: string | undefined) { + return (value ?? "Kilo session") + .replace(/[\u0000-\u001F\u007F-\u009F]/g, "") + .replace(/\s+/g, " ") + .trim() + .slice(0, 80) +} + +export function previewSound(kind: AttentionSetting, value: string) { + const id = resolveSoundID(value, fallback(kind)) + if (id) void playSound(id) +} + +export class AttentionService implements vscode.Disposable { + private readonly tracker = new AttentionTracker() + private readonly unsubscribeEvent: () => void + private readonly unsubscribeState: () => void + private readonly focus: vscode.Disposable + private appFocused = vscode.window.state.focused + + constructor(private readonly connection: KiloConnectionService) { + this.focus = vscode.window.onDidChangeWindowState((state) => { + this.appFocused = state.focused + }) + this.unsubscribeEvent = connection.onEvent((event) => { + const signal = toAttentionSignal(event) + if (!signal) return + const notice = this.tracker.handle(signal) + if (notice) this.notify(notice) + }) + this.unsubscribeState = connection.onStateChange((state) => { + if (state === "error" || state === "disconnected") this.tracker.reset() + }) + } + + dispose() { + this.unsubscribeEvent() + this.unsubscribeState() + this.focus.dispose() + this.tracker.dispose() + } + + private notify(notice: AttentionNotice) { + const key = setting(notice.kind) + const notifications = vscode.workspace.getConfiguration("kilo-code.new.notifications") + const sounds = vscode.workspace.getConfiguration("kilo-code.new.sounds") + const value = sounds.get(key, "system") + const id = resolveSoundID(value, notice.kind) + const result = delivery({ + appFocused: this.appFocused, + sessionFocused: this.connection.isSessionFocused(notice.sessionID), + subagent: notice.subagent, + notifications: notifications.get(key, true), + sound: id !== undefined, + playWhenFocused: sounds.get("playWhenFocused", false), + }) + + if (result.sound && id) void playSound(id) + if (!result.notification) return + + const message = `${clean(notice.title)}: ${notice.message}` + if (notice.kind === "error") { + void vscode.window.showErrorMessage(message) + return + } + void vscode.window.showInformationMessage(message) + } +} diff --git a/packages/kilo-vscode/src/services/attention/sound.ts b/packages/kilo-vscode/src/services/attention/sound.ts new file mode 100644 index 0000000000..c6c2661fb1 --- /dev/null +++ b/packages/kilo-vscode/src/services/attention/sound.ts @@ -0,0 +1,161 @@ +import * as fs from "fs" +import * as path from "path" +import { exec } from "../../util/process" +import type { AttentionKind } from "./attention" + +export const CustomSoundIDs = [ + "alert-01", + "alert-02", + "alert-03", + "alert-04", + "alert-05", + "alert-06", + "alert-07", + "alert-08", + "alert-09", + "alert-10", + "bip-bop-01", + "bip-bop-02", + "bip-bop-03", + "bip-bop-04", + "bip-bop-05", + "bip-bop-06", + "bip-bop-07", + "bip-bop-08", + "bip-bop-09", + "bip-bop-10", + "staplebops-01", + "staplebops-02", + "staplebops-03", + "staplebops-04", + "staplebops-05", + "staplebops-06", + "staplebops-07", + "nope-01", + "nope-02", + "nope-03", + "nope-04", + "nope-05", + "nope-06", + "nope-07", + "nope-08", + "nope-09", + "nope-10", + "nope-11", + "nope-12", + "yup-01", + "yup-02", + "yup-03", + "yup-04", + "yup-05", + "yup-06", +] as const + +export type CustomSoundID = (typeof CustomSoundIDs)[number] +export type SoundID = "system" | CustomSoundID + +const ids = new Set(CustomSoundIDs) +const root = path.join(__dirname, "../audio-wav") +const defaults: Record = { + done: "bip-bop-01", + subagent_done: "yup-01", + question: "bip-bop-03", + permission: "staplebops-06", + error: "nope-03", +} + +let chain = Promise.resolve(false) +let queued = 0 +const limit = 3 + +export function resolveSoundID(value: string | undefined, kind: AttentionKind): SoundID | undefined { + if (!value || value === "none") return + if (value === "default") return defaults[kind] + if (value === "system") return "system" + if (ids.has(value)) return value as CustomSoundID +} + +async function run(commands: Array<{ cmd: string; args: string[]; env?: NodeJS.ProcessEnv }>) { + for (const command of commands) { + const ok = await exec(command.cmd, command.args, command.env ? { env: command.env } : {}).then( + () => true, + (error) => { + console.debug("[Kilo New] notification sound command failed", { cmd: command.cmd, error }) + return false + }, + ) + if (ok) return true + } + return false +} + +function systemCommands(): Array<{ cmd: string; args: string[] }> { + if (process.platform === "darwin") return [{ cmd: "osascript", args: ["-e", "beep"] }] + if (process.platform === "linux") { + return [ + { cmd: "canberra-gtk-play", args: ["-i", "message-new-instant"] }, + { cmd: "paplay", args: ["/usr/share/sounds/freedesktop/stereo/message.oga"] }, + ] + } + if (process.platform === "win32") { + return [ + { + cmd: "powershell", + args: ["-NoProfile", "-NonInteractive", "-Command", "[System.Media.SystemSounds]::Exclamation.Play()"], + }, + ] + } + return [] +} + +function fileCommands(file: string): Array<{ cmd: string; args: string[]; env?: NodeJS.ProcessEnv }> { + if (process.platform === "darwin") { + return [ + { cmd: "afplay", args: [file] }, + { cmd: "play", args: [file] }, + ] + } + if (process.platform === "linux") { + return [ + { cmd: "aplay", args: [file] }, + { cmd: "paplay", args: [file] }, + { cmd: "play", args: [file] }, + ] + } + if (process.platform === "win32") { + return [ + { + cmd: "powershell", + args: [ + "-NoProfile", + "-NonInteractive", + "-Command", + "$sound = [System.Media.SoundPlayer]::new($env:KILO_SOUND_PATH); $sound.PlaySync(); $sound.Dispose()", + ], + env: { ...process.env, KILO_SOUND_PATH: file }, + }, + ] + } + return [] +} + +async function perform(id: SoundID, dir: string) { + if (id === "system") return run(systemCommands()) + const file = path.resolve(dir, `${id}.wav`) + if (!file.startsWith(`${path.resolve(dir)}${path.sep}`)) return false + if (!fs.existsSync(file)) { + console.warn("[Kilo New] notification sound is missing", { file }) + return false + } + return run(fileCommands(file)) +} + +export async function playSound(id: SoundID, dir = root) { + if (queued >= limit) return false + queued += 1 + const task = chain.catch(() => false).then(() => perform(id, dir)) + chain = task.finally(() => { + queued -= 1 + }) + return task +} diff --git a/packages/kilo-vscode/src/services/cli-backend/connection-service.ts b/packages/kilo-vscode/src/services/cli-backend/connection-service.ts index 8c7d36f3a8..bd31bfe966 100644 --- a/packages/kilo-vscode/src/services/cli-backend/connection-service.ts +++ b/packages/kilo-vscode/src/services/cli-backend/connection-service.ts @@ -452,6 +452,14 @@ export class KiloConnectionService { this.flushViewed() } + /** Whether any Kilo surface currently has this session selected. */ + isSessionFocused(sessionID: string): boolean { + for (const id of this.focused.values()) { + if (id === sessionID) return true + } + return false + } + /** Debounced: send the aggregated focused + open session IDs to the server. */ flushViewed(): void { if (!this.isRemoteEnabled()) return diff --git a/packages/kilo-vscode/tests/unit/attention.test.ts b/packages/kilo-vscode/tests/unit/attention.test.ts new file mode 100644 index 0000000000..31f01c5fec --- /dev/null +++ b/packages/kilo-vscode/tests/unit/attention.test.ts @@ -0,0 +1,166 @@ +import { describe, expect, it } from "bun:test" +import { + AttentionTracker, + delivery, + sessionErrorMessage, + type AttentionNotice, + type AttentionSignal, +} from "../../src/services/attention/attention" +import { resolveSoundID } from "../../src/services/attention/sound" + +function collect(signals: AttentionSignal[]) { + const tracker = new AttentionTracker() + const notices: AttentionNotice[] = [] + for (const signal of signals) { + const notice = tracker.handle(signal) + if (notice) notices.push(notice) + } + return notices +} + +describe("AttentionTracker", () => { + it("notifies once after an active session becomes idle", () => { + const notices = collect([ + { type: "session", sessionID: "s1", title: "Fix the bug", parentID: null }, + { type: "status", sessionID: "s1", status: "active" }, + { type: "status", sessionID: "s1", status: "idle" }, + { type: "status", sessionID: "s1", status: "idle" }, + ]) + + expect(notices).toEqual([ + { + sessionID: "s1", + kind: "done", + title: "Fix the bug", + message: "Session done", + subagent: false, + }, + ]) + }) + + it("uses the subagent completion sound category", () => { + const notices = collect([ + { type: "session", sessionID: "child", title: "Research", parentID: "parent" }, + { type: "status", sessionID: "child", status: "active" }, + { type: "status", sessionID: "child", status: "idle" }, + ]) + + expect(notices[0]).toMatchObject({ kind: "subagent_done", subagent: true }) + }) + + it("notifies for distinct questions and permissions while suppressing duplicate requests", () => { + const notices = collect([ + { type: "question", sessionID: "s1", requestID: "q1", open: true }, + { type: "question", sessionID: "s1", requestID: "q1", open: true }, + { type: "question", sessionID: "s1", requestID: "q1", open: false }, + { type: "question", sessionID: "s1", requestID: "q1", open: true }, + { type: "permission", sessionID: "s1", requestID: "p1", open: true }, + { type: "permission", sessionID: "s1", requestID: "p1", open: true }, + ]) + + expect(notices.map((notice) => notice.kind)).toEqual(["question", "question", "permission"]) + }) + + it("notifies an active session error and suppresses its following completion", () => { + const notices = collect([ + { type: "status", sessionID: "s1", status: "active" }, + { type: "error", sessionID: "s1", error: { name: "ApiError" } }, + { type: "status", sessionID: "s1", status: "idle" }, + ]) + + expect(notices).toEqual([ + { + sessionID: "s1", + kind: "error", + title: undefined, + message: "Session error", + subagent: false, + }, + ]) + }) + + it("clears active transitions when the connection resets", () => { + const tracker = new AttentionTracker() + tracker.handle({ type: "status", sessionID: "s1", status: "active" }) + tracker.reset() + + expect(tracker.handle({ type: "status", sessionID: "s1", status: "idle" })).toBeUndefined() + }) +}) + +describe("sessionErrorMessage", () => { + it("classifies aborts and response timeouts", () => { + expect(sessionErrorMessage({ name: "MessageAbortedError" })).toBe("Session aborted") + expect(sessionErrorMessage({ data: { message: "SSE read timed out" } })).toBe("Model stopped responding") + expect(sessionErrorMessage({ name: "ApiError" })).toBe("Session error") + }) +}) + +describe("delivery", () => { + it("shows root notifications only while VS Code is blurred", () => { + expect( + delivery({ + appFocused: false, + sessionFocused: true, + subagent: false, + notifications: true, + sound: true, + playWhenFocused: false, + }), + ).toEqual({ notification: true, sound: true }) + + expect( + delivery({ + appFocused: true, + sessionFocused: true, + subagent: false, + notifications: true, + sound: true, + playWhenFocused: false, + }), + ).toEqual({ notification: false, sound: false }) + }) + + it("plays sounds for background sessions and keeps subagent notifications silent", () => { + expect( + delivery({ + appFocused: true, + sessionFocused: false, + subagent: true, + notifications: true, + sound: true, + playWhenFocused: false, + }), + ).toEqual({ notification: false, sound: true }) + }) + + it("keeps visual and sound preferences independent", () => { + expect( + delivery({ + appFocused: false, + sessionFocused: false, + subagent: false, + notifications: false, + sound: true, + playWhenFocused: false, + }), + ).toEqual({ notification: false, sound: true }) + }) +}) + +describe("resolveSoundID", () => { + it("uses the OpenCode attention defaults", () => { + expect(resolveSoundID("default", "done")).toBe("bip-bop-01") + expect(resolveSoundID("default", "question")).toBe("bip-bop-03") + expect(resolveSoundID("default", "permission")).toBe("staplebops-06") + expect(resolveSoundID("default", "error")).toBe("nope-03") + expect(resolveSoundID("default", "subagent_done")).toBe("yup-01") + }) + + it("accepts system and bundled sounds and rejects invalid values", () => { + expect(resolveSoundID("system", "done")).toBe("system") + expect(resolveSoundID("alert-04", "done")).toBe("alert-04") + expect(resolveSoundID("none", "done")).toBeUndefined() + expect(resolveSoundID("unknown", "done")).toBeUndefined() + }) +}) diff --git a/packages/kilo-vscode/webview-ui/src/components/settings/NotificationsTab.tsx b/packages/kilo-vscode/webview-ui/src/components/settings/NotificationsTab.tsx index e77f10e42a..6eff48bbd5 100644 --- a/packages/kilo-vscode/webview-ui/src/components/settings/NotificationsTab.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/settings/NotificationsTab.tsx @@ -1,4 +1,5 @@ import { Component, createSignal, onCleanup } from "solid-js" +import { Button } from "@kilocode/kilo-ui/button" import { Switch } from "@kilocode/kilo-ui/switch" import { Select } from "@kilocode/kilo-ui/select" import { Card } from "@kilocode/kilo-ui/card" @@ -12,9 +13,27 @@ interface SoundOption { labelKey: string } +const groups = [ + { value: "alert", key: "alert", count: 10 }, + { value: "bip-bop", key: "bipbop", count: 10 }, + { value: "staplebops", key: "staplebops", count: 7 }, + { value: "nope", key: "nope", count: 12 }, + { value: "yup", key: "yup", count: 6 }, +] + const SOUND_OPTIONS: SoundOption[] = [ + { value: "system", labelKey: "settings.notifications.sound.system" }, { value: "default", labelKey: "settings.notifications.sound.default" }, { value: "none", labelKey: "settings.notifications.sound.none" }, + ...groups.flatMap((group) => + Array.from({ length: group.count }, (_, index) => { + const suffix = String(index + 1).padStart(2, "0") + return { + value: `${group.value}-${suffix}`, + labelKey: `sound.option.${group.key}${suffix}`, + } + }), + ), ] const NotificationsTab: Component = () => { @@ -24,21 +43,21 @@ const NotificationsTab: Component = () => { const [agentNotify, setAgentNotify] = createSignal(true) const [permNotify, setPermNotify] = createSignal(true) const [errorNotify, setErrorNotify] = createSignal(true) - const [agentSound, setAgentSound] = createSignal("default") - const [permSound, setPermSound] = createSignal("default") - const [errorSound, setErrorSound] = createSignal("default") + const [playWhenFocused, setPlayWhenFocused] = createSignal(false) + const [agentSound, setAgentSound] = createSignal("system") + const [permSound, setPermSound] = createSignal("system") + const [errorSound, setErrorSound] = createSignal("system") const unsubscribe = vscode.onMessage((message: ExtensionMessage) => { - if (message.type !== "notificationSettingsLoaded") { - return - } - const s = message.settings - setAgentNotify(s.notifyAgent) - setPermNotify(s.notifyPermissions) - setErrorNotify(s.notifyErrors) - setAgentSound(s.soundAgent) - setPermSound(s.soundPermissions) - setErrorSound(s.soundErrors) + if (message.type !== "notificationSettingsLoaded") return + const settings = message.settings + setAgentNotify(settings.notifyAgent) + setPermNotify(settings.notifyPermissions) + setErrorNotify(settings.notifyErrors) + setPlayWhenFocused(settings.playWhenFocused) + setAgentSound(settings.soundAgent) + setPermSound(settings.soundPermissions) + setErrorSound(settings.soundErrors) }) onCleanup(unsubscribe) @@ -48,6 +67,37 @@ const NotificationsTab: Component = () => { vscode.postMessage({ type: "updateSetting", key, value }) } + const test = (settingType: "agent" | "permissions" | "errors", sound: string) => { + vscode.postMessage({ type: "testNotification", settingType, sound }) + } + + const picker = ( + value: () => string, + set: (value: string) => void, + key: string, + kind: "agent" | "permissions" | "errors", + ) => ( +