mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-22 15:03:32 +00:00
fix(tui): wire subagent interrupt and drop granular background commands
This commit is contained in:
parent
2f4a688790
commit
eabf85aea2
2 changed files with 5 additions and 30 deletions
|
|
@ -12,7 +12,6 @@ export function ShellTab(props: { sessionID: string }) {
|
|||
const fg = selectedForeground(theme)
|
||||
const composer = useComposerTab()
|
||||
const killHint = useCommandShortcut("composer.shell.kill")
|
||||
const backgroundHint = useCommandShortcut("composer.background")
|
||||
|
||||
const entries = createMemo(() =>
|
||||
data.shell
|
||||
|
|
@ -44,13 +43,7 @@ export function ShellTab(props: { sessionID: string }) {
|
|||
const cleanup = composer.register({
|
||||
id: "shell",
|
||||
label: "Shell",
|
||||
hints: () =>
|
||||
selectedEntry()
|
||||
? [
|
||||
{ label: "kill", shortcut: killHint() },
|
||||
{ label: "background", shortcut: backgroundHint() },
|
||||
]
|
||||
: [],
|
||||
hints: () => (selectedEntry() ? [{ label: "kill", shortcut: killHint() }] : []),
|
||||
})
|
||||
onCleanup(cleanup)
|
||||
})
|
||||
|
|
@ -89,18 +82,11 @@ export function ShellTab(props: { sessionID: string }) {
|
|||
void data.shell.remove(entry.id)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "composer.background",
|
||||
title: "Background shell command",
|
||||
category: "Composer",
|
||||
run() {},
|
||||
},
|
||||
],
|
||||
bindings: [
|
||||
{ key: "up", desc: "Previous shell", group: "Shell", cmd: "composer.shell.up" },
|
||||
{ key: "down", desc: "Next shell", group: "Shell", cmd: "composer.shell.down" },
|
||||
{ key: "ctrl+d", desc: "Kill shell command", group: "Shell", cmd: "composer.shell.kill" },
|
||||
{ key: "ctrl+b", desc: "Background shell command", group: "Shell", cmd: "composer.background" },
|
||||
],
|
||||
}))
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { createStore } from "solid-js/store"
|
|||
import { TextAttributes, RGBA, ScrollBoxRenderable } from "@opentui/core"
|
||||
import { useRoute, useRouteData } from "../../../context/route"
|
||||
import { useData } from "../../../context/data"
|
||||
import { useSDK } from "../../../context/sdk"
|
||||
import { useTheme, selectedForeground } from "../../../context/theme"
|
||||
import { Locale } from "../../../util/locale"
|
||||
import { useBindings, useCommandShortcut } from "../../../keymap"
|
||||
|
|
@ -19,12 +20,12 @@ interface SubagentEntry {
|
|||
export function SubagentsTab(props: { sessionID: string }) {
|
||||
const route = useRouteData("session")
|
||||
const data = useData()
|
||||
const sdk = useSDK()
|
||||
const { theme } = useTheme()
|
||||
const fg = selectedForeground(theme)
|
||||
const navigate = useRoute().navigate
|
||||
const composer = useComposerTab()
|
||||
const interruptHint = useCommandShortcut("composer.subagent.interrupt")
|
||||
const backgroundHint = useCommandShortcut("composer.background")
|
||||
|
||||
const session = createMemo(() => data.session.get(props.sessionID))
|
||||
|
||||
|
|
@ -132,10 +133,7 @@ export function SubagentsTab(props: { sessionID: string }) {
|
|||
hints: () => {
|
||||
const entry = selectedEntry()
|
||||
if (!entry || entry.status !== "running") return []
|
||||
return [
|
||||
{ label: "interrupt", shortcut: interruptHint() },
|
||||
...(entry.current ? [{ label: "background", shortcut: backgroundHint() }] : []),
|
||||
]
|
||||
return [{ label: "interrupt", shortcut: interruptHint() }]
|
||||
},
|
||||
onClose: () => {
|
||||
const parentID = session()?.parentID
|
||||
|
|
@ -185,15 +183,7 @@ export function SubagentsTab(props: { sessionID: string }) {
|
|||
run() {
|
||||
const entry = selectedEntry()
|
||||
if (!entry || entry.status !== "running") return
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "composer.background",
|
||||
title: "Background subagent",
|
||||
category: "Composer",
|
||||
run() {
|
||||
const entry = selectedEntry()
|
||||
if (!entry || entry.status !== "running" || !entry.current) return
|
||||
void sdk.api.session.interrupt({ sessionID: entry.sessionID })
|
||||
},
|
||||
},
|
||||
],
|
||||
|
|
@ -202,7 +192,6 @@ export function SubagentsTab(props: { sessionID: string }) {
|
|||
{ key: "down", desc: "Next subagent", group: "Subagents", cmd: "composer.subagent.down" },
|
||||
{ key: "return", desc: "Navigate to subagent", group: "Subagents", cmd: "composer.subagent.select" },
|
||||
{ key: "ctrl+d", desc: "Interrupt subagent", group: "Subagents", cmd: "composer.subagent.interrupt" },
|
||||
{ key: "ctrl+b", desc: "Background subagent", group: "Subagents", cmd: "composer.background" },
|
||||
],
|
||||
}))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue