@umsai/ums-code 0.3.0-v2 → 0.6.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.
Files changed (397) hide show
  1. package/dist/package.json +6 -6
  2. package/dist/src/{zed-integration → acp-integration}/acp.d.ts +13 -0
  3. package/dist/src/{zed-integration → acp-integration}/acp.js +32 -0
  4. package/dist/src/acp-integration/acp.js.map +1 -0
  5. package/dist/src/acp-integration/acpAgent.d.ts +10 -0
  6. package/dist/src/acp-integration/acpAgent.js +264 -0
  7. package/dist/src/acp-integration/acpAgent.js.map +1 -0
  8. package/dist/src/{zed-integration → acp-integration}/schema.d.ts +2235 -905
  9. package/dist/src/{zed-integration → acp-integration}/schema.js +100 -2
  10. package/dist/src/acp-integration/schema.js.map +1 -0
  11. package/dist/src/{zed-integration/fileSystemService.d.ts → acp-integration/service/filesystem.d.ts} +1 -1
  12. package/dist/src/{zed-integration/fileSystemService.js → acp-integration/service/filesystem.js} +14 -1
  13. package/dist/src/acp-integration/service/filesystem.js.map +1 -0
  14. package/dist/src/{ui/hooks/useQuotaAndFallback.test.d.ts → acp-integration/service/filesystem.test.d.ts} +1 -1
  15. package/dist/src/acp-integration/service/filesystem.test.js +39 -0
  16. package/dist/src/acp-integration/service/filesystem.test.js.map +1 -0
  17. package/dist/src/acp-integration/session/HistoryReplayer.d.ts +51 -0
  18. package/dist/src/acp-integration/session/HistoryReplayer.js +164 -0
  19. package/dist/src/acp-integration/session/HistoryReplayer.js.map +1 -0
  20. package/dist/src/acp-integration/session/HistoryReplayer.test.d.ts +6 -0
  21. package/dist/src/acp-integration/session/HistoryReplayer.test.js +374 -0
  22. package/dist/src/acp-integration/session/HistoryReplayer.test.js.map +1 -0
  23. package/dist/src/acp-integration/session/Session.d.ts +61 -0
  24. package/dist/src/acp-integration/session/Session.js +839 -0
  25. package/dist/src/acp-integration/session/Session.js.map +1 -0
  26. package/dist/src/acp-integration/session/SubAgentTracker.d.ts +51 -0
  27. package/dist/src/acp-integration/session/SubAgentTracker.js +257 -0
  28. package/dist/src/acp-integration/session/SubAgentTracker.js.map +1 -0
  29. package/dist/src/acp-integration/session/SubAgentTracker.test.d.ts +6 -0
  30. package/dist/src/acp-integration/session/SubAgentTracker.test.js +369 -0
  31. package/dist/src/acp-integration/session/SubAgentTracker.test.js.map +1 -0
  32. package/dist/src/acp-integration/session/emitters/BaseEmitter.d.ts +27 -0
  33. package/dist/src/acp-integration/session/emitters/BaseEmitter.js +34 -0
  34. package/dist/src/acp-integration/session/emitters/BaseEmitter.js.map +1 -0
  35. package/dist/src/acp-integration/session/emitters/MessageEmitter.d.ts +41 -0
  36. package/dist/src/acp-integration/session/emitters/MessageEmitter.js +77 -0
  37. package/dist/src/acp-integration/session/emitters/MessageEmitter.js.map +1 -0
  38. package/dist/src/acp-integration/session/emitters/MessageEmitter.test.d.ts +6 -0
  39. package/dist/src/acp-integration/session/emitters/MessageEmitter.test.js +174 -0
  40. package/dist/src/acp-integration/session/emitters/MessageEmitter.test.js.map +1 -0
  41. package/dist/src/acp-integration/session/emitters/PlanEmitter.d.ts +39 -0
  42. package/dist/src/acp-integration/session/emitters/PlanEmitter.js +83 -0
  43. package/dist/src/acp-integration/session/emitters/PlanEmitter.js.map +1 -0
  44. package/dist/src/acp-integration/session/emitters/PlanEmitter.test.d.ts +6 -0
  45. package/dist/src/acp-integration/session/emitters/PlanEmitter.test.js +176 -0
  46. package/dist/src/acp-integration/session/emitters/PlanEmitter.test.js.map +1 -0
  47. package/dist/src/acp-integration/session/emitters/ToolCallEmitter.d.ts +80 -0
  48. package/dist/src/acp-integration/session/emitters/ToolCallEmitter.js +248 -0
  49. package/dist/src/acp-integration/session/emitters/ToolCallEmitter.js.map +1 -0
  50. package/dist/src/acp-integration/session/emitters/ToolCallEmitter.test.d.ts +6 -0
  51. package/dist/src/acp-integration/session/emitters/ToolCallEmitter.test.js +561 -0
  52. package/dist/src/acp-integration/session/emitters/ToolCallEmitter.test.js.map +1 -0
  53. package/dist/src/acp-integration/session/emitters/index.d.ts +9 -0
  54. package/dist/src/acp-integration/session/emitters/index.js +10 -0
  55. package/dist/src/acp-integration/session/emitters/index.js.map +1 -0
  56. package/dist/src/acp-integration/session/index.d.ts +24 -0
  57. package/dist/src/acp-integration/session/index.js +16 -0
  58. package/dist/src/acp-integration/session/index.js.map +1 -0
  59. package/dist/src/acp-integration/session/types.d.ts +71 -0
  60. package/dist/src/acp-integration/session/types.js +7 -0
  61. package/dist/src/acp-integration/session/types.js.map +1 -0
  62. package/dist/src/commandMode.d.ts +11 -0
  63. package/dist/src/commandMode.js +238 -0
  64. package/dist/src/commandMode.js.map +1 -0
  65. package/dist/src/config/auth.d.ts +1 -0
  66. package/dist/src/config/auth.js +29 -0
  67. package/dist/src/config/auth.js.map +1 -1
  68. package/dist/src/config/config.d.ts +19 -3
  69. package/dist/src/config/config.js +175 -24
  70. package/dist/src/config/config.js.map +1 -1
  71. package/dist/src/config/extension.js +0 -2
  72. package/dist/src/config/extension.js.map +1 -1
  73. package/dist/src/config/extensions/update.test.js +9 -0
  74. package/dist/src/config/extensions/update.test.js.map +1 -1
  75. package/dist/src/config/settingsSchema.d.ts +53 -2
  76. package/dist/src/config/settingsSchema.js +46 -2
  77. package/dist/src/config/settingsSchema.js.map +1 -1
  78. package/dist/src/core/auth.d.ts +1 -1
  79. package/dist/src/core/auth.js +3 -2
  80. package/dist/src/core/auth.js.map +1 -1
  81. package/dist/src/core/initializer.js +3 -0
  82. package/dist/src/core/initializer.js.map +1 -1
  83. package/dist/src/gemini.js +75 -35
  84. package/dist/src/gemini.js.map +1 -1
  85. package/dist/src/gemini.test.js +37 -4
  86. package/dist/src/gemini.test.js.map +1 -1
  87. package/dist/src/generated/git-commit.d.ts +3 -3
  88. package/dist/src/generated/git-commit.js +3 -3
  89. package/dist/src/i18n/index.d.ts +10 -2
  90. package/dist/src/i18n/index.js +26 -1
  91. package/dist/src/i18n/index.js.map +1 -1
  92. package/dist/src/i18n/languages.d.ts +20 -0
  93. package/dist/src/i18n/languages.js +36 -0
  94. package/dist/src/i18n/languages.js.map +1 -0
  95. package/dist/src/i18n/locales/de.js +1073 -0
  96. package/dist/src/i18n/locales/en.js +121 -175
  97. package/dist/src/i18n/locales/ru.js +1095 -0
  98. package/dist/src/i18n/locales/zh.js +52 -174
  99. package/dist/src/nonInteractive/control/ControlDispatcher.d.ts +24 -1
  100. package/dist/src/nonInteractive/control/ControlDispatcher.js +46 -17
  101. package/dist/src/nonInteractive/control/ControlDispatcher.js.map +1 -1
  102. package/dist/src/nonInteractive/control/ControlService.d.ts +2 -1
  103. package/dist/src/nonInteractive/control/ControlService.js +22 -37
  104. package/dist/src/nonInteractive/control/ControlService.js.map +1 -1
  105. package/dist/src/nonInteractive/control/controllers/baseController.d.ts +2 -1
  106. package/dist/src/nonInteractive/control/controllers/baseController.js +38 -5
  107. package/dist/src/nonInteractive/control/controllers/baseController.js.map +1 -1
  108. package/dist/src/nonInteractive/control/controllers/permissionController.d.ts +1 -22
  109. package/dist/src/nonInteractive/control/controllers/permissionController.js +38 -38
  110. package/dist/src/nonInteractive/control/controllers/permissionController.js.map +1 -1
  111. package/dist/src/nonInteractive/control/controllers/sdkMcpController.d.ts +54 -0
  112. package/dist/src/nonInteractive/control/controllers/sdkMcpController.js +84 -0
  113. package/dist/src/nonInteractive/control/controllers/sdkMcpController.js.map +1 -0
  114. package/dist/src/nonInteractive/control/controllers/systemController.d.ts +16 -6
  115. package/dist/src/nonInteractive/control/controllers/systemController.js +184 -44
  116. package/dist/src/nonInteractive/control/controllers/systemController.js.map +1 -1
  117. package/dist/src/nonInteractive/control/types/serviceAPIs.d.ts +1 -16
  118. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.d.ts +11 -0
  119. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.js +64 -5
  120. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.js.map +1 -1
  121. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.test.js +40 -0
  122. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.test.js.map +1 -1
  123. package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.test.js +50 -0
  124. package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.test.js.map +1 -1
  125. package/dist/src/nonInteractive/session.d.ts +0 -16
  126. package/dist/src/nonInteractive/session.js +317 -321
  127. package/dist/src/nonInteractive/session.js.map +1 -1
  128. package/dist/src/nonInteractive/session.test.js +6 -0
  129. package/dist/src/nonInteractive/session.test.js.map +1 -1
  130. package/dist/src/nonInteractive/types.d.ts +57 -3
  131. package/dist/src/nonInteractive/types.js +0 -1
  132. package/dist/src/nonInteractive/types.js.map +1 -1
  133. package/dist/src/nonInteractiveCli.js +121 -56
  134. package/dist/src/nonInteractiveCli.js.map +1 -1
  135. package/dist/src/nonInteractiveCliCommands.d.ts +48 -9
  136. package/dist/src/nonInteractiveCliCommands.js +180 -64
  137. package/dist/src/nonInteractiveCliCommands.js.map +1 -1
  138. package/dist/src/nonInteractiveCliCommands.test.d.ts +6 -0
  139. package/dist/src/nonInteractiveCliCommands.test.js +157 -0
  140. package/dist/src/nonInteractiveCliCommands.test.js.map +1 -0
  141. package/dist/src/services/BuiltinCommandLoader.js +7 -6
  142. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  143. package/dist/src/services/BuiltinCommandLoader.test.js +0 -3
  144. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  145. package/dist/src/services/McpPromptLoader.js +4 -2
  146. package/dist/src/services/McpPromptLoader.js.map +1 -1
  147. package/dist/src/services/McpPromptLoader.test.js +1 -1
  148. package/dist/src/services/McpPromptLoader.test.js.map +1 -1
  149. package/dist/src/test-utils/mockCommandContext.js +11 -2
  150. package/dist/src/test-utils/mockCommandContext.js.map +1 -1
  151. package/dist/src/ui/AppContainer.js +62 -56
  152. package/dist/src/ui/AppContainer.js.map +1 -1
  153. package/dist/src/ui/AppContainer.test.js +0 -46
  154. package/dist/src/ui/AppContainer.test.js.map +1 -1
  155. package/dist/src/ui/auth/AuthDialog.test.js +4 -4
  156. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  157. package/dist/src/ui/auth/useAuth.js +31 -4
  158. package/dist/src/ui/auth/useAuth.js.map +1 -1
  159. package/dist/src/ui/commands/approvalModeCommand.js +53 -4
  160. package/dist/src/ui/commands/approvalModeCommand.js.map +1 -1
  161. package/dist/src/ui/commands/approvalModeCommand.test.js +72 -10
  162. package/dist/src/ui/commands/approvalModeCommand.test.js.map +1 -1
  163. package/dist/src/ui/commands/clearCommand.js +22 -10
  164. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  165. package/dist/src/ui/commands/compressCommand.js +86 -16
  166. package/dist/src/ui/commands/compressCommand.js.map +1 -1
  167. package/dist/src/ui/commands/languageCommand.d.ts +6 -1
  168. package/dist/src/ui/commands/languageCommand.js +162 -183
  169. package/dist/src/ui/commands/languageCommand.js.map +1 -1
  170. package/dist/src/ui/commands/languageCommand.test.d.ts +6 -0
  171. package/dist/src/ui/commands/languageCommand.test.js +558 -0
  172. package/dist/src/ui/commands/languageCommand.test.js.map +1 -0
  173. package/dist/src/ui/commands/modelCommand.js +4 -2
  174. package/dist/src/ui/commands/modelCommand.js.map +1 -1
  175. package/dist/src/ui/commands/quitCommand.d.ts +0 -1
  176. package/dist/src/ui/commands/quitCommand.js +0 -27
  177. package/dist/src/ui/commands/quitCommand.js.map +1 -1
  178. package/dist/src/ui/commands/restoreCommand.js +1 -1
  179. package/dist/src/ui/commands/restoreCommand.js.map +1 -1
  180. package/dist/src/ui/commands/resumeCommand.d.ts +7 -0
  181. package/dist/src/ui/commands/resumeCommand.js +19 -0
  182. package/dist/src/ui/commands/resumeCommand.js.map +1 -0
  183. package/dist/src/ui/commands/resumeCommand.test.d.ts +6 -0
  184. package/dist/src/ui/commands/resumeCommand.test.js +32 -0
  185. package/dist/src/ui/commands/resumeCommand.test.js.map +1 -0
  186. package/dist/src/ui/commands/reviewCommand.d.ts +9 -0
  187. package/dist/src/ui/commands/reviewCommand.js +2046 -0
  188. package/dist/src/ui/commands/reviewCommand.js.map +1 -0
  189. package/dist/src/ui/commands/reviewCommand.test.js +600 -0
  190. package/dist/src/ui/commands/reviewCommand.test.js.map +1 -0
  191. package/dist/src/ui/commands/setupGithubCommand.js +11 -10
  192. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  193. package/dist/src/ui/commands/setupGithubCommand.test.js +14 -14
  194. package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
  195. package/dist/src/ui/commands/summaryCommand.js +129 -42
  196. package/dist/src/ui/commands/summaryCommand.js.map +1 -1
  197. package/dist/src/ui/commands/types.d.ts +24 -10
  198. package/dist/src/ui/commands/types.js.map +1 -1
  199. package/dist/src/ui/commands/ums/unittestCommand.d.ts +9 -0
  200. package/dist/src/ui/commands/ums/unittestCommand.js +387 -0
  201. package/dist/src/ui/commands/ums/unittestCommand.js.map +1 -0
  202. package/dist/src/ui/components/Composer.test.js +1 -2
  203. package/dist/src/ui/components/Composer.test.js.map +1 -1
  204. package/dist/src/ui/components/ContextUsageDisplay.d.ts +3 -2
  205. package/dist/src/ui/components/ContextUsageDisplay.js +8 -2
  206. package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -1
  207. package/dist/src/ui/components/DialogManager.js +7 -23
  208. package/dist/src/ui/components/DialogManager.js.map +1 -1
  209. package/dist/src/ui/components/Footer.js +2 -3
  210. package/dist/src/ui/components/Footer.js.map +1 -1
  211. package/dist/src/ui/components/Help.js +13 -2
  212. package/dist/src/ui/components/Help.js.map +1 -1
  213. package/dist/src/ui/components/Help.test.js +6 -0
  214. package/dist/src/ui/components/Help.test.js.map +1 -1
  215. package/dist/src/ui/components/HistoryItemDisplay.js +3 -1
  216. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  217. package/dist/src/ui/components/HistoryItemDisplay.test.js +5 -2
  218. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  219. package/dist/src/ui/components/InputPrompt.js +6 -4
  220. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  221. package/dist/src/ui/components/ModelDialog.d.ts +3 -1
  222. package/dist/src/ui/components/ModelDialog.js +25 -5
  223. package/dist/src/ui/components/ModelDialog.js.map +1 -1
  224. package/dist/src/ui/components/OpenAIKeyPrompt.d.ts +3 -0
  225. package/dist/src/ui/components/OpenAIKeyPrompt.js +1 -0
  226. package/dist/src/ui/components/OpenAIKeyPrompt.js.map +1 -1
  227. package/dist/src/ui/components/PermissionsModifyTrustDialog.js +1 -1
  228. package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -1
  229. package/dist/src/ui/components/SessionPicker.d.ts +18 -0
  230. package/dist/src/ui/components/SessionPicker.js +69 -0
  231. package/dist/src/ui/components/SessionPicker.js.map +1 -0
  232. package/dist/src/ui/components/SessionSummaryDisplay.js +14 -2
  233. package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -1
  234. package/dist/src/ui/components/SettingsDialog.test.js +2 -2
  235. package/dist/src/ui/components/StandaloneSessionPicker.d.ts +10 -0
  236. package/dist/src/ui/components/StandaloneSessionPicker.js +78 -0
  237. package/dist/src/ui/components/StandaloneSessionPicker.js.map +1 -0
  238. package/dist/src/ui/components/StandaloneSessionPicker.test.d.ts +6 -0
  239. package/dist/src/ui/components/StandaloneSessionPicker.test.js +410 -0
  240. package/dist/src/ui/components/StandaloneSessionPicker.test.js.map +1 -0
  241. package/dist/src/ui/components/SuggestionsDisplay.js +3 -2
  242. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  243. package/dist/src/ui/components/messages/GeminiThoughtMessage.d.ts +18 -0
  244. package/dist/src/ui/components/messages/GeminiThoughtMessage.js +14 -0
  245. package/dist/src/ui/components/messages/GeminiThoughtMessage.js.map +1 -0
  246. package/dist/src/ui/components/messages/GeminiThoughtMessageContent.d.ts +18 -0
  247. package/dist/src/ui/components/messages/GeminiThoughtMessageContent.js +14 -0
  248. package/dist/src/ui/components/messages/GeminiThoughtMessageContent.js.map +1 -0
  249. package/dist/src/ui/components/subagents/manage/AgentEditStep.js +4 -1
  250. package/dist/src/ui/components/subagents/manage/AgentEditStep.js.map +1 -1
  251. package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js +2 -2
  252. package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js.map +1 -1
  253. package/dist/src/ui/components/ums/UMSKeyPrompt.d.ts +1 -1
  254. package/dist/src/ui/components/ums/UMSKeyPrompt.js +24 -4
  255. package/dist/src/ui/components/ums/UMSKeyPrompt.js.map +1 -1
  256. package/dist/src/ui/components/ums/umsStartupWarnings.d.ts +6 -0
  257. package/dist/src/ui/components/ums/umsStartupWarnings.js +47 -0
  258. package/dist/src/ui/components/ums/umsStartupWarnings.js.map +1 -0
  259. package/dist/src/ui/contexts/SessionContext.d.ts +2 -0
  260. package/dist/src/ui/contexts/SessionContext.js +18 -10
  261. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  262. package/dist/src/ui/contexts/UIActionsContext.d.ts +3 -1
  263. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  264. package/dist/src/ui/contexts/UIStateContext.d.ts +3 -11
  265. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  266. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +3 -8
  267. package/dist/src/ui/hooks/slashCommandProcessor.js +77 -101
  268. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  269. package/dist/src/ui/hooks/useAttentionNotifications.d.ts +3 -1
  270. package/dist/src/ui/hooks/useAttentionNotifications.js +10 -5
  271. package/dist/src/ui/hooks/useAttentionNotifications.js.map +1 -1
  272. package/dist/src/ui/hooks/useAttentionNotifications.test.js +39 -2
  273. package/dist/src/ui/hooks/useAttentionNotifications.test.js.map +1 -1
  274. package/dist/src/ui/hooks/useDialogClose.d.ts +0 -3
  275. package/dist/src/ui/hooks/useDialogClose.js +0 -2
  276. package/dist/src/ui/hooks/useDialogClose.js.map +1 -1
  277. package/dist/src/ui/hooks/useGeminiStream.js +87 -12
  278. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  279. package/dist/src/ui/hooks/useLoadingIndicator.test.js +11 -6
  280. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  281. package/dist/src/ui/hooks/useLogger.d.ts +1 -1
  282. package/dist/src/ui/hooks/useLogger.js +6 -3
  283. package/dist/src/ui/hooks/useLogger.js.map +1 -1
  284. package/dist/src/ui/hooks/usePhraseCycler.js +12 -136
  285. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  286. package/dist/src/ui/hooks/useQwenAuth.test.js +1 -1
  287. package/dist/src/ui/hooks/useQwenAuth.test.js.map +1 -1
  288. package/dist/src/ui/hooks/useReactToolScheduler.js +2 -2
  289. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  290. package/dist/src/ui/hooks/useResumeCommand.d.ts +20 -0
  291. package/dist/src/ui/hooks/useResumeCommand.js +49 -0
  292. package/dist/src/ui/hooks/useResumeCommand.js.map +1 -0
  293. package/dist/src/ui/hooks/useResumeCommand.test.d.ts +6 -0
  294. package/dist/src/ui/hooks/useResumeCommand.test.js +144 -0
  295. package/dist/src/ui/hooks/useResumeCommand.test.js.map +1 -0
  296. package/dist/src/ui/hooks/useSessionPicker.d.ts +36 -0
  297. package/dist/src/ui/hooks/useSessionPicker.js +189 -0
  298. package/dist/src/ui/hooks/useSessionPicker.js.map +1 -0
  299. package/dist/src/ui/hooks/useSlashCompletion.js +9 -1
  300. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  301. package/dist/src/ui/hooks/useSlashCompletion.test.js +36 -31
  302. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  303. package/dist/src/ui/hooks/useToolScheduler.test.js +2 -1
  304. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  305. package/dist/src/ui/models/availableModels.d.ts +9 -2
  306. package/dist/src/ui/models/availableModels.js +32 -35
  307. package/dist/src/ui/models/availableModels.js.map +1 -1
  308. package/dist/src/ui/noninteractive/nonInteractiveUi.js +0 -1
  309. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -1
  310. package/dist/src/ui/types.d.ts +9 -14
  311. package/dist/src/ui/types.js +0 -1
  312. package/dist/src/ui/types.js.map +1 -1
  313. package/dist/src/ui/utils/InlineMarkdownRenderer.d.ts +1 -0
  314. package/dist/src/ui/utils/InlineMarkdownRenderer.js +2 -2
  315. package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
  316. package/dist/src/ui/utils/MarkdownDisplay.d.ts +1 -0
  317. package/dist/src/ui/utils/MarkdownDisplay.js +13 -13
  318. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  319. package/dist/src/ui/utils/formatters.d.ts +6 -0
  320. package/dist/src/ui/utils/formatters.js +31 -0
  321. package/dist/src/ui/utils/formatters.js.map +1 -1
  322. package/dist/src/ui/utils/formatters.test.js +51 -2
  323. package/dist/src/ui/utils/formatters.test.js.map +1 -1
  324. package/dist/src/ui/utils/resumeHistoryUtils.d.ts +19 -0
  325. package/dist/src/ui/utils/resumeHistoryUtils.js +267 -0
  326. package/dist/src/ui/utils/resumeHistoryUtils.js.map +1 -0
  327. package/dist/src/ui/utils/resumeHistoryUtils.test.d.ts +6 -0
  328. package/dist/src/ui/utils/resumeHistoryUtils.test.js +253 -0
  329. package/dist/src/ui/utils/resumeHistoryUtils.test.js.map +1 -0
  330. package/dist/src/ui/utils/sessionPickerUtils.d.ts +30 -0
  331. package/dist/src/ui/utils/sessionPickerUtils.js +41 -0
  332. package/dist/src/ui/utils/sessionPickerUtils.js.map +1 -0
  333. package/dist/src/ui/utils/sessionPickerUtils.test.d.ts +6 -0
  334. package/dist/src/ui/utils/sessionPickerUtils.test.js +38 -0
  335. package/dist/src/ui/utils/sessionPickerUtils.test.js.map +1 -0
  336. package/dist/src/utils/attentionNotification.d.ts +1 -0
  337. package/dist/src/utils/attentionNotification.js +4 -0
  338. package/dist/src/utils/attentionNotification.js.map +1 -1
  339. package/dist/src/utils/errors.d.ts +1 -1
  340. package/dist/src/utils/errors.js +14 -3
  341. package/dist/src/utils/errors.js.map +1 -1
  342. package/dist/src/utils/errors.test.js +43 -1
  343. package/dist/src/utils/errors.test.js.map +1 -1
  344. package/dist/src/utils/gitUtils.js +25 -8
  345. package/dist/src/utils/gitUtils.js.map +1 -1
  346. package/dist/src/utils/gitUtils.test.js +59 -0
  347. package/dist/src/utils/gitUtils.test.js.map +1 -1
  348. package/dist/src/utils/nonInteractiveHelpers.d.ts +3 -1
  349. package/dist/src/utils/nonInteractiveHelpers.js +14 -15
  350. package/dist/src/utils/nonInteractiveHelpers.js.map +1 -1
  351. package/dist/src/utils/nonInteractiveHelpers.test.js +36 -21
  352. package/dist/src/utils/nonInteractiveHelpers.test.js.map +1 -1
  353. package/dist/src/utils/relaunch.js +2 -2
  354. package/dist/src/utils/relaunch.js.map +1 -1
  355. package/dist/src/utils/relaunch.test.js +5 -5
  356. package/dist/src/utils/relaunch.test.js.map +1 -1
  357. package/dist/src/utils/systemInfo.js +2 -1
  358. package/dist/src/utils/systemInfo.js.map +1 -1
  359. package/dist/src/validateNonInterActiveAuth.js +10 -1
  360. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  361. package/dist/tsconfig.tsbuildinfo +1 -1
  362. package/package.json +7 -7
  363. package/dist/src/nonInteractive/control/controllers/mcpController.d.ts +0 -42
  364. package/dist/src/nonInteractive/control/controllers/mcpController.js +0 -205
  365. package/dist/src/nonInteractive/control/controllers/mcpController.js.map +0 -1
  366. package/dist/src/ui/commands/chatCommand.d.ts +0 -9
  367. package/dist/src/ui/commands/chatCommand.js +0 -351
  368. package/dist/src/ui/commands/chatCommand.js.map +0 -1
  369. package/dist/src/ui/commands/corgiCommand.d.ts +0 -7
  370. package/dist/src/ui/commands/corgiCommand.js +0 -16
  371. package/dist/src/ui/commands/corgiCommand.js.map +0 -1
  372. package/dist/src/ui/components/ProQuotaDialog.d.ts +0 -13
  373. package/dist/src/ui/components/ProQuotaDialog.js +0 -24
  374. package/dist/src/ui/components/ProQuotaDialog.js.map +0 -1
  375. package/dist/src/ui/components/ProQuotaDialog.test.js +0 -58
  376. package/dist/src/ui/components/ProQuotaDialog.test.js.map +0 -1
  377. package/dist/src/ui/components/QuitConfirmationDialog.d.ts +0 -17
  378. package/dist/src/ui/components/QuitConfirmationDialog.js +0 -49
  379. package/dist/src/ui/components/QuitConfirmationDialog.js.map +0 -1
  380. package/dist/src/ui/hooks/usePromptCompletion.d.ts +0 -23
  381. package/dist/src/ui/hooks/usePromptCompletion.js +0 -177
  382. package/dist/src/ui/hooks/usePromptCompletion.js.map +0 -1
  383. package/dist/src/ui/hooks/useQuitConfirmation.d.ts +0 -14
  384. package/dist/src/ui/hooks/useQuitConfirmation.js +0 -36
  385. package/dist/src/ui/hooks/useQuitConfirmation.js.map +0 -1
  386. package/dist/src/ui/hooks/useQuotaAndFallback.d.ts +0 -21
  387. package/dist/src/ui/hooks/useQuotaAndFallback.js +0 -122
  388. package/dist/src/ui/hooks/useQuotaAndFallback.js.map +0 -1
  389. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +0 -269
  390. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +0 -1
  391. package/dist/src/zed-integration/acp.js.map +0 -1
  392. package/dist/src/zed-integration/fileSystemService.js.map +0 -1
  393. package/dist/src/zed-integration/schema.js.map +0 -1
  394. package/dist/src/zed-integration/zedIntegration.d.ts +0 -17
  395. package/dist/src/zed-integration/zedIntegration.js +0 -1135
  396. package/dist/src/zed-integration/zedIntegration.js.map +0 -1
  397. /package/dist/src/ui/{components/ProQuotaDialog.test.d.ts → commands/reviewCommand.test.d.ts} +0 -0
