centaurus-cli 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/types.js +0 -1
- package/dist/ai/types.js.map +1 -1
- package/dist/cli-adapter.js +5047 -5037
- package/dist/cli-adapter.js.map +1 -1
- package/dist/commands/CommandParser.js +372 -315
- package/dist/commands/CommandParser.js.map +1 -1
- package/dist/config/build-config.js +11 -42
- package/dist/config/build-config.js.map +1 -1
- package/dist/config/defaultConfig.js +94 -82
- package/dist/config/defaultConfig.js.map +1 -1
- package/dist/config/manager.js +144 -160
- package/dist/config/manager.js.map +1 -1
- package/dist/config/mcp-config-manager.js +411 -364
- package/dist/config/mcp-config-manager.js.map +1 -1
- package/dist/config/models.js +118 -185
- package/dist/config/models.js.map +1 -1
- package/dist/config/slash-commands.js +186 -184
- package/dist/config/slash-commands.js.map +1 -1
- package/dist/config/types.js +33 -26
- package/dist/config/types.js.map +1 -1
- package/dist/context/command-detector.js +63 -67
- package/dist/context/command-detector.js.map +1 -1
- package/dist/context/context-manager.js +533 -518
- package/dist/context/context-manager.js.map +1 -1
- package/dist/context/handlers/docker-handler.js +518 -576
- package/dist/context/handlers/docker-handler.js.map +1 -1
- package/dist/context/handlers/ssh-handler.js +1050 -1109
- package/dist/context/handlers/ssh-handler.js.map +1 -1
- package/dist/context/handlers/wsl-handler.js +558 -630
- package/dist/context/handlers/wsl-handler.js.map +1 -1
- package/dist/context/index.js +42 -6
- package/dist/context/index.js.map +1 -1
- package/dist/context/subshell-handler.js +0 -4
- package/dist/context/subshell-handler.js.map +1 -1
- package/dist/context/types.js +20 -31
- package/dist/context/types.js.map +1 -1
- package/dist/hooks/useConnectivity.js +13 -10
- package/dist/hooks/useConnectivity.js.map +1 -1
- package/dist/hooks/useTerminalDimensions.js +67 -79
- package/dist/hooks/useTerminalDimensions.js.map +1 -1
- package/dist/index.js +228 -251
- package/dist/index.js.map +1 -1
- package/dist/mcp/mcp-command-handler.js +297 -260
- package/dist/mcp/mcp-command-handler.js.map +1 -1
- package/dist/mcp/mcp-server-manager.js +139 -155
- package/dist/mcp/mcp-server-manager.js.map +1 -1
- package/dist/mcp/mcp-tool-wrapper.js +74 -94
- package/dist/mcp/mcp-tool-wrapper.js.map +1 -1
- package/dist/services/ai-autocomplete-agent.js +169 -181
- package/dist/services/ai-autocomplete-agent.js.map +1 -1
- package/dist/services/ai-context-injector.js +180 -93
- package/dist/services/ai-context-injector.js.map +1 -1
- package/dist/services/ai-service-client.js +513 -456
- package/dist/services/ai-service-client.js.map +1 -1
- package/dist/services/api-client.js +443 -441
- package/dist/services/api-client.js.map +1 -1
- package/dist/services/auth-handler.js +162 -198
- package/dist/services/auth-handler.js.map +1 -1
- package/dist/services/background-task-manager.js +258 -282
- package/dist/services/background-task-manager.js.map +1 -1
- package/dist/services/checkpoint-manager.js +1513 -973
- package/dist/services/checkpoint-manager.js.map +1 -1
- package/dist/services/clipboard-service.js +151 -200
- package/dist/services/clipboard-service.js.map +1 -1
- package/dist/services/connectivity-manager.js +63 -65
- package/dist/services/connectivity-manager.js.map +1 -1
- package/dist/services/conversation-manager.js +118 -121
- package/dist/services/conversation-manager.js.map +1 -1
- package/dist/services/environment-context-injector.js +160 -187
- package/dist/services/environment-context-injector.js.map +1 -1
- package/dist/services/fast-context-agent.js +203 -243
- package/dist/services/fast-context-agent.js.map +1 -1
- package/dist/services/input-detection-agent.js +190 -202
- package/dist/services/input-detection-agent.js.map +1 -1
- package/dist/services/input-requirement-detector.js +155 -189
- package/dist/services/input-requirement-detector.js.map +1 -1
- package/dist/services/local-chat-storage.js +342 -365
- package/dist/services/local-chat-storage.js.map +1 -1
- package/dist/services/monitored-shell-manager.js +225 -233
- package/dist/services/monitored-shell-manager.js.map +1 -1
- package/dist/services/ollama-service.js +293 -310
- package/dist/services/ollama-service.js.map +1 -1
- package/dist/services/rules-storage.js +142 -0
- package/dist/services/rules-storage.js.map +1 -0
- package/dist/services/session-quota-manager.js +219 -235
- package/dist/services/session-quota-manager.js.map +1 -1
- package/dist/services/shell-input-agent.js +299 -334
- package/dist/services/shell-input-agent.js.map +1 -1
- package/dist/services/sub-agent-manager.js +459 -501
- package/dist/services/sub-agent-manager.js.map +1 -1
- package/dist/services/warpify-detector.js +133 -183
- package/dist/services/warpify-detector.js.map +1 -1
- package/dist/services/workflow-storage.js +202 -217
- package/dist/services/workflow-storage.js.map +1 -1
- package/dist/test-ssh-handler.js +148 -193
- package/dist/test-ssh-handler.js.map +1 -1
- package/dist/tools/add-mcp.js +161 -0
- package/dist/tools/add-mcp.js.map +1 -0
- package/dist/tools/background-command.js +240 -273
- package/dist/tools/background-command.js.map +1 -1
- package/dist/tools/command.js +447 -440
- package/dist/tools/command.js.map +1 -1
- package/dist/tools/create-image.js +172 -202
- package/dist/tools/create-image.js.map +1 -1
- package/dist/tools/enter-remote-session.js +169 -215
- package/dist/tools/enter-remote-session.js.map +1 -1
- package/dist/tools/fast-context.js +60 -67
- package/dist/tools/fast-context.js.map +1 -1
- package/dist/tools/file-ops.js +605 -537
- package/dist/tools/file-ops.js.map +1 -1
- package/dist/tools/find-files.js +262 -303
- package/dist/tools/find-files.js.map +1 -1
- package/dist/tools/get-diff.js +423 -400
- package/dist/tools/get-diff.js.map +1 -1
- package/dist/tools/grep-search.js +966 -948
- package/dist/tools/grep-search.js.map +1 -1
- package/dist/tools/inspect-symbol.js +308 -323
- package/dist/tools/inspect-symbol.js.map +1 -1
- package/dist/tools/plan-mode.js +459 -503
- package/dist/tools/plan-mode.js.map +1 -1
- package/dist/tools/read-binary-file.js +160 -190
- package/dist/tools/read-binary-file.js.map +1 -1
- package/dist/tools/registry.js +100 -84
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/reproduce_issue.js +170 -151
- package/dist/tools/reproduce_issue.js.map +1 -1
- package/dist/tools/sub-agent.js +223 -228
- package/dist/tools/sub-agent.js.map +1 -1
- package/dist/tools/task-complete.js +28 -27
- package/dist/tools/task-complete.js.map +1 -1
- package/dist/tools/types.js +0 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/tools/validation.js +96 -118
- package/dist/tools/validation.js.map +1 -1
- package/dist/tools/web-search.js +194 -194
- package/dist/tools/web-search.js.map +1 -1
- package/dist/tools/workflow-tool.js +77 -82
- package/dist/tools/workflow-tool.js.map +1 -1
- package/dist/types/index.js +0 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/rule.js +1 -0
- package/dist/types/rule.js.map +1 -0
- package/dist/types/workflow.js +0 -7
- package/dist/types/workflow.js.map +1 -1
- package/dist/ui/components/AgentTimer.js +24 -25
- package/dist/ui/components/AgentTimer.js.map +1 -1
- package/dist/ui/components/App.js +3266 -3249
- package/dist/ui/components/App.js.map +1 -1
- package/dist/ui/components/AuthScreen.js +22 -34
- package/dist/ui/components/AuthScreen.js.map +1 -1
- package/dist/ui/components/AuthWelcomeScreen.js +30 -24
- package/dist/ui/components/AuthWelcomeScreen.js.map +1 -1
- package/dist/ui/components/Breadcrumbs.js +53 -82
- package/dist/ui/components/Breadcrumbs.js.map +1 -1
- package/dist/ui/components/CircularSelectInput.js +59 -67
- package/dist/ui/components/CircularSelectInput.js.map +1 -1
- package/dist/ui/components/ClipboardFileAutocomplete.js +78 -39
- package/dist/ui/components/ClipboardFileAutocomplete.js.map +1 -1
- package/dist/ui/components/CodeBlock.js +24 -42
- package/dist/ui/components/CodeBlock.js.map +1 -1
- package/dist/ui/components/ConfigViewer.js +18 -25
- package/dist/ui/components/ConfigViewer.js.map +1 -1
- package/dist/ui/components/ConfirmPrompt.js +49 -71
- package/dist/ui/components/ConfirmPrompt.js.map +1 -1
- package/dist/ui/components/ConnectionStatusMessage.js +32 -83
- package/dist/ui/components/ConnectionStatusMessage.js.map +1 -1
- package/dist/ui/components/ContextWindowIndicator.js +34 -49
- package/dist/ui/components/ContextWindowIndicator.js.map +1 -1
- package/dist/ui/components/DetailedPlanReviewScreen.js +104 -106
- package/dist/ui/components/DetailedPlanReviewScreen.js.map +1 -1
- package/dist/ui/components/DiffViewer.js +68 -121
- package/dist/ui/components/DiffViewer.js.map +1 -1
- package/dist/ui/components/ErrorBoundary.js +40 -48
- package/dist/ui/components/ErrorBoundary.js.map +1 -1
- package/dist/ui/components/FileCreationPreview.js +29 -60
- package/dist/ui/components/FileCreationPreview.js.map +1 -1
- package/dist/ui/components/FileOperation.js +34 -29
- package/dist/ui/components/FileOperation.js.map +1 -1
- package/dist/ui/components/FileTagAutocomplete.js +55 -25
- package/dist/ui/components/FileTagAutocomplete.js.map +1 -1
- package/dist/ui/components/FontRecommendation.js.map +1 -1
- package/dist/ui/components/GitDiffBreadcrumb.js +29 -0
- package/dist/ui/components/GitDiffBreadcrumb.js.map +1 -0
- package/dist/ui/components/InputBox.js +1620 -2150
- package/dist/ui/components/InputBox.js.map +1 -1
- package/dist/ui/components/InteractiveShell.js +234 -352
- package/dist/ui/components/InteractiveShell.js.map +1 -1
- package/dist/ui/components/KeyboardHelp.js +34 -35
- package/dist/ui/components/KeyboardHelp.js.map +1 -1
- package/dist/ui/components/LoadingIndicator.js +22 -25
- package/dist/ui/components/LoadingIndicator.js.map +1 -1
- package/dist/ui/components/MCPAddScreen.js +40 -51
- package/dist/ui/components/MCPAddScreen.js.map +1 -1
- package/dist/ui/components/MCPListScreen.js +40 -48
- package/dist/ui/components/MCPListScreen.js.map +1 -1
- package/dist/ui/components/MCPServerListScreen.js +49 -56
- package/dist/ui/components/MCPServerListScreen.js.map +1 -1
- package/dist/ui/components/MarkdownRenderer.js +69 -96
- package/dist/ui/components/MarkdownRenderer.js.map +1 -1
- package/dist/ui/components/MessageBox.js +66 -48
- package/dist/ui/components/MessageBox.js.map +1 -1
- package/dist/ui/components/MessageDisplay.js +150 -142
- package/dist/ui/components/MessageDisplay.js.map +1 -1
- package/dist/ui/components/MonitorModeAIPanel.js +46 -65
- package/dist/ui/components/MonitorModeAIPanel.js.map +1 -1
- package/dist/ui/components/MultiLineInput.js +243 -277
- package/dist/ui/components/MultiLineInput.js.map +1 -1
- package/dist/ui/components/PasswordPrompt.js +37 -18
- package/dist/ui/components/PasswordPrompt.js.map +1 -1
- package/dist/ui/components/PlanAcceptedMessage.js +27 -38
- package/dist/ui/components/PlanAcceptedMessage.js.map +1 -1
- package/dist/ui/components/PlanReviewScreen.js +46 -50
- package/dist/ui/components/PlanReviewScreen.js.map +1 -1
- package/dist/ui/components/RulesEditorScreen.js +81 -0
- package/dist/ui/components/RulesEditorScreen.js.map +1 -0
- package/dist/ui/components/SelectPrompt.js +19 -8
- package/dist/ui/components/SelectPrompt.js.map +1 -1
- package/dist/ui/components/ShimmerText.js +44 -0
- package/dist/ui/components/ShimmerText.js.map +1 -0
- package/dist/ui/components/SlashCommandAutocomplete.js +49 -22
- package/dist/ui/components/SlashCommandAutocomplete.js.map +1 -1
- package/dist/ui/components/StatusBar.js +56 -87
- package/dist/ui/components/StatusBar.js.map +1 -1
- package/dist/ui/components/StreamingMessageDisplay.js +116 -99
- package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
- package/dist/ui/components/TaskCompletedMessage.js +28 -23
- package/dist/ui/components/TaskCompletedMessage.js.map +1 -1
- package/dist/ui/components/TaskProgressIndicator.js +44 -70
- package/dist/ui/components/TaskProgressIndicator.js.map +1 -1
- package/dist/ui/components/ThinkingDisplay.js +44 -41
- package/dist/ui/components/ThinkingDisplay.js.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.js +772 -1326
- package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
- package/dist/ui/components/ToolExecutionStatus.js +53 -84
- package/dist/ui/components/ToolExecutionStatus.js.map +1 -1
- package/dist/ui/components/ToolResult.js +22 -15
- package/dist/ui/components/ToolResult.js.map +1 -1
- package/dist/ui/components/VersionUpdatePrompt.js +88 -120
- package/dist/ui/components/VersionUpdatePrompt.js.map +1 -1
- package/dist/ui/components/WelcomeBanner.js +176 -26
- package/dist/ui/components/WelcomeBanner.js.map +1 -1
- package/dist/ui/components/WorkflowCreatorScreen.js +94 -161
- package/dist/ui/components/WorkflowCreatorScreen.js.map +1 -1
- package/dist/utils/ansi-encoder.js +30 -61
- package/dist/utils/ansi-encoder.js.map +1 -1
- package/dist/utils/chat-formatter.js +327 -305
- package/dist/utils/chat-formatter.js.map +1 -1
- package/dist/utils/command-history.js +152 -174
- package/dist/utils/command-history.js.map +1 -1
- package/dist/utils/context-sanitizer.js +49 -112
- package/dist/utils/context-sanitizer.js.map +1 -1
- package/dist/utils/conversation-logger.js +292 -324
- package/dist/utils/conversation-logger.js.map +1 -1
- package/dist/utils/custom-commands-manager.js +126 -131
- package/dist/utils/custom-commands-manager.js.map +1 -1
- package/dist/utils/editor-utils.js +732 -837
- package/dist/utils/editor-utils.js.map +1 -1
- package/dist/utils/file.js +174 -213
- package/dist/utils/file.js.map +1 -1
- package/dist/utils/git-stats.js +169 -0
- package/dist/utils/git-stats.js.map +1 -0
- package/dist/utils/input-classifier.js +960 -482
- package/dist/utils/input-classifier.js.map +1 -1
- package/dist/utils/logger.js +48 -73
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/markdown-parser.js +277 -310
- package/dist/utils/markdown-parser.js.map +1 -1
- package/dist/utils/rule-reference-resolver.js +54 -0
- package/dist/utils/rule-reference-resolver.js.map +1 -0
- package/dist/utils/shell.js +144 -156
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/state.js +23 -22
- package/dist/utils/state.js.map +1 -1
- package/dist/utils/syntax-checker.js +279 -327
- package/dist/utils/syntax-checker.js.map +1 -1
- package/dist/utils/terminal-output.js +199 -302
- package/dist/utils/terminal-output.js.map +1 -1
- package/dist/utils/text-clipboard.js +47 -70
- package/dist/utils/text-clipboard.js.map +1 -1
- package/dist/utils/unicode-sanitizer.js +134 -197
- package/dist/utils/unicode-sanitizer.js.map +1 -1
- package/dist/utils/version-checker.js +46 -56
- package/dist/utils/version-checker.js.map +1 -1
- package/package.json +6 -4
- package/dist/ai/types.d.ts +0 -20
- package/dist/ai/types.d.ts.map +0 -1
- package/dist/cli-adapter.d.ts +0 -511
- package/dist/cli-adapter.d.ts.map +0 -1
- package/dist/commands/CommandParser.d.ts +0 -27
- package/dist/commands/CommandParser.d.ts.map +0 -1
- package/dist/config/build-config.d.ts +0 -42
- package/dist/config/build-config.d.ts.map +0 -1
- package/dist/config/defaultConfig.d.ts +0 -79
- package/dist/config/defaultConfig.d.ts.map +0 -1
- package/dist/config/manager.d.ts +0 -62
- package/dist/config/manager.d.ts.map +0 -1
- package/dist/config/mcp-config-manager.d.ts +0 -79
- package/dist/config/mcp-config-manager.d.ts.map +0 -1
- package/dist/config/models.d.ts +0 -83
- package/dist/config/models.d.ts.map +0 -1
- package/dist/config/slash-commands.d.ts +0 -23
- package/dist/config/slash-commands.d.ts.map +0 -1
- package/dist/config/types.d.ts +0 -35
- package/dist/config/types.d.ts.map +0 -1
- package/dist/context/command-detector.d.ts +0 -50
- package/dist/context/command-detector.d.ts.map +0 -1
- package/dist/context/context-manager.d.ts +0 -157
- package/dist/context/context-manager.d.ts.map +0 -1
- package/dist/context/handlers/docker-handler.d.ts +0 -130
- package/dist/context/handlers/docker-handler.d.ts.map +0 -1
- package/dist/context/handlers/ssh-handler.d.ts +0 -201
- package/dist/context/handlers/ssh-handler.d.ts.map +0 -1
- package/dist/context/handlers/wsl-handler.d.ts +0 -146
- package/dist/context/handlers/wsl-handler.d.ts.map +0 -1
- package/dist/context/index.d.ts +0 -8
- package/dist/context/index.d.ts.map +0 -1
- package/dist/context/subshell-handler.d.ts +0 -165
- package/dist/context/subshell-handler.d.ts.map +0 -1
- package/dist/context/types.d.ts +0 -70
- package/dist/context/types.d.ts.map +0 -1
- package/dist/hooks/useConnectivity.d.ts +0 -2
- package/dist/hooks/useConnectivity.d.ts.map +0 -1
- package/dist/hooks/useTerminalDimensions.d.ts +0 -41
- package/dist/hooks/useTerminalDimensions.d.ts.map +0 -1
- package/dist/index.d.ts +0 -9
- package/dist/index.d.ts.map +0 -1
- package/dist/mcp/mcp-command-handler.d.ts +0 -47
- package/dist/mcp/mcp-command-handler.d.ts.map +0 -1
- package/dist/mcp/mcp-server-manager.d.ts +0 -30
- package/dist/mcp/mcp-server-manager.d.ts.map +0 -1
- package/dist/mcp/mcp-tool-wrapper.d.ts +0 -12
- package/dist/mcp/mcp-tool-wrapper.d.ts.map +0 -1
- package/dist/services/ai-autocomplete-agent.d.ts +0 -39
- package/dist/services/ai-autocomplete-agent.d.ts.map +0 -1
- package/dist/services/ai-context-injector.d.ts +0 -41
- package/dist/services/ai-context-injector.d.ts.map +0 -1
- package/dist/services/ai-service-client.d.ts +0 -128
- package/dist/services/ai-service-client.d.ts.map +0 -1
- package/dist/services/api-client.d.ts +0 -353
- package/dist/services/api-client.d.ts.map +0 -1
- package/dist/services/auth-handler.d.ts +0 -30
- package/dist/services/auth-handler.d.ts.map +0 -1
- package/dist/services/background-task-manager.d.ts +0 -114
- package/dist/services/background-task-manager.d.ts.map +0 -1
- package/dist/services/checkpoint-manager.d.ts +0 -167
- package/dist/services/checkpoint-manager.d.ts.map +0 -1
- package/dist/services/clipboard-service.d.ts +0 -37
- package/dist/services/clipboard-service.d.ts.map +0 -1
- package/dist/services/connectivity-manager.d.ts +0 -18
- package/dist/services/connectivity-manager.d.ts.map +0 -1
- package/dist/services/conversation-manager.d.ts +0 -73
- package/dist/services/conversation-manager.d.ts.map +0 -1
- package/dist/services/environment-context-injector.d.ts +0 -69
- package/dist/services/environment-context-injector.d.ts.map +0 -1
- package/dist/services/fast-context-agent.d.ts +0 -12
- package/dist/services/fast-context-agent.d.ts.map +0 -1
- package/dist/services/input-detection-agent.d.ts +0 -40
- package/dist/services/input-detection-agent.d.ts.map +0 -1
- package/dist/services/input-requirement-detector.d.ts +0 -28
- package/dist/services/input-requirement-detector.d.ts.map +0 -1
- package/dist/services/local-chat-storage.d.ts +0 -182
- package/dist/services/local-chat-storage.d.ts.map +0 -1
- package/dist/services/monitored-shell-manager.d.ts +0 -120
- package/dist/services/monitored-shell-manager.d.ts.map +0 -1
- package/dist/services/ollama-service.d.ts +0 -197
- package/dist/services/ollama-service.d.ts.map +0 -1
- package/dist/services/session-quota-manager.d.ts +0 -101
- package/dist/services/session-quota-manager.d.ts.map +0 -1
- package/dist/services/shell-input-agent.d.ts +0 -89
- package/dist/services/shell-input-agent.d.ts.map +0 -1
- package/dist/services/sub-agent-manager.d.ts +0 -140
- package/dist/services/sub-agent-manager.d.ts.map +0 -1
- package/dist/services/warpify-detector.d.ts +0 -43
- package/dist/services/warpify-detector.d.ts.map +0 -1
- package/dist/services/workflow-storage.d.ts +0 -72
- package/dist/services/workflow-storage.d.ts.map +0 -1
- package/dist/test-ssh-handler.d.ts +0 -8
- package/dist/test-ssh-handler.d.ts.map +0 -1
- package/dist/tools/background-command.d.ts +0 -11
- package/dist/tools/background-command.d.ts.map +0 -1
- package/dist/tools/command.d.ts +0 -3
- package/dist/tools/command.d.ts.map +0 -1
- package/dist/tools/create-image.d.ts +0 -10
- package/dist/tools/create-image.d.ts.map +0 -1
- package/dist/tools/enter-remote-session.d.ts +0 -48
- package/dist/tools/enter-remote-session.d.ts.map +0 -1
- package/dist/tools/fast-context.d.ts +0 -3
- package/dist/tools/fast-context.d.ts.map +0 -1
- package/dist/tools/file-ops.d.ts +0 -7
- package/dist/tools/file-ops.d.ts.map +0 -1
- package/dist/tools/find-files.d.ts +0 -49
- package/dist/tools/find-files.d.ts.map +0 -1
- package/dist/tools/get-diff.d.ts +0 -14
- package/dist/tools/get-diff.d.ts.map +0 -1
- package/dist/tools/grep-search.d.ts +0 -155
- package/dist/tools/grep-search.d.ts.map +0 -1
- package/dist/tools/inspect-symbol.d.ts +0 -32
- package/dist/tools/inspect-symbol.d.ts.map +0 -1
- package/dist/tools/plan-mode.d.ts +0 -140
- package/dist/tools/plan-mode.d.ts.map +0 -1
- package/dist/tools/read-binary-file.d.ts +0 -10
- package/dist/tools/read-binary-file.d.ts.map +0 -1
- package/dist/tools/registry.d.ts +0 -31
- package/dist/tools/registry.d.ts.map +0 -1
- package/dist/tools/reproduce_issue.d.ts +0 -2
- package/dist/tools/reproduce_issue.d.ts.map +0 -1
- package/dist/tools/sub-agent.d.ts +0 -9
- package/dist/tools/sub-agent.d.ts.map +0 -1
- package/dist/tools/task-complete.d.ts +0 -3
- package/dist/tools/task-complete.d.ts.map +0 -1
- package/dist/tools/types.d.ts +0 -40
- package/dist/tools/types.d.ts.map +0 -1
- package/dist/tools/validation.d.ts +0 -47
- package/dist/tools/validation.d.ts.map +0 -1
- package/dist/tools/web-search.d.ts +0 -24
- package/dist/tools/web-search.d.ts.map +0 -1
- package/dist/tools/workflow-tool.d.ts +0 -11
- package/dist/tools/workflow-tool.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -123
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/workflow.d.ts +0 -110
- package/dist/types/workflow.d.ts.map +0 -1
- package/dist/ui/components/AgentTimer.d.ts +0 -7
- package/dist/ui/components/AgentTimer.d.ts.map +0 -1
- package/dist/ui/components/App.d.ts +0 -197
- package/dist/ui/components/App.d.ts.map +0 -1
- package/dist/ui/components/AuthScreen.d.ts +0 -8
- package/dist/ui/components/AuthScreen.d.ts.map +0 -1
- package/dist/ui/components/AuthWelcomeScreen.d.ts +0 -8
- package/dist/ui/components/AuthWelcomeScreen.d.ts.map +0 -1
- package/dist/ui/components/Breadcrumbs.d.ts +0 -13
- package/dist/ui/components/Breadcrumbs.d.ts.map +0 -1
- package/dist/ui/components/CircularSelectInput.d.ts +0 -24
- package/dist/ui/components/CircularSelectInput.d.ts.map +0 -1
- package/dist/ui/components/ClipboardFileAutocomplete.d.ts +0 -10
- package/dist/ui/components/ClipboardFileAutocomplete.d.ts.map +0 -1
- package/dist/ui/components/CodeBlock.d.ts +0 -9
- package/dist/ui/components/CodeBlock.d.ts.map +0 -1
- package/dist/ui/components/ConfigViewer.d.ts +0 -11
- package/dist/ui/components/ConfigViewer.d.ts.map +0 -1
- package/dist/ui/components/ConfirmPrompt.d.ts +0 -13
- package/dist/ui/components/ConfirmPrompt.d.ts.map +0 -1
- package/dist/ui/components/ConnectionStatusMessage.d.ts +0 -17
- package/dist/ui/components/ConnectionStatusMessage.d.ts.map +0 -1
- package/dist/ui/components/ContextWindowIndicator.d.ts +0 -8
- package/dist/ui/components/ContextWindowIndicator.d.ts.map +0 -1
- package/dist/ui/components/DetailedPlanReviewScreen.d.ts +0 -17
- package/dist/ui/components/DetailedPlanReviewScreen.d.ts.map +0 -1
- package/dist/ui/components/DiffViewer.d.ts +0 -9
- package/dist/ui/components/DiffViewer.d.ts.map +0 -1
- package/dist/ui/components/ErrorBoundary.d.ts +0 -17
- package/dist/ui/components/ErrorBoundary.d.ts.map +0 -1
- package/dist/ui/components/FileCreationPreview.d.ts +0 -8
- package/dist/ui/components/FileCreationPreview.d.ts.map +0 -1
- package/dist/ui/components/FileOperation.d.ts +0 -10
- package/dist/ui/components/FileOperation.d.ts.map +0 -1
- package/dist/ui/components/FileTagAutocomplete.d.ts +0 -11
- package/dist/ui/components/FileTagAutocomplete.d.ts.map +0 -1
- package/dist/ui/components/FontRecommendation.d.ts +0 -1
- package/dist/ui/components/FontRecommendation.d.ts.map +0 -1
- package/dist/ui/components/InputBox.d.ts +0 -42
- package/dist/ui/components/InputBox.d.ts.map +0 -1
- package/dist/ui/components/InteractiveShell.d.ts +0 -30
- package/dist/ui/components/InteractiveShell.d.ts.map +0 -1
- package/dist/ui/components/KeyboardHelp.d.ts +0 -7
- package/dist/ui/components/KeyboardHelp.d.ts.map +0 -1
- package/dist/ui/components/LoadingIndicator.d.ts +0 -3
- package/dist/ui/components/LoadingIndicator.d.ts.map +0 -1
- package/dist/ui/components/MCPAddScreen.d.ts +0 -13
- package/dist/ui/components/MCPAddScreen.d.ts.map +0 -1
- package/dist/ui/components/MCPListScreen.d.ts +0 -17
- package/dist/ui/components/MCPListScreen.d.ts.map +0 -1
- package/dist/ui/components/MCPServerListScreen.d.ts +0 -16
- package/dist/ui/components/MCPServerListScreen.d.ts.map +0 -1
- package/dist/ui/components/MarkdownRenderer.d.ts +0 -8
- package/dist/ui/components/MarkdownRenderer.d.ts.map +0 -1
- package/dist/ui/components/MessageBox.d.ts +0 -10
- package/dist/ui/components/MessageBox.d.ts.map +0 -1
- package/dist/ui/components/MessageDisplay.d.ts +0 -14
- package/dist/ui/components/MessageDisplay.d.ts.map +0 -1
- package/dist/ui/components/MonitorModeAIPanel.d.ts +0 -23
- package/dist/ui/components/MonitorModeAIPanel.d.ts.map +0 -1
- package/dist/ui/components/MultiLineInput.d.ts +0 -13
- package/dist/ui/components/MultiLineInput.d.ts.map +0 -1
- package/dist/ui/components/PasswordPrompt.d.ts +0 -9
- package/dist/ui/components/PasswordPrompt.d.ts.map +0 -1
- package/dist/ui/components/PlanAcceptedMessage.d.ts +0 -20
- package/dist/ui/components/PlanAcceptedMessage.d.ts.map +0 -1
- package/dist/ui/components/PlanReviewScreen.d.ts +0 -14
- package/dist/ui/components/PlanReviewScreen.d.ts.map +0 -1
- package/dist/ui/components/SelectPrompt.d.ts +0 -12
- package/dist/ui/components/SelectPrompt.d.ts.map +0 -1
- package/dist/ui/components/SlashCommandAutocomplete.d.ts +0 -13
- package/dist/ui/components/SlashCommandAutocomplete.d.ts.map +0 -1
- package/dist/ui/components/StatusBar.d.ts +0 -14
- package/dist/ui/components/StatusBar.d.ts.map +0 -1
- package/dist/ui/components/StreamingMessageDisplay.d.ts +0 -15
- package/dist/ui/components/StreamingMessageDisplay.d.ts.map +0 -1
- package/dist/ui/components/TaskCompletedMessage.d.ts +0 -14
- package/dist/ui/components/TaskCompletedMessage.d.ts.map +0 -1
- package/dist/ui/components/TaskProgressIndicator.d.ts +0 -18
- package/dist/ui/components/TaskProgressIndicator.d.ts.map +0 -1
- package/dist/ui/components/ThinkingDisplay.d.ts +0 -15
- package/dist/ui/components/ThinkingDisplay.d.ts.map +0 -1
- package/dist/ui/components/ToolExecutionMessage.d.ts +0 -8
- package/dist/ui/components/ToolExecutionMessage.d.ts.map +0 -1
- package/dist/ui/components/ToolExecutionStatus.d.ts +0 -10
- package/dist/ui/components/ToolExecutionStatus.d.ts.map +0 -1
- package/dist/ui/components/ToolResult.d.ts +0 -10
- package/dist/ui/components/ToolResult.d.ts.map +0 -1
- package/dist/ui/components/VersionUpdatePrompt.d.ts +0 -9
- package/dist/ui/components/VersionUpdatePrompt.d.ts.map +0 -1
- package/dist/ui/components/WelcomeBanner.d.ts +0 -3
- package/dist/ui/components/WelcomeBanner.d.ts.map +0 -1
- package/dist/ui/components/WorkflowCreatorScreen.d.ts +0 -25
- package/dist/ui/components/WorkflowCreatorScreen.d.ts.map +0 -1
- package/dist/utils/ansi-encoder.d.ts +0 -7
- package/dist/utils/ansi-encoder.d.ts.map +0 -1
- package/dist/utils/chat-formatter.d.ts +0 -12
- package/dist/utils/chat-formatter.d.ts.map +0 -1
- package/dist/utils/command-history.d.ts +0 -24
- package/dist/utils/command-history.d.ts.map +0 -1
- package/dist/utils/context-sanitizer.d.ts +0 -50
- package/dist/utils/context-sanitizer.d.ts.map +0 -1
- package/dist/utils/conversation-logger.d.ts +0 -142
- package/dist/utils/conversation-logger.d.ts.map +0 -1
- package/dist/utils/custom-commands-manager.d.ts +0 -59
- package/dist/utils/custom-commands-manager.d.ts.map +0 -1
- package/dist/utils/editor-utils.d.ts +0 -101
- package/dist/utils/editor-utils.d.ts.map +0 -1
- package/dist/utils/file.d.ts +0 -61
- package/dist/utils/file.d.ts.map +0 -1
- package/dist/utils/input-classifier.d.ts +0 -25
- package/dist/utils/input-classifier.d.ts.map +0 -1
- package/dist/utils/logger.d.ts +0 -17
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/markdown-parser.d.ts +0 -60
- package/dist/utils/markdown-parser.d.ts.map +0 -1
- package/dist/utils/shell.d.ts +0 -47
- package/dist/utils/shell.d.ts.map +0 -1
- package/dist/utils/state.d.ts +0 -13
- package/dist/utils/state.d.ts.map +0 -1
- package/dist/utils/syntax-checker.d.ts +0 -24
- package/dist/utils/syntax-checker.d.ts.map +0 -1
- package/dist/utils/terminal-output.d.ts +0 -25
- package/dist/utils/terminal-output.d.ts.map +0 -1
- package/dist/utils/text-clipboard.d.ts +0 -12
- package/dist/utils/text-clipboard.d.ts.map +0 -1
- package/dist/utils/unicode-sanitizer.d.ts +0 -44
- package/dist/utils/unicode-sanitizer.d.ts.map +0 -1
- package/dist/utils/version-checker.d.ts +0 -14
- package/dist/utils/version-checker.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputBox.js","sourceRoot":"","sources":["../../../src/ui/components/InputBox.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/ui/components/InputBox.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, useMemo } from 'react';\r\nimport { Box, Text, useInput } from 'ink';\r\nimport * as fs from 'fs';\r\nimport * as path from 'path';\r\nimport { SubshellContext } from '../../context/types.js';\r\nimport { useConnectivity } from '../../hooks/useConnectivity.js';\r\nimport { Breadcrumbs } from './Breadcrumbs.js';\r\nimport { GitDiffBreadcrumb } from './GitDiffBreadcrumb.js';\r\nimport { ContextWindowIndicator } from './ContextWindowIndicator.js';\r\nimport { logDebug } from '../../utils/logger.js';\r\nimport { apiClient } from '../../services/api-client.js';\r\nimport { detectIntent } from '../../utils/input-classifier.js';\r\nimport { CommandHistoryManager } from '../../utils/command-history.js';\r\nimport { SlashCommandAutocomplete } from './SlashCommandAutocomplete.js';\r\nimport { FileTagAutocomplete } from './FileTagAutocomplete.js';\r\nimport { filterCommands, SlashCommand } from '../../config/slash-commands.js';\r\nimport { hasClipboardFile, getClipboardFiles, ClipboardFile } from '../../services/clipboard-service.js';\r\nimport { useTerminalDimensions, TERMINAL_HEIGHT_CONSTANTS } from '../../hooks/useTerminalDimensions.js';\r\nimport { AIAutocompleteAgent, AI_AUTOCOMPLETE_DEBOUNCE_MS, AutocompleteContext } from '../../services/ai-autocomplete-agent.js';\r\nimport { quickLog } from '../../utils/conversation-logger.js';\r\nimport { workflowStorage } from '../../services/workflow-storage.js';\r\nimport { rulesStorage } from '../../services/rules-storage.js';\r\n\r\ninterface InputBoxProps {\r\n onSubmit: (value: string, clipboardFiles?: ClipboardFile[]) => void;\r\n placeholder?: string;\r\n autoAcceptMode: boolean;\r\n model?: string;\r\n planMode?: boolean;\r\n commandMode?: boolean;\r\n backgroundMode?: boolean; // Background shell mode for running commands in background\r\n currentWorkingDirectory?: string;\r\n commandHistory?: string[];\r\n onToggleAutoAccept: () => void;\r\n onToggleCommandMode?: () => void;\r\n onToggleBackgroundMode?: () => void; // Callback to toggle background mode\r\n isActive?: boolean;\r\n subshellContext?: SubshellContext;\r\n subshellContextStack?: SubshellContext[];\r\n currentTokens?: number;\r\n maxTokens?: number;\r\n contextLimitReached?: boolean; // True when context window is ≥80% full\r\n isShellRunning?: boolean; // Block input submission while shell command is running\r\n backgroundTaskCount?: number; // Number of running background tasks\r\n initialValue?: string; // Initial value to restore when component mounts (for preserving text across screen transitions)\r\n onValueChange?: (value: string) => void; // Callback when value changes (for preserving text across screen transitions)\r\n onSetAutoModeSetup?: (callback: (enabled: boolean) => void) => void; // Setup callback to control Auto mode from outside\r\n sessionQuotaExhausted?: boolean;\r\n sessionQuotaTimeRemaining?: string;\r\n subAgentCount?: number; // Number of running sub-agents\r\n aiAutoSuggestEnabled?: boolean; // Enable AI-powered command auto-suggestions\r\n sessionCommands?: string[]; // Commands executed in this chat session (for AI context)\r\n getCheckpoints?: () => Array<{ id: string; prompt: string; timestamp: Date }>; // Get checkpoints for revert autocomplete\r\n onSetInputSetup?: (callback: (value: string) => void) => void; // Setup callback to set input value from outside\r\n gitDiffStats?: { additions: number; deletions: number } | null; // Git diff stats for display in breadcrumb\r\n}\r\n\r\ntype MentionSuggestionKind = 'file' | 'directory' | 'rule-namespace' | 'rule';\r\n\r\ninterface MentionSuggestion {\r\n name: string;\r\n insertText: string;\r\n kind: MentionSuggestionKind;\r\n description?: string;\r\n}\r\n\r\nconst getVisualLines = (text: string, width: number) => {\r\n const logicalLines = text.split('\\n');\r\n const visualLines: Array<{ start: number; end: number; isHardEnd: boolean }> = [];\r\n let currentOffset = 0;\r\n\r\n logicalLines.forEach((line, i) => {\r\n if (line.length === 0) {\r\n visualLines.push({ start: currentOffset, end: currentOffset, isHardEnd: true });\r\n currentOffset += 1;\r\n return;\r\n }\r\n\r\n let remaining = line;\r\n let lineStartOffset = currentOffset;\r\n\r\n while (remaining.length > 0) {\r\n let splitIndex = remaining.length;\r\n let isHardEnd = false;\r\n\r\n if (remaining.length > width) {\r\n splitIndex = width;\r\n const lastSpace = remaining.lastIndexOf(' ', width);\r\n if (lastSpace > 0) {\r\n splitIndex = lastSpace + 1;\r\n }\r\n } else {\r\n isHardEnd = true;\r\n }\r\n\r\n visualLines.push({\r\n start: lineStartOffset,\r\n end: lineStartOffset + splitIndex,\r\n isHardEnd: isHardEnd\r\n });\r\n\r\n lineStartOffset += splitIndex;\r\n remaining = remaining.slice(splitIndex);\r\n }\r\n\r\n currentOffset += line.length + (i < logicalLines.length - 1 ? 1 : 0);\r\n });\r\n\r\n return visualLines;\r\n};\r\n\r\nexport const InputBox: React.FC<InputBoxProps> = React.memo(({\r\n onSubmit,\r\n placeholder = 'Ask anything ...',\r\n autoAcceptMode,\r\n model,\r\n planMode = false,\r\n commandMode = false,\r\n backgroundMode = false,\r\n currentWorkingDirectory,\r\n commandHistory = [],\r\n onToggleAutoAccept,\r\n onToggleCommandMode,\r\n onToggleBackgroundMode,\r\n isActive = true,\r\n subshellContext,\r\n subshellContextStack,\r\n currentTokens = 0,\r\n maxTokens = 1000000,\r\n contextLimitReached = false,\r\n isShellRunning = false,\r\n backgroundTaskCount = 0,\r\n initialValue = '',\r\n onValueChange,\r\n onSetAutoModeSetup,\r\n sessionQuotaExhausted = false,\r\n sessionQuotaTimeRemaining = '',\r\n subAgentCount = 0,\r\n aiAutoSuggestEnabled = false,\r\n sessionCommands = [],\r\n getCheckpoints,\r\n onSetInputSetup,\r\n gitDiffStats\r\n}) => {\r\n\r\n // Use initialValue for first mount, but manage state internally after that\r\n const [value, setValueInternal] = useState(initialValue);\r\n const [cursorOffset, setCursorOffset] = useState(0);\r\n const [completions, setCompletions] = useState<string[]>([]);\r\n const [completionIndex, setCompletionIndex] = useState(0);\r\n const [historyIndex, setHistoryIndex] = useState(-1);\r\n const [tempValue, setTempValue] = useState('');\r\n const ignoreNextChangeRef = useRef(false);\r\n\r\n // Refs to track current value and cursor for paste handling\r\n // This prevents stale closure issues when Ink calls useInput multiple times during paste\r\n const valueRef = useRef(initialValue);\r\n const cursorOffsetRef = useRef(0);\r\n\r\n // Auto Mode State\r\n const [isAutoMode, setIsAutoMode] = useState(true);\r\n const [detectedIntent, setDetectedIntent] = useState<'command' | 'ai'>('ai');\r\n\r\n // Autocomplete State\r\n const [autocompleteSuggestion, setAutocompleteSuggestion] = useState<string | null>(null);\r\n\r\n // AI Autocomplete State\r\n const [aiAutocompleteSuggestion, setAiAutocompleteSuggestion] = useState<string | null>(null);\r\n const [isAiAutocompleteLoading, setIsAiAutocompleteLoading] = useState(false);\r\n const aiAutocompleteDebounceRef = useRef<NodeJS.Timeout | null>(null);\r\n const aiAutocompleteAbortRef = useRef<AbortController | null>(null);\r\n\r\n // Undo/Redo State\r\n const [undoStack, setUndoStack] = useState<Array<{ value: string; cursorOffset: number }>>([]);\r\n const [redoStack, setRedoStack] = useState<Array<{ value: string; cursorOffset: number }>>([]);\r\n\r\n // Selection State\r\n const [selection, setSelection] = useState<{ start: number; end: number } | null>(null);\r\n\r\n // Platform Detection\r\n const isMac = process.platform === 'darwin';\r\n\r\n // Reject Flash State (turns border red when submission is blocked)\r\n const [rejectFlash, setRejectFlash] = useState(false);\r\n\r\n // Session Quota Message State (shows quota exhausted message)\r\n const [showQuotaMessage, setShowQuotaMessage] = useState(false);\r\n\r\n // Slash Command Autocomplete State\r\n const [slashAutocompleteVisible, setSlashAutocompleteVisible] = useState(false);\r\n const [slashAutocompleteCommands, setSlashAutocompleteCommands] = useState<SlashCommand[]>([]);\r\n const [slashAutocompleteSelectedIndex, setSlashAutocompleteSelectedIndex] = useState(0);\r\n const [slashAutocompleteScrollOffset, setSlashAutocompleteScrollOffset] = useState(0);\r\n\r\n // Connectivity State\r\n const isConnected = useConnectivity();\r\n\r\n // Terminal dimensions for height-aware autocomplete\r\n const dimensions = useTerminalDimensions();\r\n // Max 5 items, min 0 for very small terminals (use MIN_ROWS_FOR_STREAMING as threshold)\r\n const slashMaxVisibleItems = dimensions.rows < TERMINAL_HEIGHT_CONSTANTS.MIN_ROWS_FOR_STREAMING\r\n ? 0\r\n : Math.min(5, Math.max(1, Math.floor((dimensions.rows - 20) / 3)));\r\n\r\n // Responsive visibility thresholds based on terminal width\r\n const showBottomHints = dimensions.columns >= 90;\r\n const showModeIndicator = dimensions.columns >= 70;\r\n\r\n // File Tag Autocomplete State (@ symbol)\r\n const [fileTagAutocompleteVisible, setFileTagAutocompleteVisible] = useState(false);\r\n const [fileTagSuggestions, setFileTagSuggestions] = useState<MentionSuggestion[]>([]);\r\n const [fileTagSelectedIndex, setFileTagSelectedIndex] = useState(0);\r\n const [activeFileTagStart, setActiveFileTagStart] = useState<number | null>(null);\r\n const [confirmedFileTags, setConfirmedFileTags] = useState<Array<{ start: number, end: number, fileName: string }>>([]);\r\n\r\n // Clipboard File State (Alt+V paste)\r\n const [confirmedClipboardFiles, setConfirmedClipboardFiles] = useState<ClipboardFile[]>([]);\r\n\r\n // Track visual line count to force re-renders when text wraps\r\n // This is necessary because Ink doesn't automatically update layout when text wraps\r\n const [visualLineCount, setVisualLineCount] = useState(1);\r\n\r\n // Configuration for scrolling\r\n const MAX_VISIBLE_LINES = 9;\r\n\r\n // Wrapper for setValue that also notifies parent of changes and updates ref\r\n const setValue = React.useCallback((newValue: string | ((prev: string) => string)) => {\r\n setValueInternal(prev => {\r\n const resolvedValue = typeof newValue === 'function' ? newValue(prev) : newValue;\r\n // Update ref synchronously for paste handling\r\n valueRef.current = resolvedValue;\r\n // Notify parent of value change for preservation across screen transitions\r\n if (onValueChange) {\r\n onValueChange(resolvedValue);\r\n }\r\n return resolvedValue;\r\n });\r\n }, [onValueChange]);\r\n\r\n // Wrapper for setCursorOffset that also updates ref\r\n const setCursorOffsetWithRef = React.useCallback((newOffset: number | ((prev: number) => number)) => {\r\n setCursorOffset(prev => {\r\n const resolvedOffset = typeof newOffset === 'function' ? newOffset(prev) : newOffset;\r\n // Update ref synchronously for paste handling\r\n cursorOffsetRef.current = resolvedOffset;\r\n return resolvedOffset;\r\n });\r\n }, []);\r\n\r\n // Initialize cursor position when initialValue is provided\r\n useEffect(() => {\r\n if (initialValue && initialValue.length > 0) {\r\n setCursorOffset(initialValue.length);\r\n cursorOffsetRef.current = initialValue.length;\r\n }\r\n }, []); // Only run on mount\r\n\r\n // Keep refs in sync with state (for cases where state is updated directly)\r\n useEffect(() => {\r\n valueRef.current = value;\r\n }, [value]);\r\n\r\n useEffect(() => {\r\n cursorOffsetRef.current = cursorOffset;\r\n }, [cursorOffset]);\r\n\r\n // Load history on mount\r\n useEffect(() => {\r\n CommandHistoryManager.getInstance().load();\r\n }, []);\r\n\r\n // Register setInput callback for external control (e.g., for revert functionality)\r\n useEffect(() => {\r\n if (onSetInputSetup) {\r\n onSetInputSetup((newValue: string) => {\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n });\r\n }\r\n }, [onSetInputSetup, setValue, setCursorOffset]);\r\n\r\n // Register setIsAutoMode callback for external control (e.g., after background task starts)\r\n useEffect(() => {\r\n if (onSetInputSetup) {\r\n onSetInputSetup((newValue: string) => {\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n });\r\n }\r\n }, [onSetInputSetup, setValue, setCursorOffset]);\r\n\r\n useEffect(() => {\r\n if (onSetAutoModeSetup) {\r\n onSetAutoModeSetup((enabled: boolean) => {\r\n setIsAutoMode(enabled);\r\n if (enabled) {\r\n // When enabling Auto mode, also update detected intent based on current value\r\n const intent = detectIntent(value);\r\n setDetectedIntent(intent);\r\n // Set command mode based on intent\r\n if (intent === 'command' && !commandMode && onToggleCommandMode) {\r\n onToggleCommandMode();\r\n } else if (intent === 'ai' && commandMode && onToggleCommandMode) {\r\n onToggleCommandMode();\r\n }\r\n }\r\n });\r\n }\r\n }, [onSetAutoModeSetup, value, commandMode, onToggleCommandMode]);\r\n\r\n // Force clear value if it becomes empty or whitespace-only after external changes\r\n useEffect(() => {\r\n if (value && value.trim() === '' && cursorOffset > 0) {\r\n setValue('');\r\n setCursorOffset(0);\r\n }\r\n }, [value, cursorOffset]);\r\n\r\n // Track visual line count changes to force re-renders when text wraps\r\n // This is crucial for the input box height to update correctly\r\n useEffect(() => {\r\n const termWidth = (process.stdout.columns || 80) - 6;\r\n const visualLines = getVisualLines(value, termWidth);\r\n const newLineCount = Math.max(1, visualLines.length);\r\n if (newLineCount !== visualLineCount) {\r\n setVisualLineCount(newLineCount);\r\n }\r\n }, [value, visualLineCount]);\r\n\r\n // Determine current working directory — progressively shrinks as terminal narrows.\r\n // Segments shown: 3 (≥120), 2 (100–119), 1 / current dir only (<100).\r\n // The Ctrl+T and Mode hiding thresholds (90 and 70) are deliberately below 100\r\n // so the CWD is always fully reduced before other elements start disappearing.\r\n const currentDir = useMemo(() => {\r\n const cwd = currentWorkingDirectory || process.cwd();\r\n const sep = cwd.includes('/') ? '/' : '\\\\';\r\n const parts = cwd.split(/[\\\\/]/).filter(Boolean);\r\n\r\n const maxSegments = dimensions.columns >= 120 ? 3 : dimensions.columns >= 100 ? 2 : 1;\r\n\r\n if (parts.length > maxSegments) {\r\n return '...' + sep + parts.slice(-maxSegments).join(sep);\r\n }\r\n return cwd;\r\n }, [currentWorkingDirectory, dimensions.columns]);\r\n\r\n // Determine current environment for command history isolation\r\n // Format: 'local', 'ssh:user@host', or 'wsl:distroName'\r\n const currentEnvironment = useMemo(() => {\r\n if (!subshellContext) return 'local';\r\n if (subshellContext.type === 'ssh') {\r\n const user = subshellContext.metadata?.username || 'user';\r\n const host = subshellContext.metadata?.hostname || 'host';\r\n return `ssh:${user}@${host}`;\r\n }\r\n if (subshellContext.type === 'wsl') {\r\n const distro = subshellContext.metadata?.distroName || 'Ubuntu';\r\n return `wsl:${distro}`;\r\n }\r\n if (subshellContext.type === 'docker') {\r\n const container = subshellContext.metadata?.containerId || 'container';\r\n return `docker:${container}`;\r\n }\r\n return 'local';\r\n }, [subshellContext]);\r\n\r\n // Autocomplete Logic\r\n useEffect(() => {\r\n if (!value || value.trim() === '') {\r\n setAutocompleteSuggestion(null);\r\n return;\r\n }\r\n\r\n // Only show suggestions if we are in command mode (manual or auto-detected)\r\n // OR if we are in Auto mode and it looks like a command\r\n const shouldSuggest = commandMode || (isAutoMode && detectedIntent === 'command');\r\n\r\n if (shouldSuggest) {\r\n const matches = CommandHistoryManager.getInstance().getMatches(value, currentDir, currentEnvironment);\r\n if (matches.length > 0) {\r\n setAutocompleteSuggestion(matches[0]);\r\n } else {\r\n setAutocompleteSuggestion(null);\r\n }\r\n } else {\r\n setAutocompleteSuggestion(null);\r\n }\r\n }, [value, commandMode, isAutoMode, detectedIntent, aiAutoSuggestEnabled, currentDir, currentEnvironment]);\r\n\r\n // AI Autocomplete Logic (5-second debounce)\r\n\r\n useEffect(() => {\r\n // Clear AI suggestion when value changes\r\n setAiAutocompleteSuggestion(null);\r\n\r\n // Clear any existing debounce timer\r\n if (aiAutocompleteDebounceRef.current) {\r\n clearTimeout(aiAutocompleteDebounceRef.current);\r\n aiAutocompleteDebounceRef.current = null;\r\n }\r\n\r\n // Abort any pending AI request\r\n if (aiAutocompleteAbortRef.current) {\r\n aiAutocompleteAbortRef.current.abort();\r\n aiAutocompleteAbortRef.current = null;\r\n }\r\n\r\n // Debug logging for trigger ref\r\n /*\r\n try {\r\n if (detectedIntent !== 'ai' || value.length > 5) {\r\n quickLog(`[InputBox] AI Effect: val=\"${value}\", enabled=${aiAutoSuggestEnabled}, mode=${commandMode}, auto=${isAutoMode}, intent=${detectedIntent}`);\r\n }\r\n } catch (e) {}\r\n */\r\n\r\n // Don't trigger AI autocomplete if disabled or not in command mode\r\n if (!aiAutoSuggestEnabled) {\r\n // quickLog('[InputBox] AI skipped: disabled');\r\n return;\r\n }\r\n\r\n const shouldSuggest = commandMode || (isAutoMode && detectedIntent === 'command');\r\n if (!shouldSuggest) {\r\n // if (value.length > 3) quickLog(`[InputBox] AI skipped: !shouldSuggest (cmd=${commandMode}, auto=${isAutoMode}, intent=${detectedIntent})`);\r\n return;\r\n }\r\n\r\n // Don't suggest for empty, very short, or slash commands\r\n if (!value || value.trim().length < 2 || value.startsWith('/')) {\r\n // quickLog('[InputBox] AI skipped: too short or slash');\r\n return;\r\n }\r\n\r\n // quickLog('[InputBox] AI Triggering debounce...');\r\n\r\n // Set up 5-second debounce timer\r\n aiAutocompleteDebounceRef.current = setTimeout(async () => {\r\n setIsAiAutocompleteLoading(true);\r\n\r\n // Create abort controller for this request\r\n const abortController = new AbortController();\r\n aiAutocompleteAbortRef.current = abortController;\r\n\r\n try {\r\n if (!aiAutoSuggestEnabled) return; // double check inside timeout\r\n\r\n // Get directory history using the correct method\r\n const directoryHistory = CommandHistoryManager.getInstance().getDirectoryHistory(currentDir, currentEnvironment);\r\n\r\n // Get files in current directory (local or remote)\r\n let files: string[] = [];\r\n try {\r\n if (subshellContext && subshellContext.type !== 'local' && subshellContext.handler) {\r\n // Remote/Subshell environment\r\n // Check if we can list files\r\n try {\r\n const dirEntries = await subshellContext.handler.listDirectory(currentDir);\r\n files = dirEntries\r\n .slice(0, 50)\r\n .map((e: any) => e.name + (e.type === 'directory' ? '/' : ''));\r\n } catch (remoteErr) {\r\n // quickLog('Remote list error: ' + remoteErr);\r\n }\r\n } else {\r\n // Local environment\r\n const dir = currentDir || process.cwd();\r\n if (fs.existsSync(dir)) {\r\n const entries = fs.readdirSync(dir, { withFileTypes: true });\r\n files = entries\r\n .slice(0, 50)\r\n .map(e => e.name + (e.isDirectory() ? '/' : ''));\r\n }\r\n }\r\n } catch (e) {\r\n // Ignore file access errors\r\n }\r\n\r\n // Determine OS and Platform from subshell context if available\r\n let osContext = process.platform;\r\n let platformContext = process.platform;\r\n\r\n if (subshellContext && subshellContext.type !== 'local' && subshellContext.metadata) {\r\n const metaOs = subshellContext.metadata.os;\r\n if (metaOs === 'windows') {\r\n osContext = 'win32';\r\n platformContext = 'win32';\r\n } else if (metaOs === 'macos') {\r\n osContext = 'darwin';\r\n platformContext = 'darwin';\r\n } else if (metaOs === 'linux') {\r\n osContext = 'linux';\r\n platformContext = 'linux';\r\n }\r\n }\r\n\r\n const context: AutocompleteContext = {\r\n os: osContext,\r\n platform: platformContext,\r\n cwd: currentDir || process.cwd(),\r\n directoryHistory: directoryHistory.slice(0, 10),\r\n sessionCommands: sessionCommands.slice(-10),\r\n files: files,\r\n currentInput: value\r\n };\r\n\r\n const prediction = await AIAutocompleteAgent.predictCommand(context, abortController.signal);\r\n\r\n if (prediction && !abortController.signal.aborted) {\r\n setAiAutocompleteSuggestion(prediction);\r\n }\r\n } catch (error) {\r\n // Ignore errors (likely aborted)\r\n } finally {\r\n setIsAiAutocompleteLoading(false);\r\n if (aiAutocompleteAbortRef.current === abortController) {\r\n aiAutocompleteAbortRef.current = null;\r\n }\r\n }\r\n }, AI_AUTOCOMPLETE_DEBOUNCE_MS);\r\n\r\n return () => {\r\n if (aiAutocompleteDebounceRef.current) {\r\n clearTimeout(aiAutocompleteDebounceRef.current);\r\n }\r\n if (aiAutocompleteAbortRef.current) {\r\n aiAutocompleteAbortRef.current.abort();\r\n }\r\n };\r\n }, [value, commandMode, isAutoMode, detectedIntent, aiAutoSuggestEnabled, currentDir, currentEnvironment, sessionCommands]);\r\n\r\n // Auto-classification effect (Synchronous Heuristics Only)\r\n useEffect(() => {\r\n // Only run classification if in Auto Mode\r\n if (!isAutoMode) {\r\n return;\r\n }\r\n\r\n // Only classify if value is non-empty and not just whitespace\r\n const trimmedValue = value.trim();\r\n if (!trimmedValue || !onToggleCommandMode) {\r\n // Default to AI if empty\r\n setDetectedIntent('ai');\r\n if (commandMode) onToggleCommandMode();\r\n return;\r\n }\r\n\r\n // Run local heuristic detection immediately\r\n const intent = detectIntent(trimmedValue);\r\n setDetectedIntent(intent);\r\n\r\n // Switch mode based on intent\r\n if (intent === 'command') {\r\n if (!commandMode) onToggleCommandMode();\r\n } else {\r\n // intent === 'ai'\r\n if (commandMode) onToggleCommandMode();\r\n }\r\n }, [value, commandMode, onToggleCommandMode, isAutoMode]);\r\n\r\n const showSlashAutocomplete = React.useCallback((commands: SlashCommand[]) => {\r\n if (commands.length > 0) {\r\n setSlashAutocompleteCommands(commands);\r\n setSlashAutocompleteVisible(true);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n }, []);\r\n\r\n const getRuleNameAutocompleteEntries = React.useCallback((partialName: string): SlashCommand[] => {\r\n const normalized = partialName.toLowerCase();\r\n const rules = rulesStorage.list();\r\n\r\n if (rules.length === 0) {\r\n return [{\r\n name: '(no rules)',\r\n description: 'Create one with /rules add'\r\n }];\r\n }\r\n\r\n const matches = rules\r\n .filter(rule => rule.name.toLowerCase().includes(normalized))\r\n .slice(0, 10)\r\n .map(rule => ({\r\n name: rule.name,\r\n description: rule.preview || 'Saved rule'\r\n }));\r\n\r\n if (matches.length === 0) {\r\n return [{\r\n name: '(no matches)',\r\n description: 'No saved rules match that name'\r\n }];\r\n }\r\n\r\n return matches;\r\n }, []);\r\n\r\n const updateSlashAutocomplete = React.useCallback((nextValue: string) => {\r\n if (!nextValue.startsWith('/')) {\r\n setSlashAutocompleteVisible(false);\r\n return;\r\n }\r\n\r\n if (!nextValue.includes(' ')) {\r\n showSlashAutocomplete(filterCommands(nextValue.slice(1)));\r\n return;\r\n }\r\n\r\n if (nextValue.startsWith('/mcp ')) {\r\n showSlashAutocomplete(filterCommands(nextValue.slice(1)));\r\n return;\r\n }\r\n\r\n if (nextValue.startsWith('/chat ')) {\r\n showSlashAutocomplete(filterCommands(nextValue.slice(1)));\r\n return;\r\n }\r\n\r\n if (nextValue.startsWith('/add-command ') || nextValue.startsWith('/add-command-auto-detect ')) {\r\n showSlashAutocomplete(filterCommands(nextValue.slice(1)));\r\n return;\r\n }\r\n\r\n if (nextValue.startsWith('/background-task ') || nextValue.startsWith('/bkg ') || nextValue.startsWith('/bg-task ')) {\r\n showSlashAutocomplete(filterCommands(nextValue.slice(1)));\r\n return;\r\n }\r\n\r\n if (nextValue.startsWith('/sync ')) {\r\n showSlashAutocomplete(filterCommands(nextValue.slice(1)));\r\n return;\r\n }\r\n\r\n if (nextValue.startsWith('/models ') || nextValue.startsWith('/model ')) {\r\n showSlashAutocomplete(filterCommands(nextValue.slice(1)));\r\n return;\r\n }\r\n\r\n if (nextValue.startsWith('/settings auto-suggest ')) {\r\n showSlashAutocomplete(filterCommands(nextValue.slice(1)));\r\n return;\r\n }\r\n\r\n if (nextValue.startsWith('/settings ')) {\r\n showSlashAutocomplete(filterCommands(nextValue.slice(1)));\r\n return;\r\n }\r\n\r\n if (nextValue.startsWith('/revert ')) {\r\n const partialId = nextValue.slice(8).toLowerCase();\r\n const checkpoints = getCheckpoints ? getCheckpoints() : [];\r\n\r\n if (checkpoints.length === 0) {\r\n showSlashAutocomplete([{\r\n name: '(no checkpoints)',\r\n description: 'Ask AI a question first to create a checkpoint'\r\n }]);\r\n return;\r\n }\r\n\r\n const checkpointCommands: SlashCommand[] = checkpoints\r\n .filter(cp => cp.id.toLowerCase().includes(partialId) || cp.prompt.toLowerCase().includes(partialId))\r\n .slice(0, 10)\r\n .map(cp => ({\r\n name: cp.id,\r\n description: cp.prompt.length > 50 ? cp.prompt.slice(0, 50) + '...' : cp.prompt\r\n }));\r\n\r\n showSlashAutocomplete(checkpointCommands);\r\n return;\r\n }\r\n\r\n if (nextValue.match(/^\\/rules\\s+(edit|delete)\\s+/)) {\r\n const match = nextValue.match(/^\\/rules\\s+(?:edit|delete)\\s+(.*)$/);\r\n const partialName = match ? match[1] : '';\r\n showSlashAutocomplete(getRuleNameAutocompleteEntries(partialName));\r\n return;\r\n }\r\n\r\n if (nextValue.startsWith('/rules ')) {\r\n showSlashAutocomplete(filterCommands(nextValue.slice(1)));\r\n return;\r\n }\r\n\r\n if (\r\n nextValue.match(/^\\/workflow\\s+(run|view|delete)\\s+/) ||\r\n nextValue.match(/^\\/wf\\s+(run|view|delete)\\s+/)\r\n ) {\r\n const match = nextValue.match(/^\\/(?:workflow|wf)\\s+(?:run|view|delete)\\s+(.*)$/);\r\n const partialName = match ? match[1].toLowerCase() : '';\r\n const workflows = workflowStorage.list();\r\n const matchingWorkflows: SlashCommand[] = workflows\r\n .filter(wf => wf.name.toLowerCase().includes(partialName))\r\n .slice(0, 10)\r\n .map(wf => ({\r\n name: wf.name,\r\n description: wf.description || `${wf.stepCount} step${wf.stepCount !== 1 ? 's' : ''}`\r\n }));\r\n\r\n showSlashAutocomplete(matchingWorkflows);\r\n return;\r\n }\r\n\r\n if (\r\n nextValue.match(/^\\/workflow\\s+new\\s+/) ||\r\n nextValue.match(/^\\/wf\\s+new\\s+/)\r\n ) {\r\n showSlashAutocomplete(filterCommands(nextValue.slice(1)));\r\n return;\r\n }\r\n\r\n if (nextValue.startsWith('/workflow ') || nextValue.startsWith('/wf ')) {\r\n showSlashAutocomplete(filterCommands(nextValue.slice(1)));\r\n return;\r\n }\r\n\r\n setSlashAutocompleteVisible(false);\r\n }, [getCheckpoints, getRuleNameAutocompleteEntries, showSlashAutocomplete]);\r\n\r\n const getMatchingFiles = React.useCallback((query: string): MentionSuggestion[] => {\r\n try {\r\n const cwd = currentWorkingDirectory || process.cwd();\r\n if (!fs.existsSync(cwd)) return [];\r\n\r\n const lowerQuery = query.toLowerCase();\r\n const results: MentionSuggestion[] = [];\r\n\r\n // Directories to skip when recursing\r\n const SKIP_DIRS = new Set([\r\n '.git', 'node_modules', 'dist', 'build', '.next', '__pycache__',\r\n '.cache', 'coverage', '.nyc_output', '.turbo', 'out', '.svelte-kit'\r\n ]);\r\n\r\n // When query is empty, show only top-level entries for a clean initial view\r\n if (lowerQuery === '') {\r\n let entries: fs.Dirent[];\r\n try { entries = fs.readdirSync(cwd, { withFileTypes: true }); } catch { return []; }\r\n for (const entry of entries) {\r\n if (entry.name.startsWith('.')) continue;\r\n results.push({\r\n name: entry.name,\r\n insertText: entry.isDirectory() ? `${entry.name}/` : entry.name,\r\n kind: entry.isDirectory() ? 'directory' as const : 'file' as const\r\n });\r\n }\r\n results.sort((a, b) => a.name.localeCompare(b.name));\r\n return results.slice(0, 15);\r\n }\r\n\r\n // For a non-empty query, recursively walk the entire CWD and return\r\n // all matching relative paths (e.g. \"src/components/App.tsx\")\r\n const walk = (dir: string, relativePath: string, depth: number) => {\r\n if (depth > 6 || results.length >= 60) return;\r\n let entries: fs.Dirent[];\r\n try { entries = fs.readdirSync(dir, { withFileTypes: true }); } catch { return; }\r\n\r\n for (const entry of entries) {\r\n if (entry.name.startsWith('.')) continue;\r\n const entryRelPath = relativePath ? `${relativePath}/${entry.name}` : entry.name;\r\n const lowerRelPath = entryRelPath.toLowerCase();\r\n const lowerBasename = entry.name.toLowerCase();\r\n\r\n if (entry.isDirectory()) {\r\n if (SKIP_DIRS.has(entry.name)) continue;\r\n // Include directory if any part of its relative path matches the query\r\n if (lowerRelPath.includes(lowerQuery) || lowerBasename.includes(lowerQuery)) {\r\n results.push({\r\n name: entryRelPath,\r\n insertText: `${entryRelPath}/`,\r\n kind: 'directory' as const\r\n });\r\n }\r\n walk(path.join(dir, entry.name), entryRelPath, depth + 1);\r\n } else {\r\n if (lowerRelPath.includes(lowerQuery) || lowerBasename.includes(lowerQuery)) {\r\n results.push({\r\n name: entryRelPath,\r\n insertText: entryRelPath,\r\n kind: 'file' as const\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n walk(cwd, '', 0);\r\n\r\n // Sort: exact basename prefix match first, then shallower paths, then alphabetical\r\n results.sort((a, b) => {\r\n const aBasename = a.name.split('/').pop()!.toLowerCase();\r\n const bBasename = b.name.split('/').pop()!.toLowerCase();\r\n const aStartsBasename = aBasename.startsWith(lowerQuery);\r\n const bStartsBasename = bBasename.startsWith(lowerQuery);\r\n const aStartsFull = a.name.toLowerCase().startsWith(lowerQuery);\r\n const bStartsFull = b.name.toLowerCase().startsWith(lowerQuery);\r\n\r\n if ((aStartsFull || aStartsBasename) && !(bStartsFull || bStartsBasename)) return -1;\r\n if (!(aStartsFull || aStartsBasename) && (bStartsFull || bStartsBasename)) return 1;\r\n\r\n // Shallower paths first\r\n const aDepth = a.name.split('/').length;\r\n const bDepth = b.name.split('/').length;\r\n if (aDepth !== bDepth) return aDepth - bDepth;\r\n\r\n return a.name.localeCompare(b.name);\r\n });\r\n\r\n return results.slice(0, 15);\r\n } catch (error) {\r\n return [];\r\n }\r\n }, [currentWorkingDirectory]);\r\n\r\n const getMatchingMentionSuggestions = React.useCallback((query: string): MentionSuggestion[] => {\r\n const normalized = query.toLowerCase();\r\n\r\n if (normalized.startsWith('rules:')) {\r\n const ruleQuery = query.slice('rules:'.length).toLowerCase();\r\n return rulesStorage.list()\r\n .filter(rule => rule.name.toLowerCase().includes(ruleQuery))\r\n .slice(0, 10)\r\n .map(rule => ({\r\n name: `rules:${rule.name}`,\r\n insertText: `rules:${rule.name}`,\r\n kind: 'rule' as const,\r\n description: rule.preview || 'Saved rule'\r\n }));\r\n }\r\n\r\n const suggestions: MentionSuggestion[] = [];\r\n if ('rules:'.startsWith(normalized) || normalized.startsWith('rules')) {\r\n suggestions.push({\r\n name: 'rules:',\r\n insertText: 'rules:',\r\n kind: 'rule-namespace',\r\n description: 'Insert a saved reusable rule'\r\n });\r\n }\r\n\r\n return [...suggestions, ...getMatchingFiles(query)].slice(0, 15);\r\n }, [getMatchingFiles]);\r\n\r\n // File tag (@) detection effect\r\n useEffect(() => {\r\n // Don't show file tag autocomplete in command mode\r\n if (commandMode) {\r\n setFileTagAutocompleteVisible(false);\r\n return;\r\n }\r\n\r\n // Find if cursor is within a potential file tag\r\n // Look backwards from cursor to find @\r\n let atPosition = -1;\r\n for (let i = cursorOffset - 1; i >= 0; i--) {\r\n const char = value[i];\r\n // Stop if we hit whitespace or another special char\r\n if (/[\\s\\n]/.test(char)) break;\r\n if (char === '@') {\r\n atPosition = i;\r\n break;\r\n }\r\n }\r\n\r\n // Only treat @ as file tag if it's at start of input OR preceded by whitespace\r\n // This prevents triggering on things like \"rohan@localhost\" or \"email@domain.com\"\r\n if (atPosition === -1 || (atPosition > 0 && !/[\\s\\n]/.test(value[atPosition - 1]))) {\r\n setFileTagAutocompleteVisible(false);\r\n setActiveFileTagStart(null);\r\n return;\r\n }\r\n\r\n // Extract the query after @\r\n const query = value.slice(atPosition + 1, cursorOffset);\r\n\r\n const matches = getMatchingMentionSuggestions(query);\r\n\r\n if (matches.length > 0) {\r\n setFileTagSuggestions(matches);\r\n setFileTagAutocompleteVisible(true);\r\n setActiveFileTagStart(atPosition);\r\n setFileTagSelectedIndex(0);\r\n } else {\r\n setFileTagAutocompleteVisible(false);\r\n setActiveFileTagStart(null);\r\n }\r\n }, [value, cursorOffset, commandMode, currentWorkingDirectory, getMatchingMentionSuggestions]);\r\n\r\n const pushToUndoStack = () => {\r\n setUndoStack(prev => [...prev, { value, cursorOffset }]);\r\n setRedoStack([]); // Clear redo stack on new action\r\n };\r\n\r\n const handleUndo = () => {\r\n if (undoStack.length === 0) return;\r\n const previousState = undoStack[undoStack.length - 1];\r\n setRedoStack(prev => [...prev, { value, cursorOffset }]);\r\n setUndoStack(prev => prev.slice(0, -1));\r\n setValue(previousState.value);\r\n setCursorOffset(previousState.cursorOffset);\r\n setSelection(null);\r\n };\r\n\r\n const applyMentionSuggestion = (selected: MentionSuggestion, viaTab: boolean) => {\r\n if (activeFileTagStart === null) {\r\n return;\r\n }\r\n\r\n pushToUndoStack();\r\n\r\n const beforeTag = value.slice(0, activeFileTagStart);\r\n const afterCursor = value.slice(cursorOffset);\r\n const baseValue = beforeTag + '@' + selected.insertText;\r\n\r\n if (selected.kind === 'rule-namespace') {\r\n const newValue = baseValue + afterCursor;\r\n const newCursorPos = activeFileTagStart + 1 + selected.insertText.length;\r\n setValue(newValue);\r\n setCursorOffset(newCursorPos);\r\n return;\r\n }\r\n\r\n if (viaTab && selected.kind === 'directory') {\r\n const newValue = baseValue + afterCursor;\r\n const newCursorPos = activeFileTagStart + 1 + selected.insertText.length;\r\n setValue(newValue);\r\n setCursorOffset(newCursorPos);\r\n return;\r\n }\r\n\r\n const trailingSuffix = viaTab ? '' : ' ';\r\n const newValue = baseValue + trailingSuffix + afterCursor;\r\n const newCursorPos = activeFileTagStart + 1 + selected.insertText.length + trailingSuffix.length;\r\n\r\n setValue(newValue);\r\n setCursorOffset(newCursorPos);\r\n\r\n setConfirmedFileTags(prev => [\r\n ...prev.filter(tag =>\r\n !(tag.start >= activeFileTagStart && tag.start <= cursorOffset)\r\n ),\r\n {\r\n start: activeFileTagStart,\r\n end: activeFileTagStart + 1 + selected.insertText.length,\r\n fileName: selected.name\r\n }\r\n ]);\r\n\r\n setFileTagAutocompleteVisible(false);\r\n setActiveFileTagStart(null);\r\n };\r\n\r\n useInput((input, key) => {\r\n if (!isActive) return;\r\n\r\n // Detect OS for platform-specific key handling\r\n const isWindows = process.platform === 'win32';\r\n const inputCharCode = input ? input.charCodeAt(0) : null;\r\n const normalizedInput = input ? input.toLowerCase() : '';\r\n\r\n // Shift+Enter may arrive as terminal remap sequences instead of key.shift.\r\n // Handle common variants used by iTerm/Kitty/VS Code keybinding remaps.\r\n const isTerminalShiftEnterSequence =\r\n input === '\\u001b\\r' ||\r\n input === '\\u001b\\n' ||\r\n normalizedInput === '\\u001b[13;2u' ||\r\n normalizedInput === '\\u001b[13;2~' ||\r\n normalizedInput === '\\u001b[27;2;13~';\r\n const isEnterEvent = key.return || isTerminalShiftEnterSequence;\r\n\r\n // macOS Option+Arrow often arrives as ESC-prefixed sequences.\r\n // Handle these explicitly without changing any existing backspace/delete behavior.\r\n const isMacOptionWordBackwardSequence = isMac && (\r\n normalizedInput === '\\u001bb' ||\r\n normalizedInput === '\\u001b[1;3d' ||\r\n normalizedInput === '\\u001b[1;9d' ||\r\n (key.meta && normalizedInput === 'b') ||\r\n (key.escape && key.leftArrow)\r\n );\r\n const isMacOptionWordForwardSequence = isMac && (\r\n normalizedInput === '\\u001bf' ||\r\n normalizedInput === '\\u001b[1;3c' ||\r\n normalizedInput === '\\u001b[1;9c' ||\r\n (key.meta && normalizedInput === 'f') ||\r\n (key.escape && key.rightArrow)\r\n );\r\n\r\n // Handle slash command autocomplete navigation\r\n if (slashAutocompleteVisible) {\r\n if (key.downArrow) {\r\n const newIndex = Math.min(slashAutocompleteSelectedIndex + 1, slashAutocompleteCommands.length - 1);\r\n setSlashAutocompleteSelectedIndex(newIndex);\r\n // Scroll down if selected is below visible window\r\n if (newIndex >= slashAutocompleteScrollOffset + slashMaxVisibleItems) {\r\n setSlashAutocompleteScrollOffset(newIndex - slashMaxVisibleItems + 1);\r\n }\r\n return;\r\n }\r\n\r\n if (key.upArrow) {\r\n const newIndex = Math.max(slashAutocompleteSelectedIndex - 1, 0);\r\n setSlashAutocompleteSelectedIndex(newIndex);\r\n // Scroll up if selected is above visible window\r\n if (newIndex < slashAutocompleteScrollOffset) {\r\n setSlashAutocompleteScrollOffset(newIndex);\r\n }\r\n return;\r\n }\r\n\r\n if (key.return && input.length <= 1 && !key.shift && !key.ctrl && !key.meta) {\r\n // Select the highlighted command\r\n const selected = slashAutocompleteCommands[slashAutocompleteSelectedIndex];\r\n if (!selected || selected.name.startsWith('(no ')) {\r\n setSlashAutocompleteVisible(false);\r\n return;\r\n }\r\n\r\n // Check if we're in MCP subcommand mode\r\n if (value.startsWith('/mcp ')) {\r\n // We're selecting an MCP subcommand, keep \"/mcp \" and append the subcommand\r\n const newValue = `/mcp ${selected.name} `;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n setSlashAutocompleteVisible(false);\r\n } else if (value.startsWith('/chat ')) {\r\n // We're selecting a chat subcommand, keep \"/chat \" and append the subcommand\r\n const newValue = `/chat ${selected.name} `;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n setSlashAutocompleteVisible(false);\r\n } else if (value.startsWith('/add-command ') || value.startsWith('/add-command-auto-detect ')) {\r\n // We're selecting an add-command subcommand\r\n const prefix = value.startsWith('/add-command-auto-detect ') ? '/add-command-auto-detect ' : '/add-command ';\r\n const newValue = `${prefix}${selected.name} `;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n setSlashAutocompleteVisible(false);\r\n } else if (value.startsWith('/background-task ') || value.startsWith('/bkg ') || value.startsWith('/bg-task ')) {\r\n // We're selecting a background-task subcommand\r\n const prefix = value.startsWith('/bkg ') ? '/bkg ' : (value.startsWith('/bg-task ') ? '/bg-task ' : '/background-task ');\r\n const newValue = `${prefix}${selected.name} `;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n setSlashAutocompleteVisible(false);\r\n } else if (value.startsWith('/sync ')) {\r\n // We're selecting a sync subcommand\r\n const newValue = `/sync ${selected.name} `;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n setSlashAutocompleteVisible(false);\r\n } else if (value.startsWith('/revert ')) {\r\n // We're selecting a checkpoint from /revert dropdown\r\n const newValue = `/revert ${selected.name}`;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n setSlashAutocompleteVisible(false);\r\n } else if (value.startsWith('/models ') || value.startsWith('/model ')) {\r\n // We're selecting a models subcommand\r\n const prefix = value.startsWith('/models ') ? '/models ' : '/model ';\r\n const newValue = `${prefix}${selected.name}`;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n setSlashAutocompleteVisible(false);\r\n } else if (value.startsWith('/rules ')) {\r\n const ruleNameMatch = value.match(/^\\/rules\\s+(edit|delete)\\s+/);\r\n if (ruleNameMatch) {\r\n const prefix = value.match(/^\\/rules\\s+(?:edit|delete)\\s+/)?.[0] || '';\r\n const newValue = `${prefix}${selected.name}`;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n setSlashAutocompleteVisible(false);\r\n } else {\r\n const newValue = `/rules ${selected.name} `;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n\r\n if (selected.name === 'edit' || selected.name === 'delete') {\r\n const ruleMatches = getRuleNameAutocompleteEntries('');\r\n if (ruleMatches.length > 0) {\r\n setSlashAutocompleteCommands(ruleMatches);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n }\r\n } else if (value.startsWith('/workflow new ') || value.startsWith('/wf new ')) {\r\n // We're in workflow new subcommand mode (manual or learn-workflow)\r\n const prefix = value.startsWith('/workflow new ') ? '/workflow new ' : '/wf new ';\r\n const newValue = `${prefix}${selected.name}`;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n setSlashAutocompleteVisible(false);\r\n } else if (value.startsWith('/workflow ') || value.startsWith('/wf ')) {\r\n // Check if we're in workflow name selection mode (after run/view/delete)\r\n const workflowNameMatch = value.match(/^\\/(?:workflow|wf)\\s+(run|view|delete)\\s+/);\r\n if (workflowNameMatch) {\r\n // We're selecting a workflow name\r\n const prefix = value.match(/^\\/(?:workflow|wf)\\s+(?:run|view|delete)\\s+/)?.[0] || '';\r\n const newValue = `${prefix}${selected.name}`;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n setSlashAutocompleteVisible(false);\r\n } else {\r\n // We're selecting a workflow subcommand\r\n const prefix = value.startsWith('/workflow ') ? '/workflow ' : '/wf ';\r\n const newValue = `${prefix}${selected.name} `;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n\r\n // For run/view/delete, show workflow names immediately\r\n if (selected.name === 'run' || selected.name === 'view' || selected.name === 'delete') {\r\n const workflows = workflowStorage.list();\r\n const matchingWorkflows: SlashCommand[] = workflows\r\n .slice(0, 10)\r\n .map(wf => ({\r\n name: wf.name,\r\n description: wf.description || `${wf.stepCount} step${wf.stepCount !== 1 ? 's' : ''}`\r\n }));\r\n\r\n if (matchingWorkflows.length > 0) {\r\n setSlashAutocompleteCommands(matchingWorkflows);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n // Keep autocomplete visible\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n } else if (selected.name === 'new') {\r\n // For 'new' subcommand, show manual/learn-workflow options\r\n const subcommandMatches = filterCommands('workflow new ');\r\n if (subcommandMatches.length > 0) {\r\n setSlashAutocompleteCommands(subcommandMatches);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n // Keep autocomplete visible for next level\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n }\r\n } else if (value.startsWith('/settings auto-suggest ')) {\r\n // We're selecting an auto-suggest option (on/off)\r\n const newValue = `/settings auto-suggest ${selected.name}`;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n setSlashAutocompleteVisible(false);\r\n } else if (value.startsWith('/settings ')) {\r\n // We're selecting a settings subcommand (e.g., auto-suggest)\r\n const newValue = `/settings ${selected.name} `;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n // Show the next level options (on/off for auto-suggest)\r\n if (selected.name === 'auto-suggest') {\r\n const optionMatches = filterCommands('settings auto-suggest ');\r\n if (optionMatches.length > 0) {\r\n setSlashAutocompleteCommands(optionMatches);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n } else {\r\n // Regular slash command, replace everything\r\n const newValue = `/${selected.name} `;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n\r\n // Check if this command has subcommands (e.g., /mcp, /chat, /add-command)\r\n // If so, immediately show the subcommand list\r\n if (selected.name === 'mcp') {\r\n const subcommandMatches = filterCommands('mcp ');\r\n if (subcommandMatches.length > 0) {\r\n setSlashAutocompleteCommands(subcommandMatches);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n // Keep autocomplete visible for subcommands\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n } else if (selected.name === 'chat') {\r\n const subcommandMatches = filterCommands('chat ');\r\n if (subcommandMatches.length > 0) {\r\n setSlashAutocompleteCommands(subcommandMatches);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n // Keep autocomplete visible for subcommands\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n } else if (selected.name === 'add-command' || selected.name === 'add-command-auto-detect') {\r\n const subcommandMatches = filterCommands('add-command ');\r\n if (subcommandMatches.length > 0) {\r\n setSlashAutocompleteCommands(subcommandMatches);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n // Keep autocomplete visible for subcommands\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n } else if (selected.name === 'background-task' || selected.name === 'bkg' || selected.name === 'bg-task') {\r\n const subcommandMatches = filterCommands('background-task ');\r\n if (subcommandMatches.length > 0) {\r\n setSlashAutocompleteCommands(subcommandMatches);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n // Keep autocomplete visible for subcommands\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n } else if (selected.name === 'sync') {\r\n const subcommandMatches = filterCommands('sync ');\r\n if (subcommandMatches.length > 0) {\r\n setSlashAutocompleteCommands(subcommandMatches);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n // Keep autocomplete visible for subcommands\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n } else if (selected.name === 'models' || selected.name === 'model') {\r\n const subcommandMatches = filterCommands('models ');\r\n if (subcommandMatches.length > 0) {\r\n setSlashAutocompleteCommands(subcommandMatches);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n // Keep autocomplete visible for subcommands\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n } else if (selected.name === 'settings') {\r\n const subcommandMatches = filterCommands('settings ');\r\n if (subcommandMatches.length > 0) {\r\n setSlashAutocompleteCommands(subcommandMatches);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n // Keep autocomplete visible for subcommands\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n } else if (selected.name === 'workflow' || selected.name === 'wf') {\r\n const subcommandMatches = filterCommands('workflow ');\r\n if (subcommandMatches.length > 0) {\r\n setSlashAutocompleteCommands(subcommandMatches);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n // Keep autocomplete visible for subcommands\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n } else if (selected.name === 'rules') {\r\n const subcommandMatches = filterCommands('rules ');\r\n if (subcommandMatches.length > 0) {\r\n setSlashAutocompleteCommands(subcommandMatches);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n } else if (selected.name === 'revert') {\r\n // For revert, show checkpoints immediately\r\n const checkpoints = getCheckpoints ? getCheckpoints() : [];\r\n if (checkpoints.length === 0) {\r\n setSlashAutocompleteCommands([{\r\n name: '(no checkpoints)',\r\n description: 'Ask AI a question first to create a checkpoint'\r\n }]);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n // Keep autocomplete visible\r\n } else {\r\n const checkpointCommands: SlashCommand[] = checkpoints\r\n .slice(0, 10)\r\n .map(cp => {\r\n const truncatedPrompt = cp.prompt.length > 50 ? cp.prompt.slice(0, 50) + '...' : cp.prompt;\r\n return {\r\n name: cp.id,\r\n description: truncatedPrompt\r\n };\r\n });\r\n setSlashAutocompleteCommands(checkpointCommands);\r\n setSlashAutocompleteSelectedIndex(0);\r\n setSlashAutocompleteScrollOffset(0);\r\n // Keep autocomplete visible\r\n }\r\n } else {\r\n setSlashAutocompleteVisible(false);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n if (key.escape) {\r\n setSlashAutocompleteVisible(false);\r\n return;\r\n }\r\n }\r\n\r\n // Handle file tag (@) autocomplete navigation\r\n if (fileTagAutocompleteVisible) {\r\n if (key.downArrow) {\r\n setFileTagSelectedIndex(prev =>\r\n Math.min(prev + 1, fileTagSuggestions.length - 1)\r\n );\r\n return;\r\n }\r\n\r\n if (key.upArrow) {\r\n setFileTagSelectedIndex(prev => Math.max(prev - 1, 0));\r\n return;\r\n }\r\n\r\n if (key.return && input.length <= 1 && !key.shift && !key.ctrl && !key.meta) {\r\n // Select the highlighted file\r\n const selected = fileTagSuggestions[fileTagSelectedIndex];\r\n if (selected && activeFileTagStart !== null) {\r\n applyMentionSuggestion(selected, false);\r\n }\r\n return;\r\n }\r\n\r\n if (key.escape) {\r\n setFileTagAutocompleteVisible(false);\r\n setActiveFileTagStart(null);\r\n return;\r\n }\r\n\r\n // If Tab is pressed, also select the current file\r\n if (key.tab && !key.shift) {\r\n const selected = fileTagSuggestions[fileTagSelectedIndex];\r\n if (selected && activeFileTagStart !== null) {\r\n applyMentionSuggestion(selected, true);\r\n }\r\n return;\r\n }\r\n }\r\n\r\n // Alt+V: Paste image from clipboard\r\n // Detect Alt+V on Windows/Linux (key.meta is often Alt on Windows in Ink)\r\n // On Mac, we want to support Cmd+V explicitly as requested (\"make alt key combinations work with cmd key\")\r\n // Note: Cmd+V is often captured by the terminal for text paste, but if it gets through, we handle it.\r\n // Option+V on Mac often sends '√', which we also support.\r\n const isAltV = (key.meta && input === 'v') || (input === '√');\r\n\r\n if (isAltV && !commandMode) {\r\n // Check clipboard for files asynchronously\r\n (async () => {\r\n try {\r\n const files = await getClipboardFiles();\r\n if (files.length > 0) {\r\n // Check limits (max 5 files allowed)\r\n const currentCount = confirmedClipboardFiles.length;\r\n const newCount = files.length;\r\n\r\n if (currentCount + newCount > 5) {\r\n logDebug(`Alt+V: Rejected file paste, limit exceeded (${currentCount} + ${newCount} > 5)`);\r\n setRejectFlash(true);\r\n setTimeout(() => setRejectFlash(false), 1000);\r\n return;\r\n }\r\n\r\n logDebug(`Alt+V: Found ${files.length} file(s) in clipboard, adding to input`);\r\n\r\n // Add files to confirmed list with unique ID\r\n const newFilesWithIds = files.map(file => ({\r\n ...file,\r\n id: `${file.id}_${Date.now()}_${Math.random().toString(36).substring(7)}`\r\n }));\r\n\r\n setConfirmedClipboardFiles(prev => [...prev, ...newFilesWithIds]);\r\n } else {\r\n logDebug('Alt+V: No file in clipboard');\r\n }\r\n } catch (error) {\r\n logDebug(`Alt+V: Failed to check clipboard: ${error instanceof Error ? error.message : 'Unknown error'}`);\r\n }\r\n })();\r\n return;\r\n }\r\n\r\n // Alt+X / Cmd+X: Remove the last attached file/image\r\n // Detect Alt+X on Windows/Linux or Cmd+X on Mac.\r\n // Option+X on Mac often produces '≈'\r\n const isAltX = (key.meta && input === 'x') || (input === '≈');\r\n\r\n if (isAltX && !commandMode) {\r\n if (confirmedClipboardFiles.length > 0) {\r\n logDebug(`Alt+X: Removing last attached file`);\r\n setConfirmedClipboardFiles(prev => prev.slice(0, -1));\r\n } else {\r\n logDebug(`Alt+X: No files to remove`);\r\n }\r\n return;\r\n }\r\n\r\n // macOS Option+Left / Option+Right word navigation.\r\n if (isMacOptionWordBackwardSequence) {\r\n if (cursorOffset > 0) {\r\n let newOffset = cursorOffset;\r\n while (newOffset > 0 && /\\s/.test(value[newOffset - 1])) {\r\n newOffset--;\r\n }\r\n while (newOffset > 0 && !/\\s/.test(value[newOffset - 1])) {\r\n newOffset--;\r\n }\r\n setCursorOffset(newOffset);\r\n }\r\n return;\r\n }\r\n\r\n if (isMacOptionWordForwardSequence) {\r\n if (cursorOffset < value.length) {\r\n let newOffset = cursorOffset;\r\n while (newOffset < value.length && /\\s/.test(value[newOffset])) {\r\n newOffset++;\r\n }\r\n while (newOffset < value.length && !/\\s/.test(value[newOffset])) {\r\n newOffset++;\r\n }\r\n setCursorOffset(newOffset);\r\n }\r\n return;\r\n }\r\n\r\n\r\n // DELETE WORD BACKWARDS\r\n // 1. Ctrl+W\r\n // 2. Cmd+Backspace (Mac) - often mapped to delete line, but here we treat key.meta as modifier\r\n // 3. Alt+Backspace (Windows/Linux)\r\n const isDeleteWord =\r\n inputCharCode === 23 || // Ctrl+W\r\n (key.meta && (key.backspace || key.delete)) || // Cmd+Backspace (Mac) or Alt+Backspace (Win)\r\n (key.ctrl && key.delete) || // Ctrl+Delete\r\n (isWindows && inputCharCode === 127); // Windows: Ctrl+Del sends char 127\r\n\r\n if (isDeleteWord) {\r\n pushToUndoStack();\r\n if (cursorOffset > 0) {\r\n let newOffset = cursorOffset;\r\n // Skip whitespace backwards\r\n while (newOffset > 0 && /\\s/.test(value[newOffset - 1])) {\r\n newOffset--;\r\n }\r\n // Skip non-whitespace backwards\r\n while (newOffset > 0 && !/\\s/.test(value[newOffset - 1])) {\r\n newOffset--;\r\n }\r\n const newValue = value.slice(0, newOffset) + value.slice(cursorOffset);\r\n setValue(newValue);\r\n setCursorOffset(newOffset);\r\n updateSlashAutocomplete(newValue);\r\n }\r\n setHistoryIndex(-1);\r\n setCompletions([]);\r\n return;\r\n }\r\n\r\n // Ctrl+T: Toggle auto-accept\r\n if (key.ctrl && input.toLowerCase() === 't') {\r\n ignoreNextChangeRef.current = true;\r\n onToggleAutoAccept();\r\n setTimeout(() => { ignoreNextChangeRef.current = false; }, 100);\r\n return;\r\n }\r\n\r\n // Ctrl+D: Cycle modes (Agent -> Terminal -> Background -> Auto -> Agent)\r\n if (key.ctrl && input.toLowerCase() === 'd') {\r\n if (onToggleCommandMode) {\r\n ignoreNextChangeRef.current = true;\r\n\r\n // Cycle Logic: Agent -> Terminal -> Background -> Auto -> Agent\r\n if (!isAutoMode && !commandMode && !backgroundMode) {\r\n // Agent -> Terminal\r\n onToggleCommandMode();\r\n } else if (!isAutoMode && commandMode && !backgroundMode) {\r\n // Terminal -> Background\r\n onToggleCommandMode(); // Exit terminal mode\r\n if (onToggleBackgroundMode) onToggleBackgroundMode(); // Enter background mode\r\n } else if (!isAutoMode && !commandMode && backgroundMode) {\r\n // Background -> Auto\r\n if (onToggleBackgroundMode) onToggleBackgroundMode(); // Exit background mode\r\n setIsAutoMode(true);\r\n // Trigger initial detection for Auto mode\r\n const intent = detectIntent(value);\r\n setDetectedIntent(intent);\r\n // Set command mode based on intent\r\n if (intent === 'command') onToggleCommandMode();\r\n } else if (isAutoMode) {\r\n // Auto -> Agent\r\n setIsAutoMode(false);\r\n // Ensure we go back to Agent mode (commandMode = false, backgroundMode = false)\r\n if (commandMode) onToggleCommandMode();\r\n if (backgroundMode && onToggleBackgroundMode) onToggleBackgroundMode();\r\n }\r\n\r\n setTimeout(() => { ignoreNextChangeRef.current = false; }, 100);\r\n }\r\n return;\r\n }\r\n\r\n // Ctrl+Z / Cmd+Z: Undo\r\n if ((key.ctrl && input.toLowerCase() === 'z') || (key.meta && input.toLowerCase() === 'z')) {\r\n handleUndo();\r\n return;\r\n }\r\n\r\n // Ctrl+A / Cmd+A: Select All\r\n if ((key.ctrl && input.toLowerCase() === 'a') || (key.meta && input.toLowerCase() === 'a')) {\r\n setSelection({ start: 0, end: value.length });\r\n setCursorOffset(value.length);\r\n return;\r\n }\r\n\r\n // Home: Start of Line\r\n // Note: In single-line inputs, this goes to start of text. \r\n // In multi-line wrapped view, we ideally want start of logical line or start of text? \r\n // Standard terminal Home = Start of command. Editor Home = Start of line.\r\n // Let's stick to Start of Text for now as it's a single \"input box\".\r\n // Home: Start of Line\r\n // @ts-ignore\r\n if (key.home) {\r\n const width = (process.stdout.columns || 80) - 6;\r\n const visualLines = getVisualLines(value, width);\r\n\r\n const currentLine = visualLines.find(line =>\r\n (cursorOffset >= line.start && cursorOffset < line.end) ||\r\n (cursorOffset === line.end && line.isHardEnd)\r\n );\r\n\r\n if (currentLine) {\r\n setCursorOffset(currentLine.start);\r\n } else {\r\n setCursorOffset(0);\r\n }\r\n return;\r\n }\r\n\r\n // End: End of Line\r\n // @ts-ignore\r\n if (key.end) {\r\n const width = (process.stdout.columns || 80) - 6;\r\n const visualLines = getVisualLines(value, width);\r\n\r\n const currentLine = visualLines.find(line =>\r\n (cursorOffset >= line.start && cursorOffset < line.end) ||\r\n (cursorOffset === line.end && line.isHardEnd)\r\n );\r\n\r\n if (currentLine) {\r\n setCursorOffset(currentLine.end);\r\n } else {\r\n setCursorOffset(value.length);\r\n }\r\n return;\r\n }\r\n\r\n\r\n // Note: Clipboard images are handled via Alt+V keyboard shortcut\r\n\r\n // DELETE CHAR - Only runs if Delete Word did NOT trigger\r\n // Triggers on:\r\n // 1. Backspace or Delete key flag is present\r\n // 2. OR char code 8 (standard backspace)\r\n // 3. OR char code 127 (DEL) on non-Windows (Mac/Linux treat 127 as normal backspace)\r\n // NOTE: On Windows/Ink, Backspace often reports as 'delete: true', so we treat key.delete as Backspace to ensure the Backspace key works correctly.\r\n const isDeleteChar =\r\n key.backspace ||\r\n key.delete ||\r\n inputCharCode === 8 ||\r\n (!isWindows && inputCharCode === 127);\r\n\r\n if (isDeleteChar) {\r\n pushToUndoStack();\r\n\r\n let newValue = value;\r\n\r\n if (selection) {\r\n // Delete selection\r\n const start = Math.min(selection.start, selection.end);\r\n const end = Math.max(selection.start, selection.end);\r\n newValue = value.slice(0, start) + value.slice(end);\r\n setValue(newValue);\r\n setCursorOffset(start);\r\n setSelection(null);\r\n } else if (cursorOffset > 0) {\r\n // Backspace (or Delete acting as Backspace): Delete character before cursor\r\n newValue = value.slice(0, cursorOffset - 1) + value.slice(cursorOffset);\r\n setValue(newValue);\r\n setCursorOffset(cursorOffset - 1);\r\n }\r\n\r\n // Reset history/completions on edit\r\n setHistoryIndex(-1);\r\n setCompletions([]);\r\n updateSlashAutocomplete(newValue);\r\n\r\n return;\r\n }\r\n\r\n // Handle Enter\r\n // Check input length to distinguish single key press from paste\r\n if (isEnterEvent && (input.length <= 1 || isTerminalShiftEnterSequence)) {\r\n // Newline insertion triggers:\r\n // 1) Shift/Ctrl/Meta + Enter\r\n // 2) Remapped Shift+Enter terminal sequences (ESC+CR / CSI variants)\r\n // 3) Universal fallback: \"\\\" immediately before Enter\r\n const isBackslashEnterFallback =\r\n !key.shift &&\r\n !key.ctrl &&\r\n !key.meta &&\r\n !isTerminalShiftEnterSequence &&\r\n !selection &&\r\n cursorOffset > 0 &&\r\n value[cursorOffset - 1] === '\\\\';\r\n\r\n if (key.shift || key.ctrl || key.meta || input === '\\n' || isTerminalShiftEnterSequence || isBackslashEnterFallback) {\r\n pushToUndoStack();\r\n // Insert newline, optionally replacing trailing backslash fallback marker.\r\n // If selection exists, replace it\r\n let newValue = value;\r\n let newOffset = cursorOffset;\r\n\r\n if (selection) {\r\n const start = Math.min(selection.start, selection.end);\r\n const end = Math.max(selection.start, selection.end);\r\n newValue = value.slice(0, start) + '\\n' + value.slice(end);\r\n newOffset = start + 1;\r\n setSelection(null);\r\n } else if (isBackslashEnterFallback) {\r\n newValue = value.slice(0, cursorOffset - 1) + '\\n' + value.slice(cursorOffset);\r\n newOffset = cursorOffset;\r\n } else {\r\n newValue = value.slice(0, cursorOffset) + '\\n' + value.slice(cursorOffset);\r\n newOffset = cursorOffset + 1;\r\n }\r\n\r\n setValue(newValue);\r\n setCursorOffset(newOffset);\r\n } else {\r\n // Enter: Submit\r\n // Check if submission is allowed when disconnected\r\n // Allowed: /exit command, OR Command Mode is active, OR detected intent is 'command'\r\n const isExitCommand = value.trim() === '/exit';\r\n const isCommandIntent = detectedIntent === 'command';\r\n const isAllowedOffline = isConnected || isExitCommand || commandMode || isCommandIntent;\r\n\r\n if (!isAllowedOffline) {\r\n setRejectFlash(true);\r\n setTimeout(() => setRejectFlash(false), 1000);\r\n return;\r\n }\r\n\r\n const isSlashCommand = value.trim().startsWith('/');\r\n\r\n // Check session quota (only for AI mode, not command mode or slash commands)\r\n // Slash commands and terminal commands should always be allowed\r\n if (!commandMode && !isCommandIntent && !isSlashCommand && sessionQuotaExhausted) {\r\n setRejectFlash(true);\r\n setShowQuotaMessage(true);\r\n setTimeout(() => {\r\n setRejectFlash(false);\r\n setShowQuotaMessage(false);\r\n }, 3000); // Show quota message for 3 seconds\r\n return;\r\n }\r\n\r\n handleSubmit();\r\n }\r\n return;\r\n }\r\n\r\n // Handle Arrows\r\n if (key.upArrow || key.downArrow || key.leftArrow || key.rightArrow) {\r\n // Clear selection on arrow keys\r\n if (selection) {\r\n setSelection(null);\r\n // If left/right, maybe move cursor to start/end of selection?\r\n // For now, just clear selection and let default logic run (or reset cursor to one end)\r\n if (key.leftArrow) setCursorOffset(Math.min(selection.start, selection.end));\r\n if (key.rightArrow) setCursorOffset(Math.max(selection.start, selection.end));\r\n if (key.upArrow || key.downArrow) {\r\n // Keep cursor where it is (at the end usually) or move it?\r\n // Let's just fall through to normal arrow logic from current cursorOffset\r\n }\r\n if (key.leftArrow || key.rightArrow) return; // We handled the move\r\n }\r\n }\r\n\r\n if (key.upArrow) {\r\n const width = (process.stdout.columns || 80) - 6;\r\n const visualLines = getVisualLines(value, width);\r\n\r\n let currentVisualLineIndex = visualLines.findIndex(line => {\r\n if (cursorOffset >= line.start && cursorOffset < line.end) return true;\r\n if (cursorOffset === line.end && line.isHardEnd) return true;\r\n return false;\r\n });\r\n\r\n // If cursor is at the very end of the last line\r\n if (currentVisualLineIndex === -1 && cursorOffset === value.length) {\r\n currentVisualLineIndex = visualLines.length - 1;\r\n }\r\n\r\n if (currentVisualLineIndex <= 0) {\r\n // Top line: History navigation\r\n if (commandHistory.length > 0) {\r\n if (historyIndex === -1) {\r\n setTempValue(value);\r\n const newIndex = commandHistory.length - 1;\r\n setHistoryIndex(newIndex);\r\n const newValue = commandHistory[newIndex];\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n } else if (historyIndex > 0) {\r\n const newIndex = historyIndex - 1;\r\n setHistoryIndex(newIndex);\r\n const newValue = commandHistory[newIndex];\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n }\r\n }\r\n } else {\r\n // Move cursor up one visual line\r\n const currentLine = visualLines[currentVisualLineIndex];\r\n const targetLine = visualLines[currentVisualLineIndex - 1];\r\n const offsetInLine = cursorOffset - currentLine.start;\r\n\r\n const newOffset = targetLine.start + Math.min(offsetInLine, targetLine.end - targetLine.start);\r\n setCursorOffset(newOffset);\r\n }\r\n return;\r\n }\r\n\r\n if (key.downArrow) {\r\n const width = (process.stdout.columns || 80) - 6;\r\n const visualLines = getVisualLines(value, width);\r\n\r\n let currentVisualLineIndex = visualLines.findIndex(line => {\r\n if (cursorOffset >= line.start && cursorOffset < line.end) return true;\r\n if (cursorOffset === line.end && line.isHardEnd) return true;\r\n return false;\r\n });\r\n\r\n // If cursor is at the very end of the last line\r\n if (currentVisualLineIndex === -1 && cursorOffset === value.length) {\r\n currentVisualLineIndex = visualLines.length - 1;\r\n }\r\n\r\n if (currentVisualLineIndex === visualLines.length - 1) {\r\n // Bottom line: History navigation\r\n if (historyIndex !== -1) {\r\n if (historyIndex < commandHistory.length - 1) {\r\n const newIndex = historyIndex + 1;\r\n setHistoryIndex(newIndex);\r\n const newValue = commandHistory[newIndex];\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n } else {\r\n setHistoryIndex(-1);\r\n setValue(tempValue);\r\n setCursorOffset(tempValue.length);\r\n }\r\n }\r\n } else {\r\n // Move cursor down one visual line\r\n const currentLine = visualLines[currentVisualLineIndex];\r\n const targetLine = visualLines[currentVisualLineIndex + 1];\r\n const offsetInLine = cursorOffset - currentLine.start;\r\n\r\n const newOffset = targetLine.start + Math.min(offsetInLine, targetLine.end - targetLine.start);\r\n setCursorOffset(newOffset);\r\n }\r\n return;\r\n }\r\n\r\n if (key.leftArrow) {\r\n if (isMac && key.meta) {\r\n // macOS fallback: many terminals map Option+Left to meta+left.\r\n // Treat as word-backward navigation.\r\n let newOffset = cursorOffset;\r\n if (newOffset > 0) {\r\n while (newOffset > 0 && /\\s/.test(value[newOffset - 1])) {\r\n newOffset--;\r\n }\r\n while (newOffset > 0 && !/\\s/.test(value[newOffset - 1])) {\r\n newOffset--;\r\n }\r\n setCursorOffset(newOffset);\r\n }\r\n return;\r\n }\r\n\r\n if (key.ctrl || (!isMac && key.meta)) {\r\n // Ctrl+Left (All) or Alt+Left (Win/Linux): Move word backwards\r\n // Note: On Mac, Option+Left is the standard for word back, but Ink doesn't expose 'alt'.\r\n // Users can use Ctrl+Left or rely on terminal mapping Option to Meta which effectively makes it key.meta\r\n // BUT if key.meta is Cmd on Mac, we map that to Home.\r\n // So standard Mac \"Option+Left\" might not work unless it sends Esc sequence or mapped to Ctrl.\r\n // We allow Ctrl+Left for Mac users.\r\n let newOffset = cursorOffset;\r\n if (newOffset > 0) {\r\n // Skip whitespace backwards\r\n while (newOffset > 0 && /\\s/.test(value[newOffset - 1])) {\r\n newOffset--;\r\n }\r\n // Skip non-whitespace backwards\r\n while (newOffset > 0 && !/\\s/.test(value[newOffset - 1])) {\r\n newOffset--;\r\n }\r\n setCursorOffset(newOffset);\r\n }\r\n return;\r\n }\r\n\r\n // Standard Left Arrow\r\n if (cursorOffset > 0) {\r\n setCursorOffset(cursorOffset - 1);\r\n }\r\n return;\r\n }\r\n\r\n if (key.rightArrow) {\r\n // Autocomplete Logic (Only at end of line)\r\n // AI suggestion takes priority over passive suggestion\r\n // Autocomplete Logic\r\n const effectiveSuggestion = aiAutocompleteSuggestion || autocompleteSuggestion;\r\n if (effectiveSuggestion && cursorOffset === value.length) {\r\n if (key.ctrl || (!isMac && key.meta)) {\r\n // Ctrl+Right (or Alt+Right on non-macOS): Accept FULL suggestion\r\n // (Wait, Cmd+Right is usually End of Line on Mac. We should prioritize Navigation over Autocomplete?\r\n // Actually, if we are at end of line, End of Line does nothing. So we can use it for accept full?)\r\n // Convention: Right Arrow accepts word. Ctrl+Right accepts full?\r\n // On Mac, Cmd+Right is End. If at End, it's a no-op for nav.\r\n // Let's allow Cmd+Right to accept full IF at end.\r\n setValue(effectiveSuggestion);\r\n setCursorOffset(effectiveSuggestion.length);\r\n setAutocompleteSuggestion(null);\r\n setAiAutocompleteSuggestion(null);\r\n return;\r\n } else {\r\n // Right: Accept NEXT WORD\r\n const remaining = effectiveSuggestion.slice(value.length);\r\n // Match next chunk of non-whitespace\r\n const match = remaining.match(/^(\\s*\\S+)/);\r\n\r\n if (match) {\r\n const toAdd = match[0];\r\n const newValue = value + toAdd;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n return; // Done\r\n } else if (remaining.length > 0) {\r\n const newValue = value + remaining;\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n // Navigation Logic\r\n if (isMac && key.meta) {\r\n // macOS fallback: many terminals map Option+Right to meta+right.\r\n // Treat as word-forward navigation.\r\n let newOffset = cursorOffset;\r\n if (newOffset < value.length) {\r\n while (newOffset < value.length && /\\s/.test(value[newOffset])) {\r\n newOffset++;\r\n }\r\n while (newOffset < value.length && !/\\s/.test(value[newOffset])) {\r\n newOffset++;\r\n }\r\n setCursorOffset(newOffset);\r\n }\r\n return;\r\n }\r\n\r\n if ((!isMac && key.meta) || key.ctrl) {\r\n // Alt+Right (Win) or Ctrl+Right: Word Forward\r\n // (Note: Ink uses key.meta for Alt on Windows)\r\n let newOffset = cursorOffset;\r\n if (newOffset < value.length) {\r\n // Skip whitespace forwards\r\n while (newOffset < value.length && /\\s/.test(value[newOffset])) {\r\n newOffset++;\r\n }\r\n // Skip non-whitespace forwards\r\n while (newOffset < value.length && !/\\s/.test(value[newOffset])) {\r\n newOffset++;\r\n }\r\n setCursorOffset(newOffset);\r\n }\r\n return;\r\n }\r\n\r\n // Navigation Logic (if not completing)\r\n if (key.ctrl || key.meta) {\r\n // Ctrl+Right / Meta+Right (Option+Right): Move word forwards\r\n let newOffset = cursorOffset;\r\n if (newOffset < value.length) {\r\n // Skip non-whitespace forwards\r\n while (newOffset < value.length && !/\\s/.test(value[newOffset])) {\r\n newOffset++;\r\n }\r\n // Skip whitespace forwards\r\n while (newOffset < value.length && /\\s/.test(value[newOffset])) {\r\n newOffset++;\r\n }\r\n setCursorOffset(newOffset);\r\n }\r\n } else if (cursorOffset < value.length) {\r\n setCursorOffset(cursorOffset + 1);\r\n }\r\n return;\r\n }\r\n\r\n // Tab Completion\r\n if (key.tab && !key.shift) {\r\n // Only file completion (only in command mode)\r\n if (commandMode) {\r\n handleTabCompletion();\r\n return;\r\n }\r\n }\r\n\r\n // Regular Input\r\n // Ignore control keys to prevent printing garbage (like 'v' for Ctrl+V)\r\n if (input && !key.ctrl && !key.meta) {\r\n pushToUndoStack();\r\n // Handle paste with newlines\r\n const cleanedInput = input.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\r\n\r\n // Use refs to get the latest value and cursor position\r\n // This prevents stale closure issues when Ink calls useInput multiple times during paste\r\n const currentValue = valueRef.current;\r\n const currentCursorOffset = cursorOffsetRef.current;\r\n\r\n let newValue = currentValue;\r\n let newOffset = currentCursorOffset;\r\n\r\n if (selection) {\r\n const start = Math.min(selection.start, selection.end);\r\n const end = Math.max(selection.start, selection.end);\r\n newValue = currentValue.slice(0, start) + cleanedInput + currentValue.slice(end);\r\n newOffset = start + cleanedInput.length;\r\n setSelection(null);\r\n } else {\r\n newValue = currentValue.slice(0, currentCursorOffset) + cleanedInput + currentValue.slice(currentCursorOffset);\r\n newOffset = currentCursorOffset + cleanedInput.length;\r\n }\r\n\r\n // Update refs immediately for subsequent paste chunks\r\n valueRef.current = newValue;\r\n cursorOffsetRef.current = newOffset;\r\n\r\n setValue(newValue);\r\n setCursorOffsetWithRef(newOffset);\r\n\r\n // Reset history/completions\r\n setHistoryIndex(-1);\r\n setCompletions([]);\r\n updateSlashAutocomplete(newValue);\r\n }\r\n }, { isActive });\r\n\r\n const handleTabCompletion = async () => {\r\n if (!value) return;\r\n\r\n const words = value.split(' ');\r\n const lastWord = words[words.length - 1];\r\n\r\n if (completions.length > 0) {\r\n const nextIndex = (completionIndex + 1) % completions.length;\r\n setCompletionIndex(nextIndex);\r\n words[words.length - 1] = completions[nextIndex];\r\n const newValue = words.join(' ');\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n return;\r\n }\r\n\r\n try {\r\n const cwd = currentWorkingDirectory || process.cwd();\r\n let searchDir = cwd;\r\n let searchPattern = lastWord;\r\n let dirPart = '';\r\n\r\n if (lastWord.includes('/') || lastWord.includes('\\\\')) {\r\n const lastSep = Math.max(lastWord.lastIndexOf('/'), lastWord.lastIndexOf('\\\\'));\r\n dirPart = lastWord.substring(0, lastSep + 1);\r\n searchPattern = lastWord.substring(lastSep + 1);\r\n\r\n if (subshellContext && subshellContext.type !== 'local') {\r\n searchDir = dirPart.startsWith('/') ? dirPart.slice(0, -1) : cwd + '/' + dirPart.slice(0, -1);\r\n } else {\r\n searchDir = path.resolve(cwd, dirPart);\r\n }\r\n }\r\n\r\n let entries: Array<{ name: string; type: 'file' | 'directory' }>;\r\n\r\n if (subshellContext && subshellContext.type !== 'local' && subshellContext.handler) {\r\n const dirEntries = await subshellContext.handler.listDirectory(searchDir);\r\n entries = dirEntries.map(entry => ({ name: entry.name, type: entry.type }));\r\n } else {\r\n if (!fs.existsSync(searchDir)) return;\r\n const fsEntries = fs.readdirSync(searchDir, { withFileTypes: true });\r\n entries = fsEntries.map(entry => ({\r\n name: entry.name,\r\n type: entry.isDirectory() ? 'directory' : 'file'\r\n }));\r\n }\r\n\r\n const matches = entries\r\n .filter(entry => entry.name.toLowerCase().startsWith(searchPattern.toLowerCase()))\r\n .map(entry => {\r\n const separator = (subshellContext && subshellContext.type !== 'local') ? '/' : path.sep;\r\n const fullPath = dirPart ? dirPart + entry.name : entry.name;\r\n return entry.type === 'directory' ? fullPath + separator : fullPath;\r\n })\r\n .sort();\r\n\r\n if (matches.length > 0) {\r\n if (matches.length > 1) {\r\n setCompletions(matches);\r\n setCompletionIndex(0);\r\n }\r\n words[words.length - 1] = matches[0];\r\n const newValue = words.join(' ');\r\n setValue(newValue);\r\n setCursorOffset(newValue.length);\r\n }\r\n } catch (error) {\r\n // Ignore errors\r\n }\r\n };\r\n\r\n const handleSubmit = () => {\r\n if (!isActive) return;\r\n\r\n // Block submission while shell command is running - flash red\r\n if (isShellRunning) {\r\n setRejectFlash(true);\r\n setTimeout(() => setRejectFlash(false), 1000); // Flash for 1.0 seconds\r\n return;\r\n }\r\n\r\n const trimmedValue = value.trim();\r\n if (trimmedValue) {\r\n // Save to history if it was a command\r\n if (commandMode) {\r\n CommandHistoryManager.getInstance().addCommand(trimmedValue, currentDir, currentEnvironment);\r\n }\r\n\r\n // File tags (@relative/path) are kept as-is in the message content and\r\n // resolved to absolute paths in cli-adapter before being sent to the AI.\r\n // This preserves the short @tag display in the chat UI.\r\n onSubmit(trimmedValue, confirmedClipboardFiles.length > 0 ? confirmedClipboardFiles : undefined);\r\n setValue('');\r\n setCursorOffset(0);\r\n setCompletions([]);\r\n setCompletionIndex(0);\r\n setHistoryIndex(-1);\r\n setTempValue('');\r\n setUndoStack([]);\r\n setRedoStack([]);\r\n setSelection(null);\r\n setAutocompleteSuggestion(null);\r\n setConfirmedFileTags([]); // Clear confirmed tags on submit\r\n setConfirmedClipboardFiles([]); // Clear confirmed clipboard files on submit\r\n }\r\n };\r\n // Rendering Logic with Scrolling\r\n const renderInput = () => {\r\n const effectivePlaceholder = backgroundMode\r\n ? 'Run commands in the background'\r\n : commandMode\r\n ? 'Run a command'\r\n : placeholder;\r\n\r\n // Get terminal width for visual line calculation\r\n // Account for borders (2) + padding (2) + prompt \"> \" (2) = 6 chars\r\n const termWidth = (process.stdout.columns || 80) - 6;\r\n\r\n // Use getVisualLines to properly calculate wrapped lines\r\n const visualLines = getVisualLines(value, termWidth);\r\n const logicalLines = value.split('\\n');\r\n\r\n // If empty, show placeholder\r\n if (logicalLines.length === 1 && logicalLines[0] === '') {\r\n return <Text color=\"gray\">{effectivePlaceholder}</Text>;\r\n }\r\n\r\n // For rendering, we still use logical lines (split by \\n) since we render character-by-character\r\n // But for height calculation, we use visualLines.length\r\n const lines = logicalLines;\r\n\r\n // Calculate cursor line and column (based on logical lines)\r\n let currentPos = 0;\r\n let cursorLine = 0;\r\n let cursorCol = 0;\r\n\r\n for (let i = 0; i < lines.length; i++) {\r\n if (currentPos + lines[i].length >= cursorOffset) {\r\n cursorLine = i;\r\n cursorCol = cursorOffset - currentPos;\r\n break;\r\n }\r\n currentPos += lines[i].length + 1; // +1 for newline\r\n }\r\n // Edge case: cursor at very end of content\r\n if (cursorOffset === value.length && lines.length > 0) {\r\n cursorLine = lines.length - 1;\r\n cursorCol = lines[lines.length - 1].length;\r\n }\r\n\r\n // For scrolling, calculate which VISUAL line the cursor is on\r\n let cursorVisualLine = 0;\r\n for (let i = 0; i < visualLines.length; i++) {\r\n if (cursorOffset >= visualLines[i].start && cursorOffset <= visualLines[i].end) {\r\n cursorVisualLine = i;\r\n break;\r\n }\r\n }\r\n // Handle cursor at very end\r\n if (cursorOffset === value.length && visualLines.length > 0) {\r\n cursorVisualLine = visualLines.length - 1;\r\n }\r\n\r\n // Calculate visible range using VISUAL lines count for proper scrolling\r\n const totalVisualLines = visualLines.length;\r\n let startLine = 0;\r\n if (totalVisualLines > MAX_VISIBLE_LINES) {\r\n // Use visual line position for scrolling calculation\r\n if (cursorVisualLine < MAX_VISIBLE_LINES) {\r\n startLine = 0;\r\n } else {\r\n startLine = cursorVisualLine - MAX_VISIBLE_LINES + 1;\r\n }\r\n }\r\n const endLine = Math.min(startLine + MAX_VISIBLE_LINES, totalVisualLines);\r\n\r\n // Get the text content for each visual line\r\n const visibleVisualLines = visualLines.slice(startLine, endLine);\r\n\r\n return (\r\n <Box flexDirection=\"column\" flexGrow={1}>\r\n {startLine > 0 && <Text color=\"gray\">↑ ...</Text>}\r\n {visibleVisualLines.map((vLine, idx) => {\r\n const actualVisualLineIndex = startLine + idx;\r\n\r\n // Extract the text content for this visual line\r\n const lineText = value.slice(vLine.start, vLine.end);\r\n const lineStartPos = vLine.start;\r\n\r\n // Determine if cursor is on this visual line\r\n const isCursorLine = cursorOffset >= vLine.start && cursorOffset <= vLine.end;\r\n const cursorCol = isCursorLine ? cursorOffset - vLine.start : -1;\r\n\r\n // Is this the last visual line?\r\n const isLastLine = actualVisualLineIndex === totalVisualLines - 1;\r\n\r\n if (!isActive) {\r\n if (lineText.length === 0) {\r\n return <Text key={idx}> </Text>;\r\n }\r\n return <Text key={idx}>{lineText}</Text>;\r\n }\r\n\r\n // Render with selection and cursor\r\n const chars = lineText.split('');\r\n const renderedChars = chars.map((char, charIdx) => {\r\n const absPos = lineStartPos + charIdx;\r\n const isSelected = selection &&\r\n absPos >= Math.min(selection.start, selection.end) &&\r\n absPos < Math.max(selection.start, selection.end);\r\n\r\n // Check if this character is part of an active file tag (being typed after @)\r\n let activeFileTagEnd = activeFileTagStart !== null ? activeFileTagStart : 0;\r\n if (activeFileTagStart !== null) {\r\n for (let j = activeFileTagStart; j < value.length && j < cursorOffset; j++) {\r\n if (/[\\s\\n]/.test(value[j])) {\r\n break;\r\n }\r\n activeFileTagEnd = j + 1;\r\n }\r\n }\r\n const isInActiveFileTag = activeFileTagStart !== null &&\r\n absPos >= activeFileTagStart &&\r\n absPos < activeFileTagEnd;\r\n\r\n // Check if this character is part of a confirmed file tag\r\n let isInConfirmedFileTag = false;\r\n if (!commandMode) {\r\n const fileTagRegex = /(?:^|[\\s\\n])(@[^\\s@]+)/g;\r\n let match;\r\n while ((match = fileTagRegex.exec(value)) !== null) {\r\n const fullMatch = match[0];\r\n const tagContent = match[1];\r\n const tagStart = match.index + (fullMatch.length - tagContent.length);\r\n const tagEnd = tagStart + tagContent.length;\r\n if (activeFileTagStart !== null && tagStart === activeFileTagStart) {\r\n continue;\r\n }\r\n if (absPos >= tagStart && absPos < tagEnd) {\r\n isInConfirmedFileTag = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n const isCursor = isCursorLine && charIdx === cursorCol;\r\n\r\n if (isCursor) {\r\n return <Text key={charIdx} inverse color={isSelected ? \"yellow\" : undefined}>{char}</Text>;\r\n }\r\n if (isSelected) {\r\n return <Text key={charIdx} backgroundColor=\"white\" color=\"black\">{char}</Text>;\r\n }\r\n // Highlight file tags with cyan color\r\n if (isInConfirmedFileTag || isInActiveFileTag) {\r\n return <Text key={charIdx} color=\"#00ccff\" bold>{char}</Text>;\r\n }\r\n\r\n return <Text key={charIdx}>{char}</Text>;\r\n });\r\n\r\n // Handle cursor at end of line\r\n if (isCursorLine && cursorCol === lineText.length) {\r\n renderedChars.push(<Text key=\"cursor\" inverse> </Text>);\r\n }\r\n\r\n // Render Autocomplete Ghost Text\r\n // Only on the last line, if suggestion exists and matches start\r\n // AI suggestion takes priority over passive suggestion\r\n const effectiveSuggestion = aiAutocompleteSuggestion || autocompleteSuggestion;\r\n if (isLastLine && effectiveSuggestion && effectiveSuggestion.startsWith(value)) {\r\n const suffix = effectiveSuggestion.slice(value.length);\r\n if (suffix) {\r\n // Use slightly different color for AI suggestion to differentiate\r\n const ghostColor = aiAutocompleteSuggestion ? '#888888' : 'gray';\r\n renderedChars.push(<Text key=\"ghost\" color={ghostColor}>{suffix}</Text>);\r\n }\r\n }\r\n\r\n if (renderedChars.length === 0) {\r\n return <Text key={idx}> </Text>;\r\n }\r\n\r\n return <Text key={idx}>{renderedChars}</Text>;\r\n })}\r\n {endLine < totalVisualLines && <Text color=\"gray\">↓ ...</Text>}\r\n </Box>\r\n );\r\n };\r\n\r\n return (\r\n <Box\r\n flexDirection=\"column\"\r\n borderStyle=\"round\"\r\n borderColor={\r\n rejectFlash ? \"#ff3366\" :\r\n sessionQuotaExhausted ? \"#ff3366\" : // Red when quota exhausted\r\n backgroundMode ? \"#9966ff\" :\r\n commandMode ? \"#00cc66\" :\r\n \"#257aa5ff\"\r\n }\r\n paddingX={1}\r\n paddingY={0}\r\n width=\"100%\"\r\n >\r\n <Box marginY={1} justifyContent=\"space-between\" width=\"100%\">\r\n <Box flexShrink={1} minWidth={0} flexDirection=\"row\">\r\n {subshellContext && subshellContext.type !== 'local' && (\r\n <Breadcrumbs context={subshellContext} stack={subshellContextStack} />\r\n )}\r\n <Text color=\"#666666\">CWD: </Text>\r\n <Text color=\"#00ccff\" bold wrap=\"truncate-start\">{currentDir}</Text>\r\n {gitDiffStats && (gitDiffStats.additions > 0 || gitDiffStats.deletions > 0) && (\r\n <GitDiffBreadcrumb\r\n additions={gitDiffStats.additions}\r\n deletions={gitDiffStats.deletions}\r\n />\r\n )}\r\n </Box>\r\n <Box flexShrink={0}>\r\n\r\n {model && !commandMode && !backgroundMode && (\r\n <Box marginRight={1}>\r\n <Text color=\"#666666\">Model: </Text>\r\n <Text color=\"#00ccff\">{model}</Text>\r\n </Box>\r\n )}\r\n <Box>\r\n {showModeIndicator && (\r\n <>\r\n <Text color=\"#666666\">Mode: </Text>\r\n {isAutoMode ? (\r\n <Text>\r\n <Text color=\"#00ccff\" bold>Auto [</Text>\r\n {detectedIntent === 'command' ? (\r\n <Text color=\"#00cc66\" bold>Terminal</Text>\r\n ) : (\r\n <Text color=\"#00ccff\">Agent</Text>\r\n )}\r\n <Text color=\"#00ccff\" bold>]</Text>\r\n </Text>\r\n ) : backgroundMode ? (\r\n <Text color=\"#9966ff\" bold>Background</Text>\r\n ) : commandMode ? (\r\n <Text color=\"#00cc66\" bold>Terminal</Text>\r\n ) : planMode ? (\r\n <Text color=\"#ffaa00\" bold>Plan</Text>\r\n ) : (\r\n <Text color=\"#00ccff\">Agent</Text>\r\n )}\r\n </>\r\n )}\r\n </Box>\r\n </Box>\r\n </Box>\r\n\r\n {/* File Breadcrumbs - Show attached files from Alt+V */}\r\n {confirmedClipboardFiles.length > 0 && (\r\n <Box marginBottom={1} flexDirection=\"row\" flexWrap=\"wrap\" gap={1}>\r\n {confirmedClipboardFiles.map((file, index) => (\r\n <Box\r\n key={file.id}\r\n borderStyle=\"round\"\r\n borderColor=\"#ff69b4\"\r\n paddingX={1}\r\n >\r\n <Text color=\"#ff69b4\" bold>file_{index + 1}</Text>\r\n </Box>\r\n ))}\r\n </Box>\r\n )}\r\n\r\n\r\n {/* Session Quota Exhausted Message */}\r\n {showQuotaMessage && (\r\n <Box justifyContent=\"flex-end\" marginBottom={1}>\r\n <Text color=\"#ff3366\" bold>\r\n Session quota reached. Try again in {sessionQuotaTimeRemaining}\r\n </Text>\r\n </Box>\r\n )}\r\n\r\n\r\n <Box flexDirection=\"row\" width=\"100%\">\r\n <Text color=\"#666666\">> </Text>\r\n {renderInput()}\r\n </Box>\r\n\r\n <Box marginY={1} justifyContent=\"space-between\" width=\"100%\">\r\n <Text color=\"#666666\" dimColor>\r\n {isAutoMode ? (\r\n showBottomHints ? 'Ctrl+D to switch modes • Ctrl+T to auto-approve' : 'Ctrl+D to switch modes'\r\n ) : backgroundMode ? (\r\n 'Ctrl+D to switch modes • Commands run in background'\r\n ) : commandMode ? (\r\n 'Ctrl+D to switch modes • Tab for autocomplete'\r\n ) : (\r\n showBottomHints ? 'Ctrl+D to switch modes • Ctrl+T to auto-approve' : 'Ctrl+D to switch modes'\r\n )}\r\n </Text>\r\n <Box gap={1}>\r\n {subAgentCount > 0 && (\r\n <Text color=\"#00ccff\" bold>[sub-agent: {subAgentCount}]</Text>\r\n )}\r\n {backgroundTaskCount > 0 && (\r\n <Text color=\"#9966ff\" bold>[bkg tasks: {backgroundTaskCount}]</Text>\r\n )}\r\n {!commandMode && !backgroundMode && planMode && (\r\n <Text color=\"#ffaa00\" bold>[PLANNING]</Text>\r\n )}\r\n {!commandMode && !backgroundMode && autoAcceptMode ? (\r\n <Text color=\"#00cc66\" bold>[AUTO-ACCEPT: ON]</Text>\r\n ) : !commandMode && !backgroundMode ? (\r\n <Text color=\"#666666\" dimColor>[AUTO-ACCEPT: OFF]</Text>\r\n ) : null}\r\n {!commandMode && !backgroundMode && (\r\n <Box marginLeft={1}>\r\n <ContextWindowIndicator\r\n currentTokens={currentTokens}\r\n maxTokens={maxTokens}\r\n />\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n\r\n {/* Slash Command Autocomplete Dropdown */}\r\n {\r\n slashAutocompleteVisible && slashMaxVisibleItems > 0 && (\r\n <SlashCommandAutocomplete\r\n commands={slashAutocompleteCommands}\r\n selectedIndex={slashAutocompleteSelectedIndex}\r\n maxVisibleItems={slashMaxVisibleItems}\r\n scrollOffset={slashAutocompleteScrollOffset}\r\n />\r\n )\r\n }\r\n\r\n {/* File Tag (@) Autocomplete Dropdown */}\r\n {\r\n fileTagAutocompleteVisible && (\r\n <FileTagAutocomplete\r\n files={fileTagSuggestions}\r\n selectedIndex={fileTagSelectedIndex}\r\n />\r\n )\r\n }\r\n\r\n\r\n </Box>\r\n );\r\n});\r\n"],"mappings":"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","names":["newValue","newCursorPos","cursorCol"]}
|