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,129 +1,126 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
constructor() { }
|
|
12
|
-
static getInstance() {
|
|
13
|
-
if (!ConversationManager.instance) {
|
|
14
|
-
ConversationManager.instance = new ConversationManager();
|
|
15
|
-
}
|
|
16
|
-
return ConversationManager.instance;
|
|
1
|
+
import { apiClient } from "./api-client.js";
|
|
2
|
+
class ConversationManager {
|
|
3
|
+
static instance;
|
|
4
|
+
currentConversationId = null;
|
|
5
|
+
conversationCache = /* @__PURE__ */ new Map();
|
|
6
|
+
constructor() {
|
|
7
|
+
}
|
|
8
|
+
static getInstance() {
|
|
9
|
+
if (!ConversationManager.instance) {
|
|
10
|
+
ConversationManager.instance = new ConversationManager();
|
|
17
11
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
12
|
+
return ConversationManager.instance;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Create a new conversation
|
|
16
|
+
*/
|
|
17
|
+
async createConversation(data) {
|
|
18
|
+
const conversation = await apiClient.createConversation(data);
|
|
19
|
+
this.currentConversationId = conversation.id;
|
|
20
|
+
this.conversationCache.set(conversation.id, conversation);
|
|
21
|
+
return conversation;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get the current conversation ID
|
|
25
|
+
*/
|
|
26
|
+
getCurrentConversationId() {
|
|
27
|
+
return this.currentConversationId;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Set the current conversation ID
|
|
31
|
+
*/
|
|
32
|
+
setCurrentConversationId(id) {
|
|
33
|
+
this.currentConversationId = id;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get a conversation by ID
|
|
37
|
+
*/
|
|
38
|
+
async getConversation(id) {
|
|
39
|
+
const cached = this.conversationCache.get(id);
|
|
40
|
+
if (cached) {
|
|
41
|
+
return cached;
|
|
26
42
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
43
|
+
const conversation = await apiClient.getConversation(id);
|
|
44
|
+
this.conversationCache.set(id, conversation);
|
|
45
|
+
return conversation;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get all conversations
|
|
49
|
+
*/
|
|
50
|
+
async getConversations(params) {
|
|
51
|
+
const response = await apiClient.getConversations(params);
|
|
52
|
+
if (response.data) {
|
|
53
|
+
response.data.forEach((conv) => {
|
|
54
|
+
this.conversationCache.set(conv.id, conv);
|
|
55
|
+
});
|
|
32
56
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
57
|
+
return response.data || [];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Update a conversation
|
|
61
|
+
*/
|
|
62
|
+
async updateConversation(id, data) {
|
|
63
|
+
const conversation = await apiClient.updateConversation(id, data);
|
|
64
|
+
this.conversationCache.set(id, conversation);
|
|
65
|
+
return conversation;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Delete (archive) a conversation
|
|
69
|
+
*/
|
|
70
|
+
async deleteConversation(id) {
|
|
71
|
+
await apiClient.deleteConversation(id);
|
|
72
|
+
this.conversationCache.delete(id);
|
|
73
|
+
if (this.currentConversationId === id) {
|
|
74
|
+
this.currentConversationId = null;
|
|
38
75
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return cached;
|
|
47
|
-
}
|
|
48
|
-
// Fetch from API
|
|
49
|
-
const conversation = await apiClient.getConversation(id);
|
|
50
|
-
this.conversationCache.set(id, conversation);
|
|
51
|
-
return conversation;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Add a message to the current conversation
|
|
79
|
+
*/
|
|
80
|
+
async addMessage(message) {
|
|
81
|
+
if (!this.currentConversationId) {
|
|
82
|
+
throw new Error("No active conversation. Create a conversation first.");
|
|
52
83
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
return response.data || [];
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Update a conversation
|
|
68
|
-
*/
|
|
69
|
-
async updateConversation(id, data) {
|
|
70
|
-
const conversation = await apiClient.updateConversation(id, data);
|
|
71
|
-
this.conversationCache.set(id, conversation);
|
|
72
|
-
return conversation;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Delete (archive) a conversation
|
|
76
|
-
*/
|
|
77
|
-
async deleteConversation(id) {
|
|
78
|
-
await apiClient.deleteConversation(id);
|
|
79
|
-
this.conversationCache.delete(id);
|
|
80
|
-
if (this.currentConversationId === id) {
|
|
81
|
-
this.currentConversationId = null;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Add a message to the current conversation
|
|
86
|
-
*/
|
|
87
|
-
async addMessage(message) {
|
|
88
|
-
if (!this.currentConversationId) {
|
|
89
|
-
throw new Error('No active conversation. Create a conversation first.');
|
|
90
|
-
}
|
|
91
|
-
return await apiClient.addMessage(this.currentConversationId, message);
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Get messages for a conversation
|
|
95
|
-
*/
|
|
96
|
-
async getMessages(conversationId, params) {
|
|
97
|
-
const id = conversationId || this.currentConversationId;
|
|
98
|
-
if (!id) {
|
|
99
|
-
throw new Error('No conversation ID provided');
|
|
100
|
-
}
|
|
101
|
-
const response = await apiClient.getMessages(id, params);
|
|
102
|
-
return response.data || [];
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Clear the conversation cache
|
|
106
|
-
*/
|
|
107
|
-
clearCache() {
|
|
108
|
-
this.conversationCache.clear();
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Start a new conversation session
|
|
112
|
-
* Creates a conversation with default settings
|
|
113
|
-
*/
|
|
114
|
-
async startNewConversation(title, model, provider, workingDirectory) {
|
|
115
|
-
const conversation = await this.createConversation({
|
|
116
|
-
title,
|
|
117
|
-
modelUsed: model,
|
|
118
|
-
provider,
|
|
119
|
-
workingDirectory: workingDirectory || process.cwd(),
|
|
120
|
-
tags: [],
|
|
121
|
-
metadata: {
|
|
122
|
-
startedAt: new Date().toISOString(),
|
|
123
|
-
},
|
|
124
|
-
});
|
|
125
|
-
return conversation;
|
|
84
|
+
return await apiClient.addMessage(this.currentConversationId, message);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get messages for a conversation
|
|
88
|
+
*/
|
|
89
|
+
async getMessages(conversationId, params) {
|
|
90
|
+
const id = conversationId || this.currentConversationId;
|
|
91
|
+
if (!id) {
|
|
92
|
+
throw new Error("No conversation ID provided");
|
|
126
93
|
}
|
|
94
|
+
const response = await apiClient.getMessages(id, params);
|
|
95
|
+
return response.data || [];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Clear the conversation cache
|
|
99
|
+
*/
|
|
100
|
+
clearCache() {
|
|
101
|
+
this.conversationCache.clear();
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Start a new conversation session
|
|
105
|
+
* Creates a conversation with default settings
|
|
106
|
+
*/
|
|
107
|
+
async startNewConversation(title, model, provider, workingDirectory) {
|
|
108
|
+
const conversation = await this.createConversation({
|
|
109
|
+
title,
|
|
110
|
+
modelUsed: model,
|
|
111
|
+
provider,
|
|
112
|
+
workingDirectory: workingDirectory || process.cwd(),
|
|
113
|
+
tags: [],
|
|
114
|
+
metadata: {
|
|
115
|
+
startedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
return conversation;
|
|
119
|
+
}
|
|
127
120
|
}
|
|
128
|
-
|
|
121
|
+
const conversationManager = ConversationManager.getInstance();
|
|
122
|
+
export {
|
|
123
|
+
ConversationManager,
|
|
124
|
+
conversationManager
|
|
125
|
+
};
|
|
129
126
|
//# sourceMappingURL=conversation-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/services/conversation-manager.ts"],"sourcesContent":["/**\r\n * Conversation Manager Service\r\n * \r\n * Handles conversation and message persistence through the backend API\r\n */\r\n\r\nimport { apiClient, Conversation, Message, CreateConversationRequest, CreateMessageRequest } from './api-client.js';\r\n\r\nexport class ConversationManager {\r\n private static instance: ConversationManager;\r\n private currentConversationId: string | null = null;\r\n private conversationCache: Map<string, Conversation> = new Map();\r\n\r\n private constructor() { }\r\n\r\n static getInstance(): ConversationManager {\r\n if (!ConversationManager.instance) {\r\n ConversationManager.instance = new ConversationManager();\r\n }\r\n return ConversationManager.instance;\r\n }\r\n\r\n /**\r\n * Create a new conversation\r\n */\r\n async createConversation(data: CreateConversationRequest): Promise<Conversation> {\r\n const conversation = await apiClient.createConversation(data);\r\n this.currentConversationId = conversation.id;\r\n this.conversationCache.set(conversation.id, conversation);\r\n return conversation;\r\n }\r\n\r\n /**\r\n * Get the current conversation ID\r\n */\r\n getCurrentConversationId(): string | null {\r\n return this.currentConversationId;\r\n }\r\n\r\n /**\r\n * Set the current conversation ID\r\n */\r\n setCurrentConversationId(id: string | null): void {\r\n this.currentConversationId = id;\r\n }\r\n\r\n /**\r\n * Get a conversation by ID\r\n */\r\n async getConversation(id: string): Promise<Conversation> {\r\n // Check cache first\r\n const cached = this.conversationCache.get(id);\r\n if (cached) {\r\n return cached;\r\n }\r\n\r\n // Fetch from API\r\n const conversation = await apiClient.getConversation(id);\r\n this.conversationCache.set(id, conversation);\r\n return conversation;\r\n }\r\n\r\n /**\r\n * Get all conversations\r\n */\r\n async getConversations(params?: {\r\n page?: number;\r\n limit?: number;\r\n includeArchived?: boolean;\r\n tags?: string[];\r\n }): Promise<Conversation[]> {\r\n const response = await apiClient.getConversations(params);\r\n\r\n // Update cache\r\n if (response.data) {\r\n response.data.forEach(conv => {\r\n this.conversationCache.set(conv.id, conv);\r\n });\r\n }\r\n\r\n return response.data || [];\r\n }\r\n\r\n /**\r\n * Update a conversation\r\n */\r\n async updateConversation(\r\n id: string,\r\n data: { title?: string; tags?: string[]; isPinned?: boolean; metadata?: Record<string, any> }\r\n ): Promise<Conversation> {\r\n const conversation = await apiClient.updateConversation(id, data);\r\n this.conversationCache.set(id, conversation);\r\n return conversation;\r\n }\r\n\r\n /**\r\n * Delete (archive) a conversation\r\n */\r\n async deleteConversation(id: string): Promise<void> {\r\n await apiClient.deleteConversation(id);\r\n this.conversationCache.delete(id);\r\n\r\n if (this.currentConversationId === id) {\r\n this.currentConversationId = null;\r\n }\r\n }\r\n\r\n /**\r\n * Add a message to the current conversation\r\n */\r\n async addMessage(message: CreateMessageRequest): Promise<Message> {\r\n if (!this.currentConversationId) {\r\n throw new Error('No active conversation. Create a conversation first.');\r\n }\r\n\r\n return await apiClient.addMessage(this.currentConversationId, message);\r\n }\r\n\r\n /**\r\n * Get messages for a conversation\r\n */\r\n async getMessages(\r\n conversationId?: string,\r\n params?: { page?: number; limit?: number }\r\n ): Promise<Message[]> {\r\n const id = conversationId || this.currentConversationId;\r\n\r\n if (!id) {\r\n throw new Error('No conversation ID provided');\r\n }\r\n\r\n const response = await apiClient.getMessages(id, params);\r\n return response.data || [];\r\n }\r\n\r\n /**\r\n * Clear the conversation cache\r\n */\r\n clearCache(): void {\r\n this.conversationCache.clear();\r\n }\r\n\r\n /**\r\n * Start a new conversation session\r\n * Creates a conversation with default settings\r\n */\r\n async startNewConversation(\r\n title: string,\r\n model: string,\r\n provider: string,\r\n workingDirectory?: string\r\n ): Promise<Conversation> {\r\n const conversation = await this.createConversation({\r\n title,\r\n modelUsed: model,\r\n provider,\r\n workingDirectory: workingDirectory || process.cwd(),\r\n tags: [],\r\n metadata: {\r\n startedAt: new Date().toISOString(),\r\n },\r\n });\r\n\r\n return conversation;\r\n }\r\n}\r\n\r\nexport const conversationManager = ConversationManager.getInstance();\r\n"],"mappings":"AAMA,SAAS,iBAAyF;AAE3F,MAAM,oBAAoB;AAAA,EAC/B,OAAe;AAAA,EACP,wBAAuC;AAAA,EACvC,oBAA+C,oBAAI,IAAI;AAAA,EAEvD,cAAc;AAAA,EAAE;AAAA,EAExB,OAAO,cAAmC;AACxC,QAAI,CAAC,oBAAoB,UAAU;AACjC,0BAAoB,WAAW,IAAI,oBAAoB;AAAA,IACzD;AACA,WAAO,oBAAoB;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,mBAAmB,MAAwD;AAC/E,UAAM,eAAe,MAAM,UAAU,mBAAmB,IAAI;AAC5D,SAAK,wBAAwB,aAAa;AAC1C,SAAK,kBAAkB,IAAI,aAAa,IAAI,YAAY;AACxD,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,2BAA0C;AACxC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,yBAAyB,IAAyB;AAChD,SAAK,wBAAwB;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,gBAAgB,IAAmC;AAEvD,UAAM,SAAS,KAAK,kBAAkB,IAAI,EAAE;AAC5C,QAAI,QAAQ;AACV,aAAO;AAAA,IACT;AAGA,UAAM,eAAe,MAAM,UAAU,gBAAgB,EAAE;AACvD,SAAK,kBAAkB,IAAI,IAAI,YAAY;AAC3C,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,iBAAiB,QAKK;AAC1B,UAAM,WAAW,MAAM,UAAU,iBAAiB,MAAM;AAGxD,QAAI,SAAS,MAAM;AACjB,eAAS,KAAK,QAAQ,UAAQ;AAC5B,aAAK,kBAAkB,IAAI,KAAK,IAAI,IAAI;AAAA,MAC1C,CAAC;AAAA,IACH;AAEA,WAAO,SAAS,QAAQ,CAAC;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,mBACJ,IACA,MACuB;AACvB,UAAM,eAAe,MAAM,UAAU,mBAAmB,IAAI,IAAI;AAChE,SAAK,kBAAkB,IAAI,IAAI,YAAY;AAC3C,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,mBAAmB,IAA2B;AAClD,UAAM,UAAU,mBAAmB,EAAE;AACrC,SAAK,kBAAkB,OAAO,EAAE;AAEhC,QAAI,KAAK,0BAA0B,IAAI;AACrC,WAAK,wBAAwB;AAAA,IAC/B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,WAAW,SAAiD;AAChE,QAAI,CAAC,KAAK,uBAAuB;AAC/B,YAAM,IAAI,MAAM,sDAAsD;AAAA,IACxE;AAEA,WAAO,MAAM,UAAU,WAAW,KAAK,uBAAuB,OAAO;AAAA,EACvE;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,YACJ,gBACA,QACoB;AACpB,UAAM,KAAK,kBAAkB,KAAK;AAElC,QAAI,CAAC,IAAI;AACP,YAAM,IAAI,MAAM,6BAA6B;AAAA,IAC/C;AAEA,UAAM,WAAW,MAAM,UAAU,YAAY,IAAI,MAAM;AACvD,WAAO,SAAS,QAAQ,CAAC;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA,EAKA,aAAmB;AACjB,SAAK,kBAAkB,MAAM;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,qBACJ,OACA,OACA,UACA,kBACuB;AACvB,UAAM,eAAe,MAAM,KAAK,mBAAmB;AAAA,MACjD;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA,kBAAkB,oBAAoB,QAAQ,IAAI;AAAA,MAClD,MAAM,CAAC;AAAA,MACP,UAAU;AAAA,QACR,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,MACpC;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AACF;AAEO,MAAM,sBAAsB,oBAAoB,YAAY;","names":[]}
|
|
@@ -1,198 +1,171 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
* Detect current environment context
|
|
20
|
-
* Uses caching to avoid re-detecting on every request
|
|
21
|
-
* Updates cache when CWD changes
|
|
22
|
-
*/
|
|
23
|
-
detectContext(cwdOverride) {
|
|
24
|
-
const currentCwd = cwdOverride || process.cwd();
|
|
25
|
-
// Return cached context if CWD hasn't changed
|
|
26
|
-
if (this.cachedContext && this.lastCwd === currentCwd) {
|
|
27
|
-
// Update date even when using cache
|
|
28
|
-
return {
|
|
29
|
-
...this.cachedContext,
|
|
30
|
-
date: new Date().toISOString(),
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
// Detect fresh context
|
|
34
|
-
const context = {
|
|
35
|
-
osName: this.detectOSName(),
|
|
36
|
-
osType: this.detectOSType(),
|
|
37
|
-
shell: this.detectShell(),
|
|
38
|
-
username: this.detectUsername(),
|
|
39
|
-
cwd: currentCwd,
|
|
40
|
-
projectRoot: this.detectProjectRoot(currentCwd),
|
|
41
|
-
date: new Date().toISOString(),
|
|
42
|
-
};
|
|
43
|
-
// Cache the context
|
|
44
|
-
this.cachedContext = context;
|
|
45
|
-
this.lastCwd = currentCwd;
|
|
46
|
-
return context;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Format context as structured markdown block for system prompt
|
|
50
|
-
*/
|
|
51
|
-
formatContextBlock(context) {
|
|
52
|
-
let block = '\n\n# ENVIRONMENT CONTEXT\n\n';
|
|
53
|
-
block += 'The following information describes your current execution environment:\n\n';
|
|
54
|
-
block += `- **Operating System**: ${context.osName} (${context.osType})\n`;
|
|
55
|
-
block += `- **Shell**: ${context.shell}\n`;
|
|
56
|
-
block += `- **Username**: ${context.username}\n`;
|
|
57
|
-
block += `- **Current Working Directory**: ${context.cwd}\n`;
|
|
58
|
-
block += `- **Project Root**: ${context.projectRoot}\n`;
|
|
59
|
-
block += `- **Current Date**: ${context.date}\n`;
|
|
60
|
-
block += '\n';
|
|
61
|
-
block += '**Important**: Use this context to generate platform-specific commands and appropriate file paths.\n';
|
|
62
|
-
block += 'All file operations and commands will execute relative to the Current Working Directory.\n\n';
|
|
63
|
-
return block;
|
|
1
|
+
import { platform, type, release, userInfo } from "os";
|
|
2
|
+
import { execSync } from "child_process";
|
|
3
|
+
import { readFileSync } from "fs";
|
|
4
|
+
class EnvironmentContextInjector {
|
|
5
|
+
cachedContext = null;
|
|
6
|
+
lastCwd = "";
|
|
7
|
+
/**
|
|
8
|
+
* Detect current environment context
|
|
9
|
+
* Uses caching to avoid re-detecting on every request
|
|
10
|
+
* Updates cache when CWD changes
|
|
11
|
+
*/
|
|
12
|
+
detectContext(cwdOverride) {
|
|
13
|
+
const currentCwd = cwdOverride || process.cwd();
|
|
14
|
+
if (this.cachedContext && this.lastCwd === currentCwd) {
|
|
15
|
+
return {
|
|
16
|
+
...this.cachedContext,
|
|
17
|
+
date: (/* @__PURE__ */ new Date()).toISOString()
|
|
18
|
+
};
|
|
64
19
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
20
|
+
const context = {
|
|
21
|
+
osName: this.detectOSName(),
|
|
22
|
+
osType: this.detectOSType(),
|
|
23
|
+
shell: this.detectShell(),
|
|
24
|
+
username: this.detectUsername(),
|
|
25
|
+
cwd: currentCwd,
|
|
26
|
+
projectRoot: this.detectProjectRoot(currentCwd),
|
|
27
|
+
date: (/* @__PURE__ */ new Date()).toISOString()
|
|
28
|
+
};
|
|
29
|
+
this.cachedContext = context;
|
|
30
|
+
this.lastCwd = currentCwd;
|
|
31
|
+
return context;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Format context as structured markdown block for system prompt
|
|
35
|
+
*/
|
|
36
|
+
formatContextBlock(context) {
|
|
37
|
+
let block = "\n\n# ENVIRONMENT CONTEXT\n\n";
|
|
38
|
+
block += "The following information describes your current execution environment:\n\n";
|
|
39
|
+
block += `- **Operating System**: ${context.osName} (${context.osType})
|
|
40
|
+
`;
|
|
41
|
+
block += `- **Shell**: ${context.shell}
|
|
42
|
+
`;
|
|
43
|
+
block += `- **Username**: ${context.username}
|
|
44
|
+
`;
|
|
45
|
+
block += `- **Current Working Directory**: ${context.cwd}
|
|
46
|
+
`;
|
|
47
|
+
block += `- **Project Root**: ${context.projectRoot}
|
|
48
|
+
`;
|
|
49
|
+
block += `- **Current Date**: ${context.date}
|
|
50
|
+
`;
|
|
51
|
+
block += "\n";
|
|
52
|
+
block += "**Important**: Use this context to generate platform-specific commands and appropriate file paths.\n";
|
|
53
|
+
block += "All file operations and commands will execute relative to the Current Working Directory.\n\n";
|
|
54
|
+
return block;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get enhanced system prompt with injected environment context
|
|
58
|
+
* Prepends context block to the base system prompt
|
|
59
|
+
*/
|
|
60
|
+
getEnhancedSystemPrompt(basePrompt, cwdOverride) {
|
|
61
|
+
const context = this.detectContext(cwdOverride);
|
|
62
|
+
const contextBlock = this.formatContextBlock(context);
|
|
63
|
+
return contextBlock + basePrompt;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Detect detailed OS name with version
|
|
67
|
+
*/
|
|
68
|
+
detectOSName() {
|
|
69
|
+
const osType = platform();
|
|
70
|
+
const osRelease = release();
|
|
71
|
+
try {
|
|
72
|
+
if (osType === "win32") {
|
|
73
|
+
const version = execSync("wmic os get Caption", { encoding: "utf-8", stdio: ["pipe", "pipe", "ignore"] });
|
|
74
|
+
const match = version.match(/Microsoft Windows [^\r\n]+/);
|
|
75
|
+
if (match) {
|
|
76
|
+
return match[0].trim();
|
|
110
77
|
}
|
|
111
|
-
|
|
112
|
-
|
|
78
|
+
return `Windows ${osRelease}`;
|
|
79
|
+
} else if (osType === "darwin") {
|
|
80
|
+
const version = execSync("sw_vers -productVersion", { encoding: "utf-8", stdio: ["pipe", "pipe", "ignore"] });
|
|
81
|
+
return `macOS ${version.trim()}`;
|
|
82
|
+
} else if (osType === "linux") {
|
|
83
|
+
try {
|
|
84
|
+
const osReleaseContent = readFileSync("/etc/os-release", "utf-8");
|
|
85
|
+
const prettyNameMatch = osReleaseContent.match(/PRETTY_NAME="([^"]+)"/);
|
|
86
|
+
if (prettyNameMatch) {
|
|
87
|
+
return prettyNameMatch[1];
|
|
88
|
+
}
|
|
89
|
+
} catch {
|
|
113
90
|
}
|
|
114
|
-
return
|
|
91
|
+
return `Linux ${osRelease}`;
|
|
92
|
+
}
|
|
93
|
+
} catch (error) {
|
|
115
94
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
95
|
+
return `${type()} ${osRelease}`;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Detect OS type (simplified)
|
|
99
|
+
*/
|
|
100
|
+
detectOSType() {
|
|
101
|
+
const osType = platform();
|
|
102
|
+
if (osType === "win32") return "Windows";
|
|
103
|
+
if (osType === "darwin") return "Darwin";
|
|
104
|
+
if (osType === "linux") return "Linux";
|
|
105
|
+
return type();
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Detect current shell
|
|
109
|
+
*/
|
|
110
|
+
detectShell() {
|
|
111
|
+
if (process.env.SHELL) {
|
|
112
|
+
const shellPath = process.env.SHELL;
|
|
113
|
+
const shellName = shellPath.split("/").pop() || shellPath.split("\\").pop();
|
|
114
|
+
return shellName || "unknown";
|
|
128
115
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
*/
|
|
132
|
-
detectShell() {
|
|
133
|
-
// Check SHELL environment variable (Unix-like systems)
|
|
134
|
-
if (process.env.SHELL) {
|
|
135
|
-
const shellPath = process.env.SHELL;
|
|
136
|
-
const shellName = shellPath.split('/').pop() || shellPath.split('\\').pop();
|
|
137
|
-
return shellName || 'unknown';
|
|
138
|
-
}
|
|
139
|
-
// Check for PowerShell on Windows
|
|
140
|
-
if (process.env.PSModulePath) {
|
|
141
|
-
return 'PowerShell';
|
|
142
|
-
}
|
|
143
|
-
// Check COMSPEC for Windows Command Prompt
|
|
144
|
-
if (process.env.COMSPEC) {
|
|
145
|
-
const comspec = process.env.COMSPEC;
|
|
146
|
-
if (comspec.toLowerCase().includes('cmd.exe')) {
|
|
147
|
-
return 'cmd';
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
// Fallback: detect from platform
|
|
151
|
-
const osType = platform();
|
|
152
|
-
if (osType === 'win32') {
|
|
153
|
-
return 'PowerShell'; // Default assumption for Windows
|
|
154
|
-
}
|
|
155
|
-
return 'bash'; // Default assumption for Unix-like systems
|
|
116
|
+
if (process.env.PSModulePath) {
|
|
117
|
+
return "PowerShell";
|
|
156
118
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
const user = userInfo();
|
|
163
|
-
return user.username;
|
|
164
|
-
}
|
|
165
|
-
catch (error) {
|
|
166
|
-
// Fallback to environment variables
|
|
167
|
-
return process.env.USER || process.env.USERNAME || 'unknown';
|
|
168
|
-
}
|
|
119
|
+
if (process.env.COMSPEC) {
|
|
120
|
+
const comspec = process.env.COMSPEC;
|
|
121
|
+
if (comspec.toLowerCase().includes("cmd.exe")) {
|
|
122
|
+
return "cmd";
|
|
123
|
+
}
|
|
169
124
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
return cwd;
|
|
186
|
-
}
|
|
125
|
+
const osType = platform();
|
|
126
|
+
if (osType === "win32") {
|
|
127
|
+
return "PowerShell";
|
|
128
|
+
}
|
|
129
|
+
return "bash";
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Detect current username
|
|
133
|
+
*/
|
|
134
|
+
detectUsername() {
|
|
135
|
+
try {
|
|
136
|
+
const user = userInfo();
|
|
137
|
+
return user.username;
|
|
138
|
+
} catch (error) {
|
|
139
|
+
return process.env.USER || process.env.USERNAME || "unknown";
|
|
187
140
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Detect git repository root
|
|
144
|
+
* Falls back to CWD if not in a git repository
|
|
145
|
+
*/
|
|
146
|
+
detectProjectRoot(cwd) {
|
|
147
|
+
try {
|
|
148
|
+
const gitRoot = execSync("git rev-parse --show-toplevel", {
|
|
149
|
+
cwd,
|
|
150
|
+
encoding: "utf-8",
|
|
151
|
+
stdio: ["pipe", "pipe", "ignore"]
|
|
152
|
+
}).trim();
|
|
153
|
+
return gitRoot;
|
|
154
|
+
} catch (error) {
|
|
155
|
+
return cwd;
|
|
194
156
|
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Clear cached context (useful for testing or manual refresh)
|
|
160
|
+
*/
|
|
161
|
+
clearCache() {
|
|
162
|
+
this.cachedContext = null;
|
|
163
|
+
this.lastCwd = "";
|
|
164
|
+
}
|
|
195
165
|
}
|
|
196
|
-
|
|
197
|
-
export
|
|
166
|
+
const environmentContextInjector = new EnvironmentContextInjector();
|
|
167
|
+
export {
|
|
168
|
+
EnvironmentContextInjector,
|
|
169
|
+
environmentContextInjector
|
|
170
|
+
};
|
|
198
171
|
//# sourceMappingURL=environment-context-injector.js.map
|