@rdmind/rdmind 0.0.15-alpha.1 → 0.0.15-alpha.2

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 (773) hide show
  1. package/dist/package.json +15 -10
  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 +1 -1
  48. package/dist/src/config/auth.js +4 -4
  49. package/dist/src/config/auth.js.map +1 -1
  50. package/dist/src/config/auth.test.js +15 -7
  51. package/dist/src/config/auth.test.js.map +1 -1
  52. package/dist/src/config/config.d.ts +7 -2
  53. package/dist/src/config/config.js +178 -122
  54. package/dist/src/config/config.js.map +1 -1
  55. package/dist/src/config/extension.d.ts +39 -16
  56. package/dist/src/config/extension.js +349 -192
  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/{ui/components/ModelSelectionDialog.test.d.ts → config/extensions/extensionEnablement.test.d.ts} +1 -1
  62. package/dist/src/config/extensions/extensionEnablement.test.js +333 -0
  63. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -0
  64. package/dist/src/config/extensions/github.d.ts +30 -0
  65. package/dist/src/config/extensions/github.js +322 -0
  66. package/dist/src/config/extensions/github.js.map +1 -0
  67. package/dist/src/config/extensions/github.test.d.ts +6 -0
  68. package/dist/src/config/extensions/github.test.js +334 -0
  69. package/dist/src/config/extensions/github.test.js.map +1 -0
  70. package/dist/src/config/extensions/update.d.ts +19 -0
  71. package/dist/src/config/extensions/update.js +113 -0
  72. package/dist/src/config/extensions/update.js.map +1 -0
  73. package/dist/src/config/extensions/update.test.d.ts +6 -0
  74. package/dist/src/config/extensions/update.test.js +342 -0
  75. package/dist/src/config/extensions/update.test.js.map +1 -0
  76. package/dist/src/config/extensions/variableSchema.d.ts +8 -0
  77. package/dist/src/config/extensions/variableSchema.js +4 -0
  78. package/dist/src/config/extensions/variableSchema.js.map +1 -1
  79. package/dist/src/config/keyBindings.d.ts +5 -1
  80. package/dist/src/config/keyBindings.js +14 -25
  81. package/dist/src/config/keyBindings.js.map +1 -1
  82. package/dist/src/config/settings.d.ts +8 -5
  83. package/dist/src/config/settings.js +178 -275
  84. package/dist/src/config/settings.js.map +1 -1
  85. package/dist/src/config/settingsSchema.d.ts +332 -141
  86. package/dist/src/config/settingsSchema.js +321 -153
  87. package/dist/src/config/settingsSchema.js.map +1 -1
  88. package/dist/src/config/settingsSchema.test.js +64 -57
  89. package/dist/src/config/settingsSchema.test.js.map +1 -1
  90. package/dist/src/config/trustedFolders.d.ts +23 -4
  91. package/dist/src/config/trustedFolders.js +97 -47
  92. package/dist/src/config/trustedFolders.js.map +1 -1
  93. package/dist/src/config/trustedFolders.test.js +196 -20
  94. package/dist/src/config/trustedFolders.test.js.map +1 -1
  95. package/dist/src/core/auth.d.ts +13 -0
  96. package/dist/src/core/auth.js +27 -0
  97. package/dist/src/core/auth.js.map +1 -0
  98. package/dist/src/core/initializer.d.ts +21 -0
  99. package/dist/src/core/initializer.js +33 -0
  100. package/dist/src/core/initializer.js.map +1 -0
  101. package/dist/src/core/theme.d.ts +12 -0
  102. package/dist/src/core/theme.js +20 -0
  103. package/dist/src/core/theme.js.map +1 -0
  104. package/dist/src/gemini.d.ts +3 -2
  105. package/dist/src/gemini.js +156 -128
  106. package/dist/src/gemini.js.map +1 -1
  107. package/dist/src/gemini.test.js +190 -47
  108. package/dist/src/gemini.test.js.map +1 -1
  109. package/dist/src/generated/git-commit.d.ts +2 -2
  110. package/dist/src/generated/git-commit.js +2 -2
  111. package/dist/src/nonInteractiveCli.d.ts +2 -1
  112. package/dist/src/nonInteractiveCli.js +101 -72
  113. package/dist/src/nonInteractiveCli.js.map +1 -1
  114. package/dist/src/nonInteractiveCliCommands.d.ts +17 -0
  115. package/dist/src/nonInteractiveCliCommands.js +79 -0
  116. package/dist/src/nonInteractiveCliCommands.js.map +1 -0
  117. package/dist/src/services/BuiltinCommandLoader.js +1 -1
  118. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  119. package/dist/src/services/BuiltinCommandLoader.test.js +30 -18
  120. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  121. package/dist/src/services/FileCommandLoader.d.ts +2 -0
  122. package/dist/src/services/FileCommandLoader.js +7 -0
  123. package/dist/src/services/FileCommandLoader.js.map +1 -1
  124. package/dist/src/services/McpPromptLoader.js +43 -8
  125. package/dist/src/services/McpPromptLoader.js.map +1 -1
  126. package/dist/src/services/McpPromptLoader.test.js +228 -1
  127. package/dist/src/services/McpPromptLoader.test.js.map +1 -1
  128. package/dist/src/services/prompt-processors/shellProcessor.js +8 -1
  129. package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
  130. package/dist/src/test-utils/createExtension.d.ts +15 -0
  131. package/dist/src/test-utils/createExtension.js +25 -0
  132. package/dist/src/test-utils/createExtension.js.map +1 -0
  133. package/dist/src/test-utils/mockCommandContext.js +2 -0
  134. package/dist/src/test-utils/mockCommandContext.js.map +1 -1
  135. package/dist/src/test-utils/render.d.ts +5 -1
  136. package/dist/src/test-utils/render.js +5 -1
  137. package/dist/src/test-utils/render.js.map +1 -1
  138. package/dist/src/ui/App.d.ts +1 -10
  139. package/dist/src/ui/App.js +26 -834
  140. package/dist/src/ui/App.js.map +1 -1
  141. package/dist/src/ui/AppContainer.d.ts +17 -0
  142. package/dist/src/ui/AppContainer.js +1062 -0
  143. package/dist/src/ui/AppContainer.js.map +1 -0
  144. package/dist/src/ui/AppContainer.test.d.ts +6 -0
  145. package/dist/src/ui/AppContainer.test.js +831 -0
  146. package/dist/src/ui/AppContainer.test.js.map +1 -0
  147. package/dist/src/ui/IdeIntegrationNudge.d.ts +2 -2
  148. package/dist/src/ui/IdeIntegrationNudge.js +6 -8
  149. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  150. package/dist/src/ui/{components → auth}/AuthDialog.js +8 -4
  151. package/dist/src/ui/auth/AuthDialog.js.map +1 -0
  152. package/dist/src/ui/auth/AuthDialog.test.d.ts +6 -0
  153. package/dist/src/ui/{components → auth}/AuthDialog.test.js +92 -10
  154. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -0
  155. package/dist/src/ui/{components → auth}/AuthInProgress.js +2 -2
  156. package/dist/src/ui/auth/AuthInProgress.js.map +1 -0
  157. package/dist/src/ui/{hooks/useAuthCommand.d.ts → auth/useAuth.d.ts} +9 -3
  158. package/dist/src/ui/{hooks/useAuthCommand.js → auth/useAuth.js} +49 -14
  159. package/dist/src/ui/auth/useAuth.js.map +1 -0
  160. package/dist/src/ui/commands/aboutCommand.js +9 -3
  161. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  162. package/dist/src/ui/commands/chatCommand.d.ts +2 -0
  163. package/dist/src/ui/commands/chatCommand.js +93 -3
  164. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  165. package/dist/src/ui/commands/clearCommand.js +1 -1
  166. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  167. package/dist/src/ui/commands/corgiCommand.js +1 -0
  168. package/dist/src/ui/commands/corgiCommand.js.map +1 -1
  169. package/dist/src/ui/commands/directoryCommand.js +2 -2
  170. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  171. package/dist/src/ui/commands/extensionsCommand.js +92 -15
  172. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  173. package/dist/src/ui/commands/ideCommand.d.ts +1 -2
  174. package/dist/src/ui/commands/ideCommand.js +19 -10
  175. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  176. package/dist/src/ui/commands/mcpCommand.js +88 -261
  177. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  178. package/dist/src/ui/commands/memoryCommand.js +1 -1
  179. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  180. package/dist/src/ui/commands/modelCommand.js +1 -16
  181. package/dist/src/ui/commands/modelCommand.js.map +1 -1
  182. package/dist/src/ui/commands/modelCommand.test.js +10 -11
  183. package/dist/src/ui/commands/modelCommand.test.js.map +1 -1
  184. package/dist/src/ui/commands/summaryCommand.js +1 -1
  185. package/dist/src/ui/commands/summaryCommand.js.map +1 -1
  186. package/dist/src/ui/commands/toolsCommand.js +10 -24
  187. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  188. package/dist/src/ui/commands/types.d.ts +7 -2
  189. package/dist/src/ui/commands/types.js +0 -1
  190. package/dist/src/ui/commands/types.js.map +1 -1
  191. package/dist/src/ui/components/AboutBox.js +2 -2
  192. package/dist/src/ui/components/AboutBox.js.map +1 -1
  193. package/dist/src/ui/components/AnsiOutput.d.ts +13 -0
  194. package/dist/src/ui/components/AnsiOutput.js +12 -0
  195. package/dist/src/ui/components/AnsiOutput.js.map +1 -0
  196. package/dist/src/ui/components/AnsiOutput.test.d.ts +6 -0
  197. package/dist/src/ui/components/AnsiOutput.test.js +97 -0
  198. package/dist/src/ui/components/AnsiOutput.test.js.map +1 -0
  199. package/dist/src/ui/components/AppHeader.d.ts +10 -0
  200. package/dist/src/ui/components/AppHeader.js +19 -0
  201. package/dist/src/ui/components/AppHeader.js.map +1 -0
  202. package/dist/src/ui/components/AutoAcceptIndicator.js +5 -5
  203. package/dist/src/ui/components/AutoAcceptIndicator.js.map +1 -1
  204. package/dist/src/ui/components/Composer.d.ts +6 -0
  205. package/dist/src/ui/components/Composer.js +54 -0
  206. package/dist/src/ui/components/Composer.js.map +1 -0
  207. package/dist/src/ui/components/Composer.test.d.ts +6 -0
  208. package/dist/src/ui/components/Composer.test.js +337 -0
  209. package/dist/src/ui/components/Composer.test.js.map +1 -0
  210. package/dist/src/ui/components/ConfigInitDisplay.d.ts +6 -0
  211. package/dist/src/ui/components/ConfigInitDisplay.js +38 -0
  212. package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -0
  213. package/dist/src/ui/components/ConsentPrompt.d.ts +13 -0
  214. package/dist/src/ui/components/ConsentPrompt.js +19 -0
  215. package/dist/src/ui/components/ConsentPrompt.js.map +1 -0
  216. package/dist/src/ui/components/ConsentPrompt.test.d.ts +6 -0
  217. package/dist/src/ui/components/ConsentPrompt.test.js +67 -0
  218. package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -0
  219. package/dist/src/ui/components/ConsoleSummaryDisplay.js +2 -2
  220. package/dist/src/ui/components/ConsoleSummaryDisplay.js.map +1 -1
  221. package/dist/src/ui/components/ContextSummaryDisplay.js +3 -3
  222. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  223. package/dist/src/ui/components/ContextUsageDisplay.d.ts +2 -1
  224. package/dist/src/ui/components/ContextUsageDisplay.js +5 -3
  225. package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -1
  226. package/dist/src/ui/components/DebugProfiler.js +2 -2
  227. package/dist/src/ui/components/DebugProfiler.js.map +1 -1
  228. package/dist/src/ui/components/DetailedMessagesDisplay.js +7 -7
  229. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  230. package/dist/src/ui/components/DialogManager.d.ts +12 -0
  231. package/dist/src/ui/components/DialogManager.js +129 -0
  232. package/dist/src/ui/components/DialogManager.js.map +1 -0
  233. package/dist/src/ui/components/EditorSettingsDialog.js +16 -7
  234. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  235. package/dist/src/ui/components/ExitWarning.d.ts +7 -0
  236. package/dist/src/ui/components/ExitWarning.js +9 -0
  237. package/dist/src/ui/components/ExitWarning.js.map +1 -0
  238. package/dist/src/ui/components/FolderTrustDialog.js +22 -9
  239. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  240. package/dist/src/ui/components/FolderTrustDialog.test.js +37 -12
  241. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  242. package/dist/src/ui/components/Footer.d.ts +1 -17
  243. package/dist/src/ui/components/Footer.js +33 -11
  244. package/dist/src/ui/components/Footer.js.map +1 -1
  245. package/dist/src/ui/components/GeminiRespondingSpinner.d.ts +5 -0
  246. package/dist/src/ui/components/GeminiRespondingSpinner.js +7 -2
  247. package/dist/src/ui/components/GeminiRespondingSpinner.js.map +1 -1
  248. package/dist/src/ui/components/Header.js +2 -2
  249. package/dist/src/ui/components/Header.js.map +1 -1
  250. package/dist/src/ui/components/Help.d.ts +1 -1
  251. package/dist/src/ui/components/Help.js +9 -6
  252. package/dist/src/ui/components/Help.js.map +1 -1
  253. package/dist/src/ui/components/Help.test.d.ts +6 -0
  254. package/dist/src/ui/components/Help.test.js +57 -0
  255. package/dist/src/ui/components/Help.test.js.map +1 -0
  256. package/dist/src/ui/components/HistoryItemDisplay.d.ts +5 -4
  257. package/dist/src/ui/components/HistoryItemDisplay.js +13 -4
  258. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  259. package/dist/src/ui/components/HistoryItemDisplay.test.js +90 -9
  260. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  261. package/dist/src/ui/components/IdeTrustChangeDialog.d.ts +11 -0
  262. package/dist/src/ui/components/IdeTrustChangeDialog.js +32 -0
  263. package/dist/src/ui/components/IdeTrustChangeDialog.js.map +1 -0
  264. package/dist/src/ui/components/IdeTrustChangeDialog.test.d.ts +6 -0
  265. package/dist/src/ui/components/IdeTrustChangeDialog.test.js +57 -0
  266. package/dist/src/ui/components/IdeTrustChangeDialog.test.js.map +1 -0
  267. package/dist/src/ui/components/InputPrompt.d.ts +9 -0
  268. package/dist/src/ui/components/InputPrompt.js +192 -45
  269. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  270. package/dist/src/ui/components/LoadingIndicator.js +2 -2
  271. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  272. package/dist/src/ui/components/LoadingIndicator.test.js +4 -0
  273. package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
  274. package/dist/src/ui/components/LoopDetectionConfirmation.d.ts +13 -0
  275. package/dist/src/ui/components/LoopDetectionConfirmation.js +37 -0
  276. package/dist/src/ui/components/LoopDetectionConfirmation.js.map +1 -0
  277. package/dist/src/ui/components/LoopDetectionConfirmation.test.d.ts +6 -0
  278. package/dist/src/ui/components/LoopDetectionConfirmation.test.js +28 -0
  279. package/dist/src/ui/components/LoopDetectionConfirmation.test.js.map +1 -0
  280. package/dist/src/ui/components/MainContent.d.ts +6 -0
  281. package/dist/src/ui/components/MainContent.js +28 -0
  282. package/dist/src/ui/components/MainContent.js.map +1 -0
  283. package/dist/src/ui/components/MemoryUsageDisplay.js +6 -4
  284. package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
  285. package/dist/src/ui/components/ModelDialog.d.ts +11 -0
  286. package/dist/src/ui/components/ModelDialog.js +42 -0
  287. package/dist/src/ui/components/ModelDialog.js.map +1 -0
  288. package/dist/src/ui/components/ModelDialog.test.d.ts +6 -0
  289. package/dist/src/ui/components/ModelDialog.test.js +158 -0
  290. package/dist/src/ui/components/ModelDialog.test.js.map +1 -0
  291. package/dist/src/ui/components/ModelStatsDisplay.js +7 -7
  292. package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
  293. package/dist/src/ui/components/ModelSwitchDialog.js +3 -0
  294. package/dist/src/ui/components/ModelSwitchDialog.js.map +1 -1
  295. package/dist/src/ui/components/ModelSwitchDialog.test.js +3 -0
  296. package/dist/src/ui/components/ModelSwitchDialog.test.js.map +1 -1
  297. package/dist/src/ui/components/Notifications.d.ts +6 -0
  298. package/dist/src/ui/components/Notifications.js +23 -0
  299. package/dist/src/ui/components/Notifications.js.map +1 -0
  300. package/dist/src/ui/components/OpenAIKeyPrompt.js +63 -39
  301. package/dist/src/ui/components/OpenAIKeyPrompt.js.map +1 -1
  302. package/dist/src/ui/components/OpenAIKeyPrompt.test.js +8 -1
  303. package/dist/src/ui/components/OpenAIKeyPrompt.test.js.map +1 -1
  304. package/dist/src/ui/components/PermissionsModifyTrustDialog.d.ts +13 -0
  305. package/dist/src/ui/components/PermissionsModifyTrustDialog.js +48 -0
  306. package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -0
  307. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.d.ts +6 -0
  308. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +154 -0
  309. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -0
  310. package/dist/src/ui/components/PrepareLabel.d.ts +5 -5
  311. package/dist/src/ui/components/PrepareLabel.js +67 -11
  312. package/dist/src/ui/components/PrepareLabel.js.map +1 -1
  313. package/dist/src/ui/components/PrepareLabel.test.d.ts +6 -0
  314. package/dist/src/ui/components/PrepareLabel.test.js +71 -0
  315. package/dist/src/ui/components/PrepareLabel.test.js.map +1 -0
  316. package/dist/src/ui/components/ProQuotaDialog.d.ts +13 -0
  317. package/dist/src/ui/components/ProQuotaDialog.js +23 -0
  318. package/dist/src/ui/components/ProQuotaDialog.js.map +1 -0
  319. package/dist/src/ui/components/ProQuotaDialog.test.d.ts +6 -0
  320. package/dist/src/ui/components/ProQuotaDialog.test.js +58 -0
  321. package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -0
  322. package/dist/src/ui/components/QueuedMessageDisplay.d.ts +9 -0
  323. package/dist/src/ui/components/QueuedMessageDisplay.js +20 -0
  324. package/dist/src/ui/components/QueuedMessageDisplay.js.map +1 -0
  325. package/dist/src/ui/components/QueuedMessageDisplay.test.d.ts +6 -0
  326. package/dist/src/ui/components/QueuedMessageDisplay.test.js +56 -0
  327. package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -0
  328. package/dist/src/ui/components/QuitConfirmationDialog.js +4 -0
  329. package/dist/src/ui/components/QuitConfirmationDialog.js.map +1 -1
  330. package/dist/src/ui/components/QuittingDisplay.d.ts +6 -0
  331. package/dist/src/ui/components/QuittingDisplay.js +20 -0
  332. package/dist/src/ui/components/QuittingDisplay.js.map +1 -0
  333. package/dist/src/ui/components/QwenOAuthProgress.js +5 -4
  334. package/dist/src/ui/components/QwenOAuthProgress.js.map +1 -1
  335. package/dist/src/ui/components/QwenOAuthProgress.test.js +82 -11
  336. package/dist/src/ui/components/QwenOAuthProgress.test.js.map +1 -1
  337. package/dist/src/ui/components/SettingsDialog.d.ts +2 -1
  338. package/dist/src/ui/components/SettingsDialog.js +97 -23
  339. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  340. package/dist/src/ui/components/SettingsDialog.test.js +474 -84
  341. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  342. package/dist/src/ui/components/ShellConfirmationDialog.js +5 -2
  343. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  344. package/dist/src/ui/components/ShellInputPrompt.d.ts +11 -0
  345. package/dist/src/ui/components/ShellInputPrompt.js +36 -0
  346. package/dist/src/ui/components/ShellInputPrompt.js.map +1 -0
  347. package/dist/src/ui/components/ShellModeIndicator.js +2 -2
  348. package/dist/src/ui/components/ShellModeIndicator.js.map +1 -1
  349. package/dist/src/ui/components/ShowMoreLines.js +2 -2
  350. package/dist/src/ui/components/ShowMoreLines.js.map +1 -1
  351. package/dist/src/ui/components/StatsDisplay.js +6 -6
  352. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  353. package/dist/src/ui/components/SuggestionsDisplay.d.ts +7 -2
  354. package/dist/src/ui/components/SuggestionsDisplay.js +17 -17
  355. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  356. package/dist/src/ui/components/ThemeDialog.js +14 -29
  357. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  358. package/dist/src/ui/components/ThemeDialog.test.d.ts +6 -0
  359. package/dist/src/ui/components/ThemeDialog.test.js +75 -0
  360. package/dist/src/ui/components/ThemeDialog.test.js.map +1 -0
  361. package/dist/src/ui/components/Tips.js +2 -2
  362. package/dist/src/ui/components/Tips.js.map +1 -1
  363. package/dist/src/ui/components/ToolStatsDisplay.js +4 -4
  364. package/dist/src/ui/components/ToolStatsDisplay.js.map +1 -1
  365. package/dist/src/ui/components/UpdateNotification.js +2 -2
  366. package/dist/src/ui/components/UpdateNotification.js.map +1 -1
  367. package/dist/src/ui/components/WelcomeBackDialog.js +2 -0
  368. package/dist/src/ui/components/WelcomeBackDialog.js.map +1 -1
  369. package/dist/src/ui/components/WorkspaceMigrationDialog.js +14 -11
  370. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +1 -1
  371. package/dist/src/ui/components/messages/CompressionMessage.d.ts +1 -2
  372. package/dist/src/ui/components/messages/CompressionMessage.js +37 -8
  373. package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
  374. package/dist/src/ui/components/messages/CompressionMessage.test.d.ts +6 -0
  375. package/dist/src/ui/components/messages/CompressionMessage.test.js +160 -0
  376. package/dist/src/ui/components/messages/CompressionMessage.test.js.map +1 -0
  377. package/dist/src/ui/components/messages/DiffRenderer.d.ts +2 -1
  378. package/dist/src/ui/components/messages/DiffRenderer.js +14 -22
  379. package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
  380. package/dist/src/ui/components/messages/ErrorMessage.js +2 -2
  381. package/dist/src/ui/components/messages/ErrorMessage.js.map +1 -1
  382. package/dist/src/ui/components/messages/GeminiMessage.js +2 -2
  383. package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
  384. package/dist/src/ui/components/messages/InfoMessage.js +2 -2
  385. package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
  386. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +53 -21
  387. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  388. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +0 -8
  389. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
  390. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +3 -2
  391. package/dist/src/ui/components/messages/ToolGroupMessage.js +18 -10
  392. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  393. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +17 -15
  394. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  395. package/dist/src/ui/components/messages/ToolMessage.d.ts +3 -1
  396. package/dist/src/ui/components/messages/ToolMessage.js +53 -11
  397. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  398. package/dist/src/ui/components/messages/ToolMessage.test.js +34 -1
  399. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
  400. package/dist/src/ui/components/messages/UserMessage.js +3 -4
  401. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  402. package/dist/src/ui/components/messages/UserShellMessage.js +2 -2
  403. package/dist/src/ui/components/messages/UserShellMessage.js.map +1 -1
  404. package/dist/src/ui/components/messages/WarningMessage.d.ts +11 -0
  405. package/dist/src/ui/components/messages/WarningMessage.js +10 -0
  406. package/dist/src/ui/components/messages/WarningMessage.js.map +1 -0
  407. package/dist/src/ui/components/shared/BaseSelectionList.d.ts +38 -0
  408. package/dist/src/ui/components/shared/BaseSelectionList.js +72 -0
  409. package/dist/src/ui/components/shared/BaseSelectionList.js.map +1 -0
  410. package/dist/src/ui/components/shared/BaseSelectionList.test.d.ts +6 -0
  411. package/dist/src/ui/components/shared/BaseSelectionList.test.js +376 -0
  412. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -0
  413. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.d.ts +35 -0
  414. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js +13 -0
  415. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js.map +1 -0
  416. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.d.ts +6 -0
  417. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js +79 -0
  418. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js.map +1 -0
  419. package/dist/src/ui/components/shared/EnumSelector.d.ts +18 -0
  420. package/dist/src/ui/components/shared/EnumSelector.js +44 -0
  421. package/dist/src/ui/components/shared/EnumSelector.js.map +1 -0
  422. package/dist/src/ui/components/shared/EnumSelector.test.d.ts +6 -0
  423. package/dist/src/ui/components/shared/EnumSelector.test.js +70 -0
  424. package/dist/src/ui/components/shared/EnumSelector.test.js.map +1 -0
  425. package/dist/src/ui/components/shared/MaxSizedBox.js +2 -2
  426. package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
  427. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +2 -3
  428. package/dist/src/ui/components/shared/RadioButtonSelect.js +10 -105
  429. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  430. package/dist/src/ui/components/shared/RadioButtonSelect.test.js +115 -92
  431. package/dist/src/ui/components/shared/RadioButtonSelect.test.js.map +1 -1
  432. package/dist/src/ui/components/shared/ScopeSelector.d.ts +19 -0
  433. package/dist/src/ui/components/shared/ScopeSelector.js +14 -0
  434. package/dist/src/ui/components/shared/ScopeSelector.js.map +1 -0
  435. package/dist/src/ui/components/shared/text-buffer.d.ts +25 -2
  436. package/dist/src/ui/components/shared/text-buffer.js +296 -187
  437. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  438. package/dist/src/ui/components/subagents/create/AgentCreationWizard.js +2 -3
  439. package/dist/src/ui/components/subagents/create/AgentCreationWizard.js.map +1 -1
  440. package/dist/src/ui/components/subagents/create/ColorSelector.js +3 -2
  441. package/dist/src/ui/components/subagents/create/ColorSelector.js.map +1 -1
  442. package/dist/src/ui/components/subagents/create/CreationSummary.js +6 -5
  443. package/dist/src/ui/components/subagents/create/CreationSummary.js.map +1 -1
  444. package/dist/src/ui/components/subagents/create/DescriptionInput.js +2 -3
  445. package/dist/src/ui/components/subagents/create/DescriptionInput.js.map +1 -1
  446. package/dist/src/ui/components/subagents/create/GenerationMethodSelector.js +1 -0
  447. package/dist/src/ui/components/subagents/create/GenerationMethodSelector.js.map +1 -1
  448. package/dist/src/ui/components/subagents/create/LocationSelector.js +1 -0
  449. package/dist/src/ui/components/subagents/create/LocationSelector.js.map +1 -1
  450. package/dist/src/ui/components/subagents/create/TextEntryStep.js +2 -2
  451. package/dist/src/ui/components/subagents/create/TextEntryStep.js.map +1 -1
  452. package/dist/src/ui/components/subagents/create/ToolSelector.js +4 -3
  453. package/dist/src/ui/components/subagents/create/ToolSelector.js.map +1 -1
  454. package/dist/src/ui/components/subagents/manage/ActionSelectionStep.js +4 -4
  455. package/dist/src/ui/components/subagents/manage/ActionSelectionStep.js.map +1 -1
  456. package/dist/src/ui/components/subagents/manage/AgentEditStep.js +1 -0
  457. package/dist/src/ui/components/subagents/manage/AgentEditStep.js.map +1 -1
  458. package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js +1 -2
  459. package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js.map +1 -1
  460. package/dist/src/ui/components/subagents/manage/AgentsManagerDialog.js +1 -2
  461. package/dist/src/ui/components/subagents/manage/AgentsManagerDialog.js.map +1 -1
  462. package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js +9 -10
  463. package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js.map +1 -1
  464. package/dist/src/ui/components/views/ExtensionsList.d.ts +6 -0
  465. package/dist/src/ui/components/views/ExtensionsList.js +47 -0
  466. package/dist/src/ui/components/views/ExtensionsList.js.map +1 -0
  467. package/dist/src/ui/components/views/ExtensionsList.test.d.ts +6 -0
  468. package/dist/src/ui/components/views/ExtensionsList.test.js +97 -0
  469. package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -0
  470. package/dist/src/ui/components/views/McpStatus.d.ts +27 -0
  471. package/dist/src/ui/components/views/McpStatus.js +77 -0
  472. package/dist/src/ui/components/views/McpStatus.js.map +1 -0
  473. package/dist/src/ui/components/views/McpStatus.test.d.ts +6 -0
  474. package/dist/src/ui/components/views/McpStatus.test.js +117 -0
  475. package/dist/src/ui/components/views/McpStatus.test.js.map +1 -0
  476. package/dist/src/ui/components/views/ToolsList.d.ts +14 -0
  477. package/dist/src/ui/components/views/ToolsList.js +7 -0
  478. package/dist/src/ui/components/views/ToolsList.js.map +1 -0
  479. package/dist/src/ui/components/views/ToolsList.test.d.ts +6 -0
  480. package/dist/src/ui/components/views/ToolsList.test.js +45 -0
  481. package/dist/src/ui/components/views/ToolsList.test.js.map +1 -0
  482. package/dist/src/ui/constants.d.ts +1 -0
  483. package/dist/src/ui/constants.js +1 -0
  484. package/dist/src/ui/constants.js.map +1 -1
  485. package/dist/src/ui/contexts/AppContext.d.ts +11 -0
  486. package/dist/src/ui/contexts/AppContext.js +15 -0
  487. package/dist/src/ui/contexts/AppContext.js.map +1 -0
  488. package/dist/src/ui/contexts/ConfigContext.d.ts +9 -0
  489. package/dist/src/ui/contexts/ConfigContext.js +16 -0
  490. package/dist/src/ui/contexts/ConfigContext.js.map +1 -0
  491. package/dist/src/ui/contexts/KeypressContext.d.ts +3 -0
  492. package/dist/src/ui/contexts/KeypressContext.js +309 -44
  493. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  494. package/dist/src/ui/contexts/KeypressContext.test.js +288 -2
  495. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  496. package/dist/src/ui/contexts/SessionContext.d.ts +6 -0
  497. package/dist/src/ui/contexts/SessionContext.js +107 -5
  498. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  499. package/dist/src/ui/contexts/ShellFocusContext.d.ts +7 -0
  500. package/dist/src/ui/contexts/ShellFocusContext.js +9 -0
  501. package/dist/src/ui/contexts/ShellFocusContext.js.map +1 -0
  502. package/dist/src/ui/contexts/UIActionsContext.d.ts +45 -0
  503. package/dist/src/ui/contexts/UIActionsContext.js +21 -0
  504. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -0
  505. package/dist/src/ui/contexts/UIStateContext.d.ts +117 -0
  506. package/dist/src/ui/contexts/UIStateContext.js +17 -0
  507. package/dist/src/ui/contexts/UIStateContext.js.map +1 -0
  508. package/dist/src/ui/hooks/atCommandProcessor.js +12 -12
  509. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  510. package/dist/src/ui/hooks/atCommandProcessor.test.js +21 -19
  511. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  512. package/dist/src/ui/hooks/keyToAnsi.d.ts +15 -0
  513. package/dist/src/ui/hooks/keyToAnsi.js +67 -0
  514. package/dist/src/ui/hooks/keyToAnsi.js.map +1 -0
  515. package/dist/src/ui/hooks/shellCommandProcessor.d.ts +2 -1
  516. package/dist/src/ui/hooks/shellCommandProcessor.js +65 -15
  517. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  518. package/dist/src/ui/hooks/shellCommandProcessor.test.js +196 -17
  519. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  520. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +20 -2
  521. package/dist/src/ui/hooks/slashCommandProcessor.js +41 -82
  522. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  523. package/dist/src/ui/hooks/useAtCompletion.js +1 -1
  524. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  525. package/dist/src/ui/hooks/useAutoAcceptIndicator.d.ts +3 -2
  526. package/dist/src/ui/hooks/useAutoAcceptIndicator.js +20 -18
  527. package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -1
  528. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +43 -0
  529. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
  530. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +21 -0
  531. package/dist/src/ui/hooks/useExtensionUpdates.js +116 -0
  532. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -0
  533. package/dist/src/ui/hooks/useExtensionUpdates.test.d.ts +6 -0
  534. package/dist/src/ui/hooks/useExtensionUpdates.test.js +243 -0
  535. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -0
  536. package/dist/src/ui/hooks/useFocus.js +10 -0
  537. package/dist/src/ui/hooks/useFocus.js.map +1 -1
  538. package/dist/src/ui/hooks/useFolderTrust.js +6 -10
  539. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  540. package/dist/src/ui/hooks/useGeminiStream.d.ts +14 -3
  541. package/dist/src/ui/hooks/useGeminiStream.js +173 -79
  542. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  543. package/dist/src/ui/hooks/useGitBranchName.js +15 -18
  544. package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
  545. package/dist/src/ui/hooks/useGitBranchName.test.js +49 -53
  546. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  547. package/dist/src/ui/hooks/useIdeTrustListener.d.ts +16 -0
  548. package/dist/src/ui/hooks/useIdeTrustListener.js +65 -0
  549. package/dist/src/ui/hooks/useIdeTrustListener.js.map +1 -0
  550. package/dist/src/ui/hooks/useIdeTrustListener.test.d.ts +6 -0
  551. package/dist/src/ui/hooks/useIdeTrustListener.test.js +183 -0
  552. package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -0
  553. package/dist/src/ui/hooks/useInputHistoryStore.d.ts +19 -0
  554. package/dist/src/ui/hooks/useInputHistoryStore.js +81 -0
  555. package/dist/src/ui/hooks/useInputHistoryStore.js.map +1 -0
  556. package/dist/src/ui/hooks/useInputHistoryStore.test.d.ts +6 -0
  557. package/dist/src/ui/hooks/useInputHistoryStore.test.js +234 -0
  558. package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -0
  559. package/dist/src/ui/hooks/useLoadingIndicator.d.ts +1 -1
  560. package/dist/src/ui/hooks/useLoadingIndicator.js +2 -2
  561. package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
  562. package/dist/src/ui/hooks/useLoadingIndicator.test.js +2 -2
  563. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  564. package/dist/src/ui/hooks/useMemoryMonitor.d.ts +13 -0
  565. package/dist/src/ui/hooks/useMemoryMonitor.js +28 -0
  566. package/dist/src/ui/hooks/useMemoryMonitor.js.map +1 -0
  567. package/dist/src/ui/hooks/useMemoryMonitor.test.d.ts +6 -0
  568. package/dist/src/ui/hooks/useMemoryMonitor.test.js +57 -0
  569. package/dist/src/ui/hooks/useMemoryMonitor.test.js.map +1 -0
  570. package/dist/src/ui/hooks/useMessageQueue.d.ts +2 -1
  571. package/dist/src/ui/hooks/useMessageQueue.js +5 -3
  572. package/dist/src/ui/hooks/useMessageQueue.js.map +1 -1
  573. package/dist/src/ui/hooks/useMessageQueue.test.js +9 -0
  574. package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
  575. package/dist/src/ui/hooks/useModelCommand.d.ts +12 -0
  576. package/dist/src/ui/hooks/useModelCommand.js +21 -0
  577. package/dist/src/ui/hooks/useModelCommand.js.map +1 -0
  578. package/dist/src/ui/hooks/useModelCommand.test.d.ts +6 -0
  579. package/dist/src/ui/hooks/useModelCommand.test.js +35 -0
  580. package/dist/src/ui/hooks/useModelCommand.test.js.map +1 -0
  581. package/dist/src/ui/hooks/usePermissionsModifyTrust.d.ts +17 -0
  582. package/dist/src/ui/hooks/usePermissionsModifyTrust.js +78 -0
  583. package/dist/src/ui/hooks/usePermissionsModifyTrust.js.map +1 -0
  584. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.d.ts +6 -0
  585. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +182 -0
  586. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -0
  587. package/dist/src/ui/hooks/usePhraseCycler.d.ts +1 -1
  588. package/dist/src/ui/hooks/usePhraseCycler.js +11 -8
  589. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  590. package/dist/src/ui/hooks/useQuotaAndFallback.d.ts +21 -0
  591. package/dist/src/ui/hooks/useQuotaAndFallback.js +122 -0
  592. package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -0
  593. package/dist/src/ui/hooks/useQuotaAndFallback.test.d.ts +6 -0
  594. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +269 -0
  595. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -0
  596. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +3 -2
  597. package/dist/src/ui/hooks/useReactToolScheduler.js +23 -17
  598. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  599. package/dist/src/ui/hooks/useReverseSearchCompletion.d.ts +1 -1
  600. package/dist/src/ui/hooks/useReverseSearchCompletion.js +67 -20
  601. package/dist/src/ui/hooks/useReverseSearchCompletion.js.map +1 -1
  602. package/dist/src/ui/hooks/useSelectionList.d.ts +34 -0
  603. package/dist/src/ui/hooks/useSelectionList.js +245 -0
  604. package/dist/src/ui/hooks/useSelectionList.js.map +1 -0
  605. package/dist/src/ui/hooks/useSelectionList.test.d.ts +6 -0
  606. package/dist/src/ui/hooks/useSelectionList.test.js +701 -0
  607. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -0
  608. package/dist/src/ui/hooks/useSlashCompletion.d.ts +1 -1
  609. package/dist/src/ui/hooks/useSlashCompletion.js +281 -67
  610. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  611. package/dist/src/ui/hooks/useSlashCompletion.test.d.ts +4 -1
  612. package/dist/src/ui/hooks/useSlashCompletion.test.js +390 -65
  613. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  614. package/dist/src/ui/hooks/useStateAndRef.d.ts +1 -1
  615. package/dist/src/ui/hooks/useStateAndRef.js +2 -2
  616. package/dist/src/ui/hooks/useStateAndRef.js.map +1 -1
  617. package/dist/src/ui/hooks/useThemeCommand.d.ts +1 -1
  618. package/dist/src/ui/hooks/useThemeCommand.js +3 -14
  619. package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
  620. package/dist/src/ui/hooks/useToolScheduler.test.js +64 -291
  621. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  622. package/dist/src/ui/hooks/useWelcomeBack.js +2 -2
  623. package/dist/src/ui/hooks/useWelcomeBack.js.map +1 -1
  624. package/dist/src/ui/hooks/useWorkspaceMigration.js +2 -1
  625. package/dist/src/ui/hooks/useWorkspaceMigration.js.map +1 -1
  626. package/dist/src/ui/keyMatchers.test.js +17 -0
  627. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  628. package/dist/src/ui/layouts/DefaultAppLayout.d.ts +9 -0
  629. package/dist/src/ui/layouts/DefaultAppLayout.js +13 -0
  630. package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -0
  631. package/dist/src/ui/layouts/ScreenReaderAppLayout.d.ts +7 -0
  632. package/dist/src/ui/layouts/ScreenReaderAppLayout.js +14 -0
  633. package/dist/src/ui/layouts/ScreenReaderAppLayout.js.map +1 -0
  634. package/dist/src/ui/models/availableModels.d.ts +3 -0
  635. package/dist/src/ui/models/availableModels.js +27 -3
  636. package/dist/src/ui/models/availableModels.js.map +1 -1
  637. package/dist/src/ui/noninteractive/nonInteractiveUi.d.ts +12 -0
  638. package/dist/src/ui/noninteractive/nonInteractiveUi.js +28 -0
  639. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -0
  640. package/dist/src/ui/state/extensions.d.ts +42 -0
  641. package/dist/src/ui/state/extensions.js +62 -0
  642. package/dist/src/ui/state/extensions.js.map +1 -0
  643. package/dist/src/ui/themes/ayu.js +1 -1
  644. package/dist/src/ui/themes/dracula.js +2 -2
  645. package/dist/src/ui/themes/github-dark.js +1 -1
  646. package/dist/src/ui/themes/theme.js +19 -19
  647. package/dist/src/ui/themes/theme.js.map +1 -1
  648. package/dist/src/ui/types.d.ts +79 -3
  649. package/dist/src/ui/types.js +14 -0
  650. package/dist/src/ui/types.js.map +1 -1
  651. package/dist/src/ui/utils/CodeColorizer.js +3 -2
  652. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  653. package/dist/src/ui/utils/InlineMarkdownRenderer.js +7 -7
  654. package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
  655. package/dist/src/ui/utils/MarkdownDisplay.js +11 -11
  656. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  657. package/dist/src/ui/utils/MarkdownDisplay.test.js +95 -87
  658. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  659. package/dist/src/ui/utils/TableRenderer.js +4 -4
  660. package/dist/src/ui/utils/TableRenderer.js.map +1 -1
  661. package/dist/src/ui/utils/clipboardUtils.js +5 -6
  662. package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
  663. package/dist/src/ui/utils/displayUtils.d.ts +1 -0
  664. package/dist/src/ui/utils/displayUtils.js +7 -4
  665. package/dist/src/ui/utils/displayUtils.js.map +1 -1
  666. package/dist/src/ui/utils/displayUtils.test.js +37 -18
  667. package/dist/src/ui/utils/displayUtils.test.js.map +1 -1
  668. package/dist/src/ui/utils/highlight.d.ts +11 -0
  669. package/dist/src/ui/utils/highlight.js +78 -0
  670. package/dist/src/ui/utils/highlight.js.map +1 -0
  671. package/dist/src/ui/utils/highlight.test.d.ts +6 -0
  672. package/dist/src/ui/utils/highlight.test.js +120 -0
  673. package/dist/src/ui/utils/highlight.test.js.map +1 -0
  674. package/dist/src/ui/utils/kittyProtocolDetector.js +39 -29
  675. package/dist/src/ui/utils/kittyProtocolDetector.js.map +1 -1
  676. package/dist/src/ui/utils/platformConstants.d.ts +24 -1
  677. package/dist/src/ui/utils/platformConstants.js +26 -1
  678. package/dist/src/ui/utils/platformConstants.js.map +1 -1
  679. package/dist/src/ui/utils/textUtils.d.ts +10 -0
  680. package/dist/src/ui/utils/textUtils.js +108 -3
  681. package/dist/src/ui/utils/textUtils.js.map +1 -1
  682. package/dist/src/ui/utils/textUtils.test.d.ts +6 -0
  683. package/dist/src/ui/utils/textUtils.test.js +132 -0
  684. package/dist/src/ui/utils/textUtils.test.js.map +1 -0
  685. package/dist/src/utils/commands.d.ts +20 -0
  686. package/dist/src/utils/commands.js +53 -0
  687. package/dist/src/utils/commands.js.map +1 -0
  688. package/dist/src/utils/commands.test.d.ts +6 -0
  689. package/dist/src/utils/commands.test.js +115 -0
  690. package/dist/src/utils/commands.test.js.map +1 -0
  691. package/dist/src/utils/commentJson.d.ts +9 -0
  692. package/dist/src/utils/commentJson.js +48 -0
  693. package/dist/src/utils/commentJson.js.map +1 -0
  694. package/dist/src/utils/commentJson.test.d.ts +6 -0
  695. package/dist/src/utils/commentJson.test.js +146 -0
  696. package/dist/src/utils/commentJson.test.js.map +1 -0
  697. package/dist/src/utils/deepMerge.d.ts +9 -0
  698. package/dist/src/utils/deepMerge.js +58 -0
  699. package/dist/src/utils/deepMerge.js.map +1 -0
  700. package/dist/src/utils/deepMerge.test.d.ts +6 -0
  701. package/dist/src/utils/deepMerge.test.js +143 -0
  702. package/dist/src/utils/deepMerge.test.js.map +1 -0
  703. package/dist/src/utils/envVarResolver.d.ts +39 -0
  704. package/dist/src/utils/envVarResolver.js +97 -0
  705. package/dist/src/utils/envVarResolver.js.map +1 -0
  706. package/dist/src/utils/envVarResolver.test.d.ts +6 -0
  707. package/dist/src/utils/envVarResolver.test.js +221 -0
  708. package/dist/src/utils/envVarResolver.test.js.map +1 -0
  709. package/dist/src/utils/errors.d.ts +21 -0
  710. package/dist/src/utils/errors.js +93 -0
  711. package/dist/src/utils/errors.js.map +1 -1
  712. package/dist/src/utils/errors.test.d.ts +6 -0
  713. package/dist/src/utils/errors.test.js +303 -0
  714. package/dist/src/utils/errors.test.js.map +1 -0
  715. package/dist/src/utils/events.d.ts +2 -1
  716. package/dist/src/utils/events.js +1 -0
  717. package/dist/src/utils/events.js.map +1 -1
  718. package/dist/src/utils/math.d.ts +13 -0
  719. package/dist/src/utils/math.js +14 -0
  720. package/dist/src/utils/math.js.map +1 -0
  721. package/dist/src/utils/processUtils.d.ts +13 -0
  722. package/dist/src/utils/processUtils.js +18 -0
  723. package/dist/src/utils/processUtils.js.map +1 -0
  724. package/dist/src/utils/processUtils.test.d.ts +6 -0
  725. package/dist/src/utils/processUtils.test.js +20 -0
  726. package/dist/src/utils/processUtils.test.js.map +1 -0
  727. package/dist/src/utils/relaunch.d.ts +7 -0
  728. package/dist/src/utils/relaunch.js +57 -0
  729. package/dist/src/utils/relaunch.js.map +1 -0
  730. package/dist/src/utils/relaunch.test.d.ts +6 -0
  731. package/dist/src/utils/relaunch.test.js +273 -0
  732. package/dist/src/utils/relaunch.test.js.map +1 -0
  733. package/dist/src/utils/sandbox.d.ts +1 -1
  734. package/dist/src/utils/sandbox.js +42 -17
  735. package/dist/src/utils/sandbox.js.map +1 -1
  736. package/dist/src/utils/settingsUtils.d.ts +16 -6
  737. package/dist/src/utils/settingsUtils.js +35 -25
  738. package/dist/src/utils/settingsUtils.js.map +1 -1
  739. package/dist/src/utils/settingsUtils.test.js +455 -158
  740. package/dist/src/utils/settingsUtils.test.js.map +1 -1
  741. package/dist/src/utils/userStartupWarnings.d.ts +1 -1
  742. package/dist/src/utils/userStartupWarnings.js +1 -1
  743. package/dist/src/utils/userStartupWarnings.js.map +1 -1
  744. package/dist/src/utils/windowTitle.d.ts +12 -0
  745. package/dist/src/utils/windowTitle.js +19 -0
  746. package/dist/src/utils/windowTitle.js.map +1 -0
  747. package/dist/src/utils/windowTitle.test.d.ts +6 -0
  748. package/dist/src/utils/windowTitle.test.js +49 -0
  749. package/dist/src/utils/windowTitle.test.js.map +1 -0
  750. package/dist/src/validateNonInterActiveAuth.d.ts +4 -2
  751. package/dist/src/validateNonInterActiveAuth.js +33 -12
  752. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  753. package/dist/src/zed-integration/fileSystemService.d.ts +1 -0
  754. package/dist/src/zed-integration/fileSystemService.js +3 -0
  755. package/dist/src/zed-integration/fileSystemService.js.map +1 -1
  756. package/dist/src/zed-integration/schema.d.ts +310 -310
  757. package/dist/src/zed-integration/zedIntegration.d.ts +8 -1
  758. package/dist/src/zed-integration/zedIntegration.js +32 -15
  759. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  760. package/dist/tsconfig.tsbuildinfo +1 -1
  761. package/package.json +15 -10
  762. package/dist/src/ui/components/AuthDialog.js.map +0 -1
  763. package/dist/src/ui/components/AuthDialog.test.js.map +0 -1
  764. package/dist/src/ui/components/AuthInProgress.js.map +0 -1
  765. package/dist/src/ui/components/ModelSelectionDialog.d.ts +0 -14
  766. package/dist/src/ui/components/ModelSelectionDialog.js +0 -26
  767. package/dist/src/ui/components/ModelSelectionDialog.js.map +0 -1
  768. package/dist/src/ui/components/ModelSelectionDialog.test.js +0 -124
  769. package/dist/src/ui/components/ModelSelectionDialog.test.js.map +0 -1
  770. package/dist/src/ui/hooks/useAuthCommand.js.map +0 -1
  771. /package/dist/src/{ui/components/AuthDialog.test.d.ts → commands/extensions/new.test.d.ts} +0 -0
  772. /package/dist/src/ui/{components → auth}/AuthDialog.d.ts +0 -0
  773. /package/dist/src/ui/{components → auth}/AuthInProgress.d.ts +0 -0
