@kenkaiiii/ggcoder 4.3.218 → 4.3.220
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/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +41 -21
- package/dist/cli.js.map +1 -1
- package/dist/core/agent-session-compaction.test.js +0 -7
- package/dist/core/agent-session-compaction.test.js.map +1 -1
- 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 +4 -98
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/continue-replay-inventory.test.js +1 -1
- package/dist/core/continue-replay-inventory.test.js.map +1 -1
- package/dist/core/goal-controller.d.ts +2 -0
- package/dist/core/goal-controller.d.ts.map +1 -1
- package/dist/core/goal-controller.js +152 -8
- package/dist/core/goal-controller.js.map +1 -1
- package/dist/core/goal-controller.test.js +232 -3
- package/dist/core/goal-controller.test.js.map +1 -1
- package/dist/core/goal-overhead-harness.d.ts +33 -0
- package/dist/core/goal-overhead-harness.d.ts.map +1 -0
- package/dist/core/goal-overhead-harness.js +268 -0
- package/dist/core/goal-overhead-harness.js.map +1 -0
- package/dist/core/goal-store.d.ts +3 -0
- package/dist/core/goal-store.d.ts.map +1 -1
- package/dist/core/goal-store.js +64 -3
- package/dist/core/goal-store.js.map +1 -1
- package/dist/core/goal-store.test.js +13 -0
- package/dist/core/goal-store.test.js.map +1 -1
- package/dist/core/goal-worker.d.ts.map +1 -1
- package/dist/core/goal-worker.js +17 -11
- package/dist/core/goal-worker.js.map +1 -1
- package/dist/core/goal-worker.test.js +41 -8
- package/dist/core/goal-worker.test.js.map +1 -1
- package/dist/core/goal-worktree.d.ts +21 -0
- package/dist/core/goal-worktree.d.ts.map +1 -1
- package/dist/core/goal-worktree.js +71 -1
- package/dist/core/goal-worktree.js.map +1 -1
- package/dist/core/goal-worktree.test.js +127 -2
- package/dist/core/goal-worktree.test.js.map +1 -1
- package/dist/core/prompt-commands.js +2 -2
- package/dist/core/prompt-commands.test.js +1 -1
- package/dist/core/prompt-commands.test.js.map +1 -1
- package/dist/core/runtime-mode.d.ts +7 -0
- package/dist/core/runtime-mode.d.ts.map +1 -1
- package/dist/core/runtime-mode.js +6 -0
- package/dist/core/runtime-mode.js.map +1 -1
- package/dist/core/session-manager.d.ts +3 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +16 -0
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-restore-display.test.js +84 -0
- package/dist/core/session-restore-display.test.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 +0 -15
- package/dist/core/slash-commands.js.map +1 -1
- 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/system-prompt.d.ts +1 -1
- package/dist/system-prompt.d.ts.map +1 -1
- package/dist/system-prompt.js +13 -1
- package/dist/system-prompt.js.map +1 -1
- package/dist/system-prompt.test.js +2 -2
- package/dist/system-prompt.test.js.map +1 -1
- package/dist/tools/bash.d.ts +2 -0
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +5 -2
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/edit.d.ts +2 -0
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +16 -3
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/enter-plan.d.ts +8 -0
- package/dist/tools/enter-plan.d.ts.map +1 -0
- package/dist/tools/enter-plan.js +27 -0
- package/dist/tools/enter-plan.js.map +1 -0
- package/dist/tools/exit-plan.d.ts +8 -0
- package/dist/tools/exit-plan.d.ts.map +1 -0
- package/dist/tools/exit-plan.js +35 -0
- package/dist/tools/exit-plan.js.map +1 -0
- package/dist/tools/goals.d.ts +8 -5
- package/dist/tools/goals.d.ts.map +1 -1
- package/dist/tools/goals.js +124 -49
- package/dist/tools/goals.js.map +1 -1
- package/dist/tools/goals.test.js +356 -11
- package/dist/tools/goals.test.js.map +1 -1
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +18 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/plan-mode.test.js +63 -24
- 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 +4 -0
- package/dist/tools/prompt-hints.js.map +1 -1
- package/dist/tools/subagent.d.ts +3 -1
- package/dist/tools/subagent.d.ts.map +1 -1
- package/dist/tools/subagent.js +5 -2
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/tasks.d.ts +16 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +93 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/tools/write.d.ts +2 -0
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +23 -3
- package/dist/tools/write.js.map +1 -1
- package/dist/ui/App.d.ts +10 -6
- package/dist/ui/App.d.ts.map +1 -1
- package/dist/ui/App.js +660 -987
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/app-items.d.ts +7 -1
- package/dist/ui/app-items.d.ts.map +1 -1
- package/dist/ui/app-items.js +1 -1
- package/dist/ui/app-items.js.map +1 -1
- package/dist/ui/app-state-persistence.test.js +41 -23
- package/dist/ui/app-state-persistence.test.js.map +1 -1
- package/dist/ui/chat-layout-pinning.test.js +10 -0
- package/dist/ui/chat-layout-pinning.test.js.map +1 -1
- package/dist/ui/components/AssistantMessage.test.js +7 -7
- package/dist/ui/components/AssistantMessage.test.js.map +1 -1
- package/dist/ui/components/BackgroundTasksBar.d.ts.map +1 -1
- package/dist/ui/components/BackgroundTasksBar.js +6 -6
- package/dist/ui/components/BackgroundTasksBar.js.map +1 -1
- package/dist/ui/components/Banner.js +2 -2
- package/dist/ui/components/Banner.js.map +1 -1
- package/dist/ui/components/ChatFooterPane.d.ts +29 -0
- package/dist/ui/components/ChatFooterPane.d.ts.map +1 -0
- package/dist/ui/components/ChatFooterPane.js +16 -0
- package/dist/ui/components/ChatFooterPane.js.map +1 -0
- package/dist/ui/components/ChatInputStack.d.ts +34 -0
- package/dist/ui/components/ChatInputStack.d.ts.map +1 -0
- package/dist/ui/components/ChatInputStack.js +9 -0
- package/dist/ui/components/ChatInputStack.js.map +1 -0
- package/dist/ui/components/ChatLayout.d.ts +23 -0
- package/dist/ui/components/ChatLayout.d.ts.map +1 -0
- package/dist/ui/components/ChatLayout.js +16 -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 +8 -0
- package/dist/ui/components/ChatLivePane.js.map +1 -0
- package/dist/ui/components/ChatScreen.d.ts +118 -0
- package/dist/ui/components/ChatScreen.d.ts.map +1 -0
- package/dist/ui/components/ChatScreen.js +14 -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 +6 -3
- package/dist/ui/components/Footer.d.ts.map +1 -1
- package/dist/ui/components/Footer.js +14 -4
- 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 +2 -1
- package/dist/ui/components/GoalOverlay.d.ts.map +1 -1
- package/dist/ui/components/GoalOverlay.js +11 -6
- package/dist/ui/components/GoalOverlay.js.map +1 -1
- package/dist/ui/components/GoalPickerMenu.d.ts +9 -0
- package/dist/ui/components/GoalPickerMenu.d.ts.map +1 -0
- package/dist/ui/components/GoalPickerMenu.js +37 -0
- package/dist/ui/components/GoalPickerMenu.js.map +1 -0
- package/dist/ui/components/GoalStatusBar.d.ts +2 -0
- package/dist/ui/components/GoalStatusBar.d.ts.map +1 -1
- package/dist/ui/components/GoalStatusBar.js +27 -11
- package/dist/ui/components/GoalStatusBar.js.map +1 -1
- package/dist/ui/components/GoalStatusBar.test.d.ts +2 -0
- package/dist/ui/components/GoalStatusBar.test.d.ts.map +1 -0
- package/dist/ui/components/GoalStatusBar.test.js +17 -0
- package/dist/ui/components/GoalStatusBar.test.js.map +1 -0
- package/dist/ui/components/InputArea.d.ts +16 -1
- package/dist/ui/components/InputArea.d.ts.map +1 -1
- package/dist/ui/components/InputArea.js +95 -6
- package/dist/ui/components/InputArea.js.map +1 -1
- 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 +16 -2
- 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/ServerToolExecution.d.ts +2 -0
- package/dist/ui/components/ServerToolExecution.d.ts.map +1 -1
- package/dist/ui/components/ServerToolExecution.js +3 -2
- package/dist/ui/components/ServerToolExecution.js.map +1 -1
- package/dist/ui/components/StreamingArea.js +1 -1
- package/dist/ui/components/StreamingArea.js.map +1 -1
- 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 +2 -2
- package/dist/ui/components/SubAgentPanel.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/ToolExecution.d.ts +2 -0
- package/dist/ui/components/ToolExecution.d.ts.map +1 -1
- package/dist/ui/components/ToolExecution.js +13 -11
- package/dist/ui/components/ToolExecution.js.map +1 -1
- package/dist/ui/components/ToolGroupExecution.d.ts +2 -1
- package/dist/ui/components/ToolGroupExecution.d.ts.map +1 -1
- package/dist/ui/components/ToolGroupExecution.js +5 -3
- package/dist/ui/components/ToolGroupExecution.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-status-layout.test.js +4 -3
- package/dist/ui/footer-status-layout.test.js.map +1 -1
- package/dist/ui/goal-events.d.ts +1 -0
- package/dist/ui/goal-events.d.ts.map +1 -1
- package/dist/ui/goal-events.js +2 -1
- package/dist/ui/goal-events.js.map +1 -1
- package/dist/ui/goal-events.test.js +16 -0
- package/dist/ui/goal-events.test.js.map +1 -1
- package/dist/ui/goal-lifecycle-orchestration.test.js +105 -18
- package/dist/ui/goal-lifecycle-orchestration.test.js.map +1 -1
- package/dist/ui/goal-progress.d.ts +1 -1
- package/dist/ui/goal-progress.d.ts.map +1 -1
- package/dist/ui/goal-progress.js +11 -13
- package/dist/ui/goal-progress.js.map +1 -1
- package/dist/ui/goal-run-helpers.d.ts +16 -0
- package/dist/ui/goal-run-helpers.d.ts.map +1 -0
- package/dist/ui/goal-run-helpers.js +61 -0
- package/dist/ui/goal-run-helpers.js.map +1 -0
- package/dist/ui/goal-status-bar.test.js +8 -6
- package/dist/ui/goal-status-bar.test.js.map +1 -1
- package/dist/ui/hooks/useChatLayoutMeasurements.d.ts +38 -0
- package/dist/ui/hooks/useChatLayoutMeasurements.d.ts.map +1 -0
- package/dist/ui/hooks/useChatLayoutMeasurements.js +71 -0
- package/dist/ui/hooks/useChatLayoutMeasurements.js.map +1 -0
- package/dist/ui/hooks/useGoalPickerController.d.ts +22 -0
- package/dist/ui/hooks/useGoalPickerController.d.ts.map +1 -0
- package/dist/ui/hooks/useGoalPickerController.js +35 -0
- package/dist/ui/hooks/useGoalPickerController.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/useTranscriptHistory.d.ts +34 -0
- package/dist/ui/hooks/useTranscriptHistory.d.ts.map +1 -0
- package/dist/ui/hooks/useTranscriptHistory.js +96 -0
- package/dist/ui/hooks/useTranscriptHistory.js.map +1 -0
- package/dist/ui/item-helpers.d.ts +2 -0
- package/dist/ui/item-helpers.d.ts.map +1 -1
- package/dist/ui/item-helpers.js +16 -0
- package/dist/ui/item-helpers.js.map +1 -1
- package/dist/ui/layout-decisions.d.ts +3 -12
- package/dist/ui/layout-decisions.d.ts.map +1 -1
- package/dist/ui/layout-decisions.js +7 -64
- package/dist/ui/layout-decisions.js.map +1 -1
- package/dist/ui/prompt-routing.d.ts.map +1 -1
- package/dist/ui/prompt-routing.js +36 -2
- package/dist/ui/prompt-routing.js.map +1 -1
- package/dist/ui/prompt-routing.test.d.ts +2 -0
- package/dist/ui/prompt-routing.test.d.ts.map +1 -0
- package/dist/ui/prompt-routing.test.js +48 -0
- package/dist/ui/prompt-routing.test.js.map +1 -0
- package/dist/ui/render.d.ts +9 -6
- package/dist/ui/render.d.ts.map +1 -1
- package/dist/ui/render.js +3 -2
- package/dist/ui/render.js.map +1 -1
- package/dist/ui/slash-command-images.test.js +3 -2
- package/dist/ui/slash-command-images.test.js.map +1 -1
- package/dist/ui/submit-prompt-command.d.ts +40 -0
- package/dist/ui/submit-prompt-command.d.ts.map +1 -0
- package/dist/ui/submit-prompt-command.js +92 -0
- package/dist/ui/submit-prompt-command.js.map +1 -0
- package/dist/ui/submit-slash-commands.d.ts +13 -0
- package/dist/ui/submit-slash-commands.d.ts.map +1 -0
- package/dist/ui/submit-slash-commands.js +36 -0
- package/dist/ui/submit-slash-commands.js.map +1 -0
- package/dist/ui/terminal-history-format.d.ts +1 -0
- package/dist/ui/terminal-history-format.d.ts.map +1 -1
- package/dist/ui/terminal-history-format.js +2 -1
- package/dist/ui/terminal-history-format.js.map +1 -1
- package/dist/ui/terminal-history-spacing.d.ts +1 -2
- package/dist/ui/terminal-history-spacing.d.ts.map +1 -1
- package/dist/ui/terminal-history-spacing.js +1 -27
- package/dist/ui/terminal-history-spacing.js.map +1 -1
- package/dist/ui/terminal-history-status-renderers.d.ts +2 -2
- package/dist/ui/terminal-history-status-renderers.d.ts.map +1 -1
- package/dist/ui/terminal-history-status-renderers.js +36 -17
- package/dist/ui/terminal-history-status-renderers.js.map +1 -1
- package/dist/ui/terminal-history.d.ts.map +1 -1
- package/dist/ui/terminal-history.js +59 -25
- package/dist/ui/terminal-history.js.map +1 -1
- package/dist/ui/terminal-history.test.js +2 -1
- package/dist/ui/terminal-history.test.js.map +1 -1
- package/dist/ui/tool-group-summary.d.ts +2 -2
- package/dist/ui/tool-group-summary.d.ts.map +1 -1
- package/dist/ui/tool-group-summary.js +18 -18
- package/dist/ui/tool-group-summary.js.map +1 -1
- package/dist/ui/transcript/GoalRows.d.ts +10 -0
- package/dist/ui/transcript/GoalRows.d.ts.map +1 -0
- package/dist/ui/transcript/GoalRows.js +35 -0
- package/dist/ui/transcript/GoalRows.js.map +1 -0
- package/dist/ui/transcript/MiscRows.d.ts +23 -0
- package/dist/ui/transcript/MiscRows.d.ts.map +1 -0
- package/dist/ui/transcript/MiscRows.js +41 -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 +84 -0
- package/dist/ui/transcript/TranscriptRenderer.js.map +1 -0
- package/dist/ui/transcript/presentation.d.ts +76 -0
- package/dist/ui/transcript/presentation.d.ts.map +1 -0
- package/dist/ui/transcript/presentation.js +109 -0
- package/dist/ui/transcript/presentation.js.map +1 -0
- package/dist/ui/transcript/spacing.d.ts +29 -0
- package/dist/ui/transcript/spacing.d.ts.map +1 -0
- package/dist/ui/transcript/spacing.js +91 -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 +21 -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/tui-history-parity.test.js +6 -2
- package/dist/ui/tui-history-parity.test.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 +6 -6
- package/dist/core/repomap-budget.d.ts +0 -7
- package/dist/core/repomap-budget.d.ts.map +0 -1
- package/dist/core/repomap-budget.js +0 -10
- package/dist/core/repomap-budget.js.map +0 -1
- package/dist/core/repomap-budget.test.d.ts +0 -2
- package/dist/core/repomap-budget.test.d.ts.map +0 -1
- package/dist/core/repomap-budget.test.js +0 -26
- package/dist/core/repomap-budget.test.js.map +0 -1
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoalStatusBar.d.ts","sourceRoot":"","sources":["../../../src/ui/components/GoalStatusBar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAKxD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,eAAe,GAAG,QAAQ,CAAC;AAE/F,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"GoalStatusBar.d.ts","sourceRoot":"","sources":["../../../src/ui/components/GoalStatusBar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAKxD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,eAAe,GAAG,QAAQ,CAAC;AAE/F,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAWD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKpD;AAmDD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAIzE;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,KAAK,EAAE,eAAe,GACrB,eAAe,EAAE,CAKnB;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,KAAK,EAAE,MAAM,GACZ,eAAe,EAAE,CAEnB;AAED,MAAM,WAAW,iCAAiC;IAChD,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;IAC7D,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;CAC9C;AAqBD,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,OAAO,GAAE,iCAAsC,GAC9C,eAAe,EAAE,CASnB;AAiDD,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,SAAS,eAAe,EAAE,CAAA;CAAE,kDA4BjF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { Box, Text } from "ink";
|
|
4
4
|
import { useTerminalSize } from "../hooks/useTerminalSize.js";
|
|
@@ -19,11 +19,12 @@ export function formatGoalElapsed(ms) {
|
|
|
19
19
|
return `${minutes}:${seconds.toString().padStart(2, "0")}`;
|
|
20
20
|
}
|
|
21
21
|
function truncateLabel(label, maxLength) {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
const normalized = label.replace(/\s+/g, " ").trim();
|
|
23
|
+
if (normalized.length <= maxLength)
|
|
24
|
+
return normalized;
|
|
24
25
|
if (maxLength <= 1)
|
|
25
26
|
return "…";
|
|
26
|
-
return `${
|
|
27
|
+
return `${normalized.slice(0, maxLength - 1)}…`;
|
|
27
28
|
}
|
|
28
29
|
function GoalAnimationSentinel() {
|
|
29
30
|
useAnimationActive();
|
|
@@ -50,8 +51,17 @@ function getPhaseColor(phase, theme) {
|
|
|
50
51
|
return theme.warning;
|
|
51
52
|
}
|
|
52
53
|
}
|
|
54
|
+
function formatTaskProgress(entry) {
|
|
55
|
+
if (entry.taskNumber == null || entry.taskTotal == null)
|
|
56
|
+
return undefined;
|
|
57
|
+
if (entry.taskNumber <= 0 || entry.taskTotal <= 0)
|
|
58
|
+
return undefined;
|
|
59
|
+
return `(${entry.taskNumber}/${entry.taskTotal})`;
|
|
60
|
+
}
|
|
53
61
|
export function formatGoalStatusActiveText(entry) {
|
|
54
|
-
|
|
62
|
+
const progress = formatTaskProgress(entry);
|
|
63
|
+
const prefix = progress ? `${progress} ` : "";
|
|
64
|
+
return `${prefix}Goal in progress: ${truncateLabel(entry.label, 24)}`;
|
|
55
65
|
}
|
|
56
66
|
export function syncGoalStatusEntries(previous, entry) {
|
|
57
67
|
const withoutRun = previous.filter((item) => item.runId !== entry.runId);
|
|
@@ -88,16 +98,20 @@ export function reconcileGoalStatusEntriesWithRuns(previous, runs, options = {})
|
|
|
88
98
|
});
|
|
89
99
|
return next.length === previous.length ? previous : next;
|
|
90
100
|
}
|
|
91
|
-
function GoalStatusSlot({ entry, tick }) {
|
|
101
|
+
function GoalStatusSlot({ entry, tick, maxWidth, }) {
|
|
92
102
|
const theme = useTheme();
|
|
93
103
|
const phaseColor = getPhaseColor(entry.phase, theme);
|
|
94
104
|
const phaseLabel = PHASE_LABELS[entry.phase];
|
|
95
105
|
const elapsed = formatGoalElapsed(Date.now() - entry.startedAt);
|
|
96
|
-
const
|
|
106
|
+
const progress = formatTaskProgress(entry);
|
|
107
|
+
const activePrefix = "Goal in progress:";
|
|
108
|
+
const prefix = entry.phase === "failed" ? `✗ Goal ${phaseLabel}` : activePrefix;
|
|
109
|
+
const reserved = prefix.length + (progress ? progress.length + 1 : 0) + elapsed.length + 3;
|
|
110
|
+
const label = truncateLabel(entry.label, Math.max(1, maxWidth - reserved));
|
|
97
111
|
if (entry.phase === "failed") {
|
|
98
|
-
return (_jsxs(Text, { children: [
|
|
112
|
+
return (_jsxs(Text, { children: [_jsx(Text, { color: phaseColor, children: prefix }), _jsxs(Text, { color: theme.textDim, children: [" \u00B7 ", label] }), _jsxs(Text, { color: theme.textDim, children: [" ", elapsed] })] }));
|
|
99
113
|
}
|
|
100
|
-
return (_jsxs(Text, { children: [_jsx(
|
|
114
|
+
return (_jsxs(Text, { children: [progress ? (_jsxs(_Fragment, { children: [_jsx(Text, { color: theme.accent, bold: true, children: progress }), _jsx(Text, { children: " " })] })) : null, _jsx(ShimmerText, { text: prefix, color: phaseColor, tick: tick }), _jsx(Text, { children: " " }), _jsx(Text, { color: theme.text, children: label }), _jsxs(Text, { color: theme.textDim, children: [" ", elapsed] })] }));
|
|
101
115
|
}
|
|
102
116
|
export function GoalStatusBar({ entries }) {
|
|
103
117
|
const theme = useTheme();
|
|
@@ -107,8 +121,10 @@ export function GoalStatusBar({ entries }) {
|
|
|
107
121
|
return null;
|
|
108
122
|
const activeEntries = entries.filter((entry) => entry.phase !== "failed");
|
|
109
123
|
const failedEntries = entries.filter((entry) => entry.phase === "failed");
|
|
110
|
-
const visibleEntries = [...activeEntries, ...failedEntries].slice(0,
|
|
124
|
+
const visibleEntries = [...activeEntries, ...failedEntries].slice(0, 1);
|
|
111
125
|
const hiddenCount = entries.length - visibleEntries.length;
|
|
112
|
-
|
|
126
|
+
const hiddenSuffix = hiddenCount > 0 ? ` │ +${hiddenCount} more` : "";
|
|
127
|
+
const slotWidth = Math.max(8, columns - 2 - hiddenSuffix.length);
|
|
128
|
+
return (_jsxs(Box, { paddingX: 1, width: columns, flexShrink: 1, children: [activeEntries.length > 0 && _jsx(GoalAnimationSentinel, {}), _jsxs(Text, { wrap: "truncate", children: [visibleEntries.map((entry, index) => (_jsxs(React.Fragment, { children: [index > 0 ? _jsx(Text, { color: theme.border, children: " │ " }) : null, _jsx(GoalStatusSlot, { entry: entry, tick: tick, maxWidth: slotWidth })] }, entry.runId))), hiddenCount > 0 ? _jsx(Text, { color: theme.textDim, children: hiddenSuffix }) : null] })] }));
|
|
113
129
|
}
|
|
114
130
|
//# sourceMappingURL=GoalStatusBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoalStatusBar.js","sourceRoot":"","sources":["../../../src/ui/components/GoalStatusBar.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"GoalStatusBar.js","sourceRoot":"","sources":["../../../src/ui/components/GoalStatusBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GoalStatusBar.test.d.ts","sourceRoot":"","sources":["../../../src/ui/components/GoalStatusBar.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { formatGoalStatusActiveText } from "./GoalStatusBar.js";
|
|
3
|
+
const startedAt = 1_700_000_000_000;
|
|
4
|
+
describe("GoalStatusBar formatting", () => {
|
|
5
|
+
it("keeps active Goal status text compact and single-line", () => {
|
|
6
|
+
const text = formatGoalStatusActiveText({
|
|
7
|
+
runId: "goal-1",
|
|
8
|
+
label: "A very long Goal title that previously wrapped across small terminals",
|
|
9
|
+
phase: "worker",
|
|
10
|
+
startedAt,
|
|
11
|
+
});
|
|
12
|
+
expect(text).toBe("Goal in progress: A very long Goal title …");
|
|
13
|
+
expect(text).not.toContain("\n");
|
|
14
|
+
expect(text.length).toBeLessThanOrEqual(44);
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=GoalStatusBar.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GoalStatusBar.test.js","sourceRoot":"","sources":["../../../src/ui/components/GoalStatusBar.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAEpC,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,IAAI,GAAG,0BAA0B,CAAC;YACtC,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,uEAAuE;YAC9E,KAAK,EAAE,QAAQ;YACf,SAAS;SACV,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { ImageAttachment } from "../../utils/image.js";
|
|
3
3
|
import { type SlashCommandInfo } from "./SlashCommandMenu.js";
|
|
4
|
+
import type { TaskRecord } from "../../core/tasks-store.js";
|
|
5
|
+
import type { GoalRun } from "../../core/goal-store.js";
|
|
4
6
|
export interface PasteInfo {
|
|
5
7
|
offset: number;
|
|
6
8
|
length: number;
|
|
@@ -13,6 +15,19 @@ interface InputAreaProps {
|
|
|
13
15
|
isActive?: boolean;
|
|
14
16
|
onDownAtEnd?: () => void;
|
|
15
17
|
onShiftTab?: () => void;
|
|
18
|
+
onToggleTasks?: () => void;
|
|
19
|
+
taskPickerOpen?: boolean;
|
|
20
|
+
tasks?: readonly TaskRecord[];
|
|
21
|
+
onCloseTaskPicker?: () => void;
|
|
22
|
+
onStartTask?: (task: TaskRecord) => void;
|
|
23
|
+
onRunAllTasks?: (task?: TaskRecord) => void;
|
|
24
|
+
onDeleteTask?: (task: TaskRecord) => void;
|
|
25
|
+
goalPickerOpen?: boolean;
|
|
26
|
+
goals?: readonly GoalRun[];
|
|
27
|
+
onCloseGoalPicker?: () => void;
|
|
28
|
+
onRunGoal?: (goal: GoalRun) => void;
|
|
29
|
+
onDeleteGoal?: (goal: GoalRun) => void;
|
|
30
|
+
onPauseGoal?: (goal: GoalRun) => void;
|
|
16
31
|
onToggleGoal?: () => void;
|
|
17
32
|
onToggleSkills?: () => void;
|
|
18
33
|
onTogglePixel?: () => void;
|
|
@@ -42,6 +57,6 @@ interface InputAreaProps {
|
|
|
42
57
|
*/
|
|
43
58
|
onTab?: () => void;
|
|
44
59
|
}
|
|
45
|
-
export declare function InputArea({ onSubmit, onAbort, disabled, isActive, onDownAtEnd, onShiftTab, onToggleGoal, onToggleSkills, onTogglePixel, onToggleMarkdown, cwd, commands, scopeBadge, disableMouseTracking, onTab, }: InputAreaProps): import("react/jsx-runtime").JSX.Element;
|
|
60
|
+
export declare function InputArea({ onSubmit, onAbort, disabled, isActive, onDownAtEnd, onShiftTab, onToggleTasks, taskPickerOpen, tasks, onCloseTaskPicker, onStartTask, onRunAllTasks, onDeleteTask, goalPickerOpen, goals, onCloseGoalPicker, onRunGoal, onDeleteGoal, onPauseGoal, onToggleGoal, onToggleSkills, onTogglePixel, onToggleMarkdown, cwd, commands, scopeBadge, disableMouseTracking, onTab, }: InputAreaProps): import("react/jsx-runtime").JSX.Element;
|
|
46
61
|
export {};
|
|
47
62
|
//# sourceMappingURL=InputArea.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputArea.d.ts","sourceRoot":"","sources":["../../../src/ui/components/InputArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAMpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAoC,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"InputArea.d.ts","sourceRoot":"","sources":["../../../src/ui/components/InputArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAMpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAoC,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGhG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AA2LxD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,KAAK,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IAChF,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACzC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B;;;;OAIG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B;;;;;;;;;OASG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB;AAsDD,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,OAAO,EACP,QAAgB,EAChB,QAAe,EACf,WAAW,EACX,UAAU,EACV,aAAa,EACb,cAAsB,EACtB,KAAU,EACV,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,cAAsB,EACtB,KAAU,EACV,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,GAAG,EACH,QAAa,EACb,UAAU,EACV,oBAAoB,EACpB,KAAK,GACN,EAAE,cAAc,2CA+iDhB"}
|
|
@@ -6,6 +6,8 @@ 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 { GoalPickerMenu } from "./GoalPickerMenu.js";
|
|
9
11
|
import { log } from "../../core/logger.js";
|
|
10
12
|
import { homedir } from "node:os";
|
|
11
13
|
import { join } from "node:path";
|
|
@@ -228,7 +230,7 @@ function getVisualLines(text, columns) {
|
|
|
228
230
|
}
|
|
229
231
|
return result;
|
|
230
232
|
}
|
|
231
|
-
export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true, onDownAtEnd, onShiftTab, onToggleGoal, onToggleSkills, onTogglePixel, onToggleMarkdown, cwd, commands = [], scopeBadge, disableMouseTracking, onTab, }) {
|
|
233
|
+
export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true, onDownAtEnd, onShiftTab, onToggleTasks, taskPickerOpen = false, tasks = [], onCloseTaskPicker, onStartTask, onRunAllTasks, onDeleteTask, goalPickerOpen = false, goals = [], onCloseGoalPicker, onRunGoal, onDeleteGoal, onPauseGoal, onToggleGoal, onToggleSkills, onTogglePixel, onToggleMarkdown, cwd, commands = [], scopeBadge, disableMouseTracking, onTab, }) {
|
|
232
234
|
const theme = useTheme();
|
|
233
235
|
const isScreenReaderEnabled = useIsScreenReaderEnabled();
|
|
234
236
|
const [value, setValue] = useState("");
|
|
@@ -265,6 +267,8 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
265
267
|
const lastEscRef = useRef(0);
|
|
266
268
|
const { columns } = useTerminalSize();
|
|
267
269
|
const [menuIndex, setMenuIndex] = useState(0);
|
|
270
|
+
const [taskPickerIndex, setTaskPickerIndex] = useState(0);
|
|
271
|
+
const [goalPickerIndex, setGoalPickerIndex] = useState(0);
|
|
268
272
|
const [pasteText, setPasteText] = useState(""); // accumulated pasted content
|
|
269
273
|
const [pasteOffset, setPasteOffset] = useState(0); // where in value the paste starts
|
|
270
274
|
const pasteTimerRef = useRef(null);
|
|
@@ -272,10 +276,18 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
272
276
|
const isSlashMode = value.startsWith("/") && !value.includes(" ") && commands.length > 0;
|
|
273
277
|
const slashFilter = isSlashMode ? value.slice(1) : "";
|
|
274
278
|
const filteredCommands = useMemo(() => (isSlashMode ? filterCommands(commands, slashFilter) : []), [isSlashMode, commands, slashFilter]);
|
|
279
|
+
const runnableTasks = useMemo(() => tasks.filter((task) => task.status !== "done"), [tasks]);
|
|
280
|
+
const selectableGoals = useMemo(() => [...goals], [goals]);
|
|
275
281
|
// Reset menu index when filter changes
|
|
276
282
|
useEffect(() => {
|
|
277
283
|
setMenuIndex(0);
|
|
278
284
|
}, [slashFilter]);
|
|
285
|
+
useEffect(() => {
|
|
286
|
+
setTaskPickerIndex((index) => Math.min(index, Math.max(0, runnableTasks.length - 1)));
|
|
287
|
+
}, [runnableTasks.length]);
|
|
288
|
+
useEffect(() => {
|
|
289
|
+
setGoalPickerIndex((index) => Math.min(index, Math.max(0, selectableGoals.length - 1)));
|
|
290
|
+
}, [selectableGoals.length]);
|
|
279
291
|
// Border color pulse (when idle/waiting for input)
|
|
280
292
|
const borderPulseColors = useMemo(() => [theme.primary, theme.accent, theme.secondary, theme.accent], [theme.primary, theme.accent, theme.secondary]);
|
|
281
293
|
// Derive border pulse and cursor blink from global animation tick.
|
|
@@ -638,6 +650,7 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
638
650
|
return;
|
|
639
651
|
// Reset kill ring accumulation for non-kill keys
|
|
640
652
|
input = inputWithoutFocusReports;
|
|
653
|
+
const isReturnKey = key.return || input === "\r" || input === "\n";
|
|
641
654
|
const isKillKey = key.ctrl && (input === "k" || input === "u" || input === "w");
|
|
642
655
|
if (!isKillKey)
|
|
643
656
|
lastActionWasKill = false;
|
|
@@ -674,7 +687,7 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
674
687
|
setCursor(savedCursorRef.current);
|
|
675
688
|
return;
|
|
676
689
|
}
|
|
677
|
-
if (
|
|
690
|
+
if (isReturnKey) {
|
|
678
691
|
// Accept match and submit
|
|
679
692
|
setSearchMode(false);
|
|
680
693
|
return; // fall through to normal submit handling
|
|
@@ -711,7 +724,75 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
711
724
|
}
|
|
712
725
|
return; // absorb all other keys during search
|
|
713
726
|
}
|
|
714
|
-
|
|
727
|
+
if (taskPickerOpen) {
|
|
728
|
+
if (key.escape || (key.ctrl && input === "t")) {
|
|
729
|
+
onCloseTaskPicker?.();
|
|
730
|
+
return;
|
|
731
|
+
}
|
|
732
|
+
if (key.upArrow) {
|
|
733
|
+
setTaskPickerIndex((i) => Math.max(0, i - 1));
|
|
734
|
+
return;
|
|
735
|
+
}
|
|
736
|
+
if (key.downArrow) {
|
|
737
|
+
setTaskPickerIndex((i) => Math.min(runnableTasks.length - 1, i + 1));
|
|
738
|
+
return;
|
|
739
|
+
}
|
|
740
|
+
if (input.toLowerCase() === "r") {
|
|
741
|
+
const task = runnableTasks[Math.min(taskPickerIndex, runnableTasks.length - 1)];
|
|
742
|
+
onRunAllTasks?.(task);
|
|
743
|
+
return;
|
|
744
|
+
}
|
|
745
|
+
if (input.toLowerCase() === "d") {
|
|
746
|
+
const task = runnableTasks[Math.min(taskPickerIndex, runnableTasks.length - 1)];
|
|
747
|
+
if (task)
|
|
748
|
+
onDeleteTask?.(task);
|
|
749
|
+
return;
|
|
750
|
+
}
|
|
751
|
+
if (isReturnKey) {
|
|
752
|
+
const task = runnableTasks[Math.min(taskPickerIndex, runnableTasks.length - 1)];
|
|
753
|
+
if (task)
|
|
754
|
+
onStartTask?.(task);
|
|
755
|
+
return;
|
|
756
|
+
}
|
|
757
|
+
return;
|
|
758
|
+
}
|
|
759
|
+
// Ctrl+T toggles task picker
|
|
760
|
+
if (key.ctrl && input === "t") {
|
|
761
|
+
onToggleTasks?.();
|
|
762
|
+
return;
|
|
763
|
+
}
|
|
764
|
+
if (goalPickerOpen) {
|
|
765
|
+
if (key.escape || (key.ctrl && input === "g")) {
|
|
766
|
+
onCloseGoalPicker?.();
|
|
767
|
+
return;
|
|
768
|
+
}
|
|
769
|
+
if (key.upArrow) {
|
|
770
|
+
setGoalPickerIndex((i) => Math.max(0, i - 1));
|
|
771
|
+
return;
|
|
772
|
+
}
|
|
773
|
+
if (key.downArrow) {
|
|
774
|
+
setGoalPickerIndex((i) => Math.min(selectableGoals.length - 1, i + 1));
|
|
775
|
+
return;
|
|
776
|
+
}
|
|
777
|
+
const goal = selectableGoals[Math.min(goalPickerIndex, selectableGoals.length - 1)];
|
|
778
|
+
if (input.toLowerCase() === "d") {
|
|
779
|
+
if (goal)
|
|
780
|
+
onDeleteGoal?.(goal);
|
|
781
|
+
return;
|
|
782
|
+
}
|
|
783
|
+
if (input.toLowerCase() === "p") {
|
|
784
|
+
if (goal)
|
|
785
|
+
onPauseGoal?.(goal);
|
|
786
|
+
return;
|
|
787
|
+
}
|
|
788
|
+
if (isReturnKey) {
|
|
789
|
+
if (goal)
|
|
790
|
+
onRunGoal?.(goal);
|
|
791
|
+
return;
|
|
792
|
+
}
|
|
793
|
+
return;
|
|
794
|
+
}
|
|
795
|
+
// Ctrl+G toggles goal picker in normal input mode. In search mode it cancels search above.
|
|
715
796
|
if (key.ctrl && input === "g") {
|
|
716
797
|
onToggleGoal?.();
|
|
717
798
|
return;
|
|
@@ -739,7 +820,7 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
739
820
|
// When disabled (agent running), allow typing AND submission.
|
|
740
821
|
// Submitted messages will be queued by the parent component.
|
|
741
822
|
}
|
|
742
|
-
if (
|
|
823
|
+
if (isReturnKey && (key.shift || key.meta)) {
|
|
743
824
|
// If there's a selection, replace it with the newline
|
|
744
825
|
const sel = deleteSelection();
|
|
745
826
|
if (sel) {
|
|
@@ -753,7 +834,7 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
753
834
|
setSelectionAnchor(null);
|
|
754
835
|
return;
|
|
755
836
|
}
|
|
756
|
-
if (
|
|
837
|
+
if (isReturnKey) {
|
|
757
838
|
// If slash menu is open and a command is selected, fill it in
|
|
758
839
|
if (isSlashMode && filteredCommands.length > 0) {
|
|
759
840
|
const selected = filteredCommands[Math.min(menuIndex, filteredCommands.length - 1)];
|
|
@@ -912,6 +993,10 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
912
993
|
return;
|
|
913
994
|
}
|
|
914
995
|
if (key.upArrow) {
|
|
996
|
+
if (taskPickerOpen) {
|
|
997
|
+
setTaskPickerIndex((i) => Math.max(0, i - 1));
|
|
998
|
+
return;
|
|
999
|
+
}
|
|
915
1000
|
// If slash menu is open, navigate it
|
|
916
1001
|
if (isSlashMode && filteredCommands.length > 0) {
|
|
917
1002
|
setMenuIndex((i) => Math.max(0, i - 1));
|
|
@@ -952,6 +1037,10 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
952
1037
|
return;
|
|
953
1038
|
}
|
|
954
1039
|
if (key.downArrow) {
|
|
1040
|
+
if (taskPickerOpen) {
|
|
1041
|
+
setTaskPickerIndex((i) => Math.min(runnableTasks.length - 1, i + 1));
|
|
1042
|
+
return;
|
|
1043
|
+
}
|
|
955
1044
|
// If slash menu is open, navigate it
|
|
956
1045
|
if (isSlashMode && filteredCommands.length > 0) {
|
|
957
1046
|
setMenuIndex((i) => Math.min(filteredCommands.length - 1, i + 1));
|
|
@@ -1402,6 +1491,6 @@ export function InputArea({ onSubmit, onAbort, disabled = false, isActive = true
|
|
|
1402
1491
|
}
|
|
1403
1492
|
return (_jsxs(Box, { backgroundColor: backgroundColor, width: "100%", children: [renderPromptPrefix(i === 0 ? PROMPT : " "), segments] }, i));
|
|
1404
1493
|
});
|
|
1405
|
-
})()] }), renderInputEdge(backgroundColor ? INPUT_BOTTOM_FILL : "─"), isSlashMode && filteredCommands.length > 0
|
|
1494
|
+
})()] }), renderInputEdge(backgroundColor ? INPUT_BOTTOM_FILL : "─"), goalPickerOpen ? (_jsx(Box, { paddingRight: 2, children: _jsx(GoalPickerMenu, { goals: goals, selectedIndex: goalPickerIndex, width: Math.max(20, columns) }) })) : 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] }));
|
|
1406
1495
|
}
|
|
1407
1496
|
//# sourceMappingURL=InputArea.js.map
|