@umsai/ums-code 0.1.4-v2 → 0.3.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 (382) hide show
  1. package/dist/package.json +11 -3
  2. package/dist/src/config/config.d.ts +6 -0
  3. package/dist/src/config/config.js +102 -11
  4. package/dist/src/config/config.js.map +1 -1
  5. package/dist/src/config/settings.d.ts +5 -0
  6. package/dist/src/config/settings.js +15 -1
  7. package/dist/src/config/settings.js.map +1 -1
  8. package/dist/src/config/settingsSchema.d.ts +75 -17
  9. package/dist/src/config/settingsSchema.js +57 -17
  10. package/dist/src/config/settingsSchema.js.map +1 -1
  11. package/dist/src/config/webSearch.d.ts +35 -0
  12. package/dist/src/config/webSearch.js +87 -0
  13. package/dist/src/config/webSearch.js.map +1 -0
  14. package/dist/src/core/auth.d.ts +1 -1
  15. package/dist/src/core/auth.js +19 -3
  16. package/dist/src/core/auth.js.map +1 -1
  17. package/dist/src/core/initializer.js +13 -2
  18. package/dist/src/core/initializer.js.map +1 -1
  19. package/dist/src/core/theme.js +4 -1
  20. package/dist/src/core/theme.js.map +1 -1
  21. package/dist/src/gemini.d.ts +1 -1
  22. package/dist/src/gemini.js +53 -44
  23. package/dist/src/gemini.js.map +1 -1
  24. package/dist/src/gemini.test.js +117 -0
  25. package/dist/src/gemini.test.js.map +1 -1
  26. package/dist/src/generated/git-commit.d.ts +2 -2
  27. package/dist/src/generated/git-commit.js +2 -2
  28. package/dist/src/i18n/index.d.ts +18 -0
  29. package/dist/src/i18n/index.js +184 -0
  30. package/dist/src/i18n/index.js.map +1 -0
  31. package/dist/src/i18n/locales/en.js +1129 -0
  32. package/dist/src/i18n/locales/zh.js +1052 -0
  33. package/dist/src/nonInteractive/control/ControlContext.d.ts +63 -0
  34. package/dist/src/nonInteractive/control/ControlContext.js +31 -0
  35. package/dist/src/nonInteractive/control/ControlContext.js.map +1 -0
  36. package/dist/src/nonInteractive/control/ControlDispatcher.d.ts +86 -0
  37. package/dist/src/nonInteractive/control/ControlDispatcher.js +238 -0
  38. package/dist/src/nonInteractive/control/ControlDispatcher.js.map +1 -0
  39. package/dist/src/nonInteractive/control/ControlDispatcher.test.d.ts +6 -0
  40. package/dist/src/nonInteractive/control/ControlDispatcher.test.js +549 -0
  41. package/dist/src/nonInteractive/control/ControlDispatcher.test.js.map +1 -0
  42. package/dist/src/nonInteractive/control/ControlService.d.ts +78 -0
  43. package/dist/src/nonInteractive/control/ControlService.js +154 -0
  44. package/dist/src/nonInteractive/control/ControlService.js.map +1 -0
  45. package/dist/src/nonInteractive/control/controllers/baseController.d.ts +50 -0
  46. package/dist/src/nonInteractive/control/controllers/baseController.js +102 -0
  47. package/dist/src/nonInteractive/control/controllers/baseController.js.map +1 -0
  48. package/dist/src/nonInteractive/control/controllers/hookController.d.ts +25 -0
  49. package/dist/src/nonInteractive/control/controllers/hookController.js +42 -0
  50. package/dist/src/nonInteractive/control/controllers/hookController.js.map +1 -0
  51. package/dist/src/nonInteractive/control/controllers/mcpController.d.ts +42 -0
  52. package/dist/src/nonInteractive/control/controllers/mcpController.js +205 -0
  53. package/dist/src/nonInteractive/control/controllers/mcpController.js.map +1 -0
  54. package/dist/src/nonInteractive/control/controllers/permissionController.d.ts +78 -0
  55. package/dist/src/nonInteractive/control/controllers/permissionController.js +358 -0
  56. package/dist/src/nonInteractive/control/controllers/permissionController.js.map +1 -0
  57. package/dist/src/nonInteractive/control/controllers/systemController.d.ts +56 -0
  58. package/dist/src/nonInteractive/control/controllers/systemController.js +166 -0
  59. package/dist/src/nonInteractive/control/controllers/systemController.js.map +1 -0
  60. package/dist/src/nonInteractive/control/types/serviceAPIs.d.ts +120 -0
  61. package/dist/src/nonInteractive/control/types/serviceAPIs.js +7 -0
  62. package/dist/src/nonInteractive/control/types/serviceAPIs.js.map +1 -0
  63. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.d.ts +446 -0
  64. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.js +891 -0
  65. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.js.map +1 -0
  66. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.test.d.ts +6 -0
  67. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.test.js +1197 -0
  68. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.test.js.map +1 -0
  69. package/dist/src/nonInteractive/io/JsonOutputAdapter.d.ts +29 -0
  70. package/dist/src/nonInteractive/io/JsonOutputAdapter.js +56 -0
  71. package/dist/src/nonInteractive/io/JsonOutputAdapter.js.map +1 -0
  72. package/dist/src/nonInteractive/io/JsonOutputAdapter.test.d.ts +6 -0
  73. package/dist/src/nonInteractive/io/JsonOutputAdapter.test.js +624 -0
  74. package/dist/src/nonInteractive/io/JsonOutputAdapter.test.js.map +1 -0
  75. package/dist/src/nonInteractive/io/StreamJsonInputReader.d.ts +16 -0
  76. package/dist/src/nonInteractive/io/StreamJsonInputReader.js +54 -0
  77. package/dist/src/nonInteractive/io/StreamJsonInputReader.js.map +1 -0
  78. package/dist/src/nonInteractive/io/StreamJsonInputReader.test.d.ts +6 -0
  79. package/dist/src/nonInteractive/io/StreamJsonInputReader.test.js +178 -0
  80. package/dist/src/nonInteractive/io/StreamJsonInputReader.test.js.map +1 -0
  81. package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.d.ts +69 -0
  82. package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.js +185 -0
  83. package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.js.map +1 -0
  84. package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.test.d.ts +6 -0
  85. package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.test.js +808 -0
  86. package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.test.js.map +1 -0
  87. package/dist/src/nonInteractive/session.d.ts +23 -0
  88. package/dist/src/nonInteractive/session.js +549 -0
  89. package/dist/src/nonInteractive/session.js.map +1 -0
  90. package/dist/src/nonInteractive/session.test.d.ts +6 -0
  91. package/dist/src/nonInteractive/session.test.js +407 -0
  92. package/dist/src/nonInteractive/session.test.js.map +1 -0
  93. package/dist/src/nonInteractive/types.d.ts +344 -0
  94. package/dist/src/nonInteractive/types.js +78 -0
  95. package/dist/src/nonInteractive/types.js.map +1 -0
  96. package/dist/src/nonInteractiveCli.d.ts +21 -1
  97. package/dist/src/nonInteractiveCli.js +204 -57
  98. package/dist/src/nonInteractiveCli.js.map +1 -1
  99. package/dist/src/nonInteractiveCliCommands.d.ts +19 -1
  100. package/dist/src/nonInteractiveCliCommands.js +69 -4
  101. package/dist/src/nonInteractiveCliCommands.js.map +1 -1
  102. package/dist/src/services/BuiltinCommandLoader.js +2 -0
  103. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  104. package/dist/src/services/FileCommandLoader.js +4 -1
  105. package/dist/src/services/FileCommandLoader.js.map +1 -1
  106. package/dist/src/ui/AppContainer.js +41 -38
  107. package/dist/src/ui/AppContainer.js.map +1 -1
  108. package/dist/src/ui/auth/AuthDialog.d.ts +1 -13
  109. package/dist/src/ui/auth/AuthDialog.js +41 -111
  110. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  111. package/dist/src/ui/auth/AuthDialog.test.js +49 -19
  112. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  113. package/dist/src/ui/auth/AuthInProgress.js +2 -1
  114. package/dist/src/ui/auth/AuthInProgress.js.map +1 -1
  115. package/dist/src/ui/auth/useAuth.d.ts +9 -8
  116. package/dist/src/ui/auth/useAuth.js +135 -63
  117. package/dist/src/ui/auth/useAuth.js.map +1 -1
  118. package/dist/src/ui/commands/aboutCommand.js +7 -31
  119. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  120. package/dist/src/ui/commands/agentsCommand.js +10 -3
  121. package/dist/src/ui/commands/agentsCommand.js.map +1 -1
  122. package/dist/src/ui/commands/approvalModeCommand.js +8 -329
  123. package/dist/src/ui/commands/approvalModeCommand.js.map +1 -1
  124. package/dist/src/ui/commands/approvalModeCommand.test.js +19 -263
  125. package/dist/src/ui/commands/approvalModeCommand.test.js.map +1 -1
  126. package/dist/src/ui/commands/authCommand.js +4 -1
  127. package/dist/src/ui/commands/authCommand.js.map +1 -1
  128. package/dist/src/ui/commands/bugCommand.js +13 -47
  129. package/dist/src/ui/commands/bugCommand.js.map +1 -1
  130. package/dist/src/ui/commands/chatCommand.js +51 -25
  131. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  132. package/dist/src/ui/commands/clearCommand.js +6 -3
  133. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  134. package/dist/src/ui/commands/compressCommand.js +9 -4
  135. package/dist/src/ui/commands/compressCommand.js.map +1 -1
  136. package/dist/src/ui/commands/copyCommand.js +4 -1
  137. package/dist/src/ui/commands/copyCommand.js.map +1 -1
  138. package/dist/src/ui/commands/directoryCommand.js +30 -12
  139. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  140. package/dist/src/ui/commands/docsCommand.js +9 -3
  141. package/dist/src/ui/commands/docsCommand.js.map +1 -1
  142. package/dist/src/ui/commands/editorCommand.js +4 -1
  143. package/dist/src/ui/commands/editorCommand.js.map +1 -1
  144. package/dist/src/ui/commands/extensionsCommand.js +10 -3
  145. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  146. package/dist/src/ui/commands/helpCommand.js +4 -1
  147. package/dist/src/ui/commands/helpCommand.js.map +1 -1
  148. package/dist/src/ui/commands/ideCommand.js +23 -7
  149. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  150. package/dist/src/ui/commands/initCommand.js +5 -3
  151. package/dist/src/ui/commands/initCommand.js.map +1 -1
  152. package/dist/src/ui/commands/languageCommand.d.ts +7 -0
  153. package/dist/src/ui/commands/languageCommand.js +386 -0
  154. package/dist/src/ui/commands/languageCommand.js.map +1 -0
  155. package/dist/src/ui/commands/mcpCommand.js +38 -18
  156. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  157. package/dist/src/ui/commands/memoryCommand.js +54 -25
  158. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  159. package/dist/src/ui/commands/modelCommand.js +9 -4
  160. package/dist/src/ui/commands/modelCommand.js.map +1 -1
  161. package/dist/src/ui/commands/permissionsCommand.js +4 -1
  162. package/dist/src/ui/commands/permissionsCommand.js.map +1 -1
  163. package/dist/src/ui/commands/quitCommand.js +7 -2
  164. package/dist/src/ui/commands/quitCommand.js.map +1 -1
  165. package/dist/src/ui/commands/settingsCommand.js +4 -1
  166. package/dist/src/ui/commands/settingsCommand.js.map +1 -1
  167. package/dist/src/ui/commands/setupGithubCommand.js +4 -1
  168. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  169. package/dist/src/ui/commands/statsCommand.js +11 -4
  170. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  171. package/dist/src/ui/commands/summaryCommand.js +15 -8
  172. package/dist/src/ui/commands/summaryCommand.js.map +1 -1
  173. package/dist/src/ui/commands/terminalSetupCommand.js +9 -3
  174. package/dist/src/ui/commands/terminalSetupCommand.js.map +1 -1
  175. package/dist/src/ui/commands/themeCommand.js +4 -1
  176. package/dist/src/ui/commands/themeCommand.js.map +1 -1
  177. package/dist/src/ui/commands/toolsCommand.js +5 -2
  178. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  179. package/dist/src/ui/commands/types.d.ts +1 -1
  180. package/dist/src/ui/commands/types.js.map +1 -1
  181. package/dist/src/ui/commands/vimCommand.js +4 -1
  182. package/dist/src/ui/commands/vimCommand.js.map +1 -1
  183. package/dist/src/ui/components/AboutBox.d.ts +2 -9
  184. package/dist/src/ui/components/AboutBox.js +6 -2
  185. package/dist/src/ui/components/AboutBox.js.map +1 -1
  186. package/dist/src/ui/components/ApprovalModeDialog.d.ts +21 -0
  187. package/dist/src/ui/components/ApprovalModeDialog.js +68 -0
  188. package/dist/src/ui/components/ApprovalModeDialog.js.map +1 -0
  189. package/dist/src/ui/components/AutoAcceptIndicator.js +7 -6
  190. package/dist/src/ui/components/AutoAcceptIndicator.js.map +1 -1
  191. package/dist/src/ui/components/Composer.js +4 -3
  192. package/dist/src/ui/components/Composer.js.map +1 -1
  193. package/dist/src/ui/components/ConfigInitDisplay.js +7 -3
  194. package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -1
  195. package/dist/src/ui/components/ContextSummaryDisplay.js +33 -9
  196. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  197. package/dist/src/ui/components/DialogManager.js +60 -13
  198. package/dist/src/ui/components/DialogManager.js.map +1 -1
  199. package/dist/src/ui/components/EditorSettingsDialog.js +8 -3
  200. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  201. package/dist/src/ui/components/Help.js +14 -4
  202. package/dist/src/ui/components/Help.js.map +1 -1
  203. package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
  204. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  205. package/dist/src/ui/components/HistoryItemDisplay.test.js +17 -8
  206. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  207. package/dist/src/ui/components/InputPrompt.js +10 -136
  208. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  209. package/dist/src/ui/components/LoadingIndicator.js +6 -1
  210. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  211. package/dist/src/ui/components/ModelDialog.js +2 -1
  212. package/dist/src/ui/components/ModelDialog.js.map +1 -1
  213. package/dist/src/ui/components/ModelStatsDisplay.js +6 -5
  214. package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
  215. package/dist/src/ui/components/OpenAIKeyPrompt.d.ts +19 -1
  216. package/dist/src/ui/components/OpenAIKeyPrompt.js +38 -6
  217. package/dist/src/ui/components/OpenAIKeyPrompt.js.map +1 -1
  218. package/dist/src/ui/components/ProQuotaDialog.js +5 -4
  219. package/dist/src/ui/components/ProQuotaDialog.js.map +1 -1
  220. package/dist/src/ui/components/QuitConfirmationDialog.js +6 -5
  221. package/dist/src/ui/components/QuitConfirmationDialog.js.map +1 -1
  222. package/dist/src/ui/components/QwenOAuthProgress.d.ts +2 -2
  223. package/dist/src/ui/components/QwenOAuthProgress.js +14 -7
  224. package/dist/src/ui/components/QwenOAuthProgress.js.map +1 -1
  225. package/dist/src/ui/components/QwenOAuthProgress.test.js +1 -0
  226. package/dist/src/ui/components/QwenOAuthProgress.test.js.map +1 -1
  227. package/dist/src/ui/components/SessionSummaryDisplay.js +2 -1
  228. package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -1
  229. package/dist/src/ui/components/SettingsDialog.d.ts +3 -1
  230. package/dist/src/ui/components/SettingsDialog.js +35 -12
  231. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  232. package/dist/src/ui/components/SettingsDialog.test.js +5 -4
  233. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  234. package/dist/src/ui/components/ShellConfirmationDialog.js +5 -4
  235. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  236. package/dist/src/ui/components/StatsDisplay.js +5 -4
  237. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  238. package/dist/src/ui/components/ThemeDialog.js +5 -2
  239. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  240. package/dist/src/ui/components/ToolStatsDisplay.js +3 -2
  241. package/dist/src/ui/components/ToolStatsDisplay.js.map +1 -1
  242. package/dist/src/ui/components/WelcomeBackDialog.js +13 -4
  243. package/dist/src/ui/components/WelcomeBackDialog.js.map +1 -1
  244. package/dist/src/ui/components/messages/CompressionMessage.js +10 -6
  245. package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
  246. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +40 -29
  247. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  248. package/dist/src/ui/components/shared/BaseSelectionList.test.js +1 -1
  249. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
  250. package/dist/src/ui/components/shared/ScopeSelector.js +3 -1
  251. package/dist/src/ui/components/shared/ScopeSelector.js.map +1 -1
  252. package/dist/src/ui/components/subagents/create/AgentCreationWizard.js +39 -26
  253. package/dist/src/ui/components/subagents/create/AgentCreationWizard.js.map +1 -1
  254. package/dist/src/ui/components/subagents/create/CreationSummary.js +20 -10
  255. package/dist/src/ui/components/subagents/create/CreationSummary.js.map +1 -1
  256. package/dist/src/ui/components/subagents/create/DescriptionInput.js +6 -3
  257. package/dist/src/ui/components/subagents/create/DescriptionInput.js.map +1 -1
  258. package/dist/src/ui/components/subagents/create/GenerationMethodSelector.js +7 -2
  259. package/dist/src/ui/components/subagents/create/GenerationMethodSelector.js.map +1 -1
  260. package/dist/src/ui/components/subagents/create/LocationSelector.js +7 -2
  261. package/dist/src/ui/components/subagents/create/LocationSelector.js.map +1 -1
  262. package/dist/src/ui/components/subagents/create/ToolSelector.js +8 -7
  263. package/dist/src/ui/components/subagents/create/ToolSelector.js.map +1 -1
  264. package/dist/src/ui/components/subagents/manage/ActionSelectionStep.js +29 -4
  265. package/dist/src/ui/components/subagents/manage/ActionSelectionStep.js.map +1 -1
  266. package/dist/src/ui/components/subagents/manage/AgentDeleteStep.js +6 -3
  267. package/dist/src/ui/components/subagents/manage/AgentDeleteStep.js.map +1 -1
  268. package/dist/src/ui/components/subagents/manage/AgentEditStep.js +14 -5
  269. package/dist/src/ui/components/subagents/manage/AgentEditStep.js.map +1 -1
  270. package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js +13 -6
  271. package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js.map +1 -1
  272. package/dist/src/ui/components/subagents/manage/AgentViewerStep.js +3 -2
  273. package/dist/src/ui/components/subagents/manage/AgentViewerStep.js.map +1 -1
  274. package/dist/src/ui/components/subagents/manage/AgentsManagerDialog.js +14 -13
  275. package/dist/src/ui/components/subagents/manage/AgentsManagerDialog.js.map +1 -1
  276. package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js +8 -8
  277. package/dist/src/ui/components/views/McpStatus.js +28 -15
  278. package/dist/src/ui/components/views/McpStatus.js.map +1 -1
  279. package/dist/src/ui/components/views/ToolsList.js +2 -1
  280. package/dist/src/ui/components/views/ToolsList.js.map +1 -1
  281. package/dist/src/ui/contexts/UIActionsContext.d.ts +5 -4
  282. package/dist/src/ui/contexts/UIActionsContext.js +1 -0
  283. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  284. package/dist/src/ui/contexts/UIStateContext.d.ts +5 -7
  285. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  286. package/dist/src/ui/editors/editorSettingsManager.js +1 -0
  287. package/dist/src/ui/editors/editorSettingsManager.js.map +1 -1
  288. package/dist/src/ui/hooks/atCommandProcessor.test.js +2 -0
  289. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  290. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +1 -0
  291. package/dist/src/ui/hooks/slashCommandProcessor.js +4 -7
  292. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  293. package/dist/src/ui/hooks/useApprovalModeCommand.d.ts +14 -0
  294. package/dist/src/ui/hooks/useApprovalModeCommand.js +33 -0
  295. package/dist/src/ui/hooks/useApprovalModeCommand.js.map +1 -0
  296. package/dist/src/ui/hooks/useAttentionNotifications.d.ts +14 -0
  297. package/dist/src/ui/hooks/useAttentionNotifications.js +41 -0
  298. package/dist/src/ui/hooks/useAttentionNotifications.js.map +1 -0
  299. package/dist/src/ui/hooks/useAttentionNotifications.test.d.ts +6 -0
  300. package/dist/src/ui/hooks/useAttentionNotifications.test.js +113 -0
  301. package/dist/src/ui/hooks/useAttentionNotifications.test.js.map +1 -0
  302. package/dist/src/ui/hooks/useCommandCompletion.d.ts +1 -4
  303. package/dist/src/ui/hooks/useCommandCompletion.js +1 -23
  304. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
  305. package/dist/src/ui/hooks/useDialogClose.d.ts +6 -3
  306. package/dist/src/ui/hooks/useDialogClose.js +5 -0
  307. package/dist/src/ui/hooks/useDialogClose.js.map +1 -1
  308. package/dist/src/ui/hooks/useGitBranchName.js +6 -3
  309. package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
  310. package/dist/src/ui/hooks/useGitBranchName.test.js +39 -21
  311. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  312. package/dist/src/ui/hooks/useInitializationAuthError.d.ts +22 -0
  313. package/dist/src/ui/hooks/useInitializationAuthError.js +40 -0
  314. package/dist/src/ui/hooks/useInitializationAuthError.js.map +1 -0
  315. package/dist/src/ui/hooks/usePhraseCycler.js +6 -4
  316. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  317. package/dist/src/ui/hooks/useQwenAuth.d.ts +7 -12
  318. package/dist/src/ui/hooks/useQwenAuth.js +4 -8
  319. package/dist/src/ui/hooks/useQwenAuth.js.map +1 -1
  320. package/dist/src/ui/hooks/useQwenAuth.test.js +72 -98
  321. package/dist/src/ui/hooks/useQwenAuth.test.js.map +1 -1
  322. package/dist/src/ui/hooks/useThemeCommand.js +8 -3
  323. package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
  324. package/dist/src/ui/models/availableModels.js +7 -2
  325. package/dist/src/ui/models/availableModels.js.map +1 -1
  326. package/dist/src/ui/types.d.ts +32 -14
  327. package/dist/src/ui/types.js.map +1 -1
  328. package/dist/src/ui/utils/clipboardUtils.js +3 -3
  329. package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
  330. package/dist/src/ui/utils/commandUtils.d.ts +16 -0
  331. package/dist/src/ui/utils/commandUtils.js +16 -1
  332. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  333. package/dist/src/ui/utils/commandUtils.test.js +5 -2
  334. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  335. package/dist/src/ui/utils/terminalSetup.js +45 -18
  336. package/dist/src/ui/utils/terminalSetup.js.map +1 -1
  337. package/dist/src/utils/attentionNotification.d.ts +20 -0
  338. package/dist/src/utils/attentionNotification.js +34 -0
  339. package/dist/src/utils/attentionNotification.js.map +1 -0
  340. package/dist/src/utils/attentionNotification.test.d.ts +6 -0
  341. package/dist/src/utils/attentionNotification.test.js +46 -0
  342. package/dist/src/utils/attentionNotification.test.js.map +1 -0
  343. package/dist/src/utils/dialogScopeUtils.d.ts +0 -4
  344. package/dist/src/utils/dialogScopeUtils.js +5 -2
  345. package/dist/src/utils/dialogScopeUtils.js.map +1 -1
  346. package/dist/src/utils/errors.d.ts +10 -2
  347. package/dist/src/utils/errors.js +14 -13
  348. package/dist/src/utils/errors.js.map +1 -1
  349. package/dist/src/utils/errors.test.js +91 -54
  350. package/dist/src/utils/errors.test.js.map +1 -1
  351. package/dist/src/utils/nonInteractiveHelpers.d.ts +88 -0
  352. package/dist/src/utils/nonInteractiveHelpers.js +470 -0
  353. package/dist/src/utils/nonInteractiveHelpers.js.map +1 -0
  354. package/dist/src/utils/nonInteractiveHelpers.test.d.ts +6 -0
  355. package/dist/src/utils/nonInteractiveHelpers.test.js +945 -0
  356. package/dist/src/utils/nonInteractiveHelpers.test.js.map +1 -0
  357. package/dist/src/utils/sandbox.js +1 -1
  358. package/dist/src/utils/sandbox.js.map +1 -1
  359. package/dist/src/utils/settingsUtils.js +7 -1
  360. package/dist/src/utils/settingsUtils.js.map +1 -1
  361. package/dist/src/utils/systemInfo.d.ts +66 -0
  362. package/dist/src/utils/systemInfo.js +125 -0
  363. package/dist/src/utils/systemInfo.js.map +1 -0
  364. package/dist/src/utils/systemInfo.test.d.ts +6 -0
  365. package/dist/src/utils/systemInfo.test.js +259 -0
  366. package/dist/src/utils/systemInfo.test.js.map +1 -0
  367. package/dist/src/utils/systemInfoFields.d.ts +22 -0
  368. package/dist/src/utils/systemInfoFields.js +96 -0
  369. package/dist/src/utils/systemInfoFields.js.map +1 -0
  370. package/dist/src/utils/userStartupWarnings.js +9 -4
  371. package/dist/src/utils/userStartupWarnings.js.map +1 -1
  372. package/dist/src/validateNonInterActiveAuth.js +27 -6
  373. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  374. package/dist/src/zed-integration/acp.js +1 -2
  375. package/dist/src/zed-integration/acp.js.map +1 -1
  376. package/dist/src/zed-integration/schema.d.ts +506 -264
  377. package/dist/src/zed-integration/schema.js +13 -0
  378. package/dist/src/zed-integration/schema.js.map +1 -1
  379. package/dist/src/zed-integration/zedIntegration.js +376 -32
  380. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  381. package/dist/tsconfig.tsbuildinfo +1 -1
  382. package/package.json +12 -4
