@pentoshi/clai 2.0.62 → 3.5.1
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/README.md +262 -368
- package/dist/agent/classic-renderer.js +9 -1
- package/dist/agent/classic-renderer.js.map +1 -1
- package/dist/agent/context-manager.d.ts +5 -0
- package/dist/agent/context-manager.js +14 -2
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/events.d.ts +9 -1
- package/dist/agent/plan-tool.js +80 -8
- package/dist/agent/plan-tool.js.map +1 -1
- package/dist/agent/runner.js +261 -122
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/tool-call-parser.d.ts +20 -0
- package/dist/agent/tool-call-parser.js +186 -2
- package/dist/agent/tool-call-parser.js.map +1 -1
- package/dist/app/adapters/agent-event-adapter.d.ts +29 -0
- package/dist/app/adapters/agent-event-adapter.js +148 -0
- package/dist/app/adapters/agent-event-adapter.js.map +1 -0
- package/dist/app/adapters/current-agent-adapter.d.ts +7 -0
- package/dist/app/adapters/current-agent-adapter.js +27 -0
- package/dist/app/adapters/current-agent-adapter.js.map +1 -0
- package/dist/app/adapters/current-jobs-adapter.d.ts +4 -0
- package/dist/app/adapters/current-jobs-adapter.js +13 -0
- package/dist/app/adapters/current-jobs-adapter.js.map +1 -0
- package/dist/app/adapters/current-store-adapter.d.ts +3 -0
- package/dist/app/adapters/current-store-adapter.js +22 -0
- package/dist/app/adapters/current-store-adapter.js.map +1 -0
- package/dist/app/adapters/current-terminal-adapter.d.ts +9 -0
- package/dist/app/adapters/current-terminal-adapter.js +31 -0
- package/dist/app/adapters/current-terminal-adapter.js.map +1 -0
- package/dist/app/adapters/current-updates-adapter.d.ts +7 -0
- package/dist/app/adapters/current-updates-adapter.js +31 -0
- package/dist/app/adapters/current-updates-adapter.js.map +1 -0
- package/dist/app/adapters/in-memory-clipboard-adapter.d.ts +10 -0
- package/dist/app/adapters/in-memory-clipboard-adapter.js +20 -0
- package/dist/app/adapters/in-memory-clipboard-adapter.js.map +1 -0
- package/dist/app/commands/command.d.ts +24 -0
- package/dist/app/commands/command.js +4 -0
- package/dist/app/commands/command.js.map +1 -0
- package/dist/app/commands/registry.d.ts +45 -0
- package/dist/app/commands/registry.js +164 -0
- package/dist/app/commands/registry.js.map +1 -0
- package/dist/app/controllers/disposable.d.ts +15 -0
- package/dist/app/controllers/disposable.js +38 -0
- package/dist/app/controllers/disposable.js.map +1 -0
- package/dist/app/controllers/job-controller.d.ts +22 -0
- package/dist/app/controllers/job-controller.js +35 -0
- package/dist/app/controllers/job-controller.js.map +1 -0
- package/dist/app/controllers/plan-controller.d.ts +31 -0
- package/dist/app/controllers/plan-controller.js +69 -0
- package/dist/app/controllers/plan-controller.js.map +1 -0
- package/dist/app/controllers/session-controller.d.ts +167 -0
- package/dist/app/controllers/session-controller.js +467 -0
- package/dist/app/controllers/session-controller.js.map +1 -0
- package/dist/app/controllers/turn-controller.d.ts +52 -0
- package/dist/app/controllers/turn-controller.js +118 -0
- package/dist/app/controllers/turn-controller.js.map +1 -0
- package/dist/app/events/app-event.d.ts +122 -0
- package/dist/app/events/app-event.js +25 -0
- package/dist/app/events/app-event.js.map +1 -0
- package/dist/app/events/event-buffer.d.ts +51 -0
- package/dist/app/events/event-buffer.js +109 -0
- package/dist/app/events/event-buffer.js.map +1 -0
- package/dist/app/events/sequencer.d.ts +32 -0
- package/dist/app/events/sequencer.js +55 -0
- package/dist/app/events/sequencer.js.map +1 -0
- package/dist/app/ports/agent-port.d.ts +29 -0
- package/dist/app/ports/agent-port.js +2 -0
- package/dist/app/ports/agent-port.js.map +1 -0
- package/dist/app/ports/clipboard-port.d.ts +9 -0
- package/dist/app/ports/clipboard-port.js +2 -0
- package/dist/app/ports/clipboard-port.js.map +1 -0
- package/dist/app/ports/confirm-port.d.ts +17 -0
- package/dist/app/ports/confirm-port.js +2 -0
- package/dist/app/ports/confirm-port.js.map +1 -0
- package/dist/app/ports/jobs-port.d.ts +18 -0
- package/dist/app/ports/jobs-port.js +2 -0
- package/dist/app/ports/jobs-port.js.map +1 -0
- package/dist/app/ports/persistence-port.d.ts +21 -0
- package/dist/app/ports/persistence-port.js +2 -0
- package/dist/app/ports/persistence-port.js.map +1 -0
- package/dist/app/ports/secret-port.d.ts +12 -0
- package/dist/app/ports/secret-port.js +2 -0
- package/dist/app/ports/secret-port.js.map +1 -0
- package/dist/app/ports/terminal-port.d.ts +18 -0
- package/dist/app/ports/terminal-port.js +2 -0
- package/dist/app/ports/terminal-port.js.map +1 -0
- package/dist/app/ports/updates-port.d.ts +12 -0
- package/dist/app/ports/updates-port.js +2 -0
- package/dist/app/ports/updates-port.js.map +1 -0
- package/dist/commands/doctor.js +19 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/update.js +1 -1
- package/dist/commands/update.js.map +1 -1
- package/dist/index.js +47 -12
- package/dist/index.js.map +1 -1
- package/dist/llm/router.js +4 -2
- package/dist/llm/router.js.map +1 -1
- package/dist/prompts/index.d.ts +1 -1
- package/dist/prompts/index.js +11 -8
- package/dist/prompts/index.js.map +1 -1
- package/dist/repl/slash-commands.js +1 -1
- package/dist/repl/slash-commands.js.map +1 -1
- package/dist/repl.js +35 -107
- package/dist/repl.js.map +1 -1
- package/dist/store/config.js +3 -1
- package/dist/store/config.js.map +1 -1
- package/dist/store/history.d.ts +26 -2
- package/dist/store/history.js +383 -72
- package/dist/store/history.js.map +1 -1
- package/dist/store/logs.js +3 -3
- package/dist/store/logs.js.map +1 -1
- package/dist/store/paths.d.ts +6 -0
- package/dist/store/paths.js +38 -0
- package/dist/store/paths.js.map +1 -0
- package/dist/store/plan.js +8 -5
- package/dist/store/plan.js.map +1 -1
- package/dist/tools/fs.d.ts +6 -0
- package/dist/tools/fs.js +56 -6
- package/dist/tools/fs.js.map +1 -1
- package/dist/tools/jobs.js +2 -2
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/registry.js +189 -67
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/shell.js +2 -2
- package/dist/tools/shell.js.map +1 -1
- package/dist/tui/runtime.d.ts +19 -0
- package/dist/tui/runtime.js +92 -0
- package/dist/tui/runtime.js.map +1 -0
- package/dist/tui/state.js +22 -17
- package/dist/tui/state.js.map +1 -1
- package/dist/tui-v2/actions/action-id.d.ts +14 -0
- package/dist/tui-v2/actions/action-id.js +109 -0
- package/dist/tui-v2/actions/action-id.js.map +1 -0
- package/dist/tui-v2/actions/action-router.d.ts +18 -0
- package/dist/tui-v2/actions/action-router.js +62 -0
- package/dist/tui-v2/actions/action-router.js.map +1 -0
- package/dist/tui-v2/actions/chord-from-key.d.ts +26 -0
- package/dist/tui-v2/actions/chord-from-key.js +45 -0
- package/dist/tui-v2/actions/chord-from-key.js.map +1 -0
- package/dist/tui-v2/actions/keymap.d.ts +24 -0
- package/dist/tui-v2/actions/keymap.js +134 -0
- package/dist/tui-v2/actions/keymap.js.map +1 -0
- package/dist/tui-v2/app/App.d.ts +13 -0
- package/dist/tui-v2/app/App.js +332 -0
- package/dist/tui-v2/app/App.js.map +1 -0
- package/dist/tui-v2/app/command-handlers.d.ts +8 -0
- package/dist/tui-v2/app/command-handlers.js +66 -0
- package/dist/tui-v2/app/command-handlers.js.map +1 -0
- package/dist/tui-v2/app/commands/config-commands.d.ts +14 -0
- package/dist/tui-v2/app/commands/config-commands.js +161 -0
- package/dist/tui-v2/app/commands/config-commands.js.map +1 -0
- package/dist/tui-v2/app/commands/key-commands.d.ts +9 -0
- package/dist/tui-v2/app/commands/key-commands.js +263 -0
- package/dist/tui-v2/app/commands/key-commands.js.map +1 -0
- package/dist/tui-v2/app/commands/picker-commands.d.ts +24 -0
- package/dist/tui-v2/app/commands/picker-commands.js +423 -0
- package/dist/tui-v2/app/commands/picker-commands.js.map +1 -0
- package/dist/tui-v2/app/commands/session-commands.d.ts +19 -0
- package/dist/tui-v2/app/commands/session-commands.js +162 -0
- package/dist/tui-v2/app/commands/session-commands.js.map +1 -0
- package/dist/tui-v2/app/plan-lifecycle.d.ts +22 -0
- package/dist/tui-v2/app/plan-lifecycle.js +95 -0
- package/dist/tui-v2/app/plan-lifecycle.js.map +1 -0
- package/dist/tui-v2/app/providers.d.ts +17 -0
- package/dist/tui-v2/app/providers.js +32 -0
- package/dist/tui-v2/app/providers.js.map +1 -0
- package/dist/tui-v2/bootstrap/capabilities.d.ts +35 -0
- package/dist/tui-v2/bootstrap/capabilities.js +93 -0
- package/dist/tui-v2/bootstrap/capabilities.js.map +1 -0
- package/dist/tui-v2/bootstrap/composition-root.d.ts +85 -0
- package/dist/tui-v2/bootstrap/composition-root.js +131 -0
- package/dist/tui-v2/bootstrap/composition-root.js.map +1 -0
- package/dist/tui-v2/bootstrap/disable-native-selection.d.ts +11 -0
- package/dist/tui-v2/bootstrap/disable-native-selection.js +13 -0
- package/dist/tui-v2/bootstrap/disable-native-selection.js.map +1 -0
- package/dist/tui-v2/bootstrap/lifecycle.d.ts +62 -0
- package/dist/tui-v2/bootstrap/lifecycle.js +123 -0
- package/dist/tui-v2/bootstrap/lifecycle.js.map +1 -0
- package/dist/tui-v2/bootstrap/osc52-clipboard.d.ts +28 -0
- package/dist/tui-v2/bootstrap/osc52-clipboard.js +44 -0
- package/dist/tui-v2/bootstrap/osc52-clipboard.js.map +1 -0
- package/dist/tui-v2/bootstrap/overlay-ports.d.ts +12 -0
- package/dist/{tui/confirm.js → tui-v2/bootstrap/overlay-ports.js} +17 -25
- package/dist/tui-v2/bootstrap/overlay-ports.js.map +1 -0
- package/dist/tui-v2/bootstrap/pager-export.d.ts +24 -0
- package/dist/tui-v2/bootstrap/pager-export.js +87 -0
- package/dist/tui-v2/bootstrap/pager-export.js.map +1 -0
- package/dist/tui-v2/bootstrap/start-tui-v2.d.ts +15 -0
- package/dist/tui-v2/bootstrap/start-tui-v2.js +95 -0
- package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -0
- package/dist/tui-v2/bootstrap/ui-selection.d.ts +30 -0
- package/dist/tui-v2/bootstrap/ui-selection.js +59 -0
- package/dist/tui-v2/bootstrap/ui-selection.js.map +1 -0
- package/dist/tui-v2/components/completion/completion-menu.d.ts +23 -0
- package/dist/tui-v2/components/completion/completion-menu.js +84 -0
- package/dist/tui-v2/components/completion/completion-menu.js.map +1 -0
- package/dist/tui-v2/components/jobs/jobs-panel.d.ts +16 -0
- package/dist/tui-v2/components/jobs/jobs-panel.js +92 -0
- package/dist/tui-v2/components/jobs/jobs-panel.js.map +1 -0
- package/dist/tui-v2/components/modal/confirm-modal.d.ts +20 -0
- package/dist/tui-v2/components/modal/confirm-modal.js +110 -0
- package/dist/tui-v2/components/modal/confirm-modal.js.map +1 -0
- package/dist/tui-v2/components/modal/prompt-actions-modal.d.ts +15 -0
- package/dist/tui-v2/components/modal/prompt-actions-modal.js +80 -0
- package/dist/tui-v2/components/modal/prompt-actions-modal.js.map +1 -0
- package/dist/tui-v2/components/modal/secret-modal.d.ts +18 -0
- package/dist/tui-v2/components/modal/secret-modal.js +50 -0
- package/dist/tui-v2/components/modal/secret-modal.js.map +1 -0
- package/dist/tui-v2/components/overlay/overlay-host.d.ts +26 -0
- package/dist/tui-v2/components/overlay/overlay-host.js +43 -0
- package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -0
- package/dist/tui-v2/components/pager/pager.d.ts +20 -0
- package/dist/tui-v2/components/pager/pager.js +396 -0
- package/dist/tui-v2/components/pager/pager.js.map +1 -0
- package/dist/tui-v2/components/picker/picker.d.ts +17 -0
- package/dist/tui-v2/components/picker/picker.js +222 -0
- package/dist/tui-v2/components/picker/picker.js.map +1 -0
- package/dist/tui-v2/components/plan/plan-view.d.ts +20 -0
- package/dist/tui-v2/components/plan/plan-view.js +120 -0
- package/dist/tui-v2/components/plan/plan-view.js.map +1 -0
- package/dist/tui-v2/components/queue/queue-panel.d.ts +23 -0
- package/dist/tui-v2/components/queue/queue-panel.js +58 -0
- package/dist/tui-v2/components/queue/queue-panel.js.map +1 -0
- package/dist/tui-v2/components/status/status-line.d.ts +27 -0
- package/dist/tui-v2/components/status/status-line.js +167 -0
- package/dist/tui-v2/components/status/status-line.js.map +1 -0
- package/dist/tui-v2/components/toast/toast-host.d.ts +15 -0
- package/dist/tui-v2/components/toast/toast-host.js +48 -0
- package/dist/tui-v2/components/toast/toast-host.js.map +1 -0
- package/dist/tui-v2/components/transcript/assistant-message.d.ts +20 -0
- package/dist/tui-v2/components/transcript/assistant-message.js +41 -0
- package/dist/tui-v2/components/transcript/assistant-message.js.map +1 -0
- package/dist/tui-v2/components/transcript/compacted-row.d.ts +19 -0
- package/dist/tui-v2/components/transcript/compacted-row.js +69 -0
- package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -0
- package/dist/tui-v2/components/transcript/intro-card.d.ts +19 -0
- package/dist/tui-v2/components/transcript/intro-card.js +50 -0
- package/dist/tui-v2/components/transcript/intro-card.js.map +1 -0
- package/dist/tui-v2/components/transcript/linkable-text.d.ts +21 -0
- package/dist/tui-v2/components/transcript/linkable-text.js +46 -0
- package/dist/tui-v2/components/transcript/linkable-text.js.map +1 -0
- package/dist/tui-v2/components/transcript/notice-row.d.ts +14 -0
- package/dist/tui-v2/components/transcript/notice-row.js +40 -0
- package/dist/tui-v2/components/transcript/notice-row.js.map +1 -0
- package/dist/tui-v2/components/transcript/search-bar.d.ts +19 -0
- package/dist/tui-v2/components/transcript/search-bar.js +7 -0
- package/dist/tui-v2/components/transcript/search-bar.js.map +1 -0
- package/dist/tui-v2/components/transcript/thinking-block.d.ts +22 -0
- package/dist/tui-v2/components/transcript/thinking-block.js +27 -0
- package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -0
- package/dist/tui-v2/components/transcript/tool-card.d.ts +26 -0
- package/dist/tui-v2/components/transcript/tool-card.js +205 -0
- package/dist/tui-v2/components/transcript/tool-card.js.map +1 -0
- package/dist/tui-v2/components/transcript/transcript-row.d.ts +25 -0
- package/dist/tui-v2/components/transcript/transcript-row.js +37 -0
- package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -0
- package/dist/tui-v2/components/transcript/transcript-scroll-port.d.ts +52 -0
- package/dist/tui-v2/components/transcript/transcript-scroll-port.js +86 -0
- package/dist/tui-v2/components/transcript/transcript-scroll-port.js.map +1 -0
- package/dist/tui-v2/components/transcript/transcript-view.d.ts +24 -0
- package/dist/tui-v2/components/transcript/transcript-view.js +403 -0
- package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -0
- package/dist/tui-v2/components/transcript/use-click-without-drag.d.ts +13 -0
- package/dist/tui-v2/components/transcript/use-click-without-drag.js +35 -0
- package/dist/tui-v2/components/transcript/use-click-without-drag.js.map +1 -0
- package/dist/tui-v2/components/transcript/use-native-selection-copy.d.ts +10 -0
- package/dist/tui-v2/components/transcript/use-native-selection-copy.js +37 -0
- package/dist/tui-v2/components/transcript/use-native-selection-copy.js.map +1 -0
- package/dist/tui-v2/components/transcript/use-transcript-selection.d.ts +23 -0
- package/dist/tui-v2/components/transcript/use-transcript-selection.js +136 -0
- package/dist/tui-v2/components/transcript/use-transcript-selection.js.map +1 -0
- package/dist/tui-v2/components/transcript/user-message.d.ts +10 -0
- package/dist/tui-v2/components/transcript/user-message.js +23 -0
- package/dist/tui-v2/components/transcript/user-message.js.map +1 -0
- package/dist/tui-v2/composer/arrow-intent.d.ts +23 -0
- package/dist/tui-v2/composer/arrow-intent.js +35 -0
- package/dist/tui-v2/composer/arrow-intent.js.map +1 -0
- package/dist/tui-v2/composer/completion.d.ts +37 -0
- package/dist/tui-v2/composer/completion.js +67 -0
- package/dist/tui-v2/composer/completion.js.map +1 -0
- package/dist/tui-v2/composer/composer-editor.d.ts +33 -0
- package/dist/tui-v2/composer/composer-editor.js +620 -0
- package/dist/tui-v2/composer/composer-editor.js.map +1 -0
- package/dist/tui-v2/composer/composer-height.d.ts +21 -0
- package/dist/tui-v2/composer/composer-height.js +29 -0
- package/dist/tui-v2/composer/composer-height.js.map +1 -0
- package/dist/tui-v2/composer/composer-meta.d.ts +9 -0
- package/dist/tui-v2/composer/composer-meta.js +38 -0
- package/dist/tui-v2/composer/composer-meta.js.map +1 -0
- package/dist/tui-v2/composer/history-nav.d.ts +15 -0
- package/dist/tui-v2/composer/history-nav.js +16 -0
- package/dist/tui-v2/composer/history-nav.js.map +1 -0
- package/dist/tui-v2/composer/newline-hint.d.ts +13 -0
- package/dist/tui-v2/composer/newline-hint.js +13 -0
- package/dist/tui-v2/composer/newline-hint.js.map +1 -0
- package/dist/tui-v2/composer/paste-placeholder.d.ts +35 -0
- package/dist/tui-v2/composer/paste-placeholder.js +55 -0
- package/dist/tui-v2/composer/paste-placeholder.js.map +1 -0
- package/dist/tui-v2/composer/prompt-history.d.ts +22 -0
- package/dist/tui-v2/composer/prompt-history.js +51 -0
- package/dist/tui-v2/composer/prompt-history.js.map +1 -0
- package/dist/tui-v2/composer/secret-buffer.d.ts +20 -0
- package/dist/tui-v2/composer/secret-buffer.js +42 -0
- package/dist/tui-v2/composer/secret-buffer.js.map +1 -0
- package/dist/tui-v2/composer/textarea-keybindings.d.ts +22 -0
- package/dist/tui-v2/composer/textarea-keybindings.js +27 -0
- package/dist/tui-v2/composer/textarea-keybindings.js.map +1 -0
- package/dist/tui-v2/controllers/focus-controller.d.ts +30 -0
- package/dist/tui-v2/controllers/focus-controller.js +80 -0
- package/dist/tui-v2/controllers/focus-controller.js.map +1 -0
- package/dist/tui-v2/controllers/overlay-controller.d.ts +99 -0
- package/dist/tui-v2/controllers/overlay-controller.js +195 -0
- package/dist/tui-v2/controllers/overlay-controller.js.map +1 -0
- package/dist/tui-v2/controllers/selection-controller.d.ts +76 -0
- package/dist/tui-v2/controllers/selection-controller.js +238 -0
- package/dist/tui-v2/controllers/selection-controller.js.map +1 -0
- package/dist/tui-v2/controllers/toast-controller.d.ts +35 -0
- package/dist/tui-v2/controllers/toast-controller.js +88 -0
- package/dist/tui-v2/controllers/toast-controller.js.map +1 -0
- package/dist/tui-v2/layout/compute-layout.d.ts +59 -0
- package/dist/tui-v2/layout/compute-layout.js +170 -0
- package/dist/tui-v2/layout/compute-layout.js.map +1 -0
- package/dist/tui-v2/rendering/ansi-to-styled.d.ts +17 -0
- package/dist/tui-v2/rendering/ansi-to-styled.js +217 -0
- package/dist/tui-v2/rendering/ansi-to-styled.js.map +1 -0
- package/dist/tui-v2/rendering/batch-sections.d.ts +57 -0
- package/dist/tui-v2/rendering/batch-sections.js +177 -0
- package/dist/tui-v2/rendering/batch-sections.js.map +1 -0
- package/dist/tui-v2/rendering/link-detector.d.ts +16 -0
- package/dist/tui-v2/rendering/link-detector.js +43 -0
- package/dist/tui-v2/rendering/link-detector.js.map +1 -0
- package/dist/tui-v2/rendering/open-tool-output.d.ts +28 -0
- package/dist/tui-v2/rendering/open-tool-output.js +138 -0
- package/dist/tui-v2/rendering/open-tool-output.js.map +1 -0
- package/dist/tui-v2/rendering/picker-filter.d.ts +22 -0
- package/dist/tui-v2/rendering/picker-filter.js +68 -0
- package/dist/tui-v2/rendering/picker-filter.js.map +1 -0
- package/dist/tui-v2/rendering/plan-view.d.ts +32 -0
- package/dist/tui-v2/rendering/plan-view.js +196 -0
- package/dist/tui-v2/rendering/plan-view.js.map +1 -0
- package/dist/tui-v2/rendering/render-markdown-lines.d.ts +29 -0
- package/dist/tui-v2/rendering/render-markdown-lines.js +46 -0
- package/dist/tui-v2/rendering/render-markdown-lines.js.map +1 -0
- package/dist/tui-v2/rendering/sanitize-display.d.ts +13 -0
- package/dist/tui-v2/rendering/sanitize-display.js +24 -0
- package/dist/tui-v2/rendering/sanitize-display.js.map +1 -0
- package/dist/tui-v2/rendering/strip-tool-surfaces.d.ts +10 -0
- package/dist/tui-v2/rendering/strip-tool-surfaces.js +32 -0
- package/dist/tui-v2/rendering/strip-tool-surfaces.js.map +1 -0
- package/dist/tui-v2/rendering/theme.d.ts +67 -0
- package/dist/tui-v2/rendering/theme.js +74 -0
- package/dist/tui-v2/rendering/theme.js.map +1 -0
- package/dist/tui-v2/rendering/tool-presenter.d.ts +39 -0
- package/dist/tui-v2/rendering/tool-presenter.js +209 -0
- package/dist/tui-v2/rendering/tool-presenter.js.map +1 -0
- package/dist/tui-v2/rendering/transcript-export.d.ts +11 -0
- package/dist/tui-v2/rendering/transcript-export.js +18 -0
- package/dist/tui-v2/rendering/transcript-export.js.map +1 -0
- package/dist/tui-v2/rendering/transcript-semantic.d.ts +17 -0
- package/dist/tui-v2/rendering/transcript-semantic.js +67 -0
- package/dist/tui-v2/rendering/transcript-semantic.js.map +1 -0
- package/dist/tui-v2/state/pager-search.d.ts +22 -0
- package/dist/tui-v2/state/pager-search.js +78 -0
- package/dist/tui-v2/state/pager-search.js.map +1 -0
- package/dist/tui-v2/state/semantic-document.d.ts +34 -0
- package/dist/tui-v2/state/semantic-document.js +201 -0
- package/dist/tui-v2/state/semantic-document.js.map +1 -0
- package/dist/tui-v2/state/transcript-compaction.d.ts +24 -0
- package/dist/tui-v2/state/transcript-compaction.js +79 -0
- package/dist/tui-v2/state/transcript-compaction.js.map +1 -0
- package/dist/tui-v2/state/transcript-hydrate.d.ts +27 -0
- package/dist/tui-v2/state/transcript-hydrate.js +276 -0
- package/dist/tui-v2/state/transcript-hydrate.js.map +1 -0
- package/dist/tui-v2/state/transcript-reducer.d.ts +10 -0
- package/dist/tui-v2/state/transcript-reducer.js +339 -0
- package/dist/tui-v2/state/transcript-reducer.js.map +1 -0
- package/dist/tui-v2/state/transcript-search.d.ts +17 -0
- package/dist/tui-v2/state/transcript-search.js +38 -0
- package/dist/tui-v2/state/transcript-search.js.map +1 -0
- package/dist/tui-v2/state/transcript-store.d.ts +32 -0
- package/dist/tui-v2/state/transcript-store.js +66 -0
- package/dist/tui-v2/state/transcript-store.js.map +1 -0
- package/dist/tui-v2/state/transcript-struct.d.ts +15 -0
- package/dist/tui-v2/state/transcript-struct.js +133 -0
- package/dist/tui-v2/state/transcript-struct.js.map +1 -0
- package/dist/tui-v2/state/transcript-types.d.ts +76 -0
- package/dist/tui-v2/state/transcript-types.js +65 -0
- package/dist/tui-v2/state/transcript-types.js.map +1 -0
- package/dist/tui-v2/state/use-overlay.d.ts +3 -0
- package/dist/tui-v2/state/use-overlay.js +6 -0
- package/dist/tui-v2/state/use-overlay.js.map +1 -0
- package/dist/tui-v2/state/use-plan.d.ts +4 -0
- package/dist/tui-v2/state/use-plan.js +6 -0
- package/dist/tui-v2/state/use-plan.js.map +1 -0
- package/dist/tui-v2/state/use-session-state.d.ts +2 -0
- package/dist/tui-v2/state/use-session-state.js +7 -0
- package/dist/tui-v2/state/use-session-state.js.map +1 -0
- package/dist/tui-v2/state/use-toast.d.ts +3 -0
- package/dist/tui-v2/state/use-toast.js +15 -0
- package/dist/tui-v2/state/use-toast.js.map +1 -0
- package/dist/tui-v2/state/use-transcript-store.d.ts +10 -0
- package/dist/tui-v2/state/use-transcript-store.js +12 -0
- package/dist/tui-v2/state/use-transcript-store.js.map +1 -0
- package/dist/ui/intro-card.js +3 -3
- package/dist/ui/intro-card.js.map +1 -1
- package/dist/ui/intro-header.d.ts +23 -0
- package/dist/ui/intro-header.js +232 -0
- package/dist/ui/intro-header.js.map +1 -0
- package/dist/ui/markdown.js +0 -1
- package/dist/ui/markdown.js.map +1 -1
- package/dist/ui/mentions.d.ts +9 -2
- package/dist/ui/mentions.js +102 -4
- package/dist/ui/mentions.js.map +1 -1
- package/dist/ui/output-pane.js +1 -1
- package/dist/ui/output-pane.js.map +1 -1
- package/dist/ui/plan-pane.d.ts +8 -0
- package/dist/ui/plan-pane.js +38 -0
- package/dist/ui/plan-pane.js.map +1 -1
- package/dist/ui/wordmark.d.ts +5 -0
- package/dist/ui/wordmark.js +6 -1
- package/dist/ui/wordmark.js.map +1 -1
- package/package.json +25 -12
- package/dist/tui/App.d.ts +0 -12
- package/dist/tui/App.js +0 -2174
- package/dist/tui/App.js.map +0 -1
- package/dist/tui/components/ConfirmModal.d.ts +0 -9
- package/dist/tui/components/ConfirmModal.js +0 -55
- package/dist/tui/components/ConfirmModal.js.map +0 -1
- package/dist/tui/components/JobsPanel.d.ts +0 -11
- package/dist/tui/components/JobsPanel.js +0 -55
- package/dist/tui/components/JobsPanel.js.map +0 -1
- package/dist/tui/components/Pager.d.ts +0 -14
- package/dist/tui/components/Pager.js +0 -56
- package/dist/tui/components/Pager.js.map +0 -1
- package/dist/tui/components/PickerPanel.d.ts +0 -15
- package/dist/tui/components/PickerPanel.js +0 -126
- package/dist/tui/components/PickerPanel.js.map +0 -1
- package/dist/tui/components/PlanSidebar.d.ts +0 -6
- package/dist/tui/components/PlanSidebar.js +0 -99
- package/dist/tui/components/PlanSidebar.js.map +0 -1
- package/dist/tui/components/SecretInputPanel.d.ts +0 -7
- package/dist/tui/components/SecretInputPanel.js +0 -38
- package/dist/tui/components/SecretInputPanel.js.map +0 -1
- package/dist/tui/confirm.d.ts +0 -16
- package/dist/tui/confirm.js.map +0 -1
- package/dist/tui/default.d.ts +0 -6
- package/dist/tui/default.js +0 -11
- package/dist/tui/default.js.map +0 -1
- package/dist/tui/hooks/useAgentRunner.d.ts +0 -73
- package/dist/tui/hooks/useAgentRunner.js +0 -277
- package/dist/tui/hooks/useAgentRunner.js.map +0 -1
- package/dist/tui/hooks/useJobs.d.ts +0 -7
- package/dist/tui/hooks/useJobs.js +0 -39
- package/dist/tui/hooks/useJobs.js.map +0 -1
- package/dist/tui/hooks/useSpinner.d.ts +0 -5
- package/dist/tui/hooks/useSpinner.js +0 -21
- package/dist/tui/hooks/useSpinner.js.map +0 -1
- package/dist/tui/hooks/useTerminalSize.d.ts +0 -9
- package/dist/tui/hooks/useTerminalSize.js +0 -26
- package/dist/tui/hooks/useTerminalSize.js.map +0 -1
- package/dist/tui/index.d.ts +0 -10
- package/dist/tui/index.js +0 -37
- package/dist/tui/index.js.map +0 -1
- package/dist/tui/key-intent.d.ts +0 -36
- package/dist/tui/key-intent.js +0 -54
- package/dist/tui/key-intent.js.map +0 -1
- package/dist/tui/mouse.d.ts +0 -8
- package/dist/tui/mouse.js +0 -34
- package/dist/tui/mouse.js.map +0 -1
- package/dist/tui/plan-sidebar-lines.d.ts +0 -2
- package/dist/tui/plan-sidebar-lines.js +0 -140
- package/dist/tui/plan-sidebar-lines.js.map +0 -1
- package/dist/tui/render-lines.d.ts +0 -22
- package/dist/tui/render-lines.js +0 -611
- package/dist/tui/render-lines.js.map +0 -1
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenTUI requires Bun's native FFI. Node/tsx cannot initialize the renderer.
|
|
3
|
+
* Prefer re-exec under Bun when available; otherwise fall back with a clear hint.
|
|
4
|
+
*/
|
|
5
|
+
import { spawnSync } from "node:child_process";
|
|
6
|
+
import { accessSync, constants } from "node:fs";
|
|
7
|
+
import { delimiter, join } from "node:path";
|
|
8
|
+
export function isBunRuntime() {
|
|
9
|
+
return typeof globalThis.Bun !== "undefined";
|
|
10
|
+
}
|
|
11
|
+
/** Resolve `bun` on PATH (cross-platform). */
|
|
12
|
+
export function findBunExecutable() {
|
|
13
|
+
const fromEnv = process.env.BUN_INSTALL
|
|
14
|
+
? join(process.env.BUN_INSTALL, "bin", process.platform === "win32" ? "bun.exe" : "bun")
|
|
15
|
+
: undefined;
|
|
16
|
+
const candidates = [
|
|
17
|
+
fromEnv,
|
|
18
|
+
...(process.env.PATH ?? "")
|
|
19
|
+
.split(delimiter)
|
|
20
|
+
.filter(Boolean)
|
|
21
|
+
.map((dir) => join(dir, process.platform === "win32" ? "bun.exe" : "bun")),
|
|
22
|
+
].filter((p) => Boolean(p));
|
|
23
|
+
for (const path of candidates) {
|
|
24
|
+
try {
|
|
25
|
+
accessSync(path, constants.X_OK);
|
|
26
|
+
return path;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
// try next
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
export function openTuiRuntimeHint() {
|
|
35
|
+
return [
|
|
36
|
+
"OpenTUI needs the Bun runtime (Node/tsx cannot load the native renderer).",
|
|
37
|
+
" • Dev: npm run dev:bun or bun run src/index.ts",
|
|
38
|
+
" • Install: https://bun.sh",
|
|
39
|
+
" • Or: clai --classic (line REPL without OpenTUI)",
|
|
40
|
+
].join("\n");
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* If we are not already under Bun, re-launch this process with Bun using the
|
|
44
|
+
* given entry module (usually `import.meta.url` of index.ts) + original CLI
|
|
45
|
+
* args, then exit with the child status. Returns false when re-exec is not
|
|
46
|
+
* possible (caller should fall back / print the hint).
|
|
47
|
+
*
|
|
48
|
+
* Pass `entryPath` explicitly — under `tsx`/`npx`, `process.argv[1]` is the
|
|
49
|
+
* loader, not clai's entry.
|
|
50
|
+
*/
|
|
51
|
+
export function reexecWithBunIfNeeded(entryPath) {
|
|
52
|
+
if (isBunRuntime())
|
|
53
|
+
return false;
|
|
54
|
+
if (process.env.CLAI_NO_BUN_REEXEC === "1")
|
|
55
|
+
return false;
|
|
56
|
+
if (process.env.CLAI_FORCE_NODE === "1")
|
|
57
|
+
return false;
|
|
58
|
+
const bun = findBunExecutable();
|
|
59
|
+
if (!bun)
|
|
60
|
+
return false;
|
|
61
|
+
if (!entryPath)
|
|
62
|
+
return false;
|
|
63
|
+
// Keep user flags (after the entry). Drop node/tsx/bun loader path noise.
|
|
64
|
+
// process.argv: [node, loader?, entry?, ...flags] — simplest reliable form
|
|
65
|
+
// is to re-run only the entry + flags that look like CLI options/args.
|
|
66
|
+
const userArgs = process.argv.slice(2).filter((a) => {
|
|
67
|
+
// Drop accidental duplicate of the entry path if present.
|
|
68
|
+
if (a === entryPath)
|
|
69
|
+
return false;
|
|
70
|
+
if (a.endsWith("src/index.ts") || a.endsWith("dist/index.js"))
|
|
71
|
+
return false;
|
|
72
|
+
return true;
|
|
73
|
+
});
|
|
74
|
+
const result = spawnSync(bun, [entryPath, ...userArgs], {
|
|
75
|
+
stdio: "inherit",
|
|
76
|
+
env: {
|
|
77
|
+
...process.env,
|
|
78
|
+
CLAI_NO_BUN_REEXEC: "1",
|
|
79
|
+
CLAI_BUN_REEXEC: "1",
|
|
80
|
+
},
|
|
81
|
+
windowsHide: true,
|
|
82
|
+
});
|
|
83
|
+
if (result.error)
|
|
84
|
+
return false;
|
|
85
|
+
process.exit(result.status ?? 1);
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
export function isOpenTuiFfiError(error) {
|
|
89
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
90
|
+
return /OpenTUI native FFI|native FFI is not available|Bun-only|@opentui\/core|Failed to initialize OpenTUI/i.test(msg);
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/tui/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/tui/state.js
CHANGED
|
@@ -323,27 +323,30 @@ function applyEvent(state, event) {
|
|
|
323
323
|
prompt: event.prompt,
|
|
324
324
|
},
|
|
325
325
|
};
|
|
326
|
-
case "compacted":
|
|
327
|
-
|
|
328
|
-
|
|
326
|
+
case "compacted": {
|
|
327
|
+
// The runner emits this after replacing the model context with a
|
|
328
|
+
// summary. App.tsx normally intercepts it and dispatches the richer
|
|
329
|
+
// `compacted` TuiAction (with keepRecent); this branch keeps the
|
|
330
|
+
// reducer exhaustive and provides sensible default behavior: append a
|
|
331
|
+
// compacted-context block while preserving the scrollable history.
|
|
332
|
+
const compactedItem = {
|
|
333
|
+
kind: "compacted",
|
|
334
|
+
id: nextId("compacted"),
|
|
329
335
|
summary: event.summary,
|
|
330
|
-
|
|
331
|
-
|
|
336
|
+
originalItems: [],
|
|
337
|
+
done: true,
|
|
338
|
+
};
|
|
339
|
+
return {
|
|
340
|
+
...state,
|
|
341
|
+
streaming: "",
|
|
342
|
+
thinkingPreview: "",
|
|
343
|
+
items: [...state.items, compactedItem],
|
|
344
|
+
};
|
|
345
|
+
}
|
|
332
346
|
case "turn-end":
|
|
333
347
|
case "turn-aborted":
|
|
334
348
|
case "turn-error": {
|
|
335
|
-
const items = state.items.map((item) => {
|
|
336
|
-
if (item.done)
|
|
337
|
-
return item;
|
|
338
|
-
if (item.kind === "tool" && item.status === "running") {
|
|
339
|
-
return {
|
|
340
|
-
...item,
|
|
341
|
-
done: true,
|
|
342
|
-
status: (event.type === "turn-aborted" ? "blocked" : "fail"),
|
|
343
|
-
};
|
|
344
|
-
}
|
|
345
|
-
return { ...item, done: true, streaming: false };
|
|
346
|
-
});
|
|
349
|
+
const items = state.items.map((item) => item.done ? item : { ...item, done: true, streaming: false });
|
|
347
350
|
if (event.type === "turn-aborted") {
|
|
348
351
|
items.push({
|
|
349
352
|
kind: "notice",
|
|
@@ -371,6 +374,8 @@ function applyEvent(state, event) {
|
|
|
371
374
|
status: { running: false, activity: "", step: 0, startedAt: undefined },
|
|
372
375
|
};
|
|
373
376
|
}
|
|
377
|
+
default:
|
|
378
|
+
return state;
|
|
374
379
|
}
|
|
375
380
|
}
|
|
376
381
|
// Helpers
|
package/dist/tui/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/tui/state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/tui/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic action identifiers and input contexts (V2-033).
|
|
3
|
+
*
|
|
4
|
+
* Actions are semantic, never byte-sequence promises: a component or test asks
|
|
5
|
+
* for `editor.newline`, and the keymap plus terminal adapter decide which chord
|
|
6
|
+
* currently delivers it. Contexts model where keyboard input is routed so the
|
|
7
|
+
* same chord can mean different things in the composer, a picker, or a modal.
|
|
8
|
+
*/
|
|
9
|
+
export declare const ACTION_CONTEXTS: readonly ["global", "transcript", "composer", "picker", "modal", "secret", "plan", "transcript-search", "pager", "jobs"];
|
|
10
|
+
export type ActionContext = (typeof ACTION_CONTEXTS)[number];
|
|
11
|
+
export declare const ACTION_IDS: readonly ["app.quit", "app.cancel", "app.interrupt", "app.help", "app.toggle-plan", "app.jobs", "focus.next-region", "focus.composer", "focus.transcript", "editor.submit", "editor.newline", "editor.history-prev", "editor.history-next", "editor.clear", "transcript.scroll-up", "transcript.scroll-down", "transcript.page-up", "transcript.page-down", "transcript.top", "transcript.bottom", "transcript.search", "transcript.expand-toggle", "transcript.toggle-thinking", "transcript.toggle-output", "selection.copy", "selection.clear", "selection.select-all", "selection.extend-left", "selection.extend-right", "selection.extend-up", "selection.extend-down", "selection.extend-word-left", "selection.extend-word-right", "selection.extend-line-start", "selection.extend-line-end", "picker.up", "picker.down", "picker.accept", "picker.dismiss", "picker.filter", "modal.confirm", "modal.deny", "modal.dismiss", "plan.next-task", "plan.prev-task", "plan.toggle-detail", "pager.line-up", "pager.line-down", "pager.page-up", "pager.page-down", "pager.half-page-up", "pager.half-page-down", "pager.top", "pager.bottom", "pager.search", "pager.next-match", "pager.prev-match", "pager.export-scrollback", "pager.export-editor", "pager.copy", "pager.close", "jobs.up", "jobs.down", "jobs.tail", "jobs.stop", "jobs.close"];
|
|
12
|
+
export type ActionId = (typeof ACTION_IDS)[number];
|
|
13
|
+
export declare function isActionContext(value: string): value is ActionContext;
|
|
14
|
+
export declare function isActionId(value: string): value is ActionId;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic action identifiers and input contexts (V2-033).
|
|
3
|
+
*
|
|
4
|
+
* Actions are semantic, never byte-sequence promises: a component or test asks
|
|
5
|
+
* for `editor.newline`, and the keymap plus terminal adapter decide which chord
|
|
6
|
+
* currently delivers it. Contexts model where keyboard input is routed so the
|
|
7
|
+
* same chord can mean different things in the composer, a picker, or a modal.
|
|
8
|
+
*/
|
|
9
|
+
export const ACTION_CONTEXTS = [
|
|
10
|
+
"global",
|
|
11
|
+
"transcript",
|
|
12
|
+
"composer",
|
|
13
|
+
"picker",
|
|
14
|
+
"modal",
|
|
15
|
+
"secret",
|
|
16
|
+
"plan",
|
|
17
|
+
"transcript-search",
|
|
18
|
+
"pager",
|
|
19
|
+
"jobs",
|
|
20
|
+
];
|
|
21
|
+
export const ACTION_IDS = [
|
|
22
|
+
// global
|
|
23
|
+
"app.quit",
|
|
24
|
+
/** Esc: abort a running turn / dismiss — never exits the process. */
|
|
25
|
+
"app.cancel",
|
|
26
|
+
/**
|
|
27
|
+
* Ctrl+C: first press aborts a running turn (or arms quit); second press
|
|
28
|
+
* within a short window exits the process.
|
|
29
|
+
*/
|
|
30
|
+
"app.interrupt",
|
|
31
|
+
"app.help",
|
|
32
|
+
"app.toggle-plan",
|
|
33
|
+
"app.jobs",
|
|
34
|
+
"focus.next-region",
|
|
35
|
+
"focus.composer",
|
|
36
|
+
"focus.transcript",
|
|
37
|
+
// composer / editor
|
|
38
|
+
"editor.submit",
|
|
39
|
+
"editor.newline",
|
|
40
|
+
"editor.history-prev",
|
|
41
|
+
"editor.history-next",
|
|
42
|
+
"editor.clear",
|
|
43
|
+
// transcript / scrolling
|
|
44
|
+
"transcript.scroll-up",
|
|
45
|
+
"transcript.scroll-down",
|
|
46
|
+
"transcript.page-up",
|
|
47
|
+
"transcript.page-down",
|
|
48
|
+
"transcript.top",
|
|
49
|
+
"transcript.bottom",
|
|
50
|
+
"transcript.search",
|
|
51
|
+
"transcript.expand-toggle",
|
|
52
|
+
"transcript.toggle-thinking",
|
|
53
|
+
"transcript.toggle-output",
|
|
54
|
+
// pane selection
|
|
55
|
+
"selection.copy",
|
|
56
|
+
"selection.clear",
|
|
57
|
+
"selection.select-all",
|
|
58
|
+
"selection.extend-left",
|
|
59
|
+
"selection.extend-right",
|
|
60
|
+
"selection.extend-up",
|
|
61
|
+
"selection.extend-down",
|
|
62
|
+
"selection.extend-word-left",
|
|
63
|
+
"selection.extend-word-right",
|
|
64
|
+
"selection.extend-line-start",
|
|
65
|
+
"selection.extend-line-end",
|
|
66
|
+
// picker
|
|
67
|
+
"picker.up",
|
|
68
|
+
"picker.down",
|
|
69
|
+
"picker.accept",
|
|
70
|
+
"picker.dismiss",
|
|
71
|
+
"picker.filter",
|
|
72
|
+
// modal
|
|
73
|
+
"modal.confirm",
|
|
74
|
+
"modal.deny",
|
|
75
|
+
"modal.dismiss",
|
|
76
|
+
// plan
|
|
77
|
+
"plan.next-task",
|
|
78
|
+
"plan.prev-task",
|
|
79
|
+
"plan.toggle-detail",
|
|
80
|
+
// pager
|
|
81
|
+
"pager.line-up",
|
|
82
|
+
"pager.line-down",
|
|
83
|
+
"pager.page-up",
|
|
84
|
+
"pager.page-down",
|
|
85
|
+
"pager.half-page-up",
|
|
86
|
+
"pager.half-page-down",
|
|
87
|
+
"pager.top",
|
|
88
|
+
"pager.bottom",
|
|
89
|
+
"pager.search",
|
|
90
|
+
"pager.next-match",
|
|
91
|
+
"pager.prev-match",
|
|
92
|
+
"pager.export-scrollback",
|
|
93
|
+
"pager.export-editor",
|
|
94
|
+
"pager.copy",
|
|
95
|
+
"pager.close",
|
|
96
|
+
// jobs
|
|
97
|
+
"jobs.up",
|
|
98
|
+
"jobs.down",
|
|
99
|
+
"jobs.tail",
|
|
100
|
+
"jobs.stop",
|
|
101
|
+
"jobs.close",
|
|
102
|
+
];
|
|
103
|
+
export function isActionContext(value) {
|
|
104
|
+
return ACTION_CONTEXTS.includes(value);
|
|
105
|
+
}
|
|
106
|
+
export function isActionId(value) {
|
|
107
|
+
return ACTION_IDS.includes(value);
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=action-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-id.js","sourceRoot":"","sources":["../../../src/tui-v2/actions/action-id.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,mBAAmB;IACnB,OAAO;IACP,MAAM;CACE,CAAC;AAIX,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,SAAS;IACT,UAAU;IACV,qEAAqE;IACrE,YAAY;IACZ;;;OAGG;IACH,eAAe;IACf,UAAU;IACV,iBAAiB;IACjB,UAAU;IACV,mBAAmB;IACnB,gBAAgB;IAChB,kBAAkB;IAClB,oBAAoB;IACpB,eAAe;IACf,gBAAgB;IAChB,qBAAqB;IACrB,qBAAqB;IACrB,cAAc;IACd,yBAAyB;IACzB,sBAAsB;IACtB,wBAAwB;IACxB,oBAAoB;IACpB,sBAAsB;IACtB,gBAAgB;IAChB,mBAAmB;IACnB,mBAAmB;IACnB,0BAA0B;IAC1B,4BAA4B;IAC5B,0BAA0B;IAC1B,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,sBAAsB;IACtB,uBAAuB;IACvB,wBAAwB;IACxB,qBAAqB;IACrB,uBAAuB;IACvB,4BAA4B;IAC5B,6BAA6B;IAC7B,6BAA6B;IAC7B,2BAA2B;IAC3B,SAAS;IACT,WAAW;IACX,aAAa;IACb,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,QAAQ;IACR,eAAe;IACf,YAAY;IACZ,eAAe;IACf,OAAO;IACP,gBAAgB;IAChB,gBAAgB;IAChB,oBAAoB;IACpB,QAAQ;IACR,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,oBAAoB;IACpB,sBAAsB;IACtB,WAAW;IACX,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,yBAAyB;IACzB,qBAAqB;IACrB,YAAY;IACZ,aAAa;IACb,OAAO;IACP,SAAS;IACT,WAAW;IACX,WAAW;IACX,WAAW;IACX,YAAY;CACJ,CAAC;AAIX,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAQ,eAAqC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAQ,UAAgC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action router (V2-033).
|
|
3
|
+
*
|
|
4
|
+
* Resolves a normalized key chord to a semantic action given the active input
|
|
5
|
+
* context. Context bindings win over `global`, so a picker can rebind Enter
|
|
6
|
+
* without losing global cancel. Validates on construction so a conflicting
|
|
7
|
+
* keymap fails fast instead of resolving nondeterministically.
|
|
8
|
+
*/
|
|
9
|
+
import type { ActionContext, ActionId } from "./action-id.js";
|
|
10
|
+
import { type KeyBinding } from "./keymap.js";
|
|
11
|
+
export declare class ActionRouter {
|
|
12
|
+
private readonly byContext;
|
|
13
|
+
constructor(bindings?: readonly KeyBinding[]);
|
|
14
|
+
/** Resolve a chord in `context`, then fall back to `global` unless `context` traps input. */
|
|
15
|
+
resolve(chord: string, context: ActionContext): ActionId | undefined;
|
|
16
|
+
/** All chords bound to an action, for help/status display. */
|
|
17
|
+
chordsFor(action: ActionId): string[];
|
|
18
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action router (V2-033).
|
|
3
|
+
*
|
|
4
|
+
* Resolves a normalized key chord to a semantic action given the active input
|
|
5
|
+
* context. Context bindings win over `global`, so a picker can rebind Enter
|
|
6
|
+
* without losing global cancel. Validates on construction so a conflicting
|
|
7
|
+
* keymap fails fast instead of resolving nondeterministically.
|
|
8
|
+
*/
|
|
9
|
+
import { defaultKeymap, normalizeChord, validateKeymap, } from "./keymap.js";
|
|
10
|
+
/**
|
|
11
|
+
* Blocking-overlay contexts trap input (PICK-002): an unbound chord does
|
|
12
|
+
* nothing rather than falling through to a global action like Ctrl+H. Base
|
|
13
|
+
* regions (composer/transcript/plan) intentionally keep the global fallback
|
|
14
|
+
* so app-wide shortcuts work no matter which region has focus.
|
|
15
|
+
*/
|
|
16
|
+
const TRAPPING_CONTEXTS = new Set([
|
|
17
|
+
"picker",
|
|
18
|
+
"modal",
|
|
19
|
+
"secret",
|
|
20
|
+
"transcript-search",
|
|
21
|
+
"pager",
|
|
22
|
+
"jobs",
|
|
23
|
+
]);
|
|
24
|
+
export class ActionRouter {
|
|
25
|
+
byContext = new Map();
|
|
26
|
+
constructor(bindings = defaultKeymap) {
|
|
27
|
+
const conflicts = validateKeymap(bindings);
|
|
28
|
+
if (conflicts.length > 0) {
|
|
29
|
+
const detail = conflicts
|
|
30
|
+
.map((c) => `${c.context}:${c.chord} -> [${c.actions.join(", ")}]`)
|
|
31
|
+
.join("; ");
|
|
32
|
+
throw new Error(`keymap has conflicting bindings: ${detail}`);
|
|
33
|
+
}
|
|
34
|
+
for (const b of bindings) {
|
|
35
|
+
const map = this.byContext.get(b.context) ?? new Map();
|
|
36
|
+
map.set(b.chord, b.action);
|
|
37
|
+
this.byContext.set(b.context, map);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** Resolve a chord in `context`, then fall back to `global` unless `context` traps input. */
|
|
41
|
+
resolve(chord, context) {
|
|
42
|
+
const normalized = normalizeChord(chord);
|
|
43
|
+
const contextHit = this.byContext.get(context)?.get(normalized);
|
|
44
|
+
if (contextHit)
|
|
45
|
+
return contextHit;
|
|
46
|
+
if (context === "global" || TRAPPING_CONTEXTS.has(context))
|
|
47
|
+
return undefined;
|
|
48
|
+
return this.byContext.get("global")?.get(normalized);
|
|
49
|
+
}
|
|
50
|
+
/** All chords bound to an action, for help/status display. */
|
|
51
|
+
chordsFor(action) {
|
|
52
|
+
const chords = [];
|
|
53
|
+
for (const map of this.byContext.values()) {
|
|
54
|
+
for (const [chord, boundAction] of map) {
|
|
55
|
+
if (boundAction === action)
|
|
56
|
+
chords.push(chord);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return chords;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=action-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-router.js","sourceRoot":"","sources":["../../../src/tui-v2/actions/action-router.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,GAEf,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,MAAM,iBAAiB,GAA+B,IAAI,GAAG,CAAC;IAC5D,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,mBAAmB;IACnB,OAAO;IACP,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,OAAO,YAAY;IACN,SAAS,GAAG,IAAI,GAAG,EAGjC,CAAC;IAEJ,YAAY,WAAkC,aAAa;QACzD,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,SAAS;iBACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;iBAClE,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAoB,CAAC;YACzE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,6FAA6F;IAC7F,OAAO,CAAC,KAAa,EAAE,OAAsB;QAC3C,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC;QAClC,IAAI,OAAO,KAAK,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,SAAS,CAAC;QAC7E,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAED,8DAA8D;IAC9D,SAAS,CAAC,MAAgB;QACxB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC;gBACvC,IAAI,WAAW,KAAK,MAAM;oBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bridges a terminal key event into our normalized chord vocabulary (V2-040).
|
|
3
|
+
*
|
|
4
|
+
* Renderer-independent by design: it takes a plain object shaped like
|
|
5
|
+
* OpenTUI's `KeyEvent` rather than importing `@opentui/core`, so the mapping
|
|
6
|
+
* is unit-testable and the renderer adapter (`composer-editor.tsx`) supplies
|
|
7
|
+
* the real event. Two decisions are protocol-specific and documented here
|
|
8
|
+
* rather than left implicit:
|
|
9
|
+
*
|
|
10
|
+
* - OpenTUI reports Option/Alt as `option` and/or `meta` depending on the
|
|
11
|
+
* terminal; both map to our "alt" modifier. `super` (Cmd/Win) maps to our
|
|
12
|
+
* "meta" modifier, since nothing in the default keymap uses it otherwise.
|
|
13
|
+
* - Ctrl+J commonly arrives as a bare linefeed byte (`name: "linefeed"`,
|
|
14
|
+
* no modifier flags) rather than `{name: "j", ctrl: true}`. It is
|
|
15
|
+
* normalized to the "ctrl+j" chord so the global jobs binding matches
|
|
16
|
+
* regardless of which form the terminal sends.
|
|
17
|
+
*/
|
|
18
|
+
export interface KeyEventLike {
|
|
19
|
+
readonly name: string;
|
|
20
|
+
readonly ctrl?: boolean;
|
|
21
|
+
readonly shift?: boolean;
|
|
22
|
+
readonly meta?: boolean;
|
|
23
|
+
readonly option?: boolean;
|
|
24
|
+
readonly super?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare function chordFromKeyEvent(key: KeyEventLike): string;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bridges a terminal key event into our normalized chord vocabulary (V2-040).
|
|
3
|
+
*
|
|
4
|
+
* Renderer-independent by design: it takes a plain object shaped like
|
|
5
|
+
* OpenTUI's `KeyEvent` rather than importing `@opentui/core`, so the mapping
|
|
6
|
+
* is unit-testable and the renderer adapter (`composer-editor.tsx`) supplies
|
|
7
|
+
* the real event. Two decisions are protocol-specific and documented here
|
|
8
|
+
* rather than left implicit:
|
|
9
|
+
*
|
|
10
|
+
* - OpenTUI reports Option/Alt as `option` and/or `meta` depending on the
|
|
11
|
+
* terminal; both map to our "alt" modifier. `super` (Cmd/Win) maps to our
|
|
12
|
+
* "meta" modifier, since nothing in the default keymap uses it otherwise.
|
|
13
|
+
* - Ctrl+J commonly arrives as a bare linefeed byte (`name: "linefeed"`,
|
|
14
|
+
* no modifier flags) rather than `{name: "j", ctrl: true}`. It is
|
|
15
|
+
* normalized to the "ctrl+j" chord so the global jobs binding matches
|
|
16
|
+
* regardless of which form the terminal sends.
|
|
17
|
+
*/
|
|
18
|
+
import { normalizeChord } from "./keymap.js";
|
|
19
|
+
const ENTER_NAMES = new Set(["return", "kpenter"]);
|
|
20
|
+
function baseKeyName(name) {
|
|
21
|
+
if (name === "linefeed")
|
|
22
|
+
return "j";
|
|
23
|
+
if (ENTER_NAMES.has(name))
|
|
24
|
+
return "enter";
|
|
25
|
+
return name;
|
|
26
|
+
}
|
|
27
|
+
export function chordFromKeyEvent(key) {
|
|
28
|
+
const isLinefeed = key.name === "linefeed";
|
|
29
|
+
const ctrl = key.ctrl || isLinefeed;
|
|
30
|
+
const alt = Boolean(key.option || key.meta);
|
|
31
|
+
const shift = Boolean(key.shift);
|
|
32
|
+
const meta = Boolean(key.super);
|
|
33
|
+
const parts = [];
|
|
34
|
+
if (ctrl)
|
|
35
|
+
parts.push("ctrl");
|
|
36
|
+
if (alt)
|
|
37
|
+
parts.push("alt");
|
|
38
|
+
if (shift)
|
|
39
|
+
parts.push("shift");
|
|
40
|
+
if (meta)
|
|
41
|
+
parts.push("meta");
|
|
42
|
+
parts.push(baseKeyName(key.name));
|
|
43
|
+
return normalizeChord(parts.join("+"));
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=chord-from-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chord-from-key.js","sourceRoot":"","sources":["../../../src/tui-v2/actions/chord-from-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAW7C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnD,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,GAAG,CAAC;IACpC,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAiB;IACjD,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC;IAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,UAAU,CAAC;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,GAAG;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAElC,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default keymap and conflict validation (V2-033).
|
|
3
|
+
*
|
|
4
|
+
* A chord is a normalized, case-insensitive string ("ctrl+c", "shift+enter",
|
|
5
|
+
* "up"). Bindings are data: help/status text and tests read them so no
|
|
6
|
+
* component hardcodes terminal bytes. `validateKeymap` guarantees a context
|
|
7
|
+
* never binds one chord to two different actions, which is asserted in tests so
|
|
8
|
+
* new bindings cannot silently shadow existing ones.
|
|
9
|
+
*/
|
|
10
|
+
import type { ActionContext, ActionId } from "./action-id.js";
|
|
11
|
+
export interface KeyBinding {
|
|
12
|
+
readonly chord: string;
|
|
13
|
+
readonly action: ActionId;
|
|
14
|
+
readonly context: ActionContext;
|
|
15
|
+
}
|
|
16
|
+
export interface KeymapConflict {
|
|
17
|
+
readonly context: ActionContext;
|
|
18
|
+
readonly chord: string;
|
|
19
|
+
readonly actions: readonly ActionId[];
|
|
20
|
+
}
|
|
21
|
+
/** Normalize a chord to `ctrl+alt+shift+meta+key` with a lowercase key. */
|
|
22
|
+
export declare function normalizeChord(chord: string): string;
|
|
23
|
+
export declare const defaultKeymap: readonly KeyBinding[];
|
|
24
|
+
export declare function validateKeymap(bindings: readonly KeyBinding[]): KeymapConflict[];
|