@within-7/minto 0.4.2 → 0.4.3
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/cli.cjs +32 -154
- package/cli.js +3255 -0
- package/package.json +21 -38
- package/scripts/postinstall.cjs +19 -136
- package/vendor/ripgrep/arm64-linux/rg +0 -0
- package/vendor/ripgrep/x64-darwin/rg +0 -0
- package/vendor/ripgrep/x64-linux/rg +0 -0
- package/vendor/ripgrep/x64-win32/rg.exe +0 -0
- package/dist/Tool.js +0 -46
- package/dist/Tool.js.map +0 -7
- package/dist/commands/agents/AgentsCommand.js +0 -2170
- package/dist/commands/agents/AgentsCommand.js.map +0 -7
- package/dist/commands/agents/constants.js +0 -58
- package/dist/commands/agents/constants.js.map +0 -7
- package/dist/commands/agents/index.js +0 -37
- package/dist/commands/agents/index.js.map +0 -7
- package/dist/commands/agents/types.js +0 -11
- package/dist/commands/agents/types.js.map +0 -7
- package/dist/commands/agents/utils/fileOperations.js +0 -245
- package/dist/commands/agents/utils/fileOperations.js.map +0 -7
- package/dist/commands/agents/utils/index.js +0 -23
- package/dist/commands/agents/utils/index.js.map +0 -7
- package/dist/commands/approvedTools.js +0 -36
- package/dist/commands/approvedTools.js.map +0 -7
- package/dist/commands/bug.js +0 -88
- package/dist/commands/bug.js.map +0 -7
- package/dist/commands/clear.js +0 -41
- package/dist/commands/clear.js.map +0 -7
- package/dist/commands/compact.js +0 -119
- package/dist/commands/compact.js.map +0 -7
- package/dist/commands/config.js +0 -20
- package/dist/commands/config.js.map +0 -7
- package/dist/commands/context.js +0 -118
- package/dist/commands/context.js.map +0 -7
- package/dist/commands/cost.js +0 -19
- package/dist/commands/cost.js.map +0 -7
- package/dist/commands/ctx_viz.js +0 -193
- package/dist/commands/ctx_viz.js.map +0 -7
- package/dist/commands/doctor.js +0 -171
- package/dist/commands/doctor.js.map +0 -7
- package/dist/commands/effort.js +0 -87
- package/dist/commands/effort.js.map +0 -7
- package/dist/commands/export.js +0 -747
- package/dist/commands/export.js.map +0 -7
- package/dist/commands/help.js +0 -20
- package/dist/commands/help.js.map +0 -7
- package/dist/commands/ide.js +0 -18
- package/dist/commands/ide.js.map +0 -7
- package/dist/commands/init.js +0 -38
- package/dist/commands/init.js.map +0 -7
- package/dist/commands/language.js +0 -110
- package/dist/commands/language.js.map +0 -7
- package/dist/commands/login.js +0 -128
- package/dist/commands/login.js.map +0 -7
- package/dist/commands/mcp-interactive.js +0 -485
- package/dist/commands/mcp-interactive.js.map +0 -7
- package/dist/commands/memory.js +0 -119
- package/dist/commands/memory.js.map +0 -7
- package/dist/commands/model.js +0 -497
- package/dist/commands/model.js.map +0 -7
- package/dist/commands/new.js +0 -56
- package/dist/commands/new.js.map +0 -7
- package/dist/commands/outputStyle.js +0 -64
- package/dist/commands/outputStyle.js.map +0 -7
- package/dist/commands/permissions.js +0 -113
- package/dist/commands/permissions.js.map +0 -7
- package/dist/commands/plugin/AddMarketplaceForm.js +0 -91
- package/dist/commands/plugin/AddMarketplaceForm.js.map +0 -7
- package/dist/commands/plugin/ConfirmDialog.js +0 -84
- package/dist/commands/plugin/ConfirmDialog.js.map +0 -7
- package/dist/commands/plugin/ErrorView.js +0 -34
- package/dist/commands/plugin/ErrorView.js.map +0 -7
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js +0 -152
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js.map +0 -7
- package/dist/commands/plugin/InstalledPluginsManager.js +0 -102
- package/dist/commands/plugin/InstalledPluginsManager.js.map +0 -7
- package/dist/commands/plugin/LoadingView.js +0 -14
- package/dist/commands/plugin/LoadingView.js.map +0 -7
- package/dist/commands/plugin/MainMenu.js +0 -67
- package/dist/commands/plugin/MainMenu.js.map +0 -7
- package/dist/commands/plugin/MarketplaceManager.js +0 -201
- package/dist/commands/plugin/MarketplaceManager.js.map +0 -7
- package/dist/commands/plugin/MarketplaceSelector.js +0 -124
- package/dist/commands/plugin/MarketplaceSelector.js.map +0 -7
- package/dist/commands/plugin/PlaceholderScreen.js +0 -31
- package/dist/commands/plugin/PlaceholderScreen.js.map +0 -7
- package/dist/commands/plugin/PluginBrowser.js +0 -183
- package/dist/commands/plugin/PluginBrowser.js.map +0 -7
- package/dist/commands/plugin/PluginDetailsInstall.js +0 -159
- package/dist/commands/plugin/PluginDetailsInstall.js.map +0 -7
- package/dist/commands/plugin/PluginDetailsManage.js +0 -210
- package/dist/commands/plugin/PluginDetailsManage.js.map +0 -7
- package/dist/commands/plugin/components.js +0 -16
- package/dist/commands/plugin/components.js.map +0 -7
- package/dist/commands/plugin/example-usage.js +0 -63
- package/dist/commands/plugin/example-usage.js.map +0 -7
- package/dist/commands/plugin/types.js +0 -1
- package/dist/commands/plugin/types.js.map +0 -7
- package/dist/commands/plugin/utils.js +0 -109
- package/dist/commands/plugin/utils.js.map +0 -7
- package/dist/commands/plugin.js +0 -1410
- package/dist/commands/plugin.js.map +0 -7
- package/dist/commands/quit.js +0 -20
- package/dist/commands/quit.js.map +0 -7
- package/dist/commands/refreshCommands.js +0 -48
- package/dist/commands/refreshCommands.js.map +0 -7
- package/dist/commands/resume.js +0 -71
- package/dist/commands/resume.js.map +0 -7
- package/dist/commands/review.js +0 -51
- package/dist/commands/review.js.map +0 -7
- package/dist/commands/sandbox.js +0 -203
- package/dist/commands/sandbox.js.map +0 -7
- package/dist/commands/sessions.js +0 -224
- package/dist/commands/sessions.js.map +0 -7
- package/dist/commands/setup.js +0 -653
- package/dist/commands/setup.js.map +0 -7
- package/dist/commands/stats.js +0 -292
- package/dist/commands/stats.js.map +0 -7
- package/dist/commands/status.js +0 -127
- package/dist/commands/status.js.map +0 -7
- package/dist/commands/tasks.js +0 -108
- package/dist/commands/tasks.js.map +0 -7
- package/dist/commands/terminalSetup.js +0 -174
- package/dist/commands/terminalSetup.js.map +0 -7
- package/dist/commands/todos.js +0 -123
- package/dist/commands/todos.js.map +0 -7
- package/dist/commands/undo.js +0 -227
- package/dist/commands/undo.js.map +0 -7
- package/dist/commands/vim.js +0 -22
- package/dist/commands/vim.js.map +0 -7
- package/dist/commands.js +0 -130
- package/dist/commands.js.map +0 -7
- package/dist/components/AgentDetailView.js +0 -126
- package/dist/components/AgentDetailView.js.map +0 -7
- package/dist/components/AgentResponseBlock.js +0 -41
- package/dist/components/AgentResponseBlock.js.map +0 -7
- package/dist/components/AgentThinkingBlock.js +0 -32
- package/dist/components/AgentThinkingBlock.js.map +0 -7
- package/dist/components/AgentViewBanner.js +0 -22
- package/dist/components/AgentViewBanner.js.map +0 -7
- package/dist/components/AsciiLogo.js +0 -18
- package/dist/components/AsciiLogo.js.map +0 -7
- package/dist/components/AskUserQuestionDialog/AskUserQuestionDialog.js +0 -142
- package/dist/components/AskUserQuestionDialog/AskUserQuestionDialog.js.map +0 -7
- package/dist/components/AskUserQuestionDialog/QuestionView.js +0 -55
- package/dist/components/AskUserQuestionDialog/QuestionView.js.map +0 -7
- package/dist/components/AskUserQuestionDialog/index.js +0 -7
- package/dist/components/AskUserQuestionDialog/index.js.map +0 -7
- package/dist/components/BackgroundTasksPanel.js +0 -177
- package/dist/components/BackgroundTasksPanel.js.map +0 -7
- package/dist/components/BashStreamingProgress.js +0 -24
- package/dist/components/BashStreamingProgress.js.map +0 -7
- package/dist/components/CollapsibleHint.js +0 -15
- package/dist/components/CollapsibleHint.js.map +0 -7
- package/dist/components/Config.js +0 -181
- package/dist/components/Config.js.map +0 -7
- package/dist/components/ConsoleOAuthFlow.js +0 -179
- package/dist/components/ConsoleOAuthFlow.js.map +0 -7
- package/dist/components/Cost.js +0 -14
- package/dist/components/Cost.js.map +0 -7
- package/dist/components/CostThresholdDialog.js +0 -38
- package/dist/components/CostThresholdDialog.js.map +0 -7
- package/dist/components/CustomSelect/option-map.js +0 -32
- package/dist/components/CustomSelect/option-map.js.map +0 -7
- package/dist/components/CustomSelect/select-option.js +0 -37
- package/dist/components/CustomSelect/select-option.js.map +0 -7
- package/dist/components/CustomSelect/select.js +0 -64
- package/dist/components/CustomSelect/select.js.map +0 -7
- package/dist/components/CustomSelect/theme.js +0 -1
- package/dist/components/CustomSelect/theme.js.map +0 -7
- package/dist/components/CustomSelect/use-select-state.js +0 -220
- package/dist/components/CustomSelect/use-select-state.js.map +0 -7
- package/dist/components/CustomSelect/use-select.js +0 -21
- package/dist/components/CustomSelect/use-select.js.map +0 -7
- package/dist/components/FallbackToolUseRejectedMessage.js +0 -11
- package/dist/components/FallbackToolUseRejectedMessage.js.map +0 -7
- package/dist/components/FileEditToolUpdatedMessage.js +0 -32
- package/dist/components/FileEditToolUpdatedMessage.js.map +0 -7
- package/dist/components/HeaderBar.js +0 -63
- package/dist/components/HeaderBar.js.map +0 -7
- package/dist/components/Help.js +0 -185
- package/dist/components/Help.js.map +0 -7
- package/dist/components/HighlightedCode.js +0 -31
- package/dist/components/HighlightedCode.js.map +0 -7
- package/dist/components/HistorySearchOverlay.js +0 -49
- package/dist/components/HistorySearchOverlay.js.map +0 -7
- package/dist/components/HotkeyHelpPanel.js +0 -154
- package/dist/components/HotkeyHelpPanel.js.map +0 -7
- package/dist/components/IdleNotificationBar.js +0 -10
- package/dist/components/IdleNotificationBar.js.map +0 -7
- package/dist/components/InfoPanel/InfoPanel.js +0 -123
- package/dist/components/InfoPanel/InfoPanel.js.map +0 -7
- package/dist/components/InfoPanel/index.js +0 -5
- package/dist/components/InfoPanel/index.js.map +0 -7
- package/dist/components/InfoPanel/types.js +0 -1
- package/dist/components/InfoPanel/types.js.map +0 -7
- package/dist/components/InteractionRoundBlock.js +0 -56
- package/dist/components/InteractionRoundBlock.js.map +0 -7
- package/dist/components/InvalidConfigDialog.js +0 -84
- package/dist/components/InvalidConfigDialog.js.map +0 -7
- package/dist/components/Link.js +0 -18
- package/dist/components/Link.js.map +0 -7
- package/dist/components/LogSelector.js +0 -50
- package/dist/components/LogSelector.js.map +0 -7
- package/dist/components/Logo.js +0 -55
- package/dist/components/Logo.js.map +0 -7
- package/dist/components/MCPServerApprovalDialog.js +0 -81
- package/dist/components/MCPServerApprovalDialog.js.map +0 -7
- package/dist/components/MCPServerDialogCopy.js +0 -12
- package/dist/components/MCPServerDialogCopy.js.map +0 -7
- package/dist/components/MCPServerMultiselectDialog.js +0 -82
- package/dist/components/MCPServerMultiselectDialog.js.map +0 -7
- package/dist/components/Message.js +0 -162
- package/dist/components/Message.js.map +0 -7
- package/dist/components/MessageResponse.js +0 -9
- package/dist/components/MessageResponse.js.map +0 -7
- package/dist/components/MessageSelector.js +0 -127
- package/dist/components/MessageSelector.js.map +0 -7
- package/dist/components/ModeIndicator.js +0 -39
- package/dist/components/ModeIndicator.js.map +0 -7
- package/dist/components/ModelConfig.js +0 -223
- package/dist/components/ModelConfig.js.map +0 -7
- package/dist/components/ModelListManager.js +0 -142
- package/dist/components/ModelListManager.js.map +0 -7
- package/dist/components/ModelSelector/BrandTextInput.js +0 -43
- package/dist/components/ModelSelector/BrandTextInput.js.map +0 -7
- package/dist/components/ModelSelector/ModelSelector.js +0 -2103
- package/dist/components/ModelSelector/ModelSelector.js.map +0 -7
- package/dist/components/ModelSelector/ScreenContainer.js +0 -27
- package/dist/components/ModelSelector/ScreenContainer.js.map +0 -7
- package/dist/components/ModelSelector/WizardContainer.js +0 -45
- package/dist/components/ModelSelector/WizardContainer.js.map +0 -7
- package/dist/components/ModelSelector/constants.js +0 -37
- package/dist/components/ModelSelector/constants.js.map +0 -7
- package/dist/components/ModelSelector/hooks/index.js +0 -5
- package/dist/components/ModelSelector/hooks/index.js.map +0 -7
- package/dist/components/ModelSelector/hooks/useEscapeNavigation.js +0 -21
- package/dist/components/ModelSelector/hooks/useEscapeNavigation.js.map +0 -7
- package/dist/components/ModelSelector/index.js +0 -15
- package/dist/components/ModelSelector/index.js.map +0 -7
- package/dist/components/ModelSelector/types.js +0 -1
- package/dist/components/ModelSelector/types.js.map +0 -7
- package/dist/components/Onboarding.js +0 -159
- package/dist/components/Onboarding.js.map +0 -7
- package/dist/components/OperationSummary.js +0 -130
- package/dist/components/OperationSummary.js.map +0 -7
- package/dist/components/PressEnterToContinue.js +0 -10
- package/dist/components/PressEnterToContinue.js.map +0 -7
- package/dist/components/ProgressBar.js +0 -74
- package/dist/components/ProgressBar.js.map +0 -7
- package/dist/components/ProjectOnboarding.js +0 -99
- package/dist/components/ProjectOnboarding.js.map +0 -7
- package/dist/components/PromptInput.js +0 -1067
- package/dist/components/PromptInput.js.map +0 -7
- package/dist/components/PulseLabel.js +0 -44
- package/dist/components/PulseLabel.js.map +0 -7
- package/dist/components/QuitSummary.js +0 -88
- package/dist/components/QuitSummary.js.map +0 -7
- package/dist/components/RequestStatusIndicator.js +0 -194
- package/dist/components/RequestStatusIndicator.js.map +0 -7
- package/dist/components/RewindPanel.js +0 -272
- package/dist/components/RewindPanel.js.map +0 -7
- package/dist/components/SensitiveFileWarning.js +0 -35
- package/dist/components/SensitiveFileWarning.js.map +0 -7
- package/dist/components/SentryErrorBoundary.js +0 -27
- package/dist/components/SentryErrorBoundary.js.map +0 -7
- package/dist/components/SimpleSelector/SimpleSelector.js +0 -154
- package/dist/components/SimpleSelector/SimpleSelector.js.map +0 -7
- package/dist/components/SimpleSelector/index.js +0 -5
- package/dist/components/SimpleSelector/index.js.map +0 -7
- package/dist/components/SimpleSelector/types.js +0 -1
- package/dist/components/SimpleSelector/types.js.map +0 -7
- package/dist/components/Spinner.js +0 -174
- package/dist/components/Spinner.js.map +0 -7
- package/dist/components/SpinnerSymbol.js +0 -72
- package/dist/components/SpinnerSymbol.js.map +0 -7
- package/dist/components/StartupStatus.js +0 -57
- package/dist/components/StartupStatus.js.map +0 -7
- package/dist/components/StatusOverlayContent.js +0 -21
- package/dist/components/StatusOverlayContent.js.map +0 -7
- package/dist/components/StreamingBashOutput.js +0 -71
- package/dist/components/StreamingBashOutput.js.map +0 -7
- package/dist/components/StreamingTextPreview.js +0 -29
- package/dist/components/StreamingTextPreview.js.map +0 -7
- package/dist/components/StructuredDiff.js +0 -146
- package/dist/components/StructuredDiff.js.map +0 -7
- package/dist/components/SubagentBlock.js +0 -197
- package/dist/components/SubagentBlock.js.map +0 -7
- package/dist/components/SubagentManager.js +0 -65
- package/dist/components/SubagentManager.js.map +0 -7
- package/dist/components/SubagentProgress.js +0 -123
- package/dist/components/SubagentProgress.js.map +0 -7
- package/dist/components/SubagentStatusMarker.js +0 -37
- package/dist/components/SubagentStatusMarker.js.map +0 -7
- package/dist/components/TabbedListView/ScrollableList.js +0 -117
- package/dist/components/TabbedListView/ScrollableList.js.map +0 -7
- package/dist/components/TabbedListView/SearchInput.js +0 -23
- package/dist/components/TabbedListView/SearchInput.js.map +0 -7
- package/dist/components/TabbedListView/TabBar.js +0 -25
- package/dist/components/TabbedListView/TabBar.js.map +0 -7
- package/dist/components/TabbedListView/TabbedListView.js +0 -292
- package/dist/components/TabbedListView/TabbedListView.js.map +0 -7
- package/dist/components/TabbedListView/index.js +0 -11
- package/dist/components/TabbedListView/index.js.map +0 -7
- package/dist/components/TabbedListView/types.js +0 -1
- package/dist/components/TabbedListView/types.js.map +0 -7
- package/dist/components/TaskCard.js +0 -176
- package/dist/components/TaskCard.js.map +0 -7
- package/dist/components/TeamMemberPanel.js +0 -107
- package/dist/components/TeamMemberPanel.js.map +0 -7
- package/dist/components/TextInput.js +0 -108
- package/dist/components/TextInput.js.map +0 -7
- package/dist/components/ThinkingSelector.js +0 -84
- package/dist/components/ThinkingSelector.js.map +0 -7
- package/dist/components/TimelineRenderer.js +0 -31
- package/dist/components/TimelineRenderer.js.map +0 -7
- package/dist/components/TitledDivider.js +0 -26
- package/dist/components/TitledDivider.js.map +0 -7
- package/dist/components/TodoChangeBlock.js +0 -30
- package/dist/components/TodoChangeBlock.js.map +0 -7
- package/dist/components/TodoChangeLine.js +0 -22
- package/dist/components/TodoChangeLine.js.map +0 -7
- package/dist/components/TodoItem.js +0 -35
- package/dist/components/TodoItem.js.map +0 -7
- package/dist/components/TodoPanel.js +0 -167
- package/dist/components/TodoPanel.js.map +0 -7
- package/dist/components/TokenCounter.js +0 -74
- package/dist/components/TokenCounter.js.map +0 -7
- package/dist/components/TokenWarning.js +0 -41
- package/dist/components/TokenWarning.js.map +0 -7
- package/dist/components/ToolExecutionBlock.js +0 -18
- package/dist/components/ToolExecutionBlock.js.map +0 -7
- package/dist/components/ToolUseLoader.js +0 -29
- package/dist/components/ToolUseLoader.js.map +0 -7
- package/dist/components/TreeConnector.js +0 -26
- package/dist/components/TreeConnector.js.map +0 -7
- package/dist/components/TrustDialog.js +0 -71
- package/dist/components/TrustDialog.js.map +0 -7
- package/dist/components/TurnCompletionIndicator.js +0 -18
- package/dist/components/TurnCompletionIndicator.js.map +0 -7
- package/dist/components/UserQueryBlock.js +0 -12
- package/dist/components/UserQueryBlock.js.map +0 -7
- package/dist/components/binary-feedback/BinaryFeedback.js +0 -50
- package/dist/components/binary-feedback/BinaryFeedback.js.map +0 -7
- package/dist/components/binary-feedback/BinaryFeedbackOption.js +0 -92
- package/dist/components/binary-feedback/BinaryFeedbackOption.js.map +0 -7
- package/dist/components/binary-feedback/BinaryFeedbackView.js +0 -140
- package/dist/components/binary-feedback/BinaryFeedbackView.js.map +0 -7
- package/dist/components/binary-feedback/utils.js +0 -108
- package/dist/components/binary-feedback/utils.js.map +0 -7
- package/dist/components/messages/AssistantBashOutputMessage.js +0 -23
- package/dist/components/messages/AssistantBashOutputMessage.js.map +0 -7
- package/dist/components/messages/AssistantLocalCommandOutputMessage.js +0 -36
- package/dist/components/messages/AssistantLocalCommandOutputMessage.js.map +0 -7
- package/dist/components/messages/AssistantRedactedThinkingMessage.js +0 -12
- package/dist/components/messages/AssistantRedactedThinkingMessage.js.map +0 -7
- package/dist/components/messages/AssistantTextMessage.js +0 -92
- package/dist/components/messages/AssistantTextMessage.js.map +0 -7
- package/dist/components/messages/AssistantThinkingMessage.js +0 -42
- package/dist/components/messages/AssistantThinkingMessage.js.map +0 -7
- package/dist/components/messages/AssistantToolUseMessage.js +0 -108
- package/dist/components/messages/AssistantToolUseMessage.js.map +0 -7
- package/dist/components/messages/DefaultToolResultFallback.js +0 -11
- package/dist/components/messages/DefaultToolResultFallback.js.map +0 -7
- package/dist/components/messages/GroupRenderer.js +0 -54
- package/dist/components/messages/GroupRenderer.js.map +0 -7
- package/dist/components/messages/NestedTasksPreview.js +0 -24
- package/dist/components/messages/NestedTasksPreview.js.map +0 -7
- package/dist/components/messages/ParallelTasksGroupView.js +0 -101
- package/dist/components/messages/ParallelTasksGroupView.js.map +0 -7
- package/dist/components/messages/TaskInModuleView.js +0 -218
- package/dist/components/messages/TaskInModuleView.js.map +0 -7
- package/dist/components/messages/TaskOutputContent.js +0 -56
- package/dist/components/messages/TaskOutputContent.js.map +0 -7
- package/dist/components/messages/TaskProgressMessage.js +0 -11
- package/dist/components/messages/TaskProgressMessage.js.map +0 -7
- package/dist/components/messages/TaskToolMessage.js +0 -39
- package/dist/components/messages/TaskToolMessage.js.map +0 -7
- package/dist/components/messages/UserBashInputMessage.js +0 -18
- package/dist/components/messages/UserBashInputMessage.js.map +0 -7
- package/dist/components/messages/UserCommandMessage.js +0 -20
- package/dist/components/messages/UserCommandMessage.js.map +0 -7
- package/dist/components/messages/UserGuidanceMessage.js +0 -26
- package/dist/components/messages/UserGuidanceMessage.js.map +0 -7
- package/dist/components/messages/UserKodingInputMessage.js +0 -18
- package/dist/components/messages/UserKodingInputMessage.js.map +0 -7
- package/dist/components/messages/UserPromptMessage.js +0 -26
- package/dist/components/messages/UserPromptMessage.js.map +0 -7
- package/dist/components/messages/UserTeamNotificationMessage.js +0 -91
- package/dist/components/messages/UserTeamNotificationMessage.js.map +0 -7
- package/dist/components/messages/UserTextMessage.js +0 -33
- package/dist/components/messages/UserTextMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js +0 -11
- package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js +0 -15
- package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js +0 -27
- package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js +0 -64
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js +0 -33
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/utils.js +0 -50
- package/dist/components/messages/UserToolResultMessage/utils.js.map +0 -7
- package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js +0 -112
- package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js.map +0 -7
- package/dist/components/permissions/FallbackPermissionRequest.js +0 -131
- package/dist/components/permissions/FallbackPermissionRequest.js.map +0 -7
- package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js +0 -159
- package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js.map +0 -7
- package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js +0 -58
- package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js.map +0 -7
- package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js +0 -153
- package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js.map +0 -7
- package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js +0 -70
- package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js.map +0 -7
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +0 -212
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js.map +0 -7
- package/dist/components/permissions/PermissionRequest.js +0 -74
- package/dist/components/permissions/PermissionRequest.js.map +0 -7
- package/dist/components/permissions/PermissionRequestTitle.js +0 -52
- package/dist/components/permissions/PermissionRequestTitle.js.map +0 -7
- package/dist/components/permissions/PlanApprovalRequest.js +0 -164
- package/dist/components/permissions/PlanApprovalRequest.js.map +0 -7
- package/dist/components/permissions/hooks.js +0 -23
- package/dist/components/permissions/hooks.js.map +0 -7
- package/dist/components/permissions/toolUseOptions.js +0 -46
- package/dist/components/permissions/toolUseOptions.js.map +0 -7
- package/dist/components/permissions/utils.js +0 -21
- package/dist/components/permissions/utils.js.map +0 -7
- package/dist/constants/agentTeams.js +0 -17
- package/dist/constants/agentTeams.js.map +0 -7
- package/dist/constants/claude-asterisk-ascii-art.js +0 -242
- package/dist/constants/claude-asterisk-ascii-art.js.map +0 -7
- package/dist/constants/colors.js +0 -192
- package/dist/constants/colors.js.map +0 -7
- package/dist/constants/compressionPrompts.js +0 -73
- package/dist/constants/compressionPrompts.js.map +0 -7
- package/dist/constants/figures.js +0 -6
- package/dist/constants/figures.js.map +0 -7
- package/dist/constants/formatRules.js +0 -102
- package/dist/constants/formatRules.js.map +0 -7
- package/dist/constants/macros.js +0 -12
- package/dist/constants/macros.js.map +0 -7
- package/dist/constants/modelCapabilities.js +0 -239
- package/dist/constants/modelCapabilities.js.map +0 -7
- package/dist/constants/models.js +0 -1034
- package/dist/constants/models.js.map +0 -7
- package/dist/constants/oauth.js +0 -18
- package/dist/constants/oauth.js.map +0 -7
- package/dist/constants/product.js +0 -28
- package/dist/constants/product.js.map +0 -7
- package/dist/constants/prompts/agentPrompt.js +0 -31
- package/dist/constants/prompts/agentPrompt.js.map +0 -7
- package/dist/constants/prompts/autoMemory.js +0 -39
- package/dist/constants/prompts/autoMemory.js.map +0 -7
- package/dist/constants/prompts/codeConventions.js +0 -15
- package/dist/constants/prompts/codeConventions.js.map +0 -7
- package/dist/constants/prompts/doingTasks.js +0 -34
- package/dist/constants/prompts/doingTasks.js.map +0 -7
- package/dist/constants/prompts/envInfo.js +0 -16
- package/dist/constants/prompts/envInfo.js.map +0 -7
- package/dist/constants/prompts/executingWithCare.js +0 -17
- package/dist/constants/prompts/executingWithCare.js.map +0 -7
- package/dist/constants/prompts/identity.js +0 -10
- package/dist/constants/prompts/identity.js.map +0 -7
- package/dist/constants/prompts/index.js +0 -100
- package/dist/constants/prompts/index.js.map +0 -7
- package/dist/constants/prompts/taskManagement.js +0 -19
- package/dist/constants/prompts/taskManagement.js.map +0 -7
- package/dist/constants/prompts/teamOverlays.js +0 -50
- package/dist/constants/prompts/teamOverlays.js.map +0 -7
- package/dist/constants/prompts/toneAndStyle.js +0 -37
- package/dist/constants/prompts/toneAndStyle.js.map +0 -7
- package/dist/constants/prompts/toolUsagePolicy.js +0 -23
- package/dist/constants/prompts/toolUsagePolicy.js.map +0 -7
- package/dist/constants/prompts.js +0 -13
- package/dist/constants/prompts.js.map +0 -7
- package/dist/constants/providerRegistry.js +0 -235
- package/dist/constants/providerRegistry.js.map +0 -7
- package/dist/constants/providers.js +0 -35
- package/dist/constants/providers.js.map +0 -7
- package/dist/constants/releaseNotes.js +0 -9
- package/dist/constants/releaseNotes.js.map +0 -7
- package/dist/constants/symbols.js +0 -108
- package/dist/constants/symbols.js.map +0 -7
- package/dist/constants/timing.js +0 -39
- package/dist/constants/timing.js.map +0 -7
- package/dist/constants/toolInputExamples.js +0 -88
- package/dist/constants/toolInputExamples.js.map +0 -7
- package/dist/context/PermissionContext.js +0 -110
- package/dist/context/PermissionContext.js.map +0 -7
- package/dist/context.js +0 -367
- package/dist/context.js.map +0 -7
- package/dist/core/backupHook.js +0 -29
- package/dist/core/backupHook.js.map +0 -7
- package/dist/core/backupManager.js +0 -321
- package/dist/core/backupManager.js.map +0 -7
- package/dist/core/config/defaults.js +0 -93
- package/dist/core/config/defaults.js.map +0 -7
- package/dist/core/config/index.js +0 -111
- package/dist/core/config/index.js.map +0 -7
- package/dist/core/config/loader.js +0 -221
- package/dist/core/config/loader.js.map +0 -7
- package/dist/core/config/migrations.js +0 -128
- package/dist/core/config/migrations.js.map +0 -7
- package/dist/core/config/schema.js +0 -196
- package/dist/core/config/schema.js.map +0 -7
- package/dist/core/costTracker.js +0 -131
- package/dist/core/costTracker.js.map +0 -7
- package/dist/core/gitAutoCommit.js +0 -287
- package/dist/core/gitAutoCommit.js.map +0 -7
- package/dist/core/index.js +0 -7
- package/dist/core/index.js.map +0 -7
- package/dist/core/operationTracker.js +0 -212
- package/dist/core/operationTracker.js.map +0 -7
- package/dist/core/permissions/auditLog.js +0 -204
- package/dist/core/permissions/auditLog.js.map +0 -7
- package/dist/core/permissions/engine/index.js +0 -3
- package/dist/core/permissions/engine/index.js.map +0 -7
- package/dist/core/permissions/engine/permissionEngine.js +0 -106
- package/dist/core/permissions/engine/permissionEngine.js.map +0 -7
- package/dist/core/permissions/engine/types.js +0 -1
- package/dist/core/permissions/engine/types.js.map +0 -7
- package/dist/core/permissions/index.js +0 -84
- package/dist/core/permissions/index.js.map +0 -7
- package/dist/core/permissions/ruleEngine.js +0 -259
- package/dist/core/permissions/ruleEngine.js.map +0 -7
- package/dist/core/permissions/rules/allowedToolsRule.js +0 -62
- package/dist/core/permissions/rules/allowedToolsRule.js.map +0 -7
- package/dist/core/permissions/rules/autoEscalationRule.js +0 -296
- package/dist/core/permissions/rules/autoEscalationRule.js.map +0 -7
- package/dist/core/permissions/rules/index.js +0 -46
- package/dist/core/permissions/rules/index.js.map +0 -7
- package/dist/core/permissions/rules/planModeRule.js +0 -55
- package/dist/core/permissions/rules/planModeRule.js.map +0 -7
- package/dist/core/permissions/rules/projectBoundaryRule.js +0 -173
- package/dist/core/permissions/rules/projectBoundaryRule.js.map +0 -7
- package/dist/core/permissions/rules/safeModeRule.js +0 -65
- package/dist/core/permissions/rules/safeModeRule.js.map +0 -7
- package/dist/core/permissions/rules/sensitivePathsRule.js +0 -345
- package/dist/core/permissions/rules/sensitivePathsRule.js.map +0 -7
- package/dist/core/permissions/types.js +0 -127
- package/dist/core/permissions/types.js.map +0 -7
- package/dist/core/tokenStats.js +0 -9
- package/dist/core/tokenStats.js.map +0 -7
- package/dist/core/tokenStatsManager.js +0 -354
- package/dist/core/tokenStatsManager.js.map +0 -7
- package/dist/core/tools/executor.js +0 -143
- package/dist/core/tools/executor.js.map +0 -7
- package/dist/core/tools/index.js +0 -15
- package/dist/core/tools/index.js.map +0 -7
- package/dist/core/tools/registry.js +0 -183
- package/dist/core/tools/registry.js.map +0 -7
- package/dist/core/tools/types.js +0 -1
- package/dist/core/tools/types.js.map +0 -7
- package/dist/cost-tracker.js +0 -68
- package/dist/cost-tracker.js.map +0 -7
- package/dist/engine/AgentEngine.js +0 -902
- package/dist/engine/AgentEngine.js.map +0 -7
- package/dist/engine/EngineRegistry.js +0 -89
- package/dist/engine/EngineRegistry.js.map +0 -7
- package/dist/engine/foregroundAdapter.js +0 -191
- package/dist/engine/foregroundAdapter.js.map +0 -7
- package/dist/engine/index.js +0 -15
- package/dist/engine/index.js.map +0 -7
- package/dist/engine/types.js +0 -1
- package/dist/engine/types.js.map +0 -7
- package/dist/entrypoints/bootstrap.js +0 -56
- package/dist/entrypoints/bootstrap.js.map +0 -7
- package/dist/entrypoints/cli.js +0 -1721
- package/dist/entrypoints/cli.js.map +0 -7
- package/dist/entrypoints/mcp.js +0 -153
- package/dist/entrypoints/mcp.js.map +0 -7
- package/dist/history.js +0 -96
- package/dist/history.js.map +0 -7
- package/dist/hooks/useAgentEngine.js +0 -129
- package/dist/hooks/useAgentEngine.js.map +0 -7
- package/dist/hooks/useAgentTokenStats.js +0 -56
- package/dist/hooks/useAgentTokenStats.js.map +0 -7
- package/dist/hooks/useAgentTranscripts.js +0 -141
- package/dist/hooks/useAgentTranscripts.js.map +0 -7
- package/dist/hooks/useAnimationSync.js +0 -53
- package/dist/hooks/useAnimationSync.js.map +0 -7
- package/dist/hooks/useApiKeyVerification.js +0 -12
- package/dist/hooks/useApiKeyVerification.js.map +0 -7
- package/dist/hooks/useArrowKeyHistory.js +0 -52
- package/dist/hooks/useArrowKeyHistory.js.map +0 -7
- package/dist/hooks/useAskUser.js +0 -24
- package/dist/hooks/useAskUser.js.map +0 -7
- package/dist/hooks/useBackgroundShells.js +0 -29
- package/dist/hooks/useBackgroundShells.js.map +0 -7
- package/dist/hooks/useCanUseTool.js +0 -134
- package/dist/hooks/useCanUseTool.js.map +0 -7
- package/dist/hooks/useDeferredLoading.js +0 -67
- package/dist/hooks/useDeferredLoading.js.map +0 -7
- package/dist/hooks/useDoublePress.js +0 -31
- package/dist/hooks/useDoublePress.js.map +0 -7
- package/dist/hooks/useExitOnCtrlCD.js +0 -30
- package/dist/hooks/useExitOnCtrlCD.js.map +0 -7
- package/dist/hooks/useHistorySearch.js +0 -62
- package/dist/hooks/useHistorySearch.js.map +0 -7
- package/dist/hooks/useHookStatus.js +0 -40
- package/dist/hooks/useHookStatus.js.map +0 -7
- package/dist/hooks/useIdleNotifications.js +0 -66
- package/dist/hooks/useIdleNotifications.js.map +0 -7
- package/dist/hooks/useInterval.js +0 -18
- package/dist/hooks/useInterval.js.map +0 -7
- package/dist/hooks/useLogMessages.js +0 -41
- package/dist/hooks/useLogMessages.js.map +0 -7
- package/dist/hooks/useLogStartupTime.js +0 -10
- package/dist/hooks/useLogStartupTime.js.map +0 -7
- package/dist/hooks/useMessageGroups.js +0 -43
- package/dist/hooks/useMessageGroups.js.map +0 -7
- package/dist/hooks/useNotifyAfterTimeout.js +0 -42
- package/dist/hooks/useNotifyAfterTimeout.js.map +0 -7
- package/dist/hooks/usePermissionRequestLogging.js +0 -23
- package/dist/hooks/usePermissionRequestLogging.js.map +0 -7
- package/dist/hooks/useSessionTracking.js +0 -57
- package/dist/hooks/useSessionTracking.js.map +0 -7
- package/dist/hooks/useTeamMembers.js +0 -51
- package/dist/hooks/useTeamMembers.js.map +0 -7
- package/dist/hooks/useTerminalSize.js +0 -115
- package/dist/hooks/useTerminalSize.js.map +0 -7
- package/dist/hooks/useTextInput.js +0 -253
- package/dist/hooks/useTextInput.js.map +0 -7
- package/dist/hooks/useUnifiedCompletion.js +0 -1098
- package/dist/hooks/useUnifiedCompletion.js.map +0 -7
- package/dist/i18n/index.js +0 -109
- package/dist/i18n/index.js.map +0 -7
- package/dist/i18n/locales/en.js +0 -993
- package/dist/i18n/locales/en.js.map +0 -7
- package/dist/i18n/locales/index.js +0 -7
- package/dist/i18n/locales/index.js.map +0 -7
- package/dist/i18n/locales/zh-CN.js +0 -993
- package/dist/i18n/locales/zh-CN.js.map +0 -7
- package/dist/i18n/types.js +0 -8
- package/dist/i18n/types.js.map +0 -7
- package/dist/index.js +0 -5
- package/dist/index.js.map +0 -7
- package/dist/messages.js +0 -68
- package/dist/messages.js.map +0 -7
- package/dist/package.json +0 -4
- package/dist/permissions.js +0 -536
- package/dist/permissions.js.map +0 -7
- package/dist/query.js +0 -851
- package/dist/query.js.map +0 -7
- package/dist/screens/LogList.js +0 -55
- package/dist/screens/LogList.js.map +0 -7
- package/dist/screens/REPL.js +0 -1240
- package/dist/screens/REPL.js.map +0 -7
- package/dist/screens/ResumeConversation.js +0 -244
- package/dist/screens/ResumeConversation.js.map +0 -7
- package/dist/services/adapters/base.js +0 -29
- package/dist/services/adapters/base.js.map +0 -7
- package/dist/services/adapters/chatCompletions.js +0 -71
- package/dist/services/adapters/chatCompletions.js.map +0 -7
- package/dist/services/adapters/messageNormalizer.js +0 -354
- package/dist/services/adapters/messageNormalizer.js.map +0 -7
- package/dist/services/adapters/responsesAPI.js +0 -137
- package/dist/services/adapters/responsesAPI.js.map +0 -7
- package/dist/services/agentTeams/backends/headless.js +0 -108
- package/dist/services/agentTeams/backends/headless.js.map +0 -7
- package/dist/services/agentTeams/backends/inProcess.js +0 -102
- package/dist/services/agentTeams/backends/inProcess.js.map +0 -7
- package/dist/services/agentTeams/backends/resolver.js +0 -18
- package/dist/services/agentTeams/backends/resolver.js.map +0 -7
- package/dist/services/agentTeams/backends/tmux.js +0 -168
- package/dist/services/agentTeams/backends/tmux.js.map +0 -7
- package/dist/services/agentTeams/backends/types.js +0 -1
- package/dist/services/agentTeams/backends/types.js.map +0 -7
- package/dist/services/agentTeams/heartbeat.js +0 -88
- package/dist/services/agentTeams/heartbeat.js.map +0 -7
- package/dist/services/agentTeams/index.js +0 -75
- package/dist/services/agentTeams/index.js.map +0 -7
- package/dist/services/agentTeams/injectionChannel.js +0 -105
- package/dist/services/agentTeams/injectionChannel.js.map +0 -7
- package/dist/services/agentTeams/mailbox.js +0 -494
- package/dist/services/agentTeams/mailbox.js.map +0 -7
- package/dist/services/agentTeams/messageFormatter.js +0 -80
- package/dist/services/agentTeams/messageFormatter.js.map +0 -7
- package/dist/services/agentTeams/permissionDelegation.js +0 -71
- package/dist/services/agentTeams/permissionDelegation.js.map +0 -7
- package/dist/services/agentTeams/teamEvents.js +0 -45
- package/dist/services/agentTeams/teamEvents.js.map +0 -7
- package/dist/services/agentTeams/teamManager.js +0 -366
- package/dist/services/agentTeams/teamManager.js.map +0 -7
- package/dist/services/agentTeams/teamTaskStore.js +0 -343
- package/dist/services/agentTeams/teamTaskStore.js.map +0 -7
- package/dist/services/agentTeams/teammateSpawner.js +0 -161
- package/dist/services/agentTeams/teammateSpawner.js.map +0 -7
- package/dist/services/checkpointManager.js +0 -399
- package/dist/services/checkpointManager.js.map +0 -7
- package/dist/services/claude.js +0 -41
- package/dist/services/claude.js.map +0 -7
- package/dist/services/compressionService.js +0 -259
- package/dist/services/compressionService.js.map +0 -7
- package/dist/services/contextMonitor.js +0 -162
- package/dist/services/contextMonitor.js.map +0 -7
- package/dist/services/customCommands.js +0 -489
- package/dist/services/customCommands.js.map +0 -7
- package/dist/services/fileFreshness.js +0 -275
- package/dist/services/fileFreshness.js.map +0 -7
- package/dist/services/gpt5ConnectionTest.js +0 -263
- package/dist/services/gpt5ConnectionTest.js.map +0 -7
- package/dist/services/hookExecutor.js +0 -771
- package/dist/services/hookExecutor.js.map +0 -7
- package/dist/services/intelligentCompactor.js +0 -281
- package/dist/services/intelligentCompactor.js.map +0 -7
- package/dist/services/llm/anthropicProvider.js +0 -804
- package/dist/services/llm/anthropicProvider.js.map +0 -7
- package/dist/services/llm/dispatch.js +0 -237
- package/dist/services/llm/dispatch.js.map +0 -7
- package/dist/services/llm/index.js +0 -44
- package/dist/services/llm/index.js.map +0 -7
- package/dist/services/llm/mintoContext.js +0 -69
- package/dist/services/llm/mintoContext.js.map +0 -7
- package/dist/services/llm/openaiProvider.js +0 -601
- package/dist/services/llm/openaiProvider.js.map +0 -7
- package/dist/services/llm/types.js +0 -231
- package/dist/services/llm/types.js.map +0 -7
- package/dist/services/lspConfig.js +0 -109
- package/dist/services/lspConfig.js.map +0 -7
- package/dist/services/mainAgentCompressor.js +0 -84
- package/dist/services/mainAgentCompressor.js.map +0 -7
- package/dist/services/mcpClient.js +0 -997
- package/dist/services/mcpClient.js.map +0 -7
- package/dist/services/mcpServerApproval.js +0 -55
- package/dist/services/mcpServerApproval.js.map +0 -7
- package/dist/services/mentionProcessor.js +0 -214
- package/dist/services/mentionProcessor.js.map +0 -7
- package/dist/services/mintoAuth.js +0 -299
- package/dist/services/mintoAuth.js.map +0 -7
- package/dist/services/modelAdapterFactory.js +0 -47
- package/dist/services/modelAdapterFactory.js.map +0 -7
- package/dist/services/modelOrchestrator.js +0 -310
- package/dist/services/modelOrchestrator.js.map +0 -7
- package/dist/services/notifier.js +0 -49
- package/dist/services/notifier.js.map +0 -7
- package/dist/services/oauth.js +0 -249
- package/dist/services/oauth.js.map +0 -7
- package/dist/services/openai.js +0 -1120
- package/dist/services/openai.js.map +0 -7
- package/dist/services/outputStyles.js +0 -219
- package/dist/services/outputStyles.js.map +0 -7
- package/dist/services/plugins/index.js +0 -5
- package/dist/services/plugins/index.js.map +0 -7
- package/dist/services/plugins/lspServers.js +0 -188
- package/dist/services/plugins/lspServers.js.map +0 -7
- package/dist/services/plugins/pluginRuntime.js +0 -236
- package/dist/services/plugins/pluginRuntime.js.map +0 -7
- package/dist/services/plugins/pluginValidation.js +0 -228
- package/dist/services/plugins/pluginValidation.js.map +0 -7
- package/dist/services/plugins/skillMarketplace.js +0 -567
- package/dist/services/plugins/skillMarketplace.js.map +0 -7
- package/dist/services/responseStateManager.js +0 -102
- package/dist/services/responseStateManager.js.map +0 -7
- package/dist/services/sandbox/filesystemBoundary.js +0 -341
- package/dist/services/sandbox/filesystemBoundary.js.map +0 -7
- package/dist/services/sandbox/index.js +0 -14
- package/dist/services/sandbox/index.js.map +0 -7
- package/dist/services/sandbox/networkProxy.js +0 -293
- package/dist/services/sandbox/networkProxy.js.map +0 -7
- package/dist/services/sandbox/sandboxController.js +0 -582
- package/dist/services/sandbox/sandboxController.js.map +0 -7
- package/dist/services/sandbox/types.js +0 -50
- package/dist/services/sandbox/types.js.map +0 -7
- package/dist/services/sentry.js +0 -9
- package/dist/services/sentry.js.map +0 -7
- package/dist/services/sessionMemory.js +0 -279
- package/dist/services/sessionMemory.js.map +0 -7
- package/dist/services/sessionMemoryInjector.js +0 -77
- package/dist/services/sessionMemoryInjector.js.map +0 -7
- package/dist/services/subagentAbortManager.js +0 -95
- package/dist/services/subagentAbortManager.js.map +0 -7
- package/dist/services/subagentCompressor.js +0 -146
- package/dist/services/subagentCompressor.js.map +0 -7
- package/dist/services/systemReminder.js +0 -815
- package/dist/services/systemReminder.js.map +0 -7
- package/dist/services/taskRouter.js +0 -324
- package/dist/services/taskRouter.js.map +0 -7
- package/dist/services/taskStore.js +0 -415
- package/dist/services/taskStore.js.map +0 -7
- package/dist/services/topicDetector.js +0 -169
- package/dist/services/topicDetector.js.map +0 -7
- package/dist/services/vcr.js +0 -133
- package/dist/services/vcr.js.map +0 -7
- package/dist/tools/ArchitectTool/ArchitectTool.js +0 -126
- package/dist/tools/ArchitectTool/ArchitectTool.js.map +0 -7
- package/dist/tools/ArchitectTool/prompt.js +0 -18
- package/dist/tools/ArchitectTool/prompt.js.map +0 -7
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js +0 -420
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js.map +0 -7
- package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js +0 -158
- package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js.map +0 -7
- package/dist/tools/AskUserQuestionTool/index.js +0 -5
- package/dist/tools/AskUserQuestionTool/index.js.map +0 -7
- package/dist/tools/AskUserQuestionTool/prompt.js +0 -167
- package/dist/tools/AskUserQuestionTool/prompt.js.map +0 -7
- package/dist/tools/BaseTool.js +0 -72
- package/dist/tools/BaseTool.js.map +0 -7
- package/dist/tools/BashOutputTool/BashOutputTool.js +0 -120
- package/dist/tools/BashOutputTool/BashOutputTool.js.map +0 -7
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js +0 -14
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js.map +0 -7
- package/dist/tools/BashOutputTool/prompt.js +0 -13
- package/dist/tools/BashOutputTool/prompt.js.map +0 -7
- package/dist/tools/BashTool/BashTool.js +0 -353
- package/dist/tools/BashTool/BashTool.js.map +0 -7
- package/dist/tools/BashTool/BashToolResultMessage.js +0 -24
- package/dist/tools/BashTool/BashToolResultMessage.js.map +0 -7
- package/dist/tools/BashTool/OutputLine.js +0 -84
- package/dist/tools/BashTool/OutputLine.js.map +0 -7
- package/dist/tools/BashTool/prompt.js +0 -496
- package/dist/tools/BashTool/prompt.js.map +0 -7
- package/dist/tools/BashTool/utils.js +0 -89
- package/dist/tools/BashTool/utils.js.map +0 -7
- package/dist/tools/EnterWorktreeTool/EnterWorktreeTool.js +0 -121
- package/dist/tools/EnterWorktreeTool/EnterWorktreeTool.js.map +0 -7
- package/dist/tools/EnterWorktreeTool/prompt.js +0 -22
- package/dist/tools/EnterWorktreeTool/prompt.js.map +0 -7
- package/dist/tools/FileEditTool/FileEditTool.js +0 -278
- package/dist/tools/FileEditTool/FileEditTool.js.map +0 -7
- package/dist/tools/FileEditTool/prompt.js +0 -56
- package/dist/tools/FileEditTool/prompt.js.map +0 -7
- package/dist/tools/FileEditTool/utils.js +0 -48
- package/dist/tools/FileEditTool/utils.js.map +0 -7
- package/dist/tools/FileReadTool/FileReadTool.js +0 -427
- package/dist/tools/FileReadTool/FileReadTool.js.map +0 -7
- package/dist/tools/FileReadTool/prompt.js +0 -24
- package/dist/tools/FileReadTool/prompt.js.map +0 -7
- package/dist/tools/FileWriteTool/FileWriteTool.js +0 -211
- package/dist/tools/FileWriteTool/FileWriteTool.js.map +0 -7
- package/dist/tools/FileWriteTool/prompt.js +0 -21
- package/dist/tools/FileWriteTool/prompt.js.map +0 -7
- package/dist/tools/GlobTool/GlobTool.js +0 -100
- package/dist/tools/GlobTool/GlobTool.js.map +0 -7
- package/dist/tools/GlobTool/prompt.js +0 -23
- package/dist/tools/GlobTool/prompt.js.map +0 -7
- package/dist/tools/GrepTool/GrepTool.js +0 -417
- package/dist/tools/GrepTool/GrepTool.js.map +0 -7
- package/dist/tools/GrepTool/prompt.js +0 -22
- package/dist/tools/GrepTool/prompt.js.map +0 -7
- package/dist/tools/KillShellTool/KillShellTool.js +0 -92
- package/dist/tools/KillShellTool/KillShellTool.js.map +0 -7
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js +0 -14
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js.map +0 -7
- package/dist/tools/KillShellTool/prompt.js +0 -12
- package/dist/tools/KillShellTool/prompt.js.map +0 -7
- package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js +0 -109
- package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js.map +0 -7
- package/dist/tools/ListMcpResourcesTool/prompt.js +0 -19
- package/dist/tools/ListMcpResourcesTool/prompt.js.map +0 -7
- package/dist/tools/LspTool/LspTool.js +0 -673
- package/dist/tools/LspTool/LspTool.js.map +0 -7
- package/dist/tools/LspTool/prompt.js +0 -27
- package/dist/tools/LspTool/prompt.js.map +0 -7
- package/dist/tools/MCPSearchTool/MCPSearchTool.js +0 -172
- package/dist/tools/MCPSearchTool/MCPSearchTool.js.map +0 -7
- package/dist/tools/MCPSearchTool/prompt.js +0 -77
- package/dist/tools/MCPSearchTool/prompt.js.map +0 -7
- package/dist/tools/MCPTool/MCPTool.js +0 -97
- package/dist/tools/MCPTool/MCPTool.js.map +0 -7
- package/dist/tools/MCPTool/prompt.js +0 -7
- package/dist/tools/MCPTool/prompt.js.map +0 -7
- package/dist/tools/MemoryReadTool/MemoryReadTool.js +0 -117
- package/dist/tools/MemoryReadTool/MemoryReadTool.js.map +0 -7
- package/dist/tools/MemoryReadTool/prompt.js +0 -7
- package/dist/tools/MemoryReadTool/prompt.js.map +0 -7
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js +0 -78
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js.map +0 -7
- package/dist/tools/MemoryWriteTool/prompt.js +0 -7
- package/dist/tools/MemoryWriteTool/prompt.js.map +0 -7
- package/dist/tools/MultiEditTool/MultiEditTool.js +0 -328
- package/dist/tools/MultiEditTool/MultiEditTool.js.map +0 -7
- package/dist/tools/MultiEditTool/prompt.js +0 -47
- package/dist/tools/MultiEditTool/prompt.js.map +0 -7
- package/dist/tools/NotebookEditTool/NotebookEditTool.js +0 -257
- package/dist/tools/NotebookEditTool/NotebookEditTool.js.map +0 -7
- package/dist/tools/NotebookEditTool/prompt.js +0 -7
- package/dist/tools/NotebookEditTool/prompt.js.map +0 -7
- package/dist/tools/NotebookReadTool/NotebookReadTool.js +0 -218
- package/dist/tools/NotebookReadTool/NotebookReadTool.js.map +0 -7
- package/dist/tools/NotebookReadTool/prompt.js +0 -7
- package/dist/tools/NotebookReadTool/prompt.js.map +0 -7
- package/dist/tools/PlanModeTool/EnterPlanModeTool.js +0 -85
- package/dist/tools/PlanModeTool/EnterPlanModeTool.js.map +0 -7
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js +0 -164
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js.map +0 -7
- package/dist/tools/PlanModeTool/prompt.js +0 -43
- package/dist/tools/PlanModeTool/prompt.js.map +0 -7
- package/dist/tools/ReadMcpResourceTool/ReadMcpResourceTool.js +0 -130
- package/dist/tools/ReadMcpResourceTool/ReadMcpResourceTool.js.map +0 -7
- package/dist/tools/ReadMcpResourceTool/prompt.js +0 -17
- package/dist/tools/ReadMcpResourceTool/prompt.js.map +0 -7
- package/dist/tools/SendMessageTool/SendMessageTool.js +0 -341
- package/dist/tools/SendMessageTool/SendMessageTool.js.map +0 -7
- package/dist/tools/SendMessageTool/prompt.js +0 -44
- package/dist/tools/SendMessageTool/prompt.js.map +0 -7
- package/dist/tools/SkillTool/SkillTool.js +0 -227
- package/dist/tools/SkillTool/SkillTool.js.map +0 -7
- package/dist/tools/SkillTool/prompt.js +0 -81
- package/dist/tools/SkillTool/prompt.js.map +0 -7
- package/dist/tools/SlashCommandTool/SlashCommandTool.js +0 -416
- package/dist/tools/SlashCommandTool/SlashCommandTool.js.map +0 -7
- package/dist/tools/SlashCommandTool/prompt.js +0 -35
- package/dist/tools/SlashCommandTool/prompt.js.map +0 -7
- package/dist/tools/TaskCreateTool/TaskCreateTool.js +0 -102
- package/dist/tools/TaskCreateTool/TaskCreateTool.js.map +0 -7
- package/dist/tools/TaskCreateTool/prompt.js +0 -58
- package/dist/tools/TaskCreateTool/prompt.js.map +0 -7
- package/dist/tools/TaskGetTool/TaskGetTool.js +0 -115
- package/dist/tools/TaskGetTool/TaskGetTool.js.map +0 -7
- package/dist/tools/TaskGetTool/prompt.js +0 -28
- package/dist/tools/TaskGetTool/prompt.js.map +0 -7
- package/dist/tools/TaskListTool/TaskListTool.js +0 -102
- package/dist/tools/TaskListTool/TaskListTool.js.map +0 -7
- package/dist/tools/TaskListTool/prompt.js +0 -42
- package/dist/tools/TaskListTool/prompt.js.map +0 -7
- package/dist/tools/TaskOutputTool/TaskOutputTool.js +0 -190
- package/dist/tools/TaskOutputTool/TaskOutputTool.js.map +0 -7
- package/dist/tools/TaskOutputTool/prompt.js +0 -16
- package/dist/tools/TaskOutputTool/prompt.js.map +0 -7
- package/dist/tools/TaskStopTool/TaskStopTool.js +0 -150
- package/dist/tools/TaskStopTool/TaskStopTool.js.map +0 -7
- package/dist/tools/TaskStopTool/prompt.js +0 -15
- package/dist/tools/TaskStopTool/prompt.js.map +0 -7
- package/dist/tools/TaskTool/TaskTool.js +0 -1525
- package/dist/tools/TaskTool/TaskTool.js.map +0 -7
- package/dist/tools/TaskTool/constants.js +0 -11
- package/dist/tools/TaskTool/constants.js.map +0 -7
- package/dist/tools/TaskTool/prompt.js +0 -121
- package/dist/tools/TaskTool/prompt.js.map +0 -7
- package/dist/tools/TaskUpdateTool/TaskUpdateTool.js +0 -148
- package/dist/tools/TaskUpdateTool/TaskUpdateTool.js.map +0 -7
- package/dist/tools/TaskUpdateTool/prompt.js +0 -81
- package/dist/tools/TaskUpdateTool/prompt.js.map +0 -7
- package/dist/tools/TeamCreateTool/TeamCreateTool.js +0 -129
- package/dist/tools/TeamCreateTool/TeamCreateTool.js.map +0 -7
- package/dist/tools/TeamCreateTool/prompt.js +0 -58
- package/dist/tools/TeamCreateTool/prompt.js.map +0 -7
- package/dist/tools/TeamDeleteTool/TeamDeleteTool.js +0 -151
- package/dist/tools/TeamDeleteTool/TeamDeleteTool.js.map +0 -7
- package/dist/tools/TeamDeleteTool/prompt.js +0 -16
- package/dist/tools/TeamDeleteTool/prompt.js.map +0 -7
- package/dist/tools/ThinkTool/ThinkTool.js +0 -45
- package/dist/tools/ThinkTool/ThinkTool.js.map +0 -7
- package/dist/tools/ThinkTool/prompt.js +0 -16
- package/dist/tools/ThinkTool/prompt.js.map +0 -7
- package/dist/tools/TodoWriteTool/TodoWriteTool.js +0 -232
- package/dist/tools/TodoWriteTool/TodoWriteTool.js.map +0 -7
- package/dist/tools/TodoWriteTool/prompt.js +0 -87
- package/dist/tools/TodoWriteTool/prompt.js.map +0 -7
- package/dist/tools/URLFetcherTool/URLFetcherTool.js +0 -234
- package/dist/tools/URLFetcherTool/URLFetcherTool.js.map +0 -7
- package/dist/tools/URLFetcherTool/cache.js +0 -95
- package/dist/tools/URLFetcherTool/cache.js.map +0 -7
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js +0 -44
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js.map +0 -7
- package/dist/tools/URLFetcherTool/prompt.js +0 -28
- package/dist/tools/URLFetcherTool/prompt.js.map +0 -7
- package/dist/tools/WebSearchTool/WebSearchTool.js +0 -92
- package/dist/tools/WebSearchTool/WebSearchTool.js.map +0 -7
- package/dist/tools/WebSearchTool/prompt.js +0 -24
- package/dist/tools/WebSearchTool/prompt.js.map +0 -7
- package/dist/tools/WebSearchTool/searchProviders.js +0 -58
- package/dist/tools/WebSearchTool/searchProviders.js.map +0 -7
- package/dist/tools/lsTool/lsTool.js +0 -201
- package/dist/tools/lsTool/lsTool.js.map +0 -7
- package/dist/tools/lsTool/prompt.js +0 -5
- package/dist/tools/lsTool/prompt.js.map +0 -7
- package/dist/tools.js +0 -207
- package/dist/tools.js.map +0 -7
- package/dist/types/PermissionMode.js +0 -160
- package/dist/types/PermissionMode.js.map +0 -7
- package/dist/types/RequestContext.js +0 -47
- package/dist/types/RequestContext.js.map +0 -7
- package/dist/types/agentTeams.js +0 -1
- package/dist/types/agentTeams.js.map +0 -7
- package/dist/types/askUserQuestion.js +0 -1
- package/dist/types/askUserQuestion.js.map +0 -7
- package/dist/types/common.d.js +0 -1
- package/dist/types/common.d.js.map +0 -7
- package/dist/types/conversation.js +0 -1
- package/dist/types/conversation.js.map +0 -7
- package/dist/types/core.js +0 -1
- package/dist/types/core.js.map +0 -7
- package/dist/types/hooks.js +0 -47
- package/dist/types/hooks.js.map +0 -7
- package/dist/types/interactionRound.js +0 -1
- package/dist/types/interactionRound.js.map +0 -7
- package/dist/types/logs.js +0 -1
- package/dist/types/logs.js.map +0 -7
- package/dist/types/marketplace.js +0 -107
- package/dist/types/marketplace.js.map +0 -7
- package/dist/types/messageGroup.js +0 -36
- package/dist/types/messageGroup.js.map +0 -7
- package/dist/types/modelCapabilities.js +0 -1
- package/dist/types/modelCapabilities.js.map +0 -7
- package/dist/types/notebook.js +0 -1
- package/dist/types/notebook.js.map +0 -7
- package/dist/types/plugin.js +0 -86
- package/dist/types/plugin.js.map +0 -7
- package/dist/types/subagent.js +0 -1
- package/dist/types/subagent.js.map +0 -7
- package/dist/types/thinking.js +0 -1
- package/dist/types/thinking.js.map +0 -7
- package/dist/utils/BackgroundShellManager.js +0 -378
- package/dist/utils/BackgroundShellManager.js.map +0 -7
- package/dist/utils/CircuitBreaker.js +0 -248
- package/dist/utils/CircuitBreaker.js.map +0 -7
- package/dist/utils/Cursor.js +0 -315
- package/dist/utils/Cursor.js.map +0 -7
- package/dist/utils/MessageBatchBuffer.js +0 -102
- package/dist/utils/MessageBatchBuffer.js.map +0 -7
- package/dist/utils/PersistentShell.js +0 -526
- package/dist/utils/PersistentShell.js.map +0 -7
- package/dist/utils/advancedFuzzyMatcher.js +0 -209
- package/dist/utils/advancedFuzzyMatcher.js.map +0 -7
- package/dist/utils/agentHookExecutor.js +0 -103
- package/dist/utils/agentHookExecutor.js.map +0 -7
- package/dist/utils/agentLoader.js +0 -655
- package/dist/utils/agentLoader.js.map +0 -7
- package/dist/utils/agentMemory.js +0 -134
- package/dist/utils/agentMemory.js.map +0 -7
- package/dist/utils/agentStorage.js +0 -59
- package/dist/utils/agentStorage.js.map +0 -7
- package/dist/utils/agentTranscripts.js +0 -641
- package/dist/utils/agentTranscripts.js.map +0 -7
- package/dist/utils/animationManager.js +0 -250
- package/dist/utils/animationManager.js.map +0 -7
- package/dist/utils/animationSync.js +0 -110
- package/dist/utils/animationSync.js.map +0 -7
- package/dist/utils/array.js +0 -7
- package/dist/utils/array.js.map +0 -7
- package/dist/utils/ask.js +0 -80
- package/dist/utils/ask.js.map +0 -7
- package/dist/utils/async.js +0 -167
- package/dist/utils/async.js.map +0 -7
- package/dist/utils/asyncFile.js +0 -215
- package/dist/utils/asyncFile.js.map +0 -7
- package/dist/utils/atomicWrite.js +0 -23
- package/dist/utils/atomicWrite.js.map +0 -7
- package/dist/utils/auth.js +0 -11
- package/dist/utils/auth.js.map +0 -7
- package/dist/utils/autoCompactCore.js +0 -203
- package/dist/utils/autoCompactCore.js.map +0 -7
- package/dist/utils/autoMemoryPaths.js +0 -89
- package/dist/utils/autoMemoryPaths.js.map +0 -7
- package/dist/utils/autoUpdater.js +0 -113
- package/dist/utils/autoUpdater.js.map +0 -7
- package/dist/utils/backgroundAgentManager.js +0 -231
- package/dist/utils/backgroundAgentManager.js.map +0 -7
- package/dist/utils/browser.js +0 -15
- package/dist/utils/browser.js.map +0 -7
- package/dist/utils/claudeCodeSync.js +0 -439
- package/dist/utils/claudeCodeSync.js.map +0 -7
- package/dist/utils/cleanup.js +0 -54
- package/dist/utils/cleanup.js.map +0 -7
- package/dist/utils/commands.js +0 -219
- package/dist/utils/commands.js.map +0 -7
- package/dist/utils/commonUnixCommands.js +0 -689
- package/dist/utils/commonUnixCommands.js.map +0 -7
- package/dist/utils/compressionMode.js +0 -47
- package/dist/utils/compressionMode.js.map +0 -7
- package/dist/utils/config.js +0 -716
- package/dist/utils/config.js.map +0 -7
- package/dist/utils/configPaths.js +0 -199
- package/dist/utils/configPaths.js.map +0 -7
- package/dist/utils/configSchema.js +0 -232
- package/dist/utils/configSchema.js.map +0 -7
- package/dist/utils/conversationRecovery.js +0 -54
- package/dist/utils/conversationRecovery.js.map +0 -7
- package/dist/utils/credentials/CredentialStore.js +0 -1
- package/dist/utils/credentials/CredentialStore.js.map +0 -7
- package/dist/utils/credentials/EncryptedFileStore.js +0 -157
- package/dist/utils/credentials/EncryptedFileStore.js.map +0 -7
- package/dist/utils/credentials/index.js +0 -51
- package/dist/utils/credentials/index.js.map +0 -7
- package/dist/utils/credentials/migration.js +0 -82
- package/dist/utils/credentials/migration.js.map +0 -7
- package/dist/utils/debugLogger.js +0 -889
- package/dist/utils/debugLogger.js.map +0 -7
- package/dist/utils/diff.js +0 -32
- package/dist/utils/diff.js.map +0 -7
- package/dist/utils/dualPath.js +0 -24
- package/dist/utils/dualPath.js.map +0 -7
- package/dist/utils/env.js +0 -45
- package/dist/utils/env.js.map +0 -7
- package/dist/utils/envConfig.js +0 -116
- package/dist/utils/envConfig.js.map +0 -7
- package/dist/utils/errorHandling.js +0 -89
- package/dist/utils/errorHandling.js.map +0 -7
- package/dist/utils/errors.js +0 -23
- package/dist/utils/errors.js.map +0 -7
- package/dist/utils/execFileNoThrow.js +0 -45
- package/dist/utils/execFileNoThrow.js.map +0 -7
- package/dist/utils/exit.js +0 -132
- package/dist/utils/exit.js.map +0 -7
- package/dist/utils/expertChatStorage.js +0 -78
- package/dist/utils/expertChatStorage.js.map +0 -7
- package/dist/utils/externalEditor.js +0 -155
- package/dist/utils/externalEditor.js.map +0 -7
- package/dist/utils/file.js +0 -282
- package/dist/utils/file.js.map +0 -7
- package/dist/utils/fileLock.js +0 -67
- package/dist/utils/fileLock.js.map +0 -7
- package/dist/utils/fileRecoveryCore.js +0 -41
- package/dist/utils/fileRecoveryCore.js.map +0 -7
- package/dist/utils/format.js +0 -119
- package/dist/utils/format.js.map +0 -7
- package/dist/utils/fuzzyMatcher.js +0 -258
- package/dist/utils/fuzzyMatcher.js.map +0 -7
- package/dist/utils/generators.js +0 -116
- package/dist/utils/generators.js.map +0 -7
- package/dist/utils/git.js +0 -83
- package/dist/utils/git.js.map +0 -7
- package/dist/utils/globalErrorHandler.js +0 -58
- package/dist/utils/globalErrorHandler.js.map +0 -7
- package/dist/utils/gpt5.js +0 -146
- package/dist/utils/gpt5.js.map +0 -7
- package/dist/utils/groupHandlers/index.js +0 -8
- package/dist/utils/groupHandlers/index.js.map +0 -7
- package/dist/utils/groupHandlers/parallelTasksHandler.js +0 -142
- package/dist/utils/groupHandlers/parallelTasksHandler.js.map +0 -7
- package/dist/utils/groupHandlers/taskHandler.js +0 -104
- package/dist/utils/groupHandlers/taskHandler.js.map +0 -7
- package/dist/utils/groupHandlers/types.js +0 -1
- package/dist/utils/groupHandlers/types.js.map +0 -7
- package/dist/utils/historyManager.js +0 -234
- package/dist/utils/historyManager.js.map +0 -7
- package/dist/utils/hookManager.js +0 -540
- package/dist/utils/hookManager.js.map +0 -7
- package/dist/utils/http.js +0 -7
- package/dist/utils/http.js.map +0 -7
- package/dist/utils/imagePaste.js +0 -29
- package/dist/utils/imagePaste.js.map +0 -7
- package/dist/utils/json.js +0 -16
- package/dist/utils/json.js.map +0 -7
- package/dist/utils/log.js +0 -333
- package/dist/utils/log.js.map +0 -7
- package/dist/utils/logRotation.js +0 -224
- package/dist/utils/logRotation.js.map +0 -7
- package/dist/utils/markdown.js +0 -464
- package/dist/utils/markdown.js.map +0 -7
- package/dist/utils/marketplaceManager.js +0 -545
- package/dist/utils/marketplaceManager.js.map +0 -7
- package/dist/utils/memSafety.js +0 -264
- package/dist/utils/memSafety.js.map +0 -7
- package/dist/utils/memoizeWithTTL.js +0 -25
- package/dist/utils/memoizeWithTTL.js.map +0 -7
- package/dist/utils/messageContextManager.js +0 -208
- package/dist/utils/messageContextManager.js.map +0 -7
- package/dist/utils/messageGroupManager.js +0 -274
- package/dist/utils/messageGroupManager.js.map +0 -7
- package/dist/utils/messages.js +0 -725
- package/dist/utils/messages.js.map +0 -7
- package/dist/utils/migration/index.js +0 -37
- package/dist/utils/migration/index.js.map +0 -7
- package/dist/utils/migration/migrateHistory.js +0 -273
- package/dist/utils/migration/migrateHistory.js.map +0 -7
- package/dist/utils/migration/migrateTodos.js +0 -323
- package/dist/utils/migration/migrateTodos.js.map +0 -7
- package/dist/utils/model.js +0 -846
- package/dist/utils/model.js.map +0 -7
- package/dist/utils/pasteCache.js +0 -313
- package/dist/utils/pasteCache.js.map +0 -7
- package/dist/utils/permissions/filesystem.js +0 -236
- package/dist/utils/permissions/filesystem.js.map +0 -7
- package/dist/utils/plan/planMode.js +0 -143
- package/dist/utils/plan/planMode.js.map +0 -7
- package/dist/utils/pluginInstaller.js +0 -518
- package/dist/utils/pluginInstaller.js.map +0 -7
- package/dist/utils/pluginLoader.js +0 -819
- package/dist/utils/pluginLoader.js.map +0 -7
- package/dist/utils/pluginRegistry.js +0 -111
- package/dist/utils/pluginRegistry.js.map +0 -7
- package/dist/utils/pluginValidator.js +0 -798
- package/dist/utils/pluginValidator.js.map +0 -7
- package/dist/utils/ptyCompat.js +0 -125
- package/dist/utils/ptyCompat.js.map +0 -7
- package/dist/utils/replStateMachine.js +0 -145
- package/dist/utils/replStateMachine.js.map +0 -7
- package/dist/utils/repoFetcher.js +0 -110
- package/dist/utils/repoFetcher.js.map +0 -7
- package/dist/utils/ripgrep.js +0 -236
- package/dist/utils/ripgrep.js.map +0 -7
- package/dist/utils/roundConverter.js +0 -262
- package/dist/utils/roundConverter.js.map +0 -7
- package/dist/utils/safeFetch.js +0 -45
- package/dist/utils/safeFetch.js.map +0 -7
- package/dist/utils/safePath.js +0 -132
- package/dist/utils/safePath.js.map +0 -7
- package/dist/utils/sanitizeInput.js +0 -32
- package/dist/utils/sanitizeInput.js.map +0 -7
- package/dist/utils/secureFile.js +0 -512
- package/dist/utils/secureFile.js.map +0 -7
- package/dist/utils/secureKeyStorage.js +0 -341
- package/dist/utils/secureKeyStorage.js.map +0 -7
- package/dist/utils/sensitiveFiles.js +0 -125
- package/dist/utils/sensitiveFiles.js.map +0 -7
- package/dist/utils/session/sessionPlugins.js +0 -67
- package/dist/utils/session/sessionPlugins.js.map +0 -7
- package/dist/utils/sessionIndex.js +0 -192
- package/dist/utils/sessionIndex.js.map +0 -7
- package/dist/utils/sessionState.js +0 -22
- package/dist/utils/sessionState.js.map +0 -7
- package/dist/utils/sessionTracker.js +0 -170
- package/dist/utils/sessionTracker.js.map +0 -7
- package/dist/utils/simpleMode.js +0 -7
- package/dist/utils/simpleMode.js.map +0 -7
- package/dist/utils/skillLoader.js +0 -230
- package/dist/utils/skillLoader.js.map +0 -7
- package/dist/utils/state.js +0 -24
- package/dist/utils/state.js.map +0 -7
- package/dist/utils/stats.js +0 -417
- package/dist/utils/stats.js.map +0 -7
- package/dist/utils/streamingState.js +0 -62
- package/dist/utils/streamingState.js.map +0 -7
- package/dist/utils/stringSubstitution.js +0 -106
- package/dist/utils/stringSubstitution.js.map +0 -7
- package/dist/utils/style.js +0 -34
- package/dist/utils/style.js.map +0 -7
- package/dist/utils/taskDisplayUtils.js +0 -258
- package/dist/utils/taskDisplayUtils.js.map +0 -7
- package/dist/utils/teamConfig.js +0 -624
- package/dist/utils/teamConfig.js.map +0 -7
- package/dist/utils/terminal.js +0 -59
- package/dist/utils/terminal.js.map +0 -7
- package/dist/utils/theme.js +0 -134
- package/dist/utils/theme.js.map +0 -7
- package/dist/utils/thinking.js +0 -63
- package/dist/utils/thinking.js.map +0 -7
- package/dist/utils/todoChangeCalculator.js +0 -64
- package/dist/utils/todoChangeCalculator.js.map +0 -7
- package/dist/utils/todoStorage.js +0 -413
- package/dist/utils/todoStorage.js.map +0 -7
- package/dist/utils/tokenProgress.js +0 -55
- package/dist/utils/tokenProgress.js.map +0 -7
- package/dist/utils/tokens.js +0 -30
- package/dist/utils/tokens.js.map +0 -7
- package/dist/utils/toolExecutionController.js +0 -109
- package/dist/utils/toolExecutionController.js.map +0 -7
- package/dist/utils/toolRiskClassification.js +0 -210
- package/dist/utils/toolRiskClassification.js.map +0 -7
- package/dist/utils/toolTimeout.js +0 -136
- package/dist/utils/toolTimeout.js.map +0 -7
- package/dist/utils/tooling/safeRender.js +0 -115
- package/dist/utils/tooling/safeRender.js.map +0 -7
- package/dist/utils/tooling/toolError.js +0 -12
- package/dist/utils/tooling/toolError.js.map +0 -7
- package/dist/utils/unaryLogging.js +0 -6
- package/dist/utils/unaryLogging.js.map +0 -7
- package/dist/utils/user.js +0 -40
- package/dist/utils/user.js.map +0 -7
- package/dist/utils/userFriendlyError.js +0 -346
- package/dist/utils/userFriendlyError.js.map +0 -7
- package/dist/utils/validate.js +0 -132
- package/dist/utils/validate.js.map +0 -7
- package/dist/version.js +0 -7
- package/dist/version.js.map +0 -7
- package/dist/yoga.wasm +0 -0
- /package/{dist/utils/vendor → vendor}/ripgrep/arm64-darwin/rg +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/pluginValidator.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Plugin Validation System\n *\n * Validates plugin manifests and component files for correctness.\n * Checks for proper structure, required fields, and file existence.\n */\n\nimport fs from 'fs'\nimport path from 'path'\nimport matter from 'gray-matter'\nimport semver from 'semver'\nimport { z } from 'zod'\nimport {\n PluginManifestSchema,\n type PluginManifest,\n type HookEvent,\n} from '../types/plugin.js'\n\n/**\n * Validation error details\n */\nexport interface ValidationError {\n type:\n | 'manifest'\n | 'agent'\n | 'command'\n | 'skill'\n | 'hook'\n | 'mcp'\n | 'dependency'\n | 'engine'\n file?: string\n message: string\n details?: any\n}\n\n/**\n * Validation warning details\n */\nexport interface ValidationWarning {\n type: string\n file?: string\n message: string\n}\n\n/**\n * Complete validation result\n */\nexport interface ValidationResult {\n valid: boolean\n errors: ValidationError[]\n warnings: ValidationWarning[]\n}\n\n/**\n * Agent YAML frontmatter schema\n */\nconst AgentFrontmatterSchema = z.object({\n name: z.string().min(1, 'Agent name is required'),\n description: z.string().min(1, 'Agent description is required'),\n tools: z\n .union([\n z.string(), // \"*\" for all tools\n z.array(z.string()).min(1, 'At least one tool must be specified'),\n ])\n .optional(),\n model: z.string().optional(),\n})\n\n/**\n * Command YAML frontmatter schema\n */\nconst CommandFrontmatterSchema = z.object({\n name: z.string().min(1, 'Command name is required'),\n description: z.string().optional(),\n aliases: z.array(z.string()).optional(),\n enabled: z.boolean().optional(),\n hidden: z.boolean().optional(),\n progressMessage: z.string().optional(),\n argNames: z.array(z.string()).optional(),\n 'allowed-tools': z.array(z.string()).optional(),\n})\n\n/**\n * Skill YAML frontmatter schema\n */\nconst SkillFrontmatterSchema = z.object({\n name: z.string().min(1, 'Skill name is required'),\n description: z.string().min(1, 'Skill description is required'),\n})\n\n/**\n * Hook configuration schema\n */\nconst HookConfigSchema = z.object({\n event: z.enum([\n 'PreToolUse',\n 'PostToolUse',\n 'UserPromptSubmit',\n 'SessionStart',\n 'SessionEnd',\n 'Stop',\n 'SubagentStop',\n 'Notification',\n 'PreCompact',\n ] as const),\n matcher: z.string().optional(),\n type: z.enum(['command', 'message', 'notification']),\n command: z.string().optional(),\n message: z.string().optional(),\n blocking: z.boolean().optional(),\n timeout: z.number().optional(),\n})\n\n/**\n * MCP Server configuration schema\n */\nconst MCPServerConfigSchema = z.object({\n command: z.string().min(1, 'MCP server command is required'),\n args: z.array(z.string()).optional(),\n env: z.record(z.string()).optional(),\n timeout: z.number().optional(),\n})\n\n/**\n * Validate complete plugin including manifest and all components\n */\nexport async function validatePlugin(\n pluginPath: string,\n): Promise<ValidationResult> {\n const errors: ValidationError[] = []\n const warnings: ValidationWarning[] = []\n\n // Check if plugin directory exists\n if (!fs.existsSync(pluginPath)) {\n return {\n valid: false,\n errors: [\n {\n type: 'manifest',\n message: `Plugin directory does not exist: ${pluginPath}`,\n },\n ],\n warnings: [],\n }\n }\n\n // Check if it's a directory\n const stats = fs.statSync(pluginPath)\n if (!stats.isDirectory()) {\n return {\n valid: false,\n errors: [\n {\n type: 'manifest',\n message: `Plugin path is not a directory: ${pluginPath}`,\n },\n ],\n warnings: [],\n }\n }\n\n // Validate manifest\n const manifestPath = path.join(pluginPath, 'plugin.json')\n if (!fs.existsSync(manifestPath)) {\n return {\n valid: false,\n errors: [\n {\n type: 'manifest',\n file: 'plugin.json',\n message: 'Plugin manifest (plugin.json) not found',\n },\n ],\n warnings: [],\n }\n }\n\n let manifest: PluginManifest\n try {\n const manifestContent = fs.readFileSync(manifestPath, 'utf-8')\n const manifestData = JSON.parse(manifestContent)\n\n // Validate with Zod schema\n const manifestResult = validateManifest(manifestData)\n errors.push(...manifestResult.errors)\n warnings.push(...manifestResult.warnings)\n\n if (!manifestResult.valid) {\n return { valid: false, errors, warnings }\n }\n\n manifest = manifestData as PluginManifest\n } catch (error) {\n return {\n valid: false,\n errors: [\n {\n type: 'manifest',\n file: 'plugin.json',\n message: `Failed to parse manifest: ${error instanceof Error ? error.message : String(error)}`,\n details: error,\n },\n ],\n warnings: [],\n }\n }\n\n // Validate engines compatibility\n if (manifest.engines) {\n const engineResult = await validateEngines(manifest.engines)\n errors.push(...engineResult.errors)\n warnings.push(...engineResult.warnings)\n }\n\n // Validate agent files\n if (manifest.agents && manifest.agents.length > 0) {\n for (const agentFile of manifest.agents) {\n const agentPath = path.join(pluginPath, agentFile)\n const result = validateAgentFile(agentPath)\n errors.push(...result.errors)\n warnings.push(...result.warnings)\n }\n }\n\n // Validate command files\n if (manifest.commands && manifest.commands.length > 0) {\n for (const commandFile of manifest.commands) {\n const commandPath = path.join(pluginPath, commandFile)\n const result = validateCommandFile(commandPath)\n errors.push(...result.errors)\n warnings.push(...result.warnings)\n }\n }\n\n // Validate skill files\n if (manifest.skills && manifest.skills.length > 0) {\n for (const skillFile of manifest.skills) {\n const skillPath = path.join(pluginPath, skillFile)\n const result = validateSkillFile(skillPath)\n errors.push(...result.errors)\n warnings.push(...result.warnings)\n }\n }\n\n // Validate hook files\n if (manifest.hooks && manifest.hooks.length > 0) {\n for (const hookFile of manifest.hooks) {\n const hookPath = path.join(pluginPath, hookFile)\n const result = validateHookFile(hookPath)\n errors.push(...result.errors)\n warnings.push(...result.warnings)\n }\n }\n\n // Validate MCP server configs\n // mcpServers can be either an array of file paths or an object with inline configs\n if (manifest.mcpServers) {\n if (Array.isArray(manifest.mcpServers) && manifest.mcpServers.length > 0) {\n for (const mcpFile of manifest.mcpServers) {\n const mcpPath = path.join(pluginPath, mcpFile)\n const result = validateMCPServerFile(mcpPath)\n errors.push(...result.errors)\n warnings.push(...result.warnings)\n }\n }\n // If it's an object (inline configs), skip file validation\n }\n\n // Check for unused files warning\n const componentFiles = new Set([\n ...(manifest.agents || []),\n ...(manifest.commands || []),\n ...(manifest.skills || []),\n ...(manifest.hooks || []),\n ...(Array.isArray(manifest.mcpServers) ? manifest.mcpServers : []),\n ])\n\n if (componentFiles.size === 0) {\n warnings.push({\n type: 'manifest',\n message:\n 'Plugin has no components (agents, commands, skills, hooks, or MCP servers)',\n })\n }\n\n return {\n valid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\n/**\n * Validate plugin manifest schema\n */\nexport function validateManifest(manifest: any): ValidationResult {\n const errors: ValidationError[] = []\n const warnings: ValidationWarning[] = []\n\n // Check if manifest is an object\n if (!manifest || typeof manifest !== 'object') {\n return {\n valid: false,\n errors: [\n {\n type: 'manifest',\n message: 'Manifest must be a valid JSON object',\n },\n ],\n warnings: [],\n }\n }\n\n // Validate with Zod schema\n try {\n PluginManifestSchema.parse(manifest)\n } catch (error) {\n if (error instanceof z.ZodError) {\n for (const issue of error.errors) {\n errors.push({\n type: 'manifest',\n message: `${issue.path.join('.')}: ${issue.message}`,\n details: issue,\n })\n }\n } else {\n errors.push({\n type: 'manifest',\n message: `Manifest validation failed: ${error instanceof Error ? error.message : String(error)}`,\n details: error,\n })\n }\n }\n\n // Additional validations\n if (manifest.name && !/^[a-z0-9-]+$/.test(manifest.name)) {\n errors.push({\n type: 'manifest',\n message: 'Plugin name must be lowercase alphanumeric with hyphens only',\n details: { name: manifest.name },\n })\n }\n\n // Validate version format (semver)\n if (manifest.version && !semver.valid(manifest.version)) {\n errors.push({\n type: 'manifest',\n message: `Invalid version format: ${manifest.version}. Must follow semver (e.g., 1.0.0)`,\n details: { version: manifest.version },\n })\n }\n\n // Validate URLs\n if (manifest.homepage) {\n try {\n new URL(manifest.homepage)\n } catch {\n errors.push({\n type: 'manifest',\n message: `Invalid homepage URL: ${manifest.homepage}`,\n })\n }\n }\n\n if (manifest.repository) {\n try {\n new URL(manifest.repository)\n } catch {\n errors.push({\n type: 'manifest',\n message: `Invalid repository URL: ${manifest.repository}`,\n })\n }\n }\n\n // Warn about missing optional but recommended fields\n if (!manifest.description) {\n warnings.push({\n type: 'manifest',\n message: 'Missing recommended field: description',\n })\n }\n\n if (!manifest.author) {\n warnings.push({\n type: 'manifest',\n message: 'Missing recommended field: author',\n })\n }\n\n if (!manifest.license) {\n warnings.push({\n type: 'manifest',\n message: 'Missing recommended field: license',\n })\n }\n\n return {\n valid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\n/**\n * Validate engine version requirements\n */\nasync function validateEngines(engines: {\n minto?: string\n 'claude-code'?: string\n node?: string\n}): Promise<ValidationResult> {\n const errors: ValidationError[] = []\n const warnings: ValidationWarning[] = []\n\n // Validate minto version\n if (engines.minto) {\n const validRange = semver.validRange(engines.minto)\n if (!validRange) {\n errors.push({\n type: 'engine',\n message: `Invalid minto version range: ${engines.minto}`,\n details: { engine: 'minto', range: engines.minto },\n })\n } else {\n // Check compatibility with current version\n try {\n const { VERSION } = await import('../version.js')\n if (!semver.satisfies(VERSION, engines.minto)) {\n warnings.push({\n type: 'engine',\n message: `Plugin requires minto ${engines.minto}, but current version is ${VERSION}`,\n })\n }\n } catch {\n // Unable to check current version, skip this validation\n }\n }\n }\n\n // Validate node version\n if (engines.node) {\n const validRange = semver.validRange(engines.node)\n if (!validRange) {\n errors.push({\n type: 'engine',\n message: `Invalid node version range: ${engines.node}`,\n details: { engine: 'node', range: engines.node },\n })\n } else {\n // Check compatibility with current node version\n if (!semver.satisfies(process.version, engines.node)) {\n warnings.push({\n type: 'engine',\n message: `Plugin requires node ${engines.node}, but current version is ${process.version}`,\n })\n }\n }\n }\n\n return {\n valid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\n/**\n * Validate agent file\n */\nexport function validateAgentFile(filePath: string): ValidationResult {\n const errors: ValidationError[] = []\n const warnings: ValidationWarning[] = []\n\n // Check file exists\n if (!fs.existsSync(filePath)) {\n return {\n valid: false,\n errors: [\n {\n type: 'agent',\n file: filePath,\n message: `Agent file not found: ${filePath}`,\n },\n ],\n warnings: [],\n }\n }\n\n // Check file extension\n const ext = path.extname(filePath)\n if (ext !== '.md' && ext !== '.markdown') {\n warnings.push({\n type: 'agent',\n file: filePath,\n message: `Agent file should have .md or .markdown extension, got: ${ext}`,\n })\n }\n\n // Parse YAML frontmatter\n try {\n const content = fs.readFileSync(filePath, 'utf-8')\n const parsed = matter(content)\n\n // Validate frontmatter exists\n if (!parsed.data || Object.keys(parsed.data).length === 0) {\n errors.push({\n type: 'agent',\n file: filePath,\n message: 'Agent file must have YAML frontmatter',\n })\n return { valid: false, errors, warnings }\n }\n\n // Validate frontmatter schema\n try {\n AgentFrontmatterSchema.parse(parsed.data)\n } catch (error) {\n if (error instanceof z.ZodError) {\n for (const issue of error.errors) {\n errors.push({\n type: 'agent',\n file: filePath,\n message: `Frontmatter ${issue.path.join('.')}: ${issue.message}`,\n details: issue,\n })\n }\n }\n }\n\n // Check for content\n if (!parsed.content || parsed.content.trim().length === 0) {\n warnings.push({\n type: 'agent',\n file: filePath,\n message: 'Agent file has no content after frontmatter',\n })\n }\n\n // Validate tools field\n if (parsed.data.tools) {\n if (Array.isArray(parsed.data.tools)) {\n if (parsed.data.tools.length === 0) {\n errors.push({\n type: 'agent',\n file: filePath,\n message:\n 'Tools array cannot be empty (use \"*\" for all tools or omit the field)',\n })\n }\n } else if (parsed.data.tools !== '*') {\n errors.push({\n type: 'agent',\n file: filePath,\n message: 'Tools must be an array of tool names or \"*\" for all tools',\n details: { tools: parsed.data.tools },\n })\n }\n }\n } catch (error) {\n errors.push({\n type: 'agent',\n file: filePath,\n message: `Failed to parse agent file: ${error instanceof Error ? error.message : String(error)}`,\n details: error,\n })\n }\n\n return {\n valid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\n/**\n * Validate command file\n */\nexport function validateCommandFile(filePath: string): ValidationResult {\n const errors: ValidationError[] = []\n const warnings: ValidationWarning[] = []\n\n // Check file exists\n if (!fs.existsSync(filePath)) {\n return {\n valid: false,\n errors: [\n {\n type: 'command',\n file: filePath,\n message: `Command file not found: ${filePath}`,\n },\n ],\n warnings: [],\n }\n }\n\n // Check file extension\n const ext = path.extname(filePath)\n if (ext !== '.md' && ext !== '.markdown') {\n warnings.push({\n type: 'command',\n file: filePath,\n message: `Command file should have .md or .markdown extension, got: ${ext}`,\n })\n }\n\n // Parse YAML frontmatter\n try {\n const content = fs.readFileSync(filePath, 'utf-8')\n const parsed = matter(content)\n\n // Validate frontmatter exists\n if (!parsed.data || Object.keys(parsed.data).length === 0) {\n errors.push({\n type: 'command',\n file: filePath,\n message: 'Command file must have YAML frontmatter',\n })\n return { valid: false, errors, warnings }\n }\n\n // Validate frontmatter schema\n try {\n CommandFrontmatterSchema.parse(parsed.data)\n } catch (error) {\n if (error instanceof z.ZodError) {\n for (const issue of error.errors) {\n errors.push({\n type: 'command',\n file: filePath,\n message: `Frontmatter ${issue.path.join('.')}: ${issue.message}`,\n details: issue,\n })\n }\n }\n }\n\n // Check for content\n if (!parsed.content || parsed.content.trim().length === 0) {\n warnings.push({\n type: 'command',\n file: filePath,\n message: 'Command file has no content after frontmatter',\n })\n }\n\n // Validate name matches filename\n const filename = path.basename(filePath, path.extname(filePath))\n if (parsed.data.name && parsed.data.name !== filename) {\n warnings.push({\n type: 'command',\n file: filePath,\n message: `Command name \"${parsed.data.name}\" does not match filename \"${filename}\"`,\n })\n }\n } catch (error) {\n errors.push({\n type: 'command',\n file: filePath,\n message: `Failed to parse command file: ${error instanceof Error ? error.message : String(error)}`,\n details: error,\n })\n }\n\n return {\n valid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\n/**\n * Validate skill file\n */\nexport function validateSkillFile(filePath: string): ValidationResult {\n const errors: ValidationError[] = []\n const warnings: ValidationWarning[] = []\n\n // Check file exists\n if (!fs.existsSync(filePath)) {\n return {\n valid: false,\n errors: [\n {\n type: 'skill',\n file: filePath,\n message: `Skill file not found: ${filePath}`,\n },\n ],\n warnings: [],\n }\n }\n\n // Check file extension\n const ext = path.extname(filePath)\n if (ext !== '.md' && ext !== '.markdown') {\n warnings.push({\n type: 'skill',\n file: filePath,\n message: `Skill file should have .md or .markdown extension, got: ${ext}`,\n })\n }\n\n // Parse YAML frontmatter\n try {\n const content = fs.readFileSync(filePath, 'utf-8')\n const parsed = matter(content)\n\n // Validate frontmatter exists\n if (!parsed.data || Object.keys(parsed.data).length === 0) {\n errors.push({\n type: 'skill',\n file: filePath,\n message: 'Skill file must have YAML frontmatter',\n })\n return { valid: false, errors, warnings }\n }\n\n // Validate frontmatter schema\n try {\n SkillFrontmatterSchema.parse(parsed.data)\n } catch (error) {\n if (error instanceof z.ZodError) {\n for (const issue of error.errors) {\n errors.push({\n type: 'skill',\n file: filePath,\n message: `Frontmatter ${issue.path.join('.')}: ${issue.message}`,\n details: issue,\n })\n }\n }\n }\n\n // Check for content\n if (!parsed.content || parsed.content.trim().length === 0) {\n warnings.push({\n type: 'skill',\n file: filePath,\n message: 'Skill file has no content after frontmatter',\n })\n }\n } catch (error) {\n errors.push({\n type: 'skill',\n file: filePath,\n message: `Failed to parse skill file: ${error instanceof Error ? error.message : String(error)}`,\n details: error,\n })\n }\n\n return {\n valid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\n/**\n * Validate hook file\n */\nexport function validateHookFile(filePath: string): ValidationResult {\n const errors: ValidationError[] = []\n const warnings: ValidationWarning[] = []\n\n // Check file exists\n if (!fs.existsSync(filePath)) {\n return {\n valid: false,\n errors: [\n {\n type: 'hook',\n file: filePath,\n message: `Hook file not found: ${filePath}`,\n },\n ],\n warnings: [],\n }\n }\n\n // Check file extension\n const ext = path.extname(filePath)\n const validExtensions = ['.js', '.mjs', '.ts', '.tsx', '.json']\n if (!validExtensions.includes(ext)) {\n errors.push({\n type: 'hook',\n file: filePath,\n message: `Hook file must have extension: ${validExtensions.join(', ')}. Got: ${ext}`,\n })\n return { valid: false, errors, warnings }\n }\n\n // For JSON hook configs, validate structure\n if (ext === '.json') {\n try {\n const content = fs.readFileSync(filePath, 'utf-8')\n const config = JSON.parse(content)\n\n // Validate hook config schema\n try {\n HookConfigSchema.parse(config)\n } catch (error) {\n if (error instanceof z.ZodError) {\n for (const issue of error.errors) {\n errors.push({\n type: 'hook',\n file: filePath,\n message: `Hook config ${issue.path.join('.')}: ${issue.message}`,\n details: issue,\n })\n }\n }\n }\n\n // Type-specific validation\n if (config.type === 'command' && !config.command) {\n errors.push({\n type: 'hook',\n file: filePath,\n message: 'Hook type \"command\" requires a \"command\" field',\n })\n }\n\n if (config.type === 'message' && !config.message) {\n errors.push({\n type: 'hook',\n file: filePath,\n message: 'Hook type \"message\" requires a \"message\" field',\n })\n }\n } catch (error) {\n errors.push({\n type: 'hook',\n file: filePath,\n message: `Failed to parse hook config: ${error instanceof Error ? error.message : String(error)}`,\n details: error,\n })\n }\n } else {\n // For JS/TS files, just check they're readable\n try {\n fs.readFileSync(filePath, 'utf-8')\n } catch (error) {\n errors.push({\n type: 'hook',\n file: filePath,\n message: `Failed to read hook file: ${error instanceof Error ? error.message : String(error)}`,\n details: error,\n })\n }\n\n // Warn about JS/TS hooks needing runtime validation\n warnings.push({\n type: 'hook',\n file: filePath,\n message: 'JavaScript/TypeScript hooks will be validated at runtime',\n })\n }\n\n return {\n valid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\n/**\n * Validate MCP server configuration file\n */\nexport function validateMCPServerFile(filePath: string): ValidationResult {\n const errors: ValidationError[] = []\n const warnings: ValidationWarning[] = []\n\n // Check file exists\n if (!fs.existsSync(filePath)) {\n return {\n valid: false,\n errors: [\n {\n type: 'mcp',\n file: filePath,\n message: `MCP server config file not found: ${filePath}`,\n },\n ],\n warnings: [],\n }\n }\n\n // Check file extension\n const ext = path.extname(filePath)\n if (ext !== '.json') {\n errors.push({\n type: 'mcp',\n file: filePath,\n message: `MCP server config must be a JSON file, got: ${ext}`,\n })\n return { valid: false, errors, warnings }\n }\n\n // Parse and validate JSON\n try {\n const content = fs.readFileSync(filePath, 'utf-8')\n const config = JSON.parse(content)\n\n // Validate MCP config schema\n try {\n MCPServerConfigSchema.parse(config)\n } catch (error) {\n if (error instanceof z.ZodError) {\n for (const issue of error.errors) {\n errors.push({\n type: 'mcp',\n file: filePath,\n message: `MCP config ${issue.path.join('.')}: ${issue.message}`,\n details: issue,\n })\n }\n }\n }\n\n // Validate command is not empty\n if (config.command && config.command.trim().length === 0) {\n errors.push({\n type: 'mcp',\n file: filePath,\n message: 'MCP server command cannot be empty',\n })\n }\n\n // Warn about timeout\n if (config.timeout && config.timeout < 1000) {\n warnings.push({\n type: 'mcp',\n file: filePath,\n message: `MCP server timeout is very low (${config.timeout}ms), consider increasing`,\n })\n }\n } catch (error) {\n errors.push({\n type: 'mcp',\n file: filePath,\n message: `Failed to parse MCP server config: ${error instanceof Error ? error.message : String(error)}`,\n details: error,\n })\n }\n\n return {\n valid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\n/**\n * Validate plugin dependencies\n */\nexport function validateDependencies(\n dependencies: Record<string, string>,\n installedPackages?: Set<string>,\n): ValidationResult {\n const errors: ValidationError[] = []\n const warnings: ValidationWarning[] = []\n\n for (const [pkg, version] of Object.entries(dependencies)) {\n // Validate version format\n const validRange = semver.validRange(version)\n if (!validRange) {\n errors.push({\n type: 'dependency',\n message: `Invalid version range for ${pkg}: ${version}`,\n details: { package: pkg, version },\n })\n }\n\n // Check if installed (if provided)\n if (installedPackages && !installedPackages.has(pkg)) {\n warnings.push({\n type: 'dependency',\n message: `Dependency not installed: ${pkg}@${version}`,\n })\n }\n }\n\n return {\n valid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\n/**\n * Batch validate multiple plugins\n */\nexport async function validatePlugins(\n pluginPaths: string[],\n): Promise<Map<string, ValidationResult>> {\n const results = new Map<string, ValidationResult>()\n\n await Promise.all(\n pluginPaths.map(async pluginPath => {\n const result = await validatePlugin(pluginPath)\n results.set(pluginPath, result)\n }),\n )\n\n return results\n}\n\n/**\n * Format validation result as human-readable string\n */\nexport function formatValidationResult(\n result: ValidationResult,\n pluginName?: string,\n): string {\n const lines: string[] = []\n\n if (pluginName) {\n lines.push(`Plugin: ${pluginName}`)\n }\n\n if (result.valid) {\n lines.push('\u2713 Validation passed')\n } else {\n lines.push(`\u2717 Validation failed with ${result.errors.length} error(s)`)\n }\n\n if (result.errors.length > 0) {\n lines.push('\\nErrors:')\n for (const error of result.errors) {\n const location = error.file ? ` (${error.file})` : ''\n lines.push(` \u2022 [${error.type}]${location} ${error.message}`)\n }\n }\n\n if (result.warnings.length > 0) {\n lines.push('\\nWarnings:')\n for (const warning of result.warnings) {\n const location = warning.file ? ` (${warning.file})` : ''\n lines.push(` \u2022 [${warning.type}]${location} ${warning.message}`)\n }\n }\n\n return lines.join('\\n')\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/utils/ptyCompat.js
DELETED
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
function validateRawModeSupport(stream) {
|
|
2
|
-
if (!stream.isTTY) {
|
|
3
|
-
return {
|
|
4
|
-
supported: false,
|
|
5
|
-
reason: "Not a TTY device",
|
|
6
|
-
environmentHint: "piped input or redirected stream"
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
if (typeof stream.setRawMode !== "function") {
|
|
10
|
-
return {
|
|
11
|
-
supported: false,
|
|
12
|
-
reason: "setRawMode method not available",
|
|
13
|
-
environmentHint: "non-standard TTY implementation"
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
try {
|
|
17
|
-
const ttyStream = stream;
|
|
18
|
-
ttyStream.setRawMode(true);
|
|
19
|
-
ttyStream.setRawMode(false);
|
|
20
|
-
return { supported: true };
|
|
21
|
-
} catch (err) {
|
|
22
|
-
const error = err;
|
|
23
|
-
const errorCode = error.code || "UNKNOWN";
|
|
24
|
-
const errorMsg = error.message || "Unknown error";
|
|
25
|
-
let environmentHint = "incompatible terminal environment";
|
|
26
|
-
if (errorCode === "EIO") {
|
|
27
|
-
environmentHint = "Docker container, VS Code terminal, or nested tmux/screen";
|
|
28
|
-
} else if (errorCode === "ENOTTY") {
|
|
29
|
-
environmentHint = "not connected to a terminal device";
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
supported: false,
|
|
33
|
-
reason: `setRawMode failed: ${errorCode} - ${errorMsg}`,
|
|
34
|
-
environmentHint
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
function requireRawModeOrExit(stream, exitOnFailure = true) {
|
|
39
|
-
const result = validateRawModeSupport(stream);
|
|
40
|
-
if (!result.supported) {
|
|
41
|
-
console.error("");
|
|
42
|
-
console.error("\u274C Interactive mode is not supported in this environment");
|
|
43
|
-
console.error(` Reason: ${result.reason}`);
|
|
44
|
-
if (result.environmentHint) {
|
|
45
|
-
console.error(` Likely: ${result.environmentHint}`);
|
|
46
|
-
}
|
|
47
|
-
console.error("");
|
|
48
|
-
console.error("\u{1F4CB} Solutions:");
|
|
49
|
-
console.error(" 1. Use a native terminal application:");
|
|
50
|
-
console.error(" \u2022 macOS: Terminal.app, iTerm2, Warp");
|
|
51
|
-
console.error(" \u2022 Linux: GNOME Terminal, Konsole, xterm");
|
|
52
|
-
console.error(" \u2022 Windows: Windows Terminal, ConEmu");
|
|
53
|
-
console.error("");
|
|
54
|
-
console.error(" 2. Skip interactive onboarding:");
|
|
55
|
-
console.error(' export ANTHROPIC_API_KEY="sk-ant-..."');
|
|
56
|
-
console.error(" minto config set -g hasCompletedOnboarding true");
|
|
57
|
-
console.error("");
|
|
58
|
-
console.error(" 3. Use non-interactive mode:");
|
|
59
|
-
console.error(' minto --print "your prompt here"');
|
|
60
|
-
console.error(' echo "prompt" | minto');
|
|
61
|
-
console.error("");
|
|
62
|
-
if (exitOnFailure) {
|
|
63
|
-
process.exit(1);
|
|
64
|
-
}
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
return true;
|
|
68
|
-
}
|
|
69
|
-
function describeTerminalEnvironment() {
|
|
70
|
-
const descriptions = [];
|
|
71
|
-
if (process.stdin.isTTY) {
|
|
72
|
-
descriptions.push("TTY");
|
|
73
|
-
} else {
|
|
74
|
-
descriptions.push("non-TTY");
|
|
75
|
-
}
|
|
76
|
-
if (process.env.TERM) {
|
|
77
|
-
descriptions.push(`TERM=${process.env.TERM}`);
|
|
78
|
-
}
|
|
79
|
-
if (process.env.TERM_PROGRAM) {
|
|
80
|
-
descriptions.push(`${process.env.TERM_PROGRAM}`);
|
|
81
|
-
}
|
|
82
|
-
if (process.env.VSCODE_INJECTION) {
|
|
83
|
-
descriptions.push("VS Code terminal");
|
|
84
|
-
}
|
|
85
|
-
if (process.env.TMUX) {
|
|
86
|
-
descriptions.push("tmux session");
|
|
87
|
-
}
|
|
88
|
-
if (process.env.STY) {
|
|
89
|
-
descriptions.push("GNU screen");
|
|
90
|
-
}
|
|
91
|
-
try {
|
|
92
|
-
const fs = require("fs");
|
|
93
|
-
if (fs.existsSync("/.dockerenv")) {
|
|
94
|
-
descriptions.push("Docker container");
|
|
95
|
-
}
|
|
96
|
-
} catch {
|
|
97
|
-
}
|
|
98
|
-
return descriptions.join(", ");
|
|
99
|
-
}
|
|
100
|
-
function logTerminalDiagnostics() {
|
|
101
|
-
console.log("");
|
|
102
|
-
console.log("\u{1F50D} Terminal Environment Diagnostics:");
|
|
103
|
-
console.log(` Description: ${describeTerminalEnvironment()}`);
|
|
104
|
-
console.log(` stdin.isTTY: ${process.stdin.isTTY}`);
|
|
105
|
-
console.log(` stdout.isTTY: ${process.stdout.isTTY}`);
|
|
106
|
-
console.log(
|
|
107
|
-
` setRawMode available: ${typeof process.stdin.setRawMode === "function"}`
|
|
108
|
-
);
|
|
109
|
-
const result = validateRawModeSupport(process.stdin);
|
|
110
|
-
console.log(` Raw mode supported: ${result.supported}`);
|
|
111
|
-
if (!result.supported) {
|
|
112
|
-
console.log(` Reason: ${result.reason}`);
|
|
113
|
-
if (result.environmentHint) {
|
|
114
|
-
console.log(` Hint: ${result.environmentHint}`);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
console.log("");
|
|
118
|
-
}
|
|
119
|
-
export {
|
|
120
|
-
describeTerminalEnvironment,
|
|
121
|
-
logTerminalDiagnostics,
|
|
122
|
-
requireRawModeOrExit,
|
|
123
|
-
validateRawModeSupport
|
|
124
|
-
};
|
|
125
|
-
//# sourceMappingURL=ptyCompat.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/ptyCompat.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * PTY Compatibility Utilities\n *\n * This module provides utilities to detect and handle environments where\n * setRawMode is not supported (e.g., Docker containers, VS Code terminals,\n * SSH sessions with incomplete TTY forwarding, etc.)\n */\n\nimport { ReadStream } from 'tty'\n\nexport interface RawModeCheckResult {\n supported: boolean\n reason?: string\n environmentHint?: string\n}\n\n/**\n * Validate if a stream truly supports raw mode\n *\n * Note: Some environments report isTTY=true but still fail on setRawMode\n * with EIO errors. This function performs an actual test.\n *\n * @param stream - The input stream to test (usually process.stdin)\n * @returns Check result with support status and diagnostic info\n */\nexport function validateRawModeSupport(\n stream: NodeJS.ReadStream,\n): RawModeCheckResult {\n // Check 1: Must be a TTY\n if (!stream.isTTY) {\n return {\n supported: false,\n reason: 'Not a TTY device',\n environmentHint: 'piped input or redirected stream',\n }\n }\n\n // Check 2: Must have setRawMode method\n if (typeof (stream as any).setRawMode !== 'function') {\n return {\n supported: false,\n reason: 'setRawMode method not available',\n environmentHint: 'non-standard TTY implementation',\n }\n }\n\n // Check 3: Actually test setRawMode (catches EIO errors)\n try {\n const ttyStream = stream as ReadStream\n ttyStream.setRawMode(true)\n ttyStream.setRawMode(false)\n return { supported: true }\n } catch (err) {\n const error = err as NodeJS.ErrnoException\n const errorCode = error.code || 'UNKNOWN'\n const errorMsg = error.message || 'Unknown error'\n\n // Detect common problematic environments\n let environmentHint = 'incompatible terminal environment'\n\n if (errorCode === 'EIO') {\n // EIO is the most common error in problematic PTY environments\n environmentHint =\n 'Docker container, VS Code terminal, or nested tmux/screen'\n } else if (errorCode === 'ENOTTY') {\n environmentHint = 'not connected to a terminal device'\n }\n\n return {\n supported: false,\n reason: `setRawMode failed: ${errorCode} - ${errorMsg}`,\n environmentHint,\n }\n }\n}\n\n/**\n * Quick check function that exits the process if raw mode is not supported\n * Use this for commands that absolutely require interactive mode\n *\n * @param stream - The input stream to check\n * @param exitOnFailure - Whether to exit process on failure (default: true)\n */\nexport function requireRawModeOrExit(\n stream: NodeJS.ReadStream,\n exitOnFailure = true,\n): boolean {\n const result = validateRawModeSupport(stream)\n\n if (!result.supported) {\n console.error('')\n console.error('\u274C Interactive mode is not supported in this environment')\n console.error(` Reason: ${result.reason}`)\n if (result.environmentHint) {\n console.error(` Likely: ${result.environmentHint}`)\n }\n console.error('')\n console.error('\uD83D\uDCCB Solutions:')\n console.error(' 1. Use a native terminal application:')\n console.error(' \u2022 macOS: Terminal.app, iTerm2, Warp')\n console.error(' \u2022 Linux: GNOME Terminal, Konsole, xterm')\n console.error(' \u2022 Windows: Windows Terminal, ConEmu')\n console.error('')\n console.error(' 2. Skip interactive onboarding:')\n console.error(' export ANTHROPIC_API_KEY=\"sk-ant-...\"')\n console.error(' minto config set -g hasCompletedOnboarding true')\n console.error('')\n console.error(' 3. Use non-interactive mode:')\n console.error(' minto --print \"your prompt here\"')\n console.error(' echo \"prompt\" | minto')\n console.error('')\n\n if (exitOnFailure) {\n process.exit(1)\n }\n return false\n }\n\n return true\n}\n\n/**\n * Get a user-friendly description of the current terminal environment\n */\nexport function describeTerminalEnvironment(): string {\n const descriptions: string[] = []\n\n if (process.stdin.isTTY) {\n descriptions.push('TTY')\n } else {\n descriptions.push('non-TTY')\n }\n\n if (process.env.TERM) {\n descriptions.push(`TERM=${process.env.TERM}`)\n }\n\n if (process.env.TERM_PROGRAM) {\n descriptions.push(`${process.env.TERM_PROGRAM}`)\n }\n\n // Detect common environments\n if (process.env.VSCODE_INJECTION) {\n descriptions.push('VS Code terminal')\n }\n\n if (process.env.TMUX) {\n descriptions.push('tmux session')\n }\n\n if (process.env.STY) {\n descriptions.push('GNU screen')\n }\n\n // Check if running in Docker\n try {\n const fs = require('fs')\n if (fs.existsSync('/.dockerenv')) {\n descriptions.push('Docker container')\n }\n } catch {\n // Ignore\n }\n\n return descriptions.join(', ')\n}\n\n/**\n * Log diagnostic information about the terminal environment\n * Useful for debugging PTY compatibility issues\n */\nexport function logTerminalDiagnostics(): void {\n console.log('')\n console.log('\uD83D\uDD0D Terminal Environment Diagnostics:')\n console.log(` Description: ${describeTerminalEnvironment()}`)\n console.log(` stdin.isTTY: ${process.stdin.isTTY}`)\n console.log(` stdout.isTTY: ${process.stdout.isTTY}`)\n console.log(\n ` setRawMode available: ${typeof (process.stdin as any).setRawMode === 'function'}`,\n )\n\n const result = validateRawModeSupport(process.stdin)\n console.log(` Raw mode supported: ${result.supported}`)\n if (!result.supported) {\n console.log(` Reason: ${result.reason}`)\n if (result.environmentHint) {\n console.log(` Hint: ${result.environmentHint}`)\n }\n }\n console.log('')\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { useState, useCallback } from "react";
|
|
2
|
-
function useREPLStateMachine(initialState = { type: "Idle" }) {
|
|
3
|
-
const [state, setState] = useState(initialState);
|
|
4
|
-
const transitions = {
|
|
5
|
-
/** 转到空闲状态 */
|
|
6
|
-
toIdle: useCallback(() => {
|
|
7
|
-
setState({ type: "Idle" });
|
|
8
|
-
}, []),
|
|
9
|
-
/** 转到用户输入状态 */
|
|
10
|
-
toUserTyping: useCallback(() => {
|
|
11
|
-
setState({ type: "UserTyping" });
|
|
12
|
-
}, []),
|
|
13
|
-
/** 转到用户已提交状态 */
|
|
14
|
-
toUserSubmitted: useCallback(() => {
|
|
15
|
-
setState({ type: "UserSubmitted" });
|
|
16
|
-
}, []),
|
|
17
|
-
/** 转到 AI 思考状态 */
|
|
18
|
-
toAgentThinking: useCallback((message, spinnerFrame) => {
|
|
19
|
-
setState({ type: "AgentThinking", message, spinnerFrame });
|
|
20
|
-
}, []),
|
|
21
|
-
/** 更新思考消息 (原地更新,不改变状态类型) */
|
|
22
|
-
updateThinkingMessage: useCallback(
|
|
23
|
-
(message, spinnerFrame) => {
|
|
24
|
-
setState((prev) => {
|
|
25
|
-
if (prev.type === "AgentThinking") {
|
|
26
|
-
return { ...prev, message, spinnerFrame };
|
|
27
|
-
}
|
|
28
|
-
return prev;
|
|
29
|
-
});
|
|
30
|
-
},
|
|
31
|
-
[]
|
|
32
|
-
),
|
|
33
|
-
/** 转到工具提议状态 */
|
|
34
|
-
toAgentProposingTool: useCallback(
|
|
35
|
-
(toolUse, toolJSX) => {
|
|
36
|
-
setState({ type: "AgentProposingTool", toolUse, toolJSX });
|
|
37
|
-
},
|
|
38
|
-
[]
|
|
39
|
-
),
|
|
40
|
-
/** 转到工具执行状态 */
|
|
41
|
-
toToolExecuting: useCallback(
|
|
42
|
-
(toolUse, output) => {
|
|
43
|
-
setState({ type: "ToolExecuting", toolUse, output });
|
|
44
|
-
},
|
|
45
|
-
[]
|
|
46
|
-
),
|
|
47
|
-
/** 更新工具执行输出 (原地更新) */
|
|
48
|
-
updateToolOutput: useCallback((output) => {
|
|
49
|
-
setState((prev) => {
|
|
50
|
-
if (prev.type === "ToolExecuting") {
|
|
51
|
-
return { ...prev, output };
|
|
52
|
-
}
|
|
53
|
-
return prev;
|
|
54
|
-
});
|
|
55
|
-
}, []),
|
|
56
|
-
/** 转到 AI 回答状态 */
|
|
57
|
-
toAgentResponding: useCallback(
|
|
58
|
-
(streamingText, isComplete) => {
|
|
59
|
-
setState({ type: "AgentResponding", streamingText, isComplete });
|
|
60
|
-
},
|
|
61
|
-
[]
|
|
62
|
-
),
|
|
63
|
-
/** 更新流式回答文本 (原地更新) */
|
|
64
|
-
updateStreamingText: useCallback(
|
|
65
|
-
(streamingText, isComplete) => {
|
|
66
|
-
setState((prev) => {
|
|
67
|
-
if (prev.type === "AgentResponding") {
|
|
68
|
-
return { ...prev, streamingText, isComplete };
|
|
69
|
-
}
|
|
70
|
-
return prev;
|
|
71
|
-
});
|
|
72
|
-
},
|
|
73
|
-
[]
|
|
74
|
-
),
|
|
75
|
-
/** 转到二元反馈状态 */
|
|
76
|
-
toBinaryFeedback: useCallback((context) => {
|
|
77
|
-
setState({ type: "BinaryFeedback", context });
|
|
78
|
-
}, []),
|
|
79
|
-
/** 转到错误状态 */
|
|
80
|
-
toError: useCallback((error, canRecover = true) => {
|
|
81
|
-
setState({ type: "Error", error, canRecover });
|
|
82
|
-
}, []),
|
|
83
|
-
/** 转到消息选择器状态 */
|
|
84
|
-
toMessageSelector: useCallback(() => {
|
|
85
|
-
setState({ type: "MessageSelector" });
|
|
86
|
-
}, [])
|
|
87
|
-
};
|
|
88
|
-
const is = {
|
|
89
|
-
idle: state.type === "Idle",
|
|
90
|
-
userTyping: state.type === "UserTyping",
|
|
91
|
-
userSubmitted: state.type === "UserSubmitted",
|
|
92
|
-
agentThinking: state.type === "AgentThinking",
|
|
93
|
-
agentProposingTool: state.type === "AgentProposingTool",
|
|
94
|
-
toolExecuting: state.type === "ToolExecuting",
|
|
95
|
-
agentResponding: state.type === "AgentResponding",
|
|
96
|
-
binaryFeedback: state.type === "BinaryFeedback",
|
|
97
|
-
error: state.type === "Error",
|
|
98
|
-
messageSelector: state.type === "MessageSelector",
|
|
99
|
-
/** 是否可以接受用户输入 */
|
|
100
|
-
canAcceptInput: state.type === "Idle" || state.type === "UserTyping" || state.type === "Error",
|
|
101
|
-
/** 是否正在加载 (思考、执行、回答) */
|
|
102
|
-
loading: state.type === "AgentThinking" || state.type === "ToolExecuting" || state.type === "AgentResponding" || state.type === "UserSubmitted",
|
|
103
|
-
/** 是否需要用户交互 (确认工具、二元反馈、消息选择) */
|
|
104
|
-
needsUserInteraction: state.type === "AgentProposingTool" || state.type === "BinaryFeedback" || state.type === "MessageSelector"
|
|
105
|
-
};
|
|
106
|
-
return {
|
|
107
|
-
/** 当前状态 */
|
|
108
|
-
state,
|
|
109
|
-
/** 状态转换函数 */
|
|
110
|
-
transitions,
|
|
111
|
-
/** 状态查询辅助 */
|
|
112
|
-
is,
|
|
113
|
-
/** 直接设置状态 (高级用法) */
|
|
114
|
-
setState
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
function getStateName(state) {
|
|
118
|
-
switch (state.type) {
|
|
119
|
-
case "Idle":
|
|
120
|
-
return "\u23F8 Idle";
|
|
121
|
-
case "UserTyping":
|
|
122
|
-
return "\u2328\uFE0F UserTyping";
|
|
123
|
-
case "UserSubmitted":
|
|
124
|
-
return "\u23F3 UserSubmitted";
|
|
125
|
-
case "AgentThinking":
|
|
126
|
-
return `\u{1F914} AgentThinking: ${state.message}`;
|
|
127
|
-
case "AgentProposingTool":
|
|
128
|
-
return `\u{1F527} AgentProposingTool: ${state.toolUse.name}`;
|
|
129
|
-
case "ToolExecuting":
|
|
130
|
-
return `\u2699\uFE0F ToolExecuting: ${state.toolUse.name}`;
|
|
131
|
-
case "AgentResponding":
|
|
132
|
-
return `\u{1F4AC} AgentResponding (${state.streamingText.length} chars)`;
|
|
133
|
-
case "BinaryFeedback":
|
|
134
|
-
return "\u{1F937} BinaryFeedback";
|
|
135
|
-
case "Error":
|
|
136
|
-
return `\u274C Error: ${state.error}`;
|
|
137
|
-
case "MessageSelector":
|
|
138
|
-
return "\u{1F4DC} MessageSelector";
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
export {
|
|
142
|
-
getStateName,
|
|
143
|
-
useREPLStateMachine
|
|
144
|
-
};
|
|
145
|
-
//# sourceMappingURL=replStateMachine.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/replStateMachine.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * REPL \u72B6\u6001\u673A - Claude Code CLI \u98CE\u683C\n *\n * \u6838\u5FC3\u7406\u5FF5\uFF1A\n * 1. \u663E\u5F0F\u72B6\u6001 - \u6E05\u6670\u5B9A\u4E49\u6BCF\u4E2A REPL \u72B6\u6001\n * 2. \u72B6\u6001\u8F6C\u6362 - \u660E\u786E\u7684\u72B6\u6001\u8F6C\u6362\u51FD\u6570\n * 3. \u6E32\u67D3\u9694\u79BB - \u6BCF\u4E2A\u72B6\u6001\u5BF9\u5E94\u72EC\u7ACB\u7684 UI \u6E32\u67D3\n * 4. \u4E92\u65A5\u4FDD\u8BC1 - \u540C\u4E00\u65F6\u95F4\u53EA\u6709\u4E00\u4E2A\u6D3B\u8DC3\u72B6\u6001\n *\n * \u8FD9\u6D88\u9664\u4E86 REPL.tsx \u4E2D\u590D\u6742\u7684 flag \u7EC4\u5408\u903B\u8F91\n */\n\nimport * as React from 'react'\nimport { useState, useCallback } from 'react'\nimport type { ToolUseBlockParam } from '@anthropic-ai/sdk/resources/index.mjs'\nimport type { BinaryFeedbackContext } from '@screens/REPL'\n\n/**\n * REPL \u7684\u6240\u6709\u53EF\u80FD\u72B6\u6001\n *\n * \u57FA\u4E8E Claude Code CLI \u7684\u72B6\u6001\u673A\u8BBE\u8BA1\n */\nexport type REPLState =\n /** \u7A7A\u95F2 - \u7B49\u5F85\u7528\u6237\u8F93\u5165 */\n | { type: 'Idle' }\n\n /** \u7528\u6237\u8F93\u5165\u4E2D - \u7528\u6237\u6B63\u5728\u5E95\u90E8\u8F93\u5165\u6846\u952E\u5165 */\n | { type: 'UserTyping' }\n\n /** \u7528\u6237\u5DF2\u63D0\u4EA4 - \u7B49\u5F85 AI \u5904\u7406 */\n | { type: 'UserSubmitted' }\n\n /** AI \u601D\u8003\u4E2D - \u8BFB\u53D6\u6587\u4EF6\u3001\u5206\u6790\u4EE3\u7801\u7B49 */\n | {\n type: 'AgentThinking'\n /** \u5F53\u524D\u601D\u8003\u9636\u6BB5\u7684\u6D88\u606F (\u4F8B\u5982\uFF1A\"Reading file...\", \"Analyzing code...\") */\n message: string\n /** Spinner \u52A8\u753B\u5E27\u7D22\u5F15 */\n spinnerFrame?: number\n }\n\n /** AI \u63D0\u8BAE\u5DE5\u5177\u6267\u884C - \u7B49\u5F85\u7528\u6237\u786E\u8BA4 */\n | {\n type: 'AgentProposingTool'\n /** \u8981\u6267\u884C\u7684\u5DE5\u5177\u8C03\u7528 */\n toolUse: ToolUseBlockParam\n /** \u5DE5\u5177\u7684 JSX \u5C55\u793A (\u53EF\u9009\uFF0C\u7528\u4E8E\u590D\u6742\u7684\u5DE5\u5177 UI) */\n toolJSX?: React.ReactNode\n }\n\n /** \u5DE5\u5177\u6267\u884C\u4E2D - \u547D\u4EE4\u8FD0\u884C\u3001\u6587\u4EF6\u4FEE\u6539\u7B49 */\n | {\n type: 'ToolExecuting'\n /** \u6B63\u5728\u6267\u884C\u7684\u5DE5\u5177\u8C03\u7528 */\n toolUse: ToolUseBlockParam\n /** \u5B9E\u65F6\u8F93\u51FA */\n output?: string\n }\n\n /** AI \u56DE\u7B54\u4E2D - \u6D41\u5F0F\u8F93\u51FA\u6700\u7EC8\u56DE\u590D */\n | {\n type: 'AgentResponding'\n /** \u5F53\u524D\u5DF2\u63A5\u6536\u7684\u6587\u672C */\n streamingText: string\n /** \u662F\u5426\u5B8C\u6210 */\n isComplete: boolean\n }\n\n /** \u4E8C\u5143\u53CD\u9988 - A/B \u6D4B\u8BD5\u9009\u62E9 */\n | {\n type: 'BinaryFeedback'\n context: BinaryFeedbackContext\n }\n\n /** \u9519\u8BEF - \u663E\u793A\u9519\u8BEF\u4FE1\u606F */\n | {\n type: 'Error'\n error: string\n /** \u53EF\u4EE5\u4ECE\u9519\u8BEF\u6062\u590D\u5230\u7A7A\u95F2\u72B6\u6001 */\n canRecover: boolean\n }\n\n /** \u6D88\u606F\u9009\u62E9\u5668 - \u7528\u6237\u6D4F\u89C8\u5386\u53F2\u6D88\u606F */\n | { type: 'MessageSelector' }\n\n/**\n * REPL \u72B6\u6001\u673A Hook\n *\n * \u63D0\u4F9B\u6E05\u6670\u7684\u72B6\u6001\u7BA1\u7406\u548C\u8F6C\u6362\u63A5\u53E3\n */\nexport function useREPLStateMachine(\n initialState: REPLState = { type: 'Idle' },\n) {\n const [state, setState] = useState<REPLState>(initialState)\n\n /**\n * \u72B6\u6001\u8F6C\u6362\u51FD\u6570\u96C6\u5408\n *\n * \u6BCF\u4E2A\u51FD\u6570\u5BF9\u5E94\u4E00\u4E2A\u660E\u786E\u7684\u72B6\u6001\u8F6C\u6362\u52A8\u4F5C\n */\n const transitions = {\n /** \u8F6C\u5230\u7A7A\u95F2\u72B6\u6001 */\n toIdle: useCallback(() => {\n setState({ type: 'Idle' })\n }, []),\n\n /** \u8F6C\u5230\u7528\u6237\u8F93\u5165\u72B6\u6001 */\n toUserTyping: useCallback(() => {\n setState({ type: 'UserTyping' })\n }, []),\n\n /** \u8F6C\u5230\u7528\u6237\u5DF2\u63D0\u4EA4\u72B6\u6001 */\n toUserSubmitted: useCallback(() => {\n setState({ type: 'UserSubmitted' })\n }, []),\n\n /** \u8F6C\u5230 AI \u601D\u8003\u72B6\u6001 */\n toAgentThinking: useCallback((message: string, spinnerFrame?: number) => {\n setState({ type: 'AgentThinking', message, spinnerFrame })\n }, []),\n\n /** \u66F4\u65B0\u601D\u8003\u6D88\u606F (\u539F\u5730\u66F4\u65B0\uFF0C\u4E0D\u6539\u53D8\u72B6\u6001\u7C7B\u578B) */\n updateThinkingMessage: useCallback(\n (message: string, spinnerFrame?: number) => {\n setState(prev => {\n if (prev.type === 'AgentThinking') {\n return { ...prev, message, spinnerFrame }\n }\n return prev\n })\n },\n [],\n ),\n\n /** \u8F6C\u5230\u5DE5\u5177\u63D0\u8BAE\u72B6\u6001 */\n toAgentProposingTool: useCallback(\n (toolUse: ToolUseBlockParam, toolJSX?: React.ReactNode) => {\n setState({ type: 'AgentProposingTool', toolUse, toolJSX })\n },\n [],\n ),\n\n /** \u8F6C\u5230\u5DE5\u5177\u6267\u884C\u72B6\u6001 */\n toToolExecuting: useCallback(\n (toolUse: ToolUseBlockParam, output?: string) => {\n setState({ type: 'ToolExecuting', toolUse, output })\n },\n [],\n ),\n\n /** \u66F4\u65B0\u5DE5\u5177\u6267\u884C\u8F93\u51FA (\u539F\u5730\u66F4\u65B0) */\n updateToolOutput: useCallback((output: string) => {\n setState(prev => {\n if (prev.type === 'ToolExecuting') {\n return { ...prev, output }\n }\n return prev\n })\n }, []),\n\n /** \u8F6C\u5230 AI \u56DE\u7B54\u72B6\u6001 */\n toAgentResponding: useCallback(\n (streamingText: string, isComplete: boolean) => {\n setState({ type: 'AgentResponding', streamingText, isComplete })\n },\n [],\n ),\n\n /** \u66F4\u65B0\u6D41\u5F0F\u56DE\u7B54\u6587\u672C (\u539F\u5730\u66F4\u65B0) */\n updateStreamingText: useCallback(\n (streamingText: string, isComplete: boolean) => {\n setState(prev => {\n if (prev.type === 'AgentResponding') {\n return { ...prev, streamingText, isComplete }\n }\n return prev\n })\n },\n [],\n ),\n\n /** \u8F6C\u5230\u4E8C\u5143\u53CD\u9988\u72B6\u6001 */\n toBinaryFeedback: useCallback((context: BinaryFeedbackContext) => {\n setState({ type: 'BinaryFeedback', context })\n }, []),\n\n /** \u8F6C\u5230\u9519\u8BEF\u72B6\u6001 */\n toError: useCallback((error: string, canRecover: boolean = true) => {\n setState({ type: 'Error', error, canRecover })\n }, []),\n\n /** \u8F6C\u5230\u6D88\u606F\u9009\u62E9\u5668\u72B6\u6001 */\n toMessageSelector: useCallback(() => {\n setState({ type: 'MessageSelector' })\n }, []),\n }\n\n /**\n * \u72B6\u6001\u67E5\u8BE2\u8F85\u52A9\u51FD\u6570\n */\n const is = {\n idle: state.type === 'Idle',\n userTyping: state.type === 'UserTyping',\n userSubmitted: state.type === 'UserSubmitted',\n agentThinking: state.type === 'AgentThinking',\n agentProposingTool: state.type === 'AgentProposingTool',\n toolExecuting: state.type === 'ToolExecuting',\n agentResponding: state.type === 'AgentResponding',\n binaryFeedback: state.type === 'BinaryFeedback',\n error: state.type === 'Error',\n messageSelector: state.type === 'MessageSelector',\n\n /** \u662F\u5426\u53EF\u4EE5\u63A5\u53D7\u7528\u6237\u8F93\u5165 */\n canAcceptInput:\n state.type === 'Idle' ||\n state.type === 'UserTyping' ||\n state.type === 'Error',\n\n /** \u662F\u5426\u6B63\u5728\u52A0\u8F7D (\u601D\u8003\u3001\u6267\u884C\u3001\u56DE\u7B54) */\n loading:\n state.type === 'AgentThinking' ||\n state.type === 'ToolExecuting' ||\n state.type === 'AgentResponding' ||\n state.type === 'UserSubmitted',\n\n /** \u662F\u5426\u9700\u8981\u7528\u6237\u4EA4\u4E92 (\u786E\u8BA4\u5DE5\u5177\u3001\u4E8C\u5143\u53CD\u9988\u3001\u6D88\u606F\u9009\u62E9) */\n needsUserInteraction:\n state.type === 'AgentProposingTool' ||\n state.type === 'BinaryFeedback' ||\n state.type === 'MessageSelector',\n }\n\n return {\n /** \u5F53\u524D\u72B6\u6001 */\n state,\n /** \u72B6\u6001\u8F6C\u6362\u51FD\u6570 */\n transitions,\n /** \u72B6\u6001\u67E5\u8BE2\u8F85\u52A9 */\n is,\n /** \u76F4\u63A5\u8BBE\u7F6E\u72B6\u6001 (\u9AD8\u7EA7\u7528\u6CD5) */\n setState,\n }\n}\n\n/**\n * \u72B6\u6001\u673A\u8C03\u8BD5\u8F85\u52A9\n */\nexport function getStateName(state: REPLState): string {\n switch (state.type) {\n case 'Idle':\n return '\u23F8 Idle'\n case 'UserTyping':\n return '\u2328\uFE0F UserTyping'\n case 'UserSubmitted':\n return '\u23F3 UserSubmitted'\n case 'AgentThinking':\n return `\uD83E\uDD14 AgentThinking: ${state.message}`\n case 'AgentProposingTool':\n return `\uD83D\uDD27 AgentProposingTool: ${state.toolUse.name}`\n case 'ToolExecuting':\n return `\u2699\uFE0F ToolExecuting: ${state.toolUse.name}`\n case 'AgentResponding':\n return `\uD83D\uDCAC AgentResponding (${state.streamingText.length} chars)`\n case 'BinaryFeedback':\n return '\uD83E\uDD37 BinaryFeedback'\n case 'Error':\n return `\u274C Error: ${state.error}`\n case 'MessageSelector':\n return '\uD83D\uDCDC MessageSelector'\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { existsSync, mkdirSync, rmSync, writeFileSync } from "fs";
|
|
2
|
-
import { join, dirname, isAbsolute } from "path";
|
|
3
|
-
import { tmpdir } from "os";
|
|
4
|
-
import { execFileNoThrow } from "./execFileNoThrow.js";
|
|
5
|
-
async function fetchRepo(source, targetDir) {
|
|
6
|
-
if (source.type === "github") {
|
|
7
|
-
return fetchGitHubRepo(source.repo, source.ref, targetDir);
|
|
8
|
-
}
|
|
9
|
-
const ghMatch = source.url.match(/github\.com[/:]([^/]+\/[^/.]+?)(?:\.git)?$/);
|
|
10
|
-
if (ghMatch) {
|
|
11
|
-
return fetchGitHubRepo(ghMatch[1], source.ref, targetDir);
|
|
12
|
-
}
|
|
13
|
-
await gitCloneFallback(source.url, source.ref, targetDir);
|
|
14
|
-
}
|
|
15
|
-
async function fetchGitHubRepo(repo, ref, targetDir) {
|
|
16
|
-
try {
|
|
17
|
-
await fetchGitHubTarball(repo, ref, targetDir);
|
|
18
|
-
} catch {
|
|
19
|
-
const url = `https://github.com/${repo}.git`;
|
|
20
|
-
await gitCloneFallback(url, ref, targetDir);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
async function fetchGitHubTarball(repo, ref, targetDir) {
|
|
24
|
-
const url = ref ? `https://api.github.com/repos/${repo}/tarball/${ref}` : `https://api.github.com/repos/${repo}/tarball`;
|
|
25
|
-
await downloadAndExtractTarball(url, targetDir);
|
|
26
|
-
}
|
|
27
|
-
async function downloadAndExtractTarball(url, targetDir) {
|
|
28
|
-
if (!existsSync(targetDir)) {
|
|
29
|
-
mkdirSync(targetDir, { recursive: true });
|
|
30
|
-
}
|
|
31
|
-
const tmpFile = join(
|
|
32
|
-
tmpdir(),
|
|
33
|
-
`minto-tarball-${Date.now()}-${Math.random().toString(36).slice(2)}.tar.gz`
|
|
34
|
-
);
|
|
35
|
-
try {
|
|
36
|
-
const response = await fetch(url, {
|
|
37
|
-
redirect: "follow",
|
|
38
|
-
signal: AbortSignal.timeout(6e4)
|
|
39
|
-
});
|
|
40
|
-
if (!response.ok) {
|
|
41
|
-
throw new Error(`HTTP ${response.status} ${response.statusText}`);
|
|
42
|
-
}
|
|
43
|
-
const buffer = Buffer.from(await response.arrayBuffer());
|
|
44
|
-
writeFileSync(tmpFile, buffer);
|
|
45
|
-
const result = await execFileNoThrow("tar", [
|
|
46
|
-
"xzf",
|
|
47
|
-
tmpFile,
|
|
48
|
-
"-C",
|
|
49
|
-
targetDir,
|
|
50
|
-
"--strip-components=1"
|
|
51
|
-
]);
|
|
52
|
-
if (result.code !== 0) {
|
|
53
|
-
throw new Error(
|
|
54
|
-
`tar extraction failed: ${result.stderr || result.stdout}`
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
} finally {
|
|
58
|
-
try {
|
|
59
|
-
if (existsSync(tmpFile)) {
|
|
60
|
-
rmSync(tmpFile, { force: true });
|
|
61
|
-
}
|
|
62
|
-
} catch {
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
async function gitCloneFallback(url, ref, targetDir) {
|
|
67
|
-
await ensureGitEnv();
|
|
68
|
-
if (existsSync(targetDir)) {
|
|
69
|
-
rmSync(targetDir, { recursive: true, force: true });
|
|
70
|
-
}
|
|
71
|
-
const args = ["clone", "--depth", "1"];
|
|
72
|
-
if (ref) {
|
|
73
|
-
args.push("--branch", ref);
|
|
74
|
-
}
|
|
75
|
-
args.push(url, targetDir);
|
|
76
|
-
const result = await execFileNoThrow("git", args);
|
|
77
|
-
if (result.code !== 0) {
|
|
78
|
-
throw new Error(`Git clone failed: ${result.stderr || result.stdout}`);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
let gitEnvFixed = false;
|
|
82
|
-
async function ensureGitEnv() {
|
|
83
|
-
if (gitEnvFixed) return;
|
|
84
|
-
gitEnvFixed = true;
|
|
85
|
-
if (process.env.GIT_EXEC_PATH) return;
|
|
86
|
-
try {
|
|
87
|
-
const result = await execFileNoThrow("git", ["--exec-path"]);
|
|
88
|
-
const execPath = result.stdout.trim();
|
|
89
|
-
if (execPath && (execPath.startsWith("//") || !isAbsolute(execPath))) {
|
|
90
|
-
const whichResult = await execFileNoThrow("which", ["git"]);
|
|
91
|
-
const gitBin = whichResult.stdout.trim();
|
|
92
|
-
if (gitBin) {
|
|
93
|
-
const prefix = dirname(dirname(gitBin));
|
|
94
|
-
const fixedExecPath = join(prefix, "libexec", "git-core");
|
|
95
|
-
if (existsSync(fixedExecPath)) {
|
|
96
|
-
process.env.GIT_EXEC_PATH = fixedExecPath;
|
|
97
|
-
const templateDir = join(prefix, "share", "git-core", "templates");
|
|
98
|
-
if (existsSync(templateDir) && !process.env.GIT_TEMPLATE_DIR) {
|
|
99
|
-
process.env.GIT_TEMPLATE_DIR = templateDir;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
} catch {
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
export {
|
|
108
|
-
fetchRepo
|
|
109
|
-
};
|
|
110
|
-
//# sourceMappingURL=repoFetcher.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/repoFetcher.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Repo Fetcher\n *\n * Unified repository fetching utility that replaces git clone with HTTP tarball\n * downloads for GitHub sources (zero git dependency). Falls back to git clone\n * for non-GitHub URLs.\n *\n * GitHub tarball URL pattern: https://github.com/{owner}/{repo}/archive/{ref}.tar.gz\n * macOS/Linux systems have /usr/bin/tar built-in, so no extra dependencies needed.\n */\n\nimport { existsSync, mkdirSync, rmSync, writeFileSync } from 'fs'\nimport { join, dirname, isAbsolute } from 'path'\nimport { tmpdir } from 'os'\nimport { execFileNoThrow } from './execFileNoThrow'\n\n/**\n * Source descriptor for fetchRepo\n */\nexport type RepoSource =\n | { type: 'github'; repo: string; ref?: string }\n | { type: 'url'; url: string; ref?: string }\n\n/**\n * Fetch a repository into targetDir.\n *\n * - GitHub sources use HTTP tarball download (no git required)\n * - Non-GitHub URL sources fall back to git clone\n * - On GitHub tarball failure, falls back to git clone\n */\nexport async function fetchRepo(\n source: RepoSource,\n targetDir: string,\n): Promise<void> {\n if (source.type === 'github') {\n return fetchGitHubRepo(source.repo, source.ref, targetDir)\n }\n\n // URL source: check if it's a github.com URL\n const ghMatch = source.url.match(/github\\.com[/:]([^/]+\\/[^/.]+?)(?:\\.git)?$/)\n if (ghMatch) {\n return fetchGitHubRepo(ghMatch[1], source.ref, targetDir)\n }\n\n // Non-GitHub URL: git clone only\n await gitCloneFallback(source.url, source.ref, targetDir)\n}\n\n/**\n * Fetch a GitHub repo: try tarball first, fall back to git clone\n */\nasync function fetchGitHubRepo(\n repo: string,\n ref: string | undefined,\n targetDir: string,\n): Promise<void> {\n try {\n await fetchGitHubTarball(repo, ref, targetDir)\n } catch {\n // Tarball failed \u2014 fall back to git clone\n const url = `https://github.com/${repo}.git`\n await gitCloneFallback(url, ref, targetDir)\n }\n}\n\n/**\n * Download and extract a GitHub tarball into targetDir.\n *\n * GitHub tarballs contain a single top-level directory like `{repo}-{ref}/`.\n * We use `--strip-components=1` to remove that prefix.\n */\nasync function fetchGitHubTarball(\n repo: string,\n ref: string | undefined,\n targetDir: string,\n): Promise<void> {\n // Use GitHub API tarball endpoint \u2014 it auto-resolves the default branch\n // when no ref is given (unlike /archive/ which requires an explicit ref).\n const url = ref\n ? `https://api.github.com/repos/${repo}/tarball/${ref}`\n : `https://api.github.com/repos/${repo}/tarball`\n await downloadAndExtractTarball(url, targetDir)\n}\n\n/**\n * Download a .tar.gz URL to a temp file, then extract into targetDir\n * using the system `tar` command.\n */\nasync function downloadAndExtractTarball(\n url: string,\n targetDir: string,\n): Promise<void> {\n // Ensure target directory exists\n if (!existsSync(targetDir)) {\n mkdirSync(targetDir, { recursive: true })\n }\n\n const tmpFile = join(\n tmpdir(),\n `minto-tarball-${Date.now()}-${Math.random().toString(36).slice(2)}.tar.gz`,\n )\n\n try {\n // Download with fetch (built-in in Node 18+ / Bun)\n const response = await fetch(url, {\n redirect: 'follow',\n signal: AbortSignal.timeout(60_000),\n })\n\n if (!response.ok) {\n throw new Error(`HTTP ${response.status} ${response.statusText}`)\n }\n\n const buffer = Buffer.from(await response.arrayBuffer())\n writeFileSync(tmpFile, buffer)\n\n // Extract with system tar\n const result = await execFileNoThrow('tar', [\n 'xzf',\n tmpFile,\n '-C',\n targetDir,\n '--strip-components=1',\n ])\n\n if (result.code !== 0) {\n throw new Error(\n `tar extraction failed: ${result.stderr || result.stdout}`,\n )\n }\n } finally {\n // Clean up temp file\n try {\n if (existsSync(tmpFile)) {\n rmSync(tmpFile, { force: true })\n }\n } catch {\n // Ignore cleanup errors\n }\n }\n}\n\n/**\n * Git clone fallback for non-GitHub URLs.\n * Includes ensureGitEnv() to fix broken bundled git installations.\n */\nasync function gitCloneFallback(\n url: string,\n ref: string | undefined,\n targetDir: string,\n): Promise<void> {\n await ensureGitEnv()\n\n // git clone requires the target to not exist or be empty.\n // Remove it first (may contain partial tarball extraction artifacts).\n if (existsSync(targetDir)) {\n rmSync(targetDir, { recursive: true, force: true })\n }\n\n const args = ['clone', '--depth', '1']\n if (ref) {\n args.push('--branch', ref)\n }\n args.push(url, targetDir)\n\n const result = await execFileNoThrow('git', args)\n\n if (result.code !== 0) {\n throw new Error(`Git clone failed: ${result.stderr || result.stdout}`)\n }\n}\n\n/**\n * Ensure GIT_EXEC_PATH is correctly set in the environment.\n *\n * Some bundled git binaries (e.g., dugite inside Electron apps) have a broken\n * compiled-in exec-path that resolves to `//libexec/git-core` instead of an\n * absolute path. We detect this and derive the correct path from the git\n * binary's location.\n */\nlet gitEnvFixed = false\nasync function ensureGitEnv(): Promise<void> {\n if (gitEnvFixed) return\n gitEnvFixed = true\n\n // Skip if user already set GIT_EXEC_PATH\n if (process.env.GIT_EXEC_PATH) return\n\n try {\n const result = await execFileNoThrow('git', ['--exec-path'])\n const execPath = result.stdout.trim()\n\n // Detect broken path: starts with // or is not absolute\n if (execPath && (execPath.startsWith('//') || !isAbsolute(execPath))) {\n const whichResult = await execFileNoThrow('which', ['git'])\n const gitBin = whichResult.stdout.trim()\n\n if (gitBin) {\n const prefix = dirname(dirname(gitBin))\n const fixedExecPath = join(prefix, 'libexec', 'git-core')\n\n if (existsSync(fixedExecPath)) {\n process.env.GIT_EXEC_PATH = fixedExecPath\n\n const templateDir = join(prefix, 'share', 'git-core', 'templates')\n if (existsSync(templateDir) && !process.env.GIT_TEMPLATE_DIR) {\n process.env.GIT_TEMPLATE_DIR = templateDir\n }\n }\n }\n }\n } catch {\n // Best-effort; if detection fails, proceed without fixing\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|