@@ -4,56 +4,92 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { isSlashCommand } from './ui/utils/commandUtils.js';
7
- import { executeToolCall, shutdownTelemetry, isTelemetrySdkInitialized, GeminiEventType, FatalInputError, promptIdContext, OutputFormat, JsonFormatter, uiTelemetryService, } from '@umsai/ums-code-core';
7
+ import { executeToolCall, shutdownTelemetry, isTelemetrySdkInitialized, GeminiEventType, FatalInputError, promptIdContext, OutputFormat, uiTelemetryService, } from '@umsai/ums-code-core';
8
+ import { JsonOutputAdapter } from './nonInteractive/io/JsonOutputAdapter.js';
9
+ import { StreamJsonOutputAdapter } from './nonInteractive/io/StreamJsonOutputAdapter.js';
8
10
  import { handleSlashCommand } from './nonInteractiveCliCommands.js';
9
- import { ConsolePatcher } from './ui/utils/ConsolePatcher.js';
10
11
  import { handleAtCommand } from './ui/hooks/atCommandProcessor.js';
11
12
  import { handleError, handleToolError, handleCancellationError, handleMaxTurnsExceededError, } from './utils/errors.js';
12
- export async function runNonInteractive(config, settings, input, prompt_id) {
13
+ import { normalizePartList, extractPartsFromUserMessage, buildSystemMessage, createTaskToolProgressHandler, computeUsageFromMetrics, } from './utils/nonInteractiveHelpers.js';
14
+ /**
15
+ * Executes the non-interactive CLI flow for a single request.
16
+ */
17
+ export async function runNonInteractive(config, settings, input, prompt_id, options = {}) {
13
18
  return promptIdContext.run(prompt_id, async () => {
14
- const consolePatcher = new ConsolePatcher({
15
- stderr: true,
16
- debugMode: config.getDebugMode(),
17
- });
19
+ // Create output adapter based on format
20
+ let adapter;
21
+ const outputFormat = config.getOutputFormat();
22
+ if (options.adapter) {
23
+ adapter = options.adapter;
24
+ }
25
+ else if (outputFormat === OutputFormat.JSON) {
26
+ adapter = new JsonOutputAdapter(config);
27
+ }
28
+ else if (outputFormat === OutputFormat.STREAM_JSON) {
29
+ adapter = new StreamJsonOutputAdapter(config, config.getIncludePartialMessages());
30
+ }
31
+ // Get readonly values once at the start
32
+ const sessionId = config.getSessionId();
33
+ const permissionMode = config.getApprovalMode();
34
+ let turnCount = 0;
35
+ let totalApiDurationMs = 0;
36
+ const startTime = Date.now();
37
+ const stdoutErrorHandler = (err) => {
38
+ if (err.code === 'EPIPE') {
39
+ process.stdout.removeListener('error', stdoutErrorHandler);
40
+ process.exit(0);
41
+ }
42
+ };
43
+ const geminiClient = config.getGeminiClient();
44
+ const abortController = options.abortController ?? new AbortController();
45
+ // Setup signal handlers for graceful shutdown
46
+ const shutdownHandler = () => {
47
+ if (config.getDebugMode()) {
48
+ console.error('[runNonInteractive] Shutdown signal received');
49
+ }
50
+ abortController.abort();
51
+ };
18
52
  try {
19
- consolePatcher.patch();
20
- // Handle EPIPE errors when the output is piped to a command that closes early.
21
- process.stdout.on('error', (err) => {
22
- if (err.code === 'EPIPE') {
23
- // Exit gracefully if the pipe is closed.
24
- process.exit(0);
53
+ process.stdout.on('error', stdoutErrorHandler);
54
+ process.on('SIGINT', shutdownHandler);
55
+ process.on('SIGTERM', shutdownHandler);
56
+ let initialPartList = extractPartsFromUserMessage(options.userMessage);
57
+ if (!initialPartList) {
58
+ let slashHandled = false;
59
+ if (isSlashCommand(input)) {
60
+ const slashCommandResult = await handleSlashCommand(input, abortController, config, settings);
61
+ if (slashCommandResult) {
62
+ // A slash command can replace the prompt entirely; fall back to @-command processing otherwise.
63
+ initialPartList = slashCommandResult;
64
+ slashHandled = true;
65
+ }
25
66
  }
26
- });
27
- const geminiClient = config.getGeminiClient();
28
- const abortController = new AbortController();
29
- let query;
30
- if (isSlashCommand(input)) {
31
- const slashCommandResult = await handleSlashCommand(input, abortController, config, settings);
32
- // If a slash command is found and returns a prompt, use it.
33
- // Otherwise, slashCommandResult fall through to the default prompt
34
- // handling.
35
- if (slashCommandResult) {
36
- query = slashCommandResult;
67
+ if (!slashHandled) {
68
+ const { processedQuery, shouldProceed } = await handleAtCommand({
69
+ query: input,
70
+ config,
71
+ addItem: (_item, _timestamp) => 0,
72
+ onDebugMessage: () => { },
73
+ messageId: Date.now(),
74
+ signal: abortController.signal,
75
+ });
76
+ if (!shouldProceed || !processedQuery) {
77
+ // An error occurred during @include processing (e.g., file not found).
78
+ // The error message is already logged by handleAtCommand.
79
+ throw new FatalInputError('Exiting due to an error processing the @ command.');
80
+ }
81
+ initialPartList = processedQuery;
37
82
  }
38
83
  }
39
- if (!query) {
40
- const { processedQuery, shouldProceed } = await handleAtCommand({
41
- query: input,
42
- config,
43
- addItem: (_item, _timestamp) => 0,
44
- onDebugMessage: () => { },
45
- messageId: Date.now(),
46
- signal: abortController.signal,
47
- });
48
- if (!shouldProceed || !processedQuery) {
49
- // An error occurred during @include processing (e.g., file not found).
50
- // The error message is already logged by handleAtCommand.
51
- throw new FatalInputError('Exiting due to an error processing the @ command.');
52
- }
53
- query = processedQuery;
84
+ if (!initialPartList) {
85
+ initialPartList = [{ text: input }];
86
+ }
87
+ const initialParts = normalizePartList(initialPartList);
88
+ let currentMessages = [{ role: 'user', parts: initialParts }];
89
+ if (adapter) {
90
+ const systemMessage = await buildSystemMessage(config, sessionId, permissionMode);
91
+ adapter.emitMessage(systemMessage);
54
92
  }
55
- let currentMessages = [{ role: 'user', parts: query }];
56
- let turnCount = 0;
57
93
  while (true) {
58
94
  turnCount++;
59
95
  if (config.getMaxSessionTurns() >= 0 &&
@@ -61,32 +97,108 @@ export async function runNonInteractive(config, settings, input, prompt_id) {
61
97
  handleMaxTurnsExceededError(config);
62
98
  }
63
99
  const toolCallRequests = [];
100
+ const apiStartTime = Date.now();
64
101
  const responseStream = geminiClient.sendMessageStream(currentMessages[0]?.parts || [], abortController.signal, prompt_id);
65
- let responseText = '';
102
+ // Start assistant message for this turn
103
+ if (adapter) {
104
+ adapter.startAssistantMessage();
105
+ }
66
106
  for await (const event of responseStream) {
67
107
  if (abortController.signal.aborted) {
68
108
  handleCancellationError(config);
69
109
  }
70
- if (event.type === GeminiEventType.Content) {
71
- if (config.getOutputFormat() === OutputFormat.JSON) {
72
- responseText += event.value;
110
+ if (adapter) {
111
+ // Use adapter for all event processing
112
+ adapter.processEvent(event);
113
+ if (event.type === GeminiEventType.ToolCallRequest) {
114
+ toolCallRequests.push(event.value);
73
115
  }
74
- else {
116
+ }
117
+ else {
118
+ // Text output mode - direct stdout
119
+ if (event.type === GeminiEventType.Content) {
75
120
  process.stdout.write(event.value);
76
121
  }
77
- }
78
- else if (event.type === GeminiEventType.ToolCallRequest) {
79
- toolCallRequests.push(event.value);
122
+ else if (event.type === GeminiEventType.ToolCallRequest) {
123
+ toolCallRequests.push(event.value);
124
+ }
80
125
  }
81
126
  }
127
+ // Finalize assistant message
128
+ if (adapter) {
129
+ adapter.finalizeAssistantMessage();
130
+ }
131
+ totalApiDurationMs += Date.now() - apiStartTime;
82
132
  if (toolCallRequests.length > 0) {
83
133
  const toolResponseParts = [];
84
134
  for (const requestInfo of toolCallRequests) {
85
- const toolResponse = await executeToolCall(config, requestInfo, abortController.signal);
135
+ const finalRequestInfo = requestInfo;
136
+ /*
137
+ if (options.controlService) {
138
+ const permissionResult =
139
+ await options.controlService.permission.shouldAllowTool(
140
+ requestInfo,
141
+ );
142
+ if (!permissionResult.allowed) {
143
+ if (config.getDebugMode()) {
144
+ console.error(
145
+ `[runNonInteractive] Tool execution denied: ${requestInfo.name}`,
146
+ permissionResult.message ?? '',
147
+ );
148
+ }
149
+ if (adapter && permissionResult.message) {
150
+ adapter.emitSystemMessage('tool_denied', {
151
+ tool: requestInfo.name,
152
+ message: permissionResult.message,
153
+ });
154
+ }
155
+ continue;
156
+ }
157
+
158
+ if (permissionResult.updatedArgs) {
159
+ finalRequestInfo = {
160
+ ...requestInfo,
161
+ args: permissionResult.updatedArgs,
162
+ };
163
+ }
164
+ }
165
+
166
+ const toolCallUpdateCallback = options.controlService
167
+ ? options.controlService.permission.getToolCallUpdateCallback()
168
+ : undefined;
169
+ */
170
+ // Only pass outputUpdateHandler for Task tool
171
+ const isTaskTool = finalRequestInfo.name === 'task';
172
+ const taskToolProgress = isTaskTool
173
+ ? createTaskToolProgressHandler(config, finalRequestInfo.callId, adapter)
174
+ : undefined;
175
+ const taskToolProgressHandler = taskToolProgress?.handler;
176
+ const toolResponse = await executeToolCall(config, finalRequestInfo, abortController.signal, isTaskTool && taskToolProgressHandler
177
+ ? {
178
+ outputUpdateHandler: taskToolProgressHandler,
179
+ /*
180
+ toolCallUpdateCallback
181
+ ? { onToolCallsUpdate: toolCallUpdateCallback }
182
+ : undefined,
183
+ */
184
+ }
185
+ : undefined);
186
+ // Note: In JSON mode, subagent messages are automatically added to the main
187
+ // adapter's messages array and will be output together on emitResult()
86
188
  if (toolResponse.error) {
87
- handleToolError(requestInfo.name, toolResponse.error, config, toolResponse.errorType || 'TOOL_EXECUTION_ERROR', typeof toolResponse.resultDisplay === 'string'
189
+ // In JSON/STREAM_JSON mode, tool errors are tolerated and formatted
190
+ // as tool_result blocks. handleToolError will detect JSON/STREAM_JSON mode
191
+ // from config and allow the session to continue so the LLM can decide what to do next.
192
+ // In text mode, we still log the error.
193
+ handleToolError(finalRequestInfo.name, toolResponse.error, config, toolResponse.errorType || 'TOOL_EXECUTION_ERROR', typeof toolResponse.resultDisplay === 'string'
88
194
  ? toolResponse.resultDisplay
89
195
  : undefined);
196
+ // Note: We no longer emit a separate system message for tool errors
197
+ // in JSON/STREAM_JSON mode, as the error is already captured in the
198
+ // tool_result block with is_error=true.
199
+ }
200
+ if (adapter) {
201
+ adapter.emitToolResult(finalRequestInfo, toolResponse);
90
202
  }
91
203
  if (toolResponse.responseParts) {
92
204
  toolResponseParts.push(...toolResponse.responseParts);
@@ -95,23 +207,58 @@ export async function runNonInteractive(config, settings, input, prompt_id) {
95
207
  currentMessages = [{ role: 'user', parts: toolResponseParts }];
96
208
  }
97
209
  else {
98
- if (config.getOutputFormat() === OutputFormat.JSON) {
99
- const formatter = new JsonFormatter();
100
- const stats = uiTelemetryService.getMetrics();
101
- process.stdout.write(formatter.format(responseText, stats));
210
+ // For JSON and STREAM_JSON modes, compute usage from metrics
211
+ if (adapter) {
212
+ const metrics = uiTelemetryService.getMetrics();
213
+ const usage = computeUsageFromMetrics(metrics);
214
+ // Get stats for JSON format output
215
+ const stats = outputFormat === OutputFormat.JSON
216
+ ? uiTelemetryService.getMetrics()
217
+ : undefined;
218
+ adapter.emitResult({
219
+ isError: false,
220
+ durationMs: Date.now() - startTime,
221
+ apiDurationMs: totalApiDurationMs,
222
+ numTurns: turnCount,
223
+ usage,
224
+ stats,
225
+ });
102
226
  }
103
227
  else {
104
- process.stdout.write('\n'); // Ensure a final newline
228
+ // Text output mode - no usage needed
229
+ process.stdout.write('\n');
105
230
  }
106
231
  return;
107
232
  }
108
233
  }
109
234
  }
110
235
  catch (error) {
236
+ // For JSON and STREAM_JSON modes, compute usage from metrics
237
+ const message = error instanceof Error ? error.message : String(error);
238
+ if (adapter) {
239
+ const metrics = uiTelemetryService.getMetrics();
240
+ const usage = computeUsageFromMetrics(metrics);
241
+ // Get stats for JSON format output
242
+ const stats = outputFormat === OutputFormat.JSON
243
+ ? uiTelemetryService.getMetrics()
244
+ : undefined;
245
+ adapter.emitResult({
246
+ isError: true,
247
+ durationMs: Date.now() - startTime,
248
+ apiDurationMs: totalApiDurationMs,
249
+ numTurns: turnCount,
250
+ errorMessage: message,
251
+ usage,
252
+ stats,
253
+ });
254
+ }
111
255
  handleError(error, config);
112
256
  }
113
257
  finally {
114
- consolePatcher.cleanup();
258
+ process.stdout.removeListener('error', stdoutErrorHandler);
259
+ // Cleanup signal handlers
260
+ process.removeListener('SIGINT', shutdownHandler);
261
+ process.removeListener('SIGTERM', shutdownHandler);
115
262
  if (isTelemetrySdkInitialized()) {
116
263
  await shutdownTelemetry(config);
117
264
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nonInteractiveCli.js","sourceRoot":"","sources":["../../src/nonInteractiveCli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nonInteractiveCli.js","sourceRoot":"","sources":["../../src/nonInteractiveCli.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,31 @@
5
5
  */
6
6
  import type { PartListUnion } from '@google/genai';
7
7
  import { type Config } from '@umsai/ums-code-core';
8
+ import { type SlashCommand } from './ui/commands/types.js';
8
9
  import type { LoadedSettings } from './config/settings.js';
9
10
  /**
10
11
  * Processes a slash command in a non-interactive environment.
11
12
  *
13
+ * @param rawQuery The raw query string (should start with '/')
14
+ * @param abortController Controller to cancel the operation
15
+ * @param config The configuration object
16
+ * @param settings The loaded settings
17
+ * @param allowedBuiltinCommandNames Optional array of built-in command names that are
18
+ * allowed. If not provided or empty, only file commands are available.
12
19
  * @returns A Promise that resolves to `PartListUnion` if a valid command is
13
20
  * found and results in a prompt, or `undefined` otherwise.
14
21
  * @throws {FatalInputError} if the command result is not supported in
15
22
  * non-interactive mode.
16
23
  */
17
- export declare const handleSlashCommand: (rawQuery: string, abortController: AbortController, config: Config, settings: LoadedSettings) => Promise<PartListUnion | undefined>;
24
+ export declare const handleSlashCommand: (rawQuery: string, abortController: AbortController, config: Config, settings: LoadedSettings, allowedBuiltinCommandNames?: string[]) => Promise<PartListUnion | undefined>;
25
+ /**
26
+ * Retrieves all available slash commands for the current configuration.
27
+ *
28
+ * @param config The configuration object
29
+ * @param settings The loaded settings
30
+ * @param abortSignal Signal to cancel the loading process
31
+ * @param allowedBuiltinCommandNames Optional array of built-in command names that are
32
+ * allowed. If not provided or empty, only file commands are available.
33
+ * @returns A Promise that resolves to an array of SlashCommand objects
34
+ */
35
+ export declare const getAvailableCommands: (config: Config, settings: LoadedSettings, abortSignal: AbortSignal, allowedBuiltinCommandNames?: string[]) => Promise<SlashCommand[]>;
@@ -6,26 +6,62 @@
6
6
  import { parseSlashCommand } from './utils/commands.js';
7
7
  import { FatalInputError, Logger, uiTelemetryService, } from '@umsai/ums-code-core';
8
8
  import { CommandService } from './services/CommandService.js';
9
+ import { BuiltinCommandLoader } from './services/BuiltinCommandLoader.js';
9
10
  import { FileCommandLoader } from './services/FileCommandLoader.js';
11
+ import { CommandKind, } from './ui/commands/types.js';
10
12
  import { createNonInteractiveUI } from './ui/noninteractive/nonInteractiveUi.js';
13
+ /**
14
+ * Filters commands based on the allowed built-in command names.
15
+ *
16
+ * - Always includes FILE commands
17
+ * - Only includes BUILT_IN commands if their name is in the allowed set
18
+ * - Excludes other command types (e.g., MCP_PROMPT) in non-interactive mode
19
+ *
20
+ * @param commands All loaded commands
21
+ * @param allowedBuiltinCommandNames Set of allowed built-in command names (empty = none allowed)
22
+ * @returns Filtered commands
23
+ */
24
+ function filterCommandsForNonInteractive(commands, allowedBuiltinCommandNames) {
25
+ return commands.filter((cmd) => {
26
+ if (cmd.kind === CommandKind.FILE) {
27
+ return true;
28
+ }
29
+ // Built-in commands: only include if in the allowed list
30
+ if (cmd.kind === CommandKind.BUILT_IN) {
31
+ return allowedBuiltinCommandNames.has(cmd.name);
32
+ }
33
+ // Exclude other types (e.g., MCP_PROMPT) in non-interactive mode
34
+ return false;
35
+ });
36
+ }
11
37
  /**
12
38
  * Processes a slash command in a non-interactive environment.
13
39
  *
40
+ * @param rawQuery The raw query string (should start with '/')
41
+ * @param abortController Controller to cancel the operation
42
+ * @param config The configuration object
43
+ * @param settings The loaded settings
44
+ * @param allowedBuiltinCommandNames Optional array of built-in command names that are
45
+ * allowed. If not provided or empty, only file commands are available.
14
46
  * @returns A Promise that resolves to `PartListUnion` if a valid command is
15
47
  * found and results in a prompt, or `undefined` otherwise.
16
48
  * @throws {FatalInputError} if the command result is not supported in
17
49
  * non-interactive mode.
18
50
  */
19
- export const handleSlashCommand = async (rawQuery, abortController, config, settings) => {
51
+ export const handleSlashCommand = async (rawQuery, abortController, config, settings, allowedBuiltinCommandNames) => {
20
52
  const trimmed = rawQuery.trim();
21
53
  if (!trimmed.startsWith('/')) {
22
54
  return;
23
55
  }
24
- // Only custom commands are supported for now.
25
- const loaders = [new FileCommandLoader(config)];
56
+ const allowedBuiltinSet = new Set(allowedBuiltinCommandNames ?? []);
57
+ // Only load BuiltinCommandLoader if there are allowed built-in commands
58
+ const loaders = allowedBuiltinSet.size > 0
59
+ ? [new BuiltinCommandLoader(config), new FileCommandLoader(config)]
60
+ : [new FileCommandLoader(config)];
26
61
  const commandService = await CommandService.create(loaders, abortController.signal);
27
62
  const commands = commandService.getCommands();
28
- const { commandToExecute, args } = parseSlashCommand(rawQuery, commands);
63
+ const filteredCommands = filterCommandsForNonInteractive(commands, allowedBuiltinSet);
64
+ const { commandToExecute, args } = parseSlashCommand(rawQuery, filteredCommands);
29
65
  if (commandToExecute) {
30
66
  if (commandToExecute.action) {
31
67
  // Not used by custom commands but may be in the future.
@@ -76,4 +112,33 @@ export const handleSlashCommand = async (rawQuery, abortController, config, sett
76
112
  }
77
113
  return;
78
114
  };
115
+ /**
116
+ * Retrieves all available slash commands for the current configuration.
117
+ *
118
+ * @param config The configuration object
119
+ * @param settings The loaded settings
120
+ * @param abortSignal Signal to cancel the loading process
121
+ * @param allowedBuiltinCommandNames Optional array of built-in command names that are
122
+ * allowed. If not provided or empty, only file commands are available.
123
+ * @returns A Promise that resolves to an array of SlashCommand objects
124
+ */
125
+ export const getAvailableCommands = async (config, settings, abortSignal, allowedBuiltinCommandNames) => {
126
+ try {
127
+ const allowedBuiltinSet = new Set(allowedBuiltinCommandNames ?? []);
128
+ // Only load BuiltinCommandLoader if there are allowed built-in commands
129
+ const loaders = allowedBuiltinSet.size > 0
130
+ ? [new BuiltinCommandLoader(config), new FileCommandLoader(config)]
131
+ : [new FileCommandLoader(config)];
132
+ const commandService = await CommandService.create(loaders, abortSignal);
133
+ const commands = commandService.getCommands();
134
+ const filteredCommands = filterCommandsForNonInteractive(commands, allowedBuiltinSet);
135
+ // Filter out hidden commands
136
+ return filteredCommands.filter((cmd) => !cmd.hidden);
137
+ }
138
+ catch (error) {
139
+ // Handle errors gracefully - log and return empty array
140
+ console.error('Error loading available commands:', error);
141
+ return [];
142
+ }
143
+ };
79
144
  //# sourceMappingURL=nonInteractiveCliCommands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nonInteractiveCliCommands.js","sourceRoot":"","sources":["../../src/nonInteractiveCliCommands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,eAAe,EACf,MAAM,EACN,kBAAkB,GAEnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAIjF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,QAAgB,EAChB,eAAgC,EAChC,MAAc,EACd,QAAwB,EACY,EAAE;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,8CAA8C;IAC9C,MAAM,OAAO,GAAG,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,MAAM,CAChD,OAAO,EACP,eAAe,CAAC,MAAM,CACvB,CAAC;IACF,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;IAE9C,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEzE,IAAI,gBAAgB,EAAE,CAAC;QACrB,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC5B,wDAAwD;YACxD,MAAM,YAAY,GAAsB;gBACtC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE;gBACjC,gBAAgB,EAAE,IAAI,IAAI,EAAE;gBAC5B,OAAO,EAAE,kBAAkB,CAAC,UAAU,EAAE;gBACxC,oBAAoB,EAAE,CAAC;gBACvB,WAAW,EAAE,CAAC;aACf,CAAC;YAEF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAEzE,MAAM,OAAO,GAAmB;gBAC9B,QAAQ,EAAE;oBACR,MAAM;oBACN,QAAQ;oBACR,GAAG,EAAE,SAAS;oBACd,MAAM;iBACP;gBACD,EAAE,EAAE,sBAAsB,EAAE;gBAC5B,OAAO,EAAE;oBACP,KAAK,EAAE,YAAY;oBACnB,qBAAqB,EAAE,IAAI,GAAG,EAAE;iBACjC;gBACD,UAAU,EAAE;oBACV,GAAG,EAAE,OAAO;oBACZ,IAAI,EAAE,gBAAgB,CAAC,IAAI;oBAC3B,IAAI;iBACL;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAE5D,IAAI,MAAM,EAAE,CAAC;gBACX,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;oBACpB,KAAK,eAAe;wBAClB,OAAO,MAAM,CAAC,OAAO,CAAC;oBACxB,KAAK,wBAAwB;wBAC3B,uEAAuE;wBACvE,wEAAwE;wBACxE,oEAAoE;wBACpE,8BAA8B;wBAC9B,mEAAmE;wBACnE,6EAA6E;wBAC7E,MAAM,IAAI,eAAe,CACvB,gEAAgE,CACjE,CAAC;oBACJ;wBACE,MAAM,IAAI,eAAe,CACvB,8EAA8E,CAC/E,CAAC;gBACN,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;AACT,CAAC,CAAC"}
1
+ {"version":3,"file":"nonInteractiveCliCommands.js","sourceRoot":"","sources":["../../src/nonInteractiveCliCommands.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ import { extensionsCommand } from '../ui/commands/extensionsCommand.js';
20
20
  import { helpCommand } from '../ui/commands/helpCommand.js';
21
21
  import { ideCommand } from '../ui/commands/ideCommand.js';
22
22
  import { initCommand } from '../ui/commands/initCommand.js';
23
+ import { languageCommand } from '../ui/commands/languageCommand.js';
23
24
  import { mcpCommand } from '../ui/commands/mcpCommand.js';
24
25
  import { memoryCommand } from '../ui/commands/memoryCommand.js';
25
26
  import { modelCommand } from '../ui/commands/modelCommand.js';
@@ -71,6 +72,7 @@ export class BuiltinCommandLoader {
71
72
  helpCommand,
72
73
  await ideCommand(),
73
74
  initCommand,
75
+ languageCommand,
74
76
  mcpCommand,
75
77
  memoryCommand,
76
78
  modelCommand,
@@ -1 +1 @@
1
- {"version":3,"file":"BuiltinCommandLoader.js","sourceRoot":"","sources":["../../../src/services/BuiltinCommandLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BuiltinCommandLoader.js","sourceRoot":"","sources":["../../../src/services/BuiltinCommandLoader.ts"],"names":[],"mappings":"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"}
@@ -82,7 +82,10 @@ export class FileCommandLoader {
82
82
  allCommands.push(...commands);
83
83
  }
84
84
  catch (error) {
85
- if (error.code !== 'ENOENT') {
85
+ // Ignore ENOENT (directory doesn't exist) and AbortError (operation was cancelled)
86
+ const isEnoent = error.code === 'ENOENT';
87
+ const isAbortError = error instanceof Error && error.name === 'AbortError';
88
+ if (!isEnoent && !isAbortError) {
86
89
  console.error(`[FileCommandLoader] Error loading commands from ${dirInfo.path}:`, error);
87
90
  }
88
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FileCommandLoader.js","sourceRoot":"","sources":["../../../src/services/FileCommandLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileCommandLoader.js","sourceRoot":"","sources":["../../../src/services/FileCommandLoader.ts"],"names":[],"mappings":"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"}