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,164 +1,97 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
1
|
+
import React, { useState, useCallback } from "react";
|
|
2
|
+
import { Box, Text, useInput } from "ink";
|
|
3
|
+
import TextInput from "ink-text-input";
|
|
4
|
+
const WorkflowCreatorScreen = ({
|
|
5
|
+
onSave,
|
|
6
|
+
onCancel,
|
|
7
|
+
initialSteps
|
|
8
|
+
}) => {
|
|
9
|
+
const [steps, setSteps] = useState(initialSteps || []);
|
|
10
|
+
const [currentInput, setCurrentInput] = useState("");
|
|
11
|
+
const [stepType, setStepType] = useState("command");
|
|
12
|
+
const [creatorState, setCreatorState] = useState("adding-steps");
|
|
13
|
+
const [workflowName, setWorkflowName] = useState("");
|
|
14
|
+
const [workflowDescription, setWorkflowDescription] = useState("");
|
|
15
|
+
const [error, setError] = useState(null);
|
|
16
|
+
const [isLearnedWorkflow] = useState(!!initialSteps && initialSteps.length > 0);
|
|
17
|
+
useInput((input, key) => {
|
|
18
|
+
if (key.escape) {
|
|
19
|
+
onCancel();
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (creatorState === "adding-steps") {
|
|
23
|
+
if (key.ctrl && input === "d") {
|
|
24
|
+
setStepType((prev) => prev === "command" ? "instruction" : "command");
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (key.ctrl && input === "s") {
|
|
28
|
+
if (steps.length === 0) {
|
|
29
|
+
setError("Add at least one step before saving");
|
|
30
|
+
setTimeout(() => setError(null), 3e3);
|
|
31
|
+
return;
|
|
32
32
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
? 'Review the steps captured from your learning session. You can edit, add, or remove steps.'
|
|
97
|
-
: 'Create a new workflow by adding steps one at a time.')),
|
|
98
|
-
isLearnedWorkflow && (React.createElement(Box, { marginTop: 1 },
|
|
99
|
-
React.createElement(Text, { color: "#00cc66" },
|
|
100
|
-
"\u2728 ",
|
|
101
|
-
steps.length,
|
|
102
|
-
" steps captured from learn-workflow mode"))),
|
|
103
|
-
React.createElement(Box, { marginTop: 1, flexDirection: "column" },
|
|
104
|
-
React.createElement(Text, { dimColor: true },
|
|
105
|
-
React.createElement(Text, { color: "#ffd700" }, "Ctrl+D"),
|
|
106
|
-
" Toggle between Command/Instruction mode"),
|
|
107
|
-
React.createElement(Text, { dimColor: true },
|
|
108
|
-
React.createElement(Text, { color: "#ffd700" }, "Ctrl+S"),
|
|
109
|
-
" Save workflow"),
|
|
110
|
-
React.createElement(Text, { dimColor: true },
|
|
111
|
-
React.createElement(Text, { color: "#ffd700" }, "Ctrl+Z"),
|
|
112
|
-
" Remove last step"),
|
|
113
|
-
React.createElement(Text, { dimColor: true },
|
|
114
|
-
React.createElement(Text, { color: "#ffd700" }, "ESC"),
|
|
115
|
-
" Cancel")))),
|
|
116
|
-
error && (React.createElement(Box, { marginBottom: 1 },
|
|
117
|
-
React.createElement(Text, { color: "red" },
|
|
118
|
-
"\u26A0\uFE0F ",
|
|
119
|
-
error))),
|
|
120
|
-
steps.length > 0 && (React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
|
|
121
|
-
React.createElement(Text, { bold: true, color: "#00cc66" },
|
|
122
|
-
"Steps (",
|
|
123
|
-
steps.length,
|
|
124
|
-
"):"),
|
|
125
|
-
steps.map((step, index) => (React.createElement(Box, { key: index, marginLeft: 1 },
|
|
126
|
-
React.createElement(Text, null,
|
|
127
|
-
React.createElement(Text, { color: "#888" },
|
|
128
|
-
index + 1,
|
|
129
|
-
"."),
|
|
130
|
-
' ',
|
|
131
|
-
React.createElement(Text, { color: step.type === 'command' ? '#ffd700' : '#00ccff' },
|
|
132
|
-
"[",
|
|
133
|
-
step.type === 'command' ? 'β‘CMD' : 'πINS',
|
|
134
|
-
"]"),
|
|
135
|
-
' ',
|
|
136
|
-
React.createElement(Text, null, step.content))))))),
|
|
137
|
-
creatorState === 'adding-steps' && (React.createElement(Box, { flexDirection: "column" },
|
|
138
|
-
React.createElement(Box, null,
|
|
139
|
-
React.createElement(Text, null,
|
|
140
|
-
"Mode: ",
|
|
141
|
-
React.createElement(Text, { color: stepType === 'command' ? '#ffd700' : '#00ccff', bold: true }, stepType === 'command' ? 'β‘ COMMAND' : 'π INSTRUCTION'),
|
|
142
|
-
React.createElement(Text, { dimColor: true }, " (Ctrl+D to switch)"))),
|
|
143
|
-
React.createElement(Box, { marginTop: 1 },
|
|
144
|
-
React.createElement(Text, { color: "#888" },
|
|
145
|
-
"Step ",
|
|
146
|
-
steps.length + 1,
|
|
147
|
-
": "),
|
|
148
|
-
React.createElement(TextInput, { value: currentInput, onChange: setCurrentInput, onSubmit: handleAddStep, placeholder: stepType === 'command'
|
|
149
|
-
? 'Enter exact command to run...'
|
|
150
|
-
: 'Describe what should happen...' })))),
|
|
151
|
-
creatorState === 'naming' && (React.createElement(Box, { flexDirection: "column" },
|
|
152
|
-
React.createElement(Text, { bold: true, color: "#00ccff" }, "Save Workflow"),
|
|
153
|
-
React.createElement(Box, { marginTop: 1 },
|
|
154
|
-
React.createElement(Text, null, "Workflow name: "),
|
|
155
|
-
React.createElement(TextInput, { value: workflowName, onChange: setWorkflowName, onSubmit: handleNameSubmit, placeholder: "my-workflow" })))),
|
|
156
|
-
creatorState === 'description' && (React.createElement(Box, { flexDirection: "column" },
|
|
157
|
-
React.createElement(Text, { bold: true, color: "#00ccff" },
|
|
158
|
-
"Save Workflow: ",
|
|
159
|
-
workflowName),
|
|
160
|
-
React.createElement(Box, { marginTop: 1 },
|
|
161
|
-
React.createElement(Text, null, "Description (optional, press Enter to skip): "),
|
|
162
|
-
React.createElement(TextInput, { value: workflowDescription, onChange: setWorkflowDescription, onSubmit: handleDescriptionSubmit, placeholder: "What does this workflow do?" }))))));
|
|
33
|
+
setCreatorState("naming");
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
const handleAddStep = useCallback((content) => {
|
|
39
|
+
if (!content.trim()) return;
|
|
40
|
+
setSteps((prev) => [...prev, { type: stepType, content: content.trim() }]);
|
|
41
|
+
setCurrentInput("");
|
|
42
|
+
setError(null);
|
|
43
|
+
}, [stepType]);
|
|
44
|
+
const handleNameSubmit = useCallback((name) => {
|
|
45
|
+
if (!name.trim()) {
|
|
46
|
+
setError("Workflow name is required");
|
|
47
|
+
setTimeout(() => setError(null), 3e3);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
setWorkflowName(name.trim());
|
|
51
|
+
setCreatorState("description");
|
|
52
|
+
}, []);
|
|
53
|
+
const handleDescriptionSubmit = useCallback((description) => {
|
|
54
|
+
onSave(workflowName, steps, description.trim() || void 0);
|
|
55
|
+
}, [workflowName, steps, onSave]);
|
|
56
|
+
const handleRemoveLastStep = useCallback(() => {
|
|
57
|
+
if (steps.length > 0) {
|
|
58
|
+
setSteps((prev) => prev.slice(0, -1));
|
|
59
|
+
}
|
|
60
|
+
}, [steps.length]);
|
|
61
|
+
useInput((input, key) => {
|
|
62
|
+
if (creatorState === "adding-steps" && key.backspace && currentInput === "" && steps.length > 0) {
|
|
63
|
+
}
|
|
64
|
+
if (key.ctrl && input === "z" && creatorState === "adding-steps" && steps.length > 0) {
|
|
65
|
+
handleRemoveLastStep();
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
return /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", paddingX: 1 }, /* @__PURE__ */ React.createElement(Box, { borderStyle: "round", borderColor: "#00ccff", paddingX: 2, paddingY: 1, marginBottom: 1 }, /* @__PURE__ */ React.createElement(Box, { flexDirection: "column" }, /* @__PURE__ */ React.createElement(Text, { color: "#00ccff", bold: true }, "\u{1F4CB} Workflow Creator"), /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, { dimColor: true }, isLearnedWorkflow ? "Review the steps captured from your learning session. You can edit, add, or remove steps." : "Create a new workflow by adding steps one at a time.")), isLearnedWorkflow && /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, { color: "#00cc66" }, "\u2728 ", steps.length, " steps captured from learn-workflow mode")), /* @__PURE__ */ React.createElement(Box, { marginTop: 1, flexDirection: "column" }, /* @__PURE__ */ React.createElement(Text, { dimColor: true }, /* @__PURE__ */ React.createElement(Text, { color: "#ffd700" }, "Ctrl+D"), " Toggle between Command/Instruction mode"), /* @__PURE__ */ React.createElement(Text, { dimColor: true }, /* @__PURE__ */ React.createElement(Text, { color: "#ffd700" }, "Ctrl+S"), " Save workflow"), /* @__PURE__ */ React.createElement(Text, { dimColor: true }, /* @__PURE__ */ React.createElement(Text, { color: "#ffd700" }, "Ctrl+Z"), " Remove last step"), /* @__PURE__ */ React.createElement(Text, { dimColor: true }, /* @__PURE__ */ React.createElement(Text, { color: "#ffd700" }, "ESC"), " Cancel")))), error && /* @__PURE__ */ React.createElement(Box, { marginBottom: 1 }, /* @__PURE__ */ React.createElement(Text, { color: "red" }, "\u26A0\uFE0F ", error)), steps.length > 0 && /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", marginBottom: 1 }, /* @__PURE__ */ React.createElement(Text, { bold: true, color: "#00cc66" }, "Steps (", steps.length, "):"), steps.map((step, index) => /* @__PURE__ */ React.createElement(Box, { key: index, marginLeft: 1 }, /* @__PURE__ */ React.createElement(Text, null, /* @__PURE__ */ React.createElement(Text, { color: "#888" }, index + 1, "."), " ", /* @__PURE__ */ React.createElement(Text, { color: step.type === "command" ? "#ffd700" : "#00ccff" }, "[", step.type === "command" ? "\u26A1CMD" : "\u{1F4DD}INS", "]"), " ", /* @__PURE__ */ React.createElement(Text, null, step.content))))), creatorState === "adding-steps" && /* @__PURE__ */ React.createElement(Box, { flexDirection: "column" }, /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Text, null, "Mode: ", /* @__PURE__ */ React.createElement(Text, { color: stepType === "command" ? "#ffd700" : "#00ccff", bold: true }, stepType === "command" ? "\u26A1 COMMAND" : "\u{1F4DD} INSTRUCTION"), /* @__PURE__ */ React.createElement(Text, { dimColor: true }, " (Ctrl+D to switch)"))), /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, { color: "#888" }, "Step ", steps.length + 1, ": "), /* @__PURE__ */ React.createElement(
|
|
69
|
+
TextInput,
|
|
70
|
+
{
|
|
71
|
+
value: currentInput,
|
|
72
|
+
onChange: setCurrentInput,
|
|
73
|
+
onSubmit: handleAddStep,
|
|
74
|
+
placeholder: stepType === "command" ? "Enter exact command to run..." : "Describe what should happen..."
|
|
75
|
+
}
|
|
76
|
+
))), creatorState === "naming" && /* @__PURE__ */ React.createElement(Box, { flexDirection: "column" }, /* @__PURE__ */ React.createElement(Text, { bold: true, color: "#00ccff" }, "Save Workflow"), /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, null, "Workflow name: "), /* @__PURE__ */ React.createElement(
|
|
77
|
+
TextInput,
|
|
78
|
+
{
|
|
79
|
+
value: workflowName,
|
|
80
|
+
onChange: setWorkflowName,
|
|
81
|
+
onSubmit: handleNameSubmit,
|
|
82
|
+
placeholder: "my-workflow"
|
|
83
|
+
}
|
|
84
|
+
))), creatorState === "description" && /* @__PURE__ */ React.createElement(Box, { flexDirection: "column" }, /* @__PURE__ */ React.createElement(Text, { bold: true, color: "#00ccff" }, "Save Workflow: ", workflowName), /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, null, "Description (optional, press Enter to skip): "), /* @__PURE__ */ React.createElement(
|
|
85
|
+
TextInput,
|
|
86
|
+
{
|
|
87
|
+
value: workflowDescription,
|
|
88
|
+
onChange: setWorkflowDescription,
|
|
89
|
+
onSubmit: handleDescriptionSubmit,
|
|
90
|
+
placeholder: "What does this workflow do?"
|
|
91
|
+
}
|
|
92
|
+
))));
|
|
93
|
+
};
|
|
94
|
+
export {
|
|
95
|
+
WorkflowCreatorScreen
|
|
163
96
|
};
|
|
164
97
|
//# sourceMappingURL=WorkflowCreatorScreen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowCreatorScreen.js","sourceRoot":"","sources":["../../../src/ui/components/WorkflowCreatorScreen.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/ui/components/WorkflowCreatorScreen.tsx"],"sourcesContent":["/**\r\n * Workflow Creator Screen\r\n * \r\n * A screen for creating new workflows with step-by-step input.\r\n * Supports both command (exact) and instruction (interpreted) step types.\r\n * \r\n * Controls:\r\n * - Type step content and press Enter to add\r\n * - Ctrl+D to toggle between Command and Instruction mode\r\n * - Ctrl+S to save the workflow\r\n * - ESC to cancel and exit\r\n */\r\n\r\nimport React, { useState, useCallback } from 'react';\r\nimport { Box, Text, useInput } from 'ink';\r\nimport TextInput from 'ink-text-input';\r\n\r\ninterface WorkflowStep {\r\n type: 'command' | 'instruction';\r\n content: string;\r\n}\r\n\r\ninterface WorkflowCreatorScreenProps {\r\n onSave: (name: string, steps: WorkflowStep[], description?: string) => void;\r\n onCancel: () => void;\r\n initialSteps?: WorkflowStep[]; // Pre-populated steps from learn-workflow mode\r\n}\r\n\r\ntype CreatorState = 'adding-steps' | 'naming' | 'description';\r\n\r\nexport const WorkflowCreatorScreen: React.FC<WorkflowCreatorScreenProps> = ({\r\n onSave,\r\n onCancel,\r\n initialSteps\r\n}) => {\r\n // Initialize steps from initialSteps if provided (learn-workflow mode)\r\n const [steps, setSteps] = useState<WorkflowStep[]>(initialSteps || []);\r\n const [currentInput, setCurrentInput] = useState('');\r\n const [stepType, setStepType] = useState<'command' | 'instruction'>('command');\r\n const [creatorState, setCreatorState] = useState<CreatorState>('adding-steps');\r\n const [workflowName, setWorkflowName] = useState('');\r\n const [workflowDescription, setWorkflowDescription] = useState('');\r\n const [error, setError] = useState<string | null>(null);\r\n const [isLearnedWorkflow] = useState<boolean>(!!initialSteps && initialSteps.length > 0);\r\n\r\n // Handle keyboard shortcuts\r\n useInput((input, key) => {\r\n // ESC to cancel\r\n if (key.escape) {\r\n onCancel();\r\n return;\r\n }\r\n\r\n // Only handle shortcuts in adding-steps mode\r\n if (creatorState === 'adding-steps') {\r\n // Ctrl+D to toggle step type\r\n if (key.ctrl && input === 'd') {\r\n setStepType(prev => prev === 'command' ? 'instruction' : 'command');\r\n return;\r\n }\r\n\r\n // Ctrl+S to save (move to naming state)\r\n if (key.ctrl && input === 's') {\r\n if (steps.length === 0) {\r\n setError('Add at least one step before saving');\r\n setTimeout(() => setError(null), 3000);\r\n return;\r\n }\r\n setCreatorState('naming');\r\n return;\r\n }\r\n }\r\n });\r\n\r\n // Handle adding a step\r\n const handleAddStep = useCallback((content: string) => {\r\n if (!content.trim()) return;\r\n\r\n setSteps(prev => [...prev, { type: stepType, content: content.trim() }]);\r\n setCurrentInput('');\r\n setError(null);\r\n }, [stepType]);\r\n\r\n // Handle workflow name submission\r\n const handleNameSubmit = useCallback((name: string) => {\r\n if (!name.trim()) {\r\n setError('Workflow name is required');\r\n setTimeout(() => setError(null), 3000);\r\n return;\r\n }\r\n setWorkflowName(name.trim());\r\n setCreatorState('description');\r\n }, []);\r\n\r\n // Handle description submission (optional)\r\n const handleDescriptionSubmit = useCallback((description: string) => {\r\n onSave(workflowName, steps, description.trim() || undefined);\r\n }, [workflowName, steps, onSave]);\r\n\r\n // Remove last step\r\n const handleRemoveLastStep = useCallback(() => {\r\n if (steps.length > 0) {\r\n setSteps(prev => prev.slice(0, -1));\r\n }\r\n }, [steps.length]);\r\n\r\n // Handle backspace on empty input to remove last step\r\n useInput((input, key) => {\r\n if (creatorState === 'adding-steps' && key.backspace && currentInput === '' && steps.length > 0) {\r\n // Don't remove step on regular backspace - only with Ctrl+Backspace\r\n }\r\n // Ctrl+Z to remove last step\r\n if (key.ctrl && input === 'z' && creatorState === 'adding-steps' && steps.length > 0) {\r\n handleRemoveLastStep();\r\n }\r\n });\r\n\r\n return (\r\n <Box flexDirection=\"column\" paddingX={1}>\r\n {/* Header */}\r\n <Box borderStyle=\"round\" borderColor=\"#00ccff\" paddingX={2} paddingY={1} marginBottom={1}>\r\n <Box flexDirection=\"column\">\r\n <Text color=\"#00ccff\" bold>π Workflow Creator</Text>\r\n <Box marginTop={1}>\r\n <Text dimColor>\r\n {isLearnedWorkflow\r\n ? 'Review the steps captured from your learning session. You can edit, add, or remove steps.'\r\n : 'Create a new workflow by adding steps one at a time.'}\r\n </Text>\r\n </Box>\r\n {isLearnedWorkflow && (\r\n <Box marginTop={1}>\r\n <Text color=\"#00cc66\">β¨ {steps.length} steps captured from learn-workflow mode</Text>\r\n </Box>\r\n )}\r\n <Box marginTop={1} flexDirection=\"column\">\r\n <Text dimColor>\r\n <Text color=\"#ffd700\">Ctrl+D</Text> Toggle between Command/Instruction mode\r\n </Text>\r\n <Text dimColor>\r\n <Text color=\"#ffd700\">Ctrl+S</Text> Save workflow\r\n </Text>\r\n <Text dimColor>\r\n <Text color=\"#ffd700\">Ctrl+Z</Text> Remove last step\r\n </Text>\r\n <Text dimColor>\r\n <Text color=\"#ffd700\">ESC</Text> Cancel\r\n </Text>\r\n </Box>\r\n </Box>\r\n </Box>\r\n\r\n {/* Error message */}\r\n {error && (\r\n <Box marginBottom={1}>\r\n <Text color=\"red\">β οΈ {error}</Text>\r\n </Box>\r\n )}\r\n\r\n {/* Current steps */}\r\n {steps.length > 0 && (\r\n <Box flexDirection=\"column\" marginBottom={1}>\r\n <Text bold color=\"#00cc66\">Steps ({steps.length}):</Text>\r\n {steps.map((step, index) => (\r\n <Box key={index} marginLeft={1}>\r\n <Text>\r\n <Text color=\"#888\">{index + 1}.</Text>{' '}\r\n <Text color={step.type === 'command' ? '#ffd700' : '#00ccff'}>\r\n [{step.type === 'command' ? 'β‘CMD' : 'πINS'}]\r\n </Text>{' '}\r\n <Text>{step.content}</Text>\r\n </Text>\r\n </Box>\r\n ))}\r\n </Box>\r\n )}\r\n\r\n {/* Input area */}\r\n {creatorState === 'adding-steps' && (\r\n <Box flexDirection=\"column\">\r\n <Box>\r\n <Text>\r\n Mode: <Text color={stepType === 'command' ? '#ffd700' : '#00ccff'} bold>\r\n {stepType === 'command' ? 'β‘ COMMAND' : 'π INSTRUCTION'}\r\n </Text>\r\n <Text dimColor> (Ctrl+D to switch)</Text>\r\n </Text>\r\n </Box>\r\n <Box marginTop={1}>\r\n <Text color=\"#888\">Step {steps.length + 1}: </Text>\r\n <TextInput\r\n value={currentInput}\r\n onChange={setCurrentInput}\r\n onSubmit={handleAddStep}\r\n placeholder={stepType === 'command'\r\n ? 'Enter exact command to run...'\r\n : 'Describe what should happen...'}\r\n />\r\n </Box>\r\n </Box>\r\n )}\r\n\r\n {/* Naming state */}\r\n {creatorState === 'naming' && (\r\n <Box flexDirection=\"column\">\r\n <Text bold color=\"#00ccff\">Save Workflow</Text>\r\n <Box marginTop={1}>\r\n <Text>Workflow name: </Text>\r\n <TextInput\r\n value={workflowName}\r\n onChange={setWorkflowName}\r\n onSubmit={handleNameSubmit}\r\n placeholder=\"my-workflow\"\r\n />\r\n </Box>\r\n </Box>\r\n )}\r\n\r\n {/* Description state */}\r\n {creatorState === 'description' && (\r\n <Box flexDirection=\"column\">\r\n <Text bold color=\"#00ccff\">Save Workflow: {workflowName}</Text>\r\n <Box marginTop={1}>\r\n <Text>Description (optional, press Enter to skip): </Text>\r\n <TextInput\r\n value={workflowDescription}\r\n onChange={setWorkflowDescription}\r\n onSubmit={handleDescriptionSubmit}\r\n placeholder=\"What does this workflow do?\"\r\n />\r\n </Box>\r\n </Box>\r\n )}\r\n </Box>\r\n );\r\n};\r\n"],"mappings":"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","names":[]}
|
|
@@ -1,64 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
function encodeKeyToAnsi(input, key) {
|
|
2
|
+
if (!key) return input;
|
|
3
|
+
if (key.return) {
|
|
4
|
+
return "\r";
|
|
5
|
+
}
|
|
6
|
+
if (key.backspace || key.delete) {
|
|
7
|
+
return "\x7F";
|
|
8
|
+
}
|
|
9
|
+
if (key.tab) return " ";
|
|
10
|
+
if (key.upArrow) return "\x1B[A";
|
|
11
|
+
if (key.downArrow) return "\x1B[B";
|
|
12
|
+
if (key.rightArrow) return "\x1B[C";
|
|
13
|
+
if (key.leftArrow) return "\x1B[D";
|
|
14
|
+
if (key.pageUp) return "\x1B[5~";
|
|
15
|
+
if (key.pageDown) return "\x1B[6~";
|
|
16
|
+
if (key.ctrl) {
|
|
17
|
+
if (input === "c") return "";
|
|
18
|
+
if (input === "d") return "";
|
|
19
|
+
if (input === "z") return "";
|
|
20
|
+
if (input === "l") return "\f";
|
|
21
|
+
if (input === "u") return "";
|
|
22
|
+
if (input && input.length === 1 && input >= "a" && input <= "z") {
|
|
23
|
+
const charCode = input.charCodeAt(0);
|
|
24
|
+
return String.fromCharCode(charCode - 96);
|
|
15
25
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return '\x7f';
|
|
20
|
-
}
|
|
21
|
-
// 3. Handle Tab
|
|
22
|
-
if (key.tab)
|
|
23
|
-
return '\t';
|
|
24
|
-
// 4. Handle Arrows (ANSI / VT100 sequences)
|
|
25
|
-
if (key.upArrow)
|
|
26
|
-
return '\u001B[A';
|
|
27
|
-
if (key.downArrow)
|
|
28
|
-
return '\u001B[B';
|
|
29
|
-
if (key.rightArrow)
|
|
30
|
-
return '\u001B[C';
|
|
31
|
-
if (key.leftArrow)
|
|
32
|
-
return '\u001B[D';
|
|
33
|
-
// 5. Handle Navigation
|
|
34
|
-
if (key.pageUp)
|
|
35
|
-
return '\u001B[5~';
|
|
36
|
-
if (key.pageDown)
|
|
37
|
-
return '\u001B[6~';
|
|
38
|
-
// 6. Handle Control Keys
|
|
39
|
-
if (key.ctrl) {
|
|
40
|
-
if (input === 'c')
|
|
41
|
-
return '\u0003'; // SIGINT
|
|
42
|
-
if (input === 'd')
|
|
43
|
-
return '\u0004'; // EOT
|
|
44
|
-
if (input === 'z')
|
|
45
|
-
return '\u001A'; // SIGTSTP
|
|
46
|
-
if (input === 'l')
|
|
47
|
-
return '\u000C'; // Clear screen
|
|
48
|
-
if (input === 'u')
|
|
49
|
-
return '\u0015'; // Clear line
|
|
50
|
-
// Generic Ctrl+A to Ctrl+Z handling
|
|
51
|
-
// If input is a single letter a-z
|
|
52
|
-
if (input && input.length === 1 && input >= 'a' && input <= 'z') {
|
|
53
|
-
const charCode = input.charCodeAt(0);
|
|
54
|
-
// 'a' is 97. We want \x01 (1). So 97 - 96 = 1.
|
|
55
|
-
return String.fromCharCode(charCode - 96);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
// 7. Handle Escape
|
|
59
|
-
if (key.escape)
|
|
60
|
-
return '\u001B';
|
|
61
|
-
// 8. Default: Return the character itself
|
|
62
|
-
return input;
|
|
26
|
+
}
|
|
27
|
+
if (key.escape) return "\x1B";
|
|
28
|
+
return input;
|
|
63
29
|
}
|
|
30
|
+
export {
|
|
31
|
+
encodeKeyToAnsi
|
|
32
|
+
};
|
|
64
33
|
//# sourceMappingURL=ansi-encoder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/utils/ansi-encoder.ts"],"sourcesContent":["/**\r\n * Converts Ink key events into ANSI escape sequences for the child process.\r\n * This acts as a \"translator\" between Ink's key objects and the raw ANSI codes\r\n * that terminal programs expect, emulating PTY behavior without native dependencies.\r\n */\r\n\r\nexport function encodeKeyToAnsi(input: string, key: any): string {\r\n if (!key) return input;\r\n\r\n // 1. Handle Enter - always \\r for PTY\r\n // PTY drivers handle \\r β \\r\\n translation internally.\r\n // Using \\r\\n on Windows caused SSH sessions to echo an extra newline,\r\n // producing duplicate prompts after each command.\r\n if (key.return) {\r\n return '\\r';\r\n }\r\n\r\n // 2. Handle Backspace\r\n // \\x7f (DEL) is the most compatible \"delete previous\" code\r\n if (key.backspace || key.delete) {\r\n return '\\x7f';\r\n }\r\n\r\n // 3. Handle Tab\r\n if (key.tab) return '\\t';\r\n\r\n // 4. Handle Arrows (ANSI / VT100 sequences)\r\n if (key.upArrow) return '\\u001B[A';\r\n if (key.downArrow) return '\\u001B[B';\r\n if (key.rightArrow) return '\\u001B[C';\r\n if (key.leftArrow) return '\\u001B[D';\r\n\r\n // 5. Handle Navigation\r\n if (key.pageUp) return '\\u001B[5~';\r\n if (key.pageDown) return '\\u001B[6~';\r\n\r\n // 6. Handle Control Keys\r\n if (key.ctrl) {\r\n if (input === 'c') return '\\u0003'; // SIGINT\r\n if (input === 'd') return '\\u0004'; // EOT\r\n if (input === 'z') return '\\u001A'; // SIGTSTP\r\n if (input === 'l') return '\\u000C'; // Clear screen\r\n if (input === 'u') return '\\u0015'; // Clear line\r\n\r\n // Generic Ctrl+A to Ctrl+Z handling\r\n // If input is a single letter a-z\r\n if (input && input.length === 1 && input >= 'a' && input <= 'z') {\r\n const charCode = input.charCodeAt(0);\r\n // 'a' is 97. We want \\x01 (1). So 97 - 96 = 1.\r\n return String.fromCharCode(charCode - 96);\r\n }\r\n }\r\n\r\n // 7. Handle Escape\r\n if (key.escape) return '\\u001B';\r\n\r\n // 8. Default: Return the character itself\r\n return input;\r\n}\r\n"],"mappings":"AAMO,SAAS,gBAAgB,OAAe,KAAkB;AAC/D,MAAI,CAAC,IAAK,QAAO;AAMjB,MAAI,IAAI,QAAQ;AACd,WAAO;AAAA,EACT;AAIA,MAAI,IAAI,aAAa,IAAI,QAAQ;AAC/B,WAAO;AAAA,EACT;AAGA,MAAI,IAAI,IAAK,QAAO;AAGpB,MAAI,IAAI,QAAS,QAAO;AACxB,MAAI,IAAI,UAAW,QAAO;AAC1B,MAAI,IAAI,WAAY,QAAO;AAC3B,MAAI,IAAI,UAAW,QAAO;AAG1B,MAAI,IAAI,OAAQ,QAAO;AACvB,MAAI,IAAI,SAAU,QAAO;AAGzB,MAAI,IAAI,MAAM;AACZ,QAAI,UAAU,IAAK,QAAO;AAC1B,QAAI,UAAU,IAAK,QAAO;AAC1B,QAAI,UAAU,IAAK,QAAO;AAC1B,QAAI,UAAU,IAAK,QAAO;AAC1B,QAAI,UAAU,IAAK,QAAO;AAI1B,QAAI,SAAS,MAAM,WAAW,KAAK,SAAS,OAAO,SAAS,KAAK;AAC/D,YAAM,WAAW,MAAM,WAAW,CAAC;AAEnC,aAAO,OAAO,aAAa,WAAW,EAAE;AAAA,IAC1C;AAAA,EACF;AAGA,MAAI,IAAI,OAAQ,QAAO;AAGvB,SAAO;AACT;","names":[]}
|