@within-7/minto 0.1.7 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.js +155 -37
- package/dist/Tool.js +38 -0
- package/dist/Tool.js.map +3 -3
- package/dist/commands/agents/AgentsCommand.js +73 -49
- package/dist/commands/agents/AgentsCommand.js.map +2 -2
- package/dist/commands/agents/constants.js +1 -1
- package/dist/commands/agents/constants.js.map +1 -1
- package/dist/commands/agents/index.js +1 -1
- package/dist/commands/bug.js +74 -7
- package/dist/commands/bug.js.map +3 -3
- package/dist/commands/clear.js +3 -0
- package/dist/commands/clear.js.map +2 -2
- package/dist/commands/compact.js +37 -0
- package/dist/commands/compact.js.map +2 -2
- package/dist/commands/context.js +85 -0
- package/dist/commands/context.js.map +7 -0
- package/dist/commands/ctx_viz.js +18 -10
- package/dist/commands/ctx_viz.js.map +2 -2
- package/dist/commands/doctor.js +158 -12
- package/dist/commands/doctor.js.map +2 -2
- package/dist/commands/export.js +157 -0
- package/dist/commands/export.js.map +7 -0
- package/dist/commands/mcp-interactive.js +28 -18
- package/dist/commands/mcp-interactive.js.map +2 -2
- package/dist/commands/model.js +9 -7
- package/dist/commands/model.js.map +2 -2
- package/dist/commands/permissions.js +87 -0
- package/dist/commands/permissions.js.map +7 -0
- package/dist/commands/plugin/AddMarketplaceForm.js +3 -2
- package/dist/commands/plugin/AddMarketplaceForm.js.map +2 -2
- package/dist/commands/plugin/ConfirmDialog.js +2 -1
- package/dist/commands/plugin/ConfirmDialog.js.map +2 -2
- package/dist/commands/plugin/ErrorView.js +2 -1
- package/dist/commands/plugin/ErrorView.js.map +2 -2
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js +5 -4
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js.map +2 -2
- package/dist/commands/plugin/InstalledPluginsManager.js +5 -4
- package/dist/commands/plugin/InstalledPluginsManager.js.map +2 -2
- package/dist/commands/plugin/MainMenu.js +2 -1
- package/dist/commands/plugin/MainMenu.js.map +2 -2
- package/dist/commands/plugin/MarketplaceManager.js +5 -4
- package/dist/commands/plugin/MarketplaceManager.js.map +2 -2
- package/dist/commands/plugin/MarketplaceSelector.js +4 -3
- package/dist/commands/plugin/MarketplaceSelector.js.map +2 -2
- package/dist/commands/plugin/PlaceholderScreen.js +3 -2
- package/dist/commands/plugin/PlaceholderScreen.js.map +2 -2
- package/dist/commands/plugin/PluginBrowser.js +6 -5
- package/dist/commands/plugin/PluginBrowser.js.map +2 -2
- package/dist/commands/plugin/PluginDetailsInstall.js +5 -4
- package/dist/commands/plugin/PluginDetailsInstall.js.map +2 -2
- package/dist/commands/plugin/PluginDetailsManage.js +4 -3
- package/dist/commands/plugin/PluginDetailsManage.js.map +2 -2
- package/dist/commands/plugin.js +16 -15
- package/dist/commands/plugin.js.map +2 -2
- package/dist/commands/quit.js +3 -1
- package/dist/commands/quit.js.map +2 -2
- package/dist/commands/sandbox.js +105 -0
- package/dist/commands/sandbox.js.map +7 -0
- package/dist/commands/setup.js +2 -1
- package/dist/commands/setup.js.map +2 -2
- package/dist/commands/status.js +59 -0
- package/dist/commands/status.js.map +7 -0
- package/dist/commands/tasks.js +108 -0
- package/dist/commands/tasks.js.map +7 -0
- package/dist/commands/todos.js +123 -0
- package/dist/commands/todos.js.map +7 -0
- package/dist/commands/undo.js +245 -0
- package/dist/commands/undo.js.map +7 -0
- package/dist/commands.js +22 -2
- package/dist/commands.js.map +2 -2
- package/dist/components/AgentThinkingBlock.js +10 -18
- package/dist/components/AgentThinkingBlock.js.map +2 -2
- package/dist/components/AsciiLogo.js +7 -8
- package/dist/components/AsciiLogo.js.map +2 -2
- package/dist/components/AskUserQuestionDialog/AskUserQuestionDialog.js +3 -2
- package/dist/components/AskUserQuestionDialog/AskUserQuestionDialog.js.map +2 -2
- package/dist/components/AskUserQuestionDialog/QuestionView.js +2 -1
- package/dist/components/AskUserQuestionDialog/QuestionView.js.map +2 -2
- package/dist/components/BackgroundTasksPanel.js +78 -29
- package/dist/components/BackgroundTasksPanel.js.map +2 -2
- package/dist/components/BashStreamingProgress.js +24 -0
- package/dist/components/BashStreamingProgress.js.map +7 -0
- package/dist/components/CollapsibleHint.js +15 -0
- package/dist/components/CollapsibleHint.js.map +7 -0
- package/dist/components/Config.js +3 -2
- package/dist/components/Config.js.map +2 -2
- package/dist/components/ConsoleOAuthFlow.js +2 -1
- package/dist/components/ConsoleOAuthFlow.js.map +2 -2
- package/dist/components/Cost.js +2 -1
- package/dist/components/Cost.js.map +2 -2
- package/dist/components/FileEditToolUpdatedMessage.js +1 -1
- package/dist/components/FileEditToolUpdatedMessage.js.map +2 -2
- package/dist/components/HeaderBar.js +13 -8
- package/dist/components/HeaderBar.js.map +2 -2
- package/dist/components/HistorySearchOverlay.js +4 -3
- package/dist/components/HistorySearchOverlay.js.map +2 -2
- package/dist/components/HotkeyHelpPanel.js +134 -0
- package/dist/components/HotkeyHelpPanel.js.map +7 -0
- package/dist/components/InvalidConfigDialog.js +2 -1
- package/dist/components/InvalidConfigDialog.js.map +2 -2
- package/dist/components/Logo.js +24 -68
- package/dist/components/Logo.js.map +2 -2
- package/dist/components/MCPServerApprovalDialog.js +2 -1
- package/dist/components/MCPServerApprovalDialog.js.map +2 -2
- package/dist/components/MCPServerDialogCopy.js +2 -1
- package/dist/components/MCPServerDialogCopy.js.map +2 -2
- package/dist/components/MCPServerMultiselectDialog.js +2 -1
- package/dist/components/MCPServerMultiselectDialog.js.map +2 -2
- package/dist/components/Message.js +23 -7
- package/dist/components/Message.js.map +3 -3
- package/dist/components/MessageSelector.js +4 -3
- package/dist/components/MessageSelector.js.map +2 -2
- package/dist/components/ModeIndicator.js +2 -1
- package/dist/components/ModeIndicator.js.map +2 -2
- package/dist/components/ModelConfig.js +20 -6
- package/dist/components/ModelConfig.js.map +2 -2
- package/dist/components/ModelListManager.js +7 -6
- package/dist/components/ModelListManager.js.map +2 -2
- package/dist/components/ModelSelector/ModelSelector.js +27 -14
- package/dist/components/ModelSelector/ModelSelector.js.map +2 -2
- package/dist/components/Onboarding.js +22 -16
- package/dist/components/Onboarding.js.map +2 -2
- package/dist/components/OperationSummary.js +130 -0
- package/dist/components/OperationSummary.js.map +7 -0
- package/dist/components/ProgressBar.js +74 -0
- package/dist/components/ProgressBar.js.map +7 -0
- package/dist/components/PromptInput.js +210 -87
- package/dist/components/PromptInput.js.map +2 -2
- package/dist/components/RequestStatusIndicator.js +194 -0
- package/dist/components/RequestStatusIndicator.js.map +7 -0
- package/dist/components/SensitiveFileWarning.js +31 -0
- package/dist/components/SensitiveFileWarning.js.map +7 -0
- package/dist/components/Spinner.js +141 -27
- package/dist/components/Spinner.js.map +2 -2
- package/dist/components/SpinnerSymbol.js +21 -27
- package/dist/components/SpinnerSymbol.js.map +2 -2
- package/dist/components/StreamingBashOutput.js +9 -8
- package/dist/components/StreamingBashOutput.js.map +2 -2
- package/dist/components/StructuredDiff.js +6 -8
- package/dist/components/StructuredDiff.js.map +2 -2
- package/dist/components/SubagentBlock.js +5 -3
- package/dist/components/SubagentBlock.js.map +2 -2
- package/dist/components/SubagentProgress.js +17 -15
- package/dist/components/SubagentProgress.js.map +2 -2
- package/dist/components/TaskCard.js +30 -24
- package/dist/components/TaskCard.js.map +2 -2
- package/dist/components/TextInput.js +9 -1
- package/dist/components/TextInput.js.map +2 -2
- package/dist/components/TodoChangeBlock.js +1 -1
- package/dist/components/TodoChangeBlock.js.map +2 -2
- package/dist/components/TodoPanel.js +140 -31
- package/dist/components/TodoPanel.js.map +3 -3
- package/dist/components/TokenCounter.js +74 -0
- package/dist/components/TokenCounter.js.map +7 -0
- package/dist/components/TokenWarning.js +2 -1
- package/dist/components/TokenWarning.js.map +2 -2
- package/dist/components/ToolUseLoader.js +2 -2
- package/dist/components/ToolUseLoader.js.map +2 -2
- package/dist/components/TreeConnector.js +26 -0
- package/dist/components/TreeConnector.js.map +7 -0
- package/dist/components/TrustDialog.js +2 -1
- package/dist/components/TrustDialog.js.map +2 -2
- package/dist/components/TurnCompletionIndicator.js +18 -0
- package/dist/components/TurnCompletionIndicator.js.map +7 -0
- package/dist/components/binary-feedback/BinaryFeedbackView.js +2 -1
- package/dist/components/binary-feedback/BinaryFeedbackView.js.map +2 -2
- package/dist/components/messages/AssistantTextMessage.js +20 -9
- package/dist/components/messages/AssistantTextMessage.js.map +2 -2
- package/dist/components/messages/AssistantThinkingMessage.js +18 -3
- package/dist/components/messages/AssistantThinkingMessage.js.map +2 -2
- package/dist/components/messages/AssistantToolUseMessage.js +17 -10
- package/dist/components/messages/AssistantToolUseMessage.js.map +2 -2
- package/dist/components/messages/GroupRenderer.js +54 -0
- package/dist/components/messages/GroupRenderer.js.map +7 -0
- package/dist/components/messages/NestedTasksPreview.js +24 -0
- package/dist/components/messages/NestedTasksPreview.js.map +7 -0
- package/dist/components/messages/ParallelTasksGroupView.js +93 -0
- package/dist/components/messages/ParallelTasksGroupView.js.map +7 -0
- package/dist/components/messages/TaskInModuleView.js +218 -0
- package/dist/components/messages/TaskInModuleView.js.map +7 -0
- package/dist/components/messages/TaskOutputContent.js +56 -0
- package/dist/components/messages/TaskOutputContent.js.map +7 -0
- package/dist/components/messages/UserPromptMessage.js +2 -2
- package/dist/components/messages/UserPromptMessage.js.map +2 -2
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js +2 -3
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js.map +2 -2
- package/dist/components/permissions/FallbackPermissionRequest.js +4 -4
- package/dist/components/permissions/FallbackPermissionRequest.js.map +2 -2
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +4 -4
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js.map +2 -2
- package/dist/constants/colors.js +120 -54
- package/dist/constants/colors.js.map +2 -2
- package/dist/constants/formatRules.js +102 -0
- package/dist/constants/formatRules.js.map +7 -0
- package/dist/constants/prompts.js +12 -34
- package/dist/constants/prompts.js.map +2 -2
- package/dist/constants/symbols.js +64 -6
- package/dist/constants/symbols.js.map +2 -2
- package/dist/constants/timing.js +5 -0
- package/dist/constants/timing.js.map +2 -2
- package/dist/constants/toolInputExamples.js +84 -0
- package/dist/constants/toolInputExamples.js.map +7 -0
- package/dist/core/backupManager.js +321 -0
- package/dist/core/backupManager.js.map +7 -0
- package/dist/core/config/defaults.js +84 -0
- package/dist/core/config/defaults.js.map +7 -0
- package/dist/core/config/index.js +111 -0
- package/dist/core/config/index.js.map +7 -0
- package/dist/core/config/loader.js +221 -0
- package/dist/core/config/loader.js.map +7 -0
- package/dist/core/config/migrations.js +128 -0
- package/dist/core/config/migrations.js.map +7 -0
- package/dist/core/config/schema.js +178 -0
- package/dist/core/config/schema.js.map +7 -0
- package/dist/core/costTracker.js +129 -0
- package/dist/core/costTracker.js.map +7 -0
- package/dist/core/gitAutoCommit.js +287 -0
- package/dist/core/gitAutoCommit.js.map +7 -0
- package/dist/core/index.js +8 -0
- package/dist/core/index.js.map +7 -0
- package/dist/core/operationTracker.js +212 -0
- package/dist/core/operationTracker.js.map +7 -0
- package/dist/core/permissions/auditLog.js +204 -0
- package/dist/core/permissions/auditLog.js.map +7 -0
- package/dist/core/permissions/engine/index.js +3 -0
- package/dist/core/permissions/engine/index.js.map +7 -0
- package/dist/core/permissions/engine/permissionEngine.js +106 -0
- package/dist/core/permissions/engine/permissionEngine.js.map +7 -0
- package/dist/core/permissions/engine/types.js +1 -0
- package/dist/core/permissions/engine/types.js.map +7 -0
- package/dist/core/permissions/index.js +84 -0
- package/dist/core/permissions/index.js.map +7 -0
- package/dist/core/permissions/ruleEngine.js +259 -0
- package/dist/core/permissions/ruleEngine.js.map +7 -0
- package/dist/core/permissions/rules/allowedToolsRule.js +62 -0
- package/dist/core/permissions/rules/allowedToolsRule.js.map +7 -0
- package/dist/core/permissions/rules/autoEscalationRule.js +296 -0
- package/dist/core/permissions/rules/autoEscalationRule.js.map +7 -0
- package/dist/core/permissions/rules/index.js +46 -0
- package/dist/core/permissions/rules/index.js.map +7 -0
- package/dist/core/permissions/rules/planModeRule.js +55 -0
- package/dist/core/permissions/rules/planModeRule.js.map +7 -0
- package/dist/core/permissions/rules/projectBoundaryRule.js +173 -0
- package/dist/core/permissions/rules/projectBoundaryRule.js.map +7 -0
- package/dist/core/permissions/rules/safeModeRule.js +65 -0
- package/dist/core/permissions/rules/safeModeRule.js.map +7 -0
- package/dist/core/permissions/rules/sensitivePathsRule.js +345 -0
- package/dist/core/permissions/rules/sensitivePathsRule.js.map +7 -0
- package/dist/core/permissions/types.js +127 -0
- package/dist/core/permissions/types.js.map +7 -0
- package/dist/core/tokenStats.js +9 -0
- package/dist/core/tokenStats.js.map +7 -0
- package/dist/core/tokenStatsManager.js +331 -0
- package/dist/core/tokenStatsManager.js.map +7 -0
- package/dist/core/tools/executor.js +143 -0
- package/dist/core/tools/executor.js.map +7 -0
- package/dist/core/tools/index.js +15 -0
- package/dist/core/tools/index.js.map +7 -0
- package/dist/core/tools/registry.js +183 -0
- package/dist/core/tools/registry.js.map +7 -0
- package/dist/core/tools/types.js +1 -0
- package/dist/core/tools/types.js.map +7 -0
- package/dist/cost-tracker.js +23 -15
- package/dist/cost-tracker.js.map +2 -2
- package/dist/entrypoints/cli.js +158 -130
- package/dist/entrypoints/cli.js.map +2 -2
- package/dist/entrypoints/mcp.js +12 -4
- package/dist/entrypoints/mcp.js.map +2 -2
- package/dist/history.js +14 -3
- package/dist/history.js.map +2 -2
- package/dist/hooks/useAgentTokenStats.js +72 -0
- package/dist/hooks/useAgentTokenStats.js.map +7 -0
- package/dist/hooks/useAgentTranscripts.js +140 -0
- package/dist/hooks/useAgentTranscripts.js.map +7 -0
- package/dist/hooks/useAnimationSync.js +53 -0
- package/dist/hooks/useAnimationSync.js.map +7 -0
- package/dist/hooks/useArrowKeyHistory.js +4 -2
- package/dist/hooks/useArrowKeyHistory.js.map +2 -2
- package/dist/hooks/useCanUseTool.js +3 -1
- package/dist/hooks/useCanUseTool.js.map +2 -2
- package/dist/hooks/useExitOnCtrlCD.js +9 -5
- package/dist/hooks/useExitOnCtrlCD.js.map +2 -2
- package/dist/hooks/useHookStatus.js +40 -0
- package/dist/hooks/useHookStatus.js.map +7 -0
- package/dist/hooks/useLogMessages.js +29 -2
- package/dist/hooks/useLogMessages.js.map +2 -2
- package/dist/hooks/useMessageGroups.js +43 -0
- package/dist/hooks/useMessageGroups.js.map +7 -0
- package/dist/hooks/useTerminalSize.js +62 -6
- package/dist/hooks/useTerminalSize.js.map +2 -2
- package/dist/hooks/useUnifiedCompletion.js +69 -0
- package/dist/hooks/useUnifiedCompletion.js.map +2 -2
- package/dist/i18n/index.js +109 -0
- package/dist/i18n/index.js.map +7 -0
- package/dist/i18n/locales/en.js +348 -0
- package/dist/i18n/locales/en.js.map +7 -0
- package/dist/i18n/locales/index.js +7 -0
- package/dist/i18n/locales/index.js.map +7 -0
- package/dist/i18n/locales/zh-CN.js +348 -0
- package/dist/i18n/locales/zh-CN.js.map +7 -0
- package/dist/i18n/types.js +8 -0
- package/dist/i18n/types.js.map +7 -0
- package/dist/permissions.js +28 -1
- package/dist/permissions.js.map +2 -2
- package/dist/query.js +253 -21
- package/dist/query.js.map +3 -3
- package/dist/screens/REPL.js +523 -194
- package/dist/screens/REPL.js.map +3 -3
- package/dist/services/adapters/chatCompletions.js +3 -1
- package/dist/services/adapters/chatCompletions.js.map +2 -2
- package/dist/services/adapters/messageNormalizer.js +354 -0
- package/dist/services/adapters/messageNormalizer.js.map +7 -0
- package/dist/services/adapters/responsesAPI.js +6 -3
- package/dist/services/adapters/responsesAPI.js.map +2 -2
- package/dist/services/checkpointManager.js +386 -0
- package/dist/services/checkpointManager.js.map +7 -0
- package/dist/services/claude.js +192 -14
- package/dist/services/claude.js.map +3 -3
- package/dist/services/compressionService.js +50 -1
- package/dist/services/compressionService.js.map +2 -2
- package/dist/services/contextMonitor.js +162 -0
- package/dist/services/contextMonitor.js.map +7 -0
- package/dist/services/customCommands.js +60 -41
- package/dist/services/customCommands.js.map +2 -2
- package/dist/services/hookExecutor.js +173 -1
- package/dist/services/hookExecutor.js.map +2 -2
- package/dist/services/intelligentCompactor.js +281 -0
- package/dist/services/intelligentCompactor.js.map +7 -0
- package/dist/services/lspConfig.js +109 -0
- package/dist/services/lspConfig.js.map +7 -0
- package/dist/services/mcpClient.js +338 -43
- package/dist/services/mcpClient.js.map +2 -2
- package/dist/services/modelOrchestrator.js +310 -0
- package/dist/services/modelOrchestrator.js.map +7 -0
- package/dist/services/openai.js +8 -1
- package/dist/services/openai.js.map +2 -2
- package/dist/services/outputStyles.js +138 -0
- package/dist/services/outputStyles.js.map +7 -0
- package/dist/services/plugins/index.js +5 -0
- package/dist/services/plugins/index.js.map +7 -0
- package/dist/services/plugins/lspServers.js +188 -0
- package/dist/services/plugins/lspServers.js.map +7 -0
- package/dist/services/plugins/pluginRuntime.js +229 -0
- package/dist/services/plugins/pluginRuntime.js.map +7 -0
- package/dist/services/plugins/pluginValidation.js +219 -0
- package/dist/services/plugins/pluginValidation.js.map +7 -0
- package/dist/services/plugins/skillMarketplace.js +556 -0
- package/dist/services/plugins/skillMarketplace.js.map +7 -0
- package/dist/services/responseStateManager.js +37 -3
- package/dist/services/responseStateManager.js.map +2 -2
- package/dist/services/sandbox/filesystemBoundary.js +341 -0
- package/dist/services/sandbox/filesystemBoundary.js.map +7 -0
- package/dist/services/sandbox/index.js +14 -0
- package/dist/services/sandbox/index.js.map +7 -0
- package/dist/services/sandbox/networkProxy.js +293 -0
- package/dist/services/sandbox/networkProxy.js.map +7 -0
- package/dist/services/sandbox/sandboxController.js +574 -0
- package/dist/services/sandbox/sandboxController.js.map +7 -0
- package/dist/services/sandbox/types.js +50 -0
- package/dist/services/sandbox/types.js.map +7 -0
- package/dist/services/sessionMemory.js +266 -0
- package/dist/services/sessionMemory.js.map +7 -0
- package/dist/services/taskRouter.js +324 -0
- package/dist/services/taskRouter.js.map +7 -0
- package/dist/tools/ArchitectTool/ArchitectTool.js +7 -1
- package/dist/tools/ArchitectTool/ArchitectTool.js.map +2 -2
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js +6 -2
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js.map +2 -2
- package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js +2 -1
- package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js.map +2 -2
- package/dist/tools/BaseTool.js +72 -0
- package/dist/tools/BaseTool.js.map +7 -0
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js +3 -0
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js.map +2 -2
- package/dist/tools/BashTool/BashTool.js +79 -3
- package/dist/tools/BashTool/BashTool.js.map +2 -2
- package/dist/tools/BashTool/BashToolResultMessage.js +3 -0
- package/dist/tools/BashTool/BashToolResultMessage.js.map +2 -2
- package/dist/tools/BashTool/OutputLine.js +54 -0
- package/dist/tools/BashTool/OutputLine.js.map +2 -2
- package/dist/tools/BashTool/prompt.js +336 -3
- package/dist/tools/BashTool/prompt.js.map +2 -2
- package/dist/tools/FileEditTool/FileEditTool.js +29 -4
- package/dist/tools/FileEditTool/FileEditTool.js.map +2 -2
- package/dist/tools/FileEditTool/prompt.js +6 -3
- package/dist/tools/FileEditTool/prompt.js.map +2 -2
- package/dist/tools/FileWriteTool/FileWriteTool.js +5 -5
- package/dist/tools/FileWriteTool/FileWriteTool.js.map +2 -2
- package/dist/tools/FileWriteTool/prompt.js +4 -2
- package/dist/tools/FileWriteTool/prompt.js.map +2 -2
- package/dist/tools/GlobTool/GlobTool.js +4 -2
- package/dist/tools/GlobTool/GlobTool.js.map +2 -2
- package/dist/tools/GrepTool/GrepTool.js +36 -7
- package/dist/tools/GrepTool/GrepTool.js.map +2 -2
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js +3 -0
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js.map +2 -2
- package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js +109 -0
- package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js.map +7 -0
- package/dist/tools/ListMcpResourcesTool/prompt.js +19 -0
- package/dist/tools/ListMcpResourcesTool/prompt.js.map +7 -0
- package/dist/tools/LspTool/LspTool.js +664 -0
- package/dist/tools/LspTool/LspTool.js.map +7 -0
- package/dist/tools/LspTool/prompt.js +27 -0
- package/dist/tools/LspTool/prompt.js.map +7 -0
- package/dist/tools/MCPTool/MCPTool.js +9 -1
- package/dist/tools/MCPTool/MCPTool.js.map +2 -2
- package/dist/tools/MemoryReadTool/MemoryReadTool.js +19 -6
- package/dist/tools/MemoryReadTool/MemoryReadTool.js.map +2 -2
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js +6 -6
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js.map +2 -2
- package/dist/tools/MultiEditTool/MultiEditTool.js +19 -2
- package/dist/tools/MultiEditTool/MultiEditTool.js.map +2 -2
- package/dist/tools/MultiEditTool/prompt.js +5 -3
- package/dist/tools/MultiEditTool/prompt.js.map +2 -2
- package/dist/tools/NotebookEditTool/NotebookEditTool.js +7 -2
- package/dist/tools/NotebookEditTool/NotebookEditTool.js.map +2 -2
- package/dist/tools/NotebookReadTool/NotebookReadTool.js.map +2 -2
- package/dist/tools/PlanModeTool/EnterPlanModeTool.js +75 -0
- package/dist/tools/PlanModeTool/EnterPlanModeTool.js.map +7 -0
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js +109 -0
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js.map +7 -0
- package/dist/tools/PlanModeTool/prompt.js +94 -0
- package/dist/tools/PlanModeTool/prompt.js.map +7 -0
- package/dist/tools/ReadMcpResourceTool/ReadMcpResourceTool.js +130 -0
- package/dist/tools/ReadMcpResourceTool/ReadMcpResourceTool.js.map +7 -0
- package/dist/tools/ReadMcpResourceTool/prompt.js +17 -0
- package/dist/tools/ReadMcpResourceTool/prompt.js.map +7 -0
- package/dist/tools/SkillTool/SkillTool.js +10 -4
- package/dist/tools/SkillTool/SkillTool.js.map +2 -2
- package/dist/tools/SkillTool/prompt.js +1 -1
- package/dist/tools/SkillTool/prompt.js.map +1 -1
- package/dist/tools/SlashCommandTool/SlashCommandTool.js +260 -0
- package/dist/tools/SlashCommandTool/SlashCommandTool.js.map +7 -0
- package/dist/tools/SlashCommandTool/prompt.js +35 -0
- package/dist/tools/SlashCommandTool/prompt.js.map +7 -0
- package/dist/tools/TaskOutputTool/TaskOutputTool.js +190 -0
- package/dist/tools/TaskOutputTool/TaskOutputTool.js.map +7 -0
- package/dist/tools/TaskOutputTool/prompt.js +15 -0
- package/dist/tools/TaskOutputTool/prompt.js.map +7 -0
- package/dist/tools/TaskTool/TaskTool.js +310 -104
- package/dist/tools/TaskTool/TaskTool.js.map +2 -2
- package/dist/tools/TaskTool/prompt.js.map +2 -2
- package/dist/tools/TodoWriteTool/TodoWriteTool.js +42 -77
- package/dist/tools/TodoWriteTool/TodoWriteTool.js.map +2 -2
- package/dist/tools/URLFetcherTool/URLFetcherTool.js +4 -1
- package/dist/tools/URLFetcherTool/URLFetcherTool.js.map +2 -2
- package/dist/tools/URLFetcherTool/cache.js +55 -8
- package/dist/tools/URLFetcherTool/cache.js.map +2 -2
- package/dist/tools.js +31 -2
- package/dist/tools.js.map +2 -2
- package/dist/types/hooks.js +4 -0
- package/dist/types/hooks.js.map +2 -2
- package/dist/types/marketplace.js.map +2 -2
- package/dist/types/messageGroup.js +36 -0
- package/dist/types/messageGroup.js.map +7 -0
- package/dist/types/plugin.js.map +2 -2
- package/dist/types/thinking.js +1 -0
- package/dist/types/thinking.js.map +7 -0
- package/dist/utils/BackgroundShellManager.js +136 -39
- package/dist/utils/BackgroundShellManager.js.map +2 -2
- package/dist/utils/CircuitBreaker.js +242 -0
- package/dist/utils/CircuitBreaker.js.map +7 -0
- package/dist/utils/MessageBatchBuffer.js +102 -0
- package/dist/utils/MessageBatchBuffer.js.map +7 -0
- package/dist/utils/PersistentShell.js +151 -1
- package/dist/utils/PersistentShell.js.map +2 -2
- package/dist/utils/agentLoader.js +1 -23
- package/dist/utils/agentLoader.js.map +2 -2
- package/dist/utils/agentTranscripts.js +641 -0
- package/dist/utils/agentTranscripts.js.map +7 -0
- package/dist/utils/animationManager.js +213 -0
- package/dist/utils/animationManager.js.map +7 -0
- package/dist/utils/animationSync.js +110 -0
- package/dist/utils/animationSync.js.map +7 -0
- package/dist/utils/ask.js +2 -0
- package/dist/utils/ask.js.map +2 -2
- package/dist/utils/asyncFile.js +215 -0
- package/dist/utils/asyncFile.js.map +7 -0
- package/dist/utils/backgroundAgentManager.js +231 -0
- package/dist/utils/backgroundAgentManager.js.map +7 -0
- package/dist/utils/config.js +108 -10
- package/dist/utils/config.js.map +2 -2
- package/dist/utils/conversationRecovery.js +19 -0
- package/dist/utils/conversationRecovery.js.map +2 -2
- package/dist/utils/credentials/CredentialStore.js +1 -0
- package/dist/utils/credentials/CredentialStore.js.map +7 -0
- package/dist/utils/credentials/EncryptedFileStore.js +157 -0
- package/dist/utils/credentials/EncryptedFileStore.js.map +7 -0
- package/dist/utils/credentials/index.js +37 -0
- package/dist/utils/credentials/index.js.map +7 -0
- package/dist/utils/credentials/migration.js +82 -0
- package/dist/utils/credentials/migration.js.map +7 -0
- package/dist/utils/exit.js +73 -0
- package/dist/utils/exit.js.map +7 -0
- package/dist/utils/format.js +73 -5
- package/dist/utils/format.js.map +2 -2
- package/dist/utils/generators.js +76 -6
- package/dist/utils/generators.js.map +2 -2
- package/dist/utils/globalErrorHandler.js +149 -0
- package/dist/utils/globalErrorHandler.js.map +7 -0
- package/dist/utils/groupHandlers/index.js +8 -0
- package/dist/utils/groupHandlers/index.js.map +7 -0
- package/dist/utils/groupHandlers/parallelTasksHandler.js +140 -0
- package/dist/utils/groupHandlers/parallelTasksHandler.js.map +7 -0
- package/dist/utils/groupHandlers/taskHandler.js +104 -0
- package/dist/utils/groupHandlers/taskHandler.js.map +7 -0
- package/dist/utils/groupHandlers/types.js +1 -0
- package/dist/utils/groupHandlers/types.js.map +7 -0
- package/dist/utils/logRotation.js +224 -0
- package/dist/utils/logRotation.js.map +7 -0
- package/dist/utils/markdown.js +13 -1
- package/dist/utils/markdown.js.map +2 -2
- package/dist/utils/marketplaceManager.js +3 -5
- package/dist/utils/marketplaceManager.js.map +2 -2
- package/dist/utils/memSafety.js +264 -0
- package/dist/utils/memSafety.js.map +7 -0
- package/dist/utils/messageGroupManager.js +274 -0
- package/dist/utils/messageGroupManager.js.map +7 -0
- package/dist/utils/messages.js +13 -4
- package/dist/utils/messages.js.map +2 -2
- package/dist/utils/model.js +119 -15
- package/dist/utils/model.js.map +3 -3
- package/dist/utils/permissions/filesystem.js +162 -6
- package/dist/utils/permissions/filesystem.js.map +2 -2
- package/dist/utils/plan/planMode.js +143 -0
- package/dist/utils/plan/planMode.js.map +7 -0
- package/dist/utils/pluginLoader.js +17 -21
- package/dist/utils/pluginLoader.js.map +2 -2
- package/dist/utils/ripgrep.js +55 -2
- package/dist/utils/ripgrep.js.map +2 -2
- package/dist/utils/safePath.js +132 -0
- package/dist/utils/safePath.js.map +7 -0
- package/dist/utils/sanitizeInput.js +32 -0
- package/dist/utils/sanitizeInput.js.map +7 -0
- package/dist/utils/secureKeyStorage.js +312 -0
- package/dist/utils/secureKeyStorage.js.map +7 -0
- package/dist/utils/sensitiveFiles.js +125 -0
- package/dist/utils/sensitiveFiles.js.map +7 -0
- package/dist/utils/session/sessionPlugins.js +67 -0
- package/dist/utils/session/sessionPlugins.js.map +7 -0
- package/dist/utils/taskDisplayUtils.js +257 -0
- package/dist/utils/taskDisplayUtils.js.map +7 -0
- package/dist/utils/teamConfig.js +2 -1
- package/dist/utils/teamConfig.js.map +2 -2
- package/dist/utils/theme.js +6 -6
- package/dist/utils/theme.js.map +1 -1
- package/dist/utils/todoStorage.js +92 -2
- package/dist/utils/todoStorage.js.map +2 -2
- package/dist/utils/toolRiskClassification.js +207 -0
- package/dist/utils/toolRiskClassification.js.map +7 -0
- package/dist/utils/toolTimeout.js +136 -0
- package/dist/utils/toolTimeout.js.map +7 -0
- package/dist/utils/tooling/safeRender.js +116 -0
- package/dist/utils/tooling/safeRender.js.map +7 -0
- package/dist/utils/userFriendlyError.js +346 -0
- package/dist/utils/userFriendlyError.js.map +7 -0
- package/dist/utils/vendor/ripgrep/arm64-darwin/rg +0 -0
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/package.json +17 -5
- package/scripts/postinstall.js +128 -38
- package/dist/commands/agents.js +0 -2086
- package/dist/commands/agents.js.map +0 -7
- package/dist/commands/build.js +0 -74
- package/dist/commands/build.js.map +0 -7
- package/dist/commands/compression.js +0 -57
- package/dist/commands/compression.js.map +0 -7
- package/dist/commands/listen.js +0 -37
- package/dist/commands/listen.js.map +0 -7
- package/dist/commands/login.js +0 -37
- package/dist/commands/login.js.map +0 -7
- package/dist/commands/logout.js +0 -33
- package/dist/commands/logout.js.map +0 -7
- package/dist/commands/mcp.js +0 -40
- package/dist/commands/mcp.js.map +0 -7
- package/dist/commands/mcp_refresh.js +0 -40
- package/dist/commands/mcp_refresh.js.map +0 -7
- package/dist/commands/modelstatus.js +0 -21
- package/dist/commands/modelstatus.js.map +0 -7
- package/dist/commands/onboarding.js +0 -36
- package/dist/commands/onboarding.js.map +0 -7
- package/dist/commands/plugin-interactive.js +0 -446
- package/dist/commands/plugin-interactive.js.map +0 -7
- package/dist/commands/pr_comments.js +0 -61
- package/dist/commands/pr_comments.js.map +0 -7
- package/dist/commands/release-notes.js +0 -30
- package/dist/commands/release-notes.js.map +0 -7
- package/dist/commands/review.js +0 -51
- package/dist/commands/review.js.map +0 -7
- package/dist/components/Bug.js +0 -147
- package/dist/components/Bug.js.map +0 -7
- package/dist/components/ModelSelector.js +0 -2062
- package/dist/components/ModelSelector.js.map +0 -7
- package/dist/components/ModelStatusDisplay.js +0 -87
- package/dist/components/ModelStatusDisplay.js.map +0 -7
- package/dist/entrypoints/cli-wrapper.js +0 -61
- package/dist/entrypoints/cli-wrapper.js.map +0 -7
- package/dist/hooks/useCancelRequest.js +0 -28
- package/dist/hooks/useCancelRequest.js.map +0 -7
- package/dist/screens/Doctor.js +0 -22
- package/dist/screens/Doctor.js.map +0 -7
|
@@ -1,16 +1,47 @@
|
|
|
1
|
-
import { useEffect, useState } from "react";
|
|
1
|
+
import { useEffect, useState, useRef } from "react";
|
|
2
2
|
let globalSize = {
|
|
3
3
|
columns: process.stdout.columns || 80,
|
|
4
4
|
rows: process.stdout.rows || 24
|
|
5
5
|
};
|
|
6
6
|
const listeners = /* @__PURE__ */ new Set();
|
|
7
7
|
let isListenerAttached = false;
|
|
8
|
+
let debounceTimer = null;
|
|
9
|
+
const resizeCallbacks = /* @__PURE__ */ new Set();
|
|
10
|
+
const RESIZE_DEBOUNCE_MS = 300;
|
|
11
|
+
const SIZE_CHANGE_THRESHOLD = 5;
|
|
12
|
+
let isInClearingCycle = false;
|
|
13
|
+
let lastSignificantResizeTime = 0;
|
|
14
|
+
const RESIZE_COOLDOWN_MS = 2e3;
|
|
8
15
|
function updateAllListeners() {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
if (debounceTimer) {
|
|
17
|
+
clearTimeout(debounceTimer);
|
|
18
|
+
}
|
|
19
|
+
debounceTimer = setTimeout(() => {
|
|
20
|
+
const newColumns = process.stdout.columns || 80;
|
|
21
|
+
const newRows = process.stdout.rows || 24;
|
|
22
|
+
if (globalSize.columns !== newColumns || globalSize.rows !== newRows) {
|
|
23
|
+
const oldColumns = globalSize.columns;
|
|
24
|
+
const columnDiff = Math.abs(oldColumns - newColumns);
|
|
25
|
+
const isSignificantResize = columnDiff > SIZE_CHANGE_THRESHOLD;
|
|
26
|
+
globalSize = {
|
|
27
|
+
columns: newColumns,
|
|
28
|
+
rows: newRows
|
|
29
|
+
};
|
|
30
|
+
listeners.forEach((listener) => listener());
|
|
31
|
+
const now = Date.now();
|
|
32
|
+
const timeSinceLastResize = now - lastSignificantResizeTime;
|
|
33
|
+
const isCooldownExpired = timeSinceLastResize > RESIZE_COOLDOWN_MS;
|
|
34
|
+
if (isSignificantResize && !isInClearingCycle && isCooldownExpired) {
|
|
35
|
+
isInClearingCycle = true;
|
|
36
|
+
lastSignificantResizeTime = now;
|
|
37
|
+
resizeCallbacks.forEach((callback) => callback());
|
|
38
|
+
setTimeout(() => {
|
|
39
|
+
isInClearingCycle = false;
|
|
40
|
+
}, 500);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
debounceTimer = null;
|
|
44
|
+
}, RESIZE_DEBOUNCE_MS);
|
|
14
45
|
}
|
|
15
46
|
function useTerminalSize() {
|
|
16
47
|
const [size, setSize] = useState(globalSize);
|
|
@@ -27,12 +58,37 @@ function useTerminalSize() {
|
|
|
27
58
|
if (listeners.size === 0 && isListenerAttached) {
|
|
28
59
|
process.stdout.off("resize", updateAllListeners);
|
|
29
60
|
isListenerAttached = false;
|
|
61
|
+
if (debounceTimer) {
|
|
62
|
+
clearTimeout(debounceTimer);
|
|
63
|
+
debounceTimer = null;
|
|
64
|
+
}
|
|
30
65
|
}
|
|
31
66
|
};
|
|
32
67
|
}, []);
|
|
33
68
|
return size;
|
|
34
69
|
}
|
|
70
|
+
function useFullscreenExitCallback(callback) {
|
|
71
|
+
return useSignificantResizeCallback(callback);
|
|
72
|
+
}
|
|
73
|
+
function useSignificantResizeCallback(callback) {
|
|
74
|
+
const callbackRef = useRef(callback);
|
|
75
|
+
callbackRef.current = callback;
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
if (!isListenerAttached) {
|
|
78
|
+
process.stdout.setMaxListeners(20);
|
|
79
|
+
process.stdout.on("resize", updateAllListeners);
|
|
80
|
+
isListenerAttached = true;
|
|
81
|
+
}
|
|
82
|
+
const wrappedCallback = () => callbackRef.current();
|
|
83
|
+
resizeCallbacks.add(wrappedCallback);
|
|
84
|
+
return () => {
|
|
85
|
+
resizeCallbacks.delete(wrappedCallback);
|
|
86
|
+
};
|
|
87
|
+
}, []);
|
|
88
|
+
}
|
|
35
89
|
export {
|
|
90
|
+
useFullscreenExitCallback,
|
|
91
|
+
useSignificantResizeCallback,
|
|
36
92
|
useTerminalSize
|
|
37
93
|
};
|
|
38
94
|
//# sourceMappingURL=useTerminalSize.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/hooks/useTerminalSize.ts"],
|
|
4
|
-
"sourcesContent": ["import { useEffect, useState } from 'react'\n\n// Global state to share across all hook instances\nlet globalSize = {\n columns: process.stdout.columns || 80,\n rows: process.stdout.rows || 24,\n}\n\nconst listeners = new Set<() => void>()\nlet isListenerAttached = false\n\nfunction updateAllListeners() {\n
|
|
5
|
-
"mappings": "AAAA,SAAS,WAAW,
|
|
4
|
+
"sourcesContent": ["import { useEffect, useState, useRef, useCallback } from 'react'\n\n// Global state to share across all hook instances\nlet globalSize = {\n columns: process.stdout.columns || 80,\n rows: process.stdout.rows || 24,\n}\n\nconst listeners = new Set<() => void>()\nlet isListenerAttached = false\nlet debounceTimer: NodeJS.Timeout | null = null\n\n// Callbacks to trigger full re-render when significant resize occurs\nconst resizeCallbacks = new Set<() => void>()\n\n// Debounce delay in ms - prevents rapid-fire re-renders during resize\n// Increased from 150ms to 300ms to better handle window focus transitions\nconst RESIZE_DEBOUNCE_MS = 300\n\n// Threshold for detecting any significant size change (either direction)\n// Any resize > 5 columns should trigger a re-render to prevent ghost artifacts\nconst SIZE_CHANGE_THRESHOLD = 5\n\n// Track if we're currently in a fullscreen exit clearing cycle to prevent re-triggers\nlet isInClearingCycle = false\n\n// Track last significant resize time to prevent rapid re-triggers (e.g., from window focus changes)\nlet lastSignificantResizeTime = 0\nconst RESIZE_COOLDOWN_MS = 2000 // 2 second cooldown between significant resize triggers\n\nfunction updateAllListeners() {\n // Clear any pending debounce\n if (debounceTimer) {\n clearTimeout(debounceTimer)\n }\n\n // Debounce the resize event to prevent multiple rapid re-renders\n debounceTimer = setTimeout(() => {\n const newColumns = process.stdout.columns || 80\n const newRows = process.stdout.rows || 24\n\n // Only update if dimensions actually changed\n if (globalSize.columns !== newColumns || globalSize.rows !== newRows) {\n const oldColumns = globalSize.columns\n\n // Detect if screen size changed significantly (in either direction)\n // This catches both entering and exiting fullscreen, as well as manual window resizing\n const columnDiff = Math.abs(oldColumns - newColumns)\n const isSignificantResize = columnDiff > SIZE_CHANGE_THRESHOLD\n\n globalSize = {\n columns: newColumns,\n rows: newRows,\n }\n listeners.forEach(listener => listener())\n\n // If significant resize and not already in clearing cycle, trigger callbacks\n // The clearing cycle lock prevents multiple triggers during the clear/re-render process\n // Also enforce a cooldown period to prevent rapid re-triggers from window focus changes\n const now = Date.now()\n const timeSinceLastResize = now - lastSignificantResizeTime\n const isCooldownExpired = timeSinceLastResize > RESIZE_COOLDOWN_MS\n\n if (isSignificantResize && !isInClearingCycle && isCooldownExpired) {\n isInClearingCycle = true\n lastSignificantResizeTime = now\n resizeCallbacks.forEach(callback => callback())\n // Release the lock after a delay to allow re-render to complete\n setTimeout(() => {\n isInClearingCycle = false\n }, 500)\n }\n }\n debounceTimer = null\n }, RESIZE_DEBOUNCE_MS)\n}\n\nexport function useTerminalSize() {\n const [size, setSize] = useState(globalSize)\n\n useEffect(() => {\n // Add this component's listener to the set\n const updateSize = () => setSize({ ...globalSize })\n listeners.add(updateSize)\n\n // Only attach the global resize listener once\n if (!isListenerAttached) {\n // Increase max listeners to prevent warnings\n process.stdout.setMaxListeners(20)\n process.stdout.on('resize', updateAllListeners)\n isListenerAttached = true\n }\n\n return () => {\n // Remove this component's listener\n listeners.delete(updateSize)\n\n // If no more listeners, remove the global listener\n if (listeners.size === 0 && isListenerAttached) {\n process.stdout.off('resize', updateAllListeners)\n isListenerAttached = false\n // Clear any pending debounce\n if (debounceTimer) {\n clearTimeout(debounceTimer)\n debounceTimer = null\n }\n }\n }\n }, [])\n\n return size\n}\n\n/**\n * Hook to register a callback that fires when a significant resize occurs.\n * This is detected when the terminal width changes by more than 5 columns.\n * Useful for triggering a full UI re-render to clear ghost artifacts.\n *\n * @deprecated Use useSignificantResizeCallback instead (same function, clearer name)\n */\nexport function useFullscreenExitCallback(callback: () => void) {\n return useSignificantResizeCallback(callback)\n}\n\n/**\n * Hook to register a callback that fires when a significant terminal resize occurs.\n * This is detected when the terminal width changes by more than SIZE_CHANGE_THRESHOLD columns.\n * Useful for triggering a full UI re-render to clear ghost artifacts caused by Ink's\n * differential rendering.\n */\nexport function useSignificantResizeCallback(callback: () => void) {\n const callbackRef = useRef(callback)\n callbackRef.current = callback\n\n useEffect(() => {\n // Ensure the global resize listener is attached\n // This is needed because this hook might be called\n // before any component calls useTerminalSize()\n if (!isListenerAttached) {\n process.stdout.setMaxListeners(20)\n process.stdout.on('resize', updateAllListeners)\n isListenerAttached = true\n }\n\n const wrappedCallback = () => callbackRef.current()\n resizeCallbacks.add(wrappedCallback)\n\n return () => {\n resizeCallbacks.delete(wrappedCallback)\n }\n }, [])\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,WAAW,UAAU,cAA2B;AAGzD,IAAI,aAAa;AAAA,EACf,SAAS,QAAQ,OAAO,WAAW;AAAA,EACnC,MAAM,QAAQ,OAAO,QAAQ;AAC/B;AAEA,MAAM,YAAY,oBAAI,IAAgB;AACtC,IAAI,qBAAqB;AACzB,IAAI,gBAAuC;AAG3C,MAAM,kBAAkB,oBAAI,IAAgB;AAI5C,MAAM,qBAAqB;AAI3B,MAAM,wBAAwB;AAG9B,IAAI,oBAAoB;AAGxB,IAAI,4BAA4B;AAChC,MAAM,qBAAqB;AAE3B,SAAS,qBAAqB;AAE5B,MAAI,eAAe;AACjB,iBAAa,aAAa;AAAA,EAC5B;AAGA,kBAAgB,WAAW,MAAM;AAC/B,UAAM,aAAa,QAAQ,OAAO,WAAW;AAC7C,UAAM,UAAU,QAAQ,OAAO,QAAQ;AAGvC,QAAI,WAAW,YAAY,cAAc,WAAW,SAAS,SAAS;AACpE,YAAM,aAAa,WAAW;AAI9B,YAAM,aAAa,KAAK,IAAI,aAAa,UAAU;AACnD,YAAM,sBAAsB,aAAa;AAEzC,mBAAa;AAAA,QACX,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AACA,gBAAU,QAAQ,cAAY,SAAS,CAAC;AAKxC,YAAM,MAAM,KAAK,IAAI;AACrB,YAAM,sBAAsB,MAAM;AAClC,YAAM,oBAAoB,sBAAsB;AAEhD,UAAI,uBAAuB,CAAC,qBAAqB,mBAAmB;AAClE,4BAAoB;AACpB,oCAA4B;AAC5B,wBAAgB,QAAQ,cAAY,SAAS,CAAC;AAE9C,mBAAW,MAAM;AACf,8BAAoB;AAAA,QACtB,GAAG,GAAG;AAAA,MACR;AAAA,IACF;AACA,oBAAgB;AAAA,EAClB,GAAG,kBAAkB;AACvB;AAEO,SAAS,kBAAkB;AAChC,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,UAAU;AAE3C,YAAU,MAAM;AAEd,UAAM,aAAa,MAAM,QAAQ,EAAE,GAAG,WAAW,CAAC;AAClD,cAAU,IAAI,UAAU;AAGxB,QAAI,CAAC,oBAAoB;AAEvB,cAAQ,OAAO,gBAAgB,EAAE;AACjC,cAAQ,OAAO,GAAG,UAAU,kBAAkB;AAC9C,2BAAqB;AAAA,IACvB;AAEA,WAAO,MAAM;AAEX,gBAAU,OAAO,UAAU;AAG3B,UAAI,UAAU,SAAS,KAAK,oBAAoB;AAC9C,gBAAQ,OAAO,IAAI,UAAU,kBAAkB;AAC/C,6BAAqB;AAErB,YAAI,eAAe;AACjB,uBAAa,aAAa;AAC1B,0BAAgB;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO;AACT;AASO,SAAS,0BAA0B,UAAsB;AAC9D,SAAO,6BAA6B,QAAQ;AAC9C;AAQO,SAAS,6BAA6B,UAAsB;AACjE,QAAM,cAAc,OAAO,QAAQ;AACnC,cAAY,UAAU;AAEtB,YAAU,MAAM;AAId,QAAI,CAAC,oBAAoB;AACvB,cAAQ,OAAO,gBAAgB,EAAE;AACjC,cAAQ,OAAO,GAAG,UAAU,kBAAkB;AAC9C,2BAAqB;AAAA,IACvB;AAEA,UAAM,kBAAkB,MAAM,YAAY,QAAQ;AAClD,oBAAgB,IAAI,eAAe;AAEnC,WAAO,MAAM;AACX,sBAAgB,OAAO,eAAe;AAAA,IACxC;AAAA,EACF,GAAG,CAAC,CAAC;AACP;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
getEssentialCommands,
|
|
13
13
|
getMinimalFallbackCommands
|
|
14
14
|
} from "../utils/commonUnixCommands.js";
|
|
15
|
+
import { listMCPResources } from "../services/mcpClient.js";
|
|
15
16
|
const INITIAL_STATE = {
|
|
16
17
|
suggestions: [],
|
|
17
18
|
selectedIndex: 0,
|
|
@@ -143,6 +144,15 @@ function useUnifiedCompletion({
|
|
|
143
144
|
// Use cursor position as end
|
|
144
145
|
};
|
|
145
146
|
}
|
|
147
|
+
if (word.startsWith("mcp:") || word.includes("mcp:")) {
|
|
148
|
+
const mcpPrefix = word.includes("mcp:") ? word.slice(word.indexOf("mcp:") + 4) : "";
|
|
149
|
+
return {
|
|
150
|
+
type: "mcp",
|
|
151
|
+
prefix: mcpPrefix,
|
|
152
|
+
startPos: start,
|
|
153
|
+
endPos: cursorOffset
|
|
154
|
+
};
|
|
155
|
+
}
|
|
146
156
|
return {
|
|
147
157
|
type: "file",
|
|
148
158
|
prefix: word,
|
|
@@ -356,6 +366,29 @@ function useUnifiedCompletion({
|
|
|
356
366
|
setModelSuggestions([]);
|
|
357
367
|
}
|
|
358
368
|
}, []);
|
|
369
|
+
const [mcpResourceSuggestions, setMcpResourceSuggestions] = useState([]);
|
|
370
|
+
useEffect(() => {
|
|
371
|
+
listMCPResources().then((resources) => {
|
|
372
|
+
const suggestions2 = resources.map((resource) => ({
|
|
373
|
+
value: resource.uri,
|
|
374
|
+
displayValue: `\u{1F50C} ${resource.name} :: ${resource.description || resource.uri}`,
|
|
375
|
+
type: "mcp-resource",
|
|
376
|
+
score: 80,
|
|
377
|
+
metadata: {
|
|
378
|
+
uri: resource.uri,
|
|
379
|
+
serverName: resource.serverName,
|
|
380
|
+
mimeType: resource.mimeType
|
|
381
|
+
}
|
|
382
|
+
}));
|
|
383
|
+
setMcpResourceSuggestions(suggestions2);
|
|
384
|
+
}).catch((error) => {
|
|
385
|
+
console.warn(
|
|
386
|
+
"[useUnifiedCompletion] MCP resources not available:",
|
|
387
|
+
error
|
|
388
|
+
);
|
|
389
|
+
setMcpResourceSuggestions([]);
|
|
390
|
+
});
|
|
391
|
+
}, []);
|
|
359
392
|
useEffect(() => {
|
|
360
393
|
getActiveAgents().then((agents) => {
|
|
361
394
|
const suggestions2 = agents.map((config) => {
|
|
@@ -583,11 +616,42 @@ function useUnifiedCompletion({
|
|
|
583
616
|
},
|
|
584
617
|
[agentSuggestions, modelSuggestions, calculateMatchScore]
|
|
585
618
|
);
|
|
619
|
+
const generateMcpResourceSuggestions = useCallback(
|
|
620
|
+
(prefix) => {
|
|
621
|
+
if (mcpResourceSuggestions.length === 0) {
|
|
622
|
+
return [
|
|
623
|
+
{
|
|
624
|
+
value: "",
|
|
625
|
+
displayValue: "\u26A0\uFE0F No MCP resources available",
|
|
626
|
+
type: "mcp-resource",
|
|
627
|
+
score: 0,
|
|
628
|
+
metadata: { isPlaceholder: true }
|
|
629
|
+
}
|
|
630
|
+
];
|
|
631
|
+
}
|
|
632
|
+
if (!prefix) {
|
|
633
|
+
return mcpResourceSuggestions;
|
|
634
|
+
}
|
|
635
|
+
const lowerPrefix = prefix.toLowerCase();
|
|
636
|
+
return mcpResourceSuggestions.filter((s) => {
|
|
637
|
+
const uri = s.value.toLowerCase();
|
|
638
|
+
const name = s.metadata?.uri?.toLowerCase() || "";
|
|
639
|
+
const server = s.metadata?.serverName?.toLowerCase() || "";
|
|
640
|
+
return uri.includes(lowerPrefix) || name.includes(lowerPrefix) || server.includes(lowerPrefix);
|
|
641
|
+
}).map((s) => ({
|
|
642
|
+
...s,
|
|
643
|
+
score: s.value.toLowerCase().startsWith(lowerPrefix) ? 100 : 80
|
|
644
|
+
})).sort((a, b) => b.score - a.score);
|
|
645
|
+
},
|
|
646
|
+
[mcpResourceSuggestions]
|
|
647
|
+
);
|
|
586
648
|
const generateSuggestions = useCallback(
|
|
587
649
|
(context) => {
|
|
588
650
|
switch (context.type) {
|
|
589
651
|
case "command":
|
|
590
652
|
return generateCommandSuggestions(context.prefix);
|
|
653
|
+
case "mcp":
|
|
654
|
+
return generateMcpResourceSuggestions(context.prefix);
|
|
591
655
|
case "agent": {
|
|
592
656
|
const mentionSuggestions = generateMentionSuggestions(context.prefix);
|
|
593
657
|
const fileSuggestions = generateFileSuggestions(context.prefix, true);
|
|
@@ -653,6 +717,7 @@ function useUnifiedCompletion({
|
|
|
653
717
|
},
|
|
654
718
|
[
|
|
655
719
|
generateCommandSuggestions,
|
|
720
|
+
generateMcpResourceSuggestions,
|
|
656
721
|
generateMentionSuggestions,
|
|
657
722
|
generateFileSuggestions,
|
|
658
723
|
generateUnixCommandSuggestions,
|
|
@@ -664,6 +729,8 @@ function useUnifiedCompletion({
|
|
|
664
729
|
let completion;
|
|
665
730
|
if (context.type === "command") {
|
|
666
731
|
completion = `/${suggestion.value} `;
|
|
732
|
+
} else if (context.type === "mcp") {
|
|
733
|
+
completion = `mcp:${suggestion.value} `;
|
|
667
734
|
} else if (context.type === "agent") {
|
|
668
735
|
if (suggestion.type === "agent") {
|
|
669
736
|
completion = `@${suggestion.value} `;
|
|
@@ -971,6 +1038,8 @@ function useUnifiedCompletion({
|
|
|
971
1038
|
return true;
|
|
972
1039
|
case "agent":
|
|
973
1040
|
return true;
|
|
1041
|
+
case "mcp":
|
|
1042
|
+
return true;
|
|
974
1043
|
case "file":
|
|
975
1044
|
const prefix = context.prefix;
|
|
976
1045
|
if (prefix.startsWith("./") || prefix.startsWith("../") || prefix.startsWith("/") || prefix.startsWith("~") || prefix.includes("/")) {
|