@umsai/ums-code 0.0.14-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 (1007) hide show
  1. package/dist/package.json +25 -12
  2. package/dist/src/commands/extensions/disable.d.ts +2 -3
  3. package/dist/src/commands/extensions/disable.js +20 -6
  4. package/dist/src/commands/extensions/disable.js.map +1 -1
  5. package/dist/src/commands/extensions/enable.d.ts +2 -3
  6. package/dist/src/commands/extensions/enable.js +21 -10
  7. package/dist/src/commands/extensions/enable.js.map +1 -1
  8. package/dist/src/commands/extensions/examples/context/QWEN.md +8 -0
  9. package/dist/src/commands/extensions/examples/context/qwen-extension.json +4 -0
  10. package/dist/src/commands/extensions/examples/custom-commands/commands/fs/grep-code.toml +6 -0
  11. package/dist/src/commands/extensions/examples/custom-commands/qwen-extension.json +4 -0
  12. package/dist/src/commands/extensions/examples/exclude-tools/qwen-extension.json +5 -0
  13. package/dist/src/commands/extensions/examples/mcp-server/example.ts +60 -0
  14. package/dist/src/commands/extensions/examples/mcp-server/package.json +18 -0
  15. package/dist/src/commands/extensions/examples/mcp-server/qwen-extension.json +11 -0
  16. package/dist/src/commands/extensions/examples/mcp-server/tsconfig.json +13 -0
  17. package/dist/src/commands/extensions/install.d.ts +3 -2
  18. package/dist/src/commands/extensions/install.js +47 -17
  19. package/dist/src/commands/extensions/install.js.map +1 -1
  20. package/dist/src/commands/extensions/install.test.js +86 -9
  21. package/dist/src/commands/extensions/install.test.js.map +1 -1
  22. package/dist/src/commands/extensions/link.d.ts +12 -0
  23. package/dist/src/commands/extensions/link.js +37 -0
  24. package/dist/src/commands/extensions/link.js.map +1 -0
  25. package/dist/src/commands/extensions/list.js +1 -1
  26. package/dist/src/commands/extensions/list.js.map +1 -1
  27. package/dist/src/commands/extensions/new.d.ts +7 -0
  28. package/dist/src/commands/extensions/new.js +90 -0
  29. package/dist/src/commands/extensions/new.js.map +1 -0
  30. package/dist/src/commands/extensions/new.test.js +59 -0
  31. package/dist/src/commands/extensions/new.test.js.map +1 -0
  32. package/dist/src/commands/extensions/uninstall.js +1 -1
  33. package/dist/src/commands/extensions/uninstall.js.map +1 -1
  34. package/dist/src/commands/extensions/uninstall.test.js +2 -2
  35. package/dist/src/commands/extensions/uninstall.test.js.map +1 -1
  36. package/dist/src/commands/extensions/update.d.ts +2 -1
  37. package/dist/src/commands/extensions/update.js +80 -14
  38. package/dist/src/commands/extensions/update.js.map +1 -1
  39. package/dist/src/commands/extensions.js +4 -0
  40. package/dist/src/commands/extensions.js.map +1 -1
  41. package/dist/src/commands/mcp/add.js +6 -1
  42. package/dist/src/commands/mcp/add.js.map +1 -1
  43. package/dist/src/commands/mcp/list.js +4 -3
  44. package/dist/src/commands/mcp/list.js.map +1 -1
  45. package/dist/src/commands/mcp/remove.js +1 -1
  46. package/dist/src/commands/mcp/remove.js.map +1 -1
  47. package/dist/src/config/auth.d.ts +2 -4
  48. package/dist/src/config/auth.js +10 -36
  49. package/dist/src/config/auth.js.map +1 -1
  50. package/dist/src/config/auth.test.js +12 -32
  51. package/dist/src/config/auth.test.js.map +1 -1
  52. package/dist/src/config/config.d.ts +13 -2
  53. package/dist/src/config/config.js +278 -128
  54. package/dist/src/config/config.js.map +1 -1
  55. package/dist/src/config/extension.d.ts +41 -18
  56. package/dist/src/config/extension.js +352 -195
  57. package/dist/src/config/extension.js.map +1 -1
  58. package/dist/src/config/extensions/extensionEnablement.d.ts +47 -0
  59. package/dist/src/config/extensions/extensionEnablement.js +189 -0
  60. package/dist/src/config/extensions/extensionEnablement.js.map +1 -0
  61. package/dist/src/config/extensions/extensionEnablement.test.js +333 -0
  62. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -0
  63. package/dist/src/config/extensions/github.d.ts +30 -0
  64. package/dist/src/config/extensions/github.js +322 -0
  65. package/dist/src/config/extensions/github.js.map +1 -0
  66. package/dist/src/config/extensions/github.test.d.ts +6 -0
  67. package/dist/src/config/extensions/github.test.js +334 -0
  68. package/dist/src/config/extensions/github.test.js.map +1 -0
  69. package/dist/src/config/extensions/update.d.ts +19 -0
  70. package/dist/src/config/extensions/update.js +113 -0
  71. package/dist/src/config/extensions/update.js.map +1 -0
  72. package/dist/src/config/extensions/update.test.d.ts +6 -0
  73. package/dist/src/config/extensions/update.test.js +342 -0
  74. package/dist/src/config/extensions/update.test.js.map +1 -0
  75. package/dist/src/config/extensions/variableSchema.d.ts +8 -0
  76. package/dist/src/config/extensions/variableSchema.js +4 -0
  77. package/dist/src/config/extensions/variableSchema.js.map +1 -1
  78. package/dist/src/config/keyBindings.d.ts +5 -1
  79. package/dist/src/config/keyBindings.js +14 -25
  80. package/dist/src/config/keyBindings.js.map +1 -1
  81. package/dist/src/config/settings.d.ts +15 -5
  82. package/dist/src/config/settings.js +231 -274
  83. package/dist/src/config/settings.js.map +1 -1
  84. package/dist/src/config/settingsSchema.d.ts +425 -149
  85. package/dist/src/config/settingsSchema.js +396 -145
  86. package/dist/src/config/settingsSchema.js.map +1 -1
  87. package/dist/src/config/settingsSchema.test.js +64 -57
  88. package/dist/src/config/settingsSchema.test.js.map +1 -1
  89. package/dist/src/config/trustedFolders.d.ts +24 -5
  90. package/dist/src/config/trustedFolders.js +98 -48
  91. package/dist/src/config/trustedFolders.js.map +1 -1
  92. package/dist/src/config/trustedFolders.test.js +196 -20
  93. package/dist/src/config/trustedFolders.test.js.map +1 -1
  94. package/dist/src/config/webSearch.d.ts +35 -0
  95. package/dist/src/config/webSearch.js +87 -0
  96. package/dist/src/config/webSearch.js.map +1 -0
  97. package/dist/src/core/auth.d.ts +13 -0
  98. package/dist/src/core/auth.js +43 -0
  99. package/dist/src/core/auth.js.map +1 -0
  100. package/dist/src/core/initializer.d.ts +21 -0
  101. package/dist/src/core/initializer.js +44 -0
  102. package/dist/src/core/initializer.js.map +1 -0
  103. package/dist/src/core/theme.d.ts +12 -0
  104. package/dist/src/core/theme.js +23 -0
  105. package/dist/src/core/theme.js.map +1 -0
  106. package/dist/src/gemini.d.ts +2 -1
  107. package/dist/src/gemini.js +166 -128
  108. package/dist/src/gemini.js.map +1 -1
  109. package/dist/src/gemini.test.js +307 -47
  110. package/dist/src/gemini.test.js.map +1 -1
  111. package/dist/src/generated/git-commit.d.ts +2 -2
  112. package/dist/src/generated/git-commit.js +2 -2
  113. package/dist/src/generated/git-commit.js.map +1 -1
  114. package/dist/src/i18n/index.d.ts +18 -0
  115. package/dist/src/i18n/index.js +184 -0
  116. package/dist/src/i18n/index.js.map +1 -0
  117. package/dist/src/i18n/locales/en.js +1129 -0
  118. package/dist/src/i18n/locales/zh.js +1052 -0
  119. package/dist/src/nonInteractive/control/ControlContext.d.ts +63 -0
  120. package/dist/src/nonInteractive/control/ControlContext.js +31 -0
  121. package/dist/src/nonInteractive/control/ControlContext.js.map +1 -0
  122. package/dist/src/nonInteractive/control/ControlDispatcher.d.ts +86 -0
  123. package/dist/src/nonInteractive/control/ControlDispatcher.js +238 -0
  124. package/dist/src/nonInteractive/control/ControlDispatcher.js.map +1 -0
  125. package/dist/src/nonInteractive/control/ControlDispatcher.test.d.ts +6 -0
  126. package/dist/src/nonInteractive/control/ControlDispatcher.test.js +549 -0
  127. package/dist/src/nonInteractive/control/ControlDispatcher.test.js.map +1 -0
  128. package/dist/src/nonInteractive/control/ControlService.d.ts +78 -0
  129. package/dist/src/nonInteractive/control/ControlService.js +154 -0
  130. package/dist/src/nonInteractive/control/ControlService.js.map +1 -0
  131. package/dist/src/nonInteractive/control/controllers/baseController.d.ts +50 -0
  132. package/dist/src/nonInteractive/control/controllers/baseController.js +102 -0
  133. package/dist/src/nonInteractive/control/controllers/baseController.js.map +1 -0
  134. package/dist/src/nonInteractive/control/controllers/hookController.d.ts +25 -0
  135. package/dist/src/nonInteractive/control/controllers/hookController.js +42 -0
  136. package/dist/src/nonInteractive/control/controllers/hookController.js.map +1 -0
  137. package/dist/src/nonInteractive/control/controllers/mcpController.d.ts +42 -0
  138. package/dist/src/nonInteractive/control/controllers/mcpController.js +205 -0
  139. package/dist/src/nonInteractive/control/controllers/mcpController.js.map +1 -0
  140. package/dist/src/nonInteractive/control/controllers/permissionController.d.ts +78 -0
  141. package/dist/src/nonInteractive/control/controllers/permissionController.js +358 -0
  142. package/dist/src/nonInteractive/control/controllers/permissionController.js.map +1 -0
  143. package/dist/src/nonInteractive/control/controllers/systemController.d.ts +56 -0
  144. package/dist/src/nonInteractive/control/controllers/systemController.js +166 -0
  145. package/dist/src/nonInteractive/control/controllers/systemController.js.map +1 -0
  146. package/dist/src/nonInteractive/control/types/serviceAPIs.d.ts +120 -0
  147. package/dist/src/nonInteractive/control/types/serviceAPIs.js +7 -0
  148. package/dist/src/nonInteractive/control/types/serviceAPIs.js.map +1 -0
  149. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.d.ts +446 -0
  150. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.js +891 -0
  151. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.js.map +1 -0
  152. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.test.d.ts +6 -0
  153. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.test.js +1197 -0
  154. package/dist/src/nonInteractive/io/BaseJsonOutputAdapter.test.js.map +1 -0
  155. package/dist/src/nonInteractive/io/JsonOutputAdapter.d.ts +29 -0
  156. package/dist/src/nonInteractive/io/JsonOutputAdapter.js +56 -0
  157. package/dist/src/nonInteractive/io/JsonOutputAdapter.js.map +1 -0
  158. package/dist/src/nonInteractive/io/JsonOutputAdapter.test.d.ts +6 -0
  159. package/dist/src/nonInteractive/io/JsonOutputAdapter.test.js +624 -0
  160. package/dist/src/nonInteractive/io/JsonOutputAdapter.test.js.map +1 -0
  161. package/dist/src/nonInteractive/io/StreamJsonInputReader.d.ts +16 -0
  162. package/dist/src/nonInteractive/io/StreamJsonInputReader.js +54 -0
  163. package/dist/src/nonInteractive/io/StreamJsonInputReader.js.map +1 -0
  164. package/dist/src/nonInteractive/io/StreamJsonInputReader.test.d.ts +6 -0
  165. package/dist/src/nonInteractive/io/StreamJsonInputReader.test.js +178 -0
  166. package/dist/src/nonInteractive/io/StreamJsonInputReader.test.js.map +1 -0
  167. package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.d.ts +69 -0
  168. package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.js +185 -0
  169. package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.js.map +1 -0
  170. package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.test.d.ts +6 -0
  171. package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.test.js +808 -0
  172. package/dist/src/nonInteractive/io/StreamJsonOutputAdapter.test.js.map +1 -0
  173. package/dist/src/nonInteractive/session.d.ts +23 -0
  174. package/dist/src/nonInteractive/session.js +549 -0
  175. package/dist/src/nonInteractive/session.js.map +1 -0
  176. package/dist/src/nonInteractive/session.test.d.ts +6 -0
  177. package/dist/src/nonInteractive/session.test.js +407 -0
  178. package/dist/src/nonInteractive/session.test.js.map +1 -0
  179. package/dist/src/nonInteractive/types.d.ts +344 -0
  180. package/dist/src/nonInteractive/types.js +78 -0
  181. package/dist/src/nonInteractive/types.js.map +1 -0
  182. package/dist/src/nonInteractiveCli.d.ts +22 -1
  183. package/dist/src/nonInteractiveCli.js +245 -69
  184. package/dist/src/nonInteractiveCli.js.map +1 -1
  185. package/dist/src/nonInteractiveCliCommands.d.ts +35 -0
  186. package/dist/src/nonInteractiveCliCommands.js +144 -0
  187. package/dist/src/nonInteractiveCliCommands.js.map +1 -0
  188. package/dist/src/services/BuiltinCommandLoader.js +5 -3
  189. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  190. package/dist/src/services/BuiltinCommandLoader.test.js +53 -19
  191. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  192. package/dist/src/services/FileCommandLoader.d.ts +2 -0
  193. package/dist/src/services/FileCommandLoader.js +11 -1
  194. package/dist/src/services/FileCommandLoader.js.map +1 -1
  195. package/dist/src/services/McpPromptLoader.js +43 -8
  196. package/dist/src/services/McpPromptLoader.js.map +1 -1
  197. package/dist/src/services/McpPromptLoader.test.js +228 -1
  198. package/dist/src/services/McpPromptLoader.test.js.map +1 -1
  199. package/dist/src/services/prompt-processors/shellProcessor.js +8 -1
  200. package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
  201. package/dist/src/test-utils/createExtension.d.ts +15 -0
  202. package/dist/src/test-utils/createExtension.js +25 -0
  203. package/dist/src/test-utils/createExtension.js.map +1 -0
  204. package/dist/src/test-utils/mockCommandContext.js +2 -0
  205. package/dist/src/test-utils/mockCommandContext.js.map +1 -1
  206. package/dist/src/test-utils/render.d.ts +5 -1
  207. package/dist/src/test-utils/render.js +5 -1
  208. package/dist/src/test-utils/render.js.map +1 -1
  209. package/dist/src/ui/App.d.ts +1 -10
  210. package/dist/src/ui/App.js +26 -833
  211. package/dist/src/ui/App.js.map +1 -1
  212. package/dist/src/ui/AppContainer.d.ts +17 -0
  213. package/dist/src/ui/AppContainer.js +1072 -0
  214. package/dist/src/ui/AppContainer.js.map +1 -0
  215. package/dist/src/ui/AppContainer.test.d.ts +6 -0
  216. package/dist/src/ui/AppContainer.test.js +831 -0
  217. package/dist/src/ui/AppContainer.test.js.map +1 -0
  218. package/dist/src/ui/IdeIntegrationNudge.d.ts +2 -2
  219. package/dist/src/ui/IdeIntegrationNudge.js +6 -8
  220. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  221. package/dist/src/ui/auth/AuthDialog.d.ts +7 -0
  222. package/dist/src/ui/auth/AuthDialog.js +90 -0
  223. package/dist/src/ui/auth/AuthDialog.js.map +1 -0
  224. package/dist/src/ui/auth/AuthDialog.test.d.ts +6 -0
  225. package/dist/src/ui/{components → auth}/AuthDialog.test.js +141 -29
  226. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -0
  227. package/dist/src/ui/{components → auth}/AuthInProgress.js +3 -2
  228. package/dist/src/ui/auth/AuthInProgress.js.map +1 -0
  229. package/dist/src/ui/auth/useAuth.d.ts +25 -0
  230. package/dist/src/ui/auth/useAuth.js +180 -0
  231. package/dist/src/ui/auth/useAuth.js.map +1 -0
  232. package/dist/src/ui/commands/aboutCommand.js +7 -25
  233. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  234. package/dist/src/ui/commands/agentsCommand.js +10 -3
  235. package/dist/src/ui/commands/agentsCommand.js.map +1 -1
  236. package/dist/src/ui/commands/approvalModeCommand.js +8 -329
  237. package/dist/src/ui/commands/approvalModeCommand.js.map +1 -1
  238. package/dist/src/ui/commands/approvalModeCommand.test.js +19 -263
  239. package/dist/src/ui/commands/approvalModeCommand.test.js.map +1 -1
  240. package/dist/src/ui/commands/authCommand.js +4 -1
  241. package/dist/src/ui/commands/authCommand.js.map +1 -1
  242. package/dist/src/ui/commands/bugCommand.js +13 -33
  243. package/dist/src/ui/commands/bugCommand.js.map +1 -1
  244. package/dist/src/ui/commands/chatCommand.d.ts +2 -0
  245. package/dist/src/ui/commands/chatCommand.js +137 -21
  246. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  247. package/dist/src/ui/commands/clearCommand.js +7 -4
  248. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  249. package/dist/src/ui/commands/compressCommand.js +9 -4
  250. package/dist/src/ui/commands/compressCommand.js.map +1 -1
  251. package/dist/src/ui/commands/copyCommand.js +4 -1
  252. package/dist/src/ui/commands/copyCommand.js.map +1 -1
  253. package/dist/src/ui/commands/corgiCommand.js +1 -0
  254. package/dist/src/ui/commands/corgiCommand.js.map +1 -1
  255. package/dist/src/ui/commands/directoryCommand.js +31 -13
  256. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  257. package/dist/src/ui/commands/docsCommand.js +9 -3
  258. package/dist/src/ui/commands/docsCommand.js.map +1 -1
  259. package/dist/src/ui/commands/editorCommand.js +4 -1
  260. package/dist/src/ui/commands/editorCommand.js.map +1 -1
  261. package/dist/src/ui/commands/extensionsCommand.js +99 -15
  262. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  263. package/dist/src/ui/commands/helpCommand.js +4 -1
  264. package/dist/src/ui/commands/helpCommand.js.map +1 -1
  265. package/dist/src/ui/commands/ideCommand.d.ts +1 -2
  266. package/dist/src/ui/commands/ideCommand.js +42 -17
  267. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  268. package/dist/src/ui/commands/initCommand.js +5 -3
  269. package/dist/src/ui/commands/initCommand.js.map +1 -1
  270. package/dist/src/ui/commands/{privacyCommand.d.ts → languageCommand.d.ts} +1 -1
  271. package/dist/src/ui/commands/languageCommand.js +386 -0
  272. package/dist/src/ui/commands/languageCommand.js.map +1 -0
  273. package/dist/src/ui/commands/mcpCommand.js +124 -279
  274. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  275. package/dist/src/ui/commands/memoryCommand.js +55 -26
  276. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  277. package/dist/src/ui/commands/modelCommand.js +10 -20
  278. package/dist/src/ui/commands/modelCommand.js.map +1 -1
  279. package/dist/src/ui/commands/modelCommand.test.js +10 -11
  280. package/dist/src/ui/commands/modelCommand.test.js.map +1 -1
  281. package/dist/src/ui/commands/permissionsCommand.d.ts +7 -0
  282. package/dist/src/ui/commands/permissionsCommand.js +19 -0
  283. package/dist/src/ui/commands/permissionsCommand.js.map +1 -0
  284. package/dist/src/ui/commands/permissionsCommand.test.d.ts +6 -0
  285. package/dist/src/ui/commands/permissionsCommand.test.js +30 -0
  286. package/dist/src/ui/commands/permissionsCommand.test.js.map +1 -0
  287. package/dist/src/ui/commands/quitCommand.js +7 -2
  288. package/dist/src/ui/commands/quitCommand.js.map +1 -1
  289. package/dist/src/ui/commands/settingsCommand.js +4 -1
  290. package/dist/src/ui/commands/settingsCommand.js.map +1 -1
  291. package/dist/src/ui/commands/setupGithubCommand.js +4 -1
  292. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  293. package/dist/src/ui/commands/statsCommand.js +11 -4
  294. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  295. package/dist/src/ui/commands/summaryCommand.js +16 -9
  296. package/dist/src/ui/commands/summaryCommand.js.map +1 -1
  297. package/dist/src/ui/commands/terminalSetupCommand.js +9 -3
  298. package/dist/src/ui/commands/terminalSetupCommand.js.map +1 -1
  299. package/dist/src/ui/commands/themeCommand.js +4 -1
  300. package/dist/src/ui/commands/themeCommand.js.map +1 -1
  301. package/dist/src/ui/commands/toolsCommand.js +15 -26
  302. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  303. package/dist/src/ui/commands/types.d.ts +8 -3
  304. package/dist/src/ui/commands/types.js +0 -1
  305. package/dist/src/ui/commands/types.js.map +1 -1
  306. package/dist/src/ui/commands/vimCommand.js +4 -1
  307. package/dist/src/ui/commands/vimCommand.js.map +1 -1
  308. package/dist/src/ui/components/AboutBox.d.ts +2 -9
  309. package/dist/src/ui/components/AboutBox.js +7 -3
  310. package/dist/src/ui/components/AboutBox.js.map +1 -1
  311. package/dist/src/ui/components/AnsiOutput.d.ts +13 -0
  312. package/dist/src/ui/components/AnsiOutput.js +12 -0
  313. package/dist/src/ui/components/AnsiOutput.js.map +1 -0
  314. package/dist/src/ui/components/AnsiOutput.test.d.ts +6 -0
  315. package/dist/src/ui/components/AnsiOutput.test.js +97 -0
  316. package/dist/src/ui/components/AnsiOutput.test.js.map +1 -0
  317. package/dist/src/ui/components/AppHeader.d.ts +10 -0
  318. package/dist/src/ui/components/AppHeader.js +19 -0
  319. package/dist/src/ui/components/AppHeader.js.map +1 -0
  320. package/dist/src/ui/components/ApprovalModeDialog.d.ts +21 -0
  321. package/dist/src/ui/components/ApprovalModeDialog.js +68 -0
  322. package/dist/src/ui/components/ApprovalModeDialog.js.map +1 -0
  323. package/dist/src/ui/components/AutoAcceptIndicator.js +12 -11
  324. package/dist/src/ui/components/AutoAcceptIndicator.js.map +1 -1
  325. package/dist/src/ui/components/Composer.d.ts +6 -0
  326. package/dist/src/ui/components/Composer.js +55 -0
  327. package/dist/src/ui/components/Composer.js.map +1 -0
  328. package/dist/src/ui/components/Composer.test.d.ts +6 -0
  329. package/dist/src/ui/components/Composer.test.js +337 -0
  330. package/dist/src/ui/components/Composer.test.js.map +1 -0
  331. package/dist/src/ui/components/ConfigInitDisplay.d.ts +6 -0
  332. package/dist/src/ui/components/ConfigInitDisplay.js +42 -0
  333. package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -0
  334. package/dist/src/ui/components/ConsentPrompt.d.ts +13 -0
  335. package/dist/src/ui/components/ConsentPrompt.js +19 -0
  336. package/dist/src/ui/components/ConsentPrompt.js.map +1 -0
  337. package/dist/src/ui/components/ConsentPrompt.test.d.ts +6 -0
  338. package/dist/src/ui/components/ConsentPrompt.test.js +67 -0
  339. package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -0
  340. package/dist/src/ui/components/ConsoleSummaryDisplay.js +2 -2
  341. package/dist/src/ui/components/ConsoleSummaryDisplay.js.map +1 -1
  342. package/dist/src/ui/components/ContextSummaryDisplay.js +34 -10
  343. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  344. package/dist/src/ui/components/ContextUsageDisplay.d.ts +4 -1
  345. package/dist/src/ui/components/ContextUsageDisplay.js +27 -5
  346. package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -1
  347. package/dist/src/ui/components/DebugProfiler.js +2 -2
  348. package/dist/src/ui/components/DebugProfiler.js.map +1 -1
  349. package/dist/src/ui/components/DetailedMessagesDisplay.js +7 -7
  350. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  351. package/dist/src/ui/components/DialogManager.d.ts +12 -0
  352. package/dist/src/ui/components/DialogManager.js +177 -0
  353. package/dist/src/ui/components/DialogManager.js.map +1 -0
  354. package/dist/src/ui/components/EditorSettingsDialog.js +21 -7
  355. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  356. package/dist/src/ui/components/ExitWarning.d.ts +7 -0
  357. package/dist/src/ui/components/ExitWarning.js +9 -0
  358. package/dist/src/ui/components/ExitWarning.js.map +1 -0
  359. package/dist/src/ui/components/FolderTrustDialog.js +22 -9
  360. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  361. package/dist/src/ui/components/FolderTrustDialog.test.js +37 -12
  362. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  363. package/dist/src/ui/components/Footer.d.ts +1 -17
  364. package/dist/src/ui/components/Footer.js +33 -11
  365. package/dist/src/ui/components/Footer.js.map +1 -1
  366. package/dist/src/ui/components/GeminiRespondingSpinner.d.ts +5 -0
  367. package/dist/src/ui/components/GeminiRespondingSpinner.js +7 -2
  368. package/dist/src/ui/components/GeminiRespondingSpinner.js.map +1 -1
  369. package/dist/src/ui/components/Header.js +2 -2
  370. package/dist/src/ui/components/Header.js.map +1 -1
  371. package/dist/src/ui/components/Help.d.ts +1 -1
  372. package/dist/src/ui/components/Help.js +20 -7
  373. package/dist/src/ui/components/Help.js.map +1 -1
  374. package/dist/src/ui/components/Help.test.d.ts +6 -0
  375. package/dist/src/ui/components/Help.test.js +57 -0
  376. package/dist/src/ui/components/Help.test.js.map +1 -0
  377. package/dist/src/ui/components/HistoryItemDisplay.d.ts +5 -4
  378. package/dist/src/ui/components/HistoryItemDisplay.js +13 -4
  379. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  380. package/dist/src/ui/components/HistoryItemDisplay.test.js +107 -17
  381. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  382. package/dist/src/ui/components/IdeTrustChangeDialog.d.ts +11 -0
  383. package/dist/src/ui/components/IdeTrustChangeDialog.js +32 -0
  384. package/dist/src/ui/components/IdeTrustChangeDialog.js.map +1 -0
  385. package/dist/src/ui/components/IdeTrustChangeDialog.test.d.ts +6 -0
  386. package/dist/src/ui/components/IdeTrustChangeDialog.test.js +57 -0
  387. package/dist/src/ui/components/IdeTrustChangeDialog.test.js.map +1 -0
  388. package/dist/src/ui/components/InputPrompt.d.ts +9 -0
  389. package/dist/src/ui/components/InputPrompt.js +187 -167
  390. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  391. package/dist/src/ui/components/LoadingIndicator.js +8 -3
  392. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  393. package/dist/src/ui/components/LoadingIndicator.test.js +4 -0
  394. package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
  395. package/dist/src/ui/components/LoopDetectionConfirmation.d.ts +13 -0
  396. package/dist/src/ui/components/LoopDetectionConfirmation.js +37 -0
  397. package/dist/src/ui/components/LoopDetectionConfirmation.js.map +1 -0
  398. package/dist/src/ui/components/LoopDetectionConfirmation.test.d.ts +6 -0
  399. package/dist/src/ui/components/LoopDetectionConfirmation.test.js +28 -0
  400. package/dist/src/ui/components/LoopDetectionConfirmation.test.js.map +1 -0
  401. package/dist/src/ui/components/MainContent.d.ts +6 -0
  402. package/dist/src/ui/components/MainContent.js +28 -0
  403. package/dist/src/ui/components/MainContent.js.map +1 -0
  404. package/dist/src/ui/components/MemoryUsageDisplay.js +6 -4
  405. package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
  406. package/dist/src/ui/components/ModelDialog.d.ts +11 -0
  407. package/dist/src/ui/components/ModelDialog.js +43 -0
  408. package/dist/src/ui/components/ModelDialog.js.map +1 -0
  409. package/dist/src/ui/components/ModelDialog.test.d.ts +6 -0
  410. package/dist/src/ui/components/ModelDialog.test.js +158 -0
  411. package/dist/src/ui/components/ModelDialog.test.js.map +1 -0
  412. package/dist/src/ui/components/ModelStatsDisplay.js +10 -9
  413. package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
  414. package/dist/src/ui/components/ModelSwitchDialog.d.ts +3 -1
  415. package/dist/src/ui/components/ModelSwitchDialog.js +11 -7
  416. package/dist/src/ui/components/ModelSwitchDialog.js.map +1 -1
  417. package/dist/src/ui/components/ModelSwitchDialog.test.js +14 -10
  418. package/dist/src/ui/components/ModelSwitchDialog.test.js.map +1 -1
  419. package/dist/src/ui/components/Notifications.d.ts +6 -0
  420. package/dist/src/ui/components/Notifications.js +23 -0
  421. package/dist/src/ui/components/Notifications.js.map +1 -0
  422. package/dist/src/ui/components/OpenAIKeyPrompt.d.ts +19 -1
  423. package/dist/src/ui/components/OpenAIKeyPrompt.js +99 -43
  424. package/dist/src/ui/components/OpenAIKeyPrompt.js.map +1 -1
  425. package/dist/src/ui/components/OpenAIKeyPrompt.test.js +8 -1
  426. package/dist/src/ui/components/OpenAIKeyPrompt.test.js.map +1 -1
  427. package/dist/src/ui/components/PermissionsModifyTrustDialog.d.ts +13 -0
  428. package/dist/src/ui/components/PermissionsModifyTrustDialog.js +48 -0
  429. package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -0
  430. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.d.ts +6 -0
  431. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +154 -0
  432. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -0
  433. package/dist/src/ui/components/PrepareLabel.d.ts +5 -5
  434. package/dist/src/ui/components/PrepareLabel.js +67 -11
  435. package/dist/src/ui/components/PrepareLabel.js.map +1 -1
  436. package/dist/src/ui/components/PrepareLabel.test.d.ts +6 -0
  437. package/dist/src/ui/components/PrepareLabel.test.js +71 -0
  438. package/dist/src/ui/components/PrepareLabel.test.js.map +1 -0
  439. package/dist/src/ui/components/ProQuotaDialog.d.ts +13 -0
  440. package/dist/src/ui/components/ProQuotaDialog.js +24 -0
  441. package/dist/src/ui/components/ProQuotaDialog.js.map +1 -0
  442. package/dist/src/ui/components/ProQuotaDialog.test.d.ts +6 -0
  443. package/dist/src/ui/components/ProQuotaDialog.test.js +58 -0
  444. package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -0
  445. package/dist/src/ui/components/QueuedMessageDisplay.d.ts +9 -0
  446. package/dist/src/ui/components/QueuedMessageDisplay.js +20 -0
  447. package/dist/src/ui/components/QueuedMessageDisplay.js.map +1 -0
  448. package/dist/src/ui/components/QueuedMessageDisplay.test.d.ts +6 -0
  449. package/dist/src/ui/components/QueuedMessageDisplay.test.js +56 -0
  450. package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -0
  451. package/dist/src/ui/components/QuitConfirmationDialog.js +10 -5
  452. package/dist/src/ui/components/QuitConfirmationDialog.js.map +1 -1
  453. package/dist/src/ui/components/QuittingDisplay.d.ts +6 -0
  454. package/dist/src/ui/components/QuittingDisplay.js +20 -0
  455. package/dist/src/ui/components/QuittingDisplay.js.map +1 -0
  456. package/dist/src/ui/components/QwenOAuthProgress.d.ts +2 -2
  457. package/dist/src/ui/components/QwenOAuthProgress.js +19 -11
  458. package/dist/src/ui/components/QwenOAuthProgress.js.map +1 -1
  459. package/dist/src/ui/components/QwenOAuthProgress.test.js +85 -13
  460. package/dist/src/ui/components/QwenOAuthProgress.test.js.map +1 -1
  461. package/dist/src/ui/components/SessionSummaryDisplay.js +2 -1
  462. package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -1
  463. package/dist/src/ui/components/SettingsDialog.d.ts +4 -1
  464. package/dist/src/ui/components/SettingsDialog.js +125 -28
  465. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  466. package/dist/src/ui/components/SettingsDialog.test.js +475 -84
  467. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  468. package/dist/src/ui/components/ShellConfirmationDialog.js +9 -5
  469. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  470. package/dist/src/ui/components/ShellInputPrompt.d.ts +11 -0
  471. package/dist/src/ui/components/ShellInputPrompt.js +36 -0
  472. package/dist/src/ui/components/ShellInputPrompt.js.map +1 -0
  473. package/dist/src/ui/components/ShellModeIndicator.js +2 -2
  474. package/dist/src/ui/components/ShellModeIndicator.js.map +1 -1
  475. package/dist/src/ui/components/ShowMoreLines.js +2 -2
  476. package/dist/src/ui/components/ShowMoreLines.js.map +1 -1
  477. package/dist/src/ui/components/StatsDisplay.js +8 -7
  478. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  479. package/dist/src/ui/components/SuggestionsDisplay.d.ts +7 -2
  480. package/dist/src/ui/components/SuggestionsDisplay.js +17 -17
  481. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  482. package/dist/src/ui/components/ThemeDialog.js +17 -29
  483. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  484. package/dist/src/ui/components/ThemeDialog.test.d.ts +6 -0
  485. package/dist/src/ui/components/ThemeDialog.test.js +75 -0
  486. package/dist/src/ui/components/ThemeDialog.test.js.map +1 -0
  487. package/dist/src/ui/components/Tips.js +2 -2
  488. package/dist/src/ui/components/Tips.js.map +1 -1
  489. package/dist/src/ui/components/ToolStatsDisplay.js +5 -4
  490. package/dist/src/ui/components/ToolStatsDisplay.js.map +1 -1
  491. package/dist/src/ui/components/UpdateNotification.js +2 -2
  492. package/dist/src/ui/components/UpdateNotification.js.map +1 -1
  493. package/dist/src/ui/components/WelcomeBackDialog.js +15 -4
  494. package/dist/src/ui/components/WelcomeBackDialog.js.map +1 -1
  495. package/dist/src/ui/components/WorkspaceMigrationDialog.js +14 -11
  496. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +1 -1
  497. package/dist/src/ui/components/messages/CompressionMessage.d.ts +1 -2
  498. package/dist/src/ui/components/messages/CompressionMessage.js +41 -8
  499. package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
  500. package/dist/src/ui/components/messages/CompressionMessage.test.d.ts +6 -0
  501. package/dist/src/ui/components/messages/CompressionMessage.test.js +160 -0
  502. package/dist/src/ui/components/messages/CompressionMessage.test.js.map +1 -0
  503. package/dist/src/ui/components/messages/DiffRenderer.d.ts +2 -1
  504. package/dist/src/ui/components/messages/DiffRenderer.js +14 -22
  505. package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
  506. package/dist/src/ui/components/messages/ErrorMessage.js +2 -2
  507. package/dist/src/ui/components/messages/ErrorMessage.js.map +1 -1
  508. package/dist/src/ui/components/messages/GeminiMessage.js +2 -2
  509. package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
  510. package/dist/src/ui/components/messages/InfoMessage.js +2 -2
  511. package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
  512. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +91 -45
  513. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  514. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +36 -8
  515. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
  516. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +3 -2
  517. package/dist/src/ui/components/messages/ToolGroupMessage.js +18 -10
  518. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  519. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +17 -15
  520. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  521. package/dist/src/ui/components/messages/ToolMessage.d.ts +3 -1
  522. package/dist/src/ui/components/messages/ToolMessage.js +53 -11
  523. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  524. package/dist/src/ui/components/messages/ToolMessage.test.js +34 -1
  525. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
  526. package/dist/src/ui/components/messages/UserMessage.js +3 -4
  527. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  528. package/dist/src/ui/components/messages/UserShellMessage.js +2 -2
  529. package/dist/src/ui/components/messages/UserShellMessage.js.map +1 -1
  530. package/dist/src/ui/components/messages/WarningMessage.d.ts +11 -0
  531. package/dist/src/ui/components/messages/WarningMessage.js +10 -0
  532. package/dist/src/ui/components/messages/WarningMessage.js.map +1 -0
  533. package/dist/src/ui/components/shared/BaseSelectionList.d.ts +38 -0
  534. package/dist/src/ui/components/shared/BaseSelectionList.js +72 -0
  535. package/dist/src/ui/components/shared/BaseSelectionList.js.map +1 -0
  536. package/dist/src/ui/components/shared/BaseSelectionList.test.d.ts +6 -0
  537. package/dist/src/ui/components/shared/BaseSelectionList.test.js +376 -0
  538. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -0
  539. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.d.ts +35 -0
  540. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js +13 -0
  541. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js.map +1 -0
  542. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.d.ts +6 -0
  543. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js +79 -0
  544. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js.map +1 -0
  545. package/dist/src/ui/components/shared/EnumSelector.d.ts +18 -0
  546. package/dist/src/ui/components/shared/EnumSelector.js +44 -0
  547. package/dist/src/ui/components/shared/EnumSelector.js.map +1 -0
  548. package/dist/src/ui/components/shared/EnumSelector.test.d.ts +6 -0
  549. package/dist/src/ui/components/shared/EnumSelector.test.js +70 -0
  550. package/dist/src/ui/components/shared/EnumSelector.test.js.map +1 -0
  551. package/dist/src/ui/components/shared/MaxSizedBox.js +2 -2
  552. package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
  553. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +2 -3
  554. package/dist/src/ui/components/shared/RadioButtonSelect.js +10 -105
  555. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  556. package/dist/src/ui/components/shared/RadioButtonSelect.test.js +115 -92
  557. package/dist/src/ui/components/shared/RadioButtonSelect.test.js.map +1 -1
  558. package/dist/src/ui/components/shared/ScopeSelector.d.ts +19 -0
  559. package/dist/src/ui/components/shared/ScopeSelector.js +16 -0
  560. package/dist/src/ui/components/shared/ScopeSelector.js.map +1 -0
  561. package/dist/src/ui/components/shared/text-buffer.d.ts +25 -2
  562. package/dist/src/ui/components/shared/text-buffer.js +296 -187
  563. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  564. package/dist/src/ui/components/subagents/create/AgentCreationWizard.js +41 -29
  565. package/dist/src/ui/components/subagents/create/AgentCreationWizard.js.map +1 -1
  566. package/dist/src/ui/components/subagents/create/ColorSelector.js +3 -2
  567. package/dist/src/ui/components/subagents/create/ColorSelector.js.map +1 -1
  568. package/dist/src/ui/components/subagents/create/CreationSummary.js +26 -15
  569. package/dist/src/ui/components/subagents/create/CreationSummary.js.map +1 -1
  570. package/dist/src/ui/components/subagents/create/DescriptionInput.js +7 -5
  571. package/dist/src/ui/components/subagents/create/DescriptionInput.js.map +1 -1
  572. package/dist/src/ui/components/subagents/create/GenerationMethodSelector.js +8 -2
  573. package/dist/src/ui/components/subagents/create/GenerationMethodSelector.js.map +1 -1
  574. package/dist/src/ui/components/subagents/create/LocationSelector.js +8 -2
  575. package/dist/src/ui/components/subagents/create/LocationSelector.js.map +1 -1
  576. package/dist/src/ui/components/subagents/create/TextEntryStep.js +2 -2
  577. package/dist/src/ui/components/subagents/create/TextEntryStep.js.map +1 -1
  578. package/dist/src/ui/components/subagents/create/ToolSelector.js +10 -8
  579. package/dist/src/ui/components/subagents/create/ToolSelector.js.map +1 -1
  580. package/dist/src/ui/components/subagents/manage/ActionSelectionStep.js +29 -4
  581. package/dist/src/ui/components/subagents/manage/ActionSelectionStep.js.map +1 -1
  582. package/dist/src/ui/components/subagents/manage/AgentDeleteStep.js +6 -3
  583. package/dist/src/ui/components/subagents/manage/AgentDeleteStep.js.map +1 -1
  584. package/dist/src/ui/components/subagents/manage/AgentEditStep.js +15 -5
  585. package/dist/src/ui/components/subagents/manage/AgentEditStep.js.map +1 -1
  586. package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js +13 -7
  587. package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js.map +1 -1
  588. package/dist/src/ui/components/subagents/manage/AgentViewerStep.js +3 -2
  589. package/dist/src/ui/components/subagents/manage/AgentViewerStep.js.map +1 -1
  590. package/dist/src/ui/components/subagents/manage/AgentsManagerDialog.js +15 -15
  591. package/dist/src/ui/components/subagents/manage/AgentsManagerDialog.js.map +1 -1
  592. package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js +16 -17
  593. package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js.map +1 -1
  594. package/dist/src/ui/components/ums/UMSKeyPrompt.d.ts +2 -2
  595. package/dist/src/ui/components/ums/UMSKeyPrompt.js +66 -64
  596. package/dist/src/ui/components/ums/UMSKeyPrompt.js.map +1 -1
  597. package/dist/src/ui/components/views/ExtensionsList.d.ts +6 -0
  598. package/dist/src/ui/components/views/ExtensionsList.js +47 -0
  599. package/dist/src/ui/components/views/ExtensionsList.js.map +1 -0
  600. package/dist/src/ui/components/views/ExtensionsList.test.d.ts +6 -0
  601. package/dist/src/ui/components/views/ExtensionsList.test.js +97 -0
  602. package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -0
  603. package/dist/src/ui/components/views/McpStatus.d.ts +27 -0
  604. package/dist/src/ui/components/views/McpStatus.js +90 -0
  605. package/dist/src/ui/components/views/McpStatus.js.map +1 -0
  606. package/dist/src/ui/components/views/McpStatus.test.d.ts +6 -0
  607. package/dist/src/ui/components/views/McpStatus.test.js +117 -0
  608. package/dist/src/ui/components/views/McpStatus.test.js.map +1 -0
  609. package/dist/src/ui/components/views/ToolsList.d.ts +14 -0
  610. package/dist/src/ui/components/views/ToolsList.js +8 -0
  611. package/dist/src/ui/components/views/ToolsList.js.map +1 -0
  612. package/dist/src/ui/components/views/ToolsList.test.d.ts +6 -0
  613. package/dist/src/ui/components/views/ToolsList.test.js +45 -0
  614. package/dist/src/ui/components/views/ToolsList.test.js.map +1 -0
  615. package/dist/src/ui/constants.d.ts +1 -0
  616. package/dist/src/ui/constants.js +1 -0
  617. package/dist/src/ui/constants.js.map +1 -1
  618. package/dist/src/ui/contexts/AppContext.d.ts +11 -0
  619. package/dist/src/ui/contexts/AppContext.js +15 -0
  620. package/dist/src/ui/contexts/AppContext.js.map +1 -0
  621. package/dist/src/ui/contexts/ConfigContext.d.ts +9 -0
  622. package/dist/src/ui/contexts/ConfigContext.js +16 -0
  623. package/dist/src/ui/contexts/ConfigContext.js.map +1 -0
  624. package/dist/src/ui/contexts/KeypressContext.d.ts +3 -0
  625. package/dist/src/ui/contexts/KeypressContext.js +309 -44
  626. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  627. package/dist/src/ui/contexts/KeypressContext.test.js +288 -2
  628. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  629. package/dist/src/ui/contexts/SessionContext.d.ts +6 -0
  630. package/dist/src/ui/contexts/SessionContext.js +107 -5
  631. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  632. package/dist/src/ui/contexts/ShellFocusContext.d.ts +7 -0
  633. package/dist/src/ui/contexts/ShellFocusContext.js +9 -0
  634. package/dist/src/ui/contexts/ShellFocusContext.js.map +1 -0
  635. package/dist/src/ui/contexts/UIActionsContext.d.ts +46 -0
  636. package/dist/src/ui/contexts/UIActionsContext.js +22 -0
  637. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -0
  638. package/dist/src/ui/contexts/UIStateContext.d.ts +115 -0
  639. package/dist/src/ui/contexts/UIStateContext.js +17 -0
  640. package/dist/src/ui/contexts/UIStateContext.js.map +1 -0
  641. package/dist/src/ui/editors/editorSettingsManager.js +1 -0
  642. package/dist/src/ui/editors/editorSettingsManager.js.map +1 -1
  643. package/dist/src/ui/hooks/atCommandProcessor.js +12 -12
  644. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  645. package/dist/src/ui/hooks/atCommandProcessor.test.js +23 -19
  646. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  647. package/dist/src/ui/hooks/keyToAnsi.d.ts +15 -0
  648. package/dist/src/ui/hooks/keyToAnsi.js +67 -0
  649. package/dist/src/ui/hooks/keyToAnsi.js.map +1 -0
  650. package/dist/src/ui/hooks/shellCommandProcessor.d.ts +2 -1
  651. package/dist/src/ui/hooks/shellCommandProcessor.js +65 -15
  652. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  653. package/dist/src/ui/hooks/shellCommandProcessor.test.js +196 -17
  654. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  655. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +21 -3
  656. package/dist/src/ui/hooks/slashCommandProcessor.js +52 -97
  657. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  658. package/dist/src/ui/hooks/useApprovalModeCommand.d.ts +14 -0
  659. package/dist/src/ui/hooks/useApprovalModeCommand.js +33 -0
  660. package/dist/src/ui/hooks/useApprovalModeCommand.js.map +1 -0
  661. package/dist/src/ui/hooks/useAtCompletion.js +1 -1
  662. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  663. package/dist/src/ui/hooks/useAttentionNotifications.d.ts +14 -0
  664. package/dist/src/ui/hooks/useAttentionNotifications.js +41 -0
  665. package/dist/src/ui/hooks/useAttentionNotifications.js.map +1 -0
  666. package/dist/src/ui/hooks/useAttentionNotifications.test.js +113 -0
  667. package/dist/src/ui/hooks/useAttentionNotifications.test.js.map +1 -0
  668. package/dist/src/ui/hooks/useAutoAcceptIndicator.d.ts +3 -2
  669. package/dist/src/ui/hooks/useAutoAcceptIndicator.js +20 -18
  670. package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -1
  671. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +43 -0
  672. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
  673. package/dist/src/ui/hooks/useCommandCompletion.d.ts +1 -4
  674. package/dist/src/ui/hooks/useCommandCompletion.js +1 -23
  675. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
  676. package/dist/src/ui/hooks/useDialogClose.d.ts +6 -5
  677. package/dist/src/ui/hooks/useDialogClose.js +3 -12
  678. package/dist/src/ui/hooks/useDialogClose.js.map +1 -1
  679. package/dist/src/ui/hooks/useEditorSettings.js +1 -1
  680. package/dist/src/ui/hooks/useEditorSettings.js.map +1 -1
  681. package/dist/src/ui/hooks/useEditorSettings.test.js +4 -4
  682. package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
  683. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +21 -0
  684. package/dist/src/ui/hooks/useExtensionUpdates.js +116 -0
  685. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -0
  686. package/dist/src/ui/hooks/useExtensionUpdates.test.d.ts +6 -0
  687. package/dist/src/ui/hooks/useExtensionUpdates.test.js +243 -0
  688. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -0
  689. package/dist/src/ui/hooks/useFocus.js +10 -0
  690. package/dist/src/ui/hooks/useFocus.js.map +1 -1
  691. package/dist/src/ui/hooks/useFolderTrust.js +6 -10
  692. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  693. package/dist/src/ui/hooks/useGeminiStream.d.ts +14 -3
  694. package/dist/src/ui/hooks/useGeminiStream.js +184 -83
  695. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  696. package/dist/src/ui/hooks/useGitBranchName.js +18 -18
  697. package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
  698. package/dist/src/ui/hooks/useGitBranchName.test.js +66 -52
  699. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  700. package/dist/src/ui/hooks/useIdeTrustListener.d.ts +16 -0
  701. package/dist/src/ui/hooks/useIdeTrustListener.js +65 -0
  702. package/dist/src/ui/hooks/useIdeTrustListener.js.map +1 -0
  703. package/dist/src/ui/hooks/useIdeTrustListener.test.d.ts +6 -0
  704. package/dist/src/ui/hooks/useIdeTrustListener.test.js +183 -0
  705. package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -0
  706. package/dist/src/ui/hooks/useInitializationAuthError.d.ts +22 -0
  707. package/dist/src/ui/hooks/useInitializationAuthError.js +40 -0
  708. package/dist/src/ui/hooks/useInitializationAuthError.js.map +1 -0
  709. package/dist/src/ui/hooks/useInputHistoryStore.d.ts +19 -0
  710. package/dist/src/ui/hooks/useInputHistoryStore.js +81 -0
  711. package/dist/src/ui/hooks/useInputHistoryStore.js.map +1 -0
  712. package/dist/src/ui/hooks/useInputHistoryStore.test.d.ts +6 -0
  713. package/dist/src/ui/hooks/useInputHistoryStore.test.js +234 -0
  714. package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -0
  715. package/dist/src/ui/hooks/useLoadingIndicator.d.ts +1 -1
  716. package/dist/src/ui/hooks/useLoadingIndicator.js +2 -2
  717. package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
  718. package/dist/src/ui/hooks/useLoadingIndicator.test.js +2 -2
  719. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  720. package/dist/src/ui/hooks/useMemoryMonitor.d.ts +13 -0
  721. package/dist/src/ui/hooks/useMemoryMonitor.js +28 -0
  722. package/dist/src/ui/hooks/useMemoryMonitor.js.map +1 -0
  723. package/dist/src/ui/hooks/useMemoryMonitor.test.d.ts +6 -0
  724. package/dist/src/ui/hooks/useMemoryMonitor.test.js +57 -0
  725. package/dist/src/ui/hooks/useMemoryMonitor.test.js.map +1 -0
  726. package/dist/src/ui/hooks/useMessageQueue.d.ts +2 -1
  727. package/dist/src/ui/hooks/useMessageQueue.js +5 -3
  728. package/dist/src/ui/hooks/useMessageQueue.js.map +1 -1
  729. package/dist/src/ui/hooks/useMessageQueue.test.js +9 -0
  730. package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
  731. package/dist/src/ui/hooks/useModelCommand.d.ts +12 -0
  732. package/dist/src/ui/hooks/useModelCommand.js +21 -0
  733. package/dist/src/ui/hooks/useModelCommand.js.map +1 -0
  734. package/dist/src/ui/hooks/useModelCommand.test.d.ts +6 -0
  735. package/dist/src/ui/hooks/useModelCommand.test.js +35 -0
  736. package/dist/src/ui/hooks/useModelCommand.test.js.map +1 -0
  737. package/dist/src/ui/hooks/usePermissionsModifyTrust.d.ts +17 -0
  738. package/dist/src/ui/hooks/usePermissionsModifyTrust.js +78 -0
  739. package/dist/src/ui/hooks/usePermissionsModifyTrust.js.map +1 -0
  740. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.d.ts +6 -0
  741. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +182 -0
  742. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -0
  743. package/dist/src/ui/hooks/usePhraseCycler.d.ts +1 -1
  744. package/dist/src/ui/hooks/usePhraseCycler.js +15 -10
  745. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  746. package/dist/src/ui/hooks/useQuotaAndFallback.d.ts +21 -0
  747. package/dist/src/ui/hooks/useQuotaAndFallback.js +122 -0
  748. package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -0
  749. package/dist/src/ui/hooks/useQuotaAndFallback.test.d.ts +6 -0
  750. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +269 -0
  751. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -0
  752. package/dist/src/ui/hooks/useQwenAuth.d.ts +7 -12
  753. package/dist/src/ui/hooks/useQwenAuth.js +4 -8
  754. package/dist/src/ui/hooks/useQwenAuth.js.map +1 -1
  755. package/dist/src/ui/hooks/useQwenAuth.test.js +72 -98
  756. package/dist/src/ui/hooks/useQwenAuth.test.js.map +1 -1
  757. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +3 -2
  758. package/dist/src/ui/hooks/useReactToolScheduler.js +23 -17
  759. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  760. package/dist/src/ui/hooks/useReverseSearchCompletion.d.ts +1 -1
  761. package/dist/src/ui/hooks/useReverseSearchCompletion.js +67 -20
  762. package/dist/src/ui/hooks/useReverseSearchCompletion.js.map +1 -1
  763. package/dist/src/ui/hooks/useSelectionList.d.ts +34 -0
  764. package/dist/src/ui/hooks/useSelectionList.js +245 -0
  765. package/dist/src/ui/hooks/useSelectionList.js.map +1 -0
  766. package/dist/src/ui/hooks/useSelectionList.test.d.ts +6 -0
  767. package/dist/src/ui/hooks/useSelectionList.test.js +701 -0
  768. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -0
  769. package/dist/src/ui/hooks/useSlashCompletion.d.ts +1 -1
  770. package/dist/src/ui/hooks/useSlashCompletion.js +281 -67
  771. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  772. package/dist/src/ui/hooks/useSlashCompletion.test.d.ts +4 -1
  773. package/dist/src/ui/hooks/useSlashCompletion.test.js +390 -65
  774. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  775. package/dist/src/ui/hooks/useStateAndRef.d.ts +1 -1
  776. package/dist/src/ui/hooks/useStateAndRef.js +2 -2
  777. package/dist/src/ui/hooks/useStateAndRef.js.map +1 -1
  778. package/dist/src/ui/hooks/useThemeCommand.d.ts +1 -1
  779. package/dist/src/ui/hooks/useThemeCommand.js +11 -17
  780. package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
  781. package/dist/src/ui/hooks/useToolScheduler.test.js +64 -291
  782. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  783. package/dist/src/ui/hooks/useVisionAutoSwitch.d.ts +1 -1
  784. package/dist/src/ui/hooks/useVisionAutoSwitch.js +36 -6
  785. package/dist/src/ui/hooks/useVisionAutoSwitch.js.map +1 -1
  786. package/dist/src/ui/hooks/useVisionAutoSwitch.test.js +3 -3
  787. package/dist/src/ui/hooks/useVisionAutoSwitch.test.js.map +1 -1
  788. package/dist/src/ui/hooks/useWelcomeBack.js +2 -2
  789. package/dist/src/ui/hooks/useWelcomeBack.js.map +1 -1
  790. package/dist/src/ui/hooks/useWorkspaceMigration.js +2 -1
  791. package/dist/src/ui/hooks/useWorkspaceMigration.js.map +1 -1
  792. package/dist/src/ui/keyMatchers.test.js +17 -0
  793. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  794. package/dist/src/ui/layouts/DefaultAppLayout.d.ts +9 -0
  795. package/dist/src/ui/layouts/DefaultAppLayout.js +13 -0
  796. package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -0
  797. package/dist/src/ui/layouts/ScreenReaderAppLayout.d.ts +7 -0
  798. package/dist/src/ui/layouts/ScreenReaderAppLayout.js +14 -0
  799. package/dist/src/ui/layouts/ScreenReaderAppLayout.js.map +1 -0
  800. package/dist/src/ui/models/availableModels.d.ts +11 -5
  801. package/dist/src/ui/models/availableModels.js +94 -3
  802. package/dist/src/ui/models/availableModels.js.map +1 -1
  803. package/dist/src/ui/noninteractive/nonInteractiveUi.d.ts +12 -0
  804. package/dist/src/ui/noninteractive/nonInteractiveUi.js +28 -0
  805. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -0
  806. package/dist/src/ui/state/extensions.d.ts +42 -0
  807. package/dist/src/ui/state/extensions.js +62 -0
  808. package/dist/src/ui/state/extensions.js.map +1 -0
  809. package/dist/src/ui/themes/ayu.js +1 -1
  810. package/dist/src/ui/themes/dracula.js +2 -2
  811. package/dist/src/ui/themes/github-dark.js +1 -1
  812. package/dist/src/ui/themes/theme.js +19 -19
  813. package/dist/src/ui/themes/theme.js.map +1 -1
  814. package/dist/src/ui/types.d.ts +111 -17
  815. package/dist/src/ui/types.js +14 -0
  816. package/dist/src/ui/types.js.map +1 -1
  817. package/dist/src/ui/utils/CodeColorizer.js +3 -2
  818. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  819. package/dist/src/ui/utils/InlineMarkdownRenderer.js +7 -7
  820. package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
  821. package/dist/src/ui/utils/MarkdownDisplay.js +11 -11
  822. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  823. package/dist/src/ui/utils/MarkdownDisplay.test.js +95 -87
  824. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  825. package/dist/src/ui/utils/TableRenderer.js +4 -4
  826. package/dist/src/ui/utils/TableRenderer.js.map +1 -1
  827. package/dist/src/ui/utils/clipboardUtils.js +5 -6
  828. package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
  829. package/dist/src/ui/utils/commandUtils.d.ts +16 -0
  830. package/dist/src/ui/utils/commandUtils.js +16 -1
  831. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  832. package/dist/src/ui/utils/commandUtils.test.js +5 -2
  833. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  834. package/dist/src/ui/utils/displayUtils.d.ts +1 -0
  835. package/dist/src/ui/utils/displayUtils.js +7 -4
  836. package/dist/src/ui/utils/displayUtils.js.map +1 -1
  837. package/dist/src/ui/utils/displayUtils.test.js +37 -18
  838. package/dist/src/ui/utils/displayUtils.test.js.map +1 -1
  839. package/dist/src/ui/utils/highlight.d.ts +11 -0
  840. package/dist/src/ui/utils/highlight.js +78 -0
  841. package/dist/src/ui/utils/highlight.js.map +1 -0
  842. package/dist/src/ui/utils/highlight.test.d.ts +6 -0
  843. package/dist/src/ui/utils/highlight.test.js +120 -0
  844. package/dist/src/ui/utils/highlight.test.js.map +1 -0
  845. package/dist/src/ui/utils/kittyProtocolDetector.js +39 -29
  846. package/dist/src/ui/utils/kittyProtocolDetector.js.map +1 -1
  847. package/dist/src/ui/utils/platformConstants.d.ts +24 -1
  848. package/dist/src/ui/utils/platformConstants.js +26 -1
  849. package/dist/src/ui/utils/platformConstants.js.map +1 -1
  850. package/dist/src/ui/utils/terminalSetup.js +45 -18
  851. package/dist/src/ui/utils/terminalSetup.js.map +1 -1
  852. package/dist/src/ui/utils/textUtils.d.ts +10 -0
  853. package/dist/src/ui/utils/textUtils.js +108 -3
  854. package/dist/src/ui/utils/textUtils.js.map +1 -1
  855. package/dist/src/ui/utils/textUtils.test.d.ts +6 -0
  856. package/dist/src/ui/utils/textUtils.test.js +132 -0
  857. package/dist/src/ui/utils/textUtils.test.js.map +1 -0
  858. package/dist/src/ui/utils/updateCheck.d.ts +1 -0
  859. package/dist/src/ui/utils/updateCheck.js +53 -2
  860. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  861. package/dist/src/utils/attentionNotification.d.ts +20 -0
  862. package/dist/src/utils/attentionNotification.js +34 -0
  863. package/dist/src/utils/attentionNotification.js.map +1 -0
  864. package/dist/src/utils/attentionNotification.test.d.ts +6 -0
  865. package/dist/src/utils/attentionNotification.test.js +46 -0
  866. package/dist/src/utils/attentionNotification.test.js.map +1 -0
  867. package/dist/src/utils/commands.d.ts +20 -0
  868. package/dist/src/utils/commands.js +53 -0
  869. package/dist/src/utils/commands.js.map +1 -0
  870. package/dist/src/utils/commands.test.d.ts +6 -0
  871. package/dist/src/utils/commands.test.js +115 -0
  872. package/dist/src/utils/commands.test.js.map +1 -0
  873. package/dist/src/utils/commentJson.d.ts +9 -0
  874. package/dist/src/utils/commentJson.js +48 -0
  875. package/dist/src/utils/commentJson.js.map +1 -0
  876. package/dist/src/utils/commentJson.test.d.ts +6 -0
  877. package/dist/src/utils/commentJson.test.js +146 -0
  878. package/dist/src/utils/commentJson.test.js.map +1 -0
  879. package/dist/src/utils/deepMerge.d.ts +9 -0
  880. package/dist/src/utils/deepMerge.js +58 -0
  881. package/dist/src/utils/deepMerge.js.map +1 -0
  882. package/dist/src/utils/deepMerge.test.d.ts +6 -0
  883. package/dist/src/utils/deepMerge.test.js +143 -0
  884. package/dist/src/utils/deepMerge.test.js.map +1 -0
  885. package/dist/src/utils/dialogScopeUtils.d.ts +0 -4
  886. package/dist/src/utils/dialogScopeUtils.js +5 -2
  887. package/dist/src/utils/dialogScopeUtils.js.map +1 -1
  888. package/dist/src/utils/envVarResolver.d.ts +39 -0
  889. package/dist/src/utils/envVarResolver.js +97 -0
  890. package/dist/src/utils/envVarResolver.js.map +1 -0
  891. package/dist/src/utils/envVarResolver.test.d.ts +6 -0
  892. package/dist/src/utils/envVarResolver.test.js +221 -0
  893. package/dist/src/utils/envVarResolver.test.js.map +1 -0
  894. package/dist/src/utils/errors.d.ts +29 -0
  895. package/dist/src/utils/errors.js +94 -0
  896. package/dist/src/utils/errors.js.map +1 -1
  897. package/dist/src/utils/errors.test.d.ts +6 -0
  898. package/dist/src/utils/errors.test.js +340 -0
  899. package/dist/src/utils/errors.test.js.map +1 -0
  900. package/dist/src/utils/events.d.ts +2 -1
  901. package/dist/src/utils/events.js +1 -0
  902. package/dist/src/utils/events.js.map +1 -1
  903. package/dist/src/utils/handleAutoUpdate.js +6 -3
  904. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  905. package/dist/src/utils/math.d.ts +13 -0
  906. package/dist/src/utils/math.js +14 -0
  907. package/dist/src/utils/math.js.map +1 -0
  908. package/dist/src/utils/nonInteractiveHelpers.d.ts +88 -0
  909. package/dist/src/utils/nonInteractiveHelpers.js +470 -0
  910. package/dist/src/utils/nonInteractiveHelpers.js.map +1 -0
  911. package/dist/src/utils/nonInteractiveHelpers.test.d.ts +6 -0
  912. package/dist/src/utils/nonInteractiveHelpers.test.js +945 -0
  913. package/dist/src/utils/nonInteractiveHelpers.test.js.map +1 -0
  914. package/dist/src/utils/processUtils.d.ts +13 -0
  915. package/dist/src/utils/processUtils.js +18 -0
  916. package/dist/src/utils/processUtils.js.map +1 -0
  917. package/dist/src/utils/processUtils.test.d.ts +6 -0
  918. package/dist/src/utils/processUtils.test.js +20 -0
  919. package/dist/src/utils/processUtils.test.js.map +1 -0
  920. package/dist/src/utils/relaunch.d.ts +7 -0
  921. package/dist/src/utils/relaunch.js +57 -0
  922. package/dist/src/utils/relaunch.js.map +1 -0
  923. package/dist/src/utils/relaunch.test.d.ts +6 -0
  924. package/dist/src/utils/relaunch.test.js +273 -0
  925. package/dist/src/utils/relaunch.test.js.map +1 -0
  926. package/dist/src/utils/sandbox.d.ts +1 -1
  927. package/dist/src/utils/sandbox.js +43 -18
  928. package/dist/src/utils/sandbox.js.map +1 -1
  929. package/dist/src/utils/settingsUtils.d.ts +16 -6
  930. package/dist/src/utils/settingsUtils.js +41 -25
  931. package/dist/src/utils/settingsUtils.js.map +1 -1
  932. package/dist/src/utils/settingsUtils.test.js +455 -158
  933. package/dist/src/utils/settingsUtils.test.js.map +1 -1
  934. package/dist/src/utils/startupWarnings.js +1 -1
  935. package/dist/src/utils/startupWarnings.js.map +1 -1
  936. package/dist/src/utils/systemInfo.d.ts +66 -0
  937. package/dist/src/utils/systemInfo.js +125 -0
  938. package/dist/src/utils/systemInfo.js.map +1 -0
  939. package/dist/src/utils/systemInfo.test.d.ts +6 -0
  940. package/dist/src/utils/systemInfo.test.js +259 -0
  941. package/dist/src/utils/systemInfo.test.js.map +1 -0
  942. package/dist/src/utils/systemInfoFields.d.ts +22 -0
  943. package/dist/src/utils/systemInfoFields.js +96 -0
  944. package/dist/src/utils/systemInfoFields.js.map +1 -0
  945. package/dist/src/utils/userStartupWarnings.d.ts +7 -1
  946. package/dist/src/utils/userStartupWarnings.js +26 -6
  947. package/dist/src/utils/userStartupWarnings.js.map +1 -1
  948. package/dist/src/utils/userStartupWarnings.test.js +26 -5
  949. package/dist/src/utils/userStartupWarnings.test.js.map +1 -1
  950. package/dist/src/utils/windowTitle.d.ts +12 -0
  951. package/dist/src/utils/windowTitle.js +19 -0
  952. package/dist/src/utils/windowTitle.js.map +1 -0
  953. package/dist/src/utils/windowTitle.test.d.ts +6 -0
  954. package/dist/src/utils/windowTitle.test.js +49 -0
  955. package/dist/src/utils/windowTitle.test.js.map +1 -0
  956. package/dist/src/validateNonInterActiveAuth.d.ts +4 -2
  957. package/dist/src/validateNonInterActiveAuth.js +57 -21
  958. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  959. package/dist/src/zed-integration/acp.js +1 -2
  960. package/dist/src/zed-integration/acp.js.map +1 -1
  961. package/dist/src/zed-integration/fileSystemService.d.ts +1 -0
  962. package/dist/src/zed-integration/fileSystemService.js +3 -0
  963. package/dist/src/zed-integration/fileSystemService.js.map +1 -1
  964. package/dist/src/zed-integration/schema.d.ts +608 -366
  965. package/dist/src/zed-integration/schema.js +13 -0
  966. package/dist/src/zed-integration/schema.js.map +1 -1
  967. package/dist/src/zed-integration/zedIntegration.d.ts +8 -1
  968. package/dist/src/zed-integration/zedIntegration.js +409 -61
  969. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  970. package/dist/tsconfig.tsbuildinfo +1 -1
  971. package/package.json +25 -12
  972. package/dist/src/ui/commands/privacyCommand.js +0 -16
  973. package/dist/src/ui/commands/privacyCommand.js.map +0 -1
  974. package/dist/src/ui/components/AuthDialog.d.ts +0 -15
  975. package/dist/src/ui/components/AuthDialog.js +0 -163
  976. package/dist/src/ui/components/AuthDialog.js.map +0 -1
  977. package/dist/src/ui/components/AuthDialog.test.js.map +0 -1
  978. package/dist/src/ui/components/AuthInProgress.js.map +0 -1
  979. package/dist/src/ui/components/ModelSelectionDialog.d.ts +0 -14
  980. package/dist/src/ui/components/ModelSelectionDialog.js +0 -26
  981. package/dist/src/ui/components/ModelSelectionDialog.js.map +0 -1
  982. package/dist/src/ui/components/ModelSelectionDialog.test.js +0 -124
  983. package/dist/src/ui/components/ModelSelectionDialog.test.js.map +0 -1
  984. package/dist/src/ui/hooks/useAuthCommand.d.ts +0 -14
  985. package/dist/src/ui/hooks/useAuthCommand.js +0 -66
  986. package/dist/src/ui/hooks/useAuthCommand.js.map +0 -1
  987. package/dist/src/ui/hooks/usePrivacySettings.d.ts +0 -16
  988. package/dist/src/ui/hooks/usePrivacySettings.js +0 -119
  989. package/dist/src/ui/hooks/usePrivacySettings.js.map +0 -1
  990. package/dist/src/ui/hooks/usePrivacySettings.test.js +0 -154
  991. package/dist/src/ui/hooks/usePrivacySettings.test.js.map +0 -1
  992. package/dist/src/ui/privacy/CloudFreePrivacyNotice.d.ts +0 -12
  993. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +0 -41
  994. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +0 -1
  995. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.d.ts +0 -10
  996. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js +0 -18
  997. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js.map +0 -1
  998. package/dist/src/ui/privacy/GeminiPrivacyNotice.d.ts +0 -10
  999. package/dist/src/ui/privacy/GeminiPrivacyNotice.js +0 -18
  1000. package/dist/src/ui/privacy/GeminiPrivacyNotice.js.map +0 -1
  1001. package/dist/src/ui/privacy/PrivacyNotice.d.ts +0 -12
  1002. package/dist/src/ui/privacy/PrivacyNotice.js +0 -25
  1003. package/dist/src/ui/privacy/PrivacyNotice.js.map +0 -1
  1004. /package/dist/src/{ui/components/AuthDialog.test.d.ts → commands/extensions/new.test.d.ts} +0 -0
  1005. /package/dist/src/{ui/hooks/usePrivacySettings.test.d.ts → config/extensions/extensionEnablement.test.d.ts} +0 -0
  1006. /package/dist/src/ui/{components → auth}/AuthInProgress.d.ts +0 -0
  1007. /package/dist/src/ui/{components/ModelSelectionDialog.test.d.ts → hooks/useAttentionNotifications.test.d.ts} +0 -0
