+
@@ -129,8 +129,88 @@ function EditModeWrapper() {
})
})
return (
-
+
)
}
+
+/** Clicks the given subtab button on mount. */
+function SubtabWrapper(props: { tab: string }) {
+ let ref: HTMLDivElement | undefined
+ onMount(() => {
+ requestAnimationFrame(() => {
+ if (!ref) return
+ const buttons = Array.from(ref.querySelectorAll
("button"))
+ for (const btn of buttons) {
+ if (btn.textContent?.toLowerCase().includes(props.tab.toLowerCase())) {
+ btn.click()
+ return
+ }
+ }
+ })
+ })
+ return (
+
+ )
+}
+
+const MOCK_COMMANDS: Record = {
+ review: {
+ template: "Review the changes in the current branch and provide feedback on code quality.",
+ description: "Run a code review on the current branch",
+ },
+ deploy: {
+ template: "Build and deploy the application to the staging environment.",
+ description: "Deploy to staging",
+ },
+ test: {
+ template: "Run the full test suite and report any failures.",
+ },
+}
+
+export const AgentBehaviourWorkflows: Story = {
+ name: "AgentBehaviourTab — workflows with commands",
+ render: () => {
+ const session = {
+ ...mockSessionValue({ id: "workflows-story", status: "idle" }),
+ agents: () => MOCK_AGENTS,
+ removeMode: noop,
+ removeMcp: noop,
+ skills: () => [],
+ refreshSkills: noop,
+ removeSkill: noop,
+ }
+ return (
+
+
+
+
+
+ )
+ },
+}
+
+export const AgentBehaviourWorkflowsEmpty: Story = {
+ name: "AgentBehaviourTab — workflows empty state",
+ render: () => {
+ const session = {
+ ...mockSessionValue({ id: "workflows-empty-story", status: "idle" }),
+ agents: () => MOCK_AGENTS,
+ removeMode: noop,
+ removeMcp: noop,
+ skills: () => [],
+ refreshSkills: noop,
+ removeSkill: noop,
+ }
+ return (
+
+
+
+
+
+ )
+ },
+}
diff --git a/packages/kilo-vscode/webview-ui/src/types/messages.ts b/packages/kilo-vscode/webview-ui/src/types/messages.ts
index f6355d25a2a..637759b537b 100644
--- a/packages/kilo-vscode/webview-ui/src/types/messages.ts
+++ b/packages/kilo-vscode/webview-ui/src/types/messages.ts
@@ -352,8 +352,10 @@ export interface McpConfig {
}
export interface CommandConfig {
- command: string
+ template: string
description?: string
+ agent?: string
+ model?: string
}
export interface SkillsConfig {