@umsai/ums-code 0.1.4-v2 → 0.3.0-v2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/package.json +11 -3
- package/dist/src/config/config.d.ts +6 -0
- package/dist/src/config/config.js +102 -11
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/settings.d.ts +5 -0
- package/dist/src/config/settings.js +15 -1
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +75 -17
- package/dist/src/config/settingsSchema.js +57 -17
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/webSearch.d.ts +35 -0
- package/dist/src/config/webSearch.js +87 -0
- package/dist/src/config/webSearch.js.map +1 -0
- package/dist/src/core/auth.d.ts +1 -1
- package/dist/src/core/auth.js +19 -3
- package/dist/src/core/auth.js.map +1 -1
- package/dist/src/core/initializer.js +13 -2
- package/dist/src/core/initializer.js.map +1 -1
- package/dist/src/core/theme.js +4 -1
- package/dist/src/core/theme.js.map +1 -1
- package/dist/src/gemini.d.ts +1 -1
- package/dist/src/gemini.js +53 -44
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +117 -0
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/i18n/index.d.ts +18 -0
- package/dist/src/i18n/index.js +184 -0
- package/dist/src/i18n/index.js.map +1 -0
- package/dist/src/i18n/locales/en.js +1129 -0
- package/dist/src/i18n/locales/zh.js +1052 -0
- package/dist/src/nonInteractive/control/ControlContext.d.ts +63 -0
- package/dist/src/nonInteractive/control/ControlContext.js +31 -0
- package/dist/src/nonInteractive/control/ControlContext.js.map +1 -0
- package/dist/src/nonInteractive/control/ControlDispatcher.d.ts +86 -0
- package/dist/src/nonInteractive/control/ControlDispatcher.js +238 -0
- package/dist/src/nonInteractive/control/ControlDispatcher.js.map +1 -0
- package/dist/src/nonInteractive/control/ControlDispatcher.test.d.ts +6 -0
- package/dist/src/nonInteractive/control/ControlDispatcher.test.js +549 -0
- package/dist/src/nonInteractive/control/ControlDispatcher.test.js.map +1 -0
- package/dist/src/nonInteractive/control/ControlService.d.ts +78 -0
- package/dist/src/nonInteractive/control/ControlService.js +154 -0
- package/dist/src/nonInteractive/control/ControlService.js.map +1 -0
- package/dist/src/nonInteractive/control/controllers/baseController.d.ts +50 -0
- package/dist/src/nonInteractive/control/controllers/baseController.js +102 -0
- package/dist/src/nonInteractive/control/controllers/baseController.js.map +1 -0
- package/dist/src/nonInteractive/control/controllers/hookController.d.ts +25 -0
- package/dist/src/nonInteractive/control/controllers/hookController.js +42 -0
- package/dist/src/nonInteractive/control/controllers/hookController.js.map +1 -0
- package/dist/src/nonInteractive/control/controllers/mcpController.d.ts +42 -0
- package/dist/src/nonInteractive/control/controllers/mcpController.js +205 -0
- package/dist/src/nonInteractive/control/controllers/mcpController.js.map +1 -0
- package/dist/src/nonInteractive/control/controllers/permissionController.d.ts +78 -0
- package/dist/src/nonInteractive/control/controllers/permissionController.js +358 -0
- package/dist/src/nonInteractive/control/controllers/permissionController.js.map +1 -0
- package/dist/src/nonInteractive/control/controllers/systemController.d.ts +56 -0
- package/dist/src/nonInteractive/control/controllers/systemController.js +166 -0
- package/dist/src/nonInteractive/control/controllers/systemController.js.map +1 -0
- package/dist/src/nonInteractive/control/types/serviceAPIs.d.ts +120 -0
- package/dist/src/nonInteractive/control/types/serviceAPIs.js +7 -0
- package/dist/src/nonInteractive/control/types/serviceAPIs.js.map +1 -0
- package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.d.ts +446 -0
- package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.js +891 -0
- package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.js.map +1 -0
- package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.test.d.ts +6 -0
- package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.test.js +1197 -0
- package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.test.js.map +1 -0
- package/dist/src/nonInteractive/io/JsonOutputAdapter.d.ts +29 -0
- package/dist/src/nonInteractive/io/JsonOutputAdapter.js +56 -0
- package/dist/src/nonInteractive/io/JsonOutputAdapter.js.map +1 -0
- package/dist/src/nonInteractive/io/JsonOutputAdapter.test.d.ts +6 -0
- package/dist/src/nonInteractive/io/JsonOutputAdapter.test.js +624 -0
- package/dist/src/nonInteractive/io/JsonOutputAdapter.test.js.map +1 -0
- package/dist/src/nonInteractive/io/StreamJsonInputReader.d.ts +16 -0
- package/dist/src/nonInteractive/io/StreamJsonInputReader.js +54 -0
- package/dist/src/nonInteractive/io/StreamJsonInputReader.js.map +1 -0
- package/dist/src/nonInteractive/io/StreamJsonInputReader.test.d.ts +6 -0
- package/dist/src/nonInteractive/io/StreamJsonInputReader.test.js +178 -0
- package/dist/src/nonInteractive/io/StreamJsonInputReader.test.js.map +1 -0
- package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.d.ts +69 -0
- package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.js +185 -0
- package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.js.map +1 -0
- package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.test.d.ts +6 -0
- package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.test.js +808 -0
- package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.test.js.map +1 -0
- package/dist/src/nonInteractive/session.d.ts +23 -0
- package/dist/src/nonInteractive/session.js +549 -0
- package/dist/src/nonInteractive/session.js.map +1 -0
- package/dist/src/nonInteractive/session.test.d.ts +6 -0
- package/dist/src/nonInteractive/session.test.js +407 -0
- package/dist/src/nonInteractive/session.test.js.map +1 -0
- package/dist/src/nonInteractive/types.d.ts +344 -0
- package/dist/src/nonInteractive/types.js +78 -0
- package/dist/src/nonInteractive/types.js.map +1 -0
- package/dist/src/nonInteractiveCli.d.ts +21 -1
- package/dist/src/nonInteractiveCli.js +204 -57
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCliCommands.d.ts +19 -1
- package/dist/src/nonInteractiveCliCommands.js +69 -4
- package/dist/src/nonInteractiveCliCommands.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +2 -0
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/FileCommandLoader.js +4 -1
- package/dist/src/services/FileCommandLoader.js.map +1 -1
- package/dist/src/ui/AppContainer.js +41 -38
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.d.ts +1 -13
- package/dist/src/ui/auth/AuthDialog.js +41 -111
- package/dist/src/ui/auth/AuthDialog.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.test.js +49 -19
- package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
- package/dist/src/ui/auth/AuthInProgress.js +2 -1
- package/dist/src/ui/auth/AuthInProgress.js.map +1 -1
- package/dist/src/ui/auth/useAuth.d.ts +9 -8
- package/dist/src/ui/auth/useAuth.js +135 -63
- package/dist/src/ui/auth/useAuth.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.js +7 -31
- package/dist/src/ui/commands/aboutCommand.js.map +1 -1
- package/dist/src/ui/commands/agentsCommand.js +10 -3
- package/dist/src/ui/commands/agentsCommand.js.map +1 -1
- package/dist/src/ui/commands/approvalModeCommand.js +8 -329
- package/dist/src/ui/commands/approvalModeCommand.js.map +1 -1
- package/dist/src/ui/commands/approvalModeCommand.test.js +19 -263
- package/dist/src/ui/commands/approvalModeCommand.test.js.map +1 -1
- package/dist/src/ui/commands/authCommand.js +4 -1
- package/dist/src/ui/commands/authCommand.js.map +1 -1
- package/dist/src/ui/commands/bugCommand.js +13 -47
- package/dist/src/ui/commands/bugCommand.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.js +51 -25
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.js +6 -3
- package/dist/src/ui/commands/clearCommand.js.map +1 -1
- package/dist/src/ui/commands/compressCommand.js +9 -4
- package/dist/src/ui/commands/compressCommand.js.map +1 -1
- package/dist/src/ui/commands/copyCommand.js +4 -1
- package/dist/src/ui/commands/copyCommand.js.map +1 -1
- package/dist/src/ui/commands/directoryCommand.js +30 -12
- package/dist/src/ui/commands/directoryCommand.js.map +1 -1
- package/dist/src/ui/commands/docsCommand.js +9 -3
- package/dist/src/ui/commands/docsCommand.js.map +1 -1
- package/dist/src/ui/commands/editorCommand.js +4 -1
- package/dist/src/ui/commands/editorCommand.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.js +10 -3
- package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
- package/dist/src/ui/commands/helpCommand.js +4 -1
- package/dist/src/ui/commands/helpCommand.js.map +1 -1
- package/dist/src/ui/commands/ideCommand.js +23 -7
- package/dist/src/ui/commands/ideCommand.js.map +1 -1
- package/dist/src/ui/commands/initCommand.js +5 -3
- package/dist/src/ui/commands/initCommand.js.map +1 -1
- package/dist/src/ui/commands/languageCommand.d.ts +7 -0
- package/dist/src/ui/commands/languageCommand.js +386 -0
- package/dist/src/ui/commands/languageCommand.js.map +1 -0
- package/dist/src/ui/commands/mcpCommand.js +38 -18
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.js +54 -25
- package/dist/src/ui/commands/memoryCommand.js.map +1 -1
- package/dist/src/ui/commands/modelCommand.js +9 -4
- package/dist/src/ui/commands/modelCommand.js.map +1 -1
- package/dist/src/ui/commands/permissionsCommand.js +4 -1
- package/dist/src/ui/commands/permissionsCommand.js.map +1 -1
- package/dist/src/ui/commands/quitCommand.js +7 -2
- package/dist/src/ui/commands/quitCommand.js.map +1 -1
- package/dist/src/ui/commands/settingsCommand.js +4 -1
- package/dist/src/ui/commands/settingsCommand.js.map +1 -1
- package/dist/src/ui/commands/setupGithubCommand.js +4 -1
- package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
- package/dist/src/ui/commands/statsCommand.js +11 -4
- package/dist/src/ui/commands/statsCommand.js.map +1 -1
- package/dist/src/ui/commands/summaryCommand.js +15 -8
- package/dist/src/ui/commands/summaryCommand.js.map +1 -1
- package/dist/src/ui/commands/terminalSetupCommand.js +9 -3
- package/dist/src/ui/commands/terminalSetupCommand.js.map +1 -1
- package/dist/src/ui/commands/themeCommand.js +4 -1
- package/dist/src/ui/commands/themeCommand.js.map +1 -1
- package/dist/src/ui/commands/toolsCommand.js +5 -2
- package/dist/src/ui/commands/toolsCommand.js.map +1 -1
- package/dist/src/ui/commands/types.d.ts +1 -1
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/commands/vimCommand.js +4 -1
- package/dist/src/ui/commands/vimCommand.js.map +1 -1
- package/dist/src/ui/components/AboutBox.d.ts +2 -9
- package/dist/src/ui/components/AboutBox.js +6 -2
- package/dist/src/ui/components/AboutBox.js.map +1 -1
- package/dist/src/ui/components/ApprovalModeDialog.d.ts +21 -0
- package/dist/src/ui/components/ApprovalModeDialog.js +68 -0
- package/dist/src/ui/components/ApprovalModeDialog.js.map +1 -0
- package/dist/src/ui/components/AutoAcceptIndicator.js +7 -6
- package/dist/src/ui/components/AutoAcceptIndicator.js.map +1 -1
- package/dist/src/ui/components/Composer.js +4 -3
- package/dist/src/ui/components/Composer.js.map +1 -1
- package/dist/src/ui/components/ConfigInitDisplay.js +7 -3
- package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.js +33 -9
- package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/DialogManager.js +60 -13
- package/dist/src/ui/components/DialogManager.js.map +1 -1
- package/dist/src/ui/components/EditorSettingsDialog.js +8 -3
- package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
- package/dist/src/ui/components/Help.js +14 -4
- package/dist/src/ui/components/Help.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.test.js +17 -8
- package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +10 -136
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.js +6 -1
- package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.js +2 -1
- package/dist/src/ui/components/ModelDialog.js.map +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.js +6 -5
- package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
- package/dist/src/ui/components/OpenAIKeyPrompt.d.ts +19 -1
- package/dist/src/ui/components/OpenAIKeyPrompt.js +38 -6
- package/dist/src/ui/components/OpenAIKeyPrompt.js.map +1 -1
- package/dist/src/ui/components/ProQuotaDialog.js +5 -4
- package/dist/src/ui/components/ProQuotaDialog.js.map +1 -1
- package/dist/src/ui/components/QuitConfirmationDialog.js +6 -5
- package/dist/src/ui/components/QuitConfirmationDialog.js.map +1 -1
- package/dist/src/ui/components/QwenOAuthProgress.d.ts +2 -2
- package/dist/src/ui/components/QwenOAuthProgress.js +14 -7
- package/dist/src/ui/components/QwenOAuthProgress.js.map +1 -1
- package/dist/src/ui/components/QwenOAuthProgress.test.js +1 -0
- package/dist/src/ui/components/QwenOAuthProgress.test.js.map +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.js +2 -1
- package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.d.ts +3 -1
- package/dist/src/ui/components/SettingsDialog.js +35 -12
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +5 -4
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js +5 -4
- package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.js +5 -4
- package/dist/src/ui/components/StatsDisplay.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.js +5 -2
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/ToolStatsDisplay.js +3 -2
- package/dist/src/ui/components/ToolStatsDisplay.js.map +1 -1
- package/dist/src/ui/components/WelcomeBackDialog.js +13 -4
- package/dist/src/ui/components/WelcomeBackDialog.js.map +1 -1
- package/dist/src/ui/components/messages/CompressionMessage.js +10 -6
- package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +40 -29
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/shared/BaseSelectionList.test.js +1 -1
- package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
- package/dist/src/ui/components/shared/ScopeSelector.js +3 -1
- package/dist/src/ui/components/shared/ScopeSelector.js.map +1 -1
- package/dist/src/ui/components/subagents/create/AgentCreationWizard.js +39 -26
- package/dist/src/ui/components/subagents/create/AgentCreationWizard.js.map +1 -1
- package/dist/src/ui/components/subagents/create/CreationSummary.js +20 -10
- package/dist/src/ui/components/subagents/create/CreationSummary.js.map +1 -1
- package/dist/src/ui/components/subagents/create/DescriptionInput.js +6 -3
- package/dist/src/ui/components/subagents/create/DescriptionInput.js.map +1 -1
- package/dist/src/ui/components/subagents/create/GenerationMethodSelector.js +7 -2
- package/dist/src/ui/components/subagents/create/GenerationMethodSelector.js.map +1 -1
- package/dist/src/ui/components/subagents/create/LocationSelector.js +7 -2
- package/dist/src/ui/components/subagents/create/LocationSelector.js.map +1 -1
- package/dist/src/ui/components/subagents/create/ToolSelector.js +8 -7
- package/dist/src/ui/components/subagents/create/ToolSelector.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/ActionSelectionStep.js +29 -4
- package/dist/src/ui/components/subagents/manage/ActionSelectionStep.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/AgentDeleteStep.js +6 -3
- package/dist/src/ui/components/subagents/manage/AgentDeleteStep.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/AgentEditStep.js +14 -5
- package/dist/src/ui/components/subagents/manage/AgentEditStep.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js +13 -6
- package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/AgentViewerStep.js +3 -2
- package/dist/src/ui/components/subagents/manage/AgentViewerStep.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/AgentsManagerDialog.js +14 -13
- package/dist/src/ui/components/subagents/manage/AgentsManagerDialog.js.map +1 -1
- package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js +8 -8
- package/dist/src/ui/components/views/McpStatus.js +28 -15
- package/dist/src/ui/components/views/McpStatus.js.map +1 -1
- package/dist/src/ui/components/views/ToolsList.js +2 -1
- package/dist/src/ui/components/views/ToolsList.js.map +1 -1
- package/dist/src/ui/contexts/UIActionsContext.d.ts +5 -4
- package/dist/src/ui/contexts/UIActionsContext.js +1 -0
- package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +5 -7
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/editors/editorSettingsManager.js +1 -0
- package/dist/src/ui/editors/editorSettingsManager.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +2 -0
- package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +1 -0
- package/dist/src/ui/hooks/slashCommandProcessor.js +4 -7
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useApprovalModeCommand.d.ts +14 -0
- package/dist/src/ui/hooks/useApprovalModeCommand.js +33 -0
- package/dist/src/ui/hooks/useApprovalModeCommand.js.map +1 -0
- package/dist/src/ui/hooks/useAttentionNotifications.d.ts +14 -0
- package/dist/src/ui/hooks/useAttentionNotifications.js +41 -0
- package/dist/src/ui/hooks/useAttentionNotifications.js.map +1 -0
- package/dist/src/ui/hooks/useAttentionNotifications.test.d.ts +6 -0
- package/dist/src/ui/hooks/useAttentionNotifications.test.js +113 -0
- package/dist/src/ui/hooks/useAttentionNotifications.test.js.map +1 -0
- package/dist/src/ui/hooks/useCommandCompletion.d.ts +1 -4
- package/dist/src/ui/hooks/useCommandCompletion.js +1 -23
- package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useDialogClose.d.ts +6 -3
- package/dist/src/ui/hooks/useDialogClose.js +5 -0
- package/dist/src/ui/hooks/useDialogClose.js.map +1 -1
- package/dist/src/ui/hooks/useGitBranchName.js +6 -3
- package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
- package/dist/src/ui/hooks/useGitBranchName.test.js +39 -21
- package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
- package/dist/src/ui/hooks/useInitializationAuthError.d.ts +22 -0
- package/dist/src/ui/hooks/useInitializationAuthError.js +40 -0
- package/dist/src/ui/hooks/useInitializationAuthError.js.map +1 -0
- package/dist/src/ui/hooks/usePhraseCycler.js +6 -4
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/src/ui/hooks/useQwenAuth.d.ts +7 -12
- package/dist/src/ui/hooks/useQwenAuth.js +4 -8
- package/dist/src/ui/hooks/useQwenAuth.js.map +1 -1
- package/dist/src/ui/hooks/useQwenAuth.test.js +72 -98
- package/dist/src/ui/hooks/useQwenAuth.test.js.map +1 -1
- package/dist/src/ui/hooks/useThemeCommand.js +8 -3
- package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
- package/dist/src/ui/models/availableModels.js +7 -2
- package/dist/src/ui/models/availableModels.js.map +1 -1
- package/dist/src/ui/types.d.ts +32 -14
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/clipboardUtils.js +3 -3
- package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.d.ts +16 -0
- package/dist/src/ui/utils/commandUtils.js +16 -1
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.test.js +5 -2
- package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
- package/dist/src/ui/utils/terminalSetup.js +45 -18
- package/dist/src/ui/utils/terminalSetup.js.map +1 -1
- package/dist/src/utils/attentionNotification.d.ts +20 -0
- package/dist/src/utils/attentionNotification.js +34 -0
- package/dist/src/utils/attentionNotification.js.map +1 -0
- package/dist/src/utils/attentionNotification.test.d.ts +6 -0
- package/dist/src/utils/attentionNotification.test.js +46 -0
- package/dist/src/utils/attentionNotification.test.js.map +1 -0
- package/dist/src/utils/dialogScopeUtils.d.ts +0 -4
- package/dist/src/utils/dialogScopeUtils.js +5 -2
- package/dist/src/utils/dialogScopeUtils.js.map +1 -1
- package/dist/src/utils/errors.d.ts +10 -2
- package/dist/src/utils/errors.js +14 -13
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/errors.test.js +91 -54
- package/dist/src/utils/errors.test.js.map +1 -1
- package/dist/src/utils/nonInteractiveHelpers.d.ts +88 -0
- package/dist/src/utils/nonInteractiveHelpers.js +470 -0
- package/dist/src/utils/nonInteractiveHelpers.js.map +1 -0
- package/dist/src/utils/nonInteractiveHelpers.test.d.ts +6 -0
- package/dist/src/utils/nonInteractiveHelpers.test.js +945 -0
- package/dist/src/utils/nonInteractiveHelpers.test.js.map +1 -0
- package/dist/src/utils/sandbox.js +1 -1
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/src/utils/settingsUtils.js +7 -1
- package/dist/src/utils/settingsUtils.js.map +1 -1
- package/dist/src/utils/systemInfo.d.ts +66 -0
- package/dist/src/utils/systemInfo.js +125 -0
- package/dist/src/utils/systemInfo.js.map +1 -0
- package/dist/src/utils/systemInfo.test.d.ts +6 -0
- package/dist/src/utils/systemInfo.test.js +259 -0
- package/dist/src/utils/systemInfo.test.js.map +1 -0
- package/dist/src/utils/systemInfoFields.d.ts +22 -0
- package/dist/src/utils/systemInfoFields.js +96 -0
- package/dist/src/utils/systemInfoFields.js.map +1 -0
- package/dist/src/utils/userStartupWarnings.js +9 -4
- package/dist/src/utils/userStartupWarnings.js.map +1 -1
- package/dist/src/validateNonInterActiveAuth.js +27 -6
- package/dist/src/validateNonInterActiveAuth.js.map +1 -1
- package/dist/src/zed-integration/acp.js +1 -2
- package/dist/src/zed-integration/acp.js.map +1 -1
- package/dist/src/zed-integration/schema.d.ts +506 -264
- package/dist/src/zed-integration/schema.js +13 -0
- package/dist/src/zed-integration/schema.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.js +376 -32
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -4
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Control Context
|
|
8
|
+
*
|
|
9
|
+
* Layer 1 of the control plane architecture. Provides shared, session-scoped
|
|
10
|
+
* state for all controllers and services, eliminating the need for prop
|
|
11
|
+
* drilling. Mutable fields are intentionally exposed so controllers can track
|
|
12
|
+
* runtime state (e.g. permission mode, active MCP clients).
|
|
13
|
+
*/
|
|
14
|
+
import type { Config, MCPServerConfig } from '@umsai/ums-code-core';
|
|
15
|
+
import type { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
16
|
+
import type { StreamJsonOutputAdapter } from '../io/StreamJsonOutputAdapter.js';
|
|
17
|
+
import type { PermissionMode } from '../types.js';
|
|
18
|
+
/**
|
|
19
|
+
* Control Context interface
|
|
20
|
+
*
|
|
21
|
+
* Provides shared access to session-scoped resources and mutable state
|
|
22
|
+
* for all controllers across both ControlDispatcher (protocol routing) and
|
|
23
|
+
* ControlService (programmatic API).
|
|
24
|
+
*/
|
|
25
|
+
export interface IControlContext {
|
|
26
|
+
readonly config: Config;
|
|
27
|
+
readonly streamJson: StreamJsonOutputAdapter;
|
|
28
|
+
readonly sessionId: string;
|
|
29
|
+
readonly abortSignal: AbortSignal;
|
|
30
|
+
readonly debugMode: boolean;
|
|
31
|
+
permissionMode: PermissionMode;
|
|
32
|
+
sdkMcpServers: Set<string>;
|
|
33
|
+
mcpClients: Map<string, {
|
|
34
|
+
client: Client;
|
|
35
|
+
config: MCPServerConfig;
|
|
36
|
+
}>;
|
|
37
|
+
onInterrupt?: () => void;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Control Context implementation
|
|
41
|
+
*/
|
|
42
|
+
export declare class ControlContext implements IControlContext {
|
|
43
|
+
readonly config: Config;
|
|
44
|
+
readonly streamJson: StreamJsonOutputAdapter;
|
|
45
|
+
readonly sessionId: string;
|
|
46
|
+
readonly abortSignal: AbortSignal;
|
|
47
|
+
readonly debugMode: boolean;
|
|
48
|
+
permissionMode: PermissionMode;
|
|
49
|
+
sdkMcpServers: Set<string>;
|
|
50
|
+
mcpClients: Map<string, {
|
|
51
|
+
client: Client;
|
|
52
|
+
config: MCPServerConfig;
|
|
53
|
+
}>;
|
|
54
|
+
onInterrupt?: () => void;
|
|
55
|
+
constructor(options: {
|
|
56
|
+
config: Config;
|
|
57
|
+
streamJson: StreamJsonOutputAdapter;
|
|
58
|
+
sessionId: string;
|
|
59
|
+
abortSignal: AbortSignal;
|
|
60
|
+
permissionMode?: PermissionMode;
|
|
61
|
+
onInterrupt?: () => void;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Control Context implementation
|
|
8
|
+
*/
|
|
9
|
+
export class ControlContext {
|
|
10
|
+
config;
|
|
11
|
+
streamJson;
|
|
12
|
+
sessionId;
|
|
13
|
+
abortSignal;
|
|
14
|
+
debugMode;
|
|
15
|
+
permissionMode;
|
|
16
|
+
sdkMcpServers;
|
|
17
|
+
mcpClients;
|
|
18
|
+
onInterrupt;
|
|
19
|
+
constructor(options) {
|
|
20
|
+
this.config = options.config;
|
|
21
|
+
this.streamJson = options.streamJson;
|
|
22
|
+
this.sessionId = options.sessionId;
|
|
23
|
+
this.abortSignal = options.abortSignal;
|
|
24
|
+
this.debugMode = options.config.getDebugMode();
|
|
25
|
+
this.permissionMode = options.permissionMode || 'default';
|
|
26
|
+
this.sdkMcpServers = new Set();
|
|
27
|
+
this.mcpClients = new Map();
|
|
28
|
+
this.onInterrupt = options.onInterrupt;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=ControlContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlContext.js","sourceRoot":"","sources":["../../../../src/nonInteractive/control/ControlContext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqCH;;GAEG;AACH,MAAM,OAAO,cAAc;IAChB,MAAM,CAAS;IACf,UAAU,CAA0B;IACpC,SAAS,CAAS;IAClB,WAAW,CAAc;IACzB,SAAS,CAAU;IAE5B,cAAc,CAAiB;IAC/B,aAAa,CAAc;IAC3B,UAAU,CAA2D;IAErE,WAAW,CAAc;IAEzB,YAAY,OAOX;QACC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,SAAS,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Control Dispatcher
|
|
8
|
+
*
|
|
9
|
+
* Layer 2 of the control plane architecture. Routes control requests between
|
|
10
|
+
* SDK and CLI to appropriate controllers, manages pending request registries,
|
|
11
|
+
* and handles cancellation/cleanup. Application code MUST NOT depend on
|
|
12
|
+
* controller instances exposed by this class; instead, use ControlService,
|
|
13
|
+
* which wraps these controllers with a stable programmatic API.
|
|
14
|
+
*
|
|
15
|
+
* Controllers:
|
|
16
|
+
* - SystemController: initialize, interrupt, set_model, supported_commands
|
|
17
|
+
* - PermissionController: can_use_tool, set_permission_mode
|
|
18
|
+
* - MCPController: mcp_message, mcp_server_status
|
|
19
|
+
* - HookController: hook_callback
|
|
20
|
+
*
|
|
21
|
+
* Note: Control request types are centrally defined in the ControlRequestType
|
|
22
|
+
* enum in packages/sdk/typescript/src/types/controlRequests.ts
|
|
23
|
+
*/
|
|
24
|
+
import type { IControlContext } from './ControlContext.js';
|
|
25
|
+
import type { IPendingRequestRegistry } from './controllers/baseController.js';
|
|
26
|
+
import { SystemController } from './controllers/systemController.js';
|
|
27
|
+
import type { CLIControlRequest, CLIControlResponse, ControlResponse, ControlRequestPayload } from '../types.js';
|
|
28
|
+
/**
|
|
29
|
+
* Central coordinator for control plane communication.
|
|
30
|
+
* Routes requests to controllers and manages request lifecycle.
|
|
31
|
+
*/
|
|
32
|
+
export declare class ControlDispatcher implements IPendingRequestRegistry {
|
|
33
|
+
private context;
|
|
34
|
+
readonly systemController: SystemController;
|
|
35
|
+
private pendingIncomingRequests;
|
|
36
|
+
private pendingOutgoingRequests;
|
|
37
|
+
constructor(context: IControlContext);
|
|
38
|
+
/**
|
|
39
|
+
* Routes an incoming request to the appropriate controller and sends response
|
|
40
|
+
*/
|
|
41
|
+
dispatch(request: CLIControlRequest): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Processes response from SDK for an outgoing request
|
|
44
|
+
*/
|
|
45
|
+
handleControlResponse(response: CLIControlResponse): void;
|
|
46
|
+
/**
|
|
47
|
+
* Sends a control request to SDK and waits for response
|
|
48
|
+
*/
|
|
49
|
+
sendControlRequest(payload: ControlRequestPayload, timeoutMs?: number): Promise<ControlResponse>;
|
|
50
|
+
/**
|
|
51
|
+
* Cancels a specific request or all pending requests
|
|
52
|
+
*/
|
|
53
|
+
handleCancel(requestId?: string): void;
|
|
54
|
+
/**
|
|
55
|
+
* Stops all pending requests and cleans up all controllers
|
|
56
|
+
*/
|
|
57
|
+
shutdown(): void;
|
|
58
|
+
/**
|
|
59
|
+
* Registers an incoming request in the pending registry
|
|
60
|
+
*/
|
|
61
|
+
registerIncomingRequest(requestId: string, controller: string, abortController: AbortController, timeoutId: NodeJS.Timeout): void;
|
|
62
|
+
/**
|
|
63
|
+
* Removes an incoming request from the pending registry
|
|
64
|
+
*/
|
|
65
|
+
deregisterIncomingRequest(requestId: string): void;
|
|
66
|
+
/**
|
|
67
|
+
* Registers an outgoing request in the pending registry
|
|
68
|
+
*/
|
|
69
|
+
registerOutgoingRequest(requestId: string, controller: string, resolve: (response: ControlResponse) => void, reject: (error: Error) => void, timeoutId: NodeJS.Timeout): void;
|
|
70
|
+
/**
|
|
71
|
+
* Removes an outgoing request from the pending registry
|
|
72
|
+
*/
|
|
73
|
+
deregisterOutgoingRequest(requestId: string): void;
|
|
74
|
+
/**
|
|
75
|
+
* Returns the controller that handles the given request subtype
|
|
76
|
+
*/
|
|
77
|
+
private getControllerForRequest;
|
|
78
|
+
/**
|
|
79
|
+
* Sends a success response back to SDK
|
|
80
|
+
*/
|
|
81
|
+
private sendSuccessResponse;
|
|
82
|
+
/**
|
|
83
|
+
* Sends an error response back to SDK
|
|
84
|
+
*/
|
|
85
|
+
private sendErrorResponse;
|
|
86
|
+
}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { SystemController } from './controllers/systemController.js';
|
|
7
|
+
/**
|
|
8
|
+
* Central coordinator for control plane communication.
|
|
9
|
+
* Routes requests to controllers and manages request lifecycle.
|
|
10
|
+
*/
|
|
11
|
+
export class ControlDispatcher {
|
|
12
|
+
context;
|
|
13
|
+
// Make controllers publicly accessible
|
|
14
|
+
systemController;
|
|
15
|
+
// readonly permissionController: PermissionController;
|
|
16
|
+
// readonly mcpController: MCPController;
|
|
17
|
+
// readonly hookController: HookController;
|
|
18
|
+
// Central pending request registries
|
|
19
|
+
pendingIncomingRequests = new Map();
|
|
20
|
+
pendingOutgoingRequests = new Map();
|
|
21
|
+
constructor(context) {
|
|
22
|
+
this.context = context;
|
|
23
|
+
// Create domain controllers with context and registry
|
|
24
|
+
this.systemController = new SystemController(context, this, 'SystemController');
|
|
25
|
+
// this.permissionController = new PermissionController(
|
|
26
|
+
// context,
|
|
27
|
+
// this,
|
|
28
|
+
// 'PermissionController',
|
|
29
|
+
// );
|
|
30
|
+
// this.mcpController = new MCPController(context, this, 'MCPController');
|
|
31
|
+
// this.hookController = new HookController(context, this, 'HookController');
|
|
32
|
+
// Listen for main abort signal
|
|
33
|
+
this.context.abortSignal.addEventListener('abort', () => {
|
|
34
|
+
this.shutdown();
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Routes an incoming request to the appropriate controller and sends response
|
|
39
|
+
*/
|
|
40
|
+
async dispatch(request) {
|
|
41
|
+
const { request_id, request: payload } = request;
|
|
42
|
+
try {
|
|
43
|
+
// Route to appropriate controller
|
|
44
|
+
const controller = this.getControllerForRequest(payload.subtype);
|
|
45
|
+
const response = await controller.handleRequest(payload, request_id);
|
|
46
|
+
// Send success response
|
|
47
|
+
this.sendSuccessResponse(request_id, response);
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
// Send error response
|
|
51
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
52
|
+
this.sendErrorResponse(request_id, errorMessage);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Processes response from SDK for an outgoing request
|
|
57
|
+
*/
|
|
58
|
+
handleControlResponse(response) {
|
|
59
|
+
const responsePayload = response.response;
|
|
60
|
+
const requestId = responsePayload.request_id;
|
|
61
|
+
const pending = this.pendingOutgoingRequests.get(requestId);
|
|
62
|
+
if (!pending) {
|
|
63
|
+
// No pending request found - may have timed out or been cancelled
|
|
64
|
+
if (this.context.debugMode) {
|
|
65
|
+
console.error(`[ControlDispatcher] No pending outgoing request for: ${requestId}`);
|
|
66
|
+
}
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
// Deregister
|
|
70
|
+
this.deregisterOutgoingRequest(requestId);
|
|
71
|
+
// Resolve or reject based on response type
|
|
72
|
+
if (responsePayload.subtype === 'success') {
|
|
73
|
+
pending.resolve(responsePayload);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
const errorMessage = typeof responsePayload.error === 'string'
|
|
77
|
+
? responsePayload.error
|
|
78
|
+
: (responsePayload.error?.message ?? 'Unknown error');
|
|
79
|
+
pending.reject(new Error(errorMessage));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Sends a control request to SDK and waits for response
|
|
84
|
+
*/
|
|
85
|
+
async sendControlRequest(payload, timeoutMs) {
|
|
86
|
+
// Delegate to system controller (or any controller, they all have the same method)
|
|
87
|
+
return this.systemController.sendControlRequest(payload, timeoutMs);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Cancels a specific request or all pending requests
|
|
91
|
+
*/
|
|
92
|
+
handleCancel(requestId) {
|
|
93
|
+
if (requestId) {
|
|
94
|
+
// Cancel specific incoming request
|
|
95
|
+
const pending = this.pendingIncomingRequests.get(requestId);
|
|
96
|
+
if (pending) {
|
|
97
|
+
pending.abortController.abort();
|
|
98
|
+
this.deregisterIncomingRequest(requestId);
|
|
99
|
+
this.sendErrorResponse(requestId, 'Request cancelled');
|
|
100
|
+
if (this.context.debugMode) {
|
|
101
|
+
console.error(`[ControlDispatcher] Cancelled incoming request: ${requestId}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
// Cancel ALL pending incoming requests
|
|
107
|
+
const requestIds = Array.from(this.pendingIncomingRequests.keys());
|
|
108
|
+
for (const id of requestIds) {
|
|
109
|
+
const pending = this.pendingIncomingRequests.get(id);
|
|
110
|
+
if (pending) {
|
|
111
|
+
pending.abortController.abort();
|
|
112
|
+
this.deregisterIncomingRequest(id);
|
|
113
|
+
this.sendErrorResponse(id, 'All requests cancelled');
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (this.context.debugMode) {
|
|
117
|
+
console.error(`[ControlDispatcher] Cancelled all ${requestIds.length} pending incoming requests`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Stops all pending requests and cleans up all controllers
|
|
123
|
+
*/
|
|
124
|
+
shutdown() {
|
|
125
|
+
if (this.context.debugMode) {
|
|
126
|
+
console.error('[ControlDispatcher] Shutting down');
|
|
127
|
+
}
|
|
128
|
+
// Cancel all incoming requests
|
|
129
|
+
for (const [_requestId, pending,] of this.pendingIncomingRequests.entries()) {
|
|
130
|
+
pending.abortController.abort();
|
|
131
|
+
clearTimeout(pending.timeoutId);
|
|
132
|
+
}
|
|
133
|
+
this.pendingIncomingRequests.clear();
|
|
134
|
+
// Cancel all outgoing requests
|
|
135
|
+
for (const [_requestId, pending,] of this.pendingOutgoingRequests.entries()) {
|
|
136
|
+
clearTimeout(pending.timeoutId);
|
|
137
|
+
pending.reject(new Error('Dispatcher shutdown'));
|
|
138
|
+
}
|
|
139
|
+
this.pendingOutgoingRequests.clear();
|
|
140
|
+
// Cleanup controllers (MCP controller will close all clients)
|
|
141
|
+
this.systemController.cleanup();
|
|
142
|
+
// this.permissionController.cleanup();
|
|
143
|
+
// this.mcpController.cleanup();
|
|
144
|
+
// this.hookController.cleanup();
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Registers an incoming request in the pending registry
|
|
148
|
+
*/
|
|
149
|
+
registerIncomingRequest(requestId, controller, abortController, timeoutId) {
|
|
150
|
+
this.pendingIncomingRequests.set(requestId, {
|
|
151
|
+
controller,
|
|
152
|
+
abortController,
|
|
153
|
+
timeoutId,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Removes an incoming request from the pending registry
|
|
158
|
+
*/
|
|
159
|
+
deregisterIncomingRequest(requestId) {
|
|
160
|
+
const pending = this.pendingIncomingRequests.get(requestId);
|
|
161
|
+
if (pending) {
|
|
162
|
+
clearTimeout(pending.timeoutId);
|
|
163
|
+
this.pendingIncomingRequests.delete(requestId);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Registers an outgoing request in the pending registry
|
|
168
|
+
*/
|
|
169
|
+
registerOutgoingRequest(requestId, controller, resolve, reject, timeoutId) {
|
|
170
|
+
this.pendingOutgoingRequests.set(requestId, {
|
|
171
|
+
controller,
|
|
172
|
+
resolve,
|
|
173
|
+
reject,
|
|
174
|
+
timeoutId,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Removes an outgoing request from the pending registry
|
|
179
|
+
*/
|
|
180
|
+
deregisterOutgoingRequest(requestId) {
|
|
181
|
+
const pending = this.pendingOutgoingRequests.get(requestId);
|
|
182
|
+
if (pending) {
|
|
183
|
+
clearTimeout(pending.timeoutId);
|
|
184
|
+
this.pendingOutgoingRequests.delete(requestId);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Returns the controller that handles the given request subtype
|
|
189
|
+
*/
|
|
190
|
+
getControllerForRequest(subtype) {
|
|
191
|
+
switch (subtype) {
|
|
192
|
+
case 'initialize':
|
|
193
|
+
case 'interrupt':
|
|
194
|
+
case 'set_model':
|
|
195
|
+
case 'supported_commands':
|
|
196
|
+
return this.systemController;
|
|
197
|
+
// case 'can_use_tool':
|
|
198
|
+
// case 'set_permission_mode':
|
|
199
|
+
// return this.permissionController;
|
|
200
|
+
// case 'mcp_message':
|
|
201
|
+
// case 'mcp_server_status':
|
|
202
|
+
// return this.mcpController;
|
|
203
|
+
// case 'hook_callback':
|
|
204
|
+
// return this.hookController;
|
|
205
|
+
default:
|
|
206
|
+
throw new Error(`Unknown control request subtype: ${subtype}`);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Sends a success response back to SDK
|
|
211
|
+
*/
|
|
212
|
+
sendSuccessResponse(requestId, response) {
|
|
213
|
+
const controlResponse = {
|
|
214
|
+
type: 'control_response',
|
|
215
|
+
response: {
|
|
216
|
+
subtype: 'success',
|
|
217
|
+
request_id: requestId,
|
|
218
|
+
response,
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
this.context.streamJson.send(controlResponse);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Sends an error response back to SDK
|
|
225
|
+
*/
|
|
226
|
+
sendErrorResponse(requestId, error) {
|
|
227
|
+
const controlResponse = {
|
|
228
|
+
type: 'control_response',
|
|
229
|
+
response: {
|
|
230
|
+
subtype: 'error',
|
|
231
|
+
request_id: requestId,
|
|
232
|
+
error,
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
this.context.streamJson.send(controlResponse);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
//# sourceMappingURL=ControlDispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlDispatcher.js","sourceRoot":"","sources":["../../../../src/nonInteractive/control/ControlDispatcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuBH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AA8BrE;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IACpB,OAAO,CAAkB;IAEjC,uCAAuC;IAC9B,gBAAgB,CAAmB;IAC5C,uDAAuD;IACvD,yCAAyC;IACzC,2CAA2C;IAE3C,qCAAqC;IAC7B,uBAAuB,GAC7B,IAAI,GAAG,EAAE,CAAC;IACJ,uBAAuB,GAC7B,IAAI,GAAG,EAAE,CAAC;IAEZ,YAAY,OAAwB;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,sDAAsD;QACtD,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,OAAO,EACP,IAAI,EACJ,kBAAkB,CACnB,CAAC;QACF,wDAAwD;QACxD,aAAa;QACb,UAAU;QACV,4BAA4B;QAC5B,KAAK;QACL,0EAA0E;QAC1E,6EAA6E;QAE7E,+BAA+B;QAC/B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAA0B;QACvC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAEjD,IAAI,CAAC;YACH,kCAAkC;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAErE,wBAAwB;YACxB,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sBAAsB;YACtB,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,QAA4B;QAChD,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC1C,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC;QAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,kEAAkE;YAClE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC3B,OAAO,CAAC,KAAK,CACX,wDAAwD,SAAS,EAAE,CACpE,CAAC;YACJ,CAAC;YACD,OAAO;QACT,CAAC;QAED,aAAa;QACb,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;QAE1C,2CAA2C;QAC3C,IAAI,eAAe,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAChB,OAAO,eAAe,CAAC,KAAK,KAAK,QAAQ;gBACvC,CAAC,CAAC,eAAe,CAAC,KAAK;gBACvB,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC,CAAC;YAC1D,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACtB,OAA8B,EAC9B,SAAkB;QAElB,mFAAmF;QACnF,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,SAAkB;QAC7B,IAAI,SAAS,EAAE,CAAC;YACd,mCAAmC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5D,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;gBAC1C,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;gBAEvD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC3B,OAAO,CAAC,KAAK,CACX,mDAAmD,SAAS,EAAE,CAC/D,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,uCAAuC;YACvC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC;YACnE,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrD,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;oBAChC,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;oBACnC,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,wBAAwB,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC3B,OAAO,CAAC,KAAK,CACX,qCAAqC,UAAU,CAAC,MAAM,4BAA4B,CACnF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACrD,CAAC;QAED,+BAA+B;QAC/B,KAAK,MAAM,CACT,UAAU,EACV,OAAO,EACR,IAAI,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5C,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAChC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QAErC,+BAA+B;QAC/B,KAAK,MAAM,CACT,UAAU,EACV,OAAO,EACR,IAAI,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5C,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QAErC,8DAA8D;QAC9D,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAChC,uCAAuC;QACvC,gCAAgC;QAChC,iCAAiC;IACnC,CAAC;IAED;;OAEG;IACH,uBAAuB,CACrB,SAAiB,EACjB,UAAkB,EAClB,eAAgC,EAChC,SAAyB;QAEzB,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,EAAE;YAC1C,UAAU;YACV,eAAe;YACf,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,yBAAyB,CAAC,SAAiB;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,uBAAuB,CACrB,SAAiB,EACjB,UAAkB,EAClB,OAA4C,EAC5C,MAA8B,EAC9B,SAAyB;QAEzB,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,EAAE;YAC1C,UAAU;YACV,OAAO;YACP,MAAM;YACN,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,yBAAyB,CAAC,SAAiB;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,OAAe;QAC7C,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,YAAY,CAAC;YAClB,KAAK,WAAW,CAAC;YACjB,KAAK,WAAW,CAAC;YACjB,KAAK,oBAAoB;gBACvB,OAAO,IAAI,CAAC,gBAAgB,CAAC;YAE/B,uBAAuB;YACvB,8BAA8B;YAC9B,sCAAsC;YAEtC,sBAAsB;YACtB,4BAA4B;YAC5B,+BAA+B;YAE/B,wBAAwB;YACxB,gCAAgC;YAEhC;gBACE,MAAM,IAAI,KAAK,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,SAAiB,EACjB,QAAiC;QAEjC,MAAM,eAAe,GAAuB;YAC1C,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE;gBACR,OAAO,EAAE,SAAS;gBAClB,UAAU,EAAE,SAAS;gBACrB,QAAQ;aACT;SACF,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,SAAiB,EAAE,KAAa;QACxD,MAAM,eAAe,GAAuB;YAC1C,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE;gBACR,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,SAAS;gBACrB,KAAK;aACN;SACF,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC;CACF"}
|