@umsai/ums-code 0.3.0-v1 → 0.5.0-v1
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 +4 -4
- package/dist/src/{zed-integration → acp-integration}/acp.d.ts +7 -0
- package/dist/src/{zed-integration → acp-integration}/acp.js +25 -0
- package/dist/src/acp-integration/acp.js.map +1 -0
- package/dist/src/acp-integration/acpAgent.d.ts +10 -0
- package/dist/src/acp-integration/acpAgent.js +238 -0
- package/dist/src/acp-integration/acpAgent.js.map +1 -0
- package/dist/src/{zed-integration → acp-integration}/schema.d.ts +1030 -43
- package/dist/src/{zed-integration → acp-integration}/schema.js +81 -2
- package/dist/src/acp-integration/schema.js.map +1 -0
- package/dist/src/{zed-integration/fileSystemService.d.ts → acp-integration/service/filesystem.d.ts} +1 -1
- package/dist/src/{zed-integration/fileSystemService.js → acp-integration/service/filesystem.js} +14 -1
- package/dist/src/acp-integration/service/filesystem.js.map +1 -0
- package/dist/src/acp-integration/service/filesystem.test.d.ts +6 -0
- package/dist/src/acp-integration/service/filesystem.test.js +39 -0
- package/dist/src/acp-integration/service/filesystem.test.js.map +1 -0
- package/dist/src/acp-integration/session/HistoryReplayer.d.ts +51 -0
- package/dist/src/acp-integration/session/HistoryReplayer.js +164 -0
- package/dist/src/acp-integration/session/HistoryReplayer.js.map +1 -0
- package/dist/src/acp-integration/session/HistoryReplayer.test.d.ts +6 -0
- package/dist/src/acp-integration/session/HistoryReplayer.test.js +374 -0
- package/dist/src/acp-integration/session/HistoryReplayer.test.js.map +1 -0
- package/dist/src/acp-integration/session/Session.d.ts +66 -0
- package/dist/src/acp-integration/session/Session.js +760 -0
- package/dist/src/acp-integration/session/Session.js.map +1 -0
- package/dist/src/acp-integration/session/SubAgentTracker.d.ts +51 -0
- package/dist/src/acp-integration/session/SubAgentTracker.js +257 -0
- package/dist/src/acp-integration/session/SubAgentTracker.js.map +1 -0
- package/dist/src/acp-integration/session/SubAgentTracker.test.d.ts +6 -0
- package/dist/src/acp-integration/session/SubAgentTracker.test.js +369 -0
- package/dist/src/acp-integration/session/SubAgentTracker.test.js.map +1 -0
- package/dist/src/acp-integration/session/emitters/BaseEmitter.d.ts +27 -0
- package/dist/src/acp-integration/session/emitters/BaseEmitter.js +34 -0
- package/dist/src/acp-integration/session/emitters/BaseEmitter.js.map +1 -0
- package/dist/src/acp-integration/session/emitters/MessageEmitter.d.ts +41 -0
- package/dist/src/acp-integration/session/emitters/MessageEmitter.js +77 -0
- package/dist/src/acp-integration/session/emitters/MessageEmitter.js.map +1 -0
- package/dist/src/acp-integration/session/emitters/MessageEmitter.test.d.ts +6 -0
- package/dist/src/acp-integration/session/emitters/MessageEmitter.test.js +174 -0
- package/dist/src/acp-integration/session/emitters/MessageEmitter.test.js.map +1 -0
- package/dist/src/acp-integration/session/emitters/PlanEmitter.d.ts +39 -0
- package/dist/src/acp-integration/session/emitters/PlanEmitter.js +83 -0
- package/dist/src/acp-integration/session/emitters/PlanEmitter.js.map +1 -0
- package/dist/src/acp-integration/session/emitters/PlanEmitter.test.d.ts +6 -0
- package/dist/src/acp-integration/session/emitters/PlanEmitter.test.js +176 -0
- package/dist/src/acp-integration/session/emitters/PlanEmitter.test.js.map +1 -0
- package/dist/src/acp-integration/session/emitters/ToolCallEmitter.d.ts +80 -0
- package/dist/src/acp-integration/session/emitters/ToolCallEmitter.js +248 -0
- package/dist/src/acp-integration/session/emitters/ToolCallEmitter.js.map +1 -0
- package/dist/src/acp-integration/session/emitters/ToolCallEmitter.test.d.ts +6 -0
- package/dist/src/acp-integration/session/emitters/ToolCallEmitter.test.js +561 -0
- package/dist/src/acp-integration/session/emitters/ToolCallEmitter.test.js.map +1 -0
- package/dist/src/acp-integration/session/emitters/index.d.ts +9 -0
- package/dist/src/acp-integration/session/emitters/index.js +10 -0
- package/dist/src/acp-integration/session/emitters/index.js.map +1 -0
- package/dist/src/acp-integration/session/index.d.ts +24 -0
- package/dist/src/acp-integration/session/index.js +16 -0
- package/dist/src/acp-integration/session/index.js.map +1 -0
- package/dist/src/acp-integration/session/types.d.ts +71 -0
- package/dist/src/acp-integration/session/types.js +7 -0
- package/dist/src/acp-integration/session/types.js.map +1 -0
- package/dist/src/config/auth.d.ts +1 -0
- package/dist/src/config/auth.js +3 -0
- package/dist/src/config/auth.js.map +1 -1
- package/dist/src/config/config.d.ts +11 -3
- package/dist/src/config/config.js +84 -8
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/extension.js +0 -2
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +12 -0
- package/dist/src/config/settingsSchema.js +10 -0
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/core/auth.d.ts +1 -1
- package/dist/src/core/auth.js +3 -2
- package/dist/src/core/auth.js.map +1 -1
- package/dist/src/gemini.js +38 -18
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +7 -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 +1 -1
- package/dist/src/i18n/index.js +4 -0
- package/dist/src/i18n/index.js.map +1 -1
- package/dist/src/i18n/locales/en.js +1 -13
- package/dist/src/i18n/locales/ru.js +1121 -0
- package/dist/src/i18n/locales/zh.js +1 -10
- package/dist/src/nonInteractive/control/ControlDispatcher.d.ts +24 -1
- package/dist/src/nonInteractive/control/ControlDispatcher.js +46 -17
- package/dist/src/nonInteractive/control/ControlDispatcher.js.map +1 -1
- package/dist/src/nonInteractive/control/ControlService.d.ts +2 -1
- package/dist/src/nonInteractive/control/ControlService.js +22 -37
- package/dist/src/nonInteractive/control/ControlService.js.map +1 -1
- package/dist/src/nonInteractive/control/controllers/baseController.d.ts +2 -1
- package/dist/src/nonInteractive/control/controllers/baseController.js +38 -5
- package/dist/src/nonInteractive/control/controllers/baseController.js.map +1 -1
- package/dist/src/nonInteractive/control/controllers/permissionController.d.ts +1 -22
- package/dist/src/nonInteractive/control/controllers/permissionController.js +38 -38
- package/dist/src/nonInteractive/control/controllers/permissionController.js.map +1 -1
- package/dist/src/nonInteractive/control/controllers/sdkMcpController.d.ts +54 -0
- package/dist/src/nonInteractive/control/controllers/sdkMcpController.js +84 -0
- package/dist/src/nonInteractive/control/controllers/sdkMcpController.js.map +1 -0
- package/dist/src/nonInteractive/control/controllers/systemController.d.ts +16 -6
- package/dist/src/nonInteractive/control/controllers/systemController.js +189 -44
- package/dist/src/nonInteractive/control/controllers/systemController.js.map +1 -1
- package/dist/src/nonInteractive/control/types/serviceAPIs.d.ts +1 -16
- package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.d.ts +11 -0
- package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.js +54 -2
- package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.js.map +1 -1
- package/dist/src/nonInteractive/session.d.ts +0 -16
- package/dist/src/nonInteractive/session.js +317 -321
- package/dist/src/nonInteractive/session.js.map +1 -1
- package/dist/src/nonInteractive/session.test.js +6 -0
- package/dist/src/nonInteractive/session.test.js.map +1 -1
- package/dist/src/nonInteractive/types.d.ts +57 -3
- package/dist/src/nonInteractive/types.js +0 -1
- package/dist/src/nonInteractive/types.js.map +1 -1
- package/dist/src/nonInteractiveCli.js +25 -46
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +5 -6
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.test.js +0 -3
- package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
- package/dist/src/test-utils/mockCommandContext.js +11 -2
- package/dist/src/test-utils/mockCommandContext.js.map +1 -1
- package/dist/src/ui/AppContainer.js +39 -36
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/auth/useAuth.js +20 -1
- package/dist/src/ui/auth/useAuth.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.js +22 -10
- package/dist/src/ui/commands/clearCommand.js.map +1 -1
- package/dist/src/ui/commands/languageCommand.js +41 -8
- package/dist/src/ui/commands/languageCommand.js.map +1 -1
- package/dist/src/ui/commands/languageCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/languageCommand.test.js +463 -0
- package/dist/src/ui/commands/languageCommand.test.js.map +1 -0
- package/dist/src/ui/commands/modelCommand.js +4 -2
- package/dist/src/ui/commands/modelCommand.js.map +1 -1
- package/dist/src/ui/commands/quitCommand.d.ts +0 -1
- package/dist/src/ui/commands/quitCommand.js +0 -27
- package/dist/src/ui/commands/quitCommand.js.map +1 -1
- package/dist/src/ui/commands/reviewCommand.d.ts +9 -0
- package/dist/src/ui/commands/reviewCommand.js +1267 -0
- package/dist/src/ui/commands/reviewCommand.js.map +1 -0
- package/dist/src/ui/commands/reviewCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/reviewCommand.test.js +545 -0
- package/dist/src/ui/commands/reviewCommand.test.js.map +1 -0
- package/dist/src/ui/commands/setupGithubCommand.js +11 -10
- package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
- package/dist/src/ui/commands/setupGithubCommand.test.js +14 -14
- package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
- package/dist/src/ui/commands/types.d.ts +4 -9
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/commands/ums/unittestCommand.d.ts +9 -0
- package/dist/src/ui/commands/ums/unittestCommand.js +387 -0
- package/dist/src/ui/commands/ums/unittestCommand.js.map +1 -0
- package/dist/src/ui/components/Composer.test.js +1 -2
- package/dist/src/ui/components/Composer.test.js.map +1 -1
- package/dist/src/ui/components/ContextUsageDisplay.d.ts +3 -2
- package/dist/src/ui/components/ContextUsageDisplay.js +8 -2
- package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -1
- package/dist/src/ui/components/DialogManager.js +3 -19
- package/dist/src/ui/components/DialogManager.js.map +1 -1
- package/dist/src/ui/components/Footer.js +2 -3
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/Help.js +13 -2
- package/dist/src/ui/components/Help.js.map +1 -1
- package/dist/src/ui/components/Help.test.js +6 -0
- package/dist/src/ui/components/Help.test.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js +3 -1
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +6 -4
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.d.ts +3 -1
- package/dist/src/ui/components/ModelDialog.js +25 -5
- package/dist/src/ui/components/ModelDialog.js.map +1 -1
- package/dist/src/ui/components/OpenAIKeyPrompt.d.ts +3 -0
- package/dist/src/ui/components/OpenAIKeyPrompt.js +1 -0
- package/dist/src/ui/components/OpenAIKeyPrompt.js.map +1 -1
- package/dist/src/ui/components/ResumeSessionPicker.d.ts +10 -0
- package/dist/src/ui/components/ResumeSessionPicker.js +249 -0
- package/dist/src/ui/components/ResumeSessionPicker.js.map +1 -0
- package/dist/src/ui/components/SessionSummaryDisplay.js +10 -2
- package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +2 -2
- package/dist/src/ui/components/SuggestionsDisplay.js +3 -2
- package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
- package/dist/src/ui/components/messages/GeminiThoughtMessage.d.ts +18 -0
- package/dist/src/ui/components/messages/GeminiThoughtMessage.js +14 -0
- package/dist/src/ui/components/messages/GeminiThoughtMessage.js.map +1 -0
- package/dist/src/ui/components/messages/GeminiThoughtMessageContent.d.ts +18 -0
- package/dist/src/ui/components/messages/GeminiThoughtMessageContent.js +14 -0
- package/dist/src/ui/components/messages/GeminiThoughtMessageContent.js.map +1 -0
- package/dist/src/ui/components/subagents/manage/AgentEditStep.js +4 -1
- package/dist/src/ui/components/subagents/manage/AgentEditStep.js.map +1 -1
- package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js +2 -2
- package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js.map +1 -1
- package/dist/src/ui/components/ums/UMSKeyPrompt.d.ts +1 -1
- package/dist/src/ui/components/ums/UMSKeyPrompt.js +23 -3
- package/dist/src/ui/components/ums/UMSKeyPrompt.js.map +1 -1
- package/dist/src/ui/components/ums/umsStartupWarnings.d.ts +6 -0
- package/dist/src/ui/components/ums/umsStartupWarnings.js +47 -0
- package/dist/src/ui/components/ums/umsStartupWarnings.js.map +1 -0
- package/dist/src/ui/contexts/SessionContext.d.ts +2 -0
- package/dist/src/ui/contexts/SessionContext.js +18 -10
- package/dist/src/ui/contexts/SessionContext.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +1 -3
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +2 -8
- package/dist/src/ui/hooks/slashCommandProcessor.js +68 -101
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useAttentionNotifications.d.ts +3 -1
- package/dist/src/ui/hooks/useAttentionNotifications.js +10 -5
- package/dist/src/ui/hooks/useAttentionNotifications.js.map +1 -1
- package/dist/src/ui/hooks/useAttentionNotifications.test.js +39 -2
- package/dist/src/ui/hooks/useAttentionNotifications.test.js.map +1 -1
- package/dist/src/ui/hooks/useDialogClose.d.ts +0 -3
- package/dist/src/ui/hooks/useDialogClose.js +0 -2
- package/dist/src/ui/hooks/useDialogClose.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +49 -9
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useLogger.d.ts +1 -1
- package/dist/src/ui/hooks/useLogger.js +6 -3
- package/dist/src/ui/hooks/useLogger.js.map +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.js +2 -2
- package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.js +9 -1
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.test.js +36 -31
- package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +1 -0
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/models/availableModels.d.ts +8 -2
- package/dist/src/ui/models/availableModels.js +24 -35
- package/dist/src/ui/models/availableModels.js.map +1 -1
- package/dist/src/ui/noninteractive/nonInteractiveUi.js +0 -1
- package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -1
- package/dist/src/ui/types.d.ts +9 -14
- package/dist/src/ui/types.js +0 -1
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/InlineMarkdownRenderer.d.ts +1 -0
- package/dist/src/ui/utils/InlineMarkdownRenderer.js +2 -2
- package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.d.ts +1 -0
- package/dist/src/ui/utils/MarkdownDisplay.js +13 -13
- package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
- package/dist/src/ui/utils/formatters.d.ts +6 -0
- package/dist/src/ui/utils/formatters.js +31 -0
- package/dist/src/ui/utils/formatters.js.map +1 -1
- package/dist/src/ui/utils/formatters.test.js +51 -2
- package/dist/src/ui/utils/formatters.test.js.map +1 -1
- package/dist/src/ui/utils/resumeHistoryUtils.d.ts +19 -0
- package/dist/src/ui/utils/resumeHistoryUtils.js +263 -0
- package/dist/src/ui/utils/resumeHistoryUtils.js.map +1 -0
- package/dist/src/ui/utils/resumeHistoryUtils.test.d.ts +6 -0
- package/dist/src/ui/utils/resumeHistoryUtils.test.js +248 -0
- package/dist/src/ui/utils/resumeHistoryUtils.test.js.map +1 -0
- package/dist/src/utils/attentionNotification.d.ts +1 -0
- package/dist/src/utils/attentionNotification.js +4 -0
- package/dist/src/utils/attentionNotification.js.map +1 -1
- package/dist/src/utils/gitUtils.js +3 -3
- package/dist/src/utils/gitUtils.js.map +1 -1
- package/dist/src/utils/nonInteractiveHelpers.js +1 -1
- package/dist/src/utils/nonInteractiveHelpers.js.map +1 -1
- package/dist/src/utils/nonInteractiveHelpers.test.js +1 -1
- package/dist/src/utils/nonInteractiveHelpers.test.js.map +1 -1
- package/dist/src/validateNonInterActiveAuth.js +1 -1
- package/dist/src/validateNonInterActiveAuth.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/dist/src/nonInteractive/control/controllers/mcpController.d.ts +0 -42
- package/dist/src/nonInteractive/control/controllers/mcpController.js +0 -205
- package/dist/src/nonInteractive/control/controllers/mcpController.js.map +0 -1
- package/dist/src/ui/commands/chatCommand.d.ts +0 -9
- package/dist/src/ui/commands/chatCommand.js +0 -351
- package/dist/src/ui/commands/chatCommand.js.map +0 -1
- package/dist/src/ui/commands/corgiCommand.d.ts +0 -7
- package/dist/src/ui/commands/corgiCommand.js +0 -16
- package/dist/src/ui/commands/corgiCommand.js.map +0 -1
- package/dist/src/ui/components/QuitConfirmationDialog.d.ts +0 -17
- package/dist/src/ui/components/QuitConfirmationDialog.js +0 -49
- package/dist/src/ui/components/QuitConfirmationDialog.js.map +0 -1
- package/dist/src/ui/hooks/usePromptCompletion.d.ts +0 -23
- package/dist/src/ui/hooks/usePromptCompletion.js +0 -177
- package/dist/src/ui/hooks/usePromptCompletion.js.map +0 -1
- package/dist/src/ui/hooks/useQuitConfirmation.d.ts +0 -14
- package/dist/src/ui/hooks/useQuitConfirmation.js +0 -36
- package/dist/src/ui/hooks/useQuitConfirmation.js.map +0 -1
- package/dist/src/zed-integration/acp.js.map +0 -1
- package/dist/src/zed-integration/fileSystemService.js.map +0 -1
- package/dist/src/zed-integration/schema.js.map +0 -1
- package/dist/src/zed-integration/zedIntegration.d.ts +0 -17
- package/dist/src/zed-integration/zedIntegration.js +0 -1135
- package/dist/src/zed-integration/zedIntegration.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissionController.js","sourceRoot":"","sources":["../../../../../src/nonInteractive/control/controllers/permissionController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"permissionController.js","sourceRoot":"","sources":["../../../../../src/nonInteractive/control/controllers/permissionController.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* SDK MCP Controller
|
|
8
|
+
*
|
|
9
|
+
* Handles MCP communication between CLI MCP clients and SDK MCP servers:
|
|
10
|
+
* - Provides sendSdkMcpMessage callback for CLI → SDK MCP message routing
|
|
11
|
+
* - mcp_server_status: Returns status of SDK MCP servers
|
|
12
|
+
*
|
|
13
|
+
* Message Flow (CLI MCP Client → SDK MCP Server):
|
|
14
|
+
* CLI MCP Client → SdkControlClientTransport.send() →
|
|
15
|
+
* sendSdkMcpMessage callback → control_request (mcp_message) → SDK →
|
|
16
|
+
* SDK MCP Server processes → control_response → CLI MCP Client
|
|
17
|
+
*/
|
|
18
|
+
import type { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js';
|
|
19
|
+
import { BaseController } from './baseController.js';
|
|
20
|
+
import type { ControlRequestPayload } from '../../types.js';
|
|
21
|
+
export declare class SdkMcpController extends BaseController {
|
|
22
|
+
/**
|
|
23
|
+
* Handle SDK MCP control requests from ControlDispatcher
|
|
24
|
+
*
|
|
25
|
+
* Note: mcp_message requests are NOT handled here. CLI MCP clients
|
|
26
|
+
* send messages via the sendSdkMcpMessage callback directly, not
|
|
27
|
+
* through the control dispatcher.
|
|
28
|
+
*/
|
|
29
|
+
protected handleRequestPayload(payload: ControlRequestPayload, signal: AbortSignal): Promise<Record<string, unknown>>;
|
|
30
|
+
/**
|
|
31
|
+
* Handle mcp_server_status request
|
|
32
|
+
*
|
|
33
|
+
* Returns status of all registered SDK MCP servers.
|
|
34
|
+
* SDK servers are considered "connected" if they are registered.
|
|
35
|
+
*/
|
|
36
|
+
private handleMcpStatus;
|
|
37
|
+
/**
|
|
38
|
+
* Send MCP message to SDK server via control plane
|
|
39
|
+
*
|
|
40
|
+
* @param serverName - Name of the SDK MCP server
|
|
41
|
+
* @param message - MCP JSON-RPC message to send
|
|
42
|
+
* @returns MCP JSON-RPC response from SDK server
|
|
43
|
+
*/
|
|
44
|
+
private sendMcpMessageToSdk;
|
|
45
|
+
/**
|
|
46
|
+
* Create a callback function for sending MCP messages to SDK servers.
|
|
47
|
+
*
|
|
48
|
+
* This callback is used by McpClientManager/SdkControlClientTransport to send
|
|
49
|
+
* MCP messages from CLI MCP clients to SDK MCP servers via the control plane.
|
|
50
|
+
*
|
|
51
|
+
* @returns A function that sends MCP messages to SDK and returns the response
|
|
52
|
+
*/
|
|
53
|
+
createSendSdkMcpMessage(): (serverName: string, message: JSONRPCMessage) => Promise<JSONRPCMessage>;
|
|
54
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { BaseController } from './baseController.js';
|
|
7
|
+
const MCP_REQUEST_TIMEOUT = 30_000; // 30 seconds
|
|
8
|
+
export class SdkMcpController extends BaseController {
|
|
9
|
+
/**
|
|
10
|
+
* Handle SDK MCP control requests from ControlDispatcher
|
|
11
|
+
*
|
|
12
|
+
* Note: mcp_message requests are NOT handled here. CLI MCP clients
|
|
13
|
+
* send messages via the sendSdkMcpMessage callback directly, not
|
|
14
|
+
* through the control dispatcher.
|
|
15
|
+
*/
|
|
16
|
+
async handleRequestPayload(payload, signal) {
|
|
17
|
+
if (signal.aborted) {
|
|
18
|
+
throw new Error('Request aborted');
|
|
19
|
+
}
|
|
20
|
+
switch (payload.subtype) {
|
|
21
|
+
case 'mcp_server_status':
|
|
22
|
+
return this.handleMcpStatus();
|
|
23
|
+
default:
|
|
24
|
+
throw new Error(`Unsupported request subtype in SdkMcpController`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Handle mcp_server_status request
|
|
29
|
+
*
|
|
30
|
+
* Returns status of all registered SDK MCP servers.
|
|
31
|
+
* SDK servers are considered "connected" if they are registered.
|
|
32
|
+
*/
|
|
33
|
+
async handleMcpStatus() {
|
|
34
|
+
const status = {};
|
|
35
|
+
for (const serverName of this.context.sdkMcpServers) {
|
|
36
|
+
// SDK MCP servers are "connected" once registered since they run in SDK process
|
|
37
|
+
status[serverName] = 'connected';
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
subtype: 'mcp_server_status',
|
|
41
|
+
status,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Send MCP message to SDK server via control plane
|
|
46
|
+
*
|
|
47
|
+
* @param serverName - Name of the SDK MCP server
|
|
48
|
+
* @param message - MCP JSON-RPC message to send
|
|
49
|
+
* @returns MCP JSON-RPC response from SDK server
|
|
50
|
+
*/
|
|
51
|
+
async sendMcpMessageToSdk(serverName, message) {
|
|
52
|
+
if (this.context.debugMode) {
|
|
53
|
+
console.error(`[SdkMcpController] Sending MCP message to SDK server '${serverName}':`, JSON.stringify(message));
|
|
54
|
+
}
|
|
55
|
+
// Send control request to SDK with the MCP message
|
|
56
|
+
const response = await this.sendControlRequest({
|
|
57
|
+
subtype: 'mcp_message',
|
|
58
|
+
server_name: serverName,
|
|
59
|
+
message: message,
|
|
60
|
+
}, MCP_REQUEST_TIMEOUT, this.context.abortSignal);
|
|
61
|
+
// Extract MCP response from control response
|
|
62
|
+
const responsePayload = response.response;
|
|
63
|
+
const mcpResponse = responsePayload?.['mcp_response'];
|
|
64
|
+
if (!mcpResponse) {
|
|
65
|
+
throw new Error(`Invalid MCP response from SDK for server '${serverName}'`);
|
|
66
|
+
}
|
|
67
|
+
if (this.context.debugMode) {
|
|
68
|
+
console.error(`[SdkMcpController] Received MCP response from SDK server '${serverName}':`, JSON.stringify(mcpResponse));
|
|
69
|
+
}
|
|
70
|
+
return mcpResponse;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Create a callback function for sending MCP messages to SDK servers.
|
|
74
|
+
*
|
|
75
|
+
* This callback is used by McpClientManager/SdkControlClientTransport to send
|
|
76
|
+
* MCP messages from CLI MCP clients to SDK MCP servers via the control plane.
|
|
77
|
+
*
|
|
78
|
+
* @returns A function that sends MCP messages to SDK and returns the response
|
|
79
|
+
*/
|
|
80
|
+
createSendSdkMcpMessage() {
|
|
81
|
+
return (serverName, message) => this.sendMcpMessageToSdk(serverName, message);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=sdkMcpController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdkMcpController.js","sourceRoot":"","sources":["../../../../../src/nonInteractive/control/controllers/sdkMcpController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAMrD,MAAM,mBAAmB,GAAG,MAAM,CAAC,CAAC,aAAa;AAEjD,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAClD;;;;;;OAMG;IACO,KAAK,CAAC,oBAAoB,CAClC,OAA8B,EAC9B,MAAmB;QAEnB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QAED,QAAQ,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,KAAK,mBAAmB;gBACtB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAEhC;gBACE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,eAAe;QAC3B,MAAM,MAAM,GAA2B,EAAE,CAAC;QAE1C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACpD,gFAAgF;YAChF,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;QACnC,CAAC;QAED,OAAO;YACL,OAAO,EAAE,mBAAmB;YAC5B,MAAM;SACP,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,mBAAmB,CAC/B,UAAkB,EAClB,OAAuB;QAEvB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CACX,yDAAyD,UAAU,IAAI,EACvE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CACxB,CAAC;QACJ,CAAC;QAED,mDAAmD;QACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC5C;YACE,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,UAAU;YACvB,OAAO,EAAE,OAAiD;SAC3D,EACD,mBAAmB,EACnB,IAAI,CAAC,OAAO,CAAC,WAAW,CACzB,CAAC;QAEF,6CAA6C;QAC7C,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAmC,CAAC;QACrE,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC,cAAc,CAAmB,CAAC;QAExE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,6CAA6C,UAAU,GAAG,CAC3D,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CACX,6DAA6D,UAAU,IAAI,EAC3E,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAC5B,CAAC;QACJ,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;OAOG;IACH,uBAAuB;QAIrB,OAAO,CAAC,UAAkB,EAAE,OAAuB,EAAE,EAAE,CACrD,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;CACF"}
|
|
@@ -17,11 +17,14 @@ export declare class SystemController extends BaseController {
|
|
|
17
17
|
/**
|
|
18
18
|
* Handle system control requests
|
|
19
19
|
*/
|
|
20
|
-
protected handleRequestPayload(payload: ControlRequestPayload,
|
|
20
|
+
protected handleRequestPayload(payload: ControlRequestPayload, signal: AbortSignal): Promise<Record<string, unknown>>;
|
|
21
21
|
/**
|
|
22
22
|
* Handle initialize request
|
|
23
23
|
*
|
|
24
|
-
*
|
|
24
|
+
* Processes SDK MCP servers config.
|
|
25
|
+
* SDK servers are registered in context.sdkMcpServers
|
|
26
|
+
* and added to config.mcpServers with the sdk type flag.
|
|
27
|
+
* External MCP servers are configured separately in settings.
|
|
25
28
|
*/
|
|
26
29
|
private handleInitialize;
|
|
27
30
|
/**
|
|
@@ -32,6 +35,9 @@ export declare class SystemController extends BaseController {
|
|
|
32
35
|
* initialize control response.
|
|
33
36
|
*/
|
|
34
37
|
buildControlCapabilities(): Record<string, unknown>;
|
|
38
|
+
private normalizeMcpServerConfig;
|
|
39
|
+
private normalizeAuthProviderType;
|
|
40
|
+
private normalizeOAuthConfig;
|
|
35
41
|
/**
|
|
36
42
|
* Handle interrupt request
|
|
37
43
|
*
|
|
@@ -47,10 +53,14 @@ export declare class SystemController extends BaseController {
|
|
|
47
53
|
/**
|
|
48
54
|
* Handle supported_commands request
|
|
49
55
|
*
|
|
50
|
-
* Returns list of supported
|
|
51
|
-
*
|
|
52
|
-
* Note: This list should match the ControlRequestType enum in
|
|
53
|
-
* packages/sdk/typescript/src/types/controlRequests.ts
|
|
56
|
+
* Returns list of supported slash commands loaded dynamically
|
|
54
57
|
*/
|
|
55
58
|
private handleSupportedCommands;
|
|
59
|
+
/**
|
|
60
|
+
* Load slash command names using CommandService
|
|
61
|
+
*
|
|
62
|
+
* @param signal - AbortSignal to respect for cancellation
|
|
63
|
+
* @returns Promise resolving to array of slash command names
|
|
64
|
+
*/
|
|
65
|
+
private loadSlashCommandNames;
|
|
56
66
|
}
|
|
@@ -12,20 +12,26 @@
|
|
|
12
12
|
* - set_model: Switch model (placeholder)
|
|
13
13
|
*/
|
|
14
14
|
import { BaseController } from './baseController.js';
|
|
15
|
+
import { CommandService } from '../../../services/CommandService.js';
|
|
16
|
+
import { BuiltinCommandLoader } from '../../../services/BuiltinCommandLoader.js';
|
|
17
|
+
import { MCPServerConfig, AuthProviderType, } from '@umsai/ums-code-core';
|
|
15
18
|
export class SystemController extends BaseController {
|
|
16
19
|
/**
|
|
17
20
|
* Handle system control requests
|
|
18
21
|
*/
|
|
19
|
-
async handleRequestPayload(payload,
|
|
22
|
+
async handleRequestPayload(payload, signal) {
|
|
23
|
+
if (signal.aborted) {
|
|
24
|
+
throw new Error('Request aborted');
|
|
25
|
+
}
|
|
20
26
|
switch (payload.subtype) {
|
|
21
27
|
case 'initialize':
|
|
22
|
-
return this.handleInitialize(payload);
|
|
28
|
+
return this.handleInitialize(payload, signal);
|
|
23
29
|
case 'interrupt':
|
|
24
30
|
return this.handleInterrupt();
|
|
25
31
|
case 'set_model':
|
|
26
|
-
return this.handleSetModel(payload);
|
|
32
|
+
return this.handleSetModel(payload, signal);
|
|
27
33
|
case 'supported_commands':
|
|
28
|
-
return this.handleSupportedCommands();
|
|
34
|
+
return this.handleSupportedCommands(signal);
|
|
29
35
|
default:
|
|
30
36
|
throw new Error(`Unsupported request subtype in SystemController`);
|
|
31
37
|
}
|
|
@@ -33,13 +39,97 @@ export class SystemController extends BaseController {
|
|
|
33
39
|
/**
|
|
34
40
|
* Handle initialize request
|
|
35
41
|
*
|
|
36
|
-
*
|
|
42
|
+
* Processes SDK MCP servers config.
|
|
43
|
+
* SDK servers are registered in context.sdkMcpServers
|
|
44
|
+
* and added to config.mcpServers with the sdk type flag.
|
|
45
|
+
* External MCP servers are configured separately in settings.
|
|
37
46
|
*/
|
|
38
|
-
async handleInitialize(payload) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
47
|
+
async handleInitialize(payload, signal) {
|
|
48
|
+
if (signal.aborted) {
|
|
49
|
+
throw new Error('Request aborted');
|
|
50
|
+
}
|
|
51
|
+
this.context.config.setSdkMode(true);
|
|
52
|
+
// Process SDK MCP servers
|
|
53
|
+
if (payload.sdkMcpServers &&
|
|
54
|
+
typeof payload.sdkMcpServers === 'object' &&
|
|
55
|
+
payload.sdkMcpServers !== null) {
|
|
56
|
+
const sdkServers = {};
|
|
57
|
+
for (const [key, wireConfig] of Object.entries(payload.sdkMcpServers)) {
|
|
58
|
+
const name = typeof wireConfig?.name === 'string' && wireConfig.name.trim().length
|
|
59
|
+
? wireConfig.name
|
|
60
|
+
: key;
|
|
61
|
+
this.context.sdkMcpServers.add(name);
|
|
62
|
+
sdkServers[name] = new MCPServerConfig(undefined, // command
|
|
63
|
+
undefined, // args
|
|
64
|
+
undefined, // env
|
|
65
|
+
undefined, // cwd
|
|
66
|
+
undefined, // url
|
|
67
|
+
undefined, // httpUrl
|
|
68
|
+
undefined, // headers
|
|
69
|
+
undefined, // tcp
|
|
70
|
+
undefined, // timeout
|
|
71
|
+
true, // trust - SDK servers are trusted
|
|
72
|
+
undefined, // description
|
|
73
|
+
undefined, // includeTools
|
|
74
|
+
undefined, // excludeTools
|
|
75
|
+
undefined, // extensionName
|
|
76
|
+
undefined, // oauth
|
|
77
|
+
undefined, // authProviderType
|
|
78
|
+
undefined, // targetAudience
|
|
79
|
+
undefined, // targetServiceAccount
|
|
80
|
+
'sdk');
|
|
81
|
+
}
|
|
82
|
+
const sdkServerCount = Object.keys(sdkServers).length;
|
|
83
|
+
if (sdkServerCount > 0) {
|
|
84
|
+
try {
|
|
85
|
+
this.context.config.addMcpServers(sdkServers);
|
|
86
|
+
if (this.context.debugMode) {
|
|
87
|
+
console.error(`[SystemController] Added ${sdkServerCount} SDK MCP servers to config`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
if (this.context.debugMode) {
|
|
92
|
+
console.error('[SystemController] Failed to add SDK MCP servers:', error);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (payload.mcpServers &&
|
|
98
|
+
typeof payload.mcpServers === 'object' &&
|
|
99
|
+
payload.mcpServers !== null) {
|
|
100
|
+
const externalServers = {};
|
|
101
|
+
for (const [name, serverConfig] of Object.entries(payload.mcpServers)) {
|
|
102
|
+
const normalized = this.normalizeMcpServerConfig(name, serverConfig);
|
|
103
|
+
if (normalized) {
|
|
104
|
+
externalServers[name] = normalized;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const externalCount = Object.keys(externalServers).length;
|
|
108
|
+
if (externalCount > 0) {
|
|
109
|
+
try {
|
|
110
|
+
this.context.config.addMcpServers(externalServers);
|
|
111
|
+
if (this.context.debugMode) {
|
|
112
|
+
console.error(`[SystemController] Added ${externalCount} external MCP servers to config`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
if (this.context.debugMode) {
|
|
117
|
+
console.error('[SystemController] Failed to add external MCP servers:', error);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (payload.agents && Array.isArray(payload.agents)) {
|
|
123
|
+
try {
|
|
124
|
+
this.context.config.setSessionSubagents(payload.agents);
|
|
125
|
+
if (this.context.debugMode) {
|
|
126
|
+
console.error(`[SystemController] Added ${payload.agents.length} session subagents to config`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
if (this.context.debugMode) {
|
|
131
|
+
console.error('[SystemController] Failed to add session subagents:', error);
|
|
132
|
+
}
|
|
43
133
|
}
|
|
44
134
|
}
|
|
45
135
|
// Build capabilities for response
|
|
@@ -62,28 +152,57 @@ export class SystemController extends BaseController {
|
|
|
62
152
|
buildControlCapabilities() {
|
|
63
153
|
const capabilities = {
|
|
64
154
|
can_handle_can_use_tool: true,
|
|
65
|
-
can_handle_hook_callback:
|
|
155
|
+
can_handle_hook_callback: false,
|
|
66
156
|
can_set_permission_mode: typeof this.context.config.setApprovalMode === 'function',
|
|
67
157
|
can_set_model: typeof this.context.config.setModel === 'function',
|
|
158
|
+
// SDK MCP servers are supported - messages routed through control plane
|
|
159
|
+
can_handle_mcp_message: true,
|
|
68
160
|
};
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const servers = mcpProvider.getMcpServers();
|
|
74
|
-
capabilities['can_handle_mcp_message'] = Boolean(servers && Object.keys(servers).length > 0);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
capabilities['can_handle_mcp_message'] = false;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
161
|
+
return capabilities;
|
|
162
|
+
}
|
|
163
|
+
normalizeMcpServerConfig(serverName, config) {
|
|
164
|
+
if (!config || typeof config !== 'object') {
|
|
81
165
|
if (this.context.debugMode) {
|
|
82
|
-
console.error(
|
|
166
|
+
console.error(`[SystemController] Ignoring invalid MCP server config for '${serverName}'`);
|
|
83
167
|
}
|
|
84
|
-
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
const authProvider = this.normalizeAuthProviderType(config.authProviderType);
|
|
171
|
+
const oauthConfig = this.normalizeOAuthConfig(config.oauth);
|
|
172
|
+
return new MCPServerConfig(config.command, config.args, config.env, config.cwd, config.url, config.httpUrl, config.headers, config.tcp, config.timeout, config.trust, config.description, config.includeTools, config.excludeTools, config.extensionName, oauthConfig, authProvider, config.targetAudience, config.targetServiceAccount);
|
|
173
|
+
}
|
|
174
|
+
normalizeAuthProviderType(value) {
|
|
175
|
+
if (!value) {
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
switch (value) {
|
|
179
|
+
case AuthProviderType.DYNAMIC_DISCOVERY:
|
|
180
|
+
case AuthProviderType.GOOGLE_CREDENTIALS:
|
|
181
|
+
case AuthProviderType.SERVICE_ACCOUNT_IMPERSONATION:
|
|
182
|
+
return value;
|
|
183
|
+
default:
|
|
184
|
+
if (this.context.debugMode) {
|
|
185
|
+
console.error(`[SystemController] Unsupported authProviderType '${value}', skipping`);
|
|
186
|
+
}
|
|
187
|
+
return undefined;
|
|
85
188
|
}
|
|
86
|
-
|
|
189
|
+
}
|
|
190
|
+
normalizeOAuthConfig(oauth) {
|
|
191
|
+
if (!oauth) {
|
|
192
|
+
return undefined;
|
|
193
|
+
}
|
|
194
|
+
return {
|
|
195
|
+
enabled: oauth.enabled,
|
|
196
|
+
clientId: oauth.clientId,
|
|
197
|
+
clientSecret: oauth.clientSecret,
|
|
198
|
+
authorizationUrl: oauth.authorizationUrl,
|
|
199
|
+
tokenUrl: oauth.tokenUrl,
|
|
200
|
+
scopes: oauth.scopes,
|
|
201
|
+
audiences: oauth.audiences,
|
|
202
|
+
redirectUri: oauth.redirectUri,
|
|
203
|
+
tokenParamName: oauth.tokenParamName,
|
|
204
|
+
registrationUrl: oauth.registrationUrl,
|
|
205
|
+
};
|
|
87
206
|
}
|
|
88
207
|
/**
|
|
89
208
|
* Handle interrupt request
|
|
@@ -112,7 +231,10 @@ export class SystemController extends BaseController {
|
|
|
112
231
|
*
|
|
113
232
|
* Implements actual model switching with validation and error handling
|
|
114
233
|
*/
|
|
115
|
-
async handleSetModel(payload) {
|
|
234
|
+
async handleSetModel(payload, signal) {
|
|
235
|
+
if (signal.aborted) {
|
|
236
|
+
throw new Error('Request aborted');
|
|
237
|
+
}
|
|
116
238
|
const model = payload.model;
|
|
117
239
|
// Validate model parameter
|
|
118
240
|
if (typeof model !== 'string' || model.trim() === '') {
|
|
@@ -140,27 +262,50 @@ export class SystemController extends BaseController {
|
|
|
140
262
|
/**
|
|
141
263
|
* Handle supported_commands request
|
|
142
264
|
*
|
|
143
|
-
* Returns list of supported
|
|
144
|
-
*
|
|
145
|
-
* Note: This list should match the ControlRequestType enum in
|
|
146
|
-
* packages/sdk/typescript/src/types/controlRequests.ts
|
|
265
|
+
* Returns list of supported slash commands loaded dynamically
|
|
147
266
|
*/
|
|
148
|
-
async handleSupportedCommands() {
|
|
149
|
-
|
|
150
|
-
'
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
'supported_commands',
|
|
154
|
-
'can_use_tool',
|
|
155
|
-
'set_permission_mode',
|
|
156
|
-
'mcp_message',
|
|
157
|
-
'mcp_server_status',
|
|
158
|
-
'hook_callback',
|
|
159
|
-
];
|
|
267
|
+
async handleSupportedCommands(signal) {
|
|
268
|
+
if (signal.aborted) {
|
|
269
|
+
throw new Error('Request aborted');
|
|
270
|
+
}
|
|
271
|
+
const slashCommands = await this.loadSlashCommandNames(signal);
|
|
160
272
|
return {
|
|
161
273
|
subtype: 'supported_commands',
|
|
162
|
-
commands,
|
|
274
|
+
commands: slashCommands,
|
|
163
275
|
};
|
|
164
276
|
}
|
|
277
|
+
/**
|
|
278
|
+
* Load slash command names using CommandService
|
|
279
|
+
*
|
|
280
|
+
* @param signal - AbortSignal to respect for cancellation
|
|
281
|
+
* @returns Promise resolving to array of slash command names
|
|
282
|
+
*/
|
|
283
|
+
async loadSlashCommandNames(signal) {
|
|
284
|
+
if (signal.aborted) {
|
|
285
|
+
return [];
|
|
286
|
+
}
|
|
287
|
+
try {
|
|
288
|
+
const service = await CommandService.create([new BuiltinCommandLoader(this.context.config)], signal);
|
|
289
|
+
if (signal.aborted) {
|
|
290
|
+
return [];
|
|
291
|
+
}
|
|
292
|
+
const names = new Set();
|
|
293
|
+
const commands = service.getCommands();
|
|
294
|
+
for (const command of commands) {
|
|
295
|
+
names.add(command.name);
|
|
296
|
+
}
|
|
297
|
+
return Array.from(names).sort();
|
|
298
|
+
}
|
|
299
|
+
catch (error) {
|
|
300
|
+
// Check if the error is due to abort
|
|
301
|
+
if (signal.aborted) {
|
|
302
|
+
return [];
|
|
303
|
+
}
|
|
304
|
+
if (this.context.debugMode) {
|
|
305
|
+
console.error('[SystemController] Failed to load slash commands:', error);
|
|
306
|
+
}
|
|
307
|
+
return [];
|
|
308
|
+
}
|
|
309
|
+
}
|
|
165
310
|
}
|
|
166
311
|
//# sourceMappingURL=systemController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemController.js","sourceRoot":"","sources":["../../../../../src/nonInteractive/control/controllers/systemController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAOrD,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAClD;;OAEG;IACO,KAAK,CAAC,oBAAoB,CAClC,OAA8B,EAC9B,
|
|
1
|
+
{"version":3,"file":"systemController.js","sourceRoot":"","sources":["../../../../../src/nonInteractive/control/controllers/systemController.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* for internal CLI code (nonInteractiveCli, session managers, etc.).
|
|
12
12
|
*/
|
|
13
13
|
import type { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
14
|
-
import type {
|
|
14
|
+
import type { MCPServerConfig } from '@umsai/ums-code-core';
|
|
15
15
|
import type { PermissionSuggestion } from '../../types.js';
|
|
16
16
|
/**
|
|
17
17
|
* Permission Service API
|
|
@@ -20,21 +20,6 @@ import type { PermissionSuggestion } from '../../types.js';
|
|
|
20
20
|
* permission suggestions, and tool call monitoring callbacks.
|
|
21
21
|
*/
|
|
22
22
|
export interface PermissionServiceAPI {
|
|
23
|
-
/**
|
|
24
|
-
* Check if a tool should be allowed based on current permission settings
|
|
25
|
-
*
|
|
26
|
-
* Evaluates permission mode and tool registry to determine if execution
|
|
27
|
-
* should proceed. Can optionally modify tool arguments based on confirmation details.
|
|
28
|
-
*
|
|
29
|
-
* @param toolRequest - Tool call request information containing name, args, and call ID
|
|
30
|
-
* @param confirmationDetails - Optional confirmation details for UI-driven approvals
|
|
31
|
-
* @returns Promise resolving to permission decision with optional updated arguments
|
|
32
|
-
*/
|
|
33
|
-
shouldAllowTool(toolRequest: ToolCallRequestInfo, confirmationDetails?: unknown): Promise<{
|
|
34
|
-
allowed: boolean;
|
|
35
|
-
message?: string;
|
|
36
|
-
updatedArgs?: Record<string, unknown>;
|
|
37
|
-
}>;
|
|
38
23
|
/**
|
|
39
24
|
* Build UI suggestions for tool confirmation dialogs
|
|
40
25
|
*
|
|
@@ -368,9 +368,19 @@ export declare abstract class BaseJsonOutputAdapter {
|
|
|
368
368
|
* @param parentToolUseId - Optional parent tool use ID for subagent messages
|
|
369
369
|
*/
|
|
370
370
|
emitUserMessage(parts: Part[], parentToolUseId?: string | null): void;
|
|
371
|
+
/**
|
|
372
|
+
* Checks if responseParts contain any functionResponse with an error.
|
|
373
|
+
* This handles cancelled responses and other error cases where the error
|
|
374
|
+
* is embedded in responseParts rather than the top-level error field.
|
|
375
|
+
* @param responseParts - Array of Part objects
|
|
376
|
+
* @returns Error message if found, undefined otherwise
|
|
377
|
+
*/
|
|
378
|
+
private checkResponsePartsForError;
|
|
371
379
|
/**
|
|
372
380
|
* Emits a tool result message.
|
|
373
381
|
* Collects execution denied tool calls for inclusion in result messages.
|
|
382
|
+
* Handles both explicit errors (response.error) and errors embedded in
|
|
383
|
+
* responseParts (e.g., cancelled responses).
|
|
374
384
|
* @param request - Tool call request info
|
|
375
385
|
* @param response - Tool call response info
|
|
376
386
|
* @param parentToolUseId - Parent tool use ID (null for main agent)
|
|
@@ -426,6 +436,7 @@ export declare function partsToString(parts: Part[]): string;
|
|
|
426
436
|
* Uses functionResponsePartsToString to properly handle functionResponse parts,
|
|
427
437
|
* which correctly extracts output content from functionResponse objects rather
|
|
428
438
|
* than simply concatenating text or JSON.stringify.
|
|
439
|
+
* Also handles errors embedded in responseParts (e.g., cancelled responses).
|
|
429
440
|
*
|
|
430
441
|
* @param response - Tool call response
|
|
431
442
|
* @returns String content or undefined
|