@umsai/ums-code 0.1.4-v2 → 0.3.0-v2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Readable } from 'node:stream';
7
+ import type { CLIControlRequest, CLIControlResponse, CLIMessage, ControlCancelRequest } from '../types.js';
8
+ export type StreamJsonInputMessage = CLIMessage | CLIControlRequest | CLIControlResponse | ControlCancelRequest;
9
+ export declare class StreamJsonParseError extends Error {
10
+ }
11
+ export declare class StreamJsonInputReader {
12
+ private readonly input;
13
+ constructor(input?: Readable);
14
+ read(): AsyncGenerator<StreamJsonInputMessage>;
15
+ private parse;
16
+ }
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { createInterface } from 'node:readline/promises';
7
+ import process from 'node:process';
8
+ export class StreamJsonParseError extends Error {
9
+ }
10
+ export class StreamJsonInputReader {
11
+ input;
12
+ constructor(input = process.stdin) {
13
+ this.input = input;
14
+ }
15
+ async *read() {
16
+ const rl = createInterface({
17
+ input: this.input,
18
+ crlfDelay: Number.POSITIVE_INFINITY,
19
+ terminal: false,
20
+ });
21
+ try {
22
+ for await (const rawLine of rl) {
23
+ const line = rawLine.trim();
24
+ if (!line) {
25
+ continue;
26
+ }
27
+ yield this.parse(line);
28
+ }
29
+ }
30
+ finally {
31
+ rl.close();
32
+ }
33
+ }
34
+ parse(line) {
35
+ try {
36
+ const parsed = JSON.parse(line);
37
+ if (!parsed || typeof parsed !== 'object') {
38
+ throw new StreamJsonParseError('Parsed value is not an object');
39
+ }
40
+ if (!('type' in parsed) || typeof parsed.type !== 'string') {
41
+ throw new StreamJsonParseError('Missing required "type" field');
42
+ }
43
+ return parsed;
44
+ }
45
+ catch (error) {
46
+ if (error instanceof StreamJsonParseError) {
47
+ throw error;
48
+ }
49
+ const reason = error instanceof Error ? error.message : String(error);
50
+ throw new StreamJsonParseError(`Failed to parse stream-json line: ${reason}`);
51
+ }
52
+ }
53
+ }
54
+ //# sourceMappingURL=StreamJsonInputReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamJsonInputReader.js","sourceRoot":"","sources":["../../../../src/nonInteractive/io/StreamJsonInputReader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,OAAO,MAAM,cAAc,CAAC;AAcnC,MAAM,OAAO,oBAAqB,SAAQ,KAAK;CAAG;AAElD,MAAM,OAAO,qBAAqB;IACf,KAAK,CAAW;IAEjC,YAAY,QAAkB,OAAO,CAAC,KAAK;QACzC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,CAAC,IAAI;QACT,MAAM,EAAE,GAAG,eAAe,CAAC;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,MAAM,CAAC,iBAAiB;YACnC,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,EAAE,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,SAAS;gBACX,CAAC;gBAED,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAY;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA2B,CAAC;YAC1D,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC1C,MAAM,IAAI,oBAAoB,CAAC,+BAA+B,CAAC,CAAC;YAClE,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3D,MAAM,IAAI,oBAAoB,CAAC,+BAA+B,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;gBAC1C,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,MAAM,IAAI,oBAAoB,CAC5B,qCAAqC,MAAM,EAAE,CAC9C,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,178 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { PassThrough } from 'node:stream';
7
+ import { afterEach, describe, expect, it, vi } from 'vitest';
8
+ import { StreamJsonInputReader, StreamJsonParseError, } from './StreamJsonInputReader.js';
9
+ describe('StreamJsonInputReader', () => {
10
+ afterEach(() => {
11
+ vi.restoreAllMocks();
12
+ });
13
+ describe('read', () => {
14
+ /**
15
+ * Test parsing all supported message types in a single test
16
+ */
17
+ it('should parse valid messages of all types', async () => {
18
+ const input = new PassThrough();
19
+ const reader = new StreamJsonInputReader(input);
20
+ const messages = [
21
+ {
22
+ type: 'user',
23
+ session_id: 'test-session',
24
+ message: {
25
+ role: 'user',
26
+ content: [{ type: 'text', text: 'hello world' }],
27
+ },
28
+ parent_tool_use_id: null,
29
+ },
30
+ {
31
+ type: 'control_request',
32
+ request_id: 'req-1',
33
+ request: { subtype: 'initialize' },
34
+ },
35
+ {
36
+ type: 'control_response',
37
+ response: {
38
+ subtype: 'success',
39
+ request_id: 'req-1',
40
+ response: { initialized: true },
41
+ },
42
+ },
43
+ {
44
+ type: 'control_cancel_request',
45
+ request_id: 'req-1',
46
+ },
47
+ ];
48
+ for (const msg of messages) {
49
+ input.write(JSON.stringify(msg) + '\n');
50
+ }
51
+ input.end();
52
+ const parsed = [];
53
+ for await (const msg of reader.read()) {
54
+ parsed.push(msg);
55
+ }
56
+ expect(parsed).toHaveLength(messages.length);
57
+ expect(parsed).toEqual(messages);
58
+ });
59
+ it('should parse multiple messages', async () => {
60
+ const input = new PassThrough();
61
+ const reader = new StreamJsonInputReader(input);
62
+ const message1 = {
63
+ type: 'control_request',
64
+ request_id: 'req-1',
65
+ request: { subtype: 'initialize' },
66
+ };
67
+ const message2 = {
68
+ type: 'user',
69
+ session_id: 'test-session',
70
+ message: {
71
+ role: 'user',
72
+ content: [{ type: 'text', text: 'hello' }],
73
+ },
74
+ parent_tool_use_id: null,
75
+ };
76
+ input.write(JSON.stringify(message1) + '\n');
77
+ input.write(JSON.stringify(message2) + '\n');
78
+ input.end();
79
+ const messages = [];
80
+ for await (const msg of reader.read()) {
81
+ messages.push(msg);
82
+ }
83
+ expect(messages).toHaveLength(2);
84
+ expect(messages[0]).toEqual(message1);
85
+ expect(messages[1]).toEqual(message2);
86
+ });
87
+ it('should skip empty lines and trim whitespace', async () => {
88
+ const input = new PassThrough();
89
+ const reader = new StreamJsonInputReader(input);
90
+ const message = {
91
+ type: 'user',
92
+ session_id: 'test-session',
93
+ message: {
94
+ role: 'user',
95
+ content: [{ type: 'text', text: 'hello' }],
96
+ },
97
+ parent_tool_use_id: null,
98
+ };
99
+ input.write('\n');
100
+ input.write(' ' + JSON.stringify(message) + ' \n');
101
+ input.write(' \n');
102
+ input.write('\t\n');
103
+ input.end();
104
+ const messages = [];
105
+ for await (const msg of reader.read()) {
106
+ messages.push(msg);
107
+ }
108
+ expect(messages).toHaveLength(1);
109
+ expect(messages[0]).toEqual(message);
110
+ });
111
+ /**
112
+ * Consolidated error handling test cases
113
+ */
114
+ it.each([
115
+ {
116
+ name: 'invalid JSON',
117
+ input: '{"invalid": json}\n',
118
+ expectedError: 'Failed to parse stream-json line',
119
+ },
120
+ {
121
+ name: 'missing type field',
122
+ input: JSON.stringify({ session_id: 'test-session', message: 'hello' }) +
123
+ '\n',
124
+ expectedError: 'Missing required "type" field',
125
+ },
126
+ {
127
+ name: 'non-object value (string)',
128
+ input: '"just a string"\n',
129
+ expectedError: 'Parsed value is not an object',
130
+ },
131
+ {
132
+ name: 'non-object value (null)',
133
+ input: 'null\n',
134
+ expectedError: 'Parsed value is not an object',
135
+ },
136
+ {
137
+ name: 'array value',
138
+ input: '[1, 2, 3]\n',
139
+ expectedError: 'Missing required "type" field',
140
+ },
141
+ {
142
+ name: 'type field not a string',
143
+ input: JSON.stringify({ type: 123, session_id: 'test-session' }) + '\n',
144
+ expectedError: 'Missing required "type" field',
145
+ },
146
+ ])('should throw StreamJsonParseError for $name', async ({ input: inputLine, expectedError }) => {
147
+ const input = new PassThrough();
148
+ const reader = new StreamJsonInputReader(input);
149
+ input.write(inputLine);
150
+ input.end();
151
+ const messages = [];
152
+ let error;
153
+ try {
154
+ for await (const msg of reader.read()) {
155
+ messages.push(msg);
156
+ }
157
+ }
158
+ catch (e) {
159
+ error = e;
160
+ }
161
+ expect(messages).toHaveLength(0);
162
+ expect(error).toBeInstanceOf(StreamJsonParseError);
163
+ expect(error.message).toContain(expectedError);
164
+ });
165
+ it('should use process.stdin as default input', () => {
166
+ const reader = new StreamJsonInputReader();
167
+ // Access private field for testing constructor default parameter
168
+ expect(reader.input).toBe(process.stdin);
169
+ });
170
+ it('should use provided input stream', () => {
171
+ const customInput = new PassThrough();
172
+ const reader = new StreamJsonInputReader(customInput);
173
+ // Access private field for testing constructor parameter
174
+ expect(reader.input).toBe(customInput);
175
+ });
176
+ });
177
+ });
178
+ //# sourceMappingURL=StreamJsonInputReader.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamJsonInputReader.test.js","sourceRoot":"","sources":["../../../../src/nonInteractive/io/StreamJsonInputReader.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Config } from '@umsai/ums-code-core';
7
+ import type { CLIAssistantMessage, CLIMessage, ControlMessage, TextBlock, ThinkingBlock, ToolUseBlock } from '../types.js';
8
+ import { BaseJsonOutputAdapter, type MessageState, type ResultOptions, type JsonOutputAdapterInterface } from './BaseJsonOutputAdapter.js';
9
+ /**
10
+ * Stream JSON output adapter that emits messages immediately
11
+ * as they are completed during the streaming process.
12
+ * Supports both main agent and subagent messages through distinct APIs.
13
+ */
14
+ export declare class StreamJsonOutputAdapter extends BaseJsonOutputAdapter implements JsonOutputAdapterInterface {
15
+ private readonly includePartialMessages;
16
+ constructor(config: Config, includePartialMessages: boolean);
17
+ /**
18
+ * Emits message immediately to stdout (stream mode).
19
+ */
20
+ protected emitMessageImpl(message: CLIMessage | ControlMessage): void;
21
+ /**
22
+ * Stream mode emits stream events when includePartialMessages is enabled.
23
+ */
24
+ protected shouldEmitStreamEvents(): boolean;
25
+ finalizeAssistantMessage(): CLIAssistantMessage;
26
+ emitResult(options: ResultOptions): void;
27
+ emitMessage(message: CLIMessage | ControlMessage): void;
28
+ send(message: CLIMessage | ControlMessage): void;
29
+ /**
30
+ * Overrides base class hook to emit stream event when text block is created.
31
+ */
32
+ protected onTextBlockCreated(state: MessageState, index: number, block: TextBlock, parentToolUseId: string | null): void;
33
+ /**
34
+ * Overrides base class hook to emit stream event when text is appended.
35
+ */
36
+ protected onTextAppended(state: MessageState, index: number, fragment: string, parentToolUseId: string | null): void;
37
+ /**
38
+ * Overrides base class hook to emit stream event when thinking block is created.
39
+ */
40
+ protected onThinkingBlockCreated(state: MessageState, index: number, block: ThinkingBlock, parentToolUseId: string | null): void;
41
+ /**
42
+ * Overrides base class hook to emit stream event when thinking is appended.
43
+ */
44
+ protected onThinkingAppended(state: MessageState, index: number, fragment: string, parentToolUseId: string | null): void;
45
+ /**
46
+ * Overrides base class hook to emit stream event when tool_use block is created.
47
+ */
48
+ protected onToolUseBlockCreated(state: MessageState, index: number, block: ToolUseBlock, parentToolUseId: string | null): void;
49
+ /**
50
+ * Overrides base class hook to emit stream event when tool_use input is set.
51
+ */
52
+ protected onToolUseInputSet(state: MessageState, index: number, input: unknown, parentToolUseId: string | null): void;
53
+ /**
54
+ * Overrides base class hook to emit stream event when block is closed.
55
+ */
56
+ protected onBlockClosed(state: MessageState, index: number, parentToolUseId: string | null): void;
57
+ /**
58
+ * Overrides base class hook to emit message_start event when message is started.
59
+ * Only emits for main agent, not for subagents.
60
+ */
61
+ protected onEnsureMessageStarted(state: MessageState, parentToolUseId: string | null): void;
62
+ /**
63
+ * Emits stream events when partial messages are enabled.
64
+ * This is a private method specific to StreamJsonOutputAdapter.
65
+ * @param event - Stream event to emit
66
+ * @param parentToolUseId - null for main agent, string for subagent
67
+ */
68
+ private emitStreamEventIfEnabled;
69
+ }
@@ -0,0 +1,185 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { randomUUID } from 'node:crypto';
7
+ import { BaseJsonOutputAdapter, } from './BaseJsonOutputAdapter.js';
8
+ /**
9
+ * Stream JSON output adapter that emits messages immediately
10
+ * as they are completed during the streaming process.
11
+ * Supports both main agent and subagent messages through distinct APIs.
12
+ */
13
+ export class StreamJsonOutputAdapter extends BaseJsonOutputAdapter {
14
+ includePartialMessages;
15
+ constructor(config, includePartialMessages) {
16
+ super(config);
17
+ this.includePartialMessages = includePartialMessages;
18
+ }
19
+ /**
20
+ * Emits message immediately to stdout (stream mode).
21
+ */
22
+ emitMessageImpl(message) {
23
+ // Track assistant messages for result generation
24
+ if (typeof message === 'object' &&
25
+ message !== null &&
26
+ 'type' in message &&
27
+ message.type === 'assistant') {
28
+ this.updateLastAssistantMessage(message);
29
+ }
30
+ // Emit messages immediately in stream mode
31
+ process.stdout.write(`${JSON.stringify(message)}\n`);
32
+ }
33
+ /**
34
+ * Stream mode emits stream events when includePartialMessages is enabled.
35
+ */
36
+ shouldEmitStreamEvents() {
37
+ return this.includePartialMessages;
38
+ }
39
+ finalizeAssistantMessage() {
40
+ const state = this.mainAgentMessageState;
41
+ if (state.finalized) {
42
+ return this.buildMessage(null);
43
+ }
44
+ state.finalized = true;
45
+ this.finalizePendingBlocks(state, null);
46
+ const orderedOpenBlocks = Array.from(state.openBlocks).sort((a, b) => a - b);
47
+ for (const index of orderedOpenBlocks) {
48
+ this.onBlockClosed(state, index, null);
49
+ this.closeBlock(state, index);
50
+ }
51
+ if (state.messageStarted && this.includePartialMessages) {
52
+ this.emitStreamEventIfEnabled({ type: 'message_stop' }, null);
53
+ }
54
+ const message = this.buildMessage(null);
55
+ this.updateLastAssistantMessage(message);
56
+ this.emitMessageImpl(message);
57
+ return message;
58
+ }
59
+ emitResult(options) {
60
+ const resultMessage = this.buildResultMessage(options, this.lastAssistantMessage);
61
+ this.emitMessageImpl(resultMessage);
62
+ }
63
+ emitMessage(message) {
64
+ // In stream mode, emit immediately
65
+ this.emitMessageImpl(message);
66
+ }
67
+ send(message) {
68
+ this.emitMessage(message);
69
+ }
70
+ /**
71
+ * Overrides base class hook to emit stream event when text block is created.
72
+ */
73
+ onTextBlockCreated(state, index, block, parentToolUseId) {
74
+ this.emitStreamEventIfEnabled({
75
+ type: 'content_block_start',
76
+ index,
77
+ content_block: block,
78
+ }, parentToolUseId);
79
+ }
80
+ /**
81
+ * Overrides base class hook to emit stream event when text is appended.
82
+ */
83
+ onTextAppended(state, index, fragment, parentToolUseId) {
84
+ this.emitStreamEventIfEnabled({
85
+ type: 'content_block_delta',
86
+ index,
87
+ delta: { type: 'text_delta', text: fragment },
88
+ }, parentToolUseId);
89
+ }
90
+ /**
91
+ * Overrides base class hook to emit stream event when thinking block is created.
92
+ */
93
+ onThinkingBlockCreated(state, index, block, parentToolUseId) {
94
+ this.emitStreamEventIfEnabled({
95
+ type: 'content_block_start',
96
+ index,
97
+ content_block: block,
98
+ }, parentToolUseId);
99
+ }
100
+ /**
101
+ * Overrides base class hook to emit stream event when thinking is appended.
102
+ */
103
+ onThinkingAppended(state, index, fragment, parentToolUseId) {
104
+ this.emitStreamEventIfEnabled({
105
+ type: 'content_block_delta',
106
+ index,
107
+ delta: { type: 'thinking_delta', thinking: fragment },
108
+ }, parentToolUseId);
109
+ }
110
+ /**
111
+ * Overrides base class hook to emit stream event when tool_use block is created.
112
+ */
113
+ onToolUseBlockCreated(state, index, block, parentToolUseId) {
114
+ this.emitStreamEventIfEnabled({
115
+ type: 'content_block_start',
116
+ index,
117
+ content_block: block,
118
+ }, parentToolUseId);
119
+ }
120
+ /**
121
+ * Overrides base class hook to emit stream event when tool_use input is set.
122
+ */
123
+ onToolUseInputSet(state, index, input, parentToolUseId) {
124
+ this.emitStreamEventIfEnabled({
125
+ type: 'content_block_delta',
126
+ index,
127
+ delta: {
128
+ type: 'input_json_delta',
129
+ partial_json: JSON.stringify(input),
130
+ },
131
+ }, parentToolUseId);
132
+ }
133
+ /**
134
+ * Overrides base class hook to emit stream event when block is closed.
135
+ */
136
+ onBlockClosed(state, index, parentToolUseId) {
137
+ if (this.includePartialMessages) {
138
+ this.emitStreamEventIfEnabled({
139
+ type: 'content_block_stop',
140
+ index,
141
+ }, parentToolUseId);
142
+ }
143
+ }
144
+ /**
145
+ * Overrides base class hook to emit message_start event when message is started.
146
+ * Only emits for main agent, not for subagents.
147
+ */
148
+ onEnsureMessageStarted(state, parentToolUseId) {
149
+ // Only emit message_start for main agent, not for subagents
150
+ if (parentToolUseId === null) {
151
+ this.emitStreamEventIfEnabled({
152
+ type: 'message_start',
153
+ message: {
154
+ id: state.messageId,
155
+ role: 'assistant',
156
+ model: this.config.getModel(),
157
+ },
158
+ }, null);
159
+ }
160
+ }
161
+ /**
162
+ * Emits stream events when partial messages are enabled.
163
+ * This is a private method specific to StreamJsonOutputAdapter.
164
+ * @param event - Stream event to emit
165
+ * @param parentToolUseId - null for main agent, string for subagent
166
+ */
167
+ emitStreamEventIfEnabled(event, parentToolUseId) {
168
+ if (!this.includePartialMessages) {
169
+ return;
170
+ }
171
+ const state = this.getMessageState(parentToolUseId);
172
+ const enrichedEvent = state.messageStarted
173
+ ? { ...event, message_id: state.messageId }
174
+ : event;
175
+ const partial = {
176
+ type: 'stream_event',
177
+ uuid: randomUUID(),
178
+ session_id: this.getSessionId(),
179
+ parent_tool_use_id: parentToolUseId,
180
+ event: enrichedEvent,
181
+ };
182
+ this.emitMessageImpl(partial);
183
+ }
184
+ }
185
+ //# sourceMappingURL=StreamJsonOutputAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamJsonOutputAdapter.js","sourceRoot":"","sources":["../../../../src/nonInteractive/io/StreamJsonOutputAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen Team
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};