@prestyj/cli 4.3.209 → 4.3.237
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 +17 -9
- package/dist/cli/auth.d.ts +4 -0
- package/dist/cli/auth.d.ts.map +1 -0
- package/dist/cli/auth.js +344 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/command-routing.d.ts +28 -0
- package/dist/cli/command-routing.d.ts.map +1 -0
- package/dist/cli/command-routing.js +53 -0
- package/dist/cli/command-routing.js.map +1 -0
- package/dist/cli/command-routing.test.d.ts +2 -0
- package/dist/cli/command-routing.test.d.ts.map +1 -0
- package/dist/cli/command-routing.test.js +60 -0
- package/dist/cli/command-routing.test.js.map +1 -0
- package/dist/cli/mcp.d.ts +2 -0
- package/dist/cli/mcp.d.ts.map +1 -0
- package/dist/cli/mcp.js +309 -0
- package/dist/cli/mcp.js.map +1 -0
- package/dist/cli/pixel.d.ts +27 -0
- package/dist/cli/pixel.d.ts.map +1 -0
- package/dist/cli/pixel.js +103 -0
- package/dist/cli/pixel.js.map +1 -0
- package/dist/cli/shared.d.ts +13 -0
- package/dist/cli/shared.d.ts.map +1 -0
- package/dist/cli/shared.js +82 -0
- package/dist/cli/shared.js.map +1 -0
- package/dist/cli.d.ts +4 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +174 -724
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +4 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -1
- package/dist/config.js.map +1 -1
- package/dist/config.test.d.ts +2 -0
- package/dist/config.test.d.ts.map +1 -0
- package/dist/config.test.js +29 -0
- package/dist/config.test.js.map +1 -0
- package/dist/core/agent-session-compaction.test.d.ts +2 -0
- package/dist/core/agent-session-compaction.test.d.ts.map +1 -0
- package/dist/core/agent-session-compaction.test.js +114 -0
- package/dist/core/agent-session-compaction.test.js.map +1 -0
- package/dist/core/agent-session.d.ts +0 -23
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +6 -101
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/checkpoint-store.d.ts +93 -0
- package/dist/core/checkpoint-store.d.ts.map +1 -0
- package/dist/core/checkpoint-store.js +188 -0
- package/dist/core/checkpoint-store.js.map +1 -0
- package/dist/core/checkpoint-store.test.d.ts +2 -0
- package/dist/core/checkpoint-store.test.d.ts.map +1 -0
- package/dist/core/checkpoint-store.test.js +111 -0
- package/dist/core/checkpoint-store.test.js.map +1 -0
- package/dist/core/compaction/compactor.d.ts +4 -0
- package/dist/core/compaction/compactor.d.ts.map +1 -1
- package/dist/core/compaction/compactor.js +81 -28
- package/dist/core/compaction/compactor.js.map +1 -1
- package/dist/core/compaction/compactor.test.js +33 -9
- package/dist/core/compaction/compactor.test.js.map +1 -1
- package/dist/core/compaction/token-estimator.test.js +1 -1
- package/dist/core/continue-replay-inventory.test.d.ts +2 -0
- package/dist/core/continue-replay-inventory.test.d.ts.map +1 -0
- package/dist/core/continue-replay-inventory.test.js +42 -0
- package/dist/core/continue-replay-inventory.test.js.map +1 -0
- package/dist/core/goal-controller.d.ts +4 -0
- package/dist/core/goal-controller.d.ts.map +1 -1
- package/dist/core/goal-controller.js +223 -32
- package/dist/core/goal-controller.js.map +1 -1
- package/dist/core/goal-controller.test.js +387 -22
- package/dist/core/goal-controller.test.js.map +1 -1
- package/dist/core/goal-lifecycle-smoke.test.js +49 -8
- package/dist/core/goal-lifecycle-smoke.test.js.map +1 -1
- package/dist/core/goal-prerequisites.d.ts +23 -0
- package/dist/core/goal-prerequisites.d.ts.map +1 -0
- package/dist/core/goal-prerequisites.js +114 -0
- package/dist/core/goal-prerequisites.js.map +1 -0
- package/dist/core/goal-prerequisites.test.d.ts +2 -0
- package/dist/core/goal-prerequisites.test.d.ts.map +1 -0
- package/dist/core/goal-prerequisites.test.js +118 -0
- package/dist/core/goal-prerequisites.test.js.map +1 -0
- package/dist/core/goal-store.d.ts +12 -1
- package/dist/core/goal-store.d.ts.map +1 -1
- package/dist/core/goal-store.js +146 -40
- package/dist/core/goal-store.js.map +1 -1
- package/dist/core/goal-store.test.js +65 -8
- package/dist/core/goal-store.test.js.map +1 -1
- package/dist/core/goal-verifier.d.ts.map +1 -1
- package/dist/core/goal-verifier.js +4 -1
- package/dist/core/goal-verifier.js.map +1 -1
- package/dist/core/goal-verifier.test.js +43 -0
- package/dist/core/goal-verifier.test.js.map +1 -1
- package/dist/core/goal-worker.d.ts +2 -0
- package/dist/core/goal-worker.d.ts.map +1 -1
- package/dist/core/goal-worker.js +31 -7
- package/dist/core/goal-worker.js.map +1 -1
- package/dist/core/goal-worker.test.js +44 -0
- package/dist/core/goal-worker.test.js.map +1 -1
- package/dist/core/ideal-review.d.ts +20 -0
- package/dist/core/ideal-review.d.ts.map +1 -0
- package/dist/core/ideal-review.js +55 -0
- package/dist/core/ideal-review.js.map +1 -0
- package/dist/core/ideal-review.test.d.ts +2 -0
- package/dist/core/ideal-review.test.d.ts.map +1 -0
- package/dist/core/ideal-review.test.js +59 -0
- package/dist/core/ideal-review.test.js.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/loop-breaker.d.ts +46 -0
- package/dist/core/loop-breaker.d.ts.map +1 -0
- package/dist/core/loop-breaker.js +79 -0
- package/dist/core/loop-breaker.js.map +1 -0
- package/dist/core/loop-breaker.test.d.ts +2 -0
- package/dist/core/loop-breaker.test.d.ts.map +1 -0
- package/dist/core/loop-breaker.test.js +110 -0
- package/dist/core/loop-breaker.test.js.map +1 -0
- package/dist/core/mcp/client.d.ts +20 -0
- package/dist/core/mcp/client.d.ts.map +1 -1
- package/dist/core/mcp/client.js +55 -11
- package/dist/core/mcp/client.js.map +1 -1
- package/dist/core/mcp/defaults.d.ts +7 -0
- package/dist/core/mcp/defaults.d.ts.map +1 -1
- package/dist/core/mcp/defaults.js +14 -0
- package/dist/core/mcp/defaults.js.map +1 -1
- package/dist/core/mcp/index.d.ts +6 -1
- package/dist/core/mcp/index.d.ts.map +1 -1
- package/dist/core/mcp/index.js +3 -1
- package/dist/core/mcp/index.js.map +1 -1
- package/dist/core/mcp/parse-add-command.d.ts +25 -0
- package/dist/core/mcp/parse-add-command.d.ts.map +1 -0
- package/dist/core/mcp/parse-add-command.js +220 -0
- package/dist/core/mcp/parse-add-command.js.map +1 -0
- package/dist/core/mcp/parse-add-command.test.d.ts +2 -0
- package/dist/core/mcp/parse-add-command.test.d.ts.map +1 -0
- package/dist/core/mcp/parse-add-command.test.js +75 -0
- package/dist/core/mcp/parse-add-command.test.js.map +1 -0
- package/dist/core/mcp/store.d.ts +80 -0
- package/dist/core/mcp/store.d.ts.map +1 -0
- package/dist/core/mcp/store.js +157 -0
- package/dist/core/mcp/store.js.map +1 -0
- package/dist/core/mcp/store.test.d.ts +2 -0
- package/dist/core/mcp/store.test.d.ts.map +1 -0
- package/dist/core/mcp/store.test.js +101 -0
- package/dist/core/mcp/store.test.js.map +1 -0
- package/dist/core/model-registry.d.ts +2 -2
- package/dist/core/model-registry.js +4 -4
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-registry.test.js +1 -1
- package/dist/core/model-registry.test.js.map +1 -1
- package/dist/core/prompt-commands.d.ts.map +1 -1
- package/dist/core/prompt-commands.js +64 -894
- package/dist/core/prompt-commands.js.map +1 -1
- package/dist/core/prompt-commands.test.js +49 -41
- package/dist/core/prompt-commands.test.js.map +1 -1
- package/dist/core/regrounding.d.ts +23 -0
- package/dist/core/regrounding.d.ts.map +1 -0
- package/dist/core/regrounding.js +21 -0
- package/dist/core/regrounding.js.map +1 -0
- package/dist/core/regrounding.test.d.ts +2 -0
- package/dist/core/regrounding.test.d.ts.map +1 -0
- package/dist/core/regrounding.test.js +38 -0
- package/dist/core/regrounding.test.js.map +1 -0
- package/dist/core/runtime-mode.d.ts +23 -0
- package/dist/core/runtime-mode.d.ts.map +1 -0
- package/dist/core/runtime-mode.js +30 -0
- package/dist/core/runtime-mode.js.map +1 -0
- package/dist/core/session-manager.d.ts +4 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +20 -0
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-restore-display.test.d.ts +2 -0
- package/dist/core/session-restore-display.test.d.ts.map +1 -0
- package/dist/core/session-restore-display.test.js +78 -0
- package/dist/core/session-restore-display.test.js.map +1 -0
- package/dist/core/settings-manager.d.ts +4 -2
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +3 -6
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts +0 -2
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +10 -15
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/style-packs/index.js +1 -1
- package/dist/core/style-packs/index.js.map +1 -1
- package/dist/core/task-store.d.ts +26 -0
- package/dist/core/task-store.d.ts.map +1 -0
- package/dist/core/task-store.js +147 -0
- package/dist/core/task-store.js.map +1 -0
- package/dist/core/tasks-store.d.ts +24 -0
- package/dist/core/tasks-store.d.ts.map +1 -0
- package/dist/core/tasks-store.js +81 -0
- package/dist/core/tasks-store.js.map +1 -0
- package/dist/core/thinking-level.d.ts +5 -0
- package/dist/core/thinking-level.d.ts.map +1 -0
- package/dist/core/thinking-level.js +59 -0
- package/dist/core/thinking-level.js.map +1 -0
- package/dist/core/thinking-level.test.d.ts +2 -0
- package/dist/core/thinking-level.test.d.ts.map +1 -0
- package/dist/core/thinking-level.test.js +38 -0
- package/dist/core/thinking-level.test.js.map +1 -0
- package/dist/core/verify-commands.js +4 -4
- package/dist/core/verify-commands.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interactive.d.ts.map +1 -1
- package/dist/interactive.js +3 -1
- package/dist/interactive.js.map +1 -1
- package/dist/system-prompt.d.ts +5 -1
- package/dist/system-prompt.d.ts.map +1 -1
- package/dist/system-prompt.js +76 -48
- package/dist/system-prompt.js.map +1 -1
- package/dist/system-prompt.test.js +98 -46
- package/dist/system-prompt.test.js.map +1 -1
- package/dist/tools/bash.d.ts +6 -1
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +21 -3
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/checkpoint-hook.test.d.ts +2 -0
- package/dist/tools/checkpoint-hook.test.d.ts.map +1 -0
- package/dist/tools/checkpoint-hook.test.js +65 -0
- package/dist/tools/checkpoint-hook.test.js.map +1 -0
- package/dist/tools/edit-diff.d.ts +17 -4
- package/dist/tools/edit-diff.d.ts.map +1 -1
- package/dist/tools/edit-diff.js +78 -16
- package/dist/tools/edit-diff.js.map +1 -1
- package/dist/tools/edit-diff.test.js +31 -1
- package/dist/tools/edit-diff.test.js.map +1 -1
- package/dist/tools/edit-robustness.test.d.ts +2 -0
- package/dist/tools/edit-robustness.test.d.ts.map +1 -0
- package/dist/tools/edit-robustness.test.js +415 -0
- package/dist/tools/edit-robustness.test.js.map +1 -0
- package/dist/tools/edit.d.ts +8 -2
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +48 -20
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/edit.test.js +23 -22
- package/dist/tools/edit.test.js.map +1 -1
- package/dist/tools/enter-plan.d.ts +1 -1
- package/dist/tools/enter-plan.d.ts.map +1 -1
- package/dist/tools/enter-plan.js +8 -11
- package/dist/tools/enter-plan.js.map +1 -1
- package/dist/tools/exit-plan.d.ts.map +1 -1
- package/dist/tools/exit-plan.js +8 -9
- package/dist/tools/exit-plan.js.map +1 -1
- package/dist/tools/goal-mode.test.d.ts +2 -0
- package/dist/tools/goal-mode.test.d.ts.map +1 -0
- package/dist/tools/goal-mode.test.js +121 -0
- package/dist/tools/goal-mode.test.js.map +1 -0
- package/dist/tools/goals.d.ts +14 -2
- package/dist/tools/goals.d.ts.map +1 -1
- package/dist/tools/goals.js +257 -26
- package/dist/tools/goals.js.map +1 -1
- package/dist/tools/goals.test.js +365 -1
- package/dist/tools/goals.test.js.map +1 -1
- package/dist/tools/html-extract.d.ts +58 -0
- package/dist/tools/html-extract.d.ts.map +1 -0
- package/dist/tools/html-extract.js +130 -0
- package/dist/tools/html-extract.js.map +1 -0
- package/dist/tools/html-extract.test.d.ts +2 -0
- package/dist/tools/html-extract.test.d.ts.map +1 -0
- package/dist/tools/html-extract.test.js +60 -0
- package/dist/tools/html-extract.test.js.map +1 -0
- package/dist/tools/index.d.ts +16 -4
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +11 -7
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/pdf-extract.d.ts +18 -0
- package/dist/tools/pdf-extract.d.ts.map +1 -0
- package/dist/tools/pdf-extract.js +43 -0
- package/dist/tools/pdf-extract.js.map +1 -0
- package/dist/tools/pdf-extract.test.d.ts +2 -0
- package/dist/tools/pdf-extract.test.d.ts.map +1 -0
- package/dist/tools/pdf-extract.test.js +15 -0
- package/dist/tools/pdf-extract.test.js.map +1 -0
- package/dist/tools/plan-mode.test.js +82 -221
- package/dist/tools/plan-mode.test.js.map +1 -1
- package/dist/tools/prompt-hints.d.ts.map +1 -1
- package/dist/tools/prompt-hints.js +6 -9
- package/dist/tools/prompt-hints.js.map +1 -1
- package/dist/tools/read-only-bash.d.ts +13 -0
- package/dist/tools/read-only-bash.d.ts.map +1 -0
- package/dist/tools/read-only-bash.js +155 -0
- package/dist/tools/read-only-bash.js.map +1 -0
- package/dist/tools/read-only-bash.test.d.ts +2 -0
- package/dist/tools/read-only-bash.test.d.ts.map +1 -0
- package/dist/tools/read-only-bash.test.js +47 -0
- package/dist/tools/read-only-bash.test.js.map +1 -0
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/read.js +14 -1
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/read.test.js +4 -0
- package/dist/tools/read.test.js.map +1 -1
- package/dist/tools/screenshot.d.ts +25 -0
- package/dist/tools/screenshot.d.ts.map +1 -0
- package/dist/tools/screenshot.js +165 -0
- package/dist/tools/screenshot.js.map +1 -0
- package/dist/tools/screenshot.test.d.ts +2 -0
- package/dist/tools/screenshot.test.d.ts.map +1 -0
- package/dist/tools/screenshot.test.js +145 -0
- package/dist/tools/screenshot.test.js.map +1 -0
- package/dist/tools/subagent.d.ts +7 -2
- package/dist/tools/subagent.d.ts.map +1 -1
- package/dist/tools/subagent.js +32 -11
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +22 -58
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/web-fetch.d.ts +16 -1
- package/dist/tools/web-fetch.d.ts.map +1 -1
- package/dist/tools/web-fetch.js +357 -45
- package/dist/tools/web-fetch.js.map +1 -1
- package/dist/tools/web-fetch.test.js +263 -2
- package/dist/tools/web-fetch.test.js.map +1 -1
- package/dist/tools/web-search.d.ts +14 -0
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tools/web-search.js +321 -35
- package/dist/tools/web-search.js.map +1 -1
- package/dist/tools/web-search.test.js +144 -1
- package/dist/tools/web-search.test.js.map +1 -1
- package/dist/tools/write.d.ts +8 -2
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +36 -9
- package/dist/tools/write.js.map +1 -1
- package/dist/tools/write.test.js +0 -16
- package/dist/tools/write.test.js.map +1 -1
- package/dist/ui/App.d.ts +52 -272
- package/dist/ui/App.d.ts.map +1 -1
- package/dist/ui/App.js +1606 -2199
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/activity-phrases.d.ts.map +1 -1
- package/dist/ui/activity-phrases.js +0 -2
- package/dist/ui/activity-phrases.js.map +1 -1
- package/dist/ui/app-items.d.ts +276 -0
- package/dist/ui/app-items.d.ts.map +1 -0
- package/dist/ui/app-items.js +52 -0
- package/dist/ui/app-items.js.map +1 -0
- package/dist/ui/app-items.test.d.ts +2 -0
- package/dist/ui/app-items.test.d.ts.map +1 -0
- package/dist/ui/app-items.test.js +38 -0
- package/dist/ui/app-items.test.js.map +1 -0
- package/dist/ui/app-state-persistence.test.js +45 -160
- package/dist/ui/app-state-persistence.test.js.map +1 -1
- package/dist/ui/assistant-stream-flush-parity.test.d.ts +2 -0
- package/dist/ui/assistant-stream-flush-parity.test.d.ts.map +1 -0
- package/dist/ui/assistant-stream-flush-parity.test.js +85 -0
- package/dist/ui/assistant-stream-flush-parity.test.js.map +1 -0
- package/dist/ui/chat-layout-pinning.test.d.ts +2 -0
- package/dist/ui/chat-layout-pinning.test.d.ts.map +1 -0
- package/dist/ui/chat-layout-pinning.test.js +525 -0
- package/dist/ui/chat-layout-pinning.test.js.map +1 -0
- package/dist/ui/components/ActivityIndicator.d.ts +1 -2
- package/dist/ui/components/ActivityIndicator.d.ts.map +1 -1
- package/dist/ui/components/ActivityIndicator.js +63 -94
- package/dist/ui/components/ActivityIndicator.js.map +1 -1
- package/dist/ui/components/AnimationContext.d.ts.map +1 -1
- package/dist/ui/components/AnimationContext.js +3 -5
- package/dist/ui/components/AnimationContext.js.map +1 -1
- package/dist/ui/components/AssistantMessage.d.ts +6 -2
- package/dist/ui/components/AssistantMessage.d.ts.map +1 -1
- package/dist/ui/components/AssistantMessage.js +9 -4
- package/dist/ui/components/AssistantMessage.js.map +1 -1
- package/dist/ui/components/AssistantMessage.test.d.ts +2 -0
- package/dist/ui/components/AssistantMessage.test.d.ts.map +1 -0
- package/dist/ui/components/AssistantMessage.test.js +387 -0
- package/dist/ui/components/AssistantMessage.test.js.map +1 -0
- package/dist/ui/components/BackgroundTasksBar.d.ts +1 -3
- package/dist/ui/components/BackgroundTasksBar.d.ts.map +1 -1
- package/dist/ui/components/BackgroundTasksBar.js +8 -10
- package/dist/ui/components/BackgroundTasksBar.js.map +1 -1
- package/dist/ui/components/Banner.d.ts +1 -2
- package/dist/ui/components/Banner.d.ts.map +1 -1
- package/dist/ui/components/Banner.js +9 -4
- package/dist/ui/components/Banner.js.map +1 -1
- package/dist/ui/components/ChatFooterPane.d.ts +25 -0
- package/dist/ui/components/ChatFooterPane.d.ts.map +1 -0
- package/dist/ui/components/ChatFooterPane.js +15 -0
- package/dist/ui/components/ChatFooterPane.js.map +1 -0
- package/dist/ui/components/ChatInputStack.d.ts +36 -0
- package/dist/ui/components/ChatInputStack.d.ts.map +1 -0
- package/dist/ui/components/ChatInputStack.js +10 -0
- package/dist/ui/components/ChatInputStack.js.map +1 -0
- package/dist/ui/components/ChatLayout.d.ts +37 -0
- package/dist/ui/components/ChatLayout.d.ts.map +1 -0
- package/dist/ui/components/ChatLayout.js +21 -0
- package/dist/ui/components/ChatLayout.js.map +1 -0
- package/dist/ui/components/ChatLivePane.d.ts +18 -0
- package/dist/ui/components/ChatLivePane.d.ts.map +1 -0
- package/dist/ui/components/ChatLivePane.js +22 -0
- package/dist/ui/components/ChatLivePane.js.map +1 -0
- package/dist/ui/components/ChatScreen.d.ts +136 -0
- package/dist/ui/components/ChatScreen.d.ts.map +1 -0
- package/dist/ui/components/ChatScreen.js +16 -0
- package/dist/ui/components/ChatScreen.js.map +1 -0
- package/dist/ui/components/ChatStatusRow.d.ts +34 -0
- package/dist/ui/components/ChatStatusRow.d.ts.map +1 -0
- package/dist/ui/components/ChatStatusRow.js +11 -0
- package/dist/ui/components/ChatStatusRow.js.map +1 -0
- package/dist/ui/components/CompactionNotice.d.ts +4 -2
- package/dist/ui/components/CompactionNotice.d.ts.map +1 -1
- package/dist/ui/components/CompactionNotice.js +4 -4
- package/dist/ui/components/CompactionNotice.js.map +1 -1
- package/dist/ui/components/Footer.d.ts +27 -6
- package/dist/ui/components/Footer.d.ts.map +1 -1
- package/dist/ui/components/Footer.js +75 -30
- package/dist/ui/components/Footer.js.map +1 -1
- package/dist/ui/components/FooterStatusRow.d.ts +20 -0
- package/dist/ui/components/FooterStatusRow.d.ts.map +1 -0
- package/dist/ui/components/FooterStatusRow.js +10 -0
- package/dist/ui/components/FooterStatusRow.js.map +1 -0
- package/dist/ui/components/FullScreenOverlayRouter.d.ts +19 -0
- package/dist/ui/components/FullScreenOverlayRouter.d.ts.map +1 -0
- package/dist/ui/components/FullScreenOverlayRouter.js +18 -0
- package/dist/ui/components/FullScreenOverlayRouter.js.map +1 -0
- package/dist/ui/components/GoalOverlay.d.ts +28 -20
- package/dist/ui/components/GoalOverlay.d.ts.map +1 -1
- package/dist/ui/components/GoalOverlay.js +283 -253
- package/dist/ui/components/GoalOverlay.js.map +1 -1
- package/dist/ui/components/GoalStatusBar.d.ts.map +1 -1
- package/dist/ui/components/GoalStatusBar.js +2 -1
- package/dist/ui/components/GoalStatusBar.js.map +1 -1
- package/dist/ui/components/IdealHookMessage.d.ts +14 -0
- package/dist/ui/components/IdealHookMessage.d.ts.map +1 -0
- package/dist/ui/components/IdealHookMessage.js +26 -0
- package/dist/ui/components/IdealHookMessage.js.map +1 -0
- package/dist/ui/components/InputArea.d.ts +31 -6
- package/dist/ui/components/InputArea.d.ts.map +1 -1
- package/dist/ui/components/InputArea.js +208 -50
- package/dist/ui/components/InputArea.js.map +1 -1
- package/dist/ui/components/InputArea.test.js +11 -1
- package/dist/ui/components/InputArea.test.js.map +1 -1
- package/dist/ui/components/LiveToolPanel.d.ts +30 -0
- package/dist/ui/components/LiveToolPanel.d.ts.map +1 -0
- package/dist/ui/components/LiveToolPanel.js +66 -0
- package/dist/ui/components/LiveToolPanel.js.map +1 -0
- package/dist/ui/components/Markdown.d.ts +11 -11
- package/dist/ui/components/Markdown.d.ts.map +1 -1
- package/dist/ui/components/Markdown.js +28 -198
- package/dist/ui/components/Markdown.js.map +1 -1
- package/dist/ui/components/ModelSelector.d.ts.map +1 -1
- package/dist/ui/components/ModelSelector.js +18 -18
- package/dist/ui/components/ModelSelector.js.map +1 -1
- package/dist/ui/components/PlanModeLogo.d.ts +3 -0
- package/dist/ui/components/PlanModeLogo.d.ts.map +1 -0
- package/dist/ui/components/PlanModeLogo.js +49 -0
- package/dist/ui/components/PlanModeLogo.js.map +1 -0
- package/dist/ui/components/PlanOverlay.d.ts +7 -0
- package/dist/ui/components/PlanOverlay.d.ts.map +1 -1
- package/dist/ui/components/PlanOverlay.js +17 -3
- package/dist/ui/components/PlanOverlay.js.map +1 -1
- package/dist/ui/components/PlanOverlay.test.d.ts +2 -0
- package/dist/ui/components/PlanOverlay.test.d.ts.map +1 -0
- package/dist/ui/components/PlanOverlay.test.js +24 -0
- package/dist/ui/components/PlanOverlay.test.js.map +1 -0
- package/dist/ui/components/QueueIndicator.d.ts +9 -0
- package/dist/ui/components/QueueIndicator.d.ts.map +1 -0
- package/dist/ui/components/QueueIndicator.js +9 -0
- package/dist/ui/components/QueueIndicator.js.map +1 -0
- package/dist/ui/components/RewindOverlay.d.ts +18 -0
- package/dist/ui/components/RewindOverlay.d.ts.map +1 -0
- package/dist/ui/components/RewindOverlay.js +52 -0
- package/dist/ui/components/RewindOverlay.js.map +1 -0
- package/dist/ui/components/SelectList.d.ts.map +1 -1
- package/dist/ui/components/SelectList.js +5 -0
- package/dist/ui/components/SelectList.js.map +1 -1
- package/dist/ui/components/ServerToolExecution.d.ts +2 -0
- package/dist/ui/components/ServerToolExecution.d.ts.map +1 -1
- package/dist/ui/components/ServerToolExecution.js +7 -23
- package/dist/ui/components/ServerToolExecution.js.map +1 -1
- package/dist/ui/components/SessionSummary.d.ts +5 -0
- package/dist/ui/components/SessionSummary.d.ts.map +1 -0
- package/dist/ui/components/SessionSummary.js +32 -0
- package/dist/ui/components/SessionSummary.js.map +1 -0
- package/dist/ui/components/SlashCommandMenu.d.ts +4 -3
- package/dist/ui/components/SlashCommandMenu.d.ts.map +1 -1
- package/dist/ui/components/SlashCommandMenu.js +38 -26
- package/dist/ui/components/SlashCommandMenu.js.map +1 -1
- package/dist/ui/components/SlashStyledSelectList.d.ts +21 -0
- package/dist/ui/components/SlashStyledSelectList.d.ts.map +1 -0
- package/dist/ui/components/SlashStyledSelectList.js +71 -0
- package/dist/ui/components/SlashStyledSelectList.js.map +1 -0
- package/dist/ui/components/StreamingArea.d.ts +11 -2
- package/dist/ui/components/StreamingArea.d.ts.map +1 -1
- package/dist/ui/components/StreamingArea.js +20 -23
- package/dist/ui/components/StreamingArea.js.map +1 -1
- package/dist/ui/components/StreamingArea.test.d.ts +2 -0
- package/dist/ui/components/StreamingArea.test.d.ts.map +1 -0
- package/dist/ui/components/StreamingArea.test.js +18 -0
- package/dist/ui/components/StreamingArea.test.js.map +1 -0
- package/dist/ui/components/SubAgentPanel.d.ts +2 -1
- package/dist/ui/components/SubAgentPanel.d.ts.map +1 -1
- package/dist/ui/components/SubAgentPanel.js +4 -3
- package/dist/ui/components/SubAgentPanel.js.map +1 -1
- package/dist/ui/components/TaskOverlay.d.ts.map +1 -1
- package/dist/ui/components/TaskOverlay.js +53 -82
- package/dist/ui/components/TaskOverlay.js.map +1 -1
- package/dist/ui/components/TaskPickerMenu.d.ts +9 -0
- package/dist/ui/components/TaskPickerMenu.d.ts.map +1 -0
- package/dist/ui/components/TaskPickerMenu.js +33 -0
- package/dist/ui/components/TaskPickerMenu.js.map +1 -0
- package/dist/ui/components/ThemeSelector.js +2 -2
- package/dist/ui/components/ThemeSelector.js.map +1 -1
- package/dist/ui/components/ToolExecution.d.ts +2 -0
- package/dist/ui/components/ToolExecution.d.ts.map +1 -1
- package/dist/ui/components/ToolExecution.js +18 -52
- package/dist/ui/components/ToolExecution.js.map +1 -1
- package/dist/ui/components/ToolGroupExecution.d.ts +6 -2
- package/dist/ui/components/ToolGroupExecution.d.ts.map +1 -1
- package/dist/ui/components/ToolGroupExecution.js +15 -147
- package/dist/ui/components/ToolGroupExecution.js.map +1 -1
- package/dist/ui/components/ToolUseLoader.d.ts +3 -1
- package/dist/ui/components/ToolUseLoader.d.ts.map +1 -1
- package/dist/ui/components/ToolUseLoader.js +2 -2
- package/dist/ui/components/ToolUseLoader.js.map +1 -1
- package/dist/ui/components/TranscriptViewport.d.ts +34 -0
- package/dist/ui/components/TranscriptViewport.d.ts.map +1 -0
- package/dist/ui/components/TranscriptViewport.js +45 -0
- package/dist/ui/components/TranscriptViewport.js.map +1 -0
- package/dist/ui/components/UserMessage.d.ts.map +1 -1
- package/dist/ui/components/UserMessage.js +15 -10
- package/dist/ui/components/UserMessage.js.map +1 -1
- package/dist/ui/components/UserMessage.test.d.ts +2 -0
- package/dist/ui/components/UserMessage.test.d.ts.map +1 -0
- package/dist/ui/components/UserMessage.test.js +39 -0
- package/dist/ui/components/UserMessage.test.js.map +1 -0
- package/dist/ui/components/index.d.ts +5 -0
- package/dist/ui/components/index.d.ts.map +1 -1
- package/dist/ui/components/index.js +5 -0
- package/dist/ui/components/index.js.map +1 -1
- package/dist/ui/duration-format.d.ts +2 -0
- package/dist/ui/duration-format.d.ts.map +1 -0
- package/dist/ui/duration-format.js +9 -0
- package/dist/ui/duration-format.js.map +1 -0
- package/dist/ui/duration-summary.d.ts +2 -0
- package/dist/ui/duration-summary.d.ts.map +1 -0
- package/dist/ui/duration-summary.js +66 -0
- package/dist/ui/duration-summary.js.map +1 -0
- package/dist/ui/error-item.d.ts +8 -0
- package/dist/ui/error-item.d.ts.map +1 -0
- package/dist/ui/error-item.js +32 -0
- package/dist/ui/error-item.js.map +1 -0
- package/dist/ui/footer-jump-regression.test.d.ts +2 -0
- package/dist/ui/footer-jump-regression.test.d.ts.map +1 -0
- package/dist/ui/footer-jump-regression.test.js +177 -0
- package/dist/ui/footer-jump-regression.test.js.map +1 -0
- package/dist/ui/footer-status-layout.test.js +22 -7
- package/dist/ui/footer-status-layout.test.js.map +1 -1
- package/dist/ui/goal-events.d.ts.map +1 -1
- package/dist/ui/goal-events.js +14 -6
- package/dist/ui/goal-events.js.map +1 -1
- package/dist/ui/goal-events.test.js +40 -2
- package/dist/ui/goal-events.test.js.map +1 -1
- package/dist/ui/goal-lifecycle-orchestration.test.d.ts +2 -0
- package/dist/ui/goal-lifecycle-orchestration.test.d.ts.map +1 -0
- package/dist/ui/goal-lifecycle-orchestration.test.js +512 -0
- package/dist/ui/goal-lifecycle-orchestration.test.js.map +1 -0
- package/dist/ui/goal-overlay.test.js +122 -44
- package/dist/ui/goal-overlay.test.js.map +1 -1
- package/dist/ui/goal-status-bar.test.js +29 -0
- package/dist/ui/goal-status-bar.test.js.map +1 -1
- package/dist/ui/goal-summary.d.ts +14 -0
- package/dist/ui/goal-summary.d.ts.map +1 -0
- package/dist/ui/goal-summary.js +194 -0
- package/dist/ui/goal-summary.js.map +1 -0
- package/dist/ui/hooks/useAgentLoop.d.ts +25 -4
- package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
- package/dist/ui/hooks/useAgentLoop.js +197 -22
- package/dist/ui/hooks/useAgentLoop.js.map +1 -1
- package/dist/ui/hooks/useAgentLoop.test.d.ts +2 -0
- package/dist/ui/hooks/useAgentLoop.test.d.ts.map +1 -0
- package/dist/ui/hooks/useAgentLoop.test.js +8 -0
- package/dist/ui/hooks/useAgentLoop.test.js.map +1 -0
- package/dist/ui/hooks/useChatLayoutMeasurements.d.ts +45 -0
- package/dist/ui/hooks/useChatLayoutMeasurements.d.ts.map +1 -0
- package/dist/ui/hooks/useChatLayoutMeasurements.js +97 -0
- package/dist/ui/hooks/useChatLayoutMeasurements.js.map +1 -0
- package/dist/ui/hooks/useContextCompaction.d.ts +41 -0
- package/dist/ui/hooks/useContextCompaction.d.ts.map +1 -0
- package/dist/ui/hooks/useContextCompaction.js +149 -0
- package/dist/ui/hooks/useContextCompaction.js.map +1 -0
- package/dist/ui/hooks/useModeState.d.ts +56 -0
- package/dist/ui/hooks/useModeState.d.ts.map +1 -0
- package/dist/ui/hooks/useModeState.js +65 -0
- package/dist/ui/hooks/useModeState.js.map +1 -0
- package/dist/ui/hooks/usePixelFixFlow.d.ts +57 -0
- package/dist/ui/hooks/usePixelFixFlow.d.ts.map +1 -0
- package/dist/ui/hooks/usePixelFixFlow.js +102 -0
- package/dist/ui/hooks/usePixelFixFlow.js.map +1 -0
- package/dist/ui/hooks/useSessionPersistence.d.ts +34 -0
- package/dist/ui/hooks/useSessionPersistence.d.ts.map +1 -0
- package/dist/ui/hooks/useSessionPersistence.js +67 -0
- package/dist/ui/hooks/useSessionPersistence.js.map +1 -0
- package/dist/ui/hooks/useTaskPickerController.d.ts +19 -0
- package/dist/ui/hooks/useTaskPickerController.d.ts.map +1 -0
- package/dist/ui/hooks/useTaskPickerController.js +41 -0
- package/dist/ui/hooks/useTaskPickerController.js.map +1 -0
- package/dist/ui/hooks/useTerminalSize.d.ts +13 -10
- package/dist/ui/hooks/useTerminalSize.d.ts.map +1 -1
- package/dist/ui/hooks/useTerminalSize.js +21 -16
- package/dist/ui/hooks/useTerminalSize.js.map +1 -1
- package/dist/ui/hooks/useTranscriptHistory.d.ts +48 -0
- package/dist/ui/hooks/useTranscriptHistory.d.ts.map +1 -0
- package/dist/ui/hooks/useTranscriptHistory.js +113 -0
- package/dist/ui/hooks/useTranscriptHistory.js.map +1 -0
- package/dist/ui/hooks/useTranscriptHistory.test.d.ts +2 -0
- package/dist/ui/hooks/useTranscriptHistory.test.d.ts.map +1 -0
- package/dist/ui/hooks/useTranscriptHistory.test.js +61 -0
- package/dist/ui/hooks/useTranscriptHistory.test.js.map +1 -0
- package/dist/ui/hooks/useTranscriptScroll.d.ts +30 -0
- package/dist/ui/hooks/useTranscriptScroll.d.ts.map +1 -0
- package/dist/ui/hooks/useTranscriptScroll.js +44 -0
- package/dist/ui/hooks/useTranscriptScroll.js.map +1 -0
- package/dist/ui/hooks/useTranscriptScroll.test.d.ts +2 -0
- package/dist/ui/hooks/useTranscriptScroll.test.d.ts.map +1 -0
- package/dist/ui/hooks/useTranscriptScroll.test.js +119 -0
- package/dist/ui/hooks/useTranscriptScroll.test.js.map +1 -0
- package/dist/ui/item-helpers.d.ts +26 -0
- package/dist/ui/item-helpers.d.ts.map +1 -0
- package/dist/ui/item-helpers.js +114 -0
- package/dist/ui/item-helpers.js.map +1 -0
- package/dist/ui/layout-decisions.d.ts +81 -0
- package/dist/ui/layout-decisions.d.ts.map +1 -0
- package/dist/ui/layout-decisions.js +89 -0
- package/dist/ui/layout-decisions.js.map +1 -0
- package/dist/ui/live-area-clamp.test.d.ts +2 -0
- package/dist/ui/live-area-clamp.test.d.ts.map +1 -0
- package/dist/ui/live-area-clamp.test.js +88 -0
- package/dist/ui/live-area-clamp.test.js.map +1 -0
- package/dist/ui/live-area-height.d.ts +35 -0
- package/dist/ui/live-area-height.d.ts.map +1 -0
- package/dist/ui/live-area-height.js +80 -0
- package/dist/ui/live-area-height.js.map +1 -0
- package/dist/ui/live-area-height.test.d.ts +2 -0
- package/dist/ui/live-area-height.test.d.ts.map +1 -0
- package/dist/ui/live-area-height.test.js +67 -0
- package/dist/ui/live-area-height.test.js.map +1 -0
- package/dist/ui/live-frame-height.test.d.ts +2 -0
- package/dist/ui/live-frame-height.test.d.ts.map +1 -0
- package/dist/ui/live-frame-height.test.js +116 -0
- package/dist/ui/live-frame-height.test.js.map +1 -0
- package/dist/ui/live-item-flush.d.ts +2 -2
- package/dist/ui/live-item-flush.d.ts.map +1 -1
- package/dist/ui/live-item-flush.js +8 -4
- package/dist/ui/live-item-flush.js.map +1 -1
- package/dist/ui/login.js +1 -1
- package/dist/ui/long-prompt-regression-harness.test.d.ts +2 -0
- package/dist/ui/long-prompt-regression-harness.test.d.ts.map +1 -0
- package/dist/ui/long-prompt-regression-harness.test.js +195 -0
- package/dist/ui/long-prompt-regression-harness.test.js.map +1 -0
- package/dist/ui/mcp.d.ts +62 -0
- package/dist/ui/mcp.d.ts.map +1 -0
- package/dist/ui/mcp.js +306 -0
- package/dist/ui/mcp.js.map +1 -0
- package/dist/ui/plan-overlay.test.js +7 -29
- package/dist/ui/plan-overlay.test.js.map +1 -1
- package/dist/ui/prompt-routing.d.ts +11 -0
- package/dist/ui/prompt-routing.d.ts.map +1 -0
- package/dist/ui/prompt-routing.js +61 -0
- package/dist/ui/prompt-routing.js.map +1 -0
- package/dist/ui/queued-message.test.d.ts +2 -0
- package/dist/ui/queued-message.test.d.ts.map +1 -0
- package/dist/ui/queued-message.test.js +162 -0
- package/dist/ui/queued-message.test.js.map +1 -0
- package/dist/ui/render.d.ts +38 -34
- package/dist/ui/render.d.ts.map +1 -1
- package/dist/ui/render.js +128 -41
- package/dist/ui/render.js.map +1 -1
- package/dist/ui/render.test.d.ts +2 -0
- package/dist/ui/render.test.d.ts.map +1 -0
- package/dist/ui/render.test.js +16 -0
- package/dist/ui/render.test.js.map +1 -0
- package/dist/ui/scroll-stabilization.test.js +1 -7
- package/dist/ui/scroll-stabilization.test.js.map +1 -1
- package/dist/ui/session-summary.d.ts +63 -0
- package/dist/ui/session-summary.d.ts.map +1 -0
- package/dist/ui/session-summary.js +81 -0
- package/dist/ui/session-summary.js.map +1 -0
- package/dist/ui/slash-command-images.test.js +12 -11
- package/dist/ui/slash-command-images.test.js.map +1 -1
- package/dist/ui/stores/transcript-scroll-store.d.ts +27 -0
- package/dist/ui/stores/transcript-scroll-store.d.ts.map +1 -0
- package/dist/ui/stores/transcript-scroll-store.js +73 -0
- package/dist/ui/stores/transcript-scroll-store.js.map +1 -0
- package/dist/ui/stores/transcript-scroll-store.test.d.ts +2 -0
- package/dist/ui/stores/transcript-scroll-store.test.d.ts.map +1 -0
- package/dist/ui/stores/transcript-scroll-store.test.js +73 -0
- package/dist/ui/stores/transcript-scroll-store.test.js.map +1 -0
- package/dist/ui/streaming-flush-bounce.test.d.ts +2 -0
- package/dist/ui/streaming-flush-bounce.test.d.ts.map +1 -0
- package/dist/ui/streaming-flush-bounce.test.js +156 -0
- package/dist/ui/streaming-flush-bounce.test.js.map +1 -0
- package/dist/ui/submit-prompt-command.d.ts +49 -0
- package/dist/ui/submit-prompt-command.d.ts.map +1 -0
- package/dist/ui/submit-prompt-command.js +107 -0
- package/dist/ui/submit-prompt-command.js.map +1 -0
- package/dist/ui/submit-slash-commands.d.ts +12 -0
- package/dist/ui/submit-slash-commands.d.ts.map +1 -0
- package/dist/ui/submit-slash-commands.js +32 -0
- package/dist/ui/submit-slash-commands.js.map +1 -0
- package/dist/ui/terminal-history-format.d.ts +43 -0
- package/dist/ui/terminal-history-format.d.ts.map +1 -0
- package/dist/ui/terminal-history-format.js +133 -0
- package/dist/ui/terminal-history-format.js.map +1 -0
- package/dist/ui/terminal-history-retry-dedup.test.d.ts +2 -0
- package/dist/ui/terminal-history-retry-dedup.test.d.ts.map +1 -0
- package/dist/ui/terminal-history-retry-dedup.test.js +61 -0
- package/dist/ui/terminal-history-retry-dedup.test.js.map +1 -0
- package/dist/ui/terminal-history-spacing.d.ts +2 -0
- package/dist/ui/terminal-history-spacing.d.ts.map +1 -0
- package/dist/ui/terminal-history-spacing.js +2 -0
- package/dist/ui/terminal-history-spacing.js.map +1 -0
- package/dist/ui/terminal-history-status-renderers.d.ts +15 -0
- package/dist/ui/terminal-history-status-renderers.d.ts.map +1 -0
- package/dist/ui/terminal-history-status-renderers.js +99 -0
- package/dist/ui/terminal-history-status-renderers.js.map +1 -0
- package/dist/ui/terminal-history.d.ts +26 -0
- package/dist/ui/terminal-history.d.ts.map +1 -0
- package/dist/ui/terminal-history.js +916 -0
- package/dist/ui/terminal-history.js.map +1 -0
- package/dist/ui/terminal-history.test.d.ts +2 -0
- package/dist/ui/terminal-history.test.d.ts.map +1 -0
- package/dist/ui/terminal-history.test.js +550 -0
- package/dist/ui/terminal-history.test.js.map +1 -0
- package/dist/ui/testing/screen-recorder.d.ts +29 -0
- package/dist/ui/testing/screen-recorder.d.ts.map +1 -0
- package/dist/ui/testing/screen-recorder.js +179 -0
- package/dist/ui/testing/screen-recorder.js.map +1 -0
- package/dist/ui/thinking-level-cycle.test.d.ts +2 -0
- package/dist/ui/thinking-level-cycle.test.d.ts.map +1 -0
- package/dist/ui/thinking-level-cycle.test.js +45 -0
- package/dist/ui/thinking-level-cycle.test.js.map +1 -0
- package/dist/ui/thinking-level.d.ts +2 -0
- package/dist/ui/thinking-level.d.ts.map +1 -0
- package/dist/ui/thinking-level.js +2 -0
- package/dist/ui/thinking-level.js.map +1 -0
- package/dist/ui/tool-group-summary.d.ts +24 -0
- package/dist/ui/tool-group-summary.d.ts.map +1 -0
- package/dist/ui/tool-group-summary.js +233 -0
- package/dist/ui/tool-group-summary.js.map +1 -0
- package/dist/ui/tool-group-summary.test.d.ts +2 -0
- package/dist/ui/tool-group-summary.test.d.ts.map +1 -0
- package/dist/ui/tool-group-summary.test.js +79 -0
- package/dist/ui/tool-group-summary.test.js.map +1 -0
- package/dist/ui/tool-line-summary.d.ts +29 -0
- package/dist/ui/tool-line-summary.d.ts.map +1 -0
- package/dist/ui/tool-line-summary.js +153 -0
- package/dist/ui/tool-line-summary.js.map +1 -0
- package/dist/ui/transcript/MiscRows.d.ts +26 -0
- package/dist/ui/transcript/MiscRows.d.ts.map +1 -0
- package/dist/ui/transcript/MiscRows.js +68 -0
- package/dist/ui/transcript/MiscRows.js.map +1 -0
- package/dist/ui/transcript/StatusRow.d.ts +14 -0
- package/dist/ui/transcript/StatusRow.d.ts.map +1 -0
- package/dist/ui/transcript/StatusRow.js +14 -0
- package/dist/ui/transcript/StatusRow.js.map +1 -0
- package/dist/ui/transcript/ToolRows.d.ts +20 -0
- package/dist/ui/transcript/ToolRows.d.ts.map +1 -0
- package/dist/ui/transcript/ToolRows.js +25 -0
- package/dist/ui/transcript/ToolRows.js.map +1 -0
- package/dist/ui/transcript/TranscriptItemFrame.d.ts +8 -0
- package/dist/ui/transcript/TranscriptItemFrame.d.ts.map +1 -0
- package/dist/ui/transcript/TranscriptItemFrame.js +9 -0
- package/dist/ui/transcript/TranscriptItemFrame.js.map +1 -0
- package/dist/ui/transcript/TranscriptRenderer.d.ts +22 -0
- package/dist/ui/transcript/TranscriptRenderer.d.ts.map +1 -0
- package/dist/ui/transcript/TranscriptRenderer.js +111 -0
- package/dist/ui/transcript/TranscriptRenderer.js.map +1 -0
- package/dist/ui/transcript/presentation.d.ts +61 -0
- package/dist/ui/transcript/presentation.d.ts.map +1 -0
- package/dist/ui/transcript/presentation.js +86 -0
- package/dist/ui/transcript/presentation.js.map +1 -0
- package/dist/ui/transcript/spacing.d.ts +56 -0
- package/dist/ui/transcript/spacing.d.ts.map +1 -0
- package/dist/ui/transcript/spacing.js +129 -0
- package/dist/ui/transcript/spacing.js.map +1 -0
- package/dist/ui/transcript/spacing.test.d.ts +2 -0
- package/dist/ui/transcript/spacing.test.d.ts.map +1 -0
- package/dist/ui/transcript/spacing.test.js +193 -0
- package/dist/ui/transcript/spacing.test.js.map +1 -0
- package/dist/ui/transcript/tool-presentation.d.ts +12 -0
- package/dist/ui/transcript/tool-presentation.d.ts.map +1 -0
- package/dist/ui/transcript/tool-presentation.js +55 -0
- package/dist/ui/transcript/tool-presentation.js.map +1 -0
- package/dist/ui/transcript/transcript-lines.d.ts +32 -0
- package/dist/ui/transcript/transcript-lines.d.ts.map +1 -0
- package/dist/ui/transcript/transcript-lines.js +86 -0
- package/dist/ui/transcript/transcript-lines.js.map +1 -0
- package/dist/ui/transcript/transcript-lines.test.d.ts +2 -0
- package/dist/ui/transcript/transcript-lines.test.d.ts.map +1 -0
- package/dist/ui/transcript/transcript-lines.test.js +76 -0
- package/dist/ui/transcript/transcript-lines.test.js.map +1 -0
- package/dist/ui/transcript-viewport-pinning.test.d.ts +2 -0
- package/dist/ui/transcript-viewport-pinning.test.d.ts.map +1 -0
- package/dist/ui/transcript-viewport-pinning.test.js +148 -0
- package/dist/ui/transcript-viewport-pinning.test.js.map +1 -0
- package/dist/ui/tui-history-parity.test.d.ts +2 -0
- package/dist/ui/tui-history-parity.test.d.ts.map +1 -0
- package/dist/ui/tui-history-parity.test.js +381 -0
- package/dist/ui/tui-history-parity.test.js.map +1 -0
- package/dist/ui/tui-simulation.test.d.ts +2 -0
- package/dist/ui/tui-simulation.test.d.ts.map +1 -0
- package/dist/ui/tui-simulation.test.js +139 -0
- package/dist/ui/tui-simulation.test.js.map +1 -0
- package/dist/ui/tui-terminal-recorder.test.d.ts +2 -0
- package/dist/ui/tui-terminal-recorder.test.d.ts.map +1 -0
- package/dist/ui/tui-terminal-recorder.test.js +134 -0
- package/dist/ui/tui-terminal-recorder.test.js.map +1 -0
- package/dist/ui/utils/assistant-stream-split.d.ts +23 -0
- package/dist/ui/utils/assistant-stream-split.d.ts.map +1 -0
- package/dist/ui/utils/assistant-stream-split.js +41 -0
- package/dist/ui/utils/assistant-stream-split.js.map +1 -0
- package/dist/ui/utils/assistant-stream-split.test.d.ts +2 -0
- package/dist/ui/utils/assistant-stream-split.test.d.ts.map +1 -0
- package/dist/ui/utils/assistant-stream-split.test.js +40 -0
- package/dist/ui/utils/assistant-stream-split.test.js.map +1 -0
- package/dist/ui/utils/latex-to-unicode.d.ts +22 -0
- package/dist/ui/utils/latex-to-unicode.d.ts.map +1 -0
- package/dist/ui/utils/latex-to-unicode.js +538 -0
- package/dist/ui/utils/latex-to-unicode.js.map +1 -0
- package/dist/ui/utils/markdown-renderer.d.ts +20 -0
- package/dist/ui/utils/markdown-renderer.d.ts.map +1 -0
- package/dist/ui/utils/markdown-renderer.js +327 -0
- package/dist/ui/utils/markdown-renderer.js.map +1 -0
- package/dist/ui/utils/markdown-table.d.ts +9 -0
- package/dist/ui/utils/markdown-table.d.ts.map +1 -0
- package/dist/ui/utils/markdown-table.js +95 -0
- package/dist/ui/utils/markdown-table.js.map +1 -0
- package/dist/ui/utils/terminal-graphics.d.ts +16 -0
- package/dist/ui/utils/terminal-graphics.d.ts.map +1 -0
- package/dist/ui/utils/terminal-graphics.js +68 -0
- package/dist/ui/utils/terminal-graphics.js.map +1 -0
- package/dist/ui/utils/terminal-graphics.test.d.ts +2 -0
- package/dist/ui/utils/terminal-graphics.test.d.ts.map +1 -0
- package/dist/ui/utils/terminal-graphics.test.js +61 -0
- package/dist/ui/utils/terminal-graphics.test.js.map +1 -0
- package/dist/ui/utils/terminal-input.d.ts +3 -0
- package/dist/ui/utils/terminal-input.d.ts.map +1 -0
- package/dist/ui/utils/terminal-input.js +28 -0
- package/dist/ui/utils/terminal-input.js.map +1 -0
- package/dist/ui/utils/terminal-input.test.d.ts +2 -0
- package/dist/ui/utils/terminal-input.test.d.ts.map +1 -0
- package/dist/ui/utils/terminal-input.test.js +15 -0
- package/dist/ui/utils/terminal-input.test.js.map +1 -0
- package/dist/ui/utils/text-utils.d.ts +8 -0
- package/dist/ui/utils/text-utils.d.ts.map +1 -0
- package/dist/ui/utils/text-utils.js +16 -0
- package/dist/ui/utils/text-utils.js.map +1 -0
- package/dist/ui/utils/token-to-ansi.js +19 -9
- package/dist/ui/utils/token-to-ansi.js.map +1 -1
- package/dist/ui/utils/user-message-display.d.ts +7 -0
- package/dist/ui/utils/user-message-display.d.ts.map +1 -0
- package/dist/ui/utils/user-message-display.js +26 -0
- package/dist/ui/utils/user-message-display.js.map +1 -0
- package/dist/utils/format.js +7 -9
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/image.d.ts +9 -0
- package/dist/utils/image.d.ts.map +1 -1
- package/dist/utils/image.js +25 -0
- package/dist/utils/image.js.map +1 -1
- package/dist/utils/plan-steps.d.ts.map +1 -1
- package/dist/utils/plan-steps.js +5 -1
- package/dist/utils/plan-steps.js.map +1 -1
- package/dist/utils/plan-steps.test.d.ts +2 -0
- package/dist/utils/plan-steps.test.d.ts.map +1 -0
- package/dist/utils/plan-steps.test.js +16 -0
- package/dist/utils/plan-steps.test.js.map +1 -0
- package/package.json +50 -10
- package/dist/core/repomap-context.d.ts +0 -11
- package/dist/core/repomap-context.d.ts.map +0 -1
- package/dist/core/repomap-context.js +0 -68
- package/dist/core/repomap-context.js.map +0 -1
- package/dist/core/repomap-context.test.d.ts +0 -2
- package/dist/core/repomap-context.test.d.ts.map +0 -1
- package/dist/core/repomap-context.test.js +0 -47
- package/dist/core/repomap-context.test.js.map +0 -1
- package/dist/core/repomap.d.ts +0 -74
- package/dist/core/repomap.d.ts.map +0 -1
- package/dist/core/repomap.js +0 -906
- package/dist/core/repomap.js.map +0 -1
- package/dist/core/repomap.test.d.ts +0 -2
- package/dist/core/repomap.test.d.ts.map +0 -1
- package/dist/core/repomap.test.js +0 -494
- package/dist/core/repomap.test.js.map +0 -1
- package/dist/ui/components/EyesOverlay.d.ts +0 -10
- package/dist/ui/components/EyesOverlay.d.ts.map +0 -1
- package/dist/ui/components/EyesOverlay.js +0 -220
- package/dist/ui/components/EyesOverlay.js.map +0 -1
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import React, { useState, useRef, useEffect, useMemo } from "react";
|
|
3
|
-
import { Text, Box, useInput, useStdin } from "ink";
|
|
3
|
+
import { Text, Box, useInput, useStdin, useIsScreenReaderEnabled } from "ink";
|
|
4
4
|
import { useTheme } from "../theme/theme.js";
|
|
5
5
|
import { useFocusedAnimation, deriveFrame } from "./AnimationContext.js";
|
|
6
6
|
import { useTerminalSize } from "../hooks/useTerminalSize.js";
|
|
7
7
|
import { extractImagePaths, readImageFile, getClipboardImage } from "../../utils/image.js";
|
|
8
8
|
import { SlashCommandMenu, filterCommands } from "./SlashCommandMenu.js";
|
|
9
|
+
import { TaskPickerMenu } from "./TaskPickerMenu.js";
|
|
10
|
+
import { stripTerminalFocusSequences } from "../utils/terminal-input.js";
|
|
9
11
|
import { log } from "../../core/logger.js";
|
|
10
12
|
import { homedir } from "node:os";
|
|
11
13
|
import { join } from "node:path";
|
|
12
14
|
import { readFileSync, writeFileSync, appendFileSync, mkdirSync, renameSync, unlinkSync, existsSync, } from "node:fs";
|
|
13
15
|
const MAX_VISIBLE_LINES = 12;
|
|
14
|
-
const PROMPT = "
|
|
16
|
+
const PROMPT = "> ";
|
|
17
|
+
const PLACEHOLDER = " Type your message or / to run a command";
|
|
18
|
+
const INPUT_BACKGROUND = "#374151";
|
|
19
|
+
const INPUT_TOP_FILL = "▄";
|
|
20
|
+
const INPUT_BOTTOM_FILL = "▀";
|
|
15
21
|
// SGR mouse sequence: ESC [ < button ; col ; row M/m
|
|
16
22
|
// M = press, m = release. Coordinates are 1-based.
|
|
17
23
|
// SGR mouse sequence (global) — used both to strip sequences from input data
|
|
@@ -22,14 +28,20 @@ const SGR_MOUSE_RE_G = /\x1b\[<(\d+);(\d+);(\d+)([Mm])/g;
|
|
|
22
28
|
// ?1000h = basic click tracking, ?1006h = SGR extended mode (supports coords > 223).
|
|
23
29
|
const ENABLE_MOUSE = "\x1b[?1000h\x1b[?1006h";
|
|
24
30
|
const DISABLE_MOUSE = "\x1b[?1006l\x1b[?1000l";
|
|
31
|
+
// Idle window (ms) for the legacy scroll-passthrough release: a short pause
|
|
32
|
+
// reliably spans a wheel gesture before tracking re-arms.
|
|
33
|
+
const SCROLL_PAUSE_MS = 300;
|
|
34
|
+
// Safety net only. In fullscreen, native text selection releases the mouse with
|
|
35
|
+
// NO active timer — the wheel re-arms on the next keystroke instead, so a slow
|
|
36
|
+
// drag is never cut short. This long timer only fires if the user never presses
|
|
37
|
+
// a key afterward (e.g. copies text and switches apps), so the mouse doesn't
|
|
38
|
+
// stay captured forever in that edge case.
|
|
39
|
+
const NATIVE_INTERACTION_SAFETY_MS = 60_000;
|
|
25
40
|
// Guard against stray SGR mouse sequences leaking into text input.
|
|
26
41
|
// Some terminals or multiplexers send these even without mouse tracking enabled.
|
|
27
42
|
function isMouseEscapeSequence(input) {
|
|
28
43
|
return input.includes("[<") && /\[<\d+;\d+;\d+[Mm]/.test(input);
|
|
29
44
|
}
|
|
30
|
-
function stripTerminalFocusSequences(input) {
|
|
31
|
-
return input.replaceAll("\x1b[I", "").replaceAll("\x1b[O", "");
|
|
32
|
-
}
|
|
33
45
|
// Option+Arrow escape sequences — terminals send these as raw input strings
|
|
34
46
|
// rather than setting key.meta + key.leftArrow reliably.
|
|
35
47
|
const OPTION_LEFT_SEQUENCES = new Set([
|
|
@@ -179,8 +191,11 @@ function compactHistory() {
|
|
|
179
191
|
}
|
|
180
192
|
}
|
|
181
193
|
}
|
|
182
|
-
//
|
|
183
|
-
const
|
|
194
|
+
// Lines advanced per mouse-wheel notch in fullscreen transcript scrolling.
|
|
195
|
+
const WHEEL_LINES_PER_NOTCH = 3;
|
|
196
|
+
// Padding (1 each side) = 2 characters of overhead. Gemini's composer is borderless
|
|
197
|
+
// except for a zero-height top rule, so wrapping should not reserve border columns.
|
|
198
|
+
const INPUT_HORIZONTAL_OVERHEAD = 2;
|
|
184
199
|
// Minimum content width to prevent zero/negative values that cause infinite
|
|
185
200
|
// re-render loops when Ink tries to wrap text wider than available space.
|
|
186
201
|
const MIN_CONTENT_WIDTH = 10;
|
|
@@ -212,7 +227,7 @@ function wrapLine(text, contentWidth) {
|
|
|
212
227
|
return lines;
|
|
213
228
|
}
|
|
214
229
|
function getVisualLines(text, columns) {
|
|
215
|
-
const contentWidth = Math.max(MIN_CONTENT_WIDTH, columns - PROMPT.length -
|
|
230
|
+
const contentWidth = Math.max(MIN_CONTENT_WIDTH, columns - PROMPT.length - INPUT_HORIZONTAL_OVERHEAD);
|
|
216
231
|
if (text.length === 0)
|
|
217
232
|
return [""];
|
|
218
233
|
// Split on real newlines first, then wrap each
|
|
@@ -223,9 +238,9 @@ function getVisualLines(text, columns) {
|
|
|
223
238
|
}
|
|
224
239
|
return result;
|
|
225
240
|
}
|
|
226
|
-
export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true, onDownAtEnd, onShiftTab, onToggleTasks,
|
|
241
|
+
export function InputArea({ onSubmit, onAbort, injectText, disabled = false, isActive = true, onDownAtEnd, onShiftTab, onToggleTasks, taskPickerOpen = false, tasks = [], onCloseTaskPicker, onStartTask, onRunAllTasks, onDeleteTask, onToggleSkills, onTogglePixel, onToggleGoal, onToggleMarkdown, cwd, commands = [], scopeBadge, disableMouseTracking, mouseScroll, onScroll, onTab, }) {
|
|
227
242
|
const theme = useTheme();
|
|
228
|
-
const
|
|
243
|
+
const isScreenReaderEnabled = useIsScreenReaderEnabled();
|
|
229
244
|
const [value, setValue] = useState("");
|
|
230
245
|
const [cursor, setCursor] = useState(0);
|
|
231
246
|
const cursorRef = useRef(cursor);
|
|
@@ -235,6 +250,22 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
235
250
|
const historyRef = useRef(loadHistory());
|
|
236
251
|
const historyIndexRef = useRef(-1);
|
|
237
252
|
const draftRef = useRef("");
|
|
253
|
+
// ── External text injection (e.g. queued messages restored on interrupt) ──
|
|
254
|
+
// Append injected text to any existing draft and move the cursor to the end.
|
|
255
|
+
// Keyed on nonce so repeated injections of identical text still fire.
|
|
256
|
+
const lastInjectNonceRef = useRef(null);
|
|
257
|
+
useEffect(() => {
|
|
258
|
+
if (!injectText || injectText.text.length === 0)
|
|
259
|
+
return;
|
|
260
|
+
if (lastInjectNonceRef.current === injectText.nonce)
|
|
261
|
+
return;
|
|
262
|
+
lastInjectNonceRef.current = injectText.nonce;
|
|
263
|
+
setValue((prev) => {
|
|
264
|
+
const next = prev.length > 0 ? `${prev}\n\n${injectText.text}` : injectText.text;
|
|
265
|
+
setCursor(next.length);
|
|
266
|
+
return next;
|
|
267
|
+
});
|
|
268
|
+
}, [injectText]);
|
|
238
269
|
// ── Ctrl+R history search state ──────────────────────────
|
|
239
270
|
const [searchMode, setSearchMode] = useState(false);
|
|
240
271
|
const [searchQuery, setSearchQuery] = useState("");
|
|
@@ -260,6 +291,7 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
260
291
|
const lastEscRef = useRef(0);
|
|
261
292
|
const { columns } = useTerminalSize();
|
|
262
293
|
const [menuIndex, setMenuIndex] = useState(0);
|
|
294
|
+
const [taskPickerIndex, setTaskPickerIndex] = useState(0);
|
|
263
295
|
const [pasteText, setPasteText] = useState(""); // accumulated pasted content
|
|
264
296
|
const [pasteOffset, setPasteOffset] = useState(0); // where in value the paste starts
|
|
265
297
|
const pasteTimerRef = useRef(null);
|
|
@@ -267,10 +299,14 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
267
299
|
const isSlashMode = value.startsWith("/") && !value.includes(" ") && commands.length > 0;
|
|
268
300
|
const slashFilter = isSlashMode ? value.slice(1) : "";
|
|
269
301
|
const filteredCommands = useMemo(() => (isSlashMode ? filterCommands(commands, slashFilter) : []), [isSlashMode, commands, slashFilter]);
|
|
302
|
+
const runnableTasks = useMemo(() => tasks.filter((task) => task.status !== "done"), [tasks]);
|
|
270
303
|
// Reset menu index when filter changes
|
|
271
304
|
useEffect(() => {
|
|
272
305
|
setMenuIndex(0);
|
|
273
306
|
}, [slashFilter]);
|
|
307
|
+
useEffect(() => {
|
|
308
|
+
setTaskPickerIndex((index) => Math.min(index, Math.max(0, runnableTasks.length - 1)));
|
|
309
|
+
}, [runnableTasks.length]);
|
|
274
310
|
// Border color pulse (when idle/waiting for input)
|
|
275
311
|
const borderPulseColors = useMemo(() => [theme.primary, theme.accent, theme.secondary, theme.accent], [theme.primary, theme.accent, theme.secondary]);
|
|
276
312
|
// Derive border pulse and cursor blink from global animation tick.
|
|
@@ -408,6 +444,18 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
408
444
|
// is empty, click-to-cursor is useless and disabling tracking lets the
|
|
409
445
|
// terminal handle CMD+click for opening links natively.
|
|
410
446
|
const hasInputTextRef = useRef(value.length > 0);
|
|
447
|
+
// Fullscreen wheel-scroll routing. Kept in refs so the emit-wrapper effect
|
|
448
|
+
// (whose deps are intentionally stable) always sees the freshest callback.
|
|
449
|
+
const mouseScrollRef = useRef(mouseScroll);
|
|
450
|
+
mouseScrollRef.current = mouseScroll;
|
|
451
|
+
const onScrollRef = useRef(onScroll);
|
|
452
|
+
onScrollRef.current = onScroll;
|
|
453
|
+
// Assigned by the mouse effect; called by the keyboard handler to re-arm
|
|
454
|
+
// mouse tracking after the user finishes a native text selection (see the
|
|
455
|
+
// fullscreen selection-mode logic below). Lifting it out of the effect lets
|
|
456
|
+
// a keystroke — the unambiguous "I'm done selecting" signal — restore the
|
|
457
|
+
// wheel without a fragile timer that would cut a slow selection short.
|
|
458
|
+
const reenableMouseRef = useRef(() => { });
|
|
411
459
|
useEffect(() => {
|
|
412
460
|
if (!isActive || !internal_eventEmitter)
|
|
413
461
|
return;
|
|
@@ -422,7 +470,9 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
422
470
|
return;
|
|
423
471
|
// Only enable mouse tracking if there's text — when empty, let the
|
|
424
472
|
// terminal handle clicks natively (e.g., CMD+click to open links).
|
|
425
|
-
|
|
473
|
+
// In fullscreen mode we always enable it so wheel-scroll events arrive even
|
|
474
|
+
// when the composer is empty (there's no native scrollback to fall back to).
|
|
475
|
+
if (hasInputTextRef.current || mouseScrollRef.current) {
|
|
426
476
|
process.stdout.write(ENABLE_MOUSE);
|
|
427
477
|
}
|
|
428
478
|
// Safety: ensure mouse tracking is disabled even on crash/SIGINT/unexpected exit
|
|
@@ -431,25 +481,56 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
431
481
|
process.on("exit", onProcessExit);
|
|
432
482
|
const originalEmit = internal_eventEmitter.emit.bind(internal_eventEmitter);
|
|
433
483
|
mouseEmitRef.current.original = originalEmit;
|
|
434
|
-
//
|
|
435
|
-
//
|
|
436
|
-
//
|
|
484
|
+
// Mouse-release passthrough: when we want the TERMINAL (not the app) to
|
|
485
|
+
// handle a gesture — native scroll in the legacy model, or native text
|
|
486
|
+
// selection / CMD+click link-opening in fullscreen — we disable mouse
|
|
487
|
+
// tracking so the terminal owns the mouse.
|
|
437
488
|
let scrollTimer = null;
|
|
438
489
|
let mouseDisabled = false;
|
|
490
|
+
// Re-arm mouse tracking only when something still needs it: there's input
|
|
491
|
+
// text to position a cursor in (legacy click-to-cursor), OR we're in
|
|
492
|
+
// fullscreen where the wheel drives the transcript scroll. Without the
|
|
493
|
+
// fullscreen clause the mouse would stay dead after the first click and the
|
|
494
|
+
// wheel would stop scrolling.
|
|
439
495
|
const reenableMouse = () => {
|
|
440
|
-
if (
|
|
496
|
+
if (scrollTimer) {
|
|
497
|
+
clearTimeout(scrollTimer);
|
|
498
|
+
scrollTimer = null;
|
|
499
|
+
}
|
|
500
|
+
if (mouseDisabled && (hasInputTextRef.current || mouseScrollRef.current)) {
|
|
441
501
|
process.stdout.write(ENABLE_MOUSE);
|
|
442
502
|
mouseDisabled = false;
|
|
443
503
|
}
|
|
444
504
|
};
|
|
445
|
-
|
|
505
|
+
// Exposed so the keyboard handler can re-arm on the next keystroke.
|
|
506
|
+
reenableMouseRef.current = reenableMouse;
|
|
507
|
+
// Timed release — used for the legacy scroll-passthrough model where a short
|
|
508
|
+
// idle reliably means the wheel gesture is over.
|
|
509
|
+
const pauseMouseTimed = (durationMs) => {
|
|
510
|
+
if (!mouseDisabled) {
|
|
511
|
+
process.stdout.write(DISABLE_MOUSE);
|
|
512
|
+
mouseDisabled = true;
|
|
513
|
+
}
|
|
514
|
+
if (scrollTimer)
|
|
515
|
+
clearTimeout(scrollTimer);
|
|
516
|
+
scrollTimer = setTimeout(reenableMouse, durationMs);
|
|
517
|
+
};
|
|
518
|
+
const pauseMouseForScroll = () => pauseMouseTimed(SCROLL_PAUSE_MS);
|
|
519
|
+
// Indefinite release for native selection / link-clicks in fullscreen. NO
|
|
520
|
+
// timer: a text selection can take as long as the user wants, and a timer
|
|
521
|
+
// that re-armed mid-drag would abort the selection. The wheel is restored
|
|
522
|
+
// only when the user presses a key (handled in the keyboard useInput) — an
|
|
523
|
+
// unambiguous signal that they're done selecting and back to driving the
|
|
524
|
+
// app. A long safety-net timer guards against a stuck state if no key ever
|
|
525
|
+
// follows (e.g. they copy and switch windows).
|
|
526
|
+
const pauseMouseForNativeInteraction = () => {
|
|
446
527
|
if (!mouseDisabled) {
|
|
447
528
|
process.stdout.write(DISABLE_MOUSE);
|
|
448
529
|
mouseDisabled = true;
|
|
449
530
|
}
|
|
450
531
|
if (scrollTimer)
|
|
451
532
|
clearTimeout(scrollTimer);
|
|
452
|
-
scrollTimer = setTimeout(reenableMouse,
|
|
533
|
+
scrollTimer = setTimeout(reenableMouse, NATIVE_INTERACTION_SAFETY_MS);
|
|
453
534
|
};
|
|
454
535
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
455
536
|
internal_eventEmitter.emit = (event, ...args) => {
|
|
@@ -477,12 +558,32 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
477
558
|
const hasModifier = (btnCode & 0b11100) !== 0; // shift, meta, or ctrl
|
|
478
559
|
const isMotion = (btnCode & 32) !== 0;
|
|
479
560
|
const isScroll = (btnCode & 64) !== 0;
|
|
480
|
-
// On scroll:
|
|
481
|
-
// then re-enable after idle so click-to-cursor keeps working.
|
|
561
|
+
// On scroll wheel:
|
|
482
562
|
if (isScroll) {
|
|
563
|
+
// Fullscreen alt-screen: no native scrollback exists, so route the
|
|
564
|
+
// wheel into the in-app transcript scroll. Wheel-up (button bit 0
|
|
565
|
+
// clear) scrolls toward older output, wheel-down toward newest.
|
|
566
|
+
if (mouseScrollRef.current && onScrollRef.current) {
|
|
567
|
+
const wheelUp = (btnCode & 1) === 0;
|
|
568
|
+
onScrollRef.current(wheelUp ? WHEEL_LINES_PER_NOTCH : -WHEEL_LINES_PER_NOTCH);
|
|
569
|
+
continue;
|
|
570
|
+
}
|
|
571
|
+
// Legacy scrollback model: disable mouse tracking so the terminal
|
|
572
|
+
// handles it natively, then re-enable after idle.
|
|
483
573
|
pauseMouseForScroll();
|
|
484
574
|
continue;
|
|
485
575
|
}
|
|
576
|
+
// Fullscreen: the wheel is the ONLY gesture we capture. Any other
|
|
577
|
+
// mouse event means the user wants to interact with the terminal
|
|
578
|
+
// itself — drag to select/copy text, or CMD+click a link. Release the
|
|
579
|
+
// mouse so the terminal handles it natively, then re-arm for the
|
|
580
|
+
// wheel after an idle window. (We trade away composer click-to-cursor
|
|
581
|
+
// in fullscreen; the keyboard positions the cursor, and copy/paste +
|
|
582
|
+
// links matter more.)
|
|
583
|
+
if (mouseScrollRef.current) {
|
|
584
|
+
pauseMouseForNativeInteraction();
|
|
585
|
+
continue;
|
|
586
|
+
}
|
|
486
587
|
// When modifier keys are held (CMD+click, Ctrl+click, Shift+click),
|
|
487
588
|
// temporarily disable mouse tracking so the terminal can handle
|
|
488
589
|
// the click natively (e.g., opening links with CMD+click).
|
|
@@ -584,6 +685,7 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
584
685
|
return () => {
|
|
585
686
|
if (scrollTimer)
|
|
586
687
|
clearTimeout(scrollTimer);
|
|
688
|
+
reenableMouseRef.current = () => { };
|
|
587
689
|
process.stdout.write(DISABLE_MOUSE);
|
|
588
690
|
process.removeListener("exit", onProcessExit);
|
|
589
691
|
// Restore original emit
|
|
@@ -602,11 +704,13 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
602
704
|
const hasText = value.length > 0;
|
|
603
705
|
if (hasText !== hasInputTextRef.current) {
|
|
604
706
|
hasInputTextRef.current = hasText;
|
|
605
|
-
|
|
707
|
+
// In fullscreen mode mouse tracking stays on regardless of input text so
|
|
708
|
+
// wheel-scroll keeps working with an empty composer — never disable it.
|
|
709
|
+
if (isActive && !mouseScroll) {
|
|
606
710
|
process.stdout.write(hasText ? ENABLE_MOUSE : DISABLE_MOUSE);
|
|
607
711
|
}
|
|
608
712
|
}
|
|
609
|
-
}, [value, isActive]);
|
|
713
|
+
}, [value, isActive, mouseScroll]);
|
|
610
714
|
// Helper: delete selected text and return new value + cursor position.
|
|
611
715
|
// Returns null if no selection is active.
|
|
612
716
|
const deleteSelection = () => {
|
|
@@ -631,8 +735,14 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
631
735
|
return;
|
|
632
736
|
if (isMouseEscapeSequence(inputWithoutFocusReports))
|
|
633
737
|
return;
|
|
738
|
+
// A real keystroke is the "I'm done selecting" signal: re-arm mouse
|
|
739
|
+
// tracking (no-op if it was never released) so the wheel works again.
|
|
740
|
+
// This is why native selection can take as long as the user wants — it's
|
|
741
|
+
// ended by intent (a key) rather than a timer that could cut it short.
|
|
742
|
+
reenableMouseRef.current();
|
|
634
743
|
// Reset kill ring accumulation for non-kill keys
|
|
635
744
|
input = inputWithoutFocusReports;
|
|
745
|
+
const isReturnKey = key.return || input === "\r" || input === "\n";
|
|
636
746
|
const isKillKey = key.ctrl && (input === "k" || input === "u" || input === "w");
|
|
637
747
|
if (!isKillKey)
|
|
638
748
|
lastActionWasKill = false;
|
|
@@ -669,7 +779,7 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
669
779
|
setCursor(savedCursorRef.current);
|
|
670
780
|
return;
|
|
671
781
|
}
|
|
672
|
-
if (
|
|
782
|
+
if (isReturnKey) {
|
|
673
783
|
// Accept match and submit
|
|
674
784
|
setSearchMode(false);
|
|
675
785
|
return; // fall through to normal submit handling
|
|
@@ -706,14 +816,41 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
706
816
|
}
|
|
707
817
|
return; // absorb all other keys during search
|
|
708
818
|
}
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
819
|
+
if (taskPickerOpen) {
|
|
820
|
+
if (key.escape || (key.ctrl && input === "t")) {
|
|
821
|
+
onCloseTaskPicker?.();
|
|
822
|
+
return;
|
|
823
|
+
}
|
|
824
|
+
if (key.upArrow) {
|
|
825
|
+
setTaskPickerIndex((i) => Math.max(0, i - 1));
|
|
826
|
+
return;
|
|
827
|
+
}
|
|
828
|
+
if (key.downArrow) {
|
|
829
|
+
setTaskPickerIndex((i) => Math.min(runnableTasks.length - 1, i + 1));
|
|
830
|
+
return;
|
|
831
|
+
}
|
|
832
|
+
if (input.toLowerCase() === "r") {
|
|
833
|
+
const task = runnableTasks[Math.min(taskPickerIndex, runnableTasks.length - 1)];
|
|
834
|
+
onRunAllTasks?.(task);
|
|
835
|
+
return;
|
|
836
|
+
}
|
|
837
|
+
if (input.toLowerCase() === "d") {
|
|
838
|
+
const task = runnableTasks[Math.min(taskPickerIndex, runnableTasks.length - 1)];
|
|
839
|
+
if (task)
|
|
840
|
+
onDeleteTask?.(task);
|
|
841
|
+
return;
|
|
842
|
+
}
|
|
843
|
+
if (isReturnKey) {
|
|
844
|
+
const task = runnableTasks[Math.min(taskPickerIndex, runnableTasks.length - 1)];
|
|
845
|
+
if (task)
|
|
846
|
+
onStartTask?.(task);
|
|
847
|
+
return;
|
|
848
|
+
}
|
|
712
849
|
return;
|
|
713
850
|
}
|
|
714
|
-
// Ctrl+
|
|
715
|
-
if (key.ctrl && input === "
|
|
716
|
-
|
|
851
|
+
// Ctrl+T toggles task picker
|
|
852
|
+
if (key.ctrl && input === "t") {
|
|
853
|
+
onToggleTasks?.();
|
|
717
854
|
return;
|
|
718
855
|
}
|
|
719
856
|
// Ctrl+S toggles skills overlay
|
|
@@ -726,9 +863,14 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
726
863
|
onTogglePixel?.();
|
|
727
864
|
return;
|
|
728
865
|
}
|
|
729
|
-
// Ctrl+
|
|
730
|
-
if (key.ctrl && input === "
|
|
731
|
-
|
|
866
|
+
// Ctrl+G toggles durable Goal overlay
|
|
867
|
+
if (key.ctrl && input === "g") {
|
|
868
|
+
onToggleGoal?.();
|
|
869
|
+
return;
|
|
870
|
+
}
|
|
871
|
+
// Ctrl+M toggles rendered/raw markdown mode, matching Gemini's raw markdown affordance.
|
|
872
|
+
if (key.ctrl && input === "m") {
|
|
873
|
+
onToggleMarkdown?.();
|
|
732
874
|
return;
|
|
733
875
|
}
|
|
734
876
|
if (disabled) {
|
|
@@ -739,7 +881,7 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
739
881
|
// When disabled (agent running), allow typing AND submission.
|
|
740
882
|
// Submitted messages will be queued by the parent component.
|
|
741
883
|
}
|
|
742
|
-
if (
|
|
884
|
+
if (isReturnKey && (key.shift || key.meta)) {
|
|
743
885
|
// If there's a selection, replace it with the newline
|
|
744
886
|
const sel = deleteSelection();
|
|
745
887
|
if (sel) {
|
|
@@ -753,7 +895,7 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
753
895
|
setSelectionAnchor(null);
|
|
754
896
|
return;
|
|
755
897
|
}
|
|
756
|
-
if (
|
|
898
|
+
if (isReturnKey) {
|
|
757
899
|
// If slash menu is open and a command is selected, fill it in
|
|
758
900
|
if (isSlashMode && filteredCommands.length > 0) {
|
|
759
901
|
const selected = filteredCommands[Math.min(menuIndex, filteredCommands.length - 1)];
|
|
@@ -912,6 +1054,10 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
912
1054
|
return;
|
|
913
1055
|
}
|
|
914
1056
|
if (key.upArrow) {
|
|
1057
|
+
if (taskPickerOpen) {
|
|
1058
|
+
setTaskPickerIndex((i) => Math.max(0, i - 1));
|
|
1059
|
+
return;
|
|
1060
|
+
}
|
|
915
1061
|
// If slash menu is open, navigate it
|
|
916
1062
|
if (isSlashMode && filteredCommands.length > 0) {
|
|
917
1063
|
setMenuIndex((i) => Math.max(0, i - 1));
|
|
@@ -952,6 +1098,10 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
952
1098
|
return;
|
|
953
1099
|
}
|
|
954
1100
|
if (key.downArrow) {
|
|
1101
|
+
if (taskPickerOpen) {
|
|
1102
|
+
setTaskPickerIndex((i) => Math.min(runnableTasks.length - 1, i + 1));
|
|
1103
|
+
return;
|
|
1104
|
+
}
|
|
955
1105
|
// If slash menu is open, navigate it
|
|
956
1106
|
if (isSlashMode && filteredCommands.length > 0) {
|
|
957
1107
|
setMenuIndex((i) => Math.min(filteredCommands.length - 1, i + 1));
|
|
@@ -1145,7 +1295,7 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
1145
1295
|
}, { isActive });
|
|
1146
1296
|
// Calculate visual lines and cap at MAX_VISIBLE_LINES (scroll to cursor)
|
|
1147
1297
|
const visualLines = getVisualLines(value, columns);
|
|
1148
|
-
const contentWidth = Math.max(MIN_CONTENT_WIDTH, columns - PROMPT.length -
|
|
1298
|
+
const contentWidth = Math.max(MIN_CONTENT_WIDTH, columns - PROMPT.length - INPUT_HORIZONTAL_OVERHEAD);
|
|
1149
1299
|
// Find which visual line and column the cursor is on
|
|
1150
1300
|
const cursorLineInfo = useMemo(() => {
|
|
1151
1301
|
let pos = 0;
|
|
@@ -1210,7 +1360,12 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
1210
1360
|
: 0;
|
|
1211
1361
|
// Active selection range (absolute character offsets)
|
|
1212
1362
|
const selection = getSelectionRange(selectionAnchor, cursor);
|
|
1213
|
-
|
|
1363
|
+
const promptColor = disabled ? theme.textDim : theme.commandColor;
|
|
1364
|
+
const borderColor = disabled ? theme.textDim : borderPulseColors[borderFrame];
|
|
1365
|
+
const backgroundColor = isScreenReaderEnabled ? undefined : INPUT_BACKGROUND;
|
|
1366
|
+
const renderInputEdge = (fill) => (_jsx(Box, { width: columns, children: _jsx(Text, { color: backgroundColor ?? borderColor, children: fill.repeat(columns) }) }));
|
|
1367
|
+
const renderPromptPrefix = (text) => (_jsx(Text, { color: promptColor, bold: true, backgroundColor: backgroundColor, children: text }));
|
|
1368
|
+
return (_jsxs(Box, { flexDirection: "column", width: columns, flexGrow: 0, flexShrink: 0, children: [renderInputEdge(backgroundColor ? INPUT_TOP_FILL : "─"), _jsxs(Box, { flexDirection: "column", paddingLeft: 1, paddingRight: 1, flexGrow: 0, flexShrink: 0, backgroundColor: backgroundColor, width: columns, children: [scopeBadge && _jsx(Box, { marginBottom: 0, children: scopeBadge }), images.length > 0 && (_jsx(Box, { children: _jsx(Text, { color: theme.accent, children: images
|
|
1214
1369
|
.map((img, i) => img.kind === "text" ? `[File: ${img.fileName}]` : `[Image #${i + 1}]`)
|
|
1215
1370
|
.join(" ") }) })), (() => {
|
|
1216
1371
|
if (pasteText && value) {
|
|
@@ -1231,7 +1386,7 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
1231
1386
|
else {
|
|
1232
1387
|
cursorInDisplay = pasteOffset + indicator.length;
|
|
1233
1388
|
}
|
|
1234
|
-
return (_jsxs(Box, { children: [searchMode ? (_jsxs(Text, { color: searchFailed ? theme.error : theme.inputPrompt, bold: true, children: [searchFailed ? "(fail)" : "(i-search)", `'${searchQuery}': `] })) : (
|
|
1389
|
+
return (_jsxs(Box, { backgroundColor: backgroundColor, width: "100%", children: [searchMode ? (_jsxs(Text, { color: searchFailed ? theme.error : theme.inputPrompt, bold: true, backgroundColor: backgroundColor, children: [searchFailed ? "(fail)" : "(i-search)", `'${searchQuery}': `] })) : (renderPromptPrefix(PROMPT)), (() => {
|
|
1235
1390
|
const beforeCursor = displayStr.slice(0, cursorInDisplay);
|
|
1236
1391
|
const renderDisplaySegment = (text, displayOffset) => {
|
|
1237
1392
|
if (!text)
|
|
@@ -1241,18 +1396,18 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
1241
1396
|
? Math.min(text.length, commandEndIndex - displayOffset)
|
|
1242
1397
|
: 0;
|
|
1243
1398
|
if (cmdChars >= text.length) {
|
|
1244
|
-
return (_jsx(Text, { color: theme.commandColor, bold: true, children: text }));
|
|
1399
|
+
return (_jsx(Text, { color: theme.commandColor, bold: true, backgroundColor: backgroundColor, children: text }));
|
|
1245
1400
|
}
|
|
1246
1401
|
if (cmdChars > 0) {
|
|
1247
|
-
return (_jsxs(_Fragment, { children: [_jsx(Text, { color: theme.commandColor, bold: true, children: text.slice(0, cmdChars) }), _jsx(Text, { color: theme.
|
|
1402
|
+
return (_jsxs(_Fragment, { children: [_jsx(Text, { color: theme.commandColor, bold: true, backgroundColor: backgroundColor, children: text.slice(0, cmdChars) }), _jsx(Text, { color: theme.commandColor, backgroundColor: backgroundColor, children: text.slice(cmdChars) })] }));
|
|
1248
1403
|
}
|
|
1249
|
-
return _jsx(Text, { color: theme.
|
|
1404
|
+
return (_jsx(Text, { color: theme.commandColor, backgroundColor: backgroundColor, children: text }));
|
|
1250
1405
|
};
|
|
1251
1406
|
return renderDisplaySegment(beforeCursor, 0);
|
|
1252
1407
|
})(), (() => {
|
|
1253
1408
|
const cursorChar = cursorInDisplay < displayStr.length ? displayStr[cursorInDisplay] : " ";
|
|
1254
1409
|
const cursorInCmd = isCommand && cursorInDisplay < commandEndIndex;
|
|
1255
|
-
return (_jsx(Text, { color:
|
|
1410
|
+
return (_jsx(Text, { color: theme.commandColor, bold: cursorInCmd || undefined, inverse: cursorVisible, backgroundColor: backgroundColor, children: cursorChar }));
|
|
1256
1411
|
})(), cursorInDisplay + 1 < displayStr.length &&
|
|
1257
1412
|
(() => {
|
|
1258
1413
|
const afterCursor = displayStr.slice(cursorInDisplay + 1);
|
|
@@ -1265,11 +1420,14 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
1265
1420
|
return (_jsx(Text, { color: theme.commandColor, bold: true, children: afterCursor }));
|
|
1266
1421
|
}
|
|
1267
1422
|
if (cmdChars > 0) {
|
|
1268
|
-
return (_jsxs(_Fragment, { children: [_jsx(Text, { color: theme.commandColor, bold: true, children: afterCursor.slice(0, cmdChars) }), _jsx(Text, { color: theme.
|
|
1423
|
+
return (_jsxs(_Fragment, { children: [_jsx(Text, { color: theme.commandColor, bold: true, children: afterCursor.slice(0, cmdChars) }), _jsx(Text, { color: theme.commandColor, backgroundColor: backgroundColor, children: afterCursor.slice(cmdChars) })] }));
|
|
1269
1424
|
}
|
|
1270
|
-
return _jsx(Text, { color: theme.
|
|
1425
|
+
return (_jsx(Text, { color: theme.commandColor, backgroundColor: backgroundColor, children: afterCursor }));
|
|
1271
1426
|
})()] }));
|
|
1272
1427
|
}
|
|
1428
|
+
if (value.length === 0) {
|
|
1429
|
+
return (_jsxs(Box, { backgroundColor: backgroundColor, width: "100%", children: [renderPromptPrefix(PROMPT), _jsx(Text, { color: theme.textDim, inverse: cursorVisible, backgroundColor: backgroundColor, children: PLACEHOLDER.slice(0, 1) }), _jsx(Text, { color: theme.textDim, backgroundColor: backgroundColor, children: PLACEHOLDER.slice(1) })] }));
|
|
1430
|
+
}
|
|
1273
1431
|
return displayLines.map((line, i) => {
|
|
1274
1432
|
const showCursor = i === cursorDisplayLine;
|
|
1275
1433
|
const col = cursorLineInfo.col;
|
|
@@ -1309,12 +1467,12 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
1309
1467
|
const cmdChars = inCmd ? Math.min(text.length, commandEndIndex - absOffset) : 0;
|
|
1310
1468
|
const inv = opts?.inverse ?? false;
|
|
1311
1469
|
if (cmdChars >= text.length) {
|
|
1312
|
-
return (_jsx(Text, { color: theme.commandColor, bold: true, inverse: inv, children: text }));
|
|
1470
|
+
return (_jsx(Text, { color: theme.commandColor, bold: true, inverse: inv, backgroundColor: backgroundColor, children: text }));
|
|
1313
1471
|
}
|
|
1314
1472
|
if (cmdChars > 0) {
|
|
1315
|
-
return (_jsxs(_Fragment, { children: [_jsx(Text, { color: theme.commandColor, bold: true, inverse: inv, children: text.slice(0, cmdChars) }), _jsx(Text, { color: theme.
|
|
1473
|
+
return (_jsxs(_Fragment, { children: [_jsx(Text, { color: theme.commandColor, bold: true, inverse: inv, backgroundColor: backgroundColor, children: text.slice(0, cmdChars) }), _jsx(Text, { color: theme.commandColor, inverse: inv, backgroundColor: backgroundColor, children: text.slice(cmdChars) })] }));
|
|
1316
1474
|
}
|
|
1317
|
-
return (_jsx(Text, { color: theme.
|
|
1475
|
+
return (_jsx(Text, { color: theme.commandColor, inverse: inv, backgroundColor: backgroundColor, children: text }));
|
|
1318
1476
|
};
|
|
1319
1477
|
// Build segments for: [before-sel] [selected] [cursor] [after-sel]
|
|
1320
1478
|
// considering that cursor and selection can overlap on this line
|
|
@@ -1346,7 +1504,7 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
1346
1504
|
const cursorChar = col < line.length ? line[col] : " ";
|
|
1347
1505
|
const cursorAbs = lineStartOffset + col;
|
|
1348
1506
|
const curInCmd = isCommand && cursorAbs < commandEndIndex;
|
|
1349
|
-
segments.push(_jsx(Text, { color:
|
|
1507
|
+
segments.push(_jsx(Text, { color: theme.commandColor, bold: curInCmd, inverse: cursorVisible, backgroundColor: backgroundColor, children: cursorChar }, "cursor"));
|
|
1350
1508
|
const afterCursorPos = col + (col < line.length ? 1 : 0);
|
|
1351
1509
|
if (afterCursorPos < selLocalEnd) {
|
|
1352
1510
|
segments.push(_jsx(React.Fragment, { children: renderSegment(line.slice(afterCursorPos, selLocalEnd), lineStartOffset + afterCursorPos, { inverse: true }) }, "sel-after"));
|
|
@@ -1369,7 +1527,7 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
1369
1527
|
const cursorChar = col < line.length ? line[col] : " ";
|
|
1370
1528
|
const cursorAbs = lineStartOffset + col;
|
|
1371
1529
|
const curInCmd = isCommand && cursorAbs < commandEndIndex;
|
|
1372
|
-
segments.push(_jsx(Text, { color:
|
|
1530
|
+
segments.push(_jsx(Text, { color: theme.commandColor, bold: curInCmd, inverse: cursorVisible, backgroundColor: backgroundColor, children: cursorChar }, "cursor"));
|
|
1373
1531
|
pos = col + (col < line.length ? 1 : 0);
|
|
1374
1532
|
}
|
|
1375
1533
|
// Text after selection (and cursor)
|
|
@@ -1386,14 +1544,14 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
1386
1544
|
const cursorInCommand = isCommand && cursorCharOffset < commandEndIndex;
|
|
1387
1545
|
segments.push(_jsx(React.Fragment, { children: renderSegment(before, lineStartOffset) }, "before"));
|
|
1388
1546
|
if (showCursor) {
|
|
1389
|
-
segments.push(_jsx(Text, { color:
|
|
1547
|
+
segments.push(_jsx(Text, { color: theme.commandColor, bold: cursorInCommand, inverse: cursorVisible, backgroundColor: backgroundColor, children: charUnderCursor }, "cursor"));
|
|
1390
1548
|
}
|
|
1391
1549
|
if (after) {
|
|
1392
1550
|
segments.push(_jsx(React.Fragment, { children: renderSegment(after, lineStartOffset + col + (col < line.length ? 1 : 0)) }, "after"));
|
|
1393
1551
|
}
|
|
1394
1552
|
}
|
|
1395
|
-
return (_jsxs(Box, {
|
|
1553
|
+
return (_jsxs(Box, { backgroundColor: backgroundColor, width: "100%", children: [renderPromptPrefix(i === 0 ? PROMPT : " "), segments] }, i));
|
|
1396
1554
|
});
|
|
1397
|
-
})()] }), isSlashMode && filteredCommands.length > 0
|
|
1555
|
+
})()] }), renderInputEdge(backgroundColor ? INPUT_BOTTOM_FILL : "─"), taskPickerOpen ? (_jsx(Box, { paddingRight: 2, children: _jsx(TaskPickerMenu, { tasks: tasks, selectedIndex: taskPickerIndex, width: Math.max(20, columns) }) })) : isSlashMode && filteredCommands.length > 0 ? (_jsx(Box, { paddingRight: 2, children: _jsx(SlashCommandMenu, { commands: filteredCommands, selectedIndex: menuIndex, width: Math.max(20, columns) }) })) : null] }));
|
|
1398
1556
|
}
|
|
1399
1557
|
//# sourceMappingURL=InputArea.js.map
|