@@ -8,15 +8,20 @@ import { vi } from 'vitest';
8
8
  import { validateAuthMethod } from './auth.js';
9
9
  vi.mock('./settings.js', () => ({
10
10
  loadEnvironment: vi.fn(),
11
+ loadSettings: vi.fn().mockReturnValue({
12
+ merged: vi.fn().mockReturnValue({}),
13
+ }),
11
14
  }));
12
15
  describe('validateAuthMethod', () => {
13
- const originalEnv = process.env;
14
16
  beforeEach(() => {
15
17
  vi.resetModules();
16
- process.env = {};
18
+ vi.stubEnv('GEMINI_API_KEY', undefined);
19
+ vi.stubEnv('GOOGLE_CLOUD_PROJECT', undefined);
20
+ vi.stubEnv('GOOGLE_CLOUD_LOCATION', undefined);
21
+ vi.stubEnv('GOOGLE_API_KEY', undefined);
17
22
  });
18
23
  afterEach(() => {
19
- process.env = originalEnv;
24
+ vi.unstubAllEnvs();
20
25
  });
21
26
  it('should return null for LOGIN_WITH_GOOGLE', () => {
22
27
  expect(validateAuthMethod(AuthType.LOGIN_WITH_GOOGLE)).toBeNull();
@@ -26,24 +31,27 @@ describe('validateAuthMethod', () => {
26
31
  });
27
32
  describe('USE_GEMINI', () => {
28
33
  it('should return null if GEMINI_API_KEY is set', () => {
29
- process.env['GEMINI_API_KEY'] = 'test-key';
34
+ vi.stubEnv('GEMINI_API_KEY', 'test-key');
30
35
  expect(validateAuthMethod(AuthType.USE_GEMINI)).toBeNull();
31
36
  });
32
37
  it('should return an error message if GEMINI_API_KEY is not set', () => {
38
+ vi.stubEnv('GEMINI_API_KEY', undefined);
33
39
  expect(validateAuthMethod(AuthType.USE_GEMINI)).toBe('GEMINI_API_KEY environment variable not found. Add that to your environment and try again (no reload needed if using .env)!');
34
40
  });
35
41
  });
36
42
  describe('USE_VERTEX_AI', () => {
37
43
  it('should return null if GOOGLE_CLOUD_PROJECT and GOOGLE_CLOUD_LOCATION are set', () => {
38
- process.env['GOOGLE_CLOUD_PROJECT'] = 'test-project';
39
- process.env['GOOGLE_CLOUD_LOCATION'] = 'test-location';
44
+ vi.stubEnv('GOOGLE_CLOUD_PROJECT', 'test-project');
45
+ vi.stubEnv('GOOGLE_CLOUD_LOCATION', 'test-location');
40
46
  expect(validateAuthMethod(AuthType.USE_VERTEX_AI)).toBeNull();
41
47
  });
42
48
  it('should return null if GOOGLE_API_KEY is set', () => {
43
- process.env['GOOGLE_API_KEY'] = 'test-api-key';
49
+ vi.stubEnv('GOOGLE_API_KEY', 'test-api-key');
44
50
  expect(validateAuthMethod(AuthType.USE_VERTEX_AI)).toBeNull();
45
51
  });
46
52
  it('should return an error message if no required environment variables are set', () => {
53
+ vi.stubEnv('GOOGLE_CLOUD_PROJECT', undefined);
54
+ vi.stubEnv('GOOGLE_CLOUD_LOCATION', undefined);
47
55
  expect(validateAuthMethod(AuthType.USE_VERTEX_AI)).toBe('When using Vertex AI, you must specify either:\n' +
48
56
  '• GOOGLE_CLOUD_PROJECT and GOOGLE_CLOUD_LOCATION environment variables.\n' +
49
57
  '• GOOGLE_API_KEY environment variable (if using express mode).\n' +
@@ -1 +1 @@
1
- {"version":3,"file":"auth.test.js","sourceRoot":"","sources":["../../../src/config/auth.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;CACzB,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAEhC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,UAAU,CAAC;YAC3C,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAClD,6HAA6H,CAC9H,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;YACtF,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,cAAc,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,eAAe,CAAC;YACvD,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC;YAC/C,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;YACrF,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CACrD,kDAAkD;gBAChD,2EAA2E;gBAC3E,kEAAkE;gBAClE,yEAAyE,CAC5E,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAC/C,+BAA+B,CAChC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"auth.test.js","sourceRoot":"","sources":["../../../src/config/auth.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;IACxB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;QACpC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;KACpC,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,YAAY,EAAE,CAAC;QAClB,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QACxC,EAAE,CAAC,OAAO,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;QAC9C,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC;QAC/C,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;YACzC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;YACxC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAClD,6HAA6H,CAC9H,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;YACtF,EAAE,CAAC,OAAO,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC;YACnD,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE,eAAe,CAAC,CAAC;YACrD,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;YAC7C,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;YACrF,EAAE,CAAC,OAAO,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;YAC9C,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC;YAC/C,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CACrD,kDAAkD;gBAChD,2EAA2E;gBAC3E,kEAAkE;gBAClE,yEAAyE,CAC5E,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAC/C,+BAA+B,CAChC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -7,7 +7,9 @@ import type { FileFilteringOptions } from '@rdmind/rdmind-core';
7
7
  import { Config, FileDiscoveryService } from '@rdmind/rdmind-core';
8
8
  import type { Settings } from './settings.js';
9
9
  import type { Extension } from './extension.js';
10
+ import type { ExtensionEnablementManager } from './extensions/extensionEnablement.js';
10
11
  export interface CliArgs {
12
+ query: string | undefined;
11
13
  model: string | undefined;
12
14
  sandbox: boolean | string | undefined;
13
15
  sandboxImage: string | undefined;
@@ -38,10 +40,13 @@ export interface CliArgs {
38
40
  tavilyApiKey: string | undefined;
39
41
  screenReader: boolean | undefined;
40
42
  vlmSwitchMode: string | undefined;
43
+ useSmartEdit: boolean | undefined;
44
+ outputFormat: string | undefined;
41
45
  }
42
46
  export declare function parseArguments(settings: Settings): Promise<CliArgs>;
43
- export declare function loadHierarchicalGeminiMemory(currentWorkingDirectory: string, includeDirectoriesToReadGemini: readonly string[] | undefined, debugMode: boolean, fileService: FileDiscoveryService, settings: Settings, extensionContextFilePaths?: string[], memoryImportFormat?: 'flat' | 'tree', fileFilteringOptions?: FileFilteringOptions): Promise<{
47
+ export declare function loadHierarchicalGeminiMemory(currentWorkingDirectory: string, includeDirectoriesToReadGemini: readonly string[] | undefined, debugMode: boolean, fileService: FileDiscoveryService, settings: Settings, extensionContextFilePaths: string[] | undefined, folderTrust: boolean, memoryImportFormat?: 'flat' | 'tree', fileFilteringOptions?: FileFilteringOptions): Promise<{
44
48
  memoryContent: string;
45
49
  fileCount: number;
46
50
  }>;
47
- export declare function loadCliConfig(settings: Settings, extensions: Extension[], sessionId: string, argv: CliArgs, cwd?: string): Promise<Config>;
51
+ export declare function isDebugMode(argv: CliArgs): boolean;
52
+ export declare function loadCliConfig(settings: Settings, extensions: Extension[], extensionEnablementManager: ExtensionEnablementManager, sessionId: string, argv: CliArgs, cwd?: string): Promise<Config>;
@@ -3,19 +3,19 @@
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 '@rdmind/rdmind-core';
6
+ import { extensionsCommand } from '../commands/extensions.js';
7
+ import { ApprovalMode, Config, DEFAULT_QWEN_MODEL, DEFAULT_QWEN_EMBEDDING_MODEL, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, EditTool, FileDiscoveryService, getCurrentGeminiMdFilename, loadServerHierarchicalMemory, setGeminiMdFilename as setServerGeminiMdFilename, ShellTool, WriteFileTool, resolveTelemetrySettings, FatalConfigError, } from '@rdmind/rdmind-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
20
  // Simple console logger for now - replace with actual logger if available
21
21
  const logger = {
@@ -53,17 +53,62 @@ function parseApprovalModeValue(value) {
53
53
  }
54
54
  }
55
55
  export async function parseArguments(settings) {
56
- const yargsInstance = yargs(hideBin(process.argv))
57
- // Set locale to English for consistent output, especially in tests
56
+ const rawArgv = hideBin(process.argv);
57
+ const yargsInstance = yargs(rawArgv)
58
58
  .locale('en')
59
59
  .scriptName('rdmind')
60
60
  .usage('使用方法: rdmind [options] [command]\n\nRDMind - 启动交互式 CLI,使用 -p/--prompt 进入非交互模式')
61
- .command('$0', '启动 RDMind', (yargsInstance) => yargsInstance
61
+ .option('telemetry', {
62
+ type: 'boolean',
63
+ description: '启用遥测?控制是否发送遥测数据',
64
+ })
65
+ .option('telemetry-target', {
66
+ type: 'string',
67
+ choices: ['local', 'gcp'],
68
+ description: '设置遥测目标',
69
+ })
70
+ .option('telemetry-otlp-endpoint', {
71
+ type: 'string',
72
+ description: '设置遥测的 OTLP 端点',
73
+ })
74
+ .option('telemetry-otlp-protocol', {
75
+ type: 'string',
76
+ choices: ['grpc', 'http'],
77
+ description: '设置遥测的 OTLP 协议',
78
+ })
79
+ .option('telemetry-log-prompts', {
80
+ type: 'boolean',
81
+ description: '启用或禁用遥测中用户提示词的日志记录',
82
+ })
83
+ .option('telemetry-outfile', {
84
+ type: 'string',
85
+ description: '将所有遥测输出重定向到指定文件',
86
+ })
87
+ .deprecateOption('telemetry', 'Use the "telemetry.enabled" setting in settings.json instead. This flag will be removed in a future version.')
88
+ .deprecateOption('telemetry-target', 'Use the "telemetry.target" setting in settings.json instead. This flag will be removed in a future version.')
89
+ .deprecateOption('telemetry-otlp-endpoint', 'Use the "telemetry.otlpEndpoint" setting in settings.json instead. This flag will be removed in a future version.')
90
+ .deprecateOption('telemetry-otlp-protocol', 'Use the "telemetry.otlpProtocol" setting in settings.json instead. This flag will be removed in a future version.')
91
+ .deprecateOption('telemetry-log-prompts', 'Use the "telemetry.logPrompts" setting in settings.json instead. This flag will be removed in a future version.')
92
+ .deprecateOption('telemetry-outfile', 'Use the "telemetry.outfile" setting in settings.json instead. This flag will be removed in a future version.')
93
+ .option('debug', {
94
+ alias: 'd',
95
+ type: 'boolean',
96
+ description: 'Run in debug mode?',
97
+ default: false,
98
+ })
99
+ .option('proxy', {
100
+ type: 'string',
101
+ description: 'Proxy for gemini client, like schema://user:password@host:port',
102
+ })
103
+ .deprecateOption('proxy', 'Use the "proxy" setting in settings.json instead. This flag will be removed in a future version.')
104
+ .command('$0 [query..]', '启动 RDMind', (yargsInstance) => yargsInstance
105
+ .positional('query', {
106
+ description: 'Positional prompt. Defaults to one-shot; use -i/--prompt-interactive for interactive.',
107
+ })
62
108
  .option('model', {
63
109
  alias: 'm',
64
110
  type: 'string',
65
111
  description: `模型`,
66
- default: process.env['GEMINI_MODEL'],
67
112
  })
68
113
  .option('prompt', {
69
114
  alias: 'p',
@@ -83,12 +128,6 @@ export async function parseArguments(settings) {
83
128
  .option('sandbox-image', {
84
129
  type: 'string',
85
130
  description: '沙盒镜像',
86
- })
87
- .option('debug', {
88
- alias: 'd',
89
- type: 'boolean',
90
- description: '调试模式?',
91
- default: false,
92
131
  })
93
132
  .option('all-files', {
94
133
  alias: ['a'],
@@ -111,32 +150,6 @@ export async function parseArguments(settings) {
111
150
  type: 'string',
112
151
  choices: ['plan', 'default', 'auto-edit', 'yolo'],
113
152
  description: '设置审批模式:plan(只做规划)、default(提示确认)、auto_edit(接受编辑)、yolo(接受所有工具)',
114
- })
115
- .option('telemetry', {
116
- type: 'boolean',
117
- description: '启用遥测?控制是否发送遥测数据',
118
- })
119
- .option('telemetry-target', {
120
- type: 'string',
121
- choices: ['local', 'gcp'],
122
- description: '设置遥测目标(local 或 gcp)。覆盖设置文件',
123
- })
124
- .option('telemetry-otlp-endpoint', {
125
- type: 'string',
126
- description: '设置遥测的 OTLP 端点。覆盖环境变量和设置文件',
127
- })
128
- .option('telemetry-otlp-protocol', {
129
- type: 'string',
130
- choices: ['grpc', 'http'],
131
- description: '设置遥测的 OTLP 协议(grpc 或 http)。覆盖设置文件',
132
- })
133
- .option('telemetry-log-prompts', {
134
- type: 'boolean',
135
- description: '启用或禁用遥测中用户提示词的日志记录。覆盖设置文件',
136
- })
137
- .option('telemetry-outfile', {
138
- type: 'string',
139
- description: '将所有遥测输出重定向到指定文件',
140
153
  })
141
154
  .option('checkpointing', {
142
155
  alias: 'c',
@@ -152,26 +165,31 @@ export async function parseArguments(settings) {
152
165
  type: 'array',
153
166
  string: true,
154
167
  description: '允许的 MCP 服务名称',
168
+ coerce: (mcpServerNames) =>
169
+ // Handle comma-separated values
170
+ mcpServerNames.flatMap((mcpServerName) => mcpServerName.split(',').map((m) => m.trim())),
155
171
  })
156
172
  .option('allowed-tools', {
157
173
  type: 'array',
158
174
  string: true,
159
175
  description: '无需确认即可运行的工具',
176
+ coerce: (tools) =>
177
+ // Handle comma-separated values
178
+ tools.flatMap((tool) => tool.split(',').map((t) => t.trim())),
160
179
  })
161
180
  .option('extensions', {
162
181
  alias: 'e',
163
182
  type: 'array',
164
183
  string: true,
165
184
  description: '要使用的扩展列表。未提供则使用所有扩展',
185
+ coerce: (extensions) =>
186
+ // Handle comma-separated values
187
+ extensions.flatMap((extension) => extension.split(',').map((e) => e.trim())),
166
188
  })
167
189
  .option('list-extensions', {
168
190
  alias: 'l',
169
191
  type: 'boolean',
170
192
  description: '列出所有可用扩展并退出',
171
- })
172
- .option('proxy', {
173
- type: 'string',
174
- description: '客户端代理,格式如 schema://user:password@host:port',
175
193
  })
176
194
  .option('include-directories', {
177
195
  type: 'array',
@@ -200,26 +218,51 @@ export async function parseArguments(settings) {
200
218
  .option('screen-reader', {
201
219
  type: 'boolean',
202
220
  description: '启用 screen-reader',
203
- default: false,
204
221
  })
205
222
  .option('vlm-switch-mode', {
206
223
  type: 'string',
207
224
  choices: ['once', 'session', 'persist'],
208
225
  description: '检测到输入中包含图像时的默认行为。可选值:once(切换一次)、session(整个会话期间切换)、persist(继续使用当前模型)。会覆盖设置文件的配置',
209
226
  default: process.env['VLM_SWITCH_MODE'],
227
+ })
228
+ .option('output-format', {
229
+ alias: 'o',
230
+ type: 'string',
231
+ description: 'The format of the CLI output.',
232
+ choices: ['text', 'json'],
233
+ })
234
+ .deprecateOption('show-memory-usage', 'Use the "ui.showMemoryUsage" setting in settings.json instead. This flag will be removed in a future version.')
235
+ .deprecateOption('sandbox-image', 'Use the "tools.sandbox" setting in settings.json instead. This flag will be removed in a future version.')
236
+ .deprecateOption('checkpointing', 'Use the "general.checkpointing.enabled" setting in settings.json instead. This flag will be removed in a future version.')
237
+ .deprecateOption('all-files', 'Use @ includes in the application instead. This flag will be removed in a future version.')
238
+ .deprecateOption('prompt', 'Use the positional prompt instead. This flag will be removed in a future version.')
239
+ // Ensure validation flows through .fail() for clean UX
240
+ .fail((msg, err, yargs) => {
241
+ console.error(msg || err?.message || 'Unknown error');
242
+ yargs.showHelp();
243
+ process.exit(1);
210
244
  })
211
245
  .check((argv) => {
212
- if (argv.prompt && argv['promptInteractive']) {
213
- throw new Error('不能同时使用 --prompt (-p) --prompt-interactive (-i)');
246
+ // The 'query' positional can be a string (for one arg) or string[] (for multiple).
247
+ // This guard safely checks if any positional argument was provided.
248
+ const query = argv['query'];
249
+ const hasPositionalQuery = Array.isArray(query)
250
+ ? query.length > 0
251
+ : !!query;
252
+ if (argv['prompt'] && hasPositionalQuery) {
253
+ return '不能同时使用位置参数提示词和 --prompt (-p) 标志';
254
+ }
255
+ if (argv['prompt'] && argv['promptInteractive']) {
256
+ return '不能同时使用 --prompt (-p) 和 --prompt-interactive (-i)';
214
257
  }
215
- if (argv.yolo && argv['approvalMode']) {
216
- throw new Error('不能同时使用 --yolo (-y) 和 --approval-mode。请使用 --approval-mode=yolo 替代');
258
+ if (argv['yolo'] && argv['approvalMode']) {
259
+ return '不能同时使用 --yolo (-y) 和 --approval-mode。请使用 --approval-mode=yolo 替代';
217
260
  }
218
261
  return true;
219
262
  }))
220
263
  // Register MCP subcommands
221
264
  .command(mcpCommand);
222
- if (settings?.experimental?.extensionManagement ?? false) {
265
+ if (settings?.experimental?.extensionManagement ?? true) {
223
266
  yargsInstance.command(extensionsCommand);
224
267
  }
225
268
  yargsInstance
@@ -231,6 +274,7 @@ export async function parseArguments(settings) {
231
274
  .demandCommand(0, 0); // Allow base command to run with no subcommands
232
275
  yargsInstance.wrap(yargsInstance.terminalWidth());
233
276
  const result = await yargsInstance.parse();
277
+ // If yargs handled --help/--version it will have exited; nothing to do here.
234
278
  // Handle case where MCP subcommands are executed - they should exit the process
235
279
  // and not return to main CLI logic
236
280
  if (result._.length > 0 &&
@@ -238,6 +282,23 @@ export async function parseArguments(settings) {
238
282
  // MCP commands handle their own execution and process exit
239
283
  process.exit(0);
240
284
  }
285
+ // Normalize query args: handle both quoted "@path file" and unquoted @path file
286
+ const queryArg = result.query;
287
+ const q = Array.isArray(queryArg)
288
+ ? queryArg.join(' ')
289
+ : queryArg;
290
+ // Route positional args: explicit -i flag -> interactive; else -> one-shot (even for @commands)
291
+ if (q && !result['prompt']) {
292
+ const hasExplicitInteractive = result['promptInteractive'] === '' || !!result['promptInteractive'];
293
+ if (hasExplicitInteractive) {
294
+ result['promptInteractive'] = q;
295
+ }
296
+ else {
297
+ result['prompt'] = q;
298
+ }
299
+ }
300
+ // Keep CliArgs.query as a string for downstream typing
301
+ result['query'] = q || undefined;
241
302
  // The import format is now only controlled by settings.memoryImportFormat
242
303
  // We no longer accept it as a CLI argument
243
304
  return result;
@@ -245,7 +306,7 @@ export async function parseArguments(settings) {
245
306
  // This function is now a thin wrapper around the server's implementation.
246
307
  // It's kept in the CLI for now as App.tsx directly calls it for memory refresh.
247
308
  // 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) {
309
+ export async function loadHierarchicalGeminiMemory(currentWorkingDirectory, includeDirectoriesToReadGemini = [], debugMode, fileService, settings, extensionContextFilePaths = [], folderTrust, memoryImportFormat = 'tree', fileFilteringOptions) {
249
310
  // FIX: Use real, canonical paths for a reliable comparison to handle symlinks.
250
311
  const realCwd = fs.realpathSync(path.resolve(currentWorkingDirectory));
251
312
  const realHome = fs.realpathSync(path.resolve(homedir()));
@@ -257,32 +318,20 @@ export async function loadHierarchicalGeminiMemory(currentWorkingDirectory, incl
257
318
  logger.debug(`CLI: Delegating hierarchical memory load to server for CWD: ${currentWorkingDirectory} (memoryImportFormat: ${memoryImportFormat})`);
258
319
  }
259
320
  // Directly call the server function with the corrected path.
260
- return loadServerHierarchicalMemory(effectiveCwd, includeDirectoriesToReadGemini, debugMode, fileService, extensionContextFilePaths, memoryImportFormat, fileFilteringOptions, settings.context?.discoveryMaxDirs);
321
+ return loadServerHierarchicalMemory(effectiveCwd, includeDirectoriesToReadGemini, debugMode, fileService, extensionContextFilePaths, folderTrust, memoryImportFormat, fileFilteringOptions, settings.context?.discoveryMaxDirs);
322
+ }
323
+ export function isDebugMode(argv) {
324
+ return (argv.debug ||
325
+ [process.env['DEBUG'], process.env['DEBUG_MODE']].some((v) => v === 'true' || v === '1'));
261
326
  }
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;
327
+ export async function loadCliConfig(settings, extensions, extensionEnablementManager, sessionId, argv, cwd = process.cwd()) {
328
+ const debugMode = isDebugMode(argv);
266
329
  const memoryImportFormat = settings.context?.importFormat || 'tree';
267
330
  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);
331
+ const folderTrust = settings.security?.folderTrust?.enabled ?? false;
332
+ const trustedFolder = isWorkspaceTrusted(settings)?.isTrusted ?? true;
333
+ const allExtensions = annotateActiveExtensions(extensions, cwd, extensionEnablementManager);
273
334
  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
335
  // Set the context filename in the server's memoryTool module BEFORE loading memory
287
336
  // TODO(b/343434939): This is a bit of a hack. The contextFileName should ideally be passed
288
337
  // directly to the Config constructor in core, and have core handle setGeminiMdFilename.
@@ -306,7 +355,7 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
306
355
  // Call the (now wrapper) loadHierarchicalGeminiMemory which calls the server's version
307
356
  const { memoryContent, fileCount } = await loadHierarchicalGeminiMemory(cwd, settings.context?.loadMemoryFromIncludeDirectories
308
357
  ? includeDirectories
309
- : [], debugMode, fileService, settings, extensionContextFilePaths, memoryImportFormat, fileFiltering);
358
+ : [], debugMode, fileService, settings, extensionContextFilePaths, trustedFolder, memoryImportFormat, fileFiltering);
310
359
  let mcpServers = mergeMcpServers(settings, activeExtensions);
311
360
  const question = argv.promptInteractive || argv.prompt || '';
312
361
  // Determine approval mode with backward compatibility
@@ -317,8 +366,8 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
317
366
  else if (argv.yolo) {
318
367
  approvalMode = ApprovalMode.YOLO;
319
368
  }
320
- else if (settings.approvalMode) {
321
- approvalMode = parseApprovalModeValue(settings.approvalMode);
369
+ else if (settings.tools?.approvalMode) {
370
+ approvalMode = parseApprovalModeValue(settings.tools.approvalMode);
322
371
  }
323
372
  else {
324
373
  approvalMode = ApprovalMode.DEFAULT;
@@ -330,7 +379,24 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
330
379
  logger.warn(`Approval mode overridden to "default" because the current folder is not trusted.`);
331
380
  approvalMode = ApprovalMode.DEFAULT;
332
381
  }
333
- const interactive = !!argv.promptInteractive || (process.stdin.isTTY && question.length === 0);
382
+ let telemetrySettings;
383
+ try {
384
+ telemetrySettings = await resolveTelemetrySettings({
385
+ argv,
386
+ env: process.env,
387
+ settings: settings.telemetry,
388
+ });
389
+ }
390
+ catch (err) {
391
+ if (err instanceof FatalConfigError) {
392
+ throw new FatalConfigError(`Invalid telemetry configuration: ${err.message}.`);
393
+ }
394
+ throw err;
395
+ }
396
+ // Interactive mode: explicit -i flag or (TTY + no args + no -p flag)
397
+ const hasQuery = !!argv.query;
398
+ const interactive = !!argv.promptInteractive ||
399
+ (process.stdin.isTTY && !hasQuery && !argv.prompt);
334
400
  // In non-interactive mode, exclude tools that require a prompt.
335
401
  const extraExcludes = [];
336
402
  if (!interactive && !argv.experimentalAcp) {
@@ -368,15 +434,20 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
368
434
  if (argv.allowedMcpServerNames) {
369
435
  mcpServers = allowedMcpServers(mcpServers, argv.allowedMcpServerNames, blockedMcpServers);
370
436
  }
437
+ const defaultModel = DEFAULT_QWEN_MODEL;
438
+ const resolvedModel = argv.model ||
439
+ process.env['OPENAI_MODEL'] ||
440
+ process.env['QWEN_MODEL'] ||
441
+ settings.model?.name ||
442
+ defaultModel;
371
443
  const sandboxConfig = await loadSandboxConfig(settings, argv);
372
- const cliVersion = await getCliVersion();
373
444
  const screenReader = argv.screenReader !== undefined
374
445
  ? argv.screenReader
375
446
  : (settings.ui?.accessibility?.screenReader ?? false);
376
447
  const vlmSwitchMode = argv.vlmSwitchMode || settings.experimental?.vlmSwitchMode;
377
448
  return new Config({
378
449
  sessionId,
379
- embeddingModel: DEFAULT_GEMINI_EMBEDDING_MODEL,
450
+ embeddingModel: DEFAULT_QWEN_EMBEDDING_MODEL,
380
451
  sandbox: sandboxConfig,
381
452
  targetDir: cwd,
382
453
  includeDirectories,
@@ -399,26 +470,9 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
399
470
  ...settings.ui?.accessibility,
400
471
  screenReader,
401
472
  },
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
- },
473
+ telemetry: telemetrySettings,
414
474
  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
- },
475
+ fileFiltering: settings.context?.fileFiltering,
422
476
  checkpointing: argv.checkpointing || settings.general?.checkpointing?.enabled,
423
477
  proxy: argv.proxy ||
424
478
  process.env['HTTPS_PROXY'] ||
@@ -428,47 +482,49 @@ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd =
428
482
  cwd,
429
483
  fileDiscoveryService: fileService,
430
484
  bugCommand: settings.advanced?.bugCommand,
431
- model: argv.model || settings.model?.name || DEFAULT_GEMINI_MODEL,
485
+ model: resolvedModel,
432
486
  extensionContextFilePaths,
433
- sessionTokenLimit: settings.sessionTokenLimit ?? -1,
487
+ sessionTokenLimit: settings.model?.sessionTokenLimit ?? -1,
434
488
  maxSessionTurns: settings.model?.maxSessionTurns ?? -1,
435
489
  experimentalZedIntegration: argv.experimentalAcp || false,
436
490
  listExtensions: argv.listExtensions || false,
437
491
  extensions: allExtensions,
438
492
  blockedMcpServers,
439
493
  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
494
  authType: settings.security?.auth?.selectedType,
454
- contentGenerator: settings.contentGenerator,
455
- cliVersion,
495
+ generationConfig: {
496
+ ...(settings.model?.generationConfig || {}),
497
+ model: resolvedModel,
498
+ apiKey: argv.openaiApiKey || process.env['OPENAI_API_KEY'],
499
+ baseUrl: argv.openaiBaseUrl || process.env['OPENAI_BASE_URL'],
500
+ enableOpenAILogging: (typeof argv.openaiLogging === 'undefined'
501
+ ? settings.model?.enableOpenAILogging
502
+ : argv.openaiLogging) ?? false,
503
+ },
504
+ cliVersion: await getCliVersion(),
456
505
  tavilyApiKey: argv.tavilyApiKey ||
457
- settings.tavilyApiKey ||
506
+ settings.advanced?.tavilyApiKey ||
458
507
  process.env['TAVILY_API_KEY'],
459
508
  summarizeToolOutput: settings.model?.summarizeToolOutput,
460
509
  ideMode,
461
510
  chatCompression: settings.model?.chatCompression,
462
- folderTrustFeature,
463
511
  folderTrust,
464
512
  interactive,
465
513
  trustedFolder,
466
514
  useRipgrep: settings.tools?.useRipgrep,
467
- shouldUseNodePtyShell: settings.tools?.usePty,
515
+ shouldUseNodePtyShell: settings.tools?.shell?.enableInteractiveShell,
468
516
  skipNextSpeakerCheck: settings.model?.skipNextSpeakerCheck,
469
517
  enablePromptCompletion: settings.general?.enablePromptCompletion ?? false,
470
- skipLoopDetection: settings.skipLoopDetection ?? false,
518
+ skipLoopDetection: settings.model?.skipLoopDetection ?? false,
471
519
  vlmSwitchMode,
520
+ truncateToolOutputThreshold: settings.tools?.truncateToolOutputThreshold,
521
+ truncateToolOutputLines: settings.tools?.truncateToolOutputLines,
522
+ enableToolOutputTruncation: settings.tools?.enableToolOutputTruncation,
523
+ eventEmitter: appEvents,
524
+ useSmartEdit: argv.useSmartEdit ?? settings.useSmartEdit,
525
+ output: {
526
+ format: (argv.outputFormat ?? settings.output?.format),
527
+ },
472
528
  });
473
529
  }
474
530
  function allowedMcpServers(mcpServers, allowMCPServers, blockedMcpServers) {