@sagmans/dsh-tui 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/dsh-tui-dogfood/SKILL.md +18 -2
- package/.agents/skills/dsh-tui-dogfood/references/home-state.md +4 -4
- package/.agents/skills/dsh-tui-dogfood/scripts/clone-links.mjs +19 -11
- package/.agents/skills/dsh-tui-dogfood/scripts/run-plugin-from-worktree.sh +31 -9
- package/.agents/skills/dsh-tui-update-models/SKILL.md +1 -1
- package/.agents/skills/dsh-tui-update-models/references/model-wiring.md +6 -6
- package/.agents/skills/dsh-tui-update-models/scripts/dump-model-catalog.mjs +21 -13
- package/README.md +61 -23
- package/cordis.patch.yml +2 -0
- package/lib/agent/fork.d.ts +3 -1
- package/lib/agent/fork.d.ts.map +1 -1
- package/lib/agent/fork.js +2 -0
- package/lib/agent/fork.js.map +1 -1
- package/lib/agent/history.d.ts +14 -22
- package/lib/agent/history.d.ts.map +1 -1
- package/lib/agent/history.js +20 -14
- package/lib/agent/history.js.map +1 -1
- package/lib/agent/host.d.ts.map +1 -1
- package/lib/agent/host.js +6 -0
- package/lib/agent/host.js.map +1 -1
- package/lib/agent/model.d.ts +10 -8
- package/lib/agent/model.d.ts.map +1 -1
- package/lib/agent/model.js +9 -7
- package/lib/agent/model.js.map +1 -1
- package/lib/agent/present.d.ts +1 -1
- package/lib/agent/present.d.ts.map +1 -1
- package/lib/agent/present.js +1 -1
- package/lib/agent/present.js.map +1 -1
- package/lib/agent/presets.d.ts +4 -1
- package/lib/agent/presets.d.ts.map +1 -1
- package/lib/agent/presets.js +9 -2
- package/lib/agent/presets.js.map +1 -1
- package/lib/agent/projections.d.ts +8 -2
- package/lib/agent/projections.d.ts.map +1 -1
- package/lib/agent/projections.js +8 -2
- package/lib/agent/projections.js.map +1 -1
- package/lib/agent/prompt-history.d.ts +8 -48
- package/lib/agent/prompt-history.d.ts.map +1 -1
- package/lib/agent/prompt-history.js +34 -15
- package/lib/agent/prompt-history.js.map +1 -1
- package/lib/agent/status.d.ts +9 -24
- package/lib/agent/status.d.ts.map +1 -1
- package/lib/agent/status.js +7 -2
- package/lib/agent/status.js.map +1 -1
- package/lib/agent/undo.d.ts +2 -4
- package/lib/agent/undo.d.ts.map +1 -1
- package/lib/agent/undo.js +10 -5
- package/lib/agent/undo.js.map +1 -1
- package/lib/cards/composition.d.ts +7 -7
- package/lib/cards/composition.d.ts.map +1 -1
- package/lib/cards/composition.js +13 -12
- package/lib/cards/composition.js.map +1 -1
- package/lib/cards/presenter.d.ts +11 -14
- package/lib/cards/presenter.d.ts.map +1 -1
- package/lib/cards/presenter.js +40 -19
- package/lib/cards/presenter.js.map +1 -1
- package/lib/cards/preview.d.ts.map +1 -1
- package/lib/cards/preview.js +5 -1
- package/lib/cards/preview.js.map +1 -1
- package/lib/cards.d.ts +17 -23
- package/lib/cards.d.ts.map +1 -1
- package/lib/cards.js +27 -12
- package/lib/cards.js.map +1 -1
- package/lib/compat/probe.d.ts +2 -5
- package/lib/compat/probe.d.ts.map +1 -1
- package/lib/compat/probe.js +2 -2
- package/lib/compat/probe.js.map +1 -1
- package/lib/compat/section.d.ts +5 -4
- package/lib/compat/section.d.ts.map +1 -1
- package/lib/compat/section.js +4 -0
- package/lib/compat/section.js.map +1 -1
- package/lib/config.d.ts +0 -3
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +7 -1
- package/lib/config.js.map +1 -1
- package/lib/export.d.ts +5 -7
- package/lib/export.d.ts.map +1 -1
- package/lib/export.js +48 -10
- package/lib/export.js.map +1 -1
- package/lib/fold-cursor.d.ts +3 -3
- package/lib/fold-cursor.d.ts.map +1 -1
- package/lib/fold-cursor.js +5 -3
- package/lib/fold-cursor.js.map +1 -1
- package/lib/gates/question-card.d.ts +3 -38
- package/lib/gates/question-card.d.ts.map +1 -1
- package/lib/gates/question-card.js +13 -10
- package/lib/gates/question-card.js.map +1 -1
- package/lib/gates/questions.d.ts +14 -8
- package/lib/gates/questions.d.ts.map +1 -1
- package/lib/gates/questions.js +16 -12
- package/lib/gates/questions.js.map +1 -1
- package/lib/gates.d.ts +17 -25
- package/lib/gates.d.ts.map +1 -1
- package/lib/gates.js +2 -4
- package/lib/gates.js.map +1 -1
- package/lib/herdr/client.d.ts +10 -12
- package/lib/herdr/client.d.ts.map +1 -1
- package/lib/herdr/client.js +9 -8
- package/lib/herdr/client.js.map +1 -1
- package/lib/herdr/constants.d.ts +3 -2
- package/lib/herdr/constants.d.ts.map +1 -1
- package/lib/herdr/constants.js +3 -2
- package/lib/herdr/constants.js.map +1 -1
- package/lib/herdr/reporter.d.ts +4 -39
- package/lib/herdr/reporter.d.ts.map +1 -1
- package/lib/herdr/reporter.js +13 -19
- package/lib/herdr/reporter.js.map +1 -1
- package/lib/herdr/state.d.ts +4 -3
- package/lib/herdr/state.d.ts.map +1 -1
- package/lib/herdr/state.js +6 -5
- package/lib/herdr/state.js.map +1 -1
- package/lib/host/preset-files.d.ts +0 -17
- package/lib/host/preset-files.d.ts.map +1 -1
- package/lib/host/preset-files.js +7 -2
- package/lib/host/preset-files.js.map +1 -1
- package/lib/host/roster.d.ts +1 -1
- package/lib/host/roster.d.ts.map +1 -1
- package/lib/host/roster.js +3 -3
- package/lib/host/roster.js.map +1 -1
- package/lib/host/runner.d.ts +2 -5
- package/lib/host/runner.d.ts.map +1 -1
- package/lib/host/runner.js +2 -5
- package/lib/host/runner.js.map +1 -1
- package/lib/identity.d.ts +6 -3
- package/lib/identity.d.ts.map +1 -1
- package/lib/identity.js +18 -3
- package/lib/identity.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +42 -14
- package/lib/index.js.map +1 -1
- package/lib/injection.d.ts.map +1 -1
- package/lib/injection.js +1 -0
- package/lib/injection.js.map +1 -1
- package/lib/input/action-catalog.d.ts.map +1 -1
- package/lib/input/action-catalog.js +4 -0
- package/lib/input/action-catalog.js.map +1 -1
- package/lib/input/actions.d.ts +4 -3
- package/lib/input/actions.d.ts.map +1 -1
- package/lib/input/actions.js +8 -3
- package/lib/input/actions.js.map +1 -1
- package/lib/input/completion.d.ts +3 -11
- package/lib/input/completion.d.ts.map +1 -1
- package/lib/input/completion.js +4 -4
- package/lib/input/completion.js.map +1 -1
- package/lib/input/file-index.d.ts +1 -12
- package/lib/input/file-index.d.ts.map +1 -1
- package/lib/input/file-index.js +21 -17
- package/lib/input/file-index.js.map +1 -1
- package/lib/input/file-search.d.ts +4 -3
- package/lib/input/file-search.d.ts.map +1 -1
- package/lib/input/file-search.js +8 -5
- package/lib/input/file-search.js.map +1 -1
- package/lib/input/fuzzy.d.ts +6 -12
- package/lib/input/fuzzy.d.ts.map +1 -1
- package/lib/input/fuzzy.js +18 -27
- package/lib/input/fuzzy.js.map +1 -1
- package/lib/input/ghost.d.ts +5 -5
- package/lib/input/ghost.d.ts.map +1 -1
- package/lib/input/ghost.js +4 -3
- package/lib/input/ghost.js.map +1 -1
- package/lib/input/key-press.d.ts +8 -7
- package/lib/input/key-press.d.ts.map +1 -1
- package/lib/input/key-press.js +8 -6
- package/lib/input/key-press.js.map +1 -1
- package/lib/input/keymap-conflicts.d.ts +6 -6
- package/lib/input/keymap-conflicts.d.ts.map +1 -1
- package/lib/input/keymap-conflicts.js +6 -6
- package/lib/input/keymap-conflicts.js.map +1 -1
- package/lib/input/keymap.d.ts +6 -18
- package/lib/input/keymap.d.ts.map +1 -1
- package/lib/input/keymap.js +7 -10
- package/lib/input/keymap.js.map +1 -1
- package/lib/input/match.js +4 -4
- package/lib/input/match.js.map +1 -1
- package/lib/input/submission.d.ts +7 -3
- package/lib/input/submission.d.ts.map +1 -1
- package/lib/input/submission.js +2 -2
- package/lib/input/submission.js.map +1 -1
- package/lib/input/workspace-files.d.ts +1 -2
- package/lib/input/workspace-files.d.ts.map +1 -1
- package/lib/input/workspace-files.js +20 -11
- package/lib/input/workspace-files.js.map +1 -1
- package/lib/input.d.ts.map +1 -1
- package/lib/input.js +3 -1
- package/lib/input.js.map +1 -1
- package/lib/install-skills.d.ts +5 -22
- package/lib/install-skills.d.ts.map +1 -1
- package/lib/install-skills.js +18 -18
- package/lib/install-skills.js.map +1 -1
- package/lib/jobs.d.ts +10 -5
- package/lib/jobs.d.ts.map +1 -1
- package/lib/jobs.js +39 -13
- package/lib/jobs.js.map +1 -1
- package/lib/keymaps.d.ts.map +1 -1
- package/lib/keymaps.js +2 -0
- package/lib/keymaps.js.map +1 -1
- package/lib/keys-command.d.ts +1 -1
- package/lib/keys-command.d.ts.map +1 -1
- package/lib/model-list.d.ts +0 -27
- package/lib/model-list.d.ts.map +1 -1
- package/lib/model-list.js +1 -1
- package/lib/model-list.js.map +1 -1
- package/lib/moshi.d.ts +13 -0
- package/lib/moshi.d.ts.map +1 -0
- package/lib/moshi.js +130 -0
- package/lib/moshi.js.map +1 -0
- package/lib/spacing.d.ts +0 -7
- package/lib/spacing.d.ts.map +1 -1
- package/lib/spacing.js +1 -1
- package/lib/spacing.js.map +1 -1
- package/lib/startup.d.ts +1 -1
- package/lib/startup.d.ts.map +1 -1
- package/lib/startup.js +9 -1
- package/lib/startup.js.map +1 -1
- package/lib/stash/lock.d.ts +1 -37
- package/lib/stash/lock.d.ts.map +1 -1
- package/lib/stash/lock.js +41 -35
- package/lib/stash/lock.js.map +1 -1
- package/lib/stash/paths.d.ts +8 -7
- package/lib/stash/paths.d.ts.map +1 -1
- package/lib/stash/paths.js +21 -17
- package/lib/stash/paths.js.map +1 -1
- package/lib/stash/private-fs.d.ts +14 -5
- package/lib/stash/private-fs.d.ts.map +1 -1
- package/lib/stash/private-fs.js +30 -8
- package/lib/stash/private-fs.js.map +1 -1
- package/lib/stash/schema.d.ts +3 -6
- package/lib/stash/schema.d.ts.map +1 -1
- package/lib/stash/schema.js +11 -9
- package/lib/stash/schema.js.map +1 -1
- package/lib/stash/store.d.ts +9 -40
- package/lib/stash/store.d.ts.map +1 -1
- package/lib/stash/store.js +26 -24
- package/lib/stash/store.js.map +1 -1
- package/lib/stash.d.ts +7 -11
- package/lib/stash.d.ts.map +1 -1
- package/lib/stash.js +18 -11
- package/lib/stash.js.map +1 -1
- package/lib/subagents.d.ts +9 -9
- package/lib/subagents.d.ts.map +1 -1
- package/lib/subagents.js +19 -18
- package/lib/subagents.js.map +1 -1
- package/lib/surface/appearance-preferences.d.ts.map +1 -1
- package/lib/surface/appearance-preferences.js +7 -0
- package/lib/surface/appearance-preferences.js.map +1 -1
- package/lib/surface/appearance.d.ts.map +1 -1
- package/lib/surface/appearance.js +7 -2
- package/lib/surface/appearance.js.map +1 -1
- package/lib/surface/background-work.d.ts +2 -0
- package/lib/surface/background-work.d.ts.map +1 -1
- package/lib/surface/background-work.js +45 -36
- package/lib/surface/background-work.js.map +1 -1
- package/lib/surface/commands.d.ts.map +1 -1
- package/lib/surface/commands.js +17 -9
- package/lib/surface/commands.js.map +1 -1
- package/lib/surface/modal-input.d.ts +3 -0
- package/lib/surface/modal-input.d.ts.map +1 -1
- package/lib/surface/modal-input.js +4 -1
- package/lib/surface/modal-input.js.map +1 -1
- package/lib/surface/model-choice.d.ts.map +1 -1
- package/lib/surface/model-choice.js +10 -8
- package/lib/surface/model-choice.js.map +1 -1
- package/lib/surface/plugin-actions.d.ts.map +1 -1
- package/lib/surface/plugin-actions.js +4 -0
- package/lib/surface/plugin-actions.js.map +1 -1
- package/lib/surface/preset-choice.d.ts.map +1 -1
- package/lib/surface/preset-choice.js +15 -17
- package/lib/surface/preset-choice.js.map +1 -1
- package/lib/surface/prompt-input.js +1 -1
- package/lib/surface/prompt-input.js.map +1 -1
- package/lib/surface/prompt-memory.d.ts +7 -6
- package/lib/surface/prompt-memory.d.ts.map +1 -1
- package/lib/surface/prompt-memory.js +3 -3
- package/lib/surface/session-lifecycle.d.ts +7 -1
- package/lib/surface/session-lifecycle.d.ts.map +1 -1
- package/lib/surface/session-lifecycle.js +17 -12
- package/lib/surface/session-lifecycle.js.map +1 -1
- package/lib/surface/session-picker.js +1 -1
- package/lib/surface/session-picker.js.map +1 -1
- package/lib/surface/session-view.d.ts +1 -1
- package/lib/surface/session-view.d.ts.map +1 -1
- package/lib/surface/session-view.js +4 -5
- package/lib/surface/session-view.js.map +1 -1
- package/lib/surface/staged-turns.d.ts.map +1 -1
- package/lib/surface/staged-turns.js +8 -4
- package/lib/surface/staged-turns.js.map +1 -1
- package/lib/surface/terminal-lifecycle.d.ts +1 -1
- package/lib/surface/terminal-lifecycle.d.ts.map +1 -1
- package/lib/surface/terminal-lifecycle.js +8 -5
- package/lib/surface/terminal-lifecycle.js.map +1 -1
- package/lib/terminal/bell.d.ts +0 -2
- package/lib/terminal/bell.d.ts.map +1 -1
- package/lib/terminal/bell.js +2 -1
- package/lib/terminal/bell.js.map +1 -1
- package/lib/terminal/clipboard.d.ts +4 -4
- package/lib/terminal/clipboard.js +4 -4
- package/lib/terminal/external-editor.d.ts +4 -60
- package/lib/terminal/external-editor.d.ts.map +1 -1
- package/lib/terminal/external-editor.js +28 -40
- package/lib/terminal/external-editor.js.map +1 -1
- package/lib/terminal/host-writes.d.ts +7 -18
- package/lib/terminal/host-writes.d.ts.map +1 -1
- package/lib/terminal/host-writes.js +9 -14
- package/lib/terminal/host-writes.js.map +1 -1
- package/lib/terminal/input.d.ts +6 -0
- package/lib/terminal/input.d.ts.map +1 -0
- package/lib/terminal/input.js +15 -0
- package/lib/terminal/input.js.map +1 -0
- package/lib/terminal/restore.d.ts +2 -1
- package/lib/terminal/restore.d.ts.map +1 -1
- package/lib/terminal/signals.d.ts +2 -1
- package/lib/terminal/signals.d.ts.map +1 -1
- package/lib/terminal/signals.js +1 -1
- package/lib/terminal/signals.js.map +1 -1
- package/lib/terminal/title.d.ts +1 -11
- package/lib/terminal/title.d.ts.map +1 -1
- package/lib/terminal/title.js +5 -4
- package/lib/terminal/title.js.map +1 -1
- package/lib/terminal/warning-screen.d.ts +2 -0
- package/lib/terminal/warning-screen.d.ts.map +1 -1
- package/lib/terminal/warning-screen.js +21 -3
- package/lib/terminal/warning-screen.js.map +1 -1
- package/lib/terminal-text/scan.d.ts +4 -5
- package/lib/terminal-text/scan.d.ts.map +1 -1
- package/lib/terminal-text/scan.js +16 -9
- package/lib/terminal-text/scan.js.map +1 -1
- package/lib/terminal-text/sgr.d.ts +4 -3
- package/lib/terminal-text/sgr.d.ts.map +1 -1
- package/lib/terminal-text/sgr.js +9 -14
- package/lib/terminal-text/sgr.js.map +1 -1
- package/lib/terminal-text.d.ts +7 -12
- package/lib/terminal-text.d.ts.map +1 -1
- package/lib/terminal-text.js +31 -28
- package/lib/terminal-text.js.map +1 -1
- package/lib/text.d.ts +8 -14
- package/lib/text.d.ts.map +1 -1
- package/lib/text.js +14 -15
- package/lib/text.js.map +1 -1
- package/lib/theme-capability.d.ts +3 -15
- package/lib/theme-capability.d.ts.map +1 -1
- package/lib/theme-capability.js +18 -15
- package/lib/theme-capability.js.map +1 -1
- package/lib/theme-defaults.d.ts +3 -57
- package/lib/theme-defaults.d.ts.map +1 -1
- package/lib/theme-defaults.js +25 -14
- package/lib/theme-defaults.js.map +1 -1
- package/lib/theme-files.d.ts +16 -32
- package/lib/theme-files.d.ts.map +1 -1
- package/lib/theme-files.js +43 -27
- package/lib/theme-files.js.map +1 -1
- package/lib/theme-resolver.d.ts +3 -3
- package/lib/theme-resolver.d.ts.map +1 -1
- package/lib/theme-resolver.js +9 -6
- package/lib/theme-resolver.js.map +1 -1
- package/lib/theme-schema.d.ts +7 -42
- package/lib/theme-schema.d.ts.map +1 -1
- package/lib/theme-schema.js +9 -11
- package/lib/theme-schema.js.map +1 -1
- package/lib/theme-settings.d.ts +19 -10
- package/lib/theme-settings.d.ts.map +1 -1
- package/lib/theme-settings.js +23 -17
- package/lib/theme-settings.js.map +1 -1
- package/lib/theme-tokens.d.ts +6 -12
- package/lib/theme-tokens.d.ts.map +1 -1
- package/lib/theme-tokens.js +2 -2
- package/lib/theme-tokens.js.map +1 -1
- package/lib/theme.d.ts +5 -10
- package/lib/theme.d.ts.map +1 -1
- package/lib/theme.js +11 -18
- package/lib/theme.js.map +1 -1
- package/lib/todo-guard.d.ts +8 -4
- package/lib/todo-guard.d.ts.map +1 -1
- package/lib/todo-guard.js +17 -6
- package/lib/todo-guard.js.map +1 -1
- package/lib/tokens.d.ts +0 -2
- package/lib/tokens.d.ts.map +1 -1
- package/lib/tokens.js +1 -1
- package/lib/tokens.js.map +1 -1
- package/lib/tool-display.d.ts +1 -13
- package/lib/tool-display.d.ts.map +1 -1
- package/lib/tool-display.js +4 -4
- package/lib/tool-display.js.map +1 -1
- package/lib/transcript/message-content.d.ts.map +1 -1
- package/lib/transcript/message-content.js +31 -9
- package/lib/transcript/message-content.js.map +1 -1
- package/lib/transcript/tool-calls.d.ts +9 -7
- package/lib/transcript/tool-calls.d.ts.map +1 -1
- package/lib/transcript/tool-calls.js +27 -20
- package/lib/transcript/tool-calls.js.map +1 -1
- package/lib/transcript.d.ts +10 -18
- package/lib/transcript.d.ts.map +1 -1
- package/lib/transcript.js +40 -28
- package/lib/transcript.js.map +1 -1
- package/lib/ui/copy.d.ts +5 -4
- package/lib/ui/copy.d.ts.map +1 -1
- package/lib/ui/copy.js +9 -6
- package/lib/ui/copy.js.map +1 -1
- package/lib/ui/diff.d.ts +0 -30
- package/lib/ui/diff.d.ts.map +1 -1
- package/lib/ui/diff.js +16 -9
- package/lib/ui/diff.js.map +1 -1
- package/lib/ui/dock.d.ts +4 -10
- package/lib/ui/dock.d.ts.map +1 -1
- package/lib/ui/dock.js +10 -14
- package/lib/ui/dock.js.map +1 -1
- package/lib/ui/editor.d.ts +4 -3
- package/lib/ui/editor.d.ts.map +1 -1
- package/lib/ui/editor.js +2 -2
- package/lib/ui/editor.js.map +1 -1
- package/lib/ui/frame.d.ts +4 -12
- package/lib/ui/frame.d.ts.map +1 -1
- package/lib/ui/frame.js +6 -6
- package/lib/ui/frame.js.map +1 -1
- package/lib/ui/gap.d.ts +0 -4
- package/lib/ui/gap.d.ts.map +1 -1
- package/lib/ui/gap.js +4 -3
- package/lib/ui/gap.js.map +1 -1
- package/lib/ui/gate-input.d.ts +3 -3
- package/lib/ui/gate-input.d.ts.map +1 -1
- package/lib/ui/gate-input.js +9 -9
- package/lib/ui/gate-input.js.map +1 -1
- package/lib/ui/layout.d.ts +1 -8
- package/lib/ui/layout.d.ts.map +1 -1
- package/lib/ui/layout.js +5 -3
- package/lib/ui/layout.js.map +1 -1
- package/lib/ui/markdown.d.ts +3 -5
- package/lib/ui/markdown.d.ts.map +1 -1
- package/lib/ui/markdown.js +18 -7
- package/lib/ui/markdown.js.map +1 -1
- package/lib/ui/mermaid.d.ts +0 -11
- package/lib/ui/mermaid.d.ts.map +1 -1
- package/lib/ui/mermaid.js +32 -17
- package/lib/ui/mermaid.js.map +1 -1
- package/lib/ui/picker-card.d.ts +4 -8
- package/lib/ui/picker-card.d.ts.map +1 -1
- package/lib/ui/picker-card.js +17 -15
- package/lib/ui/picker-card.js.map +1 -1
- package/lib/ui/picker.d.ts +10 -17
- package/lib/ui/picker.d.ts.map +1 -1
- package/lib/ui/picker.js +14 -8
- package/lib/ui/picker.js.map +1 -1
- package/lib/ui/stash-picker.d.ts +1 -10
- package/lib/ui/stash-picker.d.ts.map +1 -1
- package/lib/ui/stash-picker.js +4 -4
- package/lib/ui/stash-picker.js.map +1 -1
- package/lib/ui/status.d.ts +2 -19
- package/lib/ui/status.d.ts.map +1 -1
- package/lib/ui/status.js +15 -17
- package/lib/ui/status.js.map +1 -1
- package/lib/ui/view/document.d.ts +4 -1
- package/lib/ui/view/document.d.ts.map +1 -1
- package/lib/ui/view/document.js +15 -6
- package/lib/ui/view/document.js.map +1 -1
- package/lib/ui/view/gate-card.d.ts +2 -0
- package/lib/ui/view/gate-card.d.ts.map +1 -1
- package/lib/ui/view/gate-card.js +12 -10
- package/lib/ui/view/gate-card.js.map +1 -1
- package/lib/ui/view/tool-card.d.ts +7 -4
- package/lib/ui/view/tool-card.d.ts.map +1 -1
- package/lib/ui/view/tool-card.js +12 -17
- package/lib/ui/view/tool-card.js.map +1 -1
- package/lib/ui/view/transcript-message.d.ts +7 -7
- package/lib/ui/view/transcript-message.d.ts.map +1 -1
- package/lib/ui/view/transcript-message.js +19 -10
- package/lib/ui/view/transcript-message.js.map +1 -1
- package/lib/ui/view.d.ts +8 -8
- package/lib/ui/view.d.ts.map +1 -1
- package/lib/ui/view.js +11 -13
- package/lib/ui/view.js.map +1 -1
- package/lib/work.d.ts +13 -10
- package/lib/work.d.ts.map +1 -1
- package/lib/work.js +30 -8
- package/lib/work.js.map +1 -1
- package/package.json +11 -7
- package/presets/cordis.patch.yml +1 -0
- package/presets/minimal.patch.yml +1 -0
- package/presets/ptc.patch.yml +1 -0
- package/presets/standard.patch.yml +1 -0
- package/themes/deepseek-blue.yaml +38 -51
- package/themes/marine-static.yaml +27 -35
- package/themes/pine-slope.yaml +13 -11
- package/themes/polar-drift.yaml +6 -0
- package/themes/violet-orbit.yaml +14 -18
- package/themes/wine-thicket.yaml +13 -13
package/lib/stash/store.js
CHANGED
|
@@ -16,7 +16,7 @@ import { assertSafeEntryId, assertSafeStashText, createEmptyStashFile, createNew
|
|
|
16
16
|
* A stash file larger than this is refused, never quarantined: hiding a
|
|
17
17
|
* legitimate bank because it grew past a cap would be worse than refusing it.
|
|
18
18
|
*/
|
|
19
|
-
|
|
19
|
+
const MAX_STASH_FILE_BYTES = 16_777_216;
|
|
20
20
|
const DUPLICATE_STASH_ID_MESSAGE = 'duplicate stash id';
|
|
21
21
|
const UNSUPPORTED_SCHEMA_GUIDANCE = 'Upgrade dsh-tui before using this stash, or move the stash file aside for safe recovery.';
|
|
22
22
|
const FILE_TOO_LARGE_MESSAGE = 'this session has no room left for another draft; drop one first';
|
|
@@ -27,7 +27,7 @@ const FILE_TOO_LARGE_MESSAGE = 'this session has no room left for another draft;
|
|
|
27
27
|
* past it is refused by every later read, so letting one save through would turn
|
|
28
28
|
* a full bank into an unreadable one.
|
|
29
29
|
*/
|
|
30
|
-
|
|
30
|
+
class StashFileTooLargeError extends Error {
|
|
31
31
|
bytes;
|
|
32
32
|
constructor(bytes) {
|
|
33
33
|
super(FILE_TOO_LARGE_MESSAGE);
|
|
@@ -39,11 +39,11 @@ export class StashFileTooLargeError extends Error {
|
|
|
39
39
|
export class UnsupportedStashSchemaError extends Error {
|
|
40
40
|
detectedVersion;
|
|
41
41
|
supportedVersion;
|
|
42
|
-
constructor(detectedVersion
|
|
43
|
-
super(`stash data uses version ${detectedVersion}; this build supports versions through ${
|
|
42
|
+
constructor(detectedVersion) {
|
|
43
|
+
super(`stash data uses version ${detectedVersion}; this build supports versions through ${STASH_SCHEMA_VERSION}. ${UNSUPPORTED_SCHEMA_GUIDANCE}`);
|
|
44
44
|
this.name = 'UnsupportedStashSchemaError';
|
|
45
45
|
this.detectedVersion = detectedVersion;
|
|
46
|
-
this.supportedVersion =
|
|
46
|
+
this.supportedVersion = STASH_SCHEMA_VERSION;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
export class StashStore {
|
|
@@ -51,12 +51,9 @@ export class StashStore {
|
|
|
51
51
|
corruptRecovery;
|
|
52
52
|
filePath;
|
|
53
53
|
paths;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
constructor(paths, loaded, now = Date.now, write = writeStashFile) {
|
|
54
|
+
/** Keep validation and mutation locking together so every draft uses the same persistence safeguards. */
|
|
55
|
+
constructor(paths, loaded) {
|
|
57
56
|
this.paths = paths;
|
|
58
|
-
this.now = now;
|
|
59
|
-
this.write = write;
|
|
60
57
|
this.file = loaded.kind === 'ready' ? loaded.file : createEmptyStashFile(paths.sessionId);
|
|
61
58
|
this.corruptRecovery =
|
|
62
59
|
loaded.kind === 'corrupt' && loaded.quarantinedTo !== undefined
|
|
@@ -70,36 +67,38 @@ export class StashStore {
|
|
|
70
67
|
get entryCount() {
|
|
71
68
|
return this.file.entries.length;
|
|
72
69
|
}
|
|
73
|
-
/**
|
|
70
|
+
/** Consume recovery notices so repeated UI synchronization does not announce the same quarantine again. */
|
|
74
71
|
takeQuarantine() {
|
|
75
72
|
const recovery = this.corruptRecovery;
|
|
76
73
|
this.corruptRecovery = undefined;
|
|
77
74
|
return recovery;
|
|
78
75
|
}
|
|
79
|
-
/** Resolve
|
|
76
|
+
/** Resolve the snapshot before editor restoration; subsequent removal must use the returned stable id. */
|
|
80
77
|
find(selector) {
|
|
81
78
|
return resolveBySelector(this.file.entries, selector);
|
|
82
79
|
}
|
|
80
|
+
// Loading may quarantine corrupt input, so reads need the same exclusive lock as writers.
|
|
83
81
|
async refresh() {
|
|
84
82
|
await withStashFileLock(this.filePath, () => this.reloadFresh());
|
|
85
83
|
}
|
|
86
84
|
async add(input) {
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
// Generated UUIDs need no caller-input validation; persisted identities remain validated on reload.
|
|
86
|
+
const id = createNewId();
|
|
89
87
|
assertSafeStashText(input.text);
|
|
90
88
|
// A draft is stored in the form it is safe to draw again, so no path back to
|
|
91
89
|
// the screen has to remember to strip it.
|
|
92
90
|
const text = sanitizeStashText(input.text);
|
|
93
91
|
return withStashMutationLock(this.filePath, async () => {
|
|
94
92
|
await this.reloadFresh();
|
|
93
|
+
// Strict parsing rejects duplicate ids; refuse them before a save makes the bank unreadable.
|
|
95
94
|
if (this.file.entries.some(entry => entry.id === id))
|
|
96
95
|
throw new Error(DUPLICATE_STASH_ID_MESSAGE);
|
|
97
|
-
const entry = { id, text, createdAt:
|
|
96
|
+
const entry = { id, text, createdAt: Date.now() };
|
|
98
97
|
const next = { ...this.file, entries: [entry, ...this.file.entries] };
|
|
99
98
|
return this.persistMutation(next, { entry, index: 0 });
|
|
100
99
|
});
|
|
101
100
|
}
|
|
102
|
-
/**
|
|
101
|
+
/** After pop restores the editor, target that exact draft even if concurrent additions changed its index. */
|
|
103
102
|
async removeById(id) {
|
|
104
103
|
assertSafeEntryId(id);
|
|
105
104
|
return withStashMutationLock(this.filePath, async () => {
|
|
@@ -131,8 +130,8 @@ export class StashStore {
|
|
|
131
130
|
async clear(ids) {
|
|
132
131
|
return withStashMutationLock(this.filePath, async () => {
|
|
133
132
|
await this.reloadFresh();
|
|
134
|
-
const confirmed =
|
|
135
|
-
const kept =
|
|
133
|
+
const confirmed = new Set(ids);
|
|
134
|
+
const kept = this.file.entries.filter(entry => !confirmed.has(entry.id));
|
|
136
135
|
const removed = this.file.entries.length - kept.length;
|
|
137
136
|
if (removed === 0)
|
|
138
137
|
return { didPersist: false, result: 0 };
|
|
@@ -152,7 +151,8 @@ export class StashStore {
|
|
|
152
151
|
return this.persistMutation(next, { entry: found, index });
|
|
153
152
|
}
|
|
154
153
|
async persistMutation(next, result) {
|
|
155
|
-
const outcome = await
|
|
154
|
+
const outcome = await writeStashFile(this.filePath, next);
|
|
155
|
+
// Replacement precedes the directory-sync warning; keep memory aligned with the landed write before reporting its result.
|
|
156
156
|
this.file = next;
|
|
157
157
|
if (outcome?.committed === true) {
|
|
158
158
|
throw new StashCommittedError(result, { phase: outcome.phase, error: outcome.error });
|
|
@@ -176,11 +176,12 @@ export class StashStore {
|
|
|
176
176
|
: { path: loaded.quarantinedTo, syncFailed: loaded.quarantineSyncFailed };
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
|
-
export async function loadStashStore(paths
|
|
179
|
+
export async function loadStashStore(paths) {
|
|
180
|
+
// Initial loading can quarantine a bank too; serialize that move with mutations.
|
|
180
181
|
const loaded = await withStashFileLock(paths.file, () => readCurrentStashFile(paths.file, paths.sessionId));
|
|
181
182
|
if (loaded.kind === 'unsupported')
|
|
182
183
|
throw new UnsupportedStashSchemaError(loaded.version);
|
|
183
|
-
return new StashStore(paths, loaded
|
|
184
|
+
return new StashStore(paths, loaded);
|
|
184
185
|
}
|
|
185
186
|
async function readCurrentStashFile(filePath, sessionId) {
|
|
186
187
|
let source;
|
|
@@ -216,7 +217,8 @@ async function quarantineCorrupt(filePath, identity) {
|
|
|
216
217
|
const quarantined = await quarantinePrivateFile(filePath, identity, `corrupt-${Date.now()}`);
|
|
217
218
|
return { kind: 'corrupt', quarantinedTo: quarantined.path, quarantineSyncFailed: quarantined.syncError !== undefined };
|
|
218
219
|
}
|
|
219
|
-
|
|
220
|
+
/** Preserve the replacement boundary with operation overrides: a later directory-sync failure warns about a landed write. */
|
|
221
|
+
async function writeStashFile(filePath, file) {
|
|
220
222
|
const directory = path.dirname(filePath);
|
|
221
223
|
await ensurePrivateDirectory(directory);
|
|
222
224
|
const tempPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
@@ -231,7 +233,7 @@ export async function writeStashFile(filePath, file, syncDirectory = syncDirecto
|
|
|
231
233
|
try {
|
|
232
234
|
await writePrivateFileExclusive(tempPath, data);
|
|
233
235
|
tempCreated = true;
|
|
234
|
-
await
|
|
236
|
+
await rename(tempPath, filePath);
|
|
235
237
|
tempCreated = false;
|
|
236
238
|
}
|
|
237
239
|
catch (error) {
|
|
@@ -243,7 +245,7 @@ export async function writeStashFile(filePath, file, syncDirectory = syncDirecto
|
|
|
243
245
|
// directories that name the storage itself were flushed when they were created,
|
|
244
246
|
// so this is the entry the save is actually responsible for.
|
|
245
247
|
try {
|
|
246
|
-
await
|
|
248
|
+
await syncDirectoryEntry(directory);
|
|
247
249
|
}
|
|
248
250
|
catch (error) {
|
|
249
251
|
return { committed: true, phase: 'directory-sync', error };
|
package/lib/stash/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/stash/store.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,iFAAiF;AACjF,wEAAwE;AACxE,gFAAgF;AAChF,iFAAiF;AACjF,8EAA8E;AAC9E,8EAA8E;AAC9E,iFAAiF;AAEjF,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GAGtB,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,sBAAsB,EACtB,YAAY,EAEZ,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/stash/store.ts"],"names":[],"mappings":"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"}
|
package/lib/stash.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type StashScope } from './stash/paths.ts';
|
|
2
2
|
import type { ResolvedEntry } from './stash/schema.ts';
|
|
3
|
-
import { type StashWriter } from './stash/store.ts';
|
|
4
3
|
/**
|
|
5
4
|
* Everything the stash needs from the surface.
|
|
6
5
|
*
|
|
@@ -36,12 +35,6 @@ export interface PromptStashOptions {
|
|
|
36
35
|
readonly sessionId: () => string;
|
|
37
36
|
/** Share a bank by absolute directory, or keep one bank per session. */
|
|
38
37
|
readonly scope?: StashScope | undefined;
|
|
39
|
-
/** Override the working directory captured at construction; tests avoid changing process cwd. */
|
|
40
|
-
readonly directory?: string | undefined;
|
|
41
|
-
/** Override the storage root; tests keep it inside a scratch directory. */
|
|
42
|
-
readonly baseDir?: string | undefined;
|
|
43
|
-
readonly now?: (() => number) | undefined;
|
|
44
|
-
readonly write?: StashWriter | undefined;
|
|
45
38
|
}
|
|
46
39
|
export declare class PromptStash {
|
|
47
40
|
private readonly host;
|
|
@@ -49,8 +42,6 @@ export declare class PromptStash {
|
|
|
49
42
|
private readonly baseDir;
|
|
50
43
|
private readonly bankScope;
|
|
51
44
|
private readonly directory;
|
|
52
|
-
private readonly now;
|
|
53
|
-
private readonly write;
|
|
54
45
|
private store;
|
|
55
46
|
/** Bank identity prevents a session switch from showing another bank's count. */
|
|
56
47
|
private scope;
|
|
@@ -76,11 +67,11 @@ export declare class PromptStash {
|
|
|
76
67
|
* chord, or a bare `/stash` — parks whatever the bar is holding.
|
|
77
68
|
*/
|
|
78
69
|
stashEditor(typed?: string): Promise<void>;
|
|
79
|
-
/**
|
|
70
|
+
/** Keep a parked copy available for reuse. */
|
|
80
71
|
apply(selector: string | undefined): Promise<void>;
|
|
81
72
|
/** Put a draft in an empty editor and remove it from the bank. */
|
|
82
73
|
pop(selector: string | undefined): Promise<void>;
|
|
83
|
-
/**
|
|
74
|
+
/** Picker selection takes a parked draft back for editing; /stash-apply keeps a copy for reuse instead. */
|
|
84
75
|
list(sessionLabel: string): Promise<void>;
|
|
85
76
|
/** Delete one draft without using it. */
|
|
86
77
|
drop(selector: string | undefined): Promise<void>;
|
|
@@ -93,6 +84,7 @@ export declare class PromptStash {
|
|
|
93
84
|
* leaves the draft in the bank rather than only in a terminal that is gone.
|
|
94
85
|
*/
|
|
95
86
|
private popFrom;
|
|
87
|
+
/** Restoring a parked prompt must not destroy the unsent draft already in the bar. */
|
|
96
88
|
private editorIsReady;
|
|
97
89
|
/**
|
|
98
90
|
* Whether the bar is the reader's to write in.
|
|
@@ -112,6 +104,10 @@ export declare class PromptStash {
|
|
|
112
104
|
private ensure;
|
|
113
105
|
private sessionChangedMessage;
|
|
114
106
|
private bankId;
|
|
107
|
+
/**
|
|
108
|
+
* Fire-and-forget command callers need failures reported on the surface.
|
|
109
|
+
* Even a failed command can change the bank or quarantine data, so its final state must reach the footer.
|
|
110
|
+
*/
|
|
115
111
|
private run;
|
|
116
112
|
/** Whether the surface still shows the session a command was issued in. */
|
|
117
113
|
private isCurrentSession;
|
package/lib/stash.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"AAWA,OAAO,EAAwD,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"AAWA,OAAO,EAAwD,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AA6BtD;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,2EAA2E;IAC3E,aAAa,IAAI,MAAM,CAAA;IACvB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,8DAA8D;IAC9D,iBAAiB,IAAI,OAAO,CAAA;IAC5B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,4EAA4E;IAC5E,IAAI,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IACvF,yDAAyD;IACzD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,IAAI,IAAI,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;OAQG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,CAAA;IAChC,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;CACxC;AAWD,qBAAa,WAAW;IAYpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZ1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,KAAK,CAAwB;IACrC,iFAAiF;IACjF,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,KAAK,CAAI;IACjB,2EAA2E;IAC3E,OAAO,CAAC,IAAI,CAAmC;gBAG5B,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,kBAAkB;IAQ9C,2DAA2D;IAC3D,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrB;;;;;;;;;OASG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0C1C,8CAA8C;IAC9C,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlD,kEAAkE;IAClE,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD,2GAA2G;IAC3G,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBzC,yCAAyC;IACzC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBjD,+DAA+D;IAC/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BtB;;;;;OAKG;YACW,OAAO;IAqBrB,sFAAsF;IACtF,OAAO,CAAC,aAAa;IAOrB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,cAAc;IAOtB;;;;;OAKG;YACW,MAAM;IAUpB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,MAAM;IAId;;;OAGG;IACH,OAAO,CAAC,GAAG;IAYX,2EAA2E;IAC3E,OAAO,CAAC,gBAAgB;IAIxB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,OAAO;IAOf,yEAAyE;IACzE,OAAO,CAAC,IAAI;CAYb"}
|
package/lib/stash.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// User-facing prompt-stash operations, independent of the terminal surface.
|
|
2
2
|
//
|
|
3
|
-
// Every command funnels through one serial queue, so a chord
|
|
4
|
-
//
|
|
3
|
+
// Every command in this instance funnels through one serial queue, so a chord
|
|
4
|
+
// and a typed command cannot interleave their bank operations. The surface is
|
|
5
5
|
// reached through a small host seam, which keeps these operations testable
|
|
6
6
|
// without a terminal and keeps the editor's own text rules — an expanded paste
|
|
7
7
|
// and an empty bar — in exactly one place.
|
|
@@ -28,6 +28,8 @@ const committedMessage = (error, done) => error.releaseFailure === undefined
|
|
|
28
28
|
? `${done}, but the ${error.failure.phase} step failed`
|
|
29
29
|
: `${done}, but the ${error.failure.phase} and ${error.releaseFailure.phase} steps failed`;
|
|
30
30
|
const removalFailedMessage = (error, done) => `${done}, but removing the entry failed: ${error instanceof Error ? error.message : 'unknown error'}`;
|
|
31
|
+
// Newer-format and oversized banks are refused in place, not treated as corrupt.
|
|
32
|
+
// Mark them unavailable to distinguish an unreadable bank from other command failures.
|
|
31
33
|
function describeFailure(error) {
|
|
32
34
|
const detail = error instanceof Error ? error.message : 'unknown error';
|
|
33
35
|
return error instanceof UnsupportedStashSchemaError || error instanceof FileTooLargeError
|
|
@@ -40,8 +42,6 @@ export class PromptStash {
|
|
|
40
42
|
baseDir;
|
|
41
43
|
bankScope;
|
|
42
44
|
directory;
|
|
43
|
-
now;
|
|
44
|
-
write;
|
|
45
45
|
store;
|
|
46
46
|
/** Bank identity prevents a session switch from showing another bank's count. */
|
|
47
47
|
scope;
|
|
@@ -51,11 +51,10 @@ export class PromptStash {
|
|
|
51
51
|
constructor(host, options) {
|
|
52
52
|
this.host = host;
|
|
53
53
|
this.options = options;
|
|
54
|
-
this.baseDir =
|
|
54
|
+
this.baseDir = stashBaseDir();
|
|
55
55
|
this.bankScope = options.scope ?? DEFAULT_STASH_SCOPE;
|
|
56
|
-
|
|
57
|
-
this.
|
|
58
|
-
this.write = options.write;
|
|
56
|
+
// Path-scoped drafts belong to the startup directory, even when the surface changes sessions.
|
|
57
|
+
this.directory = path.resolve(process.cwd());
|
|
59
58
|
}
|
|
60
59
|
/** How many drafts the active bank holds, as last read. */
|
|
61
60
|
get entryCount() {
|
|
@@ -131,7 +130,7 @@ export class PromptStash {
|
|
|
131
130
|
this.host.notice(current ? (warning ?? stashedMessage(resolved.index)) : this.sessionChangedMessage());
|
|
132
131
|
});
|
|
133
132
|
}
|
|
134
|
-
/**
|
|
133
|
+
/** Keep a parked copy available for reuse. */
|
|
135
134
|
apply(selector) {
|
|
136
135
|
const sessionId = this.options.sessionId();
|
|
137
136
|
return this.run(sessionId, async (store) => {
|
|
@@ -159,7 +158,7 @@ export class PromptStash {
|
|
|
159
158
|
await this.popFrom(store, sessionId, selector);
|
|
160
159
|
});
|
|
161
160
|
}
|
|
162
|
-
/**
|
|
161
|
+
/** Picker selection takes a parked draft back for editing; /stash-apply keeps a copy for reuse instead. */
|
|
163
162
|
list(sessionLabel) {
|
|
164
163
|
const sessionId = this.options.sessionId();
|
|
165
164
|
return this.run(sessionId, async (store) => {
|
|
@@ -191,6 +190,7 @@ export class PromptStash {
|
|
|
191
190
|
catch (error) {
|
|
192
191
|
if (!(error instanceof StashCommittedError))
|
|
193
192
|
throw error;
|
|
193
|
+
// The deletion committed; implying the draft remains would mislead the reader into retrying.
|
|
194
194
|
resolved = error.result;
|
|
195
195
|
if (resolved === undefined)
|
|
196
196
|
return;
|
|
@@ -229,6 +229,7 @@ export class PromptStash {
|
|
|
229
229
|
catch (error) {
|
|
230
230
|
if (!(error instanceof StashCommittedError))
|
|
231
231
|
throw error;
|
|
232
|
+
// The confirmed deletions committed; a later failure does not restore those drafts.
|
|
232
233
|
removed = error.result;
|
|
233
234
|
warning = committedMessage(error, clearedMessage(removed));
|
|
234
235
|
}
|
|
@@ -264,6 +265,7 @@ export class PromptStash {
|
|
|
264
265
|
this.host.notice(removalFailedMessage(error, poppedMessage(resolved.index)));
|
|
265
266
|
}
|
|
266
267
|
}
|
|
268
|
+
/** Restoring a parked prompt must not destroy the unsent draft already in the bar. */
|
|
267
269
|
editorIsReady() {
|
|
268
270
|
if (!this.editorIsAvailable())
|
|
269
271
|
return false;
|
|
@@ -302,7 +304,7 @@ export class PromptStash {
|
|
|
302
304
|
if (this.store !== undefined && this.scope === bankId)
|
|
303
305
|
return this.store;
|
|
304
306
|
const owner = this.bankScope === 'path' ? this.directory : sessionId;
|
|
305
|
-
const store = await loadStashStore(resolveStashPaths(owner, this.baseDir, this.bankScope)
|
|
307
|
+
const store = await loadStashStore(resolveStashPaths(owner, this.baseDir, this.bankScope));
|
|
306
308
|
this.store = store;
|
|
307
309
|
this.scope = bankId;
|
|
308
310
|
return store;
|
|
@@ -313,6 +315,10 @@ export class PromptStash {
|
|
|
313
315
|
bankId(sessionId) {
|
|
314
316
|
return `${this.bankScope}:${this.bankScope === 'path' ? this.directory : sessionId}`;
|
|
315
317
|
}
|
|
318
|
+
/**
|
|
319
|
+
* Fire-and-forget command callers need failures reported on the surface.
|
|
320
|
+
* Even a failed command can change the bank or quarantine data, so its final state must reach the footer.
|
|
321
|
+
*/
|
|
316
322
|
run(sessionId, operation) {
|
|
317
323
|
return this.enqueue(async () => {
|
|
318
324
|
try {
|
|
@@ -344,6 +350,7 @@ export class PromptStash {
|
|
|
344
350
|
}
|
|
345
351
|
enqueue(operation) {
|
|
346
352
|
const run = this.tail.then(operation, operation);
|
|
353
|
+
// A failed command must not leave the queue in a rejected state; its caller still receives its own failure.
|
|
347
354
|
this.tail = run.catch(() => undefined);
|
|
348
355
|
return run;
|
|
349
356
|
}
|
package/lib/stash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,EAAE;AACF,iFAAiF;AACjF,4EAA4E;AAC5E,2EAA2E;AAC3E,+EAA+E;AAC/E,2CAA2C;AAE3C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,YAAY,EAAmB,MAAM,kBAAkB,CAAA;AAExG,OAAO,EACL,cAAc,EACd,2BAA2B,GAG5B,MAAM,kBAAkB,CAAA;AAEzB,MAAM,sBAAsB,GAAG,6DAA6D,CAAA;AAC5F,MAAM,mBAAmB,GAAG,mEAAmE,CAAA;AAC/F,MAAM,wBAAwB,GAAG,kBAAkB,CAAA;AACnD,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;AAC7C,MAAM,wBAAwB,GAAG,uCAAuC,CAAA;AACxE,MAAM,iCAAiC,GAAG,2EAA2E,CAAA;AACrH,MAAM,uBAAuB,GAAG,uEAAuE,CAAA;AACvG,MAAM,4BAA4B,GAAG,yEAAyE,CAAA;AAE9G,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,YAAY,KAAK,GAAG,CAAA;AACtE,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,YAAY,KAAK,GAAG,CAAA;AACtE,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,WAAW,KAAK,GAAG,CAAA;AACpE,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,YAAY,KAAK,GAAG,CAAA;AACtE,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,WAAW,KAAK,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;AACnG,MAAM,sBAAsB,GAAG,CAAC,QAAgB,EAAU,EAAE,CAAC,sBAAsB,QAAQ,GAAG,CAAA;AAC9F,MAAM,gBAAgB,GAAG,CAAC,KAA0B,EAAE,IAAY,EAAU,EAAE,CAC5E,KAAK,CAAC,cAAc,KAAK,SAAS;IAChC,CAAC,CAAC,GAAG,IAAI,aAAa,KAAK,CAAC,OAAO,CAAC,KAAK,cAAc;IACvD,CAAC,CAAC,GAAG,IAAI,aAAa,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,eAAe,CAAA;AAC9F,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAE,IAAY,EAAU,EAAE,CACpE,GAAG,IAAI,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAA;AA8CvG,SAAS,eAAe,CAAC,KAAc;IACrC,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAA;IACvE,OAAO,KAAK,YAAY,2BAA2B,IAAI,KAAK,YAAY,iBAAiB;QACvF,CAAC,CAAC,sBAAsB,MAAM,EAAE;QAChC,CAAC,CAAC,iBAAiB,MAAM,EAAE,CAAA;AAC/B,CAAC;AAED,MAAM,OAAO,WAAW;IAcH;IACA;IAdF,OAAO,CAAQ;IACf,SAAS,CAAY;IACrB,SAAS,CAAQ;IACjB,GAAG,CAA4B;IAC/B,KAAK,CAAyB;IACvC,KAAK,CAAwB;IACrC,iFAAiF;IACzE,KAAK,CAAoB;IACzB,KAAK,GAAG,CAAC,CAAA;IACjB,2EAA2E;IACnE,IAAI,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAA;IAE/C,YACmB,IAAe,EACf,OAA2B;QAD3B,SAAI,GAAJ,IAAI,CAAW;QACf,YAAO,GAAP,OAAO,CAAoB;QAE5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY,EAAE,CAAA;QAChD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,mBAAmB,CAAA;QACrD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACjE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACtB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAC5B,CAAC;IAED,2DAA2D;IAC3D,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC;gBACH,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;YAC/D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;YAC1C,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,WAAW,CAAC,KAAc;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;QAC1C,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;QACxD,uEAAuE;QACvE,yEAAyE;QACzE,6CAA6C;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAC/C,IAAI,KAAK,IAAI,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACtD,0EAA0E;QAC1E,0EAA0E;QAC1E,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,KAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAChG,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACvC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;gBACrC,OAAM;YACR,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,CAAA;YACrB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;gBAC1C,OAAM;YACR,CAAC;YACD,IAAI,QAAuB,CAAA;YAC3B,IAAI,OAA2B,CAAA;YAC/B,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,mBAAmB,CAAC;oBAAE,MAAM,KAAK,CAAA;gBACxD,wEAAwE;gBACxE,yEAAyE;gBACzE,QAAQ,GAAG,KAAK,CAAC,MAAuB,CAAA;gBACxC,OAAO,GAAG,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;YACnE,CAAC;YACD,0EAA0E;YAC1E,uEAAuE;YACvE,qEAAqE;YACrE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;YAChD,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;YAC/G,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAA;QACxG,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,QAA4B;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACvC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAA;YACrB,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBAAE,OAAM;YAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBAAE,OAAM;YACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACrC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;gBAC/C,OAAM;YACR,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,kEAAkE;IAClE,GAAG,CAAC,QAA4B;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACvC,2EAA2E;YAC3E,+DAA+D;YAC/D,MAAM,KAAK,CAAC,OAAO,EAAE,CAAA;YACrB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,uDAAuD;IACvD,IAAI,CAAC,YAAoB;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACvC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAA;YACrB,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBAAE,OAAM;YAC1C,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;gBACnC,OAAM;YACR,CAAC;YACD,yEAAyE;YACzE,mEAAmE;YACnE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YACpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;YACpG,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAM;YAChC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,yCAAyC;IACzC,IAAI,CAAC,QAA4B;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACvC,IAAI,QAAmC,CAAA;YACvC,IAAI,OAA2B,CAAA;YAC/B,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACvC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,mBAAmB,CAAC;oBAAE,MAAM,KAAK,CAAA;gBACxD,QAAQ,GAAG,KAAK,CAAC,MAAmC,CAAA;gBACpD,IAAI,QAAQ,KAAK,SAAS;oBAAE,OAAM;gBAClC,OAAO,GAAG,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;YACnE,CAAC;YACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;gBAC/C,OAAM;YACR,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,+DAA+D;IAC/D,KAAK;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACvC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAA;YACrB,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;gBAAE,OAAM;YAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAA;YAC9B,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;gBACnC,OAAM;YACR,CAAC;YACD,wEAAwE;YACxE,0EAA0E;YAC1E,mDAAmD;YACnD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACzD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAAE,OAAM;YAC3D,IAAI,OAAO,GAAG,YAAY,CAAC,MAAM,CAAA;YACjC,IAAI,OAA2B,CAAA;YAC/B,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,mBAAmB,CAAC;oBAAE,MAAM,KAAK,CAAA;gBACxD,OAAO,GAAG,KAAK,CAAC,MAAgB,CAAA;gBAChC,OAAO,GAAG,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;YAC5D,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;QACtD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,OAAO,CAAC,KAAiB,EAAE,SAAiB,EAAE,QAA4B;QACtF,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;YAAE,OAAM;QAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAAE,OAAM;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACrC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC/C,OAAM;QACR,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACzD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;gBACzC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBACxE,OAAM;YACR,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC9E,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAAE,OAAO,KAAK,CAAA;QAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,IAAI,CAAA;QACxD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAA;QACxC,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;;OAMG;IACK,iBAAiB;QACvB,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAAE,OAAO,IAAI,CAAA;QAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;QACrC,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,cAAc,CAAC,QAA4B;QACjD,MAAM,OAAO,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAA;QAChC,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE;YAC5C,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,MAAM,CAAC,SAAiB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACrC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC,KAAK,CAAA;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;QACpE,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAChH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;QACnB,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,qBAAqB;QAC3B,OAAO,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,uBAAuB,CAAA;IAC3F,CAAC;IAEO,MAAM,CAAC,SAAiB;QAC9B,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;IACtF,CAAC;IAEO,GAAG,CAAC,SAAiB,EAAE,SAA+C;QAC5E,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;YAC/C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;YAC1C,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,IAAI,EAAE,CAAA;YACb,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,2EAA2E;IACnE,gBAAgB,CAAC,SAAiB;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,SAAS,CAAA;IAC/C,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,SAAiB;QACtC,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;YAAE,OAAO,KAAK,CAAA;QAClD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,OAAO,CAAC,SAA8B;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAChD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QACtC,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,yEAAyE;IACjE,IAAI;QACV,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,uEAAuE;YACvE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7F,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAA;YAC9C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,EAAE,CAAA;gBACjF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,wBAAwB,IAAI,UAAU,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC,CAAA;YACjF,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;IACpB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"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"}
|
package/lib/subagents.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
-
/**
|
|
2
|
+
/** Keep lifecycle identity available for both the live dock and later transcript navigation. */
|
|
3
3
|
export interface SubagentRun {
|
|
4
4
|
readonly runId: string;
|
|
5
5
|
readonly provider: string;
|
|
6
6
|
readonly id: string;
|
|
7
7
|
readonly label?: string;
|
|
8
|
-
readonly startedAt: number;
|
|
8
|
+
readonly startedAt: number | undefined;
|
|
9
9
|
readonly status: 'running' | 'completed' | 'failed';
|
|
10
10
|
readonly stopReason?: string;
|
|
11
11
|
readonly finishedAt?: number;
|
|
12
12
|
}
|
|
13
|
-
/**
|
|
13
|
+
/** Bound the collapsed dock height; expansion keeps additional live children accessible. */
|
|
14
14
|
export declare const DOCK_SUBAGENT_LIMIT = 3;
|
|
15
15
|
/**
|
|
16
16
|
* Track the delegations of one session.
|
|
@@ -20,25 +20,25 @@ export declare const DOCK_SUBAGENT_LIMIT = 3;
|
|
|
20
20
|
* live state, so a resumed run starts empty even when its catalog is durable.
|
|
21
21
|
*/
|
|
22
22
|
export declare class SubagentRoster {
|
|
23
|
-
private readonly now;
|
|
24
23
|
private readonly runs;
|
|
25
24
|
private readonly labels;
|
|
26
|
-
constructor(now?: () => number);
|
|
27
25
|
/** Catalog entries precede starts normally; keep them for either event order. */
|
|
28
26
|
catalog(info: unknown): void;
|
|
29
27
|
/** Record a started run; an unknown shape is ignored rather than guessed at. */
|
|
30
28
|
start(info: unknown): void;
|
|
31
|
-
/**
|
|
29
|
+
/** Retain end-only runs without inventing execution time that this process never observed. */
|
|
32
30
|
end(info: unknown): void;
|
|
31
|
+
/** Keep recent delegations first so collapsed dock rows show the newest work. */
|
|
33
32
|
list(): readonly SubagentRun[];
|
|
33
|
+
/** Separate work still needing attention from the settled history available through /subagents. */
|
|
34
34
|
running(): readonly SubagentRun[];
|
|
35
35
|
reset(): void;
|
|
36
36
|
}
|
|
37
|
-
/**
|
|
37
|
+
/** Expose provider and live age or settled duration without requiring a visit to each child transcript. */
|
|
38
38
|
export declare function describeSubagent(run: SubagentRun, now: number): string;
|
|
39
|
-
/**
|
|
39
|
+
/** Keep settled delegations inspectable through /subagents after they leave the live dock. */
|
|
40
40
|
export declare function describeSubagents(runs: readonly SubagentRun[], now: number): string;
|
|
41
|
-
/**
|
|
41
|
+
/** Separate reader actions from lifecycle state so parsing does not require a live roster. */
|
|
42
42
|
export type SubagentsCommand = {
|
|
43
43
|
readonly kind: 'list';
|
|
44
44
|
} | {
|
package/lib/subagents.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagents.d.ts","sourceRoot":"","sources":["../src/subagents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD,
|
|
1
|
+
{"version":3,"file":"subagents.d.ts","sourceRoot":"","sources":["../src/subagents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD,gGAAgG;AAChG,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;IACnD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAkBpC;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiC;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IAEnD,iFAAiF;IACjF,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAa5B,gFAAgF;IAChF,KAAK,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAgB1B,8FAA8F;IAC9F,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAoBxB,iFAAiF;IACjF,IAAI,IAAI,SAAS,WAAW,EAAE;IAI9B,mGAAmG;IACnG,OAAO,IAAI,SAAS,WAAW,EAAE;IAIjC,KAAK,IAAI,IAAI;CAId;AAED,2GAA2G;AAC3G,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKtE;AAED,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKnF;AAED,8FAA8F;AAC9F,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAKzD,yFAAyF;AACzF,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CASzE;AAKD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAapG;AAOD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,CAW7F"}
|
package/lib/subagents.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { describeDuration } from "./jobs.js";
|
|
2
2
|
import { stripControlCharacters } from "./text.js";
|
|
3
|
-
/**
|
|
3
|
+
/** Bound the collapsed dock height; expansion keeps additional live children accessible. */
|
|
4
4
|
export const DOCK_SUBAGENT_LIMIT = 3;
|
|
5
|
-
/**
|
|
5
|
+
/** Keep child rows compact; truncation is not a terminal-safety boundary. */
|
|
6
6
|
const SHORT_ID_LENGTH = 8;
|
|
7
7
|
/** Maximum task words the dock can show without hiding child status. */
|
|
8
8
|
const MAX_TASK_WORDS = 10;
|
|
9
|
+
/** Service-event payloads are unknown; field checks must precede trusting lifecycle identifiers. */
|
|
9
10
|
function asRecord(value) {
|
|
10
11
|
return typeof value === 'object' && value !== null ? value : undefined;
|
|
11
12
|
}
|
|
12
|
-
/**
|
|
13
|
+
/** Use compact IDs for display only; shared prefixes need not identify a unique child. */
|
|
13
14
|
function shortId(id) {
|
|
14
15
|
return id.length <= SHORT_ID_LENGTH ? id : id.slice(0, SHORT_ID_LENGTH);
|
|
15
16
|
}
|
|
@@ -21,12 +22,8 @@ function shortId(id) {
|
|
|
21
22
|
* live state, so a resumed run starts empty even when its catalog is durable.
|
|
22
23
|
*/
|
|
23
24
|
export class SubagentRoster {
|
|
24
|
-
now;
|
|
25
25
|
runs = new Map();
|
|
26
26
|
labels = new Map();
|
|
27
|
-
constructor(now = () => Date.now()) {
|
|
28
|
-
this.now = now;
|
|
29
|
-
}
|
|
30
27
|
/** Catalog entries precede starts normally; keep them for either event order. */
|
|
31
28
|
catalog(info) {
|
|
32
29
|
const record = asRecord(info);
|
|
@@ -48,7 +45,7 @@ export class SubagentRoster {
|
|
|
48
45
|
const record = asRecord(info);
|
|
49
46
|
const runId = record?.runId;
|
|
50
47
|
const id = record?.id;
|
|
51
|
-
if (typeof runId !== 'string' || typeof id !== 'string')
|
|
48
|
+
if (typeof runId !== 'string' || typeof id !== 'string' || this.runs.has(runId))
|
|
52
49
|
return;
|
|
53
50
|
const label = this.labels.get(id);
|
|
54
51
|
this.runs.set(runId, {
|
|
@@ -56,11 +53,11 @@ export class SubagentRoster {
|
|
|
56
53
|
id,
|
|
57
54
|
...(label === undefined ? {} : { label }),
|
|
58
55
|
provider: typeof record?.provider === 'string' ? record.provider : 'subagent',
|
|
59
|
-
startedAt:
|
|
56
|
+
startedAt: Date.now(),
|
|
60
57
|
status: 'running',
|
|
61
58
|
});
|
|
62
59
|
}
|
|
63
|
-
/**
|
|
60
|
+
/** Retain end-only runs without inventing execution time that this process never observed. */
|
|
64
61
|
end(info) {
|
|
65
62
|
const record = asRecord(info);
|
|
66
63
|
const runId = record?.runId;
|
|
@@ -73,15 +70,19 @@ export class SubagentRoster {
|
|
|
73
70
|
id: typeof record?.id === 'string' ? record.id : existing?.id ?? runId,
|
|
74
71
|
...(existing?.label === undefined ? {} : { label: existing.label }),
|
|
75
72
|
provider: typeof record?.provider === 'string' ? record.provider : existing?.provider ?? 'subagent',
|
|
76
|
-
startedAt: existing?.startedAt
|
|
73
|
+
startedAt: existing?.startedAt,
|
|
74
|
+
// Keep abnormal stops visible in /subagents instead of presenting them as ordinary completion.
|
|
75
|
+
// This display classification does not prove success when the event omits its reason.
|
|
77
76
|
status: stopReason === undefined || stopReason === 'completed' ? 'completed' : 'failed',
|
|
78
77
|
...(stopReason === undefined ? {} : { stopReason }),
|
|
79
|
-
finishedAt:
|
|
78
|
+
finishedAt: existing?.finishedAt ?? Date.now(),
|
|
80
79
|
});
|
|
81
80
|
}
|
|
81
|
+
/** Keep recent delegations first so collapsed dock rows show the newest work. */
|
|
82
82
|
list() {
|
|
83
|
-
return [...this.runs.values()].sort((left, right) => right.startedAt - left.startedAt);
|
|
83
|
+
return [...this.runs.values()].sort((left, right) => (right.startedAt ?? 0) - (left.startedAt ?? 0));
|
|
84
84
|
}
|
|
85
|
+
/** Separate work still needing attention from the settled history available through /subagents. */
|
|
85
86
|
running() {
|
|
86
87
|
return this.list().filter(run => run.status === 'running');
|
|
87
88
|
}
|
|
@@ -90,14 +91,14 @@ export class SubagentRoster {
|
|
|
90
91
|
this.labels.clear();
|
|
91
92
|
}
|
|
92
93
|
}
|
|
93
|
-
/**
|
|
94
|
+
/** Expose provider and live age or settled duration without requiring a visit to each child transcript. */
|
|
94
95
|
export function describeSubagent(run, now) {
|
|
95
96
|
const age = run.status === 'running'
|
|
96
|
-
? `running ${describeDuration(now - run.startedAt)}`
|
|
97
|
-
: `${run.status}${run.stopReason === undefined || run.stopReason === 'completed' ? '' : ` (${run.stopReason})`} ${
|
|
97
|
+
? `running ${describeDuration(run.startedAt === undefined ? Number.NaN : now - run.startedAt)}`
|
|
98
|
+
: `${run.status}${run.stopReason === undefined || run.stopReason === 'completed' ? '' : ` (${run.stopReason})`} ${run.startedAt === undefined || run.finishedAt === undefined ? 'duration unknown' : describeDuration(run.finishedAt - run.startedAt)}`;
|
|
98
99
|
return `${shortId(run.id)}${run.label === undefined ? '' : ` · ${run.label}`} · ${run.provider} · ${age}`;
|
|
99
100
|
}
|
|
100
|
-
/**
|
|
101
|
+
/** Keep settled delegations inspectable through /subagents after they leave the live dock. */
|
|
101
102
|
export function describeSubagents(runs, now) {
|
|
102
103
|
if (runs.length === 0)
|
|
103
104
|
return 'no subagents have run in this session';
|
|
@@ -133,7 +134,7 @@ export function resolveRun(runs, idOrPrefix) {
|
|
|
133
134
|
// The roster happens to hand these over newest first; picking by time keeps
|
|
134
135
|
// the shortcut honest even if a caller ever hands them over differently.
|
|
135
136
|
if (idOrPrefix === LAST_RUN) {
|
|
136
|
-
return runs.reduce((newest, run) => newest === undefined || run.startedAt > newest.startedAt ? run : newest, undefined);
|
|
137
|
+
return runs.reduce((newest, run) => newest === undefined || (run.startedAt ?? 0) > (newest.startedAt ?? 0) ? run : newest, undefined);
|
|
137
138
|
}
|
|
138
139
|
const exact = runs.find(run => run.id === idOrPrefix);
|
|
139
140
|
if (exact !== undefined)
|