summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-11-04 14:07:22 -0500
committerDax Raad <[email protected]>2025-11-04 14:07:22 -0500
commitee1ff8cc07fcac5e6e879bc8084835f339a6b52c (patch)
tree03942f2f75d8ebf425cc26a024f7deedf65adccf /packages
parent434c0ff0d7f7e6f453d3c51560d16bc91e473ca8 (diff)
downloadopencode-ee1ff8cc07fcac5e6e879bc8084835f339a6b52c.tar.gz
opencode-ee1ff8cc07fcac5e6e879bc8084835f339a6b52c.zip
tui: add ability to interrupt running sessions from command palette
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx31
1 files changed, 19 insertions, 12 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx
index 7835539ed..785eb7e4b 100644
--- a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx
@@ -115,15 +115,11 @@ export function Prompt(props: PromptProps) {
{
title: "Clear prompt",
value: "prompt.clear",
- disabled: true,
category: "Prompt",
+ disabled: true,
onSelect: (dialog) => {
input.extmarks.clear()
- setStore("prompt", {
- input: "",
- parts: [],
- })
- setStore("extmarkToPartIndex", new Map())
+ input.clear()
dialog.clear()
},
},
@@ -156,16 +152,27 @@ export function Prompt(props: PromptProps) {
}
},
},
+ {
+ title: "Interrupt session",
+ value: "session.interrupt",
+ keybind: "session_interrupt",
+ category: "Session",
+ disabled: true,
+ onSelect: (dialog) => {
+ if (!props.sessionID) return
+ sdk.client.session.abort({
+ path: {
+ id: props.sessionID,
+ },
+ })
+ dialog.clear()
+ },
+ },
]
})
sdk.event.on(TuiEvent.PromptAppend.type, (evt) => {
- setStore(
- "prompt",
- produce((draft) => {
- draft.input += evt.properties.text
- }),
- )
+ input.insertText(evt.properties.text)
})
createEffect(() => {