@machina.ai/cell-cli 1.11.0-rc1 → 1.13.0-rc2

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 (538) hide show
  1. package/dist/package.json +16 -10
  2. package/dist/src/commands/extensions/disable.d.ts +1 -1
  3. package/dist/src/commands/extensions/disable.js +15 -7
  4. package/dist/src/commands/extensions/disable.js.map +1 -1
  5. package/dist/src/commands/extensions/enable.d.ts +1 -1
  6. package/dist/src/commands/extensions/enable.js +15 -7
  7. package/dist/src/commands/extensions/enable.js.map +1 -1
  8. package/dist/src/commands/extensions/install.js +14 -3
  9. package/dist/src/commands/extensions/install.js.map +1 -1
  10. package/dist/src/commands/extensions/install.test.js +39 -19
  11. package/dist/src/commands/extensions/install.test.js.map +1 -1
  12. package/dist/src/commands/extensions/link.js +14 -3
  13. package/dist/src/commands/extensions/link.js.map +1 -1
  14. package/dist/src/commands/extensions/list.js +13 -4
  15. package/dist/src/commands/extensions/list.js.map +1 -1
  16. package/dist/src/commands/extensions/uninstall.js +13 -2
  17. package/dist/src/commands/extensions/uninstall.js.map +1 -1
  18. package/dist/src/commands/extensions/update.js +18 -13
  19. package/dist/src/commands/extensions/update.js.map +1 -1
  20. package/dist/src/commands/extensions/validate.d.ts +12 -0
  21. package/dist/src/commands/extensions/validate.js +83 -0
  22. package/dist/src/commands/extensions/validate.js.map +1 -0
  23. package/dist/src/commands/extensions/validate.test.js +93 -0
  24. package/dist/src/commands/extensions/validate.test.js.map +1 -0
  25. package/dist/src/commands/extensions.js +3 -0
  26. package/dist/src/commands/extensions.js.map +1 -1
  27. package/dist/src/commands/mcp/add.test.js +3 -0
  28. package/dist/src/commands/mcp/add.test.js.map +1 -1
  29. package/dist/src/commands/mcp/list.js +10 -3
  30. package/dist/src/commands/mcp/list.js.map +1 -1
  31. package/dist/src/commands/mcp/list.test.js +37 -27
  32. package/dist/src/commands/mcp/list.test.js.map +1 -1
  33. package/dist/src/config/auth.js +0 -5
  34. package/dist/src/config/auth.js.map +1 -1
  35. package/dist/src/config/config.d.ts +6 -3
  36. package/dist/src/config/config.js +65 -80
  37. package/dist/src/config/config.js.map +1 -1
  38. package/dist/src/config/config.test.js +235 -212
  39. package/dist/src/config/config.test.js.map +1 -1
  40. package/dist/src/config/extension-manager.d.ts +63 -0
  41. package/dist/src/config/extension-manager.js +450 -0
  42. package/dist/src/config/extension-manager.js.map +1 -0
  43. package/dist/src/config/extension.d.ts +4 -51
  44. package/dist/src/config/extension.js +1 -535
  45. package/dist/src/config/extension.js.map +1 -1
  46. package/dist/src/config/extension.test.js +525 -201
  47. package/dist/src/config/extension.test.js.map +1 -1
  48. package/dist/src/config/extensions/consent.d.ts +38 -0
  49. package/dist/src/config/extensions/consent.js +123 -0
  50. package/dist/src/config/extensions/consent.js.map +1 -0
  51. package/dist/src/config/extensions/extensionEnablement.d.ts +1 -1
  52. package/dist/src/config/extensions/extensionEnablement.js +4 -3
  53. package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
  54. package/dist/src/config/extensions/extensionEnablement.test.js +10 -10
  55. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
  56. package/dist/src/config/extensions/extensionSettings.d.ts +15 -0
  57. package/dist/src/config/extensions/extensionSettings.js +113 -0
  58. package/dist/src/config/extensions/extensionSettings.js.map +1 -0
  59. package/dist/src/config/extensions/extensionSettings.test.d.ts +6 -0
  60. package/dist/src/config/extensions/extensionSettings.test.js +254 -0
  61. package/dist/src/config/extensions/extensionSettings.test.js.map +1 -0
  62. package/dist/src/config/extensions/github.d.ts +2 -2
  63. package/dist/src/config/extensions/github.js +5 -10
  64. package/dist/src/config/extensions/github.js.map +1 -1
  65. package/dist/src/config/extensions/github.test.js +153 -167
  66. package/dist/src/config/extensions/github.test.js.map +1 -1
  67. package/dist/src/config/extensions/github_fetch.d.ts +1 -1
  68. package/dist/src/config/extensions/github_fetch.js +13 -1
  69. package/dist/src/config/extensions/github_fetch.js.map +1 -1
  70. package/dist/src/config/extensions/github_fetch.test.d.ts +6 -0
  71. package/dist/src/config/extensions/github_fetch.test.js +169 -0
  72. package/dist/src/config/extensions/github_fetch.test.js.map +1 -0
  73. package/dist/src/config/extensions/storage.d.ts +14 -0
  74. package/dist/src/config/extensions/storage.js +32 -0
  75. package/dist/src/config/extensions/storage.js.map +1 -0
  76. package/dist/src/config/extensions/update.d.ts +4 -4
  77. package/dist/src/config/extensions/update.js +39 -39
  78. package/dist/src/config/extensions/update.js.map +1 -1
  79. package/dist/src/config/extensions/update.test.js +72 -74
  80. package/dist/src/config/extensions/update.test.js.map +1 -1
  81. package/dist/src/config/extensions/variableSchema.d.ts +0 -6
  82. package/dist/src/config/extensions/variableSchema.js.map +1 -1
  83. package/dist/src/config/extensions/variables.d.ts +4 -0
  84. package/dist/src/config/extensions/variables.js +6 -0
  85. package/dist/src/config/extensions/variables.js.map +1 -1
  86. package/dist/src/config/keyBindings.d.ts +3 -0
  87. package/dist/src/config/keyBindings.js +30 -8
  88. package/dist/src/config/keyBindings.js.map +1 -1
  89. package/dist/src/config/keyBindings.test.js +17 -0
  90. package/dist/src/config/keyBindings.test.js.map +1 -1
  91. package/dist/src/config/policies/read-only.toml +56 -0
  92. package/dist/src/config/policies/write.toml +63 -0
  93. package/dist/src/config/policies/yolo.toml +31 -0
  94. package/dist/src/config/policy-engine.integration.test.js +41 -38
  95. package/dist/src/config/policy-engine.integration.test.js.map +1 -1
  96. package/dist/src/config/policy.d.ts +2 -2
  97. package/dist/src/config/policy.js +10 -148
  98. package/dist/src/config/policy.js.map +1 -1
  99. package/dist/src/config/sandboxConfig.d.ts +1 -1
  100. package/dist/src/config/sandboxConfig.js +6 -3
  101. package/dist/src/config/sandboxConfig.js.map +1 -1
  102. package/dist/src/config/settings.d.ts +2 -1
  103. package/dist/src/config/settings.js +58 -18
  104. package/dist/src/config/settings.js.map +1 -1
  105. package/dist/src/config/settings.test.js +128 -69
  106. package/dist/src/config/settings.test.js.map +1 -1
  107. package/dist/src/config/settingsSchema.d.ts +170 -28
  108. package/dist/src/config/settingsSchema.js +418 -27
  109. package/dist/src/config/settingsSchema.js.map +1 -1
  110. package/dist/src/config/settingsSchema.test.js +42 -1
  111. package/dist/src/config/settingsSchema.test.js.map +1 -1
  112. package/dist/src/config/trustedFolders.d.ts +1 -1
  113. package/dist/src/config/trustedFolders.js +4 -2
  114. package/dist/src/config/trustedFolders.js.map +1 -1
  115. package/dist/src/core/initializer.js +2 -1
  116. package/dist/src/core/initializer.js.map +1 -1
  117. package/dist/src/gemini.d.ts +1 -1
  118. package/dist/src/gemini.js +46 -16
  119. package/dist/src/gemini.js.map +1 -1
  120. package/dist/src/gemini.test.js +88 -30
  121. package/dist/src/gemini.test.js.map +1 -1
  122. package/dist/src/generated/git-commit.d.ts +2 -2
  123. package/dist/src/generated/git-commit.js +2 -2
  124. package/dist/src/nonInteractiveCli.d.ts +9 -1
  125. package/dist/src/nonInteractiveCli.js +114 -7
  126. package/dist/src/nonInteractiveCli.js.map +1 -1
  127. package/dist/src/nonInteractiveCli.test.js +355 -112
  128. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  129. package/dist/src/services/BuiltinCommandLoader.js +4 -0
  130. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  131. package/dist/src/services/BuiltinCommandLoader.test.js +22 -0
  132. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  133. package/dist/src/services/FeedbackService.js +2 -2
  134. package/dist/src/services/FeedbackService.js.map +1 -1
  135. package/dist/src/services/McpPromptLoader.js +2 -2
  136. package/dist/src/services/McpPromptLoader.js.map +1 -1
  137. package/dist/src/services/McpPromptLoader.test.js +4 -2
  138. package/dist/src/services/McpPromptLoader.test.js.map +1 -1
  139. package/dist/src/test-utils/async.d.ts +9 -0
  140. package/dist/src/test-utils/async.js +29 -0
  141. package/dist/src/test-utils/async.js.map +1 -0
  142. package/dist/src/test-utils/createExtension.d.ts +3 -1
  143. package/dist/src/test-utils/createExtension.js +3 -3
  144. package/dist/src/test-utils/createExtension.js.map +1 -1
  145. package/dist/src/test-utils/render.d.ts +16 -2
  146. package/dist/src/test-utils/render.js +66 -4
  147. package/dist/src/test-utils/render.js.map +1 -1
  148. package/dist/src/test-utils/render.test.d.ts +6 -0
  149. package/dist/src/test-utils/render.test.js +79 -0
  150. package/dist/src/test-utils/render.test.js.map +1 -0
  151. package/dist/src/ui/App.test.js +1 -1
  152. package/dist/src/ui/App.test.js.map +1 -1
  153. package/dist/src/ui/AppContainer.js +181 -65
  154. package/dist/src/ui/AppContainer.js.map +1 -1
  155. package/dist/src/ui/AppContainer.test.js +505 -147
  156. package/dist/src/ui/AppContainer.test.js.map +1 -1
  157. package/dist/src/ui/IdeIntegrationNudge.js +1 -1
  158. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  159. package/dist/src/ui/auth/ApiAuthDialog.d.ts +14 -0
  160. package/dist/src/ui/auth/ApiAuthDialog.js +26 -0
  161. package/dist/src/ui/auth/ApiAuthDialog.js.map +1 -0
  162. package/dist/src/ui/auth/ApiAuthDialog.test.d.ts +6 -0
  163. package/dist/src/ui/auth/ApiAuthDialog.test.js +91 -0
  164. package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -0
  165. package/dist/src/ui/auth/AuthDialog.js +7 -3
  166. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  167. package/dist/src/ui/auth/useAuth.d.ts +2 -0
  168. package/dist/src/ui/auth/useAuth.js +31 -2
  169. package/dist/src/ui/auth/useAuth.js.map +1 -1
  170. package/dist/src/ui/colors.js +3 -0
  171. package/dist/src/ui/colors.js.map +1 -1
  172. package/dist/src/ui/commands/directoryCommand.js +1 -1
  173. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  174. package/dist/src/ui/commands/extensionsCommand.js +64 -11
  175. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  176. package/dist/src/ui/commands/extensionsCommand.test.js +72 -1
  177. package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
  178. package/dist/src/ui/commands/mcpCommand.js +14 -14
  179. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  180. package/dist/src/ui/commands/mcpCommand.test.js +4 -0
  181. package/dist/src/ui/commands/mcpCommand.test.js.map +1 -1
  182. package/dist/src/ui/commands/memoryCommand.js +1 -1
  183. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  184. package/dist/src/ui/commands/memoryCommand.test.js +3 -1
  185. package/dist/src/ui/commands/memoryCommand.test.js.map +1 -1
  186. package/dist/src/ui/commands/policiesCommand.d.ts +7 -0
  187. package/dist/src/ui/commands/policiesCommand.js +59 -0
  188. package/dist/src/ui/commands/policiesCommand.js.map +1 -0
  189. package/dist/src/ui/commands/policiesCommand.test.d.ts +6 -0
  190. package/dist/src/ui/commands/policiesCommand.test.js +83 -0
  191. package/dist/src/ui/commands/policiesCommand.test.js.map +1 -0
  192. package/dist/src/ui/components/AnsiOutput.test.js +1 -1
  193. package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
  194. package/dist/src/ui/components/AsciiArt.d.ts +3 -3
  195. package/dist/src/ui/components/AsciiArt.js +3 -3
  196. package/dist/src/ui/components/Composer.js +1 -1
  197. package/dist/src/ui/components/Composer.js.map +1 -1
  198. package/dist/src/ui/components/Composer.test.js +5 -2
  199. package/dist/src/ui/components/Composer.test.js.map +1 -1
  200. package/dist/src/ui/components/ConfigInitDisplay.js +4 -6
  201. package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -1
  202. package/dist/src/ui/components/ConsentPrompt.test.js +18 -8
  203. package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -1
  204. package/dist/src/ui/components/ConsoleSummaryDisplay.js +1 -1
  205. package/dist/src/ui/components/ConsoleSummaryDisplay.js.map +1 -1
  206. package/dist/src/ui/components/ContextSummaryDisplay.test.js +11 -6
  207. package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +1 -1
  208. package/dist/src/ui/components/DetailedMessagesDisplay.js +1 -1
  209. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  210. package/dist/src/ui/components/DialogManager.js +4 -0
  211. package/dist/src/ui/components/DialogManager.js.map +1 -1
  212. package/dist/src/ui/components/FolderTrustDialog.test.js +2 -1
  213. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  214. package/dist/src/ui/components/Footer.js +4 -3
  215. package/dist/src/ui/components/Footer.js.map +1 -1
  216. package/dist/src/ui/components/Footer.test.js +83 -0
  217. package/dist/src/ui/components/Footer.test.js.map +1 -1
  218. package/dist/src/ui/components/Header.test.js +13 -5
  219. package/dist/src/ui/components/Header.test.js.map +1 -1
  220. package/dist/src/ui/components/Help.test.js +5 -4
  221. package/dist/src/ui/components/Help.test.js.map +1 -1
  222. package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
  223. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  224. package/dist/src/ui/components/InputPrompt.js +27 -8
  225. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  226. package/dist/src/ui/components/InputPrompt.test.js +776 -727
  227. package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  228. package/dist/src/ui/components/LoadingIndicator.js +2 -2
  229. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  230. package/dist/src/ui/components/LoadingIndicator.test.js +28 -15
  231. package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
  232. package/dist/src/ui/components/LoopDetectionConfirmation.js +1 -1
  233. package/dist/src/ui/components/LoopDetectionConfirmation.js.map +1 -1
  234. package/dist/src/ui/components/LoopDetectionConfirmation.test.js +2 -2
  235. package/dist/src/ui/components/LoopDetectionConfirmation.test.js.map +1 -1
  236. package/dist/src/ui/components/MainContent.js +15 -4
  237. package/dist/src/ui/components/MainContent.js.map +1 -1
  238. package/dist/src/ui/components/ModelDialog.js +1 -1
  239. package/dist/src/ui/components/ModelDialog.js.map +1 -1
  240. package/dist/src/ui/components/ModelDialog.test.js +23 -13
  241. package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
  242. package/dist/src/ui/components/ModelStatsDisplay.test.js +1 -1
  243. package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
  244. package/dist/src/ui/components/Notifications.js +38 -5
  245. package/dist/src/ui/components/Notifications.js.map +1 -1
  246. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +2 -2
  247. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
  248. package/dist/src/ui/components/PrepareLabel.test.js +14 -8
  249. package/dist/src/ui/components/PrepareLabel.test.js.map +1 -1
  250. package/dist/src/ui/components/ProQuotaDialog.test.js +14 -6
  251. package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -1
  252. package/dist/src/ui/components/QueuedMessageDisplay.test.js +11 -6
  253. package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -1
  254. package/dist/src/ui/components/SessionSummaryDisplay.test.js +1 -1
  255. package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -1
  256. package/dist/src/ui/components/SettingsDialog.js +32 -25
  257. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  258. package/dist/src/ui/components/SettingsDialog.test.js +428 -532
  259. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  260. package/dist/src/ui/components/ShellConfirmationDialog.js +1 -1
  261. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  262. package/dist/src/ui/components/ShellConfirmationDialog.test.js +2 -2
  263. package/dist/src/ui/components/ShellConfirmationDialog.test.js.map +1 -1
  264. package/dist/src/ui/components/StatsDisplay.test.js +1 -1
  265. package/dist/src/ui/components/StatsDisplay.test.js.map +1 -1
  266. package/dist/src/ui/components/SuggestionsDisplay.js +1 -1
  267. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  268. package/dist/src/ui/components/ThemeDialog.test.js +2 -2
  269. package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
  270. package/dist/src/ui/components/ToolStatsDisplay.test.js +1 -1
  271. package/dist/src/ui/components/ToolStatsDisplay.test.js.map +1 -1
  272. package/dist/src/ui/components/messages/CompressionMessage.test.js +25 -17
  273. package/dist/src/ui/components/messages/CompressionMessage.test.js.map +1 -1
  274. package/dist/src/ui/components/messages/DiffRenderer.test.js +1 -1
  275. package/dist/src/ui/components/messages/DiffRenderer.test.js.map +1 -1
  276. package/dist/src/ui/components/messages/InfoMessage.js +1 -1
  277. package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
  278. package/dist/src/ui/components/messages/Todo.js +27 -5
  279. package/dist/src/ui/components/messages/Todo.js.map +1 -1
  280. package/dist/src/ui/components/messages/Todo.test.js +20 -8
  281. package/dist/src/ui/components/messages/Todo.test.js.map +1 -1
  282. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +1 -1
  283. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  284. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +29 -15
  285. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  286. package/dist/src/ui/components/messages/WarningMessage.js +2 -2
  287. package/dist/src/ui/components/messages/WarningMessage.js.map +1 -1
  288. package/dist/src/ui/components/shared/BaseSelectionList.test.js +1 -1
  289. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
  290. package/dist/src/ui/components/shared/MaxSizedBox.test.js +43 -22
  291. package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +1 -1
  292. package/dist/src/ui/components/shared/TextInput.d.ts +15 -0
  293. package/dist/src/ui/components/shared/TextInput.js +38 -0
  294. package/dist/src/ui/components/shared/TextInput.js.map +1 -0
  295. package/dist/src/ui/components/shared/TextInput.test.d.ts +6 -0
  296. package/dist/src/ui/components/shared/TextInput.test.js +242 -0
  297. package/dist/src/ui/components/shared/TextInput.test.js.map +1 -0
  298. package/dist/src/ui/components/shared/text-buffer.d.ts +9 -2
  299. package/dist/src/ui/components/shared/text-buffer.js +51 -13
  300. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  301. package/dist/src/ui/components/shared/text-buffer.test.js +385 -202
  302. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
  303. package/dist/src/ui/components/views/ChatList.test.js +7 -4
  304. package/dist/src/ui/components/views/ChatList.test.js.map +1 -1
  305. package/dist/src/ui/components/views/ExtensionsList.d.ts +7 -1
  306. package/dist/src/ui/components/views/ExtensionsList.js +9 -11
  307. package/dist/src/ui/components/views/ExtensionsList.js.map +1 -1
  308. package/dist/src/ui/components/views/ExtensionsList.test.js +43 -22
  309. package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -1
  310. package/dist/src/ui/components/views/McpStatus.test.js +23 -12
  311. package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
  312. package/dist/src/ui/contexts/KeypressContext.d.ts +3 -2
  313. package/dist/src/ui/contexts/KeypressContext.js +610 -540
  314. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  315. package/dist/src/ui/contexts/KeypressContext.test.js +438 -718
  316. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  317. package/dist/src/ui/contexts/MouseContext.d.ts +21 -0
  318. package/dist/src/ui/contexts/MouseContext.js +89 -0
  319. package/dist/src/ui/contexts/MouseContext.js.map +1 -0
  320. package/dist/src/ui/contexts/MouseContext.test.d.ts +6 -0
  321. package/dist/src/ui/contexts/MouseContext.test.js +164 -0
  322. package/dist/src/ui/contexts/MouseContext.test.js.map +1 -0
  323. package/dist/src/ui/contexts/SessionContext.test.js +35 -17
  324. package/dist/src/ui/contexts/SessionContext.test.js.map +1 -1
  325. package/dist/src/ui/contexts/UIActionsContext.d.ts +2 -0
  326. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  327. package/dist/src/ui/contexts/UIStateContext.d.ts +2 -0
  328. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  329. package/dist/src/ui/hooks/atCommandProcessor.js +31 -9
  330. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  331. package/dist/src/ui/hooks/atCommandProcessor.test.js +163 -64
  332. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  333. package/dist/src/ui/hooks/shellCommandProcessor.test.js +64 -35
  334. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  335. package/dist/src/ui/hooks/slashCommandProcessor.test.js +193 -165
  336. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  337. package/dist/src/ui/hooks/useAtCompletion.test.js +16 -5
  338. package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
  339. package/dist/src/ui/hooks/useAutoAcceptIndicator.js +10 -0
  340. package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -1
  341. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +32 -1
  342. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
  343. package/dist/src/ui/hooks/useCommandCompletion.test.js +66 -64
  344. package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -1
  345. package/dist/src/ui/hooks/useConsoleMessages.test.js +26 -9
  346. package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -1
  347. package/dist/src/ui/hooks/useEditorSettings.test.js +40 -34
  348. package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
  349. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +14 -5
  350. package/dist/src/ui/hooks/useExtensionUpdates.js +18 -13
  351. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
  352. package/dist/src/ui/hooks/useExtensionUpdates.test.js +49 -44
  353. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
  354. package/dist/src/ui/hooks/useFlickerDetector.test.js +9 -5
  355. package/dist/src/ui/hooks/useFlickerDetector.test.js.map +1 -1
  356. package/dist/src/ui/hooks/useFocus.test.js +25 -9
  357. package/dist/src/ui/hooks/useFocus.test.js.map +1 -1
  358. package/dist/src/ui/hooks/useFolderTrust.test.js +46 -22
  359. package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
  360. package/dist/src/ui/hooks/useGeminiStream.js +56 -19
  361. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  362. package/dist/src/ui/hooks/useGeminiStream.test.js +260 -411
  363. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  364. package/dist/src/ui/hooks/useGitBranchName.js +4 -0
  365. package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
  366. package/dist/src/ui/hooks/useGitBranchName.test.js +46 -34
  367. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  368. package/dist/src/ui/hooks/useHistoryManager.test.js +2 -1
  369. package/dist/src/ui/hooks/useHistoryManager.test.js.map +1 -1
  370. package/dist/src/ui/hooks/useIdeTrustListener.test.js +40 -9
  371. package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -1
  372. package/dist/src/ui/hooks/useInputHistory.test.js +2 -1
  373. package/dist/src/ui/hooks/useInputHistory.test.js.map +1 -1
  374. package/dist/src/ui/hooks/useInputHistoryStore.test.js +2 -1
  375. package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -1
  376. package/dist/src/ui/hooks/useKeypress.test.js +103 -114
  377. package/dist/src/ui/hooks/useKeypress.test.js.map +1 -1
  378. package/dist/src/ui/hooks/useLoadingIndicator.test.js +24 -6
  379. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  380. package/dist/src/ui/hooks/useMemoryMonitor.test.js +10 -5
  381. package/dist/src/ui/hooks/useMemoryMonitor.test.js.map +1 -1
  382. package/dist/src/ui/hooks/useMessageQueue.test.js +62 -45
  383. package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
  384. package/dist/src/ui/hooks/useModelCommand.test.js +21 -11
  385. package/dist/src/ui/hooks/useModelCommand.test.js.map +1 -1
  386. package/dist/src/ui/hooks/useMouse.d.ts +17 -0
  387. package/dist/src/ui/hooks/useMouse.js +27 -0
  388. package/dist/src/ui/hooks/useMouse.js.map +1 -0
  389. package/dist/src/ui/hooks/useMouse.test.d.ts +6 -0
  390. package/dist/src/ui/hooks/useMouse.test.js +57 -0
  391. package/dist/src/ui/hooks/useMouse.test.js.map +1 -0
  392. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +2 -2
  393. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -1
  394. package/dist/src/ui/hooks/usePhraseCycler.js +1 -1
  395. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  396. package/dist/src/ui/hooks/usePhraseCycler.test.js +109 -106
  397. package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -1
  398. package/dist/src/ui/hooks/usePrivacySettings.test.js +26 -6
  399. package/dist/src/ui/hooks/usePrivacySettings.test.js.map +1 -1
  400. package/dist/src/ui/hooks/usePromptCompletion.js +2 -2
  401. package/dist/src/ui/hooks/usePromptCompletion.js.map +1 -1
  402. package/dist/src/ui/hooks/useQuotaAndFallback.js +13 -14
  403. package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -1
  404. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +55 -48
  405. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
  406. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +8 -1
  407. package/dist/src/ui/hooks/useReactToolScheduler.js +59 -34
  408. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  409. package/dist/src/ui/hooks/useReactToolScheduler.test.d.ts +6 -0
  410. package/dist/src/ui/hooks/useReactToolScheduler.test.js +65 -0
  411. package/dist/src/ui/hooks/useReactToolScheduler.test.js.map +1 -0
  412. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +2 -2
  413. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +1 -1
  414. package/dist/src/ui/hooks/useSelectionList.js +5 -4
  415. package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
  416. package/dist/src/ui/hooks/useSelectionList.test.js +272 -183
  417. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
  418. package/dist/src/ui/hooks/useShellHistory.test.js +52 -20
  419. package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
  420. package/dist/src/ui/hooks/useSlashCompletion.js +18 -7
  421. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  422. package/dist/src/ui/hooks/useSlashCompletion.test.js +275 -137
  423. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  424. package/dist/src/ui/hooks/useTimer.test.js +43 -14
  425. package/dist/src/ui/hooks/useTimer.test.js.map +1 -1
  426. package/dist/src/ui/hooks/useToolScheduler.test.js +226 -242
  427. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  428. package/dist/src/ui/hooks/vim.test.js +235 -355
  429. package/dist/src/ui/hooks/vim.test.js.map +1 -1
  430. package/dist/src/ui/keyMatchers.test.js +30 -3
  431. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  432. package/dist/src/ui/state/extensions.d.ts +1 -0
  433. package/dist/src/ui/state/extensions.js +1 -0
  434. package/dist/src/ui/state/extensions.js.map +1 -1
  435. package/dist/src/ui/themes/ansi-light.js +1 -0
  436. package/dist/src/ui/themes/ansi-light.js.map +1 -1
  437. package/dist/src/ui/themes/ansi.js +1 -0
  438. package/dist/src/ui/themes/ansi.js.map +1 -1
  439. package/dist/src/ui/themes/atom-one-dark.js +2 -0
  440. package/dist/src/ui/themes/atom-one-dark.js.map +1 -1
  441. package/dist/src/ui/themes/ayu-light.js +2 -0
  442. package/dist/src/ui/themes/ayu-light.js.map +1 -1
  443. package/dist/src/ui/themes/ayu.js +2 -0
  444. package/dist/src/ui/themes/ayu.js.map +1 -1
  445. package/dist/src/ui/themes/color-utils.d.ts +1 -0
  446. package/dist/src/ui/themes/color-utils.js +6 -0
  447. package/dist/src/ui/themes/color-utils.js.map +1 -1
  448. package/dist/src/ui/themes/color-utils.test.js +13 -1
  449. package/dist/src/ui/themes/color-utils.test.js.map +1 -1
  450. package/dist/src/ui/themes/dracula.js +2 -0
  451. package/dist/src/ui/themes/dracula.js.map +1 -1
  452. package/dist/src/ui/themes/github-dark.js +2 -0
  453. package/dist/src/ui/themes/github-dark.js.map +1 -1
  454. package/dist/src/ui/themes/github-light.js +2 -0
  455. package/dist/src/ui/themes/github-light.js.map +1 -1
  456. package/dist/src/ui/themes/googlecode.js +2 -0
  457. package/dist/src/ui/themes/googlecode.js.map +1 -1
  458. package/dist/src/ui/themes/no-color.js +3 -0
  459. package/dist/src/ui/themes/no-color.js.map +1 -1
  460. package/dist/src/ui/themes/semantic-tokens.d.ts +2 -0
  461. package/dist/src/ui/themes/semantic-tokens.js +6 -0
  462. package/dist/src/ui/themes/semantic-tokens.js.map +1 -1
  463. package/dist/src/ui/themes/shades-of-purple.js +2 -0
  464. package/dist/src/ui/themes/shades-of-purple.js.map +1 -1
  465. package/dist/src/ui/themes/theme.d.ts +3 -0
  466. package/dist/src/ui/themes/theme.js +14 -3
  467. package/dist/src/ui/themes/theme.js.map +1 -1
  468. package/dist/src/ui/themes/theme.test.js +67 -1
  469. package/dist/src/ui/themes/theme.test.js.map +1 -1
  470. package/dist/src/ui/themes/xcode.js +2 -0
  471. package/dist/src/ui/themes/xcode.js.map +1 -1
  472. package/dist/src/ui/types.d.ts +3 -1
  473. package/dist/src/ui/types.js +2 -0
  474. package/dist/src/ui/types.js.map +1 -1
  475. package/dist/src/ui/utils/CodeColorizer.js +2 -1
  476. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  477. package/dist/src/ui/utils/InlineMarkdownRenderer.d.ts +1 -0
  478. package/dist/src/ui/utils/InlineMarkdownRenderer.js +11 -10
  479. package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
  480. package/dist/src/ui/utils/MarkdownDisplay.js +11 -9
  481. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  482. package/dist/src/ui/utils/clipboardUtils.js +2 -2
  483. package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
  484. package/dist/src/ui/utils/input.d.ts +17 -0
  485. package/dist/src/ui/utils/input.js +51 -0
  486. package/dist/src/ui/utils/input.js.map +1 -0
  487. package/dist/src/ui/utils/input.test.d.ts +6 -0
  488. package/dist/src/ui/utils/input.test.js +44 -0
  489. package/dist/src/ui/utils/input.test.js.map +1 -0
  490. package/dist/src/ui/utils/kittyProtocolDetector.js +13 -4
  491. package/dist/src/ui/utils/kittyProtocolDetector.js.map +1 -1
  492. package/dist/src/ui/utils/mouse.d.ts +31 -0
  493. package/dist/src/ui/utils/mouse.js +164 -0
  494. package/dist/src/ui/utils/mouse.js.map +1 -0
  495. package/dist/src/ui/utils/mouse.test.d.ts +6 -0
  496. package/dist/src/ui/utils/mouse.test.js +131 -0
  497. package/dist/src/ui/utils/mouse.test.js.map +1 -0
  498. package/dist/src/ui/utils/textOutput.d.ts +25 -0
  499. package/dist/src/ui/utils/textOutput.js +49 -0
  500. package/dist/src/ui/utils/textOutput.js.map +1 -0
  501. package/dist/src/ui/utils/textOutput.test.d.ts +6 -0
  502. package/dist/src/ui/utils/textOutput.test.js +79 -0
  503. package/dist/src/ui/utils/textOutput.test.js.map +1 -0
  504. package/dist/src/ui/utils/updateCheck.d.ts +7 -1
  505. package/dist/src/ui/utils/updateCheck.js +33 -29
  506. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  507. package/dist/src/ui/utils/updateCheck.test.js +24 -50
  508. package/dist/src/ui/utils/updateCheck.test.js.map +1 -1
  509. package/dist/src/utils/commentJson.js +2 -2
  510. package/dist/src/utils/commentJson.js.map +1 -1
  511. package/dist/src/utils/commentJson.test.js +7 -6
  512. package/dist/src/utils/commentJson.test.js.map +1 -1
  513. package/dist/src/utils/envVarResolver.d.ts +2 -2
  514. package/dist/src/utils/envVarResolver.js +10 -7
  515. package/dist/src/utils/envVarResolver.js.map +1 -1
  516. package/dist/src/utils/events.d.ts +11 -2
  517. package/dist/src/utils/events.js +1 -0
  518. package/dist/src/utils/events.js.map +1 -1
  519. package/dist/src/utils/handleAutoUpdate.js +9 -3
  520. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  521. package/dist/src/utils/sandbox.js +16 -18
  522. package/dist/src/utils/sandbox.js.map +1 -1
  523. package/dist/src/utils/version.js +6 -2
  524. package/dist/src/utils/version.js.map +1 -1
  525. package/dist/src/zed-integration/acp.js +2 -1
  526. package/dist/src/zed-integration/acp.js.map +1 -1
  527. package/dist/src/zed-integration/schema.d.ts +4 -4
  528. package/dist/src/zed-integration/zedIntegration.d.ts +2 -2
  529. package/dist/src/zed-integration/zedIntegration.js +12 -19
  530. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  531. package/dist/tsconfig.tsbuildinfo +1 -1
  532. package/package.json +18 -14
  533. package/dist/src/config/policy.test.js +0 -360
  534. package/dist/src/config/policy.test.js.map +0 -1
  535. package/dist/src/utils/package.d.ts +0 -12
  536. package/dist/src/utils/package.js +0 -24
  537. package/dist/src/utils/package.js.map +0 -1
  538. /package/dist/src/{config/policy.test.d.ts → commands/extensions/validate.test.d.ts} +0 -0
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
1
2
  /**
2
3
  * @license
3
4
  * Copyright 2025 Google LLC
@@ -5,7 +6,7 @@
5
6
  */
