centaurus-cli 3.0.1 → 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 -5158
- 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 +1526 -1512
- 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 +601 -572
- 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 -406
- 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 -3263
- 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 -514
- 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 -204
- 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":"file-ops.js","sourceRoot":"","sources":["../../src/tools/file-ops.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/tools/file-ops.ts"],"sourcesContent":["import * as path from 'path';\r\nimport * as fs from 'fs';\r\nimport { Tool } from './types.js';\r\nimport * as fileUtils from '../utils/file.js';\r\nimport * as Diff from 'diff';\r\nimport { ContextManager } from '../context/context-manager.js';\r\nimport { ToolValidator } from './validation.js';\r\nimport { checkSyntax, formatSyntaxCheckResult } from '../utils/syntax-checker.js';\r\nimport { logWarning } from '../utils/logger.js';\r\nimport type { RemoteFileHandler } from '../services/checkpoint-manager.js';\r\n\r\n/**\r\n * Helper: back up a file before the AI modifies it (for checkpoint revert).\r\n * Non-critical — if backup fails, the file operation proceeds anyway.\r\n */\r\nasync function backupBeforeChange(\r\n context: { checkpointManager?: any; currentCheckpointId?: string; cwd: string; contextManager?: any },\r\n absoluteFilePath: string\r\n): Promise<void> {\r\n if (!context.checkpointManager || !context.currentCheckpointId) return;\r\n try {\r\n // Determine remote handler if in remote context\r\n let remoteHandler: RemoteFileHandler | undefined;\r\n if (context.contextManager) {\r\n const currentCtx = (context.contextManager as ContextManager).getCurrentContext();\r\n if (currentCtx.type !== 'local' && currentCtx.handler) {\r\n const h = currentCtx.handler;\r\n if (typeof h.readFile === 'function' && typeof h.writeFile === 'function' &&\r\n typeof h.executeCommand === 'function' && typeof h.isConnected === 'function') {\r\n remoteHandler = h as RemoteFileHandler;\r\n }\r\n }\r\n }\r\n await context.checkpointManager.backupFileBeforeChange(\r\n context.currentCheckpointId,\r\n absoluteFilePath,\r\n context.cwd,\r\n remoteHandler\r\n );\r\n } catch (err) {\r\n logWarning(`Checkpoint backup before change failed (non-critical): ${(err as Error).message}`);\r\n }\r\n}\r\n\r\nexport const viewFileTool: Tool = {\r\n schema: {\r\n name: 'view_file',\r\n description: `View the contents of a file from the local filesystem. This tool supports some binary files such as images and videos.\r\nText file usage:\r\n- The lines of the file are 1-indexed\r\n- If you do not provide StartLine/EndLine, the tool will read the ENTIRE file.\r\n - WARNING: If the file is >500 lines, output will be TRUNCATED to the first 500 lines.\r\n - You will be told the total line count and must use targeted reads (StartLine/EndLine) for the rest.\r\n- PREFER TARGETED READS: Use 'grep_search' to find line numbers, then read specific ranges.\r\n- You can view at most 500 lines at a time to prevent context explosion.\r\nBinary file usage:\r\n- Do not provide StartLine or EndLine arguments, this tool always returns the entire file\r\n- The output includes line numbers (e.g., \"1: code\") for reference. DO NOT include these line numbers in your search_pattern when editing.`,\r\n parameters: {\r\n type: 'object',\r\n properties: {\r\n reason_text: {\r\n type: 'string',\r\n description: 'REQUIRED: A brief explanation of why you are reading this file and what you are looking for. This will be shown to the user. Example: \"Reading package.json to check the current version number\"',\r\n },\r\n AbsolutePath: {\r\n type: 'string',\r\n description: 'Path to file to view. Must be an absolute path.',\r\n },\r\n StartLine: {\r\n type: 'integer',\r\n description: 'Optional. Startline to view, 1-indexed as usual, inclusive. This value must be less than or equal to EndLine.',\r\n },\r\n EndLine: {\r\n type: 'integer',\r\n description: 'Optional. Endline to view, 1-indexed as usual, inclusive. This value must be greater than or equal to StartLine.',\r\n },\r\n },\r\n required: ['reason_text', 'AbsolutePath'],\r\n },\r\n },\r\n async execute(args, context) {\r\n const { AbsolutePath, StartLine, EndLine } = args;\r\n const file_path = AbsolutePath; // Map to internal variable\r\n const contextManager = context.contextManager as ContextManager;\r\n const currentContext = contextManager.getCurrentContext();\r\n\r\n // Use Context Manager for file operations\r\n let content: string;\r\n let fullPath: string | undefined;\r\n\r\n if (currentContext.type === 'local') {\r\n // Since AbsolutePath is required to be absolute, we might need to handle relative paths gracefully or enforce absolute\r\n // The tool description says \"Must be an absolute path\", but for usability we can resolve it\r\n fullPath = path.isAbsolute(file_path) ? file_path : path.resolve(context.cwd, file_path);\r\n\r\n if (!fs.existsSync(fullPath)) {\r\n throw new Error(`File not found: ${file_path}\\n\\nAction: Verify the file path using 'list_directory'.`);\r\n }\r\n\r\n // If user specifically requested lines, respect that lookup\r\n // Otherwise read whole file first to check length\r\n if (StartLine !== undefined || EndLine !== undefined) {\r\n content = fileUtils.readFile(fullPath, StartLine, EndLine);\r\n } else {\r\n // Read full file to check length\r\n content = fs.readFileSync(fullPath, 'utf-8');\r\n }\r\n\r\n } else {\r\n // Read from subshell\r\n content = await contextManager.readFile(file_path);\r\n\r\n // Apply line range if logic requires it (for explicit range requests)\r\n if (StartLine !== undefined || EndLine !== undefined) {\r\n const lines = content.split('\\n');\r\n const start = StartLine ? StartLine - 1 : 0;\r\n const end = EndLine ? EndLine : lines.length;\r\n content = lines.slice(start, end).join('\\n');\r\n }\r\n }\r\n\r\n // Process content (add line numbers, handle truncation)\r\n const lines = content.split('\\n');\r\n let displayedLines = lines;\r\n let truncationMsg = '';\r\n const startNum = StartLine || 1;\r\n\r\n // TRUNCATION LOGIC:\r\n // Only apply if NO range was specified (viewing \"whole\" file) AND file is too long\r\n if (StartLine === undefined && EndLine === undefined && lines.length > 500) {\r\n displayedLines = lines.slice(0, 500);\r\n truncationMsg = `\\n\\n... [File truncated. Total lines: ${lines.length}. Showing first 500 lines only.]\\n[Action: Use StartLine/EndLine parameters to view specific sections of the rest of the file.]`;\r\n }\r\n\r\n const numberedContent = displayedLines.map((line, idx) => `${startNum + idx}: ${line}`).join('\\n');\r\n\r\n return `File: ${file_path}\\nLines: ${StartLine === undefined && EndLine === undefined ? lines.length : displayedLines.length} ${truncationMsg ? '(Truncated)' : ''}\\n\\n${numberedContent}${truncationMsg}`;\r\n },\r\n};\r\n\r\nexport const writeToFileTool: Tool = {\r\n schema: {\r\n name: 'write_to_file',\r\n description: `Use this tool to create new files. The file and any parent directories will be created for you if they do not already exist.\r\nFollow these instructions:\r\n1. By default this tool will error if TargetFile already exists. To overwrite an existing file, set Overwrite to true.\r\n2. You MUST specify TargetFile as the FIRST argument. Please specify the full TargetFile before any of the code contents.\r\nIMPORTANT: You must generate the following arguments first, before any others: [TargetFile, Overwrite]`,\r\n parameters: {\r\n type: 'object',\r\n properties: {\r\n reason_text: {\r\n type: 'string',\r\n description: 'REQUIRED: A brief explanation of why you are creating/writing this file. This will be shown to the user. Example: \"Creating a new configuration file for the database connection\"',\r\n },\r\n TargetFile: {\r\n type: 'string',\r\n description: 'The target file to create and write code to.',\r\n },\r\n CodeContent: {\r\n type: 'string',\r\n description: 'The code contents to write to the file.',\r\n },\r\n Overwrite: {\r\n type: 'boolean',\r\n description: 'Set this to true to overwrite an existing file. WARNING: This will replace the entire file contents. Only use when you explicitly intend to overwrite. Otherwise, use a code edit tool to modify existing files.',\r\n },\r\n EmptyFile: {\r\n type: 'boolean',\r\n description: 'Set this to true to create an empty file.',\r\n },\r\n Description: {\r\n type: 'string',\r\n description: 'Brief, user-facing explanation of what this change did. Focus on non-obvious rationale, design decisions, or important context. Don\\'t just restate what the code does.',\r\n },\r\n Complexity: {\r\n type: 'integer',\r\n description: 'A 1-10 rating of how important it is for the user to review this change. Rate based on: 1-3 (routine/obvious), 4-6 (worth noting), 7-10 (critical or subtle and warrants explanation).',\r\n },\r\n },\r\n required: ['reason_text', 'TargetFile', 'Overwrite', 'CodeContent', 'EmptyFile', 'Description', 'Complexity'],\r\n },\r\n },\r\n async execute(args, context) {\r\n const { TargetFile, CodeContent, Overwrite, EmptyFile } = args;\r\n const file_path = TargetFile; // Map to internal variable\r\n const content = EmptyFile ? '' : CodeContent;\r\n\r\n const contextManager = context.contextManager as ContextManager;\r\n const currentContext = contextManager.getCurrentContext();\r\n\r\n if (currentContext.type === 'local') {\r\n const fullPath = path.resolve(context.cwd, file_path);\r\n\r\n // Ask for approval if file exists\r\n if (fs.existsSync(fullPath)) {\r\n if (!Overwrite) {\r\n throw new Error(`File ${file_path} already exists. Set Overwrite to true if you intend to replace it.`);\r\n }\r\n\r\n // Show preview of new content for overwrite\r\n const language = file_path.split('.').pop() || 'text';\r\n const result = await context.requireApproval(\r\n `File ${fullPath} already exists. Overwrite it?`,\r\n true,\r\n {\r\n type: 'code',\r\n content,\r\n language\r\n },\r\n 'write_to_file',\r\n { file_path: fullPath, operation: 'overwrite' }\r\n );\r\n\r\n if (typeof result === 'object' && 'feedback' in result) {\r\n // User provided feedback - throw special error with feedback\r\n throw new Error(`USER_FEEDBACK: ${result.feedback}`);\r\n }\r\n\r\n if (!result) {\r\n throw new Error('Operation cancelled by user.');\r\n }\r\n } else {\r\n // Ask for approval to create new file with code preview\r\n const language = file_path.split('.').pop() || 'text';\r\n\r\n const result = await context.requireApproval(\r\n `Create new file ${fullPath}?`,\r\n false,\r\n {\r\n type: 'code',\r\n content: content,\r\n language\r\n },\r\n 'write_to_file',\r\n { file_path: fullPath, operation: 'create' }\r\n );\r\n\r\n if (typeof result === 'object' && 'feedback' in result) {\r\n // User provided feedback - throw special error with feedback\r\n throw new Error(`USER_FEEDBACK: ${result.feedback}`);\r\n }\r\n\r\n if (!result) {\r\n throw new Error('Operation cancelled by user.');\r\n }\r\n }\r\n\r\n // Backup file before modification (for checkpoint revert)\r\n await backupBeforeChange(context, fullPath);\r\n\r\n fileUtils.writeFile(fullPath, content);\r\n\r\n // Run syntax check on the written file\r\n const syntaxResult = await checkSyntax(fullPath, content);\r\n const syntaxFeedback = formatSyntaxCheckResult(syntaxResult);\r\n\r\n return `Successfully wrote ${content.length} characters to ${file_path}\\n${syntaxFeedback}`;\r\n } else {\r\n // Write to subshell - always ask for approval\r\n const language = file_path.split('.').pop() || 'text';\r\n const result = await context.requireApproval(\r\n `Write file ${file_path} in ${currentContext.type} environment?`,\r\n true,\r\n {\r\n type: 'code',\r\n content,\r\n language\r\n },\r\n 'write_to_file',\r\n { file_path, operation: 'write_remote' }\r\n );\r\n\r\n if (typeof result === 'object' && 'feedback' in result) {\r\n throw new Error(`USER_FEEDBACK: ${result.feedback}`);\r\n }\r\n\r\n if (!result) {\r\n throw new Error('Operation cancelled by user.');\r\n }\r\n\r\n // Backup remote file before modification (for checkpoint revert)\r\n await backupBeforeChange(context, file_path);\r\n\r\n await contextManager.writeFile(file_path, content);\r\n\r\n // Note: Syntax check skipped for remote files (would need to read back)\r\n return `Successfully wrote ${content.length} characters to ${file_path} in ${currentContext.type} environment\\n(Syntax check skipped for remote files)`;\r\n }\r\n },\r\n};\r\n\r\nexport const editFileTool: Tool = {\r\n schema: {\r\n name: 'edit_file',\r\n description: `Search for a specific pattern in a file and replace it with new content. Shows a diff preview before applying.\r\n\r\nIMPORTANT: You MUST provide a reason_text parameter explaining what change you are making and why. This will be shown to the user before the edit is applied.\r\n\r\nCRITICAL REQUIREMENTS:\r\n- 'search_pattern' must match the file content's meaningful tokens exactly.\r\n- Leading and trailing whitespace/indentation around the pattern will be ignored for the match.\r\n- You must still provide the full code block, but do not worry about exact indentation.\r\n- The pattern must be UNIQUE in the file (appear exactly once).\r\n- You MUST have read the file in a previous turn to know the exact content.\r\n- Include surrounding context (2-3 lines) to ensure uniqueness.\r\n\r\nCOMMON MISTAKES TO AVOID:\r\n- Using patterns that appear multiple times\r\n- Not including enough context for uniqueness\r\n- Modifying the internal tokens of the code (variable names, strings, etc.)\r\n- Including the line numbers (e.g., \"1: \") in the search_pattern. Copy ONLY the code.`,\r\n parameters: {\r\n type: 'object',\r\n properties: {\r\n reason_text: {\r\n type: 'string',\r\n description: 'REQUIRED: A brief explanation of what change you are making and why. This will be shown to the user. Example: \"Updating the port number from 3000 to 8080 to match the production configuration\"',\r\n },\r\n file_path: {\r\n type: 'string',\r\n description: 'The path to the file to edit (relative to current working directory)',\r\n },\r\n search_pattern: {\r\n type: 'string',\r\n description: `The EXACT block of text to replace. Must match character-for-character (ignoring whitespace differences).\r\nCopy this directly from a recent view_file output.`,\r\n },\r\n replacement: {\r\n type: 'string',\r\n description: 'The new text to insert in place of search_pattern. Use the same indentation style as the surrounding code.',\r\n },\r\n },\r\n required: ['reason_text', 'file_path', 'search_pattern', 'replacement'],\r\n },\r\n },\r\n async execute(args, context) {\r\n const { file_path, search_pattern, replacement } = args;\r\n const contextManager = context.contextManager as ContextManager;\r\n const currentContext = contextManager.getCurrentContext();\r\n\r\n // Validate edit operation for local files\r\n if (currentContext.type === 'local') {\r\n const validator = new ToolValidator();\r\n const validationResult = await validator.validateEditFile(\r\n file_path,\r\n search_pattern,\r\n replacement,\r\n context.cwd\r\n );\r\n\r\n if (!validationResult.valid) {\r\n const errorMessage = [\r\n validationResult.error,\r\n validationResult.suggestion ? `\\nSuggestion: ${validationResult.suggestion}` : '',\r\n ].join('');\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n\r\n // Read the current content\r\n let oldContent: string;\r\n // Compute the full path for local files\r\n const fullPath = currentContext.type === 'local' ? path.resolve(context.cwd, file_path) : file_path;\r\n\r\n if (currentContext.type === 'local') {\r\n if (!fs.existsSync(fullPath)) {\r\n throw new Error(`File not found: ${file_path}\\n\\nAction: Verify the file path using 'list_directory'.`);\r\n }\r\n\r\n oldContent = fs.readFileSync(fullPath, 'utf-8');\r\n } else {\r\n oldContent = await contextManager.readFile(file_path);\r\n }\r\n\r\n // Create flexible regex for matching and replacement\r\n const { createFlexibleRegex } = await import('./validation.js');\r\n const regex = createFlexibleRegex(search_pattern);\r\n\r\n // SAFETY CHECK: Ensure we don't accidentally match 0 times or >1 times \r\n // (In case file changed between validation and execution)\r\n const matches = oldContent.match(regex);\r\n if (!matches || matches.length === 0) {\r\n throw new Error(`Pattern not found in file (even with flexible whitespace).`);\r\n }\r\n if (matches.length > 1) {\r\n throw new Error(`Pattern matches ${matches.length} times. Search pattern must be unique.`);\r\n }\r\n\r\n // APPLY REPLACEMENT\r\n // We use the regex to replace. \r\n // Since we validated count === 1, the global 'g' flag is safe/necessary.\r\n const newContent = oldContent.replace(regex, replacement);\r\n\r\n // Build unified diff text for preview\r\n const patch = Diff.createTwoFilesPatch(\r\n file_path,\r\n file_path,\r\n oldContent,\r\n newContent,\r\n '',\r\n ''\r\n );\r\n\r\n // Generate full diff with infinite context for \"Full File\" view\r\n const fullDiff = Diff.createTwoFilesPatch(\r\n file_path,\r\n file_path,\r\n oldContent,\r\n newContent,\r\n '',\r\n '',\r\n { context: Number.MAX_SAFE_INTEGER } as any\r\n );\r\n\r\n // Ask for approval with diff preview\r\n const approved = await context.requireApproval(\r\n `Apply these changes to ${fullPath}${currentContext.type !== 'local' ? ` in ${currentContext.type} environment` : ''}?`,\r\n false,\r\n {\r\n type: 'diff',\r\n content: patch,\r\n fullDiff: fullDiff\r\n },\r\n 'edit_file',\r\n { file_path: fullPath }\r\n );\r\n\r\n if (!approved) {\r\n throw new Error('Operation cancelled by user.');\r\n }\r\n\r\n // Apply the changes\r\n if (currentContext.type === 'local') {\r\n // Backup file before modification (for checkpoint revert)\r\n await backupBeforeChange(context, fullPath);\r\n\r\n fs.writeFileSync(fullPath, newContent, 'utf-8');\r\n\r\n // Run syntax check on the edited file\r\n const syntaxResult = await checkSyntax(fullPath, newContent);\r\n const syntaxFeedback = formatSyntaxCheckResult(syntaxResult);\r\n\r\n return `Successfully replaced pattern in ${file_path}\\n${syntaxFeedback}`;\r\n } else {\r\n // Backup remote file before modification (for checkpoint revert)\r\n await backupBeforeChange(context, fullPath);\r\n\r\n await contextManager.writeFile(file_path, newContent);\r\n\r\n // Note: Syntax check skipped for remote files\r\n return `Successfully replaced pattern in ${file_path} (${currentContext.type} environment)\\n(Syntax check skipped for remote files)`;\r\n }\r\n },\r\n};\r\n\r\nexport const multiEditFileTool: Tool = {\r\n schema: {\r\n name: 'multi_edit_file',\r\n description: `Apply MULTIPLE search-and-replace edits to a SINGLE file in ONE tool call.\r\n \r\nUse this instead of calling edit_file multiple times on the same file. This is more efficient and ensures all edits are applied atomically.\r\n\r\nWHEN TO USE:\r\n- You need to make 2+ edits to the same file\r\n- You want to batch changes to avoid multiple tool calls\r\n- The edits are independent (don't overlap)\r\n\r\nCRITICAL REQUIREMENTS:\r\n- Each edit's 'search_pattern' must be UNIQUE in the file\r\n- Edits are applied in order - earlier edits can affect line positions\r\n- All patterns must exist in the file or the entire operation fails\r\n- You MUST have read the file first to know exact content`,\r\n parameters: {\r\n type: 'object',\r\n properties: {\r\n reason_text: {\r\n type: 'string',\r\n description: 'REQUIRED: A brief explanation of what changes you are making and why.',\r\n },\r\n file_path: {\r\n type: 'string',\r\n description: 'The path to the file to edit',\r\n },\r\n edits: {\r\n type: 'array',\r\n description: 'Array of edit operations to apply, in order',\r\n items: {\r\n type: 'object',\r\n properties: {\r\n search_pattern: {\r\n type: 'string',\r\n description: 'The EXACT block of text to replace. Must be unique in the file.',\r\n },\r\n replacement: {\r\n type: 'string',\r\n description: 'The new text to insert in place of search_pattern.',\r\n },\r\n description: {\r\n type: 'string',\r\n description: 'Brief description of this specific edit',\r\n },\r\n },\r\n required: ['search_pattern', 'replacement'],\r\n },\r\n },\r\n },\r\n required: ['reason_text', 'file_path', 'edits'],\r\n },\r\n },\r\n async execute(args, context) {\r\n const { file_path, edits } = args;\r\n const contextManager = context.contextManager as ContextManager;\r\n const currentContext = contextManager.getCurrentContext();\r\n\r\n if (!edits || !Array.isArray(edits) || edits.length === 0) {\r\n throw new Error('No edits provided. The edits array must contain at least one edit operation.');\r\n }\r\n\r\n // Read the current content\r\n let content: string;\r\n // Compute the full path for local files\r\n const fullPath = currentContext.type === 'local' ? path.resolve(context.cwd, file_path) : file_path;\r\n\r\n if (currentContext.type === 'local') {\r\n if (!fs.existsSync(fullPath)) {\r\n throw new Error(`File not found: ${file_path}`);\r\n }\r\n content = fs.readFileSync(fullPath, 'utf-8');\r\n } else {\r\n content = await contextManager.readFile(file_path);\r\n }\r\n\r\n const originalContent = content;\r\n const { createFlexibleRegex } = await import('./validation.js');\r\n const appliedEdits: string[] = [];\r\n const errors: string[] = [];\r\n\r\n // Validate all patterns exist before applying any\r\n for (let i = 0; i < edits.length; i++) {\r\n const edit = edits[i];\r\n const regex = createFlexibleRegex(edit.search_pattern);\r\n const matches = content.match(regex);\r\n\r\n if (!matches || matches.length === 0) {\r\n errors.push(`Edit ${i + 1}: Pattern not found in file`);\r\n } else if (matches.length > 1) {\r\n errors.push(`Edit ${i + 1}: Pattern matches ${matches.length} times (must be unique)`);\r\n }\r\n }\r\n\r\n if (errors.length > 0) {\r\n throw new Error(`Validation failed:\\n${errors.join('\\n')}\\n\\nNo changes were made.`);\r\n }\r\n\r\n // Apply edits in order\r\n for (let i = 0; i < edits.length; i++) {\r\n const edit = edits[i];\r\n const regex = createFlexibleRegex(edit.search_pattern);\r\n\r\n // Re-check match after previous edits\r\n const matches = content.match(regex);\r\n if (!matches || matches.length === 0) {\r\n errors.push(`Edit ${i + 1}: Pattern no longer found after previous edits`);\r\n continue;\r\n }\r\n\r\n content = content.replace(regex, edit.replacement);\r\n appliedEdits.push(edit.description || `Edit ${i + 1}`);\r\n }\r\n\r\n // Generate combined diff\r\n const patch = Diff.createTwoFilesPatch(\r\n file_path,\r\n file_path,\r\n originalContent,\r\n content,\r\n '',\r\n ''\r\n );\r\n\r\n const fullDiff = Diff.createTwoFilesPatch(\r\n file_path,\r\n file_path,\r\n originalContent,\r\n content,\r\n '',\r\n '',\r\n { context: Number.MAX_SAFE_INTEGER } as any\r\n );\r\n\r\n // Ask for approval\r\n const approved = await context.requireApproval(\r\n `Apply ${edits.length} edits to ${fullPath}?`,\r\n false,\r\n {\r\n type: 'diff',\r\n content: patch,\r\n fullDiff: fullDiff\r\n },\r\n 'multi_edit_file',\r\n { file_path: fullPath, editCount: edits.length }\r\n );\r\n\r\n if (!approved) {\r\n throw new Error('Operation cancelled by user.');\r\n }\r\n\r\n // Write changes\r\n if (currentContext.type === 'local') {\r\n // Backup file before modification (for checkpoint revert)\r\n await backupBeforeChange(context, fullPath);\r\n\r\n fs.writeFileSync(fullPath, content, 'utf-8');\r\n\r\n const syntaxResult = await checkSyntax(fullPath, content);\r\n const syntaxFeedback = formatSyntaxCheckResult(syntaxResult);\r\n\r\n return `Successfully applied ${appliedEdits.length} edits to ${file_path}:\\n${appliedEdits.map((e, i) => ` ${i + 1}. ${e}`).join('\\n')}\\n${syntaxFeedback}`;\r\n } else {\r\n // Backup remote file before modification (for checkpoint revert)\r\n await backupBeforeChange(context, fullPath);\r\n\r\n await contextManager.writeFile(file_path, content);\r\n return `Successfully applied ${appliedEdits.length} edits to ${file_path} (${currentContext.type} environment)`;\r\n }\r\n },\r\n};\r\n\r\nexport const listDirTool: Tool = {\r\n schema: {\r\n name: 'list_dir',\r\n description: `List the contents of a directory with statistics and smart limiting.\r\n\r\nFor each directory child, output includes:\r\n- Directories: name and item count (sorted by size, largest first)\r\n- Files: name and size in KB (limited to 100 by default)\r\n\r\nSMART LIMITING:\r\n- Shows all directories (up to 50) - navigation is critical\r\n- Limits files to 100 - prevents context explosion\r\n- Always shows complete statistics (total dirs, files, items)\r\n- Highlights large directories (>100 items) for awareness\r\n\r\nIMPORTANT: You MUST provide a reason_text parameter explaining why you are listing this directory.`,\r\n parameters: {\r\n type: 'object',\r\n properties: {\r\n reason_text: {\r\n type: 'string',\r\n description: 'REQUIRED: A brief explanation of why you are listing this directory.',\r\n },\r\n DirectoryPath: {\r\n type: 'string',\r\n description: 'Path to list contents of, should be absolute path to a directory',\r\n },\r\n fileLimit: {\r\n type: 'integer',\r\n description: 'Optional: Maximum number of files to show (default: 100)',\r\n },\r\n showHidden: {\r\n type: 'boolean',\r\n description: 'Optional: Whether to show hidden files (dotfiles). Defaults to true.',\r\n },\r\n },\r\n required: ['reason_text', 'DirectoryPath'],\r\n },\r\n },\r\n async execute(args, context) {\r\n const { DirectoryPath, fileLimit = 100, showHidden = true } = args;\r\n const directory_path = DirectoryPath;\r\n const contextManager = context.contextManager as ContextManager;\r\n const currentContext = contextManager.getCurrentContext();\r\n\r\n if (currentContext.type === 'local') {\r\n const fullPath = path.isAbsolute(directory_path) ? directory_path : path.resolve(context.cwd, directory_path);\r\n\r\n if (!fs.existsSync(fullPath)) {\r\n throw new Error(`Directory not found: ${directory_path}\\n\\nAction: Check the path or use 'find_files' to locate the directory.`);\r\n }\r\n\r\n if (!fs.statSync(fullPath).isDirectory()) {\r\n throw new Error(`Path is not a directory: ${directory_path}\\n\\nAction: Verify the path points to a directory, not a file.`);\r\n }\r\n\r\n // Use enhanced listing\r\n const listing = fileUtils.listDirectoryEnhanced(fullPath, {\r\n fileLimit: fileLimit,\r\n dirLimit: 50,\r\n showHidden: showHidden,\r\n largeThreshold: 100\r\n });\r\n\r\n return fileUtils.formatDirectoryListing(directory_path, listing);\r\n } else {\r\n // For subshell contexts, use existing simple format\r\n // (enhanced format would require additional subshell handler changes)\r\n const entries = await contextManager.listDirectory(directory_path);\r\n\r\n const directories: string[] = [];\r\n const files: string[] = [];\r\n\r\n for (const entry of entries) {\r\n if (entry.type === 'directory') {\r\n directories.push(` ${entry.name}/`);\r\n } else {\r\n files.push(` ${entry.name}`);\r\n }\r\n }\r\n\r\n const lines: string[] = [\r\n `📁 Directory: ${directory_path} (${currentContext.type} environment)`,\r\n '═'.repeat(50),\r\n `Total: ${directories.length} directories, ${files.length} files, ${entries.length} items`,\r\n ''\r\n ];\r\n\r\n if (directories.length > 0) {\r\n lines.push('📂 Directories:');\r\n lines.push(...directories.slice(0, 50));\r\n if (directories.length > 50) {\r\n lines.push(` ... and ${directories.length - 50} more directories`);\r\n }\r\n lines.push('');\r\n }\r\n\r\n if (files.length > 0) {\r\n const fileLimit = 100;\r\n const shownFiles = files.slice(0, fileLimit);\r\n const hiddenCount = Math.max(0, files.length - fileLimit);\r\n\r\n lines.push(hiddenCount > 0\r\n ? `📄 Files (${shownFiles.length} of ${files.length} shown):`\r\n : '📄 Files:');\r\n lines.push(...shownFiles);\r\n if (hiddenCount > 0) {\r\n lines.push(` ... and ${hiddenCount} more files`);\r\n lines.push('');\r\n lines.push('💡 To see more: List subdirectories individually or use find_files to search');\r\n }\r\n }\r\n\r\n return lines.join('\\n');\r\n }\r\n },\r\n};\r\n\r\n"],"mappings":"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","names":["lines","fileLimit"]}
|