diff options
| author | Dax Raad <[email protected]> | 2025-11-04 14:07:22 -0500 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-11-04 14:07:22 -0500 |
| commit | ee1ff8cc07fcac5e6e879bc8084835f339a6b52c (patch) | |
| tree | 03942f2f75d8ebf425cc26a024f7deedf65adccf | |
| parent | 434c0ff0d7f7e6f453d3c51560d16bc91e473ca8 (diff) | |
| download | opencode-ee1ff8cc07fcac5e6e879bc8084835f339a6b52c.tar.gz opencode-ee1ff8cc07fcac5e6e879bc8084835f339a6b52c.zip | |
tui: add ability to interrupt running sessions from command palette
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx | 31 |
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(() => { |