6
7
  import { afterEach, beforeEach, describe, expect, it, vi, } from 'vitest';
7
8
  import { act } from 'react';
8
- import { renderHook } from '@testing-library/react';
9
+ import { render } from '../../test-utils/render.js';
9
10
  import { useEditorSettings } from './useEditorSettings.js';
10
11
  import { SettingScope } from '../../config/settings.js';
11
12
  import { MessageType } from '../types.js';
@@ -24,6 +25,11 @@ describe('useEditorSettings', () => {
24
25
  let mockLoadedSettings;
25
26
  let mockSetEditorError;
26
27
  let mockAddItem;
28
+ let result;
29
+ function TestComponent() {
30
+ result = useEditorSettings(mockLoadedSettings, mockSetEditorError, mockAddItem);
31
+ return null;
32
+ }
27
33
  beforeEach(() => {
28
34
  vi.resetAllMocks();
29
35
  mockLoadedSettings = {
@@ -39,31 +45,31 @@ describe('useEditorSettings', () => {
39
45
  vi.restoreAllMocks();
40
46
  });
41
47
  it('should initialize with dialog closed', () => {
42
- const { result } = renderHook(() => useEditorSettings(mockLoadedSettings, mockSetEditorError, mockAddItem));
43
- expect(result.current.isEditorDialogOpen).toBe(false);
48
+ render(_jsx(TestComponent, {}));
49
+ expect(result.isEditorDialogOpen).toBe(false);
44
50
  });
45
51
  it('should open editor dialog when openEditorDialog is called', () => {
46
- const { result } = renderHook(() => useEditorSettings(mockLoadedSettings, mockSetEditorError, mockAddItem));
52
+ render(_jsx(TestComponent, {}));
47
53
  act(() => {
48
- result.current.openEditorDialog();
54
+ result.openEditorDialog();
49
55
  });
50
- expect(result.current.isEditorDialogOpen).toBe(true);
56
+ expect(result.isEditorDialogOpen).toBe(true);
51
57
  });
52
58
  it('should close editor dialog when exitEditorDialog is called', () => {
53
- const { result } = renderHook(() => useEditorSettings(mockLoadedSettings, mockSetEditorError, mockAddItem));
59
+ render(_jsx(TestComponent, {}));
54
60
  act(() => {
55
- result.current.openEditorDialog();
56
- result.current.exitEditorDialog();
61
+ result.openEditorDialog();
62
+ result.exitEditorDialog();
57
63
  });
58
- expect(result.current.isEditorDialogOpen).toBe(false);
64
+ expect(result.isEditorDialogOpen).toBe(false);
59
65
  });
60
66
  it('should handle editor selection successfully', () => {
61
- const { result } = renderHook(() => useEditorSettings(mockLoadedSettings, mockSetEditorError, mockAddItem));
67
+ render(_jsx(TestComponent, {}));
62
68
  const editorType = 'vscode';
63
69
  const scope = SettingScope.User;
64
70
  act(() => {
65
- result.current.openEditorDialog();
66
- result.current.handleEditorSelect(editorType, scope);
71
+ result.openEditorDialog();
72
+ result.handleEditorSelect(editorType, scope);
67
73
  });
68
74
  expect(mockLoadedSettings.setValue).toHaveBeenCalledWith(scope, 'preferredEditor', editorType);
69
75
  expect(mockAddItem).toHaveBeenCalledWith({
@@ -71,14 +77,14 @@ describe('useEditorSettings', () => {
71
77
  text: 'Editor preference set to "vscode" in User settings.',
72
78
  }, expect.any(Number));
73
79
  expect(mockSetEditorError).toHaveBeenCalledWith(null);
74
- expect(result.current.isEditorDialogOpen).toBe(false);
80
+ expect(result.isEditorDialogOpen).toBe(false);
75
81
  });
76
82
  it('should handle clearing editor preference (undefined editor)', () => {
77
- const { result } = renderHook(() => useEditorSettings(mockLoadedSettings, mockSetEditorError, mockAddItem));
83
+ render(_jsx(TestComponent, {}));
78
84
  const scope = SettingScope.Workspace;
79
85
  act(() => {
80
- result.current.openEditorDialog();
81
- result.current.handleEditorSelect(undefined, scope);
86
+ result.openEditorDialog();
87
+ result.handleEditorSelect(undefined, scope);
82
88
  });
83
89
  expect(mockLoadedSettings.setValue).toHaveBeenCalledWith(scope, 'preferredEditor', undefined);
84
90
  expect(mockAddItem).toHaveBeenCalledWith({
@@ -86,15 +92,15 @@ describe('useEditorSettings', () => {
86
92
  text: 'Editor preference cleared in Workspace settings.',
87
93
  }, expect.any(Number));
88
94
  expect(mockSetEditorError).toHaveBeenCalledWith(null);
89
- expect(result.current.isEditorDialogOpen).toBe(false);
95
+ expect(result.isEditorDialogOpen).toBe(false);
90
96
  });
91
97
  it('should handle different editor types', () => {
92
- const { result } = renderHook(() => useEditorSettings(mockLoadedSettings, mockSetEditorError, mockAddItem));
98
+ render(_jsx(TestComponent, {}));
93
99
  const editorTypes = ['cursor', 'windsurf', 'vim'];
94
100
  const scope = SettingScope.User;
95
101
  editorTypes.forEach((editorType) => {
96
102
  act(() => {
97
- result.current.handleEditorSelect(editorType, scope);
103
+ result.handleEditorSelect(editorType, scope);
98
104
  });
99
105
  expect(mockLoadedSettings.setValue).toHaveBeenCalledWith(scope, 'preferredEditor', editorType);
100
106
  expect(mockAddItem).toHaveBeenCalledWith({
@@ -104,12 +110,12 @@ describe('useEditorSettings', () => {
104
110
  });
105
111
  });
106
112
  it('should handle different setting scopes', () => {
107
- const { result } = renderHook(() => useEditorSettings(mockLoadedSettings, mockSetEditorError, mockAddItem));
113
+ render(_jsx(TestComponent, {}));
108
114
  const editorType = 'vscode';
109
115
  const scopes = [SettingScope.User, SettingScope.Workspace];
110
116
  scopes.forEach((scope) => {
111
117
  act(() => {
112
- result.current.handleEditorSelect(editorType, scope);
118
+ result.handleEditorSelect(editorType, scope);
113
119
  });
114
120
  expect(mockLoadedSettings.setValue).toHaveBeenCalledWith(scope, 'preferredEditor', editorType);
115
121
  expect(mockAddItem).toHaveBeenCalledWith({
@@ -119,33 +125,33 @@ describe('useEditorSettings', () => {
119
125
  });
120
126
  });
121
127
  it('should not set preference for unavailable editors', () => {
122
- const { result } = renderHook(() => useEditorSettings(mockLoadedSettings, mockSetEditorError, mockAddItem));
128
+ render(_jsx(TestComponent, {}));
123
129
  mockCheckHasEditorType.mockReturnValue(false);
124
130
  const editorType = 'vscode';
125
131
  const scope = SettingScope.User;
126
132
  act(() => {
127
- result.current.openEditorDialog();
128
- result.current.handleEditorSelect(editorType, scope);
133
+ result.openEditorDialog();
134
+ result.handleEditorSelect(editorType, scope);
129
135
  });
130
136
  expect(mockLoadedSettings.setValue).not.toHaveBeenCalled();
131
137
  expect(mockAddItem).not.toHaveBeenCalled();
132
- expect(result.current.isEditorDialogOpen).toBe(true);
138
+ expect(result.isEditorDialogOpen).toBe(true);
133
139
  });
134
140
  it('should not set preference for editors not allowed in sandbox', () => {
135
- const { result } = renderHook(() => useEditorSettings(mockLoadedSettings, mockSetEditorError, mockAddItem));
141
+ render(_jsx(TestComponent, {}));
136
142
  mockAllowEditorTypeInSandbox.mockReturnValue(false);
137
143
  const editorType = 'vscode';
138
144
  const scope = SettingScope.User;
139
145
  act(() => {
140
- result.current.openEditorDialog();
141
- result.current.handleEditorSelect(editorType, scope);
146
+ result.openEditorDialog();
147
+ result.handleEditorSelect(editorType, scope);
142
148
  });
143
149
  expect(mockLoadedSettings.setValue).not.toHaveBeenCalled();
144
150
  expect(mockAddItem).not.toHaveBeenCalled();
145
- expect(result.current.isEditorDialogOpen).toBe(true);
151
+ expect(result.isEditorDialogOpen).toBe(true);
146
152
  });
147
153
  it('should handle errors during editor selection', () => {
148
- const { result } = renderHook(() => useEditorSettings(mockLoadedSettings, mockSetEditorError, mockAddItem));
154
+ render(_jsx(TestComponent, {}));
149
155
  const errorMessage = 'Failed to save settings';
150
156
  mockLoadedSettings.setValue.mockImplementation(() => {
151
157
  throw new Error(errorMessage);
@@ -153,12 +159,12 @@ describe('useEditorSettings', () => {
153
159
  const editorType = 'vscode';
154
160
  const scope = SettingScope.User;
155
161
  act(() => {
156
- result.current.openEditorDialog();
157
- result.current.handleEditorSelect(editorType, scope);
162
+ result.openEditorDialog();
163
+ result.handleEditorSelect(editorType, scope);
158
164
  });
159
165
  expect(mockSetEditorError).toHaveBeenCalledWith(`Failed to set editor preference: Error: ${errorMessage}`);
160
166
  expect(mockAddItem).not.toHaveBeenCalled();
161
- expect(result.current.isEditorDialogOpen).toBe(true);
167
+ expect(result.isEditorDialogOpen).toBe(true);
162
168
  });
163
169
  });
164
170
  //# sourceMappingURL=useEditorSettings.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useEditorSettings.test.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useEditorSettings.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useEditorSettings.test.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useEditorSettings.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,EACN,EAAE,EACF,EAAE,GAEH,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAoB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAEL,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;IAC5C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;IAChE,OAAO;QACL,GAAG,MAAM;QACT,kBAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QACrC,wBAAwB,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KAC5C,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC7D,MAAM,4BAA4B,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAEzE,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,kBAAkC,CAAC;IACvC,IAAI,kBAAkE,CAAC;IACvE,IAAI,WAEH,CAAC;IACF,IAAI,MAA4C,CAAC;IAEjD,SAAS,aAAa;QACpB,MAAM,GAAG,iBAAiB,CACxB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,CACZ,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QAEnB,kBAAkB,GAAG;YACnB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;SACW,CAAC;QAE/B,kBAAkB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAEtB,wCAAwC;QACxC,sBAAsB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC7C,4BAA4B,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,KAAC,aAAa,KAAG,CAAC,CAAC;QAE1B,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,KAAC,aAAa,KAAG,CAAC,CAAC;QAE1B,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,CAAC,KAAC,aAAa,KAAG,CAAC,CAAC;QAC1B,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,KAAC,aAAa,KAAG,CAAC,CAAC;QAE1B,MAAM,UAAU,GAAe,QAAQ,CAAC;QACxC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC;QAEhC,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACtD,KAAK,EACL,iBAAiB,EACjB,UAAU,CACX,CAAC;QAEF,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CACtC;YACE,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,qDAAqD;SAC5D,EACD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;QAEF,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,CAAC,KAAC,aAAa,KAAG,CAAC,CAAC;QAE1B,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC;QAErC,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACtD,KAAK,EACL,iBAAiB,EACjB,SAAS,CACV,CAAC;QAEF,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CACtC;YACE,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,kDAAkD;SACzD,EACD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;QAEF,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,KAAC,aAAa,KAAG,CAAC,CAAC;QAE1B,MAAM,WAAW,GAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC;QAEhC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACjC,GAAG,CAAC,GAAG,EAAE;gBACP,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACtD,KAAK,EACL,iBAAiB,EACjB,UAAU,CACX,CAAC;YAEF,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CACtC;gBACE,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,IAAI,EAAE,6BAA6B,UAAU,qBAAqB;aACnE,EACD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,KAAC,aAAa,KAAG,CAAC,CAAC;QAE1B,MAAM,UAAU,GAAe,QAAQ,CAAC;QACxC,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAE3D,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvB,GAAG,CAAC,GAAG,EAAE;gBACP,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACtD,KAAK,EACL,iBAAiB,EACjB,UAAU,CACX,CAAC;YAEF,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CACtC;gBACE,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,IAAI,EAAE,wCAAwC,KAAK,YAAY;aAChE,EACD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,KAAC,aAAa,KAAG,CAAC,CAAC;QAE1B,sBAAsB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAE9C,MAAM,UAAU,GAAe,QAAQ,CAAC;QACxC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC;QAEhC,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3D,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,CAAC,KAAC,aAAa,KAAG,CAAC,CAAC;QAE1B,4BAA4B,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEpD,MAAM,UAAU,GAAe,QAAQ,CAAC;QACxC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC;QAEhC,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3D,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,KAAC,aAAa,KAAG,CAAC,CAAC;QAE1B,MAAM,YAAY,GAAG,yBAAyB,CAAC;QAE7C,kBAAkB,CAAC,QAGpB,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAe,QAAQ,CAAC;QACxC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC;QAEhC,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAC7C,2CAA2C,YAAY,EAAE,CAC1D,CAAC;QACF,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -3,20 +3,29 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import type { GeminiCLIExtension } from '@google/gemini-cli-core';
7
6
  import { ExtensionUpdateState } from '../state/extensions.js';
8
7
  import type { UseHistoryManagerReturn } from './useHistoryManager.js';
9
8
  import { type ConfirmationRequest } from '../types.js';
10
- import type { ExtensionEnablementManager } from '../../config/extensions/extensionEnablement.js';
9
+ import type { ExtensionManager } from '../../config/extension-manager.js';
11
10
  type ConfirmationRequestWrapper = {
12
11
  prompt: React.ReactNode;
13
12
  onConfirm: (confirmed: boolean) => void;
14
13
  };
15
- export declare const useExtensionUpdates: (extensions: GeminiCLIExtension[], extensionEnablementManager: ExtensionEnablementManager, addItem: UseHistoryManagerReturn["addItem"], cwd: string) => {
14
+ type ConfirmationRequestAction = {
15
+ type: 'add';
16
+ request: ConfirmationRequestWrapper;
17
+ } | {
18
+ type: 'remove';
19
+ request: ConfirmationRequestWrapper;
20
+ };
21
+ export declare const useConfirmUpdateRequests: () => {
22
+ addConfirmUpdateExtensionRequest: (original: ConfirmationRequest) => void;
23
+ confirmUpdateExtensionRequests: ConfirmationRequestWrapper[];
24
+ dispatchConfirmUpdateExtensionRequests: import("react").ActionDispatch<[action: ConfirmationRequestAction]>;
25
+ };
26
+ export declare const useExtensionUpdates: (extensionManager: ExtensionManager, addItem: UseHistoryManagerReturn["addItem"], enableExtensionReloading: boolean) => {
16
27
  extensionsUpdateState: Map<string, ExtensionUpdateState>;
17
28
  extensionsUpdateStateInternal: Map<string, import("../state/extensions.js").ExtensionUpdateStatus>;
18
29
  dispatchExtensionStateUpdate: import("react").ActionDispatch<[action: import("../state/extensions.js").ExtensionUpdateAction]>;
19
- confirmUpdateExtensionRequests: ConfirmationRequestWrapper[];
20
- addConfirmUpdateExtensionRequest: (original: ConfirmationRequest) => void;
21
30
  };
22
31
  export {};
@@ -3,12 +3,13 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { debugLogger } from '@google/gemini-cli-core';
6
7
  import { getErrorMessage } from '../../utils/errors.js';
7
8
  import { ExtensionUpdateState, extensionUpdatesReducer, initialExtensionUpdatesState, } from '../state/extensions.js';
8
9
  import { useCallback, useEffect, useMemo, useReducer } from 'react';
9
10
  import { MessageType } from '../types.js';
10
11
  import { checkForAllExtensionUpdates, updateExtension, } from '../../config/extensions/update.js';
11
- import { requestConsentInteractive, } from '../../config/extension.js';
12
+ import {} from '../../config/extension.js';
12
13
  import { checkExhaustive } from '../../utils/checks.js';
13
14
  function confirmationRequestsReducer(state, action) {
14
15
  switch (action.type) {
@@ -20,8 +21,7 @@ function confirmationRequestsReducer(state, action) {
20
21
  checkExhaustive(action);
21
22
  }
22
23
  }
23
- export const useExtensionUpdates = (extensions, extensionEnablementManager, addItem, cwd) => {
24
- const [extensionsUpdateState, dispatchExtensionStateUpdate] = useReducer(extensionUpdatesReducer, initialExtensionUpdatesState);
24
+ export const useConfirmUpdateRequests = () => {
25
25
  const [confirmUpdateExtensionRequests, dispatchConfirmUpdateExtensionRequests,] = useReducer(confirmationRequestsReducer, []);
26
26
  const addConfirmUpdateExtensionRequest = useCallback((original) => {
27
27
  const wrappedRequest = {
@@ -40,6 +40,15 @@ export const useExtensionUpdates = (extensions, extensionEnablementManager, addI
40
40
  request: wrappedRequest,
41
41
  });
42
42
  }, [dispatchConfirmUpdateExtensionRequests]);
43
+ return {
44
+ addConfirmUpdateExtensionRequest,
45
+ confirmUpdateExtensionRequests,
46
+ dispatchConfirmUpdateExtensionRequests,
47
+ };
48
+ };
49
+ export const useExtensionUpdates = (extensionManager, addItem, enableExtensionReloading) => {
50
+ const [extensionsUpdateState, dispatchExtensionStateUpdate] = useReducer(extensionUpdatesReducer, initialExtensionUpdatesState);
51
+ const extensions = extensionManager.getExtensions();
43
52
  useEffect(() => {
44
53
  const extensionsToCheck = extensions.filter((extension) => {
45
54
  const currentStatus = extensionsUpdateState.extensionStatuses.get(extension.name);
@@ -50,12 +59,11 @@ export const useExtensionUpdates = (extensions, extensionEnablementManager, addI
50
59
  });
51
60
  if (extensionsToCheck.length === 0)
52
61
  return;
53
- checkForAllExtensionUpdates(extensionsToCheck, extensionEnablementManager, dispatchExtensionStateUpdate, cwd);
62
+ checkForAllExtensionUpdates(extensionsToCheck, extensionManager, dispatchExtensionStateUpdate);
54
63
  }, [
55
64
  extensions,
56
- extensionEnablementManager,
65
+ extensionManager,
57
66
  extensionsUpdateState.extensionStatuses,
58
- cwd,
59
67
  dispatchExtensionStateUpdate,
60
68
  ]);
61
69
  useEffect(() => {
@@ -103,7 +111,7 @@ export const useExtensionUpdates = (extensions, extensionEnablementManager, addI
103
111
  }
104
112
  }
105
113
  else {
106
- const updatePromise = updateExtension(extension, extensionEnablementManager, cwd, (description) => requestConsentInteractive(description, addConfirmUpdateExtensionRequest), currentState.status, dispatchExtensionStateUpdate);
114
+ const updatePromise = updateExtension(extension, extensionManager, currentState.status, dispatchExtensionStateUpdate, enableExtensionReloading);
107
115
  updatePromises.push(updatePromise);
108
116
  updatePromise
109
117
  .then((result) => {
@@ -137,18 +145,17 @@ export const useExtensionUpdates = (extensions, extensionEnablementManager, addI
137
145
  callback(nonNullResults);
138
146
  }
139
147
  catch (e) {
140
- console.error(getErrorMessage(e));
148
+ debugLogger.warn(getErrorMessage(e));
141
149
  }
142
150
  });
143
151
  });
144
152
  }
145
153
  }, [
146
154
  extensions,
147
- extensionEnablementManager,
155
+ extensionManager,
148
156
  extensionsUpdateState,
149
- addConfirmUpdateExtensionRequest,
150
157
  addItem,
151
- cwd,
158
+ enableExtensionReloading,
152
159
  ]);
153
160
  const extensionsUpdateStateComputed = useMemo(() => {
154
161
  const result = new Map();
@@ -161,8 +168,6 @@ export const useExtensionUpdates = (extensions, extensionEnablementManager, addI
161
168
  extensionsUpdateState: extensionsUpdateStateComputed,
162
169
  extensionsUpdateStateInternal: extensionsUpdateState.extensionStatuses,
163
170
  dispatchExtensionStateUpdate,
164
- confirmUpdateExtensionRequests,
165
- addConfirmUpdateExtensionRequest,
166
171
  };
167
172
  };
168
173
  //# sourceMappingURL=useExtensionUpdates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useExtensionUpdates.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useExtensionUpdates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useExtensionUpdates.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useExtensionUpdates.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
1
2
  /**
2
3
  * @license
3
4
  * Copyright 2025 Google LLC
@@ -7,20 +8,21 @@ import { vi } from 'vitest';
7
8
  import * as fs from 'node:fs';
8
9
  import * as os from 'node:os';
9
10
  import * as path from 'node:path';
10
- import { loadExtension } from '../../config/extension.js';
11
11
  import { createExtension } from '../../test-utils/createExtension.js';
12
12
  import { useExtensionUpdates } from './useExtensionUpdates.js';
13
13
  import { CELL_DIR } from '@google/gemini-cli-core';
14
- import { renderHook, waitFor } from '@testing-library/react';
14
+ import { render } from '../../test-utils/render.js';
15
+ import { waitFor } from '../../test-utils/async.js';
15
16
  import { MessageType } from '../types.js';
16
17
  import { checkForAllExtensionUpdates, updateExtension, } from '../../config/extensions/update.js';
17
18
  import { ExtensionUpdateState } from '../state/extensions.js';
18
- import { ExtensionEnablementManager } from '../../config/extensions/extensionEnablement.js';
19
+ import { ExtensionManager } from '../../config/extension-manager.js';
20
+ import { loadSettings } from '../../config/settings.js';
19
21
  vi.mock('os', async (importOriginal) => {
20
22
  const mockedOs = await importOriginal();
21
23
  return {
22
24
  ...mockedOs,
23
- homedir: vi.fn(),
25
+ homedir: vi.fn().mockReturnValue('/tmp/mock-home'),
24
26
  };
25
27
  });
26
28
  vi.mock('../../config/extensions/update.js', () => ({
@@ -29,24 +31,33 @@ vi.mock('../../config/extensions/update.js', () => ({
29
31
  }));
30
32
  describe('useExtensionUpdates', () => {
31
33
  let tempHomeDir;
34
+ let tempWorkspaceDir;
32
35
  let userExtensionsDir;
36
+ let extensionManager;
33
37
  beforeEach(() => {
34
38
  tempHomeDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cell-cli-test-home-'));
35
39
  vi.mocked(os.homedir).mockReturnValue(tempHomeDir);
40
+ tempWorkspaceDir = fs.mkdtempSync(path.join(tempHomeDir, 'gemini-cli-test-workspace-'));
41
+ vi.spyOn(process, 'cwd').mockReturnValue(tempWorkspaceDir);
36
42
  userExtensionsDir = path.join(tempHomeDir, CELL_DIR, 'extensions');
37
43
  fs.mkdirSync(userExtensionsDir, { recursive: true });
38
44
  vi.mocked(checkForAllExtensionUpdates).mockReset();
39
45
  vi.mocked(updateExtension).mockReset();
46
+ extensionManager = new ExtensionManager({
47
+ workspaceDir: tempHomeDir,
48
+ requestConsent: vi.fn(),
49
+ requestSetting: vi.fn(),
50
+ settings: loadSettings().merged,
51
+ });
40
52
  });
41
53
  afterEach(() => {
42
54
  fs.rmSync(tempHomeDir, { recursive: true, force: true });
43
55
  });
44
56
  it('should check for updates and log a message if an update is available', async () => {
45
- const extensions = [
57
+ vi.spyOn(extensionManager, 'getExtensions').mockReturnValue([
46
58
  {
47
59
  name: 'test-extension',
48
60
  id: 'test-extension-id',
49
- type: 'git',
50
61
  version: '1.0.0',
51
62
  path: '/some/path',
52
63
  isActive: true,
@@ -57,10 +68,9 @@ describe('useExtensionUpdates', () => {
57
68
  },
58
69
  contextFiles: [],
59
70
  },
60
- ];
71
+ ]);
61
72
  const addItem = vi.fn();
62
- const cwd = '/test/cwd';
63
- vi.mocked(checkForAllExtensionUpdates).mockImplementation(async (_extensions, _extensionEnablementManager, dispatch, _cwd) => {
73
+ vi.mocked(checkForAllExtensionUpdates).mockImplementation(async (_extensions, _extensionManager, dispatch) => {
64
74
  dispatch({
65
75
  type: 'SET_STATE',
66
76
  payload: {
@@ -69,7 +79,11 @@ describe('useExtensionUpdates', () => {
69
79
  },
70
80
  });
71
81
  });
72
- renderHook(() => useExtensionUpdates(extensions, new ExtensionEnablementManager(), addItem, cwd));
82
+ function TestComponent() {
83
+ useExtensionUpdates(extensionManager, addItem, false);
84
+ return null;
85
+ }
86
+ render(_jsx(TestComponent, {}));
73
87
  await waitFor(() => {
74
88
  expect(addItem).toHaveBeenCalledWith({
75
89
  type: MessageType.INFO,
@@ -78,7 +92,7 @@ describe('useExtensionUpdates', () => {
78
92
  });
79
93
  });
80
94
  it('should check for updates and automatically update if autoUpdate is true', async () => {
81
- const extensionDir = createExtension({
95
+ createExtension({
82
96
  extensionsDir: userExtensionsDir,
83
97
  name: 'test-extension',
84
98
  version: '1.0.0',
@@ -88,14 +102,9 @@ describe('useExtensionUpdates', () => {
88
102
  autoUpdate: true,
89
103
  },
90
104
  });
91
- const extensionEnablementManager = new ExtensionEnablementManager();
92
- const extension = loadExtension({
93
- extensionDir,
94
- workspaceDir: tempHomeDir,
95
- extensionEnablementManager,
96
- });
105
+ await extensionManager.loadExtensions();
97
106
  const addItem = vi.fn();
98
- vi.mocked(checkForAllExtensionUpdates).mockImplementation(async (_extensions, _extensionEnablementManager, dispatch, _cwd) => {
107
+ vi.mocked(checkForAllExtensionUpdates).mockImplementation(async (_extensions, _extensionManager, dispatch) => {
99
108
  dispatch({
100
109
  type: 'SET_STATE',
101
110
  payload: {
@@ -109,7 +118,11 @@ describe('useExtensionUpdates', () => {
109
118
  updatedVersion: '1.1.0',
110
119
  name: '',
111
120
  });
112
- renderHook(() => useExtensionUpdates([extension], extensionEnablementManager, addItem, tempHomeDir));
121
+ function TestComponent() {
122
+ useExtensionUpdates(extensionManager, addItem, false);
123
+ return null;
124
+ }
125
+ render(_jsx(TestComponent, {}));
113
126
  await waitFor(() => {
114
127
  expect(addItem).toHaveBeenCalledWith({
115
128
  type: MessageType.INFO,
@@ -118,7 +131,7 @@ describe('useExtensionUpdates', () => {
118
131
  }, { timeout: 4000 });
119
132
  });
120
133
  it('should batch update notifications for multiple extensions', async () => {
121
- const extensionDir1 = createExtension({
134
+ createExtension({
122
135
  extensionsDir: userExtensionsDir,
123
136
  name: 'test-extension-1',
124
137
  version: '1.0.0',
@@ -128,7 +141,7 @@ describe('useExtensionUpdates', () => {
128
141
  autoUpdate: true,
129
142
  },
130
143
  });
131
- const extensionDir2 = createExtension({
144
+ createExtension({
132
145
  extensionsDir: userExtensionsDir,
133
146
  name: 'test-extension-2',
134
147
  version: '2.0.0',
@@ -138,21 +151,9 @@ describe('useExtensionUpdates', () => {
138
151
  autoUpdate: true,
139
152
  },
140
153
  });
141
- const extensionEnablementManager = new ExtensionEnablementManager();
142
- const extensions = [
143
- loadExtension({
144
- extensionDir: extensionDir1,
145
- workspaceDir: tempHomeDir,
146
- extensionEnablementManager,
147
- }),
148
- loadExtension({
149
- extensionDir: extensionDir2,
150
- workspaceDir: tempHomeDir,
151
- extensionEnablementManager,
152
- }),
153
- ];
154
+ await extensionManager.loadExtensions();
154
155
  const addItem = vi.fn();
155
- vi.mocked(checkForAllExtensionUpdates).mockImplementation(async (_extensions, _extensionEnablementManager, dispatch, _cwd) => {
156
+ vi.mocked(checkForAllExtensionUpdates).mockImplementation(async (_extensions, _extensionManager, dispatch) => {
156
157
  dispatch({
157
158
  type: 'SET_STATE',
158
159
  payload: {
@@ -179,7 +180,11 @@ describe('useExtensionUpdates', () => {
179
180
  updatedVersion: '2.1.0',
180
181
  name: '',
181
182
  });
182
- renderHook(() => useExtensionUpdates(extensions, extensionEnablementManager, addItem, tempHomeDir));
183
+ function TestComponent() {
184
+ useExtensionUpdates(extensionManager, addItem, false);
185
+ return null;
186
+ }
187
+ render(_jsx(TestComponent, {}));
183
188
  await waitFor(() => {
184
189
  expect(addItem).toHaveBeenCalledTimes(2);
185
190
  expect(addItem).toHaveBeenCalledWith({
@@ -193,11 +198,10 @@ describe('useExtensionUpdates', () => {
193
198
  }, { timeout: 4000 });
194
199
  });
195
200
  it('should batch update notifications for multiple extensions with autoUpdate: false', async () => {
196
- const extensions = [
201
+ vi.spyOn(extensionManager, 'getExtensions').mockReturnValue([
197
202
  {
198
203
  name: 'test-extension-1',
199
204
  id: 'test-extension-1-id',
200
- type: 'git',
201
205
  version: '1.0.0',
202
206
  path: '/some/path1',
203
207
  isActive: true,
@@ -211,7 +215,6 @@ describe('useExtensionUpdates', () => {
211
215
  {
212
216
  name: 'test-extension-2',
213
217
  id: 'test-extension-2-id',
214
- type: 'git',
215
218
  version: '2.0.0',
216
219
  path: '/some/path2',
217
220
  isActive: true,
@@ -222,10 +225,9 @@ describe('useExtensionUpdates', () => {
222
225
  },
223
226
  contextFiles: [],
224
227
  },
225
- ];
228
+ ]);
226
229
  const addItem = vi.fn();
227
- const cwd = '/test/cwd';
228
- vi.mocked(checkForAllExtensionUpdates).mockImplementation(async (_extensions, _extensionEnablementManager, dispatch, _cwd) => {
230
+ vi.mocked(checkForAllExtensionUpdates).mockImplementation(async (_extensions, _extensionManager, dispatch) => {
229
231
  dispatch({ type: 'BATCH_CHECK_START' });
230
232
  dispatch({
231
233
  type: 'SET_STATE',
@@ -244,8 +246,11 @@ describe('useExtensionUpdates', () => {
244
246
  });
245
247
  dispatch({ type: 'BATCH_CHECK_END' });
246
248
  });
247
- const extensionEnablementManager = new ExtensionEnablementManager();
248
- renderHook(() => useExtensionUpdates(extensions, extensionEnablementManager, addItem, cwd));
249
+ function TestComponent() {
250
+ useExtensionUpdates(extensionManager, addItem, false);
251
+ return null;
252
+ }
253
+ render(_jsx(TestComponent, {}));
249
254
  await waitFor(() => {
250
255
  expect(addItem).toHaveBeenCalledTimes(1);
251
256
  expect(addItem).toHaveBeenCalledWith({