@@ -3,20 +3,21 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { ApprovalMode, Config, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_GEMINI_MODEL, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, EditTool, FileDiscoveryService, getCurrentGeminiMdFilename, loadServerHierarchicalMemory, setGeminiMdFilename as setServerGeminiMdFilename, ShellTool, WriteFileTool, } from '@umsai/ums-code-core';
6
+ import { extensionsCommand } from '../commands/extensions.js';
7
+ import { ApprovalMode, Config, DEFAULT_QWEN_EMBEDDING_MODEL, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, EditTool, FileDiscoveryService, getCurrentGeminiMdFilename, loadServerHierarchicalMemory, setGeminiMdFilename as setServerGeminiMdFilename, ShellTool, WriteFileTool, resolveTelemetrySettings, FatalConfigError, Storage, InputFormat, OutputFormat, } from '@umsai/ums-code-core';
8
+ import yargs, {} from 'yargs';
9
+ import { hideBin } from 'yargs/helpers';
7
10
  import * as fs from 'node:fs';
8
- import { homedir } from 'node:os';
9
11
  import * as path from 'node:path';
10
- import process from 'node:process';
11
- import { hideBin } from 'yargs/helpers';
12
- import yargs from 'yargs/yargs';
13
- import { extensionsCommand } from '../commands/extensions.js';
14
- import { mcpCommand } from '../commands/mcp.js';
12
+ import { homedir } from 'node:os';
15
13
  import { resolvePath } from '../utils/resolvePath.js';
