@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/commands/plugin.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useState, useEffect, useMemo, useCallback } from 'react'\nimport { Box, Text, useInput } from 'ink'\nimport { Command } from '@commands'\nimport { SimpleSpinner } from '@components/Spinner'\nimport {\n loadAllPlugins,\n getPlugin,\n listPlugins,\n loadPlugin,\n togglePluginEnabled,\n enablePlugin,\n disablePlugin,\n} from '@utils/pluginLoader'\nimport {\n addMarketplace,\n removeMarketplace,\n updateMarketplace,\n listMarketplaces,\n getMarketplace,\n installPluginFromMarketplace,\n} from '@utils/marketplaceManager'\nimport { uninstallPlugin } from '@utils/pluginInstaller'\nimport {\n syncFromClaudeCode,\n hasClaudeCodeInstallation,\n type SyncResult,\n} from '@utils/claudeCodeSync'\nimport { gt as semverGt, valid as semverValid } from 'semver'\nimport { LoadedPlugin, PluginManifest, PluginError } from '../types/plugin'\nimport { RegisteredMarketplace, MarketplaceError } from '../types/marketplace'\nimport { rmSync } from 'fs'\nimport { getTheme } from '@utils/theme'\nimport { SEMANTIC_COLORS } from '@constants/colors'\nimport { TabbedListView } from '@components/TabbedListView/TabbedListView'\nimport type {\n ListItem,\n TabDefinition,\n StatusOverlay,\n} from '@components/TabbedListView/types'\nimport { t } from '@i18n'\nimport { formatMarketplacePath, formatTimeAgo } from './plugin/utils'\n\n/**\n * Plugin Command - Comprehensive plugin management for Minto CLI\n *\n * Implements all plugin management commands following Claude Code specification:\n * - /plugin list - List all installed plugins\n * - /plugin info <name> - Show detailed plugin information\n * - /plugin install <name>[@marketplace] - Install plugin from marketplace\n * - /plugin uninstall <name> - Remove installed plugin\n * - /plugin validate [name] - Validate plugin manifest and components\n * - /plugin marketplace add <source> - Register new marketplace\n * - /plugin marketplace list - List registered marketplaces\n * - /plugin marketplace update <name> - Update marketplace manifest\n * - /plugin marketplace remove <name> - Unregister marketplace\n */\n\n// ============================================================================\n// Component: Plugin List View\n// ============================================================================\n\ninterface PluginListProps {\n onDone: () => void\n}\n\nconst PluginList: React.FC<PluginListProps> = ({ onDone }) => {\n const [plugins, setPlugins] = useState<LoadedPlugin[]>([])\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState<string | null>(null)\n const theme = getTheme()\n\n useEffect(() => {\n try {\n const loadedPlugins = loadAllPlugins()\n setPlugins(loadedPlugins)\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err))\n } finally {\n setLoading(false)\n onDone()\n }\n }, [onDone])\n\n if (loading) {\n return <Text color={theme.primary}>Loading plugins...</Text>\n }\n\n if (error) {\n return <Text color={theme.error}>Error: {error}</Text>\n }\n\n if (plugins.length === 0) {\n return (\n <Box flexDirection=\"column\">\n <Text color={theme.warning}>No plugins installed.</Text>\n <Text color={SEMANTIC_COLORS.dim}>\n Install plugins with: /plugin install <name>[@marketplace]\n </Text>\n </Box>\n )\n }\n\n return (\n <Box flexDirection=\"column\">\n <Text bold underline color={theme.success}>\n Installed Plugins ({plugins.length})\n </Text>\n <Text>{''}</Text>\n {plugins.map(plugin => {\n const componentCounts = [\n plugin.agents.length > 0 &&\n `${plugin.agents.length} agent${plugin.agents.length !== 1 ? 's' : ''}`,\n plugin.commands.length > 0 &&\n `${plugin.commands.length} command${plugin.commands.length !== 1 ? 's' : ''}`,\n plugin.skills.length > 0 &&\n `${plugin.skills.length} skill${plugin.skills.length !== 1 ? 's' : ''}`,\n plugin.hooks.length > 0 &&\n `${plugin.hooks.length} hook${plugin.hooks.length !== 1 ? 's' : ''}`,\n plugin.mcpServers.length > 0 &&\n `${plugin.mcpServers.length} MCP server${plugin.mcpServers.length !== 1 ? 's' : ''}`,\n ].filter(Boolean)\n\n return (\n <Box\n key={plugin.manifest.name}\n flexDirection=\"column\"\n marginBottom={1}\n >\n <Box>\n <Text color={theme.primary} bold>\n {plugin.manifest.displayName || plugin.manifest.name}\n </Text>\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n v{plugin.manifest.version}\n </Text>\n {plugin.source.type === 'claude-code' && (\n <Text color=\"#5DADE2\"> [CC]</Text>\n )}\n {!plugin.enabled && (\n <Text color={theme.warning}> (disabled)</Text>\n )}\n </Box>\n {plugin.manifest.description && (\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n {plugin.manifest.description}\n </Text>\n )}\n {componentCounts.length > 0 && (\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n Components: {componentCounts.join(', ')}\n </Text>\n )}\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n Location:{' '}\n {plugin.source.type === 'local'\n ? plugin.source.path\n : plugin.location}\n </Text>\n </Box>\n )\n })}\n </Box>\n )\n}\n\n// ============================================================================\n// Component: Plugin Info View\n// ============================================================================\n\ninterface PluginInfoProps {\n pluginName: string\n onDone: () => void\n}\n\nconst PluginInfo: React.FC<PluginInfoProps> = ({ pluginName, onDone }) => {\n const [plugin, setPlugin] = useState<LoadedPlugin | null>(null)\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState<string | null>(null)\n const theme = getTheme()\n\n useEffect(() => {\n try {\n const loadedPlugin = getPlugin(pluginName)\n if (!loadedPlugin) {\n setError(`Plugin \"${pluginName}\" not found`)\n } else {\n setPlugin(loadedPlugin)\n }\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err))\n } finally {\n setLoading(false)\n onDone()\n }\n }, [pluginName, onDone])\n\n if (loading) {\n return <Text color={theme.primary}>Loading plugin info...</Text>\n }\n\n if (error || !plugin) {\n return <Text color={theme.error}>Error: {error || 'Plugin not found'}</Text>\n }\n\n return (\n <Box flexDirection=\"column\">\n <Text bold underline color={theme.success}>\n {plugin.manifest.displayName || plugin.manifest.name}\n </Text>\n <Text>{''}</Text>\n\n <Box flexDirection=\"column\">\n <Text>\n <Text color={theme.primary}>Name:</Text> {plugin.manifest.name}\n </Text>\n <Text>\n <Text color={theme.primary}>Version:</Text> {plugin.manifest.version}\n </Text>\n {plugin.manifest.description && (\n <Text>\n <Text color={theme.primary}>Description:</Text>{' '}\n {plugin.manifest.description}\n </Text>\n )}\n {plugin.manifest.author && (\n <Text>\n <Text color={theme.primary}>Author:</Text> {plugin.manifest.author}\n </Text>\n )}\n {plugin.manifest.license && (\n <Text>\n <Text color={theme.primary}>License:</Text>{' '}\n {plugin.manifest.license}\n </Text>\n )}\n {plugin.manifest.homepage && (\n <Text>\n <Text color={theme.primary}>Homepage:</Text>{' '}\n {plugin.manifest.homepage}\n </Text>\n )}\n {plugin.manifest.repository && (\n <Text>\n <Text color={theme.primary}>Repository:</Text>{' '}\n {plugin.manifest.repository}\n </Text>\n )}\n <Text>\n <Text color={theme.primary}>Location:</Text> {plugin.location}\n </Text>\n <Text>\n <Text color={theme.primary}>Source:</Text> {plugin.source.type}\n </Text>\n <Text>\n <Text color={theme.primary}>Enabled:</Text>{' '}\n {plugin.enabled ? 'Yes' : 'No'}\n </Text>\n </Box>\n\n <Text>{''}</Text>\n <Text bold color={theme.primary}>\n Components:\n </Text>\n\n {plugin.agents.length > 0 && (\n <Box flexDirection=\"column\" marginTop={1}>\n <Text color={theme.success}>Agents ({plugin.agents.length}):</Text>\n {plugin.agents.map(agent => (\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n \u2022 {agent.name}\n {agent.config.description ? ` - ${agent.config.description}` : ''}\n </Text>\n ))}\n </Box>\n )}\n\n {plugin.commands.length > 0 && (\n <Box flexDirection=\"column\" marginTop={1}>\n <Text color={theme.success}>\n Commands ({plugin.commands.length}):\n </Text>\n {plugin.commands.map(command => (\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n \u2022 /{command.name}\n {command.config.description\n ? ` - ${command.config.description}`\n : ''}\n </Text>\n ))}\n </Box>\n )}\n\n {plugin.skills.length > 0 && (\n <Box flexDirection=\"column\" marginTop={1}>\n <Text color={theme.success}>Skills ({plugin.skills.length}):</Text>\n {plugin.skills.map(skill => (\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n \u2022 {skill.name}\n {skill.config.description ? ` - ${skill.config.description}` : ''}\n </Text>\n ))}\n </Box>\n )}\n\n {plugin.hooks.length > 0 && (\n <Box flexDirection=\"column\" marginTop={1}>\n <Text color={theme.success}>Hooks ({plugin.hooks.length}):</Text>\n {plugin.hooks.map(hook => (\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n \u2022 {hook.name} ({hook.config.event})\n </Text>\n ))}\n </Box>\n )}\n\n {plugin.mcpServers.length > 0 && (\n <Box flexDirection=\"column\" marginTop={1}>\n <Text color={theme.success}>\n MCP Servers ({plugin.mcpServers.length}):\n </Text>\n {plugin.mcpServers.map(server => (\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n \u2022 {server.name} - {server.config.command}\n </Text>\n ))}\n </Box>\n )}\n\n {plugin.agents.length === 0 &&\n plugin.commands.length === 0 &&\n plugin.skills.length === 0 &&\n plugin.hooks.length === 0 &&\n plugin.mcpServers.length === 0 && (\n <Text color={SEMANTIC_COLORS.dim}> No components loaded</Text>\n )}\n\n {plugin.manifest.engines && (\n <>\n <Text>{''}</Text>\n <Text bold color={theme.primary}>\n Requirements:\n </Text>\n {plugin.manifest.engines.minto && (\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n Minto: {plugin.manifest.engines.minto}\n </Text>\n )}\n {plugin.manifest.engines['claude-code'] && (\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n Claude Code: {plugin.manifest.engines['claude-code']}\n </Text>\n )}\n {plugin.manifest.engines.node && (\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n Node: {plugin.manifest.engines.node}\n </Text>\n )}\n </>\n )}\n </Box>\n )\n}\n\n// ============================================================================\n// Component: Plugin Install View\n// ============================================================================\n\ninterface PluginInstallProps {\n pluginSpec: string\n onDone: () => void\n}\n\nconst PluginInstall: React.FC<PluginInstallProps> = ({\n pluginSpec,\n onDone,\n}) => {\n const [status, setStatus] = useState<'installing' | 'success' | 'error'>(\n 'installing',\n )\n const [message, setMessage] = useState('')\n const [installedPath, setInstalledPath] = useState('')\n const theme = getTheme()\n\n useEffect(() => {\n const installPlugin = async () => {\n try {\n // Parse plugin spec: name[@marketplace]\n const [pluginName, marketplaceName] = pluginSpec.split('@')\n\n if (!pluginName) {\n throw new Error('Plugin name is required')\n }\n\n setMessage(\n `Installing plugin \"${pluginName}\"${marketplaceName ? ` from marketplace \"${marketplaceName}\"` : ''}...`,\n )\n\n const path = await installPluginFromMarketplace(\n pluginName,\n marketplaceName,\n )\n\n setInstalledPath(path)\n setMessage(`Successfully installed \"${pluginName}\" to ${path}`)\n setStatus('success')\n } catch (err) {\n if (err instanceof MarketplaceError) {\n setMessage(`Installation failed: ${err.message}`)\n } else {\n setMessage(\n `Installation failed: ${err instanceof Error ? err.message : String(err)}`,\n )\n }\n setStatus('error')\n } finally {\n onDone()\n }\n }\n\n installPlugin()\n }, [pluginSpec, onDone])\n\n const color =\n status === 'success'\n ? theme.success\n : status === 'error'\n ? theme.error\n : theme.primary\n\n return (\n <Box flexDirection=\"column\">\n <Text color={color}>{message}</Text>\n {status === 'success' && (\n <>\n <Text>{''}</Text>\n <Text color={SEMANTIC_COLORS.dim}>\n Plugin is now available. Use /plugin info {pluginSpec.split('@')[0]}{' '}\n to see details.\n </Text>\n </>\n )}\n </Box>\n )\n}\n\n// ============================================================================\n// Component: Plugin Uninstall View\n// ============================================================================\n\ninterface PluginUninstallProps {\n pluginName: string\n onDone: () => void\n}\n\nconst PluginUninstall: React.FC<PluginUninstallProps> = ({\n pluginName,\n onDone,\n}) => {\n const [status, setStatus] = useState<'uninstalling' | 'success' | 'error'>(\n 'uninstalling',\n )\n const [message, setMessage] = useState('')\n const theme = getTheme()\n\n useEffect(() => {\n const uninstallPlugin = () => {\n try {\n setMessage(`Uninstalling plugin \"${pluginName}\"...`)\n\n const plugin = getPlugin(pluginName)\n if (!plugin) {\n throw new Error(`Plugin \"${pluginName}\" not found`)\n }\n\n // Remove plugin directory\n rmSync(plugin.location, { recursive: true, force: true })\n\n setMessage(`Successfully uninstalled \"${pluginName}\"`)\n setStatus('success')\n } catch (err) {\n setMessage(\n `Uninstallation failed: ${err instanceof Error ? err.message : String(err)}`,\n )\n setStatus('error')\n } finally {\n onDone()\n }\n }\n\n uninstallPlugin()\n }, [pluginName, onDone])\n\n const color =\n status === 'success'\n ? theme.success\n : status === 'error'\n ? theme.error\n : theme.primary\n\n return <Text color={color}>{message}</Text>\n}\n\n// ============================================================================\n// Component: Plugin Validate View\n// ============================================================================\n\ninterface PluginValidateProps {\n pluginName?: string\n onDone: () => void\n}\n\nconst PluginValidate: React.FC<PluginValidateProps> = ({\n pluginName,\n onDone,\n}) => {\n const [results, setResults] = useState<\n Array<{ plugin: string; valid: boolean; errors: string[] }>\n >([])\n const [loading, setLoading] = useState(true)\n const theme = getTheme()\n\n useEffect(() => {\n const validatePlugins = () => {\n try {\n const pluginsToValidate = pluginName\n ? [{ name: pluginName, path: '', manifest: undefined }]\n : listPlugins()\n\n const validationResults = pluginsToValidate.map(({ name, path }) => {\n const errors: string[] = []\n\n try {\n const plugin = getPlugin(name)\n\n if (!plugin) {\n errors.push('Plugin not found')\n return { plugin: name, valid: false, errors }\n }\n\n // Validate manifest required fields\n if (!plugin.manifest.name)\n errors.push('Missing required field: name')\n if (!plugin.manifest.version)\n errors.push('Missing required field: version')\n if (!plugin.manifest.description)\n errors.push('Missing required field: description')\n\n // Validate version format\n if (\n plugin.manifest.version &&\n !/^\\d+\\.\\d+\\.\\d+$/.test(plugin.manifest.version)\n ) {\n errors.push('Invalid version format (must be semver: X.Y.Z)')\n }\n\n // Validate name format\n if (\n plugin.manifest.name &&\n !/^[a-z0-9-]+$/.test(plugin.manifest.name)\n ) {\n errors.push(\n 'Invalid name format (must be lowercase alphanumeric with hyphens)',\n )\n }\n\n // Validate component paths exist\n const checkComponents = (items: any[], type: string) => {\n items.forEach(item => {\n if (!item.filePath) {\n errors.push(`${type} \"${item.name}\" has no file path`)\n }\n })\n }\n\n checkComponents(plugin.agents, 'Agent')\n checkComponents(plugin.commands, 'Command')\n checkComponents(plugin.skills, 'Skill')\n\n return { plugin: name, valid: errors.length === 0, errors }\n } catch (err) {\n errors.push(err instanceof Error ? err.message : String(err))\n return { plugin: name, valid: false, errors }\n }\n })\n\n setResults(validationResults)\n } finally {\n setLoading(false)\n onDone()\n }\n }\n\n validatePlugins()\n }, [pluginName, onDone])\n\n if (loading) {\n return <Text color={theme.primary}>Validating plugins...</Text>\n }\n\n return (\n <Box flexDirection=\"column\">\n <Text bold underline color={theme.primary}>\n Plugin Validation Results\n </Text>\n <Text>{''}</Text>\n {results.map(result => (\n <Box flexDirection=\"column\" marginBottom={1}>\n <Box>\n <Text color={result.valid ? theme.success : theme.error}>\n {result.valid ? '\u2713' : '\u2717'}\n </Text>\n <Text> {result.plugin}</Text>\n {result.valid && <Text color={theme.success}> - Valid</Text>}\n </Box>\n {result.errors.length > 0 && (\n <Box flexDirection=\"column\" marginLeft={2}>\n {result.errors.map((error, idx) => (\n <Text color={theme.error}>\u2022 {error}</Text>\n ))}\n </Box>\n )}\n </Box>\n ))}\n </Box>\n )\n}\n\n// ============================================================================\n// Component: Plugin Sync (Claude Code \u2192 Minto)\n// ============================================================================\n\ninterface PluginSyncProps {\n onDone: () => void\n force?: boolean\n clean?: boolean\n dryRun?: boolean\n}\n\nconst PluginSync: React.FC<PluginSyncProps> = ({\n onDone,\n force = false,\n clean = false,\n dryRun = false,\n}) => {\n const [status, setStatus] = useState<'syncing' | 'done' | 'error'>('syncing')\n const [progress, setProgress] = useState(t('commands.plugin.syncStarting'))\n const [result, setResult] = useState<SyncResult | null>(null)\n const [error, setError] = useState<string | null>(null)\n const theme = getTheme()\n\n useEffect(() => {\n const doSync = async () => {\n if (!hasClaudeCodeInstallation()) {\n setError(t('commands.plugin.syncNotFound'))\n setStatus('error')\n onDone()\n return\n }\n\n try {\n const syncResult = await syncFromClaudeCode({\n force,\n clean,\n dryRun,\n onProgress: msg => setProgress(msg),\n })\n setResult(syncResult)\n setStatus('done')\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err))\n setStatus('error')\n } finally {\n onDone()\n }\n }\n\n doSync()\n }, [force, clean, dryRun, onDone])\n\n if (status === 'error') {\n return <Text color={theme.error}>{error}</Text>\n }\n\n if (status === 'syncing') {\n return (\n <Box>\n <SimpleSpinner />\n <Text color={theme.primary}> {progress}</Text>\n </Box>\n )\n }\n\n if (!result) return null\n\n const hasChanges =\n result.installed.length > 0 ||\n result.updated.length > 0 ||\n result.cleaned.length > 0 ||\n result.marketplaces.registered.length > 0\n\n if (!hasChanges && result.failed.length === 0) {\n return (\n <Text color={theme.success}>{t('commands.plugin.syncNoChanges')}</Text>\n )\n }\n\n return (\n <Box flexDirection=\"column\">\n {dryRun && (\n <Text color={theme.warning} bold>\n {t('commands.plugin.syncDryRun')}\n </Text>\n )}\n\n {result.installed.length > 0 && (\n <Box flexDirection=\"column\">\n <Text color={theme.success}>\n Installed ({result.installed.length}):\n </Text>\n {result.installed.map(name => (\n <Box key={name}>\n <Text color={SEMANTIC_COLORS.dim}> + {name}</Text>\n </Box>\n ))}\n </Box>\n )}\n\n {result.updated.length > 0 && (\n <Box flexDirection=\"column\">\n <Text color={theme.primary}>Updated ({result.updated.length}):</Text>\n {result.updated.map(name => (\n <Box key={name}>\n <Text color={SEMANTIC_COLORS.dim}> ~ {name}</Text>\n </Box>\n ))}\n </Box>\n )}\n\n {result.cleaned.length > 0 && (\n <Text color={SEMANTIC_COLORS.dim}>\n {t('commands.plugin.syncCleaned').replace(\n '${count}',\n String(result.cleaned.length),\n )}\n </Text>\n )}\n\n {result.marketplaces.registered.length > 0 && (\n <Box flexDirection=\"column\">\n <Text color={theme.success}>\n {t('commands.plugin.syncMarketplacesRegistered').replace(\n '${count}',\n String(result.marketplaces.registered.length),\n )}\n </Text>\n {result.marketplaces.registered.map(name => (\n <Box key={name}>\n <Text color={SEMANTIC_COLORS.dim}> + {name}</Text>\n </Box>\n ))}\n </Box>\n )}\n\n {result.marketplaces.failed.length > 0 && (\n <Box flexDirection=\"column\">\n <Text color={theme.error}>\n {t('commands.plugin.syncMarketplacesFailed').replace(\n '${count}',\n String(result.marketplaces.failed.length),\n )}\n </Text>\n {result.marketplaces.failed.map(f => (\n <Box key={f.name}>\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n ! {f.name}: {f.error}\n </Text>\n </Box>\n ))}\n </Box>\n )}\n\n {result.failed.length > 0 && (\n <Box flexDirection=\"column\">\n <Text color={theme.error}>\n {t('commands.plugin.syncFailed').replace(\n '${count}',\n String(result.failed.length),\n )}\n </Text>\n {result.failed.map(f => (\n <Box key={f.name}>\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n ! {f.name}: {f.error}\n </Text>\n </Box>\n ))}\n </Box>\n )}\n\n <Text color={theme.success}>\n {t('commands.plugin.syncComplete')\n .replace('${installed}', String(result.installed.length))\n .replace('${updated}', String(result.updated.length))\n .replace('${skipped}', String(result.skipped.length))}\n </Text>\n </Box>\n )\n}\n\n// ============================================================================\n// Component: Marketplace List View\n// ============================================================================\n\ninterface MarketplaceListProps {\n onDone: () => void\n}\n\nconst MarketplaceListView: React.FC<MarketplaceListProps> = ({ onDone }) => {\n const [marketplaces, setMarketplaces] = useState<RegisteredMarketplace[]>([])\n const [loading, setLoading] = useState(true)\n const theme = getTheme()\n\n useEffect(() => {\n try {\n const registered = listMarketplaces()\n setMarketplaces(registered)\n } finally {\n setLoading(false)\n onDone()\n }\n }, [onDone])\n\n if (loading) {\n return <Text color={theme.primary}>Loading marketplaces...</Text>\n }\n\n if (marketplaces.length === 0) {\n return (\n <Box flexDirection=\"column\">\n <Text color={theme.warning}>No marketplaces registered.</Text>\n <Text color={SEMANTIC_COLORS.dim}>\n Register a marketplace with: /plugin marketplace add <source>\n </Text>\n </Box>\n )\n }\n\n return (\n <Box flexDirection=\"column\">\n <Text bold underline color={theme.success}>\n Registered Marketplaces ({marketplaces.length})\n </Text>\n <Text>{''}</Text>\n {marketplaces.map(marketplace => (\n <Box key={marketplace.name} flexDirection=\"column\" marginBottom={1}>\n <Box>\n <Text color={theme.primary} bold>\n {marketplace.name}\n </Text>\n {!marketplace.enabled && (\n <Text color={theme.warning}> (disabled)</Text>\n )}\n </Box>\n {marketplace.manifest.metadata?.description && (\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n {marketplace.manifest.metadata.description}\n </Text>\n )}\n <Text color={SEMANTIC_COLORS.dim}>\n {` Plugins: ${marketplace.manifest.plugins.length}`}\n {` | Owner: ${marketplace.manifest.owner.name}`}\n </Text>\n <Text color={SEMANTIC_COLORS.dim}>\n {` Source: ${marketplace.source.type}`}\n {marketplace.source.type === 'github' &&\n ` (${marketplace.source.repo})`}\n {marketplace.source.type === 'url' &&\n ` (${marketplace.source.url})`}\n {marketplace.source.type === 'local' &&\n ` (${marketplace.source.path})`}\n </Text>\n <Text color={SEMANTIC_COLORS.dim}>\n {` Last updated: ${new Date(marketplace.lastUpdated).toLocaleString()}`}\n </Text>\n </Box>\n ))}\n </Box>\n )\n}\n\n// ============================================================================\n// Component: Marketplace Add View\n// ============================================================================\n\ninterface MarketplaceAddProps {\n source: string\n onDone: () => void\n}\n\nconst MarketplaceAdd: React.FC<MarketplaceAddProps> = ({ source, onDone }) => {\n const [status, setStatus] = useState<'adding' | 'success' | 'error'>('adding')\n const [message, setMessage] = useState('')\n const [marketplace, setMarketplace] = useState<RegisteredMarketplace | null>(\n null,\n )\n const theme = getTheme()\n\n useEffect(() => {\n const addMarketplaceAsync = async () => {\n try {\n setMessage(`Registering marketplace from \"${source}\"...`)\n const registered = await addMarketplace(source)\n setMarketplace(registered)\n setMessage(`Successfully registered marketplace \"${registered.name}\"`)\n setStatus('success')\n } catch (err) {\n if (err instanceof MarketplaceError) {\n setMessage(`Registration failed: ${err.message}`)\n } else {\n setMessage(\n `Registration failed: ${err instanceof Error ? err.message : String(err)}`,\n )\n }\n setStatus('error')\n } finally {\n onDone()\n }\n }\n\n addMarketplaceAsync()\n }, [source, onDone])\n\n const color =\n status === 'success'\n ? theme.success\n : status === 'error'\n ? theme.error\n : theme.primary\n\n return (\n <Box flexDirection=\"column\">\n <Text color={color}>{message}</Text>\n {status === 'success' && marketplace && (\n <>\n <Text>{''}</Text>\n <Text color={SEMANTIC_COLORS.dim}>\n Marketplace contains {marketplace.manifest.plugins.length} plugin(s)\n </Text>\n <Text color={SEMANTIC_COLORS.dim}>\n Use /plugin marketplace list to see all marketplaces\n </Text>\n </>\n )}\n </Box>\n )\n}\n\n// ============================================================================\n// Component: Marketplace Update View\n// ============================================================================\n\ninterface MarketplaceUpdateProps {\n name: string\n onDone: () => void\n}\n\nconst MarketplaceUpdate: React.FC<MarketplaceUpdateProps> = ({\n name,\n onDone,\n}) => {\n const [status, setStatus] = useState<'updating' | 'success' | 'error'>(\n 'updating',\n )\n const [message, setMessage] = useState('')\n const theme = getTheme()\n\n useEffect(() => {\n const updateMarketplaceAsync = async () => {\n try {\n setMessage(`Updating marketplace \"${name}\"...`)\n await updateMarketplace(name)\n setMessage(`Successfully updated marketplace \"${name}\"`)\n setStatus('success')\n } catch (err) {\n if (err instanceof MarketplaceError) {\n setMessage(`Update failed: ${err.message}`)\n } else {\n setMessage(\n `Update failed: ${err instanceof Error ? err.message : String(err)}`,\n )\n }\n setStatus('error')\n } finally {\n onDone()\n }\n }\n\n updateMarketplaceAsync()\n }, [name, onDone])\n\n const color =\n status === 'success'\n ? theme.success\n : status === 'error'\n ? theme.error\n : theme.primary\n\n return <Text color={color}>{message}</Text>\n}\n\n// ============================================================================\n// Component: Marketplace Remove View\n// ============================================================================\n\ninterface MarketplaceRemoveProps {\n name: string\n onDone: () => void\n}\n\nconst MarketplaceRemove: React.FC<MarketplaceRemoveProps> = ({\n name,\n onDone,\n}) => {\n const [status, setStatus] = useState<'removing' | 'success' | 'error'>(\n 'removing',\n )\n const [message, setMessage] = useState('')\n const theme = getTheme()\n\n useEffect(() => {\n const removeMarketplaceSync = () => {\n try {\n setMessage(`Removing marketplace \"${name}\"...`)\n removeMarketplace(name)\n setMessage(`Successfully removed marketplace \"${name}\"`)\n setStatus('success')\n } catch (err) {\n if (err instanceof MarketplaceError) {\n setMessage(`Removal failed: ${err.message}`)\n } else {\n setMessage(\n `Removal failed: ${err instanceof Error ? err.message : String(err)}`,\n )\n }\n setStatus('error')\n } finally {\n onDone()\n }\n }\n\n removeMarketplaceSync()\n }, [name, onDone])\n\n const color =\n status === 'success'\n ? theme.success\n : status === 'error'\n ? theme.error\n : theme.primary\n\n return <Text color={color}>{message}</Text>\n}\n\n// ============================================================================\n// Error Message Component\n// ============================================================================\n\nconst ErrorMessage: React.FC<{ message: string; onDone: () => void }> = ({\n message,\n onDone,\n}) => {\n const theme = getTheme()\n\n React.useEffect(() => {\n onDone()\n }, [onDone])\n\n return <Text color={theme.error}>Error: {message}</Text>\n}\n\n// ============================================================================\n// Interactive Plugin Command (TabbedListView-based)\n// ============================================================================\n\ntype PluginPhase =\n | { type: 'main' }\n | {\n type: 'plugin-actions'\n plugin: string\n marketplace?: string\n from: 'browse' | 'installed'\n }\n | { type: 'marketplace-actions'; marketplace: string }\n | { type: 'add-marketplace' }\n | {\n type: 'batch-action-picker'\n selectedItems: ListItem[]\n from: 'browse' | 'installed'\n }\n | {\n type: 'batch-progress'\n action: 'install' | 'update' | 'uninstall'\n plugins: Array<{ name: string; marketplace?: string }>\n }\n\n/**\n * Compare installed plugin version against marketplace version.\n * Returns version info if an update is available, null otherwise.\n */\nfunction compareVersions(\n installedVersion: string | undefined,\n marketplaceVersion: string | undefined,\n): { hasUpdate: boolean; installed: string; available: string } | null {\n if (!installedVersion || !marketplaceVersion) return null\n if (!semverValid(installedVersion) || !semverValid(marketplaceVersion))\n return null\n try {\n return {\n hasUpdate: semverGt(marketplaceVersion, installedVersion),\n installed: installedVersion,\n available: marketplaceVersion,\n }\n } catch {\n return null\n }\n}\n\n/**\n * Interactive Plugin Command\n *\n * Uses a single TabbedListView instance driven by a phase state machine.\n * All navigation is achieved by swapping props \u2014 zero residual rendering artifacts.\n */\nconst InteractivePluginCommand: React.FC<{ onDone: () => void }> = ({\n onDone,\n}) => {\n const [phase, setPhase] = useState<PluginPhase>({ type: 'main' })\n const [activeTab, setActiveTab] = useState('browse')\n const [searchQuery, setSearchQuery] = useState('')\n const [statusOverlay, setStatusOverlay] = useState<StatusOverlay | null>(null)\n const [marketplaces, setMarketplaces] = useState<RegisteredMarketplace[]>([])\n const [installedPlugins, setInstalledPlugins] = useState<LoadedPlugin[]>([])\n const [selectedIds, setSelectedIds] = useState<Set<string>>(new Set())\n\n // Reload data when returning to main phase\n const reload = useCallback(() => {\n try {\n setMarketplaces(listMarketplaces())\n } catch {\n setMarketplaces([])\n }\n try {\n setInstalledPlugins(loadAllPlugins())\n } catch {\n setInstalledPlugins([])\n }\n }, [])\n\n useEffect(() => {\n if (phase.type === 'main') {\n reload()\n setSearchQuery('')\n setSelectedIds(new Set())\n }\n }, [phase, reload])\n\n // Build installed plugin name set for quick lookup\n const installedNames = useMemo(\n () => new Set(installedPlugins.map(p => p.name)),\n [installedPlugins],\n )\n\n // Find which marketplace a plugin belongs to\n const findPluginMarketplace = useCallback(\n (pluginName: string): string | undefined => {\n for (const m of marketplaces) {\n if (m.manifest.plugins.some(p => p.name === pluginName)) {\n return m.name\n }\n }\n return undefined\n },\n [marketplaces],\n )\n\n // Compute multi-select action label based on tab and selection count\n const multiSelectActionLabel = useMemo(() => {\n if (phase.type !== 'main' || selectedIds.size === 0) return undefined\n if (activeTab === 'browse' || activeTab === 'installed') {\n return `${t('commands.plugin.batchAction')} (${selectedIds.size})`\n }\n return undefined\n }, [phase, activeTab, selectedIds.size])\n\n // Whether multi-select is enabled for current view\n const multiSelectEnabled =\n phase.type === 'main' &&\n (activeTab === 'browse' || activeTab === 'installed')\n\n // Determine tabs, items, title based on current phase\n const { tabs, items, title, footerHint, searchEnabled, searchPlaceholder } =\n useMemo(() => {\n switch (phase.type) {\n case 'main': {\n const mainTabs: TabDefinition[] = [\n { id: 'browse', label: t('commands.plugin.tabBrowse') },\n { id: 'installed', label: t('commands.plugin.tabInstalled') },\n { id: 'marketplaces', label: t('commands.plugin.tabMarketplaces') },\n ]\n\n let mainItems: ListItem[] = []\n\n if (activeTab === 'browse') {\n for (const m of marketplaces) {\n for (const p of m.manifest.plugins) {\n const installed = installedPlugins.find(\n ip => ip.name === p.name,\n )\n let metadata: string | undefined\n if (installed) {\n const versionInfo = compareVersions(\n installed.manifest.version,\n p.version,\n )\n if (versionInfo?.hasUpdate) {\n metadata = t('commands.plugin.updateAvailable')\n .replace('{installed}', versionInfo.installed)\n .replace('{available}', versionInfo.available)\n } else {\n metadata = 'installed'\n }\n }\n mainItems.push({\n id: `${m.name}:${p.name}`,\n label: p.name,\n description: p.description || '',\n category: m.name,\n status: installedNames.has(p.name) ? 'enabled' : undefined,\n metadata,\n data: { pluginName: p.name, marketplaceName: m.name },\n })\n }\n }\n } else if (activeTab === 'installed') {\n for (const p of installedPlugins) {\n const mName =\n p.source.type === 'claude-code'\n ? p.source.marketplace\n : p.source.type === 'marketplace'\n ? p.source.marketplace\n : findPluginMarketplace(p.name)\n const sourceTag = p.source.type === 'claude-code' ? ' [CC]' : ''\n mainItems.push({\n id: p.name,\n label: `${p.manifest.displayName || p.name}${sourceTag}`,\n description: p.manifest.description || '',\n status: p.enabled ? 'enabled' : 'disabled',\n category: mName || t('commands.plugin.local'),\n data: { pluginName: p.name, source: p.source },\n })\n }\n } else if (activeTab === 'marketplaces') {\n for (const m of marketplaces) {\n mainItems.push({\n id: m.name,\n label: m.name,\n description: `${m.manifest.plugins.length} plugins \u00B7 ${formatMarketplacePath(m.source)} \u00B7 ${formatTimeAgo(m.lastUpdated)}`,\n status: m.enabled ? 'enabled' : 'disabled',\n data: { marketplaceName: m.name },\n })\n }\n mainItems.push({\n id: 'add-new',\n label: `+ ${t('commands.plugin.addMarketplace')}`,\n description: 'Register a new plugin marketplace',\n })\n }\n\n const isMultiSelectTab =\n activeTab === 'browse' || activeTab === 'installed'\n return {\n tabs: mainTabs,\n items: mainItems,\n title: 'Plugins',\n footerHint: isMultiSelectTab\n ? t('commands.plugin.footerHintMultiSelect')\n : t('commands.plugin.footerHint'),\n searchEnabled: true,\n searchPlaceholder: undefined,\n }\n }\n\n case 'plugin-actions': {\n const actionItems: ListItem[] = []\n\n if (phase.from === 'browse') {\n actionItems.push({\n id: 'install',\n label: t('commands.plugin.install'),\n description: `Install from ${phase.marketplace || 'marketplace'}`,\n })\n } else {\n // installed\n const plugin = installedPlugins.find(p => p.name === phase.plugin)\n const isEnabled = plugin?.enabled ?? true\n\n actionItems.push({\n id: 'toggle',\n label: isEnabled\n ? t('commands.plugin.disable')\n : t('commands.plugin.enable'),\n description: isEnabled\n ? 'Disable this plugin'\n : 'Enable this plugin',\n })\n if (phase.marketplace) {\n actionItems.push({\n id: 'update',\n label: t('commands.plugin.update'),\n description: 'Re-install from marketplace source',\n })\n }\n actionItems.push({\n id: 'uninstall',\n label: t('commands.plugin.uninstall'),\n description: 'Remove this plugin',\n })\n }\n\n actionItems.push({\n id: 'back',\n label: t('commands.plugin.back'),\n })\n\n return {\n tabs: [\n { id: 'actions', label: t('commands.plugin.actions') },\n ] as TabDefinition[],\n items: actionItems,\n title: phase.plugin,\n footerHint: '\u2191\u2193 Navigate \u00B7 Enter Select \u00B7 Esc Back',\n searchEnabled: false,\n searchPlaceholder: undefined,\n }\n }\n\n case 'marketplace-actions': {\n const mActionItems: ListItem[] = [\n {\n id: 'update',\n label: t('commands.plugin.marketplaceUpdate'),\n description: 'Re-fetch marketplace manifest',\n },\n {\n id: 'browse',\n label: t('commands.plugin.browsePlugins'),\n description: 'View plugins from this marketplace',\n },\n {\n id: 'remove',\n label: t('commands.plugin.marketplaceRemove'),\n description: 'Unregister this marketplace',\n },\n {\n id: 'back',\n label: t('commands.plugin.back'),\n },\n ]\n\n return {\n tabs: [\n { id: 'actions', label: t('commands.plugin.actions') },\n ] as TabDefinition[],\n items: mActionItems,\n title: phase.marketplace,\n footerHint: '\u2191\u2193 Navigate \u00B7 Enter Select \u00B7 Esc Back',\n searchEnabled: false,\n searchPlaceholder: undefined,\n }\n }\n\n case 'batch-action-picker': {\n const pickerItems: ListItem[] = []\n const sel = phase.selectedItems\n\n if (phase.from === 'installed') {\n // Count plugins with marketplace source (updatable)\n const updatableCount = sel.filter(item => {\n const pluginName = (item.data as any)?.pluginName as string\n return findPluginMarketplace(pluginName) !== undefined\n }).length\n if (updatableCount > 0) {\n pickerItems.push({\n id: 'batch-update',\n label: t('commands.plugin.batchUpdateAction').replace(\n '{count}',\n String(updatableCount),\n ),\n })\n }\n pickerItems.push({\n id: 'batch-uninstall',\n label: t('commands.plugin.batchDeleteAction').replace(\n '{count}',\n String(sel.length),\n ),\n })\n // Count disabled plugins (can be enabled)\n const disabledCount = sel.filter(item => {\n const plugin = installedPlugins.find(\n p => p.name === (item.data as any)?.pluginName,\n )\n return plugin && !plugin.enabled\n }).length\n if (disabledCount > 0) {\n pickerItems.push({\n id: 'batch-enable',\n label: t('commands.plugin.batchEnableAction').replace(\n '{count}',\n String(disabledCount),\n ),\n })\n }\n // Count enabled plugins (can be disabled)\n const enabledCount = sel.filter(item => {\n const plugin = installedPlugins.find(\n p => p.name === (item.data as any)?.pluginName,\n )\n return plugin && plugin.enabled\n }).length\n if (enabledCount > 0) {\n pickerItems.push({\n id: 'batch-disable',\n label: t('commands.plugin.batchDisableAction').replace(\n '{count}',\n String(enabledCount),\n ),\n })\n }\n } else {\n // from === 'browse'\n const notInstalledCount = sel.filter(\n item => !installedNames.has((item.data as any)?.pluginName),\n ).length\n if (notInstalledCount > 0) {\n pickerItems.push({\n id: 'batch-install',\n label: t('commands.plugin.batchInstallAction').replace(\n '{count}',\n String(notInstalledCount),\n ),\n })\n }\n const alreadyInstalledCount = sel.filter(item =>\n installedNames.has((item.data as any)?.pluginName),\n ).length\n if (alreadyInstalledCount > 0) {\n pickerItems.push({\n id: 'batch-update',\n label: t('commands.plugin.batchUpdateAction').replace(\n '{count}',\n String(alreadyInstalledCount),\n ),\n })\n }\n }\n\n pickerItems.push({\n id: 'back',\n label: t('commands.plugin.back'),\n })\n\n return {\n tabs: [\n {\n id: 'actions',\n label: t('commands.plugin.batchActionPickerTitle'),\n },\n ] as TabDefinition[],\n items: pickerItems,\n title: t('commands.plugin.batchActionPickerTitle'),\n footerHint: '\u2191\u2193 Navigate \u00B7 Enter Select \u00B7 Esc Back',\n searchEnabled: false,\n searchPlaceholder: undefined,\n }\n }\n\n case 'batch-progress': {\n // batch-progress is driven by the effect + statusOverlay;\n // return empty shell so TabbedListView has valid props\n return {\n tabs: [\n { id: 'progress', label: t('common.loading') },\n ] as TabDefinition[],\n items: [] as ListItem[],\n title: 'Plugins',\n footerHint: '',\n searchEnabled: false,\n searchPlaceholder: undefined,\n }\n }\n\n case 'add-marketplace': {\n const helpItems: ListItem[] = [\n {\n id: 'example-github',\n label: 'owner/repo',\n description: 'GitHub shorthand',\n },\n {\n id: 'example-https',\n label: 'https://github.com/owner/repo.git',\n description: 'HTTPS URL',\n },\n {\n id: 'example-local',\n label: './path/to/local',\n description: 'Local path',\n },\n ]\n\n return {\n tabs: [\n {\n id: 'add',\n label: t('commands.plugin.marketplaceAdd'),\n },\n ] as TabDefinition[],\n items: helpItems,\n title: t('commands.plugin.addMarketplace'),\n footerHint: t('commands.plugin.addFooterHint'),\n searchEnabled: true,\n searchPlaceholder: t('commands.plugin.addMarketplacePlaceholder'),\n }\n }\n default:\n return {\n tabs: [],\n items: [],\n title: '',\n footerHint: '',\n searchEnabled: false,\n searchPlaceholder: undefined,\n }\n }\n }, [\n phase,\n activeTab,\n marketplaces,\n installedPlugins,\n installedNames,\n findPluginMarketplace,\n ])\n\n // Handle tab change \u2014 also reset search and selections\n const handleTabChange = useCallback((tabId: string) => {\n setActiveTab(tabId)\n setSearchQuery('')\n setSelectedIds(new Set())\n }, [])\n\n // Handle selection toggle for multi-select\n const handleSelectionChange = useCallback(\n (itemId: string, selected: boolean) => {\n setSelectedIds(prev => {\n const next = new Set(prev)\n if (selected) {\n next.add(itemId)\n } else {\n next.delete(itemId)\n }\n return next\n })\n },\n [],\n )\n\n // Handle multi-select \u2192 route to batch action picker\n const handleMultiSelect = useCallback(\n (selectedItems: ListItem[]) => {\n if (activeTab === 'browse' || activeTab === 'installed') {\n setPhase({\n type: 'batch-action-picker',\n selectedItems,\n from: activeTab as 'browse' | 'installed',\n })\n }\n },\n [activeTab],\n )\n\n // Batch execution effect\n useEffect(() => {\n if (phase.type !== 'batch-progress') return undefined\n\n let cancelled = false\n const { action, plugins } = phase\n\n const executeBatch = async () => {\n let successCount = 0\n let failCount = 0\n const errors: string[] = []\n\n for (let i = 0; i < plugins.length; i++) {\n if (cancelled) return\n\n const plugin = plugins[i]\n const progressKey =\n action === 'install'\n ? 'commands.plugin.batchInstalling'\n : action === 'update'\n ? 'commands.plugin.batchUpdating'\n : 'commands.plugin.batchUninstalling'\n\n setStatusOverlay({\n type: 'loading',\n message: t(progressKey)\n .replace('{current}', String(i + 1))\n .replace('{total}', String(plugins.length))\n .replace('{name}', plugin.name),\n })\n\n try {\n if (action === 'uninstall') {\n await uninstallPlugin(plugin.name)\n } else {\n await installPluginFromMarketplace(plugin.name, plugin.marketplace)\n }\n successCount++\n } catch (err) {\n failCount++\n const msg = err instanceof Error ? err.message : String(err)\n if (errors.length < 3) {\n errors.push(`${plugin.name}: ${msg}`)\n }\n }\n }\n\n if (cancelled) return\n\n // Build summary message\n const parts: string[] = []\n if (successCount > 0) {\n const countKey =\n action === 'install'\n ? 'commands.plugin.batchInstalledCount'\n : action === 'update'\n ? 'commands.plugin.batchUpdatedCount'\n : 'commands.plugin.batchUninstalledCount'\n parts.push(t(countKey).replace('{count}', String(successCount)))\n }\n if (failCount > 0) {\n parts.push(\n t('commands.plugin.batchFailedCount').replace(\n '{count}',\n String(failCount),\n ),\n )\n if (errors.length > 0) {\n parts.push(errors.join('\\n'))\n }\n }\n\n setStatusOverlay({\n type: failCount === 0 ? 'success' : 'error',\n message: parts.join('\\n'),\n })\n setSelectedIds(new Set())\n }\n\n executeBatch()\n\n return () => {\n cancelled = true\n }\n }, [phase])\n\n // Handle status overlay dismiss \u2192 return to main\n const handleStatusDismiss = useCallback(() => {\n setStatusOverlay(null)\n setPhase({ type: 'main' })\n }, [])\n\n // Handle ESC / back navigation\n const handleBack = useCallback(() => {\n if (statusOverlay && statusOverlay.type !== 'loading') {\n handleStatusDismiss()\n return\n }\n if (phase.type === 'main') {\n onDone()\n } else {\n setPhase({ type: 'main' })\n setSearchQuery('')\n }\n }, [phase, statusOverlay, onDone, handleStatusDismiss])\n\n // Handle close (also ESC at top level)\n const handleClose = useCallback(() => {\n if (statusOverlay && statusOverlay.type !== 'loading') {\n handleStatusDismiss()\n return\n }\n if (phase.type === 'main') {\n onDone()\n } else {\n setPhase({ type: 'main' })\n setSearchQuery('')\n }\n }, [phase, statusOverlay, onDone, handleStatusDismiss])\n\n // Handle search submit (for add-marketplace)\n const handleSearchSubmit = useCallback(\n async (query: string) => {\n if (phase.type !== 'add-marketplace' || !query.trim()) return\n\n setStatusOverlay({\n type: 'loading',\n message: t('commands.plugin.marketplaceAdding'),\n })\n\n try {\n await addMarketplace(query.trim())\n setStatusOverlay({\n type: 'success',\n message: t('commands.plugin.marketplaceAddSuccess'),\n })\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err)\n setStatusOverlay({\n type: 'error',\n message: `${t('commands.plugin.marketplaceAddFailed')}: ${msg}`,\n })\n }\n },\n [phase],\n )\n\n // Handle item selection\n const handleSelect = useCallback(\n async (item: ListItem) => {\n switch (phase.type) {\n case 'main': {\n if (activeTab === 'browse') {\n const data = item.data as {\n pluginName: string\n marketplaceName: string\n }\n setPhase({\n type: 'plugin-actions',\n plugin: data.pluginName,\n marketplace: data.marketplaceName,\n from: 'browse',\n })\n } else if (activeTab === 'installed') {\n const data = item.data as { pluginName: string }\n const mName = findPluginMarketplace(data.pluginName)\n setPhase({\n type: 'plugin-actions',\n plugin: data.pluginName,\n marketplace: mName,\n from: 'installed',\n })\n } else if (activeTab === 'marketplaces') {\n if (item.id === 'add-new') {\n setPhase({ type: 'add-marketplace' })\n setSearchQuery('')\n } else {\n const data = item.data as { marketplaceName: string }\n setPhase({\n type: 'marketplace-actions',\n marketplace: data.marketplaceName,\n })\n }\n }\n break\n }\n\n case 'plugin-actions': {\n if (item.id === 'back') {\n setPhase({ type: 'main' })\n return\n }\n\n if (item.id === 'install') {\n setStatusOverlay({\n type: 'loading',\n message: t('commands.plugin.installing'),\n })\n try {\n await installPluginFromMarketplace(\n phase.plugin,\n phase.marketplace,\n )\n setStatusOverlay({\n type: 'success',\n message: t('commands.plugin.installSuccess'),\n })\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err)\n setStatusOverlay({\n type: 'error',\n message: `${t('commands.plugin.installFailed')}: ${msg}`,\n })\n }\n } else if (item.id === 'toggle') {\n try {\n togglePluginEnabled(phase.plugin)\n setStatusOverlay({\n type: 'success',\n message: t('commands.plugin.toggleSuccess'),\n })\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err)\n setStatusOverlay({ type: 'error', message: msg })\n }\n } else if (item.id === 'update') {\n setStatusOverlay({\n type: 'loading',\n message: t('commands.plugin.updating'),\n })\n try {\n await installPluginFromMarketplace(\n phase.plugin,\n phase.marketplace,\n )\n setStatusOverlay({\n type: 'success',\n message: t('commands.plugin.updateSuccess'),\n })\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err)\n setStatusOverlay({\n type: 'error',\n message: `${t('commands.plugin.updateFailed')}: ${msg}`,\n })\n }\n } else if (item.id === 'uninstall') {\n setStatusOverlay({\n type: 'loading',\n message: t('commands.plugin.uninstalling'),\n })\n try {\n await uninstallPlugin(phase.plugin)\n setStatusOverlay({\n type: 'success',\n message: t('commands.plugin.uninstallSuccess'),\n })\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err)\n setStatusOverlay({\n type: 'error',\n message: `${t('commands.plugin.uninstallFailed')}: ${msg}`,\n })\n }\n }\n break\n }\n\n case 'marketplace-actions': {\n if (item.id === 'back') {\n setPhase({ type: 'main' })\n return\n }\n\n if (item.id === 'update') {\n setStatusOverlay({\n type: 'loading',\n message: t('commands.plugin.marketplaceUpdating'),\n })\n try {\n await updateMarketplace(phase.marketplace)\n setStatusOverlay({\n type: 'success',\n message: t('commands.plugin.marketplaceUpdateSuccess'),\n })\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err)\n setStatusOverlay({\n type: 'error',\n message: `${t('commands.plugin.marketplaceUpdateFailed')}: ${msg}`,\n })\n }\n } else if (item.id === 'browse') {\n setPhase({ type: 'main' })\n setActiveTab('browse')\n setSearchQuery(phase.marketplace)\n } else if (item.id === 'remove') {\n setStatusOverlay({\n type: 'loading',\n message: t('commands.plugin.marketplaceRemoving'),\n })\n try {\n removeMarketplace(phase.marketplace)\n setStatusOverlay({\n type: 'success',\n message: t('commands.plugin.marketplaceRemoveSuccess'),\n })\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err)\n setStatusOverlay({ type: 'error', message: msg })\n }\n }\n break\n }\n\n case 'batch-action-picker': {\n if (item.id === 'back') {\n setPhase({ type: 'main' })\n return\n }\n\n const sel = phase.selectedItems\n\n if (item.id === 'batch-install') {\n const toInstall = sel\n .filter(si => !installedNames.has((si.data as any)?.pluginName))\n .map(si => ({\n name: (si.data as any).pluginName as string,\n marketplace: (si.data as any).marketplaceName as\n | string\n | undefined,\n }))\n if (toInstall.length === 0) {\n setStatusOverlay({\n type: 'error',\n message: t('commands.plugin.batchAllAlreadyInstalled'),\n })\n return\n }\n setPhase({\n type: 'batch-progress',\n action: 'install',\n plugins: toInstall,\n })\n } else if (item.id === 'batch-update') {\n const toUpdate = sel\n .filter(si => {\n const pluginName = (si.data as any)?.pluginName as string\n return findPluginMarketplace(pluginName) !== undefined\n })\n .map(si => {\n const pluginName = (si.data as any).pluginName as string\n return {\n name: pluginName,\n marketplace: findPluginMarketplace(pluginName),\n }\n })\n if (toUpdate.length === 0) {\n setStatusOverlay({\n type: 'error',\n message: t('commands.plugin.batchNoUpdatable'),\n })\n return\n }\n setPhase({\n type: 'batch-progress',\n action: 'update',\n plugins: toUpdate,\n })\n } else if (item.id === 'batch-uninstall') {\n const toUninstall = sel.map(si => ({\n name: (si.data as any).pluginName as string,\n }))\n setPhase({\n type: 'batch-progress',\n action: 'uninstall',\n plugins: toUninstall,\n })\n } else if (item.id === 'batch-enable') {\n // Synchronous operation\n let count = 0\n for (const si of sel) {\n const pluginName = (si.data as any)?.pluginName as string\n const plugin = installedPlugins.find(p => p.name === pluginName)\n if (plugin && !plugin.enabled) {\n try {\n enablePlugin(pluginName)\n count++\n } catch {\n // skip failures silently\n }\n }\n }\n setStatusOverlay({\n type: 'success',\n message: t('commands.plugin.batchEnabledCount').replace(\n '{count}',\n String(count),\n ),\n })\n setSelectedIds(new Set())\n } else if (item.id === 'batch-disable') {\n // Synchronous operation\n let count = 0\n for (const si of sel) {\n const pluginName = (si.data as any)?.pluginName as string\n const plugin = installedPlugins.find(p => p.name === pluginName)\n if (plugin && plugin.enabled) {\n try {\n disablePlugin(pluginName)\n count++\n } catch {\n // skip failures silently\n }\n }\n }\n setStatusOverlay({\n type: 'success',\n message: t('commands.plugin.batchDisabledCount').replace(\n '{count}',\n String(count),\n ),\n })\n setSelectedIds(new Set())\n }\n break\n }\n\n case 'add-marketplace': {\n // Clicking an example copies label to search\n setSearchQuery(item.label)\n break\n }\n }\n },\n [phase, activeTab, findPluginMarketplace, installedPlugins, installedNames],\n )\n\n // Determine current tab for rendering\n const currentTab =\n phase.type === 'main'\n ? activeTab\n : phase.type === 'plugin-actions' ||\n phase.type === 'marketplace-actions' ||\n phase.type === 'batch-action-picker'\n ? 'actions'\n : phase.type === 'batch-progress'\n ? 'progress'\n : 'add'\n\n return (\n <TabbedListView\n title={title}\n tabs={tabs}\n activeTab={currentTab}\n onTabChange={handleTabChange}\n items={items}\n searchEnabled={searchEnabled}\n searchPlaceholder={searchPlaceholder}\n searchQuery={searchQuery}\n onSearchChange={setSearchQuery}\n onSearchSubmit={\n phase.type === 'add-marketplace' ? handleSearchSubmit : undefined\n }\n onSelect={handleSelect}\n onClose={handleClose}\n onBack={handleBack}\n statusOverlay={statusOverlay}\n footerHint={footerHint}\n groupByCategory={activeTab === 'browse' || activeTab === 'installed'}\n statusDismissHint=\"Enter Continue \u00B7 Esc Back\"\n multiSelect={multiSelectEnabled}\n selectedIds={selectedIds}\n onSelectionChange={handleSelectionChange}\n onMultiSelect={handleMultiSelect}\n multiSelectActionLabel={multiSelectActionLabel}\n />\n )\n}\n\n// ============================================================================\n// Legacy Plugin Command Router (CLI arguments)\n// ============================================================================\n\nconst LegacyPluginCommand: React.FC<{ args: string; onDone: () => void }> = ({\n args,\n onDone,\n}) => {\n const theme = getTheme()\n const parts = args.trim().split(/\\s+/).filter(Boolean)\n const subcommand = parts[0]\n const subArgs = parts.slice(1)\n\n // Use effect to call onDone after render for help/error cases\n React.useEffect(() => {\n // Only call onDone if we're showing static content (help or errors)\n if (!subcommand || subcommand === 'help' || subcommand === '--help') {\n onDone()\n }\n }, [subcommand, onDone])\n\n // Help text\n if (!subcommand || subcommand === 'help' || subcommand === '--help') {\n return (\n <Box flexDirection=\"column\">\n <Text bold underline color={theme.primary}>\n Plugin Management Commands\n </Text>\n <Text>{''}</Text>\n <Text>\n <Text color={theme.success}>/plugin list</Text> - List all installed\n plugins\n </Text>\n <Text>\n <Text color={theme.success}>/plugin info <name></Text> - Show\n detailed plugin information\n </Text>\n <Text>\n <Text color={theme.success}>\n /plugin install <name>[@marketplace]\n </Text>{' '}\n - Install plugin from marketplace\n </Text>\n <Text>\n <Text color={theme.success}>/plugin uninstall <name></Text> -\n Remove installed plugin\n </Text>\n <Text>\n <Text color={theme.success}>/plugin validate [name]</Text> - Validate\n plugin manifest and components\n </Text>\n <Text>\n <Text color={theme.success}>\n /plugin sync [--force] [--clean] [--dry-run]\n </Text>{' '}\n - {t('commands.plugin.syncDesc')}\n </Text>\n <Text>{''}</Text>\n <Text bold color={theme.primary}>\n Marketplace Commands:\n </Text>\n <Text>\n <Text color={theme.success}>\n /plugin marketplace add <source>\n </Text>{' '}\n - Register new marketplace\n </Text>\n <Text>\n <Text color={theme.success}>/plugin marketplace list</Text> - List\n registered marketplaces\n </Text>\n <Text>\n <Text color={theme.success}>\n /plugin marketplace update <name>\n </Text>{' '}\n - Update marketplace manifest\n </Text>\n <Text>\n <Text color={theme.success}>\n /plugin marketplace remove <name>\n </Text>{' '}\n - Unregister marketplace\n </Text>\n <Text>{''}</Text>\n <Text color={SEMANTIC_COLORS.dim}>Examples:</Text>\n <Text color={SEMANTIC_COLORS.dim}> /plugin list</Text>\n <Text color={SEMANTIC_COLORS.dim}> /plugin info my-plugin</Text>\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n /plugin install awesome-plugin@official\n </Text>\n <Text color={SEMANTIC_COLORS.dim}>\n {' '}\n /plugin marketplace add owner/repo\n </Text>\n </Box>\n )\n }\n\n // Route subcommands\n switch (subcommand) {\n case 'list':\n return <PluginList onDone={onDone} />\n\n case 'info':\n if (subArgs.length === 0) {\n return (\n <ErrorMessage\n message=\"Plugin name required. Usage: /plugin info <name>\"\n onDone={onDone}\n />\n )\n }\n return <PluginInfo pluginName={subArgs[0]} onDone={onDone} />\n\n case 'install':\n if (subArgs.length === 0) {\n return (\n <ErrorMessage\n message=\"Plugin spec required. Usage: /plugin install <name>[@marketplace]\"\n onDone={onDone}\n />\n )\n }\n return <PluginInstall pluginSpec={subArgs[0]} onDone={onDone} />\n\n case 'uninstall':\n if (subArgs.length === 0) {\n return (\n <ErrorMessage\n message=\"Plugin name required. Usage: /plugin uninstall <name>\"\n onDone={onDone}\n />\n )\n }\n return <PluginUninstall pluginName={subArgs[0]} onDone={onDone} />\n\n case 'validate':\n return <PluginValidate pluginName={subArgs[0]} onDone={onDone} />\n\n case 'sync':\n return (\n <PluginSync\n onDone={onDone}\n force={subArgs.includes('--force')}\n clean={subArgs.includes('--clean')}\n dryRun={subArgs.includes('--dry-run')}\n />\n )\n\n case 'marketplace':\n const marketplaceSubcommand = subArgs[0]\n const marketplaceArgs = subArgs.slice(1)\n\n switch (marketplaceSubcommand) {\n case 'list':\n return <MarketplaceListView onDone={onDone} />\n\n case 'add':\n if (marketplaceArgs.length === 0) {\n return (\n <ErrorMessage\n message=\"Source required. Usage: /plugin marketplace add <source>\"\n onDone={onDone}\n />\n )\n }\n return <MarketplaceAdd source={marketplaceArgs[0]} onDone={onDone} />\n\n case 'update':\n if (marketplaceArgs.length === 0) {\n return (\n <ErrorMessage\n message=\"Marketplace name required. Usage: /plugin marketplace update <name>\"\n onDone={onDone}\n />\n )\n }\n return <MarketplaceUpdate name={marketplaceArgs[0]} onDone={onDone} />\n\n case 'remove':\n if (marketplaceArgs.length === 0) {\n return (\n <ErrorMessage\n message=\"Marketplace name required. Usage: /plugin marketplace remove <name>\"\n onDone={onDone}\n />\n )\n }\n return <MarketplaceRemove name={marketplaceArgs[0]} onDone={onDone} />\n\n default:\n return (\n <ErrorMessage\n message={`Unknown marketplace subcommand: ${marketplaceSubcommand}. Use /plugin help for usage.`}\n onDone={onDone}\n />\n )\n }\n\n default:\n return (\n <ErrorMessage\n message={`Unknown subcommand: ${subcommand}. Use /plugin help for usage.`}\n onDone={onDone}\n />\n )\n }\n}\n\n// ============================================================================\n// Main Plugin Command Router\n// ============================================================================\n\n/**\n * Main Plugin Command component that routes between interactive and legacy modes.\n *\n * - If no args provided: Use new interactive menu UI\n * - If args provided: Use legacy command-line interface for backward compatibility\n */\nconst PluginCommand: React.FC<{ args: string; onDone: () => void }> = ({\n args,\n onDone,\n}) => {\n // Check if user provided command-line arguments\n if (args.trim()) {\n // Use legacy CLI mode for backward compatibility\n return <LegacyPluginCommand args={args} onDone={onDone} />\n } else {\n // Use new interactive UI when no args provided\n return <InteractivePluginCommand onDone={onDone} />\n }\n}\n\n// ============================================================================\n// Command Export\n// ============================================================================\n\nconst plugin = {\n type: 'local-jsx',\n name: 'plugin',\n description: 'Manage plugins and plugin marketplaces (interactive)',\n isEnabled: true,\n isHidden: false,\n hidePromptInput: true,\n aliases: ['plugins'],\n async call(onDone, _context) {\n // For commands that need args, we parse from user input\n // Since this is a local-jsx command, args are already parsed\n return <PluginCommand args=\"\" onDone={onDone} />\n },\n userFacingName() {\n return 'plugin'\n },\n} satisfies Command\n\nexport default plugin\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["plugin", "uninstallPlugin"]
|
|
7
|
-
}
|
package/dist/commands/quit.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { setTerminalTitle } from "../utils/terminal.js";
|
|
2
|
-
import { gracefulExit } from "../utils/exit.js";
|
|
3
|
-
const quit = {
|
|
4
|
-
name: "quit",
|
|
5
|
-
description: "Exit Minto",
|
|
6
|
-
aliases: ["exit", "q"],
|
|
7
|
-
isEnabled: true,
|
|
8
|
-
isHidden: false,
|
|
9
|
-
type: "local",
|
|
10
|
-
userFacingName: () => "quit",
|
|
11
|
-
async call(args, context) {
|
|
12
|
-
setTerminalTitle("");
|
|
13
|
-
await gracefulExit(0);
|
|
14
|
-
return "";
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
export {
|
|
18
|
-
quit
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=quit.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/commands/quit.tsx"],
|
|
4
|
-
"sourcesContent": ["import type { Command } from '../commands'\nimport { setTerminalTitle } from '@utils/terminal'\nimport { gracefulExit } from '@utils/exit'\n\n/**\n * /quit slash command\n *\n * Clear terminal title and exit gracefully.\n * gracefulExit() shuts down MCP clients, kills child processes,\n * then calls process.exit(). Cost summary is printed by useCostSummary's\n * signal-exit handler.\n */\nexport const quit: Command = {\n name: 'quit',\n description: 'Exit Minto',\n aliases: ['exit', 'q'],\n isEnabled: true,\n isHidden: false,\n type: 'local',\n userFacingName: () => 'quit',\n async call(args, context) {\n setTerminalTitle('')\n await gracefulExit(0)\n return '' // unreachable \u2014 gracefulExit calls process.exit()\n },\n}\n"],
|
|
5
|
-
"mappings": "AACA,SAAS,wBAAwB;AACjC,SAAS,oBAAoB;AAUtB,MAAM,OAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,aAAa;AAAA,EACb,SAAS,CAAC,QAAQ,GAAG;AAAA,EACrB,WAAW;AAAA,EACX,UAAU;AAAA,EACV,MAAM;AAAA,EACN,gBAAgB,MAAM;AAAA,EACtB,MAAM,KAAK,MAAM,SAAS;AACxB,qBAAiB,EAAE;AACnB,UAAM,aAAa,CAAC;AACpB,WAAO;AAAA,EACT;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
reloadCustomCommands,
|
|
3
|
-
reloadPluginCommands
|
|
4
|
-
} from "../services/customCommands.js";
|
|
5
|
-
import { clearSkillsCache } from "../utils/skillLoader.js";
|
|
6
|
-
import { getCommands } from "../commands.js";
|
|
7
|
-
const refreshCommands = {
|
|
8
|
-
type: "local",
|
|
9
|
-
name: "refresh-commands",
|
|
10
|
-
description: "[Developer] Reload custom and plugin commands from filesystem",
|
|
11
|
-
isEnabled: true,
|
|
12
|
-
isHidden: true,
|
|
13
|
-
async call(_, context) {
|
|
14
|
-
try {
|
|
15
|
-
reloadCustomCommands();
|
|
16
|
-
reloadPluginCommands();
|
|
17
|
-
clearSkillsCache();
|
|
18
|
-
getCommands.cache.clear?.();
|
|
19
|
-
const commands = await getCommands();
|
|
20
|
-
const customCommands = commands.filter(
|
|
21
|
-
(cmd) => cmd.name.startsWith("project:") || cmd.name.startsWith("user:")
|
|
22
|
-
);
|
|
23
|
-
const pluginCommands = commands.filter(
|
|
24
|
-
(cmd) => cmd.name.startsWith("plugin:")
|
|
25
|
-
);
|
|
26
|
-
return `\u2705 Commands refreshed successfully!
|
|
27
|
-
|
|
28
|
-
Custom commands reloaded: ${customCommands.length}
|
|
29
|
-
- Project commands: ${customCommands.filter((cmd) => cmd.name.startsWith("project:")).length}
|
|
30
|
-
- User commands: ${customCommands.filter((cmd) => cmd.name.startsWith("user:")).length}
|
|
31
|
-
|
|
32
|
-
Plugin commands reloaded: ${pluginCommands.length}
|
|
33
|
-
|
|
34
|
-
Use /help to see updated command list.`;
|
|
35
|
-
} catch (error) {
|
|
36
|
-
console.error("Failed to refresh commands:", error);
|
|
37
|
-
return "\u274C Failed to refresh commands. Check console for details.";
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
userFacingName() {
|
|
41
|
-
return "refresh-commands";
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
var refreshCommands_default = refreshCommands;
|
|
45
|
-
export {
|
|
46
|
-
refreshCommands_default as default
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=refreshCommands.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/commands/refreshCommands.ts"],
|
|
4
|
-
"sourcesContent": ["import { Command } from '@commands'\nimport {\n reloadCustomCommands,\n reloadPluginCommands,\n} from '@services/customCommands'\nimport { clearSkillsCache } from '@utils/skillLoader'\nimport { getCommands } from '@commands'\n\n/**\n * Refresh Commands - Reload custom and plugin commands from filesystem\n *\n * This command provides a runtime mechanism to refresh the custom commands\n * and plugin commands cache without restarting the application. It's particularly\n * useful during development or when users are actively creating/modifying\n * custom commands or installing/updating plugins.\n *\n * The command follows the standard local command pattern used throughout\n * the project and provides detailed feedback about the refresh operation.\n */\nconst refreshCommands = {\n type: 'local',\n name: 'refresh-commands',\n description: '[Developer] Reload custom and plugin commands from filesystem',\n isEnabled: true,\n isHidden: true,\n async call(_, context) {\n try {\n // Clear custom commands cache to force filesystem rescan\n reloadCustomCommands()\n\n // Clear plugin commands cache to force plugin rescan\n reloadPluginCommands()\n\n // Clear skills cache to force skills rescan\n clearSkillsCache()\n\n // Clear the main commands cache to ensure full reload\n // This ensures that changes to custom and plugin commands are reflected in the main command list\n getCommands.cache.clear?.()\n\n // Reload commands to get updated count and validate the refresh\n const commands = await getCommands()\n const customCommands = commands.filter(\n cmd => cmd.name.startsWith('project:') || cmd.name.startsWith('user:'),\n )\n const pluginCommands = commands.filter(cmd =>\n cmd.name.startsWith('plugin:'),\n )\n\n // Provide detailed feedback about the refresh operation\n return `\u2705 Commands refreshed successfully!\n\nCustom commands reloaded: ${customCommands.length}\n- Project commands: ${customCommands.filter(cmd => cmd.name.startsWith('project:')).length}\n- User commands: ${customCommands.filter(cmd => cmd.name.startsWith('user:')).length}\n\nPlugin commands reloaded: ${pluginCommands.length}\n\nUse /help to see updated command list.`\n } catch (error) {\n console.error('Failed to refresh commands:', error)\n return '\u274C Failed to refresh commands. Check console for details.'\n }\n },\n userFacingName() {\n return 'refresh-commands'\n },\n} satisfies Command\n\nexport default refreshCommands\n"],
|
|
5
|
-
"mappings": "AACA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,wBAAwB;AACjC,SAAS,mBAAmB;AAa5B,MAAM,kBAAkB;AAAA,EACtB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,MAAM,KAAK,GAAG,SAAS;AACrB,QAAI;AAEF,2BAAqB;AAGrB,2BAAqB;AAGrB,uBAAiB;AAIjB,kBAAY,MAAM,QAAQ;AAG1B,YAAM,WAAW,MAAM,YAAY;AACnC,YAAM,iBAAiB,SAAS;AAAA,QAC9B,SAAO,IAAI,KAAK,WAAW,UAAU,KAAK,IAAI,KAAK,WAAW,OAAO;AAAA,MACvE;AACA,YAAM,iBAAiB,SAAS;AAAA,QAAO,SACrC,IAAI,KAAK,WAAW,SAAS;AAAA,MAC/B;AAGA,aAAO;AAAA;AAAA,4BAEe,eAAe,MAAM;AAAA,sBAC3B,eAAe,OAAO,SAAO,IAAI,KAAK,WAAW,UAAU,CAAC,EAAE,MAAM;AAAA,mBACvE,eAAe,OAAO,SAAO,IAAI,KAAK,WAAW,OAAO,CAAC,EAAE,MAAM;AAAA;AAAA,4BAExD,eAAe,MAAM;AAAA;AAAA;AAAA,IAG7C,SAAS,OAAO;AACd,cAAQ,MAAM,+BAA+B,KAAK;AAClD,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AACf,WAAO;AAAA,EACT;AACF;AAEA,IAAO,0BAAQ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/commands/resume.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { render } from "ink";
|
|
3
|
-
import { t } from "../i18n/index.js";
|
|
4
|
-
import { CACHE_PATHS, loadLogList } from "../utils/log.js";
|
|
5
|
-
import { deserializeMessages } from "../utils/conversationRecovery.js";
|
|
6
|
-
import { getNextAvailableLogForkNumber, logError } from "../utils/log.js";
|
|
7
|
-
import { isDefaultSlowAndCapableModel } from "../utils/model.js";
|
|
8
|
-
import { prepareTerminalForREPL } from "../utils/terminal.js";
|
|
9
|
-
import { REPL } from "../screens/REPL.js";
|
|
10
|
-
import { SessionPicker } from "../screens/ResumeConversation.js";
|
|
11
|
-
var resume_default = {
|
|
12
|
-
type: "local-jsx",
|
|
13
|
-
name: "resume",
|
|
14
|
-
description: t("commands.resume.description"),
|
|
15
|
-
isEnabled: true,
|
|
16
|
-
isHidden: false,
|
|
17
|
-
hidePromptInput: true,
|
|
18
|
-
aliases: ["r"],
|
|
19
|
-
userFacingName() {
|
|
20
|
-
return "resume";
|
|
21
|
-
},
|
|
22
|
-
async call(onDone, context) {
|
|
23
|
-
const { commands = [], tools = [], verbose = false } = context.options || {};
|
|
24
|
-
const allRawLogs = await loadLogList(CACHE_PATHS.messages());
|
|
25
|
-
const handleSelect = async (log) => {
|
|
26
|
-
try {
|
|
27
|
-
onDone();
|
|
28
|
-
const isDefaultModel = await isDefaultSlowAndCapableModel();
|
|
29
|
-
context.unmount();
|
|
30
|
-
await prepareTerminalForREPL();
|
|
31
|
-
render(
|
|
32
|
-
/* @__PURE__ */ React.createElement(
|
|
33
|
-
REPL,
|
|
34
|
-
{
|
|
35
|
-
messageLogName: log.date,
|
|
36
|
-
initialPrompt: "",
|
|
37
|
-
shouldShowPromptInput: true,
|
|
38
|
-
verbose,
|
|
39
|
-
commands,
|
|
40
|
-
tools,
|
|
41
|
-
initialMessages: deserializeMessages(log.messages, tools),
|
|
42
|
-
initialForkNumber: getNextAvailableLogForkNumber(
|
|
43
|
-
log.date,
|
|
44
|
-
log.forkNumber ?? 1,
|
|
45
|
-
0
|
|
46
|
-
),
|
|
47
|
-
isDefaultModel,
|
|
48
|
-
isResumedConversation: true
|
|
49
|
-
}
|
|
50
|
-
),
|
|
51
|
-
{ exitOnCtrlC: false }
|
|
52
|
-
);
|
|
53
|
-
} catch (e) {
|
|
54
|
-
logError(`Failed to load conversation: ${e}`);
|
|
55
|
-
throw e;
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
return /* @__PURE__ */ React.createElement(
|
|
59
|
-
SessionPicker,
|
|
60
|
-
{
|
|
61
|
-
logs: allRawLogs,
|
|
62
|
-
onSelect: handleSelect,
|
|
63
|
-
onClose: onDone
|
|
64
|
-
}
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
export {
|
|
69
|
-
resume_default as default
|
|
70
|
-
};
|
|
71
|
-
//# sourceMappingURL=resume.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/commands/resume.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * Resume Command (/resume, /r)\n *\n * Resume a previous conversation from within the REPL.\n * Reuses SessionPicker from ResumeConversation screen.\n */\n\nimport React from 'react'\nimport { render } from 'ink'\nimport type { Command } from '@commands'\nimport { t } from '@i18n'\nimport { CACHE_PATHS, loadLogList } from '@utils/log'\nimport type { LogOption } from '@minto-types/logs'\nimport { deserializeMessages } from '@utils/conversationRecovery'\nimport { getNextAvailableLogForkNumber, logError } from '@utils/log'\nimport { isDefaultSlowAndCapableModel } from '@utils/model'\nimport { prepareTerminalForREPL } from '@utils/terminal'\nimport { REPL } from '@screens/REPL'\nimport type { Tool } from '@tool'\nimport { SessionPicker } from '@screens/ResumeConversation'\n\nexport default {\n type: 'local-jsx',\n name: 'resume',\n description: t('commands.resume.description'),\n isEnabled: true,\n isHidden: false,\n hidePromptInput: true,\n aliases: ['r'],\n userFacingName() {\n return 'resume'\n },\n async call(onDone, context) {\n const { commands = [], tools = [], verbose = false } = context.options || {}\n\n const allRawLogs = await loadLogList(CACHE_PATHS.messages())\n\n const handleSelect = async (log: LogOption) => {\n try {\n onDone()\n const isDefaultModel = await isDefaultSlowAndCapableModel()\n context.unmount()\n await prepareTerminalForREPL()\n render(\n <REPL\n messageLogName={log.date}\n initialPrompt=\"\"\n shouldShowPromptInput={true}\n verbose={verbose}\n commands={commands}\n tools={tools as Tool[]}\n initialMessages={deserializeMessages(log.messages, tools as Tool[])}\n initialForkNumber={getNextAvailableLogForkNumber(\n log.date,\n log.forkNumber ?? 1,\n 0,\n )}\n isDefaultModel={isDefaultModel}\n isResumedConversation={true}\n />,\n { exitOnCtrlC: false },\n )\n } catch (e) {\n logError(`Failed to load conversation: ${e}`)\n throw e\n }\n }\n\n return (\n <SessionPicker\n logs={allRawLogs}\n onSelect={handleSelect}\n onClose={onDone}\n />\n )\n },\n} satisfies Command\n"],
|
|
5
|
-
"mappings": "AAOA,OAAO,WAAW;AAClB,SAAS,cAAc;AAEvB,SAAS,SAAS;AAClB,SAAS,aAAa,mBAAmB;AAEzC,SAAS,2BAA2B;AACpC,SAAS,+BAA+B,gBAAgB;AACxD,SAAS,oCAAoC;AAC7C,SAAS,8BAA8B;AACvC,SAAS,YAAY;AAErB,SAAS,qBAAqB;AAE9B,IAAO,iBAAQ;AAAA,EACb,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aAAa,EAAE,6BAA6B;AAAA,EAC5C,WAAW;AAAA,EACX,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,SAAS,CAAC,GAAG;AAAA,EACb,iBAAiB;AACf,WAAO;AAAA,EACT;AAAA,EACA,MAAM,KAAK,QAAQ,SAAS;AAC1B,UAAM,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,UAAU,MAAM,IAAI,QAAQ,WAAW,CAAC;AAE3E,UAAM,aAAa,MAAM,YAAY,YAAY,SAAS,CAAC;AAE3D,UAAM,eAAe,OAAO,QAAmB;AAC7C,UAAI;AACF,eAAO;AACP,cAAM,iBAAiB,MAAM,6BAA6B;AAC1D,gBAAQ,QAAQ;AAChB,cAAM,uBAAuB;AAC7B;AAAA,UACE;AAAA,YAAC;AAAA;AAAA,cACC,gBAAgB,IAAI;AAAA,cACpB,eAAc;AAAA,cACd,uBAAuB;AAAA,cACvB;AAAA,cACA;AAAA,cACA;AAAA,cACA,iBAAiB,oBAAoB,IAAI,UAAU,KAAe;AAAA,cAClE,mBAAmB;AAAA,gBACjB,IAAI;AAAA,gBACJ,IAAI,cAAc;AAAA,gBAClB;AAAA,cACF;AAAA,cACA;AAAA,cACA,uBAAuB;AAAA;AAAA,UACzB;AAAA,UACA,EAAE,aAAa,MAAM;AAAA,QACvB;AAAA,MACF,SAAS,GAAG;AACV,iBAAS,gCAAgC,CAAC,EAAE;AAC5C,cAAM;AAAA,MACR;AAAA,IACF;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS;AAAA;AAAA,IACX;AAAA,EAEJ;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/commands/review.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
const review = {
|
|
2
|
-
name: "review",
|
|
3
|
-
description: "Review code changes (staged git diff or specified files)",
|
|
4
|
-
isEnabled: true,
|
|
5
|
-
isHidden: false,
|
|
6
|
-
type: "prompt",
|
|
7
|
-
progressMessage: "Reviewing code...",
|
|
8
|
-
userFacingName() {
|
|
9
|
-
return "review";
|
|
10
|
-
},
|
|
11
|
-
async getPromptForCommand(args) {
|
|
12
|
-
const target = args.trim();
|
|
13
|
-
if (target) {
|
|
14
|
-
return [
|
|
15
|
-
{
|
|
16
|
-
role: "user",
|
|
17
|
-
content: `Please review the following files or changes: ${target}
|
|
18
|
-
|
|
19
|
-
Perform a thorough code review. For each issue found:
|
|
20
|
-
1. Identify the file and line
|
|
21
|
-
2. Describe the issue (bug, style, performance, security, etc.)
|
|
22
|
-
3. Suggest a fix
|
|
23
|
-
|
|
24
|
-
Also note any positive patterns worth highlighting. Be constructive and specific.`
|
|
25
|
-
}
|
|
26
|
-
];
|
|
27
|
-
}
|
|
28
|
-
return [
|
|
29
|
-
{
|
|
30
|
-
role: "user",
|
|
31
|
-
content: `Please review the current git changes. Follow these steps:
|
|
32
|
-
|
|
33
|
-
1. Run \`git diff --staged\` to see staged changes. If no staged changes, run \`git diff\` for unstaged changes.
|
|
34
|
-
2. For each changed file, analyze the diff thoroughly.
|
|
35
|
-
3. Report issues organized by severity:
|
|
36
|
-
- **Critical**: Bugs, security vulnerabilities, data loss risks
|
|
37
|
-
- **Important**: Logic errors, missing error handling, performance issues
|
|
38
|
-
- **Minor**: Style, naming, documentation gaps
|
|
39
|
-
4. Note positive patterns worth highlighting.
|
|
40
|
-
5. Provide a brief summary with overall assessment.
|
|
41
|
-
|
|
42
|
-
Be constructive, specific, and actionable.`
|
|
43
|
-
}
|
|
44
|
-
];
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
var review_default = review;
|
|
48
|
-
export {
|
|
49
|
-
review_default as default
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=review.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/commands/review.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * /review command\n *\n * Prompt-type command that enters code review mode.\n * Reviews staged git changes or specified files.\n */\n\nimport type { MessageParam } from '@anthropic-ai/sdk/resources/index.mjs'\nimport type { Command } from '../commands'\n\nconst review: Command = {\n name: 'review',\n description: 'Review code changes (staged git diff or specified files)',\n isEnabled: true,\n isHidden: false,\n type: 'prompt',\n progressMessage: 'Reviewing code...',\n userFacingName() {\n return 'review'\n },\n async getPromptForCommand(args: string): Promise<MessageParam[]> {\n const target = args.trim()\n\n if (target) {\n return [\n {\n role: 'user',\n content: `Please review the following files or changes: ${target}\n\nPerform a thorough code review. For each issue found:\n1. Identify the file and line\n2. Describe the issue (bug, style, performance, security, etc.)\n3. Suggest a fix\n\nAlso note any positive patterns worth highlighting. Be constructive and specific.`,\n },\n ]\n }\n\n return [\n {\n role: 'user',\n content: `Please review the current git changes. Follow these steps:\n\n1. Run \\`git diff --staged\\` to see staged changes. If no staged changes, run \\`git diff\\` for unstaged changes.\n2. For each changed file, analyze the diff thoroughly.\n3. Report issues organized by severity:\n - **Critical**: Bugs, security vulnerabilities, data loss risks\n - **Important**: Logic errors, missing error handling, performance issues\n - **Minor**: Style, naming, documentation gaps\n4. Note positive patterns worth highlighting.\n5. Provide a brief summary with overall assessment.\n\nBe constructive, specific, and actionable.`,\n },\n ]\n },\n}\n\nexport default review\n"],
|
|
5
|
-
"mappings": "AAUA,MAAM,SAAkB;AAAA,EACtB,MAAM;AAAA,EACN,aAAa;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,iBAAiB;AACf,WAAO;AAAA,EACT;AAAA,EACA,MAAM,oBAAoB,MAAuC;AAC/D,UAAM,SAAS,KAAK,KAAK;AAEzB,QAAI,QAAQ;AACV,aAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,SAAS,iDAAiD,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAQlE;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYX;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,iBAAQ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|