diff --git a/.changeset/jetbrains-agent-manager-beta.md b/.changeset/jetbrains-agent-manager-beta.md new file mode 100644 index 00000000000..e8f4b92f277 --- /dev/null +++ b/.changeset/jetbrains-agent-manager-beta.md @@ -0,0 +1,5 @@ +--- +"@kilocode/kilo-jetbrains": patch +--- + +Show a Beta badge on the Agent Manager tool window tab. diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/KiloToolWindowFactory.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/KiloToolWindowFactory.kt index 2356d2a41f0..88edf7510bf 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/KiloToolWindowFactory.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/KiloToolWindowFactory.kt @@ -13,6 +13,7 @@ import ai.kilocode.client.agentManager.worktree.WorktreeController import ai.kilocode.client.agentManager.AgentManagerPanel import ai.kilocode.client.plugin.KiloBundle import ai.kilocode.log.KiloLog +import com.intellij.icons.AllIcons import com.intellij.openapi.actionSystem.ActionGroup import com.intellij.openapi.actionSystem.ActionManager import com.intellij.openapi.actionSystem.DataProvider @@ -25,6 +26,7 @@ import com.intellij.openapi.wm.ToolWindow import com.intellij.openapi.wm.ToolWindowFactory import com.intellij.platform.project.projectIdOrNull import com.intellij.openapi.wm.impl.content.ToolWindowContentUi +import com.intellij.ui.content.Content import com.intellij.ui.content.ContentManagerEvent import com.intellij.ui.content.ContentManagerListener import com.intellij.ui.content.ContentFactory @@ -33,6 +35,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.awt.BorderLayout +import java.awt.ComponentOrientation import javax.swing.JPanel /** @@ -126,6 +129,7 @@ internal class KiloToolWindowSetupService( chatContent.setDisposer(manager) chatContent.setPreferredFocusedComponent { manager.defaultFocusedComponent } val agentContent = factory.createContent(agent, KiloBundle.message("sidePanel.mode.agentManager"), false) + agentContent.applyAgentManagerBetaBadge() agentContent.setPreferredFocusedComponent { agentManagerPanel.component } toolWindow.contentManager.addContent(chatContent) toolWindow.contentManager.addContent(agentContent) @@ -158,3 +162,10 @@ internal class KiloToolWindowSetupService( } } } + +internal fun Content.applyAgentManagerBetaBadge() { + icon = AllIcons.General.Beta + description = KiloBundle.message("sidePanel.mode.agentManager.beta.description") + putUserData(ToolWindow.SHOW_CONTENT_ICON, true) + putUserData(Content.TAB_LABEL_ORIENTATION_KEY, ComponentOrientation.RIGHT_TO_LEFT) +} 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 0d20f432eea..a52d882349f 100644 --- a/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties +++ b/packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties @@ -338,6 +338,7 @@ history.error.cloud.delete=Cloud sessions cannot be deleted yet sidePanel.mode.branch=AI Chat sidePanel.mode.agentManager=Agent Manager +sidePanel.mode.agentManager.beta.description=Agent Manager (Beta) worktree.empty=No worktrees worktree.delete.action=Delete worktree worktree.delete.confirm.message=Delete worktree "{0}"? diff --git a/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/KiloToolWindowFactoryTest.kt b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/KiloToolWindowFactoryTest.kt new file mode 100644 index 00000000000..00e3fdf2af0 --- /dev/null +++ b/packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/KiloToolWindowFactoryTest.kt @@ -0,0 +1,23 @@ +package ai.kilocode.client + +import ai.kilocode.client.util.edtWait +import com.intellij.icons.AllIcons +import com.intellij.openapi.wm.ToolWindow +import com.intellij.testFramework.fixtures.BasePlatformTestCase +import com.intellij.ui.content.Content +import com.intellij.ui.content.ContentFactory +import java.awt.ComponentOrientation +import javax.swing.JPanel + +class KiloToolWindowFactoryTest : BasePlatformTestCase() { + fun `test agent manager content uses beta badge metadata`() = edtWait { + val content = ContentFactory.getInstance().createContent(JPanel(), "Agent Manager", false) + + content.applyAgentManagerBetaBadge() + + assertSame(AllIcons.General.Beta, content.icon) + assertEquals("Agent Manager (Beta)", content.description) + assertEquals(true, content.getUserData(ToolWindow.SHOW_CONTENT_ICON)) + assertEquals(ComponentOrientation.RIGHT_TO_LEFT, content.getUserData(Content.TAB_LABEL_ORIENTATION_KEY)) + } +}