@@ -63,20 +63,52 @@ export class BaseController {
63
63
  * Send an outgoing control request to SDK
64
64
  *
65
65
  * Manages lifecycle: register -> send -> wait for response -> deregister
66
+ * Respects the provided AbortSignal for cancellation.
66
67
  */
67
- async sendControlRequest(payload, timeoutMs = DEFAULT_REQUEST_TIMEOUT_MS) {
68
+ async sendControlRequest(payload, timeoutMs = DEFAULT_REQUEST_TIMEOUT_MS, signal) {
69
+ // Check if already aborted
70
+ if (signal?.aborted) {
71
+ throw new Error('Request aborted');
72
+ }
68
73
  const requestId = randomUUID();
69
74
  return new Promise((resolve, reject) => {
75
+ // Setup abort handler
76
+ const abortHandler = () => {
77
+ this.registry.deregisterOutgoingRequest(requestId);
78
+ reject(new Error('Request aborted'));
79
+ if (this.context.debugMode) {
80
+ console.error(`[${this.controllerName}] Outgoing request aborted: ${requestId}`);
81
+ }
82
+ };
83
+ if (signal) {
84
+ signal.addEventListener('abort', abortHandler, { once: true });
85
+ }
70
86
  // Setup timeout
71
87
  const timeoutId = setTimeout(() => {
88
+ if (signal) {
89
+ signal.removeEventListener('abort', abortHandler);
90
+ }
72
91
  this.registry.deregisterOutgoingRequest(requestId);
73
92
  reject(new Error('Control request timeout'));
74
93
  if (this.context.debugMode) {
75
94
  console.error(`[${this.controllerName}] Outgoing request timeout: ${requestId}`);
76
95
  }
77
96
  }, timeoutMs);
97
+ // Wrap resolve/reject to clean up abort listener
98
+ const wrappedResolve = (response) => {
99
+ if (signal) {
100
+ signal.removeEventListener('abort', abortHandler);
101
+ }
102
+ resolve(response);
103
+ };
104
+ const wrappedReject = (error) => {
105
+ if (signal) {
106
+ signal.removeEventListener('abort', abortHandler);
107
+ }
108
+ reject(error);
109
+ };
78
110
  // Register with central registry
79
- this.registry.registerOutgoingRequest(requestId, this.controllerName, resolve, reject, timeoutId);
111
+ this.registry.registerOutgoingRequest(requestId, this.controllerName, wrappedResolve, wrappedReject, timeoutId);
80
112
  // Send control request
81
113
  const request = {
82
114
  type: 'control_request',
@@ -87,6 +119,9 @@ export class BaseController {
87
119
  this.context.streamJson.send(request);
88
120
  }
89
121
  catch (error) {
122
+ if (signal) {
123
+ signal.removeEventListener('abort', abortHandler);
124
+ }
90
125
  this.registry.deregisterOutgoingRequest(requestId);
91
126
  reject(error);
92
127
  }
@@ -95,8 +130,6 @@ export class BaseController {
95
130
  /**
96
131
  * Cleanup resources
97
132
  */
98
- cleanup() {
99
- // Subclasses can override to add cleanup logic
100
- }
133
+ cleanup() { }
101
134
  }
102
135
  //# sourceMappingURL=baseController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseController.js","sourceRoot":"","sources":["../../../../../src/nonInteractive/control/controllers/baseController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseController.js","sourceRoot":"","sources":["../../../../../src/nonInteractive/control/controllers/baseController.ts"],"names":[],"mappings":"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"}
@@ -3,16 +3,6 @@
3
3
  * Copyright 2025 Qwen Team
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- /**
7
- * Permission Controller
8
- *
9
- * Handles permission-related control requests:
10
- * - can_use_tool: Check if tool usage is allowed
11
- * - set_permission_mode: Change permission mode at runtime
12
- *
13
- * Abstracts all permission logic from the session manager to keep it clean.
14
- */
15
- import type { ToolCallRequestInfo } from '@umsai/ums-code-core';
16
6
  import type { ControlRequestPayload, PermissionSuggestion } from '../../types.js';
17
7
  import { BaseController } from './baseController.js';
18
8
  export declare class PermissionController extends BaseController {
@@ -20,7 +10,7 @@ export declare class PermissionController extends BaseController {
20
10
  /**
21
11
  * Handle permission control requests
22
12
  */
23
- protected handleRequestPayload(payload: ControlRequestPayload, _signal: AbortSignal): Promise<Record<string, unknown>>;
13
+ protected handleRequestPayload(payload: ControlRequestPayload, signal: AbortSignal): Promise<Record<string, unknown>>;
24
14
  /**
25
15
  * Handle can_use_tool request
26
16
  *
@@ -51,17 +41,6 @@ export declare class PermissionController extends BaseController {
51
41
  * helping the host application present appropriate permission options.
52
42
  */
53
43
  buildPermissionSuggestions(confirmationDetails: unknown): PermissionSuggestion[] | null;
54
- /**
55
- * Check if a tool should be executed based on current permission settings
56
- *
57
- * This is a convenience method for direct tool execution checks without
58
- * going through the control request flow.
59
- */
60
- shouldAllowTool(toolRequest: ToolCallRequestInfo, confirmationDetails?: unknown): Promise<{
61
- allowed: boolean;
62
- message?: string;
63
- updatedArgs?: Record<string, unknown>;
64
- }>;
65
44
  /**
66
45
  * Get callback for monitoring tool calls and handling outgoing permission requests
67
46
  * This is passed to executeToolCall to hook into CoreToolScheduler updates
@@ -10,12 +10,15 @@ export class PermissionController extends BaseController {
10
10
  /**
11
11
  * Handle permission control requests
12
12
  */
13
- async handleRequestPayload(payload, _signal) {
13
+ async handleRequestPayload(payload, signal) {
14
+ if (signal.aborted) {
15
+ throw new Error('Request aborted');
16
+ }
14
17
  switch (payload.subtype) {
15
18
  case 'can_use_tool':
16
- return this.handleCanUseTool(payload);
19
+ return this.handleCanUseTool(payload, signal);
17
20
  case 'set_permission_mode':
18
- return this.handleSetPermissionMode(payload);
21
+ return this.handleSetPermissionMode(payload, signal);
19
22
  default:
20
23
  throw new Error(`Unsupported request subtype in PermissionController`);
21
24
  }
@@ -28,7 +31,10 @@ export class PermissionController extends BaseController {
28
31
  * - Tool registry validation
29
32
  * - Error handling with safe defaults
30
33
  */
31
- async handleCanUseTool(payload) {
34
+ async handleCanUseTool(payload, signal) {
35
+ if (signal.aborted) {
36
+ throw new Error('Request aborted');
37
+ }
32
38
  const toolName = payload.tool_name;
33
39
  if (!toolName ||
34
40
  typeof toolName !== 'string' ||
@@ -125,7 +131,10 @@ export class PermissionController extends BaseController {
125
131
  *
126
132
  * Updates the permission mode in the context
127
133
  */
128
- async handleSetPermissionMode(payload) {
134
+ async handleSetPermissionMode(payload, signal) {
135
+ if (signal.aborted) {
136
+ throw new Error('Request aborted');
137
+ }
129
138
  const mode = payload.mode;
130
139
  const validModes = [
131
140
  'default',
@@ -137,6 +146,7 @@ export class PermissionController extends BaseController {
137
146
  throw new Error(`Invalid permission mode: ${mode}. Valid values are: ${validModes.join(', ')}`);
138
147
  }
139
148
  this.context.permissionMode = mode;
149
+ this.context.config.setApprovalMode(mode);
140
150
  if (this.context.debugMode) {
141
151
  console.error(`[PermissionController] Permission mode updated to: ${mode}`);
142
152
  }
@@ -246,36 +256,6 @@ export class PermissionController extends BaseController {
246
256
  ];
247
257
  }
248
258
  }
249
- /**
250
- * Check if a tool should be executed based on current permission settings
251
- *
252
- * This is a convenience method for direct tool execution checks without
253
- * going through the control request flow.
254
- */
255
- async shouldAllowTool(toolRequest, confirmationDetails) {
256
- // Check permission mode
257
- const modeResult = this.checkPermissionMode();
258
- if (!modeResult.allowed) {
259
- return {
260
- allowed: false,
261
- message: modeResult.message,
262
- };
263
- }
264
- // Check tool registry
265
- const registryResult = this.checkToolRegistry(toolRequest.name);
266
- if (!registryResult.allowed) {
267
- return {
268
- allowed: false,
269
- message: registryResult.message,
270
- };
271
- }
272
- // If we have confirmation details, we could potentially modify args
273
- // This is a hook for future enhancement
274
- if (confirmationDetails) {
275
- // Future: handle argument modifications based on confirmation details
276
- }
277
- return { allowed: true };
278
- }
279
259
  /**
280
260
  * Get callback for monitoring tool calls and handling outgoing permission requests
281
261
  * This is passed to executeToolCall to hook into CoreToolScheduler updates
@@ -305,6 +285,11 @@ export class PermissionController extends BaseController {
305
285
  */
306
286
  async handleOutgoingPermissionRequest(toolCall) {
307
287
  try {
288
+ // Check if already aborted
289
+ if (this.context.abortSignal?.aborted) {
290
+ await toolCall.confirmationDetails.onConfirm(ToolConfirmationOutcome.Cancel);
291
+ return;
292
+ }
308
293
  const inputFormat = this.context.config.getInputFormat?.();
309
294
  const isStreamJsonMode = inputFormat === InputFormat.STREAM_JSON;
310
295
  if (!isStreamJsonMode) {
@@ -325,7 +310,8 @@ export class PermissionController extends BaseController {
325
310
  input: toolCall.request.args,
326
311
  permission_suggestions: permissionSuggestions,
327
312
  blocked_path: null,
328
- }, 30000);
313
+ }, undefined, // use default timeout
314
+ this.context.abortSignal);
329
315
  if (response.subtype !== 'success') {
330
316
  await toolCall.confirmationDetails.onConfirm(ToolConfirmationOutcome.Cancel);
331
317
  return;
@@ -341,14 +327,28 @@ export class PermissionController extends BaseController {
341
327
  await toolCall.confirmationDetails.onConfirm(ToolConfirmationOutcome.ProceedOnce);
342
328
  }
343
329
  else {
344
- await toolCall.confirmationDetails.onConfirm(ToolConfirmationOutcome.Cancel);
330
+ // Extract cancel message from response if available
331
+ const cancelMessage = typeof payload['message'] === 'string'
332
+ ? payload['message']
333
+ : undefined;
334
+ await toolCall.confirmationDetails.onConfirm(ToolConfirmationOutcome.Cancel, cancelMessage ? { cancelMessage } : undefined);
345
335
  }
346
336
  }
347
337
  catch (error) {
348
338
  if (this.context.debugMode) {
349
339
  console.error('[PermissionController] Outgoing permission failed:', error);
350
340
  }
351
- await toolCall.confirmationDetails.onConfirm(ToolConfirmationOutcome.Cancel);
341
+ // On error, use default cancel message
342
+ // Only pass payload for exec and mcp types that support it
343
+ const confirmationType = toolCall.confirmationDetails.type;
344
+ if (['edit', 'exec', 'mcp'].includes(confirmationType)) {
345
+ const execOrMcpDetails = toolCall.confirmationDetails;
346
+ await execOrMcpDetails.onConfirm(ToolConfirmationOutcome.Cancel, undefined);
347
+ }
348
+ else {
349
+ // For other types, don't pass payload (backward compatible)
350
+ await toolCall.confirmationDetails.onConfirm(ToolConfirmationOutcome.Cancel);
351
+ }
352
352
  }
353
353
  finally {
354
354
  this.pendingOutgoingRequests.delete(toolCall.request.callId);
@@ -1 +1 @@
1
- {"version":3,"file":"permissionController.js","sourceRoot":"","sources":["../../../../../src/nonInteractive/control/controllers/permissionController.ts"],"names":[],"mappings":"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"}
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, _signal: AbortSignal): Promise<Record<string, unknown>>;
20
+ protected handleRequestPayload(payload: ControlRequestPayload, signal: AbortSignal): Promise<Record<string, unknown>>;
21
21
  /**
22
22
  * Handle initialize request
23
23
  *
24
- * Registers SDK MCP servers and returns capabilities
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 control commands
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 getAvailableCommands
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
  }