16
14
  import { getCliVersion } from '../utils/version.js';
17
15
  import { annotateActiveExtensions } from './extension.js';
18
16
  import { loadSandboxConfig } from './sandboxConfig.js';
17
+ import { appEvents } from '../utils/events.js';
18
+ import { mcpCommand } from '../commands/mcp.js';
19
19
  import { isWorkspaceTrusted } from './trustedFolders.js';
20
+ import { buildWebSearchConfig } from './webSearch.js';
20
21
  // Simple console logger for now - replace with actual logger if available
21
22
  const logger = {
22
23
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -52,18 +53,75 @@ function parseApprovalModeValue(value) {
52
53
  throw formatApprovalModeError(value);
53
54
  }
54
55
  }
56
+ function normalizeOutputFormat(format) {
57
+ if (!format) {
58
+ return undefined;
59
+ }
60
+ if (format === OutputFormat.STREAM_JSON) {
61
+ return OutputFormat.STREAM_JSON;
62
+ }
63
+ if (format === 'json' || format === OutputFormat.JSON) {
64
+ return OutputFormat.JSON;
65
+ }
66
+ return OutputFormat.TEXT;
67
+ }
55
68
  export async function parseArguments(settings) {
56
- const yargsInstance = yargs(hideBin(process.argv))
57
- // Set locale to English for consistent output, especially in tests
69
+ const rawArgv = hideBin(process.argv);
70
+ const yargsInstance = yargs(rawArgv)
58
71
  .locale('en')
59
- .scriptName('qwen')
60
- .usage('Usage: qwen [options] [command]\n\nUMS Code - Launch an interactive CLI, use -p/--prompt for non-interactive mode')
61
- .command('$0', 'Launch UMS Code', (yargsInstance) => yargsInstance
72
+ .scriptName('ums')
73
+ .usage('Usage: ums [options] [command]\n\nUMS Code - Launch an interactive CLI, use -p/--prompt for non-interactive mode')
74
+ .option('telemetry', {
75
+ type: 'boolean',
76
+ description: 'Enable telemetry? This flag specifically controls if telemetry is sent. Other --telemetry-* flags set specific values but do not enable telemetry on their own.',
77
+ })
78
+ .option('telemetry-target', {
79
+ type: 'string',
80
+ choices: ['local', 'gcp'],
81
+ description: 'Set the telemetry target (local or gcp). Overrides settings files.',
82
+ })
83
+ .option('telemetry-otlp-endpoint', {
84
+ type: 'string',
85
+ description: 'Set the OTLP endpoint for telemetry. Overrides environment variables and settings files.',
86
+ })
87
+ .option('telemetry-otlp-protocol', {
88
+ type: 'string',
89
+ choices: ['grpc', 'http'],
90
+ description: 'Set the OTLP protocol for telemetry (grpc or http). Overrides settings files.',
91
+ })
92
+ .option('telemetry-log-prompts', {
93
+ type: 'boolean',
94
+ description: 'Enable or disable logging of user prompts for telemetry. Overrides settings files.',
95
+ })
96
+ .option('telemetry-outfile', {
97
+ type: 'string',
98
+ description: 'Redirect all telemetry output to the specified file.',
99
+ })
100
+ .deprecateOption('telemetry', 'Use the "telemetry.enabled" setting in settings.json instead. This flag will be removed in a future version.')
101
+ .deprecateOption('telemetry-target', 'Use the "telemetry.target" setting in settings.json instead. This flag will be removed in a future version.')
102
+ .deprecateOption('telemetry-otlp-endpoint', 'Use the "telemetry.otlpEndpoint" setting in settings.json instead. This flag will be removed in a future version.')
103
+ .deprecateOption('telemetry-otlp-protocol', 'Use the "telemetry.otlpProtocol" setting in settings.json instead. This flag will be removed in a future version.')
104
+ .deprecateOption('telemetry-log-prompts', 'Use the "telemetry.logPrompts" setting in settings.json instead. This flag will be removed in a future version.')
105
+ .deprecateOption('telemetry-outfile', 'Use the "telemetry.outfile" setting in settings.json instead. This flag will be removed in a future version.')
106
+ .option('debug', {
107
+ alias: 'd',
108
+ type: 'boolean',
109
+ description: 'Run in debug mode?',
110
+ default: false,
111
+ })
112
+ .option('proxy', {
113
+ type: 'string',
114
+ description: 'Proxy for UMS Code, like schema://user:password@host:port',
115
+ })
116
+ .deprecateOption('proxy', 'Use the "proxy" setting in settings.json instead. This flag will be removed in a future version.')
117
+ .command('$0 [query..]', 'Launch UMS Code CLI', (yargsInstance) => yargsInstance
118
+ .positional('query', {
119
+ description: 'Positional prompt. Defaults to one-shot; use -i/--prompt-interactive for interactive.',
120
+ })
62
121
  .option('model', {
63
122
  alias: 'm',
64
123
  type: 'string',
65
124
  description: `Model`,
66
- default: process.env['GEMINI_MODEL'],
67
125
  })
68
126
  .option('prompt', {
69
127
  alias: 'p',
@@ -83,12 +141,6 @@ export async function parseArguments(settings) {
83
141
  .option('sandbox-image', {
84
142
  type: 'string',
85
143
  description: 'Sandbox image URI.',
86
- })
87
- .option('debug', {
88
- alias: 'd',
89
- type: 'boolean',
90
- description: 'Run in debug mode?',
91
- default: false,
92
144
  })
93
145
  .option('all-files', {
94
146
  alias: ['a'],
@@ -111,32 +163,6 @@ export async function parseArguments(settings) {
111
163
  type: 'string',
112
164
  choices: ['plan', 'default', 'auto-edit', 'yolo'],
113
165
  description: 'Set the approval mode: plan (plan only), default (prompt for approval), auto-edit (auto-approve edit tools), yolo (auto-approve all tools)',
114
- })
115
- .option('telemetry', {
116
- type: 'boolean',
117
- description: 'Enable telemetry? This flag specifically controls if telemetry is sent. Other --telemetry-* flags set specific values but do not enable telemetry on their own.',
118
- })
119
- .option('telemetry-target', {
120
- type: 'string',
121
- choices: ['local', 'gcp'],
122
- description: 'Set the telemetry target (local or gcp). Overrides settings files.',
123
- })
124
- .option('telemetry-otlp-endpoint', {
125
- type: 'string',
126
- description: 'Set the OTLP endpoint for telemetry. Overrides environment variables and settings files.',
127
- })
128
- .option('telemetry-otlp-protocol', {
129
- type: 'string',
130
- choices: ['grpc', 'http'],
131
- description: 'Set the OTLP protocol for telemetry (grpc or http). Overrides settings files.',
132
- })
133
- .option('telemetry-log-prompts', {
134
- type: 'boolean',
135
- description: 'Enable or disable logging of user prompts for telemetry. Overrides settings files.',
136
- })
137
- .option('telemetry-outfile', {
138
- type: 'string',
139
- description: 'Redirect all telemetry output to the specified file.',
140
166
  })
141
167
  .option('checkpointing', {
142
168
  alias: 'c',
@@ -152,26 +178,31 @@ export async function parseArguments(settings) {
152
178
  type: 'array',
153
179
  string: true,
154
180
  description: 'Allowed MCP server names',
181
+ coerce: (mcpServerNames) =>
182
+ // Handle comma-separated values
183
+ mcpServerNames.flatMap((mcpServerName) => mcpServerName.split(',').map((m) => m.trim())),
155
184
  })
156
185
  .option('allowed-tools', {
157
186
  type: 'array',
158
187
  string: true,
159
188
  description: 'Tools that are allowed to run without confirmation',
189
+ coerce: (tools) =>
190
+ // Handle comma-separated values
191
+ tools.flatMap((tool) => tool.split(',').map((t) => t.trim())),
160
192
  })
161
193
  .option('extensions', {
162
194
  alias: 'e',
163
195
  type: 'array',
164
196
  string: true,
165
197
  description: 'A list of extensions to use. If not provided, all extensions are used.',
198
+ coerce: (extensions) =>
199
+ // Handle comma-separated values
200
+ extensions.flatMap((extension) => extension.split(',').map((e) => e.trim())),
166
201
  })
167
202
  .option('list-extensions', {
168
203
  alias: 'l',
169
204
  type: 'boolean',
170
205
  description: 'List all available extensions and exit.',
171
- })
172
- .option('proxy', {
173
- type: 'string',
174
- description: 'Proxy for qwen client, like schema://user:password@host:port',
175
206
  })
176
207
  .option('include-directories', {
177
208
  type: 'array',
@@ -184,6 +215,10 @@ export async function parseArguments(settings) {
184
215
  .option('openai-logging', {
185
216
  type: 'boolean',
186
217
  description: 'Enable logging of OpenAI API calls for debugging and analysis',
218
+ })
219
+ .option('openai-logging-dir', {
220
+ type: 'string',
221
+ description: 'Custom directory path for OpenAI API logs. Overrides settings files.',
187
222
  })
188
223
  .option('openai-api-key', {
189
224
  type: 'string',
@@ -195,31 +230,87 @@ export async function parseArguments(settings) {
195
230
  })
196
231
  .option('tavily-api-key', {
197
232
  type: 'string',
198
- description: 'Tavily API key for web search functionality',
233
+ description: 'Tavily API key for web search',
234
+ })
235
+ .option('google-api-key', {
236
+ type: 'string',
237
+ description: 'Google Custom Search API key',
238
+ })
239
+ .option('google-search-engine-id', {
240
+ type: 'string',
241
+ description: 'Google Custom Search Engine ID',
242
+ })
243
+ .option('web-search-default', {
244
+ type: 'string',
245
+ description: 'Default web search provider (dashscope, tavily, google)',
199
246
  })
200
247
  .option('screen-reader', {
201
248
  type: 'boolean',
202
249
  description: 'Enable screen reader mode for accessibility.',
203
- default: false,
204
250
  })
205
251
  .option('vlm-switch-mode', {
206
252
  type: 'string',
207
253
  choices: ['once', 'session', 'persist'],
208
254
  description: 'Default behavior when images are detected in input. Values: once (one-time switch), session (switch for entire session), persist (continue with current model). Overrides settings files.',
209
255
  default: process.env['VLM_SWITCH_MODE'],
256
+ })
257
+ .option('input-format', {
258
+ type: 'string',
259
+ choices: ['text', 'stream-json'],
260
+ description: 'The format consumed from standard input.',
261
+ default: 'text',
262
+ })
263
+ .option('output-format', {
264
+ alias: 'o',
265
+ type: 'string',
266
+ description: 'The format of the CLI output.',
267
+ choices: ['text', 'json', 'stream-json'],
268
+ })
269
+ .option('include-partial-messages', {
270
+ type: 'boolean',
271
+ description: 'Include partial assistant messages when using stream-json output.',
272
+ default: false,
273
+ })
274
+ .deprecateOption('show-memory-usage', 'Use the "ui.showMemoryUsage" setting in settings.json instead. This flag will be removed in a future version.')
275
+ .deprecateOption('sandbox-image', 'Use the "tools.sandbox" setting in settings.json instead. This flag will be removed in a future version.')
276
+ .deprecateOption('checkpointing', 'Use the "general.checkpointing.enabled" setting in settings.json instead. This flag will be removed in a future version.')
277
+ .deprecateOption('all-files', 'Use @ includes in the application instead. This flag will be removed in a future version.')
278
+ .deprecateOption('prompt', 'Use the positional prompt instead. This flag will be removed in a future version.')
279
+ // Ensure validation flows through .fail() for clean UX
280
+ .fail((msg, err, yargs) => {
281
+ console.error(msg || err?.message || 'Unknown error');
282
+ yargs.showHelp();
283
+ process.exit(1);
210
284
  })
211
285
  .check((argv) => {
212
- if (argv.prompt && argv['promptInteractive']) {
213
- throw new Error('Cannot use both --prompt (-p) and --prompt-interactive (-i) together');
286
+ // The 'query' positional can be a string (for one arg) or string[] (for multiple).
287
+ // This guard safely checks if any positional argument was provided.
288
+ const query = argv['query'];
289
+ const hasPositionalQuery = Array.isArray(query)
290
+ ? query.length > 0
291
+ : !!query;
292
+ if (argv['prompt'] && hasPositionalQuery) {
293
+ return 'Cannot use both a positional prompt and the --prompt (-p) flag together';
294
+ }
295
+ if (argv['prompt'] && argv['promptInteractive']) {
296
+ return 'Cannot use both --prompt (-p) and --prompt-interactive (-i) together';
214
297
  }
215
- if (argv.yolo && argv['approvalMode']) {
216
- throw new Error('Cannot use both --yolo (-y) and --approval-mode together. Use --approval-mode=yolo instead.');
298
+ if (argv['yolo'] && argv['approvalMode']) {
299
+ return 'Cannot use both --yolo (-y) and --approval-mode together. Use --approval-mode=yolo instead.';
300
+ }
301
+ if (argv['includePartialMessages'] &&
302
+ argv['outputFormat'] !== OutputFormat.STREAM_JSON) {
303
+ return '--include-partial-messages requires --output-format stream-json';
304
+ }
305
+ if (argv['inputFormat'] === 'stream-json' &&
306
+ argv['outputFormat'] !== OutputFormat.STREAM_JSON) {
307
+ return '--input-format stream-json requires --output-format stream-json';
217
308
  }
218
309
  return true;
219
310
  }))
220
311
  // Register MCP subcommands
221
312
  .command(mcpCommand);
222
- if (settings?.experimental?.extensionManagement ?? false) {
313
+ if (settings?.experimental?.extensionManagement ?? true) {
223
314
  yargsInstance.command(extensionsCommand);
224
315
  }
225
316
  yargsInstance
@@ -231,6 +322,7 @@ export async function parseArguments(settings) {
231
322
  .demandCommand(0, 0); // Allow base command to run with no subcommands
232
323
  yargsInstance.wrap(yargsInstance.terminalWidth());
233
324
  const result = await yargsInstance.parse();
325
+ // If yargs handled --help/--version it will have exited; nothing to do here.
234
326
  // Handle case where MCP subcommands are executed - they should exit the process
235
327
  // and not return to main CLI logic
236
328
  if (result._.length > 0 &&
@@ -238,6 +330,23 @@ export async function parseArguments(settings) {
238
330
  // MCP commands handle their own execution and process exit
239
331
  process.exit(0);
240
332
  }
333
+ // Normalize query args: handle both quoted "@path file" and unquoted @path file
334
+ const queryArg = result.query;
335
+ const q = Array.isArray(queryArg)
336
+ ? queryArg.join(' ')
337
+ : queryArg;
338
+ // Route positional args: explicit -i flag -> interactive; else -> one-shot (even for @commands)
339
+ if (q && !result['prompt']) {
340
+ const hasExplicitInteractive = result['promptInteractive'] === '' || !!result['promptInteractive'];
341
+ if (hasExplicitInteractive) {
342
+ result['promptInteractive'] = q;
343
+ }
344
+ else {
345
+ result['prompt'] = q;
346
+ }
347
+ }
348
+ // Keep CliArgs.query as a string for downstream typing
349
+ result['query'] = q || undefined;
241
350
  // The import format is now only controlled by settings.memoryImportFormat
242
351
  // We no longer accept it as a CLI argument
243
352
  return result;
@@ -245,7 +354,7 @@ export async function parseArguments(settings) {
245
354
  // This function is now a thin wrapper around the server's implementation.
246
355
  // It's kept in the CLI for now as App.tsx directly calls it for memory refresh.
247
356
  // TODO: Consider if App.tsx should get memory via a server call or if Config should refresh itself.
248
- export async function loadHierarchicalGeminiMemory(currentWorkingDirectory, includeDirectoriesToReadGemini = [], debugMode, fileService, settings, extensionContextFilePaths = [], memoryImportFormat = 'tree', fileFilteringOptions) {
357
+ export async function loadHierarchicalGeminiMemory(currentWorkingDirectory, includeDirectoriesToReadGemini = [], debugMode, fileService, settings, extensionContextFilePaths = [], folderTrust, memoryImportFormat = 'tree', fileFilteringOptions) {
249
358
  // FIX: Use real, canonical paths for a reliable comparison to handle symlinks.
250
359
  const realCwd = fs.realpathSync(path.resolve(currentWorkingDirectory));
251
360
  const realHome = fs.realpathSync(path.resolve(homedir()));
@@ -257,32 +366,20 @@ export async function loadHierarchicalGeminiMemory(currentWorkingDirectory, incl
257
366
  logger.debug(`CLI: Delegating hierarchical memory load to server for CWD: ${currentWorkingDirectory} (memoryImportFormat: ${memoryImportFormat})`);
258
367
  }
259
368
  // Directly call the server function with the corrected path.
260
- return loadServerHierarchicalMemory(effectiveCwd, includeDirectoriesToReadGemini, debugMode, fileService, extensionContextFilePaths, memoryImportFormat, fileFilteringOptions, settings.context?.discoveryMaxDirs);
369
+ return loadServerHierarchicalMemory(effectiveCwd, includeDirectoriesToReadGemini, debugMode, fileService, extensionContextFilePaths, folderTrust, memoryImportFormat, fileFilteringOptions, settings.context?.discoveryMaxDirs);
370
+ }
371
+ export function isDebugMode(argv) {
372
+ return (argv.debug ||
373
+ [process.env['DEBUG'], process.env['DEBUG_MODE']].some((v) => v === 'true' || v === '1'));
261
374
  }
262
- export async function loadCliConfig(settings, extensions, sessionId, argv, cwd = process.cwd()) {
263
- const debugMode = argv.debug ||
264
- [process.env['DEBUG'], process.env['DEBUG_MODE']].some((v) => v === 'true' || v === '1') ||
265
- false;
375
+ export async function loadCliConfig(settings, extensions, extensionEnablementManager, sessionId, argv, cwd = process.cwd()) {
376
+ const debugMode = isDebugMode(argv);
266
377
  const memoryImportFormat = settings.context?.importFormat || 'tree';
267
378
  const ideMode = settings.ide?.enabled ?? false;
268
- const folderTrustFeature = settings.security?.folderTrust?.featureEnabled ?? false;
269
- const folderTrustSetting = settings.security?.folderTrust?.enabled ?? true;
270
- const folderTrust = folderTrustFeature && folderTrustSetting;
271
- const trustedFolder = isWorkspaceTrusted(settings);
272
- const allExtensions = annotateActiveExtensions(extensions, argv.extensions || [], cwd);
379
+ const folderTrust = settings.security?.folderTrust?.enabled ?? false;
380
+ const trustedFolder = isWorkspaceTrusted(settings)?.isTrusted ?? true;
381
+ const allExtensions = annotateActiveExtensions(extensions, cwd, extensionEnablementManager);
273
382
  const activeExtensions = extensions.filter((_, i) => allExtensions[i].isActive);
274
- // Handle OpenAI API key from command line
275
- if (argv.openaiApiKey) {
276
- process.env['OPENAI_API_KEY'] = argv.openaiApiKey;
277
- }
278
- // Handle OpenAI base URL from command line
279
- if (argv.openaiBaseUrl) {
280
- process.env['OPENAI_BASE_URL'] = argv.openaiBaseUrl;
281
- }
282
- // Handle Tavily API key from command line
283
- if (argv.tavilyApiKey) {
284
- process.env['TAVILY_API_KEY'] = argv.tavilyApiKey;
285
- }
286
383
  // Set the context filename in the server's memoryTool module BEFORE loading memory
287
384
  // TODO(b/343434939): This is a bit of a hack. The contextFileName should ideally be passed
288
385
  // directly to the Config constructor in core, and have core handle setGeminiMdFilename.
@@ -295,6 +392,14 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
295
392
  setServerGeminiMdFilename(getCurrentGeminiMdFilename());
296
393
  }
297
394
  const extensionContextFilePaths = activeExtensions.flatMap((e) => e.contextFiles);
395
+ // Automatically load output-language.md if it exists
396
+ const outputLanguageFilePath = path.join(Storage.getGlobalQwenDir(), 'output-language.md');
397
+ if (fs.existsSync(outputLanguageFilePath)) {
398
+ extensionContextFilePaths.push(outputLanguageFilePath);
399
+ if (debugMode) {
400
+ logger.debug(`Found output-language.md, adding to context files: ${outputLanguageFilePath}`);
401
+ }
402
+ }
298
403
  const fileService = new FileDiscoveryService(cwd);
299
404
  const fileFiltering = {
300
405
  ...DEFAULT_MEMORY_FILE_FILTERING_OPTIONS,
@@ -306,9 +411,20 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
306
411
  // Call the (now wrapper) loadHierarchicalGeminiMemory which calls the server's version
307
412
  const { memoryContent, fileCount } = await loadHierarchicalGeminiMemory(cwd, settings.context?.loadMemoryFromIncludeDirectories
308
413
  ? includeDirectories
309
- : [], debugMode, fileService, settings, extensionContextFilePaths, memoryImportFormat, fileFiltering);
414
+ : [], debugMode, fileService, settings, extensionContextFilePaths, trustedFolder, memoryImportFormat, fileFiltering);
310
415
  let mcpServers = mergeMcpServers(settings, activeExtensions);
311
416
  const question = argv.promptInteractive || argv.prompt || '';
417
+ const inputFormat = argv.inputFormat ?? InputFormat.TEXT;
418
+ const argvOutputFormat = normalizeOutputFormat(argv.outputFormat);
419
+ const settingsOutputFormat = normalizeOutputFormat(settings.output?.format);
420
+ const outputFormat = argvOutputFormat ?? settingsOutputFormat ?? OutputFormat.TEXT;
421
+ const outputSettingsFormat = outputFormat === OutputFormat.STREAM_JSON
422
+ ? settingsOutputFormat &&
423
+ settingsOutputFormat !== OutputFormat.STREAM_JSON
424
+ ? settingsOutputFormat
425
+ : OutputFormat.TEXT
426
+ : outputFormat;
427
+ const includePartialMessages = Boolean(argv.includePartialMessages);
312
428
  // Determine approval mode with backward compatibility
313
429
  let approvalMode;
314
430
  if (argv.approvalMode) {
@@ -317,8 +433,8 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
317
433
  else if (argv.yolo) {
318
434
  approvalMode = ApprovalMode.YOLO;
319
435
  }
320
- else if (settings.approvalMode) {
321
- approvalMode = parseApprovalModeValue(settings.approvalMode);
436
+ else if (settings.tools?.approvalMode) {
437
+ approvalMode = parseApprovalModeValue(settings.tools.approvalMode);
322
438
  }
323
439
  else {
324
440
  approvalMode = ApprovalMode.DEFAULT;
@@ -330,7 +446,46 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
330
446
  logger.warn(`Approval mode overridden to "default" because the current folder is not trusted.`);
331
447
  approvalMode = ApprovalMode.DEFAULT;
332
448
  }
333
- const interactive = !!argv.promptInteractive || (process.stdin.isTTY && question.length === 0);
449
+ let telemetrySettings;
450
+ try {
451
+ telemetrySettings = await resolveTelemetrySettings({
452
+ argv,
453
+ env: process.env,
454
+ settings: settings.telemetry,
455
+ });
456
+ }
457
+ catch (err) {
458
+ if (err instanceof FatalConfigError) {
459
+ throw new FatalConfigError(`Invalid telemetry configuration: ${err.message}.`);
460
+ }
461
+ throw err;
462
+ }
463
+ // Interactive mode determination with priority:
464
+ // 1. If promptInteractive (-i flag) is provided, it is explicitly interactive
465
+ // 2. If outputFormat is stream-json or json (no matter input-format) along with query or prompt, it is non-interactive
466
+ // 3. If no query or prompt is provided, check isTTY: TTY means interactive, non-TTY means non-interactive
467
+ const hasQuery = !!argv.query;
468
+ const hasPrompt = !!argv.prompt;
469
+ let interactive;
470
+ if (argv.promptInteractive) {
471
+ // Priority 1: Explicit -i flag means interactive
472
+ interactive = true;
473
+ }
474
+ else if ((outputFormat === OutputFormat.STREAM_JSON ||
475
+ outputFormat === OutputFormat.JSON) &&
476
+ (hasQuery || hasPrompt)) {
477
+ // Priority 2: JSON/stream-json output with query/prompt means non-interactive
478
+ interactive = false;
479
+ }
480
+ else if (!hasQuery && !hasPrompt) {
481
+ // Priority 3: No query or prompt means interactive only if TTY (format arguments ignored)
482
+ interactive = process.stdin.isTTY ?? false;
483
+ }
484
+ else {
485
+ // Default: If we have query/prompt but output format is TEXT, assume non-interactive
486
+ // (fallback for edge cases where query/prompt is provided with TEXT output)
487
+ interactive = false;
488
+ }
334
489
  // In non-interactive mode, exclude tools that require a prompt.
335
490
  const extraExcludes = [];
336
491
  if (!interactive && !argv.experimentalAcp) {
@@ -368,15 +523,18 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
368
523
  if (argv.allowedMcpServerNames) {
369
524
  mcpServers = allowedMcpServers(mcpServers, argv.allowedMcpServerNames, blockedMcpServers);
370
525
  }
526
+ const resolvedModel = argv.model ||
527
+ process.env['OPENAI_MODEL'] ||
528
+ process.env['QWEN_MODEL'] ||
529
+ settings.model?.name;
371
530
  const sandboxConfig = await loadSandboxConfig(settings, argv);
372
- const cliVersion = await getCliVersion();
373
531
  const screenReader = argv.screenReader !== undefined
374
532
  ? argv.screenReader
375
533
  : (settings.ui?.accessibility?.screenReader ?? false);
376
534
  const vlmSwitchMode = argv.vlmSwitchMode || settings.experimental?.vlmSwitchMode;
377
535
  return new Config({
378
536
  sessionId,
379
- embeddingModel: DEFAULT_GEMINI_EMBEDDING_MODEL,
537
+ embeddingModel: DEFAULT_QWEN_EMBEDDING_MODEL,
380
538
  sandbox: sandboxConfig,
381
539
  targetDir: cwd,
382
540
  includeDirectories,
@@ -399,26 +557,9 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
399
557
  ...settings.ui?.accessibility,
400
558
  screenReader,
401
559
  },
402
- telemetry: {
403
- enabled: argv.telemetry ?? settings.telemetry?.enabled,
404
- target: (argv.telemetryTarget ??
405
- settings.telemetry?.target),
406
- otlpEndpoint: argv.telemetryOtlpEndpoint ??
407
- process.env['OTEL_EXPORTER_OTLP_ENDPOINT'] ??
408
- settings.telemetry?.otlpEndpoint,
409
- otlpProtocol: ['grpc', 'http'].find((p) => p ===
410
- (argv.telemetryOtlpProtocol ?? settings.telemetry?.otlpProtocol)),
411
- logPrompts: argv.telemetryLogPrompts ?? settings.telemetry?.logPrompts,
412
- outfile: argv.telemetryOutfile ?? settings.telemetry?.outfile,
413
- },
560
+ telemetry: telemetrySettings,
414
561
  usageStatisticsEnabled: settings.privacy?.usageStatisticsEnabled ?? true,
415
- // Git-aware file filtering settings
416
- fileFiltering: {
417
- respectGitIgnore: settings.context?.fileFiltering?.respectGitIgnore,
418
- respectGeminiIgnore: settings.context?.fileFiltering?.respectGeminiIgnore,
419
- enableRecursiveFileSearch: settings.context?.fileFiltering?.enableRecursiveFileSearch,
420
- disableFuzzySearch: settings.context?.fileFiltering?.disableFuzzySearch,
421
- },
562
+ fileFiltering: settings.context?.fileFiltering,
422
563
  checkpointing: argv.checkpointing || settings.general?.checkpointing?.enabled,
423
564
  proxy: argv.proxy ||
424
565
  process.env['HTTPS_PROXY'] ||
@@ -428,47 +569,56 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
428
569
  cwd,
429
570
  fileDiscoveryService: fileService,
430
571
  bugCommand: settings.advanced?.bugCommand,
431
- model: argv.model || settings.model?.name || DEFAULT_GEMINI_MODEL,
572
+ model: resolvedModel,
432
573
  extensionContextFilePaths,
433
- sessionTokenLimit: settings.sessionTokenLimit ?? -1,
574
+ sessionTokenLimit: settings.model?.sessionTokenLimit ?? -1,
434
575
  maxSessionTurns: settings.model?.maxSessionTurns ?? -1,
435
576
  experimentalZedIntegration: argv.experimentalAcp || false,
436
577
  listExtensions: argv.listExtensions || false,
437
578
  extensions: allExtensions,
438
579
  blockedMcpServers,
439
580
  noBrowser: !!process.env['NO_BROWSER'],
440
- enableOpenAILogging: (typeof argv.openaiLogging === 'undefined'
441
- ? settings.enableOpenAILogging
442
- : argv.openaiLogging) ?? false,
443
- systemPromptMappings: (settings.systemPromptMappings ?? [
444
- {
445
- baseUrls: [
446
- 'https://dashscope.aliyuncs.com/compatible-mode/v1/',
447
- 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/',
448
- ],
449
- modelNames: ['qwen3-coder-plus'],
450
- template: 'SYSTEM_TEMPLATE:{"name":"qwen3_coder","params":{"is_git_repository":{RUNTIME_VARS_IS_GIT_REPO},"sandbox":"{RUNTIME_VARS_SANDBOX}"}}',
451
- },
452
- ]),
453
581
  authType: settings.security?.auth?.selectedType,
454
- contentGenerator: settings.contentGenerator,
455
- cliVersion,
456
- tavilyApiKey: argv.tavilyApiKey ||
457
- settings.tavilyApiKey ||
458
- process.env['TAVILY_API_KEY'],
582
+ inputFormat,
583
+ outputFormat,
584
+ includePartialMessages,
585
+ generationConfig: {
586
+ ...(settings.model?.generationConfig || {}),
587
+ model: resolvedModel,
588
+ apiKey: argv.openaiApiKey ||
589
+ process.env['OPENAI_API_KEY'] ||
590
+ settings.security?.auth?.apiKey,
591
+ baseUrl: argv.openaiBaseUrl ||
592
+ process.env['OPENAI_BASE_URL'] ||
593
+ settings.security?.auth?.baseUrl,
594
+ enableOpenAILogging: (typeof argv.openaiLogging === 'undefined'
595
+ ? settings.model?.enableOpenAILogging
596
+ : argv.openaiLogging) ?? false,
597
+ openAILoggingDir: argv.openaiLoggingDir || settings.model?.openAILoggingDir,
598
+ },
599
+ cliVersion: await getCliVersion(),
600
+ webSearch: buildWebSearchConfig(argv, settings, settings.security?.auth?.selectedType),
459
601
  summarizeToolOutput: settings.model?.summarizeToolOutput,
460
602
  ideMode,
461
603
  chatCompression: settings.model?.chatCompression,
462
- folderTrustFeature,
463
604
  folderTrust,
464
605
  interactive,
465
606
  trustedFolder,
466
607
  useRipgrep: settings.tools?.useRipgrep,
467
- shouldUseNodePtyShell: settings.tools?.usePty,
608
+ useBuiltinRipgrep: settings.tools?.useBuiltinRipgrep,
609
+ shouldUseNodePtyShell: settings.tools?.shell?.enableInteractiveShell,
468
610
  skipNextSpeakerCheck: settings.model?.skipNextSpeakerCheck,
469
- enablePromptCompletion: settings.general?.enablePromptCompletion ?? false,
470
- skipLoopDetection: settings.skipLoopDetection ?? false,
611
+ skipLoopDetection: settings.model?.skipLoopDetection ?? false,
612
+ skipStartupContext: settings.model?.skipStartupContext ?? false,
471
613
  vlmSwitchMode,
614
+ truncateToolOutputThreshold: settings.tools?.truncateToolOutputThreshold,
615
+ truncateToolOutputLines: settings.tools?.truncateToolOutputLines,
616
+ enableToolOutputTruncation: settings.tools?.enableToolOutputTruncation,
617
+ eventEmitter: appEvents,
618
+ useSmartEdit: argv.useSmartEdit ?? settings.useSmartEdit,
619
+ output: {
620
+ format: outputSettingsFormat,
621
+ },
472
622
  });
473
623
  }
474
624
  function allowedMcpServers(mcpServers, allowMCPServers, blockedMcpServers) {