@google/gemini-cli 0.0.77777772 → 0.0.77777773

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 (374) hide show
  1. package/README.md +108 -71
  2. package/dist/package.json +8 -2
  3. package/dist/src/commands/extensions/examples/context/GEMINI.md +9 -3
  4. package/dist/src/commands/extensions/examples/context/gemini-extension.json +1 -2
  5. package/dist/src/commands/extensions/install.d.ts +2 -2
  6. package/dist/src/commands/extensions/install.js +35 -36
  7. package/dist/src/commands/extensions/install.js.map +1 -1
  8. package/dist/src/commands/extensions/install.test.js +22 -31
  9. package/dist/src/commands/extensions/install.test.js.map +1 -1
  10. package/dist/src/commands/extensions/link.js +2 -2
  11. package/dist/src/commands/extensions/link.js.map +1 -1
  12. package/dist/src/commands/extensions/new.js +22 -7
  13. package/dist/src/commands/extensions/new.js.map +1 -1
  14. package/dist/src/commands/extensions/new.test.js +14 -7
  15. package/dist/src/commands/extensions/new.test.js.map +1 -1
  16. package/dist/src/commands/extensions/uninstall.js +1 -1
  17. package/dist/src/commands/extensions/uninstall.js.map +1 -1
  18. package/dist/src/commands/extensions/update.js +18 -8
  19. package/dist/src/commands/extensions/update.js.map +1 -1
  20. package/dist/src/commands/mcp/list.js +5 -4
  21. package/dist/src/commands/mcp/list.js.map +1 -1
  22. package/dist/src/config/config.d.ts +5 -4
  23. package/dist/src/config/config.js +62 -22
  24. package/dist/src/config/config.js.map +1 -1
  25. package/dist/src/config/extension.d.ts +24 -20
  26. package/dist/src/config/extension.js +107 -102
  27. package/dist/src/config/extension.js.map +1 -1
  28. package/dist/src/config/extensions/extensionEnablement.d.ts +12 -9
  29. package/dist/src/config/extensions/extensionEnablement.js +36 -9
  30. package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
  31. package/dist/src/config/extensions/extensionEnablement.test.js +74 -1
  32. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
  33. package/dist/src/config/extensions/github.d.ts +9 -1
  34. package/dist/src/config/extensions/github.js +49 -79
  35. package/dist/src/config/extensions/github.js.map +1 -1
  36. package/dist/src/config/extensions/github.test.js +119 -12
  37. package/dist/src/config/extensions/github.test.js.map +1 -1
  38. package/dist/src/config/extensions/github_fetch.d.ts +7 -0
  39. package/dist/src/config/extensions/github_fetch.js +34 -0
  40. package/dist/src/config/extensions/github_fetch.js.map +1 -0
  41. package/dist/src/config/extensions/update.d.ts +4 -5
  42. package/dist/src/config/extensions/update.js +61 -44
  43. package/dist/src/config/extensions/update.js.map +1 -1
  44. package/dist/src/config/extensions/update.test.js +84 -69
  45. package/dist/src/config/extensions/update.test.js.map +1 -1
  46. package/dist/src/config/keyBindings.js +1 -1
  47. package/dist/src/config/keyBindings.js.map +1 -1
  48. package/dist/src/config/policy.js +2 -2
  49. package/dist/src/config/policy.js.map +1 -1
  50. package/dist/src/config/settings.d.ts +10 -1
  51. package/dist/src/config/settings.js +3 -3
  52. package/dist/src/config/settings.js.map +1 -1
  53. package/dist/src/config/settingsSchema.d.ts +80 -6
  54. package/dist/src/config/settingsSchema.js +79 -5
  55. package/dist/src/config/settingsSchema.js.map +1 -1
  56. package/dist/src/config/settingsSchema.test.js +9 -1
  57. package/dist/src/config/settingsSchema.test.js.map +1 -1
  58. package/dist/src/config/trustedFolders.d.ts +0 -1
  59. package/dist/src/config/trustedFolders.js +2 -3
  60. package/dist/src/config/trustedFolders.js.map +1 -1
  61. package/dist/src/gemini.js +31 -23
  62. package/dist/src/gemini.js.map +1 -1
  63. package/dist/src/gemini.test.js +21 -9
  64. package/dist/src/gemini.test.js.map +1 -1
  65. package/dist/src/generated/git-commit.d.ts +2 -2
  66. package/dist/src/generated/git-commit.js +2 -2
  67. package/dist/src/services/BuiltinCommandLoader.js +3 -0
  68. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  69. package/dist/src/services/BuiltinCommandLoader.test.js +37 -0
  70. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  71. package/dist/src/services/FileCommandLoader.d.ts +1 -1
  72. package/dist/src/services/FileCommandLoader.js +4 -4
  73. package/dist/src/services/FileCommandLoader.js.map +1 -1
  74. package/dist/src/services/prompt-processors/shellProcessor.js +1 -1
  75. package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
  76. package/dist/src/test-utils/render.d.ts +11 -2
  77. package/dist/src/test-utils/render.js +55 -1
  78. package/dist/src/test-utils/render.js.map +1 -1
  79. package/dist/src/ui/App.js +7 -9
  80. package/dist/src/ui/App.js.map +1 -1
  81. package/dist/src/ui/AppContainer.js +68 -16
  82. package/dist/src/ui/AppContainer.js.map +1 -1
  83. package/dist/src/ui/AppContainer.test.js +269 -7
  84. package/dist/src/ui/AppContainer.test.js.map +1 -1
  85. package/dist/src/ui/IdeIntegrationNudge.js +3 -0
  86. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  87. package/dist/src/ui/auth/AuthDialog.js +8 -1
  88. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  89. package/dist/src/ui/auth/AuthDialog.test.js +1 -0
  90. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  91. package/dist/src/ui/auth/AuthInProgress.js +2 -2
  92. package/dist/src/ui/auth/AuthInProgress.js.map +1 -1
  93. package/dist/src/ui/commands/chatCommand.js +7 -24
  94. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  95. package/dist/src/ui/commands/extensionsCommand.js +39 -37
  96. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  97. package/dist/src/ui/commands/mcpCommand.js +78 -260
  98. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  99. package/dist/src/ui/commands/memoryCommand.js +23 -5
  100. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  101. package/dist/src/ui/commands/profileCommand.d.ts +7 -0
  102. package/dist/src/ui/commands/profileCommand.js +23 -0
  103. package/dist/src/ui/commands/profileCommand.js.map +1 -0
  104. package/dist/src/ui/commands/setupGithubCommand.test.js +2 -1
  105. package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
  106. package/dist/src/ui/commands/toolsCommand.js +10 -24
  107. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  108. package/dist/src/ui/commands/types.d.ts +7 -5
  109. package/dist/src/ui/commands/types.js.map +1 -1
  110. package/dist/src/ui/components/AnsiOutput.d.ts +1 -0
  111. package/dist/src/ui/components/AnsiOutput.js +5 -5
  112. package/dist/src/ui/components/AnsiOutput.js.map +1 -1
  113. package/dist/src/ui/components/AnsiOutput.test.js +6 -6
  114. package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
  115. package/dist/src/ui/components/CliSpinner.d.ts +10 -0
  116. package/dist/src/ui/components/CliSpinner.js +20 -0
  117. package/dist/src/ui/components/CliSpinner.js.map +1 -0
  118. package/dist/src/ui/components/Composer.js +7 -27
  119. package/dist/src/ui/components/Composer.js.map +1 -1
  120. package/dist/src/ui/components/ConsentPrompt.d.ts +13 -0
  121. package/dist/src/ui/components/ConsentPrompt.js +19 -0
  122. package/dist/src/ui/components/ConsentPrompt.js.map +1 -0
  123. package/dist/src/ui/components/ConsentPrompt.test.d.ts +6 -0
  124. package/dist/src/ui/components/ConsentPrompt.test.js +67 -0
  125. package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -0
  126. package/dist/src/ui/components/ContextSummaryDisplay.js +2 -2
  127. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  128. package/dist/src/ui/components/ContextUsageDisplay.d.ts +2 -1
  129. package/dist/src/ui/components/ContextUsageDisplay.js +4 -2
  130. package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -1
  131. package/dist/src/ui/components/DebugProfiler.d.ts +18 -0
  132. package/dist/src/ui/components/DebugProfiler.js +158 -12
  133. package/dist/src/ui/components/DebugProfiler.js.map +1 -1
  134. package/dist/src/ui/components/DebugProfiler.test.d.ts +6 -0
  135. package/dist/src/ui/components/DebugProfiler.test.js +140 -0
  136. package/dist/src/ui/components/DebugProfiler.test.js.map +1 -0
  137. package/dist/src/ui/components/DialogManager.d.ts +2 -1
  138. package/dist/src/ui/components/DialogManager.js +9 -9
  139. package/dist/src/ui/components/DialogManager.js.map +1 -1
  140. package/dist/src/ui/components/EditorSettingsDialog.js +11 -2
  141. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  142. package/dist/src/ui/components/ExitWarning.d.ts +7 -0
  143. package/dist/src/ui/components/ExitWarning.js +9 -0
  144. package/dist/src/ui/components/ExitWarning.js.map +1 -0
  145. package/dist/src/ui/components/FolderTrustDialog.js +3 -0
  146. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  147. package/dist/src/ui/components/FolderTrustDialog.test.js +2 -2
  148. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  149. package/dist/src/ui/components/Footer.d.ts +1 -19
  150. package/dist/src/ui/components/Footer.js +35 -17
  151. package/dist/src/ui/components/Footer.js.map +1 -1
  152. package/dist/src/ui/components/GeminiRespondingSpinner.js +2 -2
  153. package/dist/src/ui/components/GeminiRespondingSpinner.js.map +1 -1
  154. package/dist/src/ui/components/Help.js +1 -1
  155. package/dist/src/ui/components/Help.js.map +1 -1
  156. package/dist/src/ui/components/HistoryItemDisplay.d.ts +1 -0
  157. package/dist/src/ui/components/HistoryItemDisplay.js +6 -2
  158. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  159. package/dist/src/ui/components/HistoryItemDisplay.test.js +50 -10
  160. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  161. package/dist/src/ui/components/IdeTrustChangeDialog.d.ts +11 -0
  162. package/dist/src/ui/components/IdeTrustChangeDialog.js +32 -0
  163. package/dist/src/ui/components/IdeTrustChangeDialog.js.map +1 -0
  164. package/dist/src/ui/components/IdeTrustChangeDialog.test.d.ts +6 -0
  165. package/dist/src/ui/components/IdeTrustChangeDialog.test.js +57 -0
  166. package/dist/src/ui/components/IdeTrustChangeDialog.test.js.map +1 -0
  167. package/dist/src/ui/components/InputPrompt.d.ts +7 -1
  168. package/dist/src/ui/components/InputPrompt.js +50 -25
  169. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  170. package/dist/src/ui/components/LoopDetectionConfirmation.js +2 -0
  171. package/dist/src/ui/components/LoopDetectionConfirmation.js.map +1 -1
  172. package/dist/src/ui/components/MainContent.js +7 -2
  173. package/dist/src/ui/components/MainContent.js.map +1 -1
  174. package/dist/src/ui/components/ModelDialog.js +4 -0
  175. package/dist/src/ui/components/ModelDialog.js.map +1 -1
  176. package/dist/src/ui/components/Notifications.js +12 -4
  177. package/dist/src/ui/components/Notifications.js.map +1 -1
  178. package/dist/src/ui/components/PermissionsModifyTrustDialog.js +3 -0
  179. package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -1
  180. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +0 -4
  181. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
  182. package/dist/src/ui/components/ProQuotaDialog.js +2 -0
  183. package/dist/src/ui/components/ProQuotaDialog.js.map +1 -1
  184. package/dist/src/ui/components/ProQuotaDialog.test.js +2 -0
  185. package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -1
  186. package/dist/src/ui/components/SettingsDialog.js +5 -2
  187. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  188. package/dist/src/ui/components/ShellConfirmationDialog.js +3 -0
  189. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  190. package/dist/src/ui/components/ThemeDialog.js +2 -0
  191. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  192. package/dist/src/ui/components/WorkspaceMigrationDialog.d.ts +2 -2
  193. package/dist/src/ui/components/WorkspaceMigrationDialog.js +4 -4
  194. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +1 -1
  195. package/dist/src/ui/components/messages/CompressionMessage.js +2 -2
  196. package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
  197. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +15 -1
  198. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  199. package/dist/src/ui/components/messages/ToolGroupMessage.js +1 -1
  200. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  201. package/dist/src/ui/components/messages/ToolMessage.js +26 -3
  202. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  203. package/dist/src/ui/components/messages/UserMessage.js +1 -2
  204. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  205. package/dist/src/ui/components/shared/BaseSelectionList.d.ts +5 -10
  206. package/dist/src/ui/components/shared/BaseSelectionList.js +1 -1
  207. package/dist/src/ui/components/shared/BaseSelectionList.js.map +1 -1
  208. package/dist/src/ui/components/shared/BaseSelectionList.test.js +7 -5
  209. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
  210. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.d.ts +2 -3
  211. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js +1 -1
  212. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js.map +1 -1
  213. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js +13 -2
  214. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js.map +1 -1
  215. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +2 -3
  216. package/dist/src/ui/components/shared/RadioButtonSelect.js +1 -1
  217. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  218. package/dist/src/ui/components/shared/RadioButtonSelect.test.js +5 -3
  219. package/dist/src/ui/components/shared/RadioButtonSelect.test.js.map +1 -1
  220. package/dist/src/ui/components/shared/ScopeSelector.js +4 -1
  221. package/dist/src/ui/components/shared/ScopeSelector.js.map +1 -1
  222. package/dist/src/ui/components/views/ChatList.d.ts +12 -0
  223. package/dist/src/ui/components/views/ChatList.js +17 -0
  224. package/dist/src/ui/components/views/ChatList.js.map +1 -0
  225. package/dist/src/ui/components/views/ChatList.test.d.ts +6 -0
  226. package/dist/src/ui/components/views/ChatList.test.js +42 -0
  227. package/dist/src/ui/components/views/ChatList.test.js.map +1 -0
  228. package/dist/src/ui/components/views/McpStatus.d.ts +27 -0
  229. package/dist/src/ui/components/views/McpStatus.js +77 -0
  230. package/dist/src/ui/components/views/McpStatus.js.map +1 -0
  231. package/dist/src/ui/components/views/McpStatus.test.d.ts +6 -0
  232. package/dist/src/ui/components/views/McpStatus.test.js +117 -0
  233. package/dist/src/ui/components/views/McpStatus.test.js.map +1 -0
  234. package/dist/src/ui/components/views/ToolsList.d.ts +14 -0
  235. package/dist/src/ui/components/views/ToolsList.js +7 -0
  236. package/dist/src/ui/components/views/ToolsList.js.map +1 -0
  237. package/dist/src/ui/components/views/ToolsList.test.d.ts +6 -0
  238. package/dist/src/ui/components/views/ToolsList.test.js +45 -0
  239. package/dist/src/ui/components/views/ToolsList.test.js.map +1 -0
  240. package/dist/src/ui/contexts/UIStateContext.d.ts +6 -1
  241. package/dist/src/ui/contexts/UIStateContext.js +1 -0
  242. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  243. package/dist/src/ui/hooks/shellCommandProcessor.js +5 -6
  244. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  245. package/dist/src/ui/hooks/shellCommandProcessor.test.js +19 -32
  246. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  247. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +6 -5
  248. package/dist/src/ui/hooks/slashCommandProcessor.js +5 -2
  249. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  250. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +10 -1
  251. package/dist/src/ui/hooks/useExtensionUpdates.js +145 -49
  252. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
  253. package/dist/src/ui/hooks/useExtensionUpdates.test.js +161 -80
  254. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
  255. package/dist/src/ui/hooks/useFlickerDetector.d.ts +14 -0
  256. package/dist/src/ui/hooks/useFlickerDetector.js +37 -0
  257. package/dist/src/ui/hooks/useFlickerDetector.js.map +1 -0
  258. package/dist/src/ui/hooks/useFlickerDetector.test.d.ts +6 -0
  259. package/dist/src/ui/hooks/useFlickerDetector.test.js +102 -0
  260. package/dist/src/ui/hooks/useFlickerDetector.test.js.map +1 -0
  261. package/dist/src/ui/hooks/useFolderTrust.d.ts +2 -1
  262. package/dist/src/ui/hooks/useFolderTrust.js +12 -3
  263. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  264. package/dist/src/ui/hooks/useGeminiStream.js +33 -2
  265. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  266. package/dist/src/ui/hooks/useHistoryManager.js +3 -3
  267. package/dist/src/ui/hooks/useHistoryManager.js.map +1 -1
  268. package/dist/src/ui/hooks/useIdeTrustListener.d.ts +4 -2
  269. package/dist/src/ui/hooks/useIdeTrustListener.js +40 -14
  270. package/dist/src/ui/hooks/useIdeTrustListener.js.map +1 -1
  271. package/dist/src/ui/hooks/useIdeTrustListener.test.d.ts +6 -0
  272. package/dist/src/ui/hooks/useIdeTrustListener.test.js +183 -0
  273. package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -0
  274. package/dist/src/ui/hooks/usePhraseCycler.js +1 -0
  275. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  276. package/dist/src/ui/hooks/useQuotaAndFallback.js +3 -17
  277. package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -1
  278. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +13 -43
  279. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
  280. package/dist/src/ui/hooks/useSelectionList.d.ts +1 -0
  281. package/dist/src/ui/hooks/useSelectionList.js +63 -43
  282. package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
  283. package/dist/src/ui/hooks/useSelectionList.test.js +111 -37
  284. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
  285. package/dist/src/ui/hooks/useShellHistory.test.js +12 -8
  286. package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
  287. package/dist/src/ui/hooks/useTerminalSize.js +2 -3
  288. package/dist/src/ui/hooks/useTerminalSize.js.map +1 -1
  289. package/dist/src/ui/hooks/useToolScheduler.test.js +2 -2
  290. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  291. package/dist/src/ui/hooks/useWorkspaceMigration.d.ts +2 -2
  292. package/dist/src/ui/hooks/useWorkspaceMigration.js +13 -8
  293. package/dist/src/ui/hooks/useWorkspaceMigration.js.map +1 -1
  294. package/dist/src/ui/layouts/DefaultAppLayout.d.ts +7 -0
  295. package/dist/src/ui/layouts/DefaultAppLayout.js +16 -0
  296. package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -0
  297. package/dist/src/ui/layouts/ScreenReaderAppLayout.d.ts +7 -0
  298. package/dist/src/ui/layouts/ScreenReaderAppLayout.js +17 -0
  299. package/dist/src/ui/layouts/ScreenReaderAppLayout.js.map +1 -0
  300. package/dist/src/ui/noninteractive/nonInteractiveUi.js +3 -1
  301. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -1
  302. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +2 -2
  303. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -1
  304. package/dist/src/ui/state/extensions.d.ts +46 -0
  305. package/dist/src/ui/state/extensions.js +67 -0
  306. package/dist/src/ui/state/extensions.js.map +1 -1
  307. package/dist/src/ui/types.d.ts +54 -3
  308. package/dist/src/ui/types.js +3 -0
  309. package/dist/src/ui/types.js.map +1 -1
  310. package/dist/src/ui/utils/MarkdownDisplay.js +1 -2
  311. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  312. package/dist/src/ui/utils/MarkdownDisplay.test.js +94 -91
  313. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  314. package/dist/src/ui/utils/displayUtils.d.ts +1 -0
  315. package/dist/src/ui/utils/displayUtils.js +3 -0
  316. package/dist/src/ui/utils/displayUtils.js.map +1 -1
  317. package/dist/src/ui/utils/displayUtils.test.js +36 -17
  318. package/dist/src/ui/utils/displayUtils.test.js.map +1 -1
  319. package/dist/src/ui/utils/ui-sizing.d.ts +7 -0
  320. package/dist/src/ui/utils/ui-sizing.js +23 -0
  321. package/dist/src/ui/utils/ui-sizing.js.map +1 -0
  322. package/dist/src/utils/commentJson.js +95 -13
  323. package/dist/src/utils/commentJson.js.map +1 -1
  324. package/dist/src/utils/commentJson.test.js +161 -0
  325. package/dist/src/utils/commentJson.test.js.map +1 -1
  326. package/dist/src/utils/errors.d.ts +8 -3
  327. package/dist/src/utils/errors.js +23 -13
  328. package/dist/src/utils/errors.js.map +1 -1
  329. package/dist/src/utils/errors.test.js +40 -46
  330. package/dist/src/utils/errors.test.js.map +1 -1
  331. package/dist/src/utils/events.d.ts +2 -1
  332. package/dist/src/utils/events.js +1 -0
  333. package/dist/src/utils/events.js.map +1 -1
  334. package/dist/src/utils/handleAutoUpdate.js +4 -1
  335. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  336. package/dist/src/utils/installationInfo.d.ts +1 -0
  337. package/dist/src/utils/installationInfo.js +2 -0
  338. package/dist/src/utils/installationInfo.js.map +1 -1
  339. package/dist/src/utils/math.d.ts +13 -0
  340. package/dist/src/utils/math.js +14 -0
  341. package/dist/src/utils/math.js.map +1 -0
  342. package/dist/src/utils/sandbox.js +8 -8
  343. package/dist/src/utils/sandbox.js.map +1 -1
  344. package/dist/src/utils/sessionCleanup.d.ts +22 -0
  345. package/dist/src/utils/sessionCleanup.integration.test.d.ts +6 -0
  346. package/dist/src/utils/sessionCleanup.integration.test.js +182 -0
  347. package/dist/src/utils/sessionCleanup.integration.test.js.map +1 -0
  348. package/dist/src/utils/sessionCleanup.js +214 -0
  349. package/dist/src/utils/sessionCleanup.js.map +1 -0
  350. package/dist/src/utils/sessionCleanup.test.d.ts +6 -0
  351. package/dist/src/utils/sessionCleanup.test.js +1232 -0
  352. package/dist/src/utils/sessionCleanup.test.js.map +1 -0
  353. package/dist/src/utils/sessionUtils.d.ts +37 -0
  354. package/dist/src/utils/sessionUtils.js +71 -0
  355. package/dist/src/utils/sessionUtils.js.map +1 -0
  356. package/dist/src/utils/windowTitle.d.ts +12 -0
  357. package/dist/src/utils/windowTitle.js +19 -0
  358. package/dist/src/utils/windowTitle.js.map +1 -0
  359. package/dist/src/utils/windowTitle.test.d.ts +6 -0
  360. package/dist/src/utils/windowTitle.test.js +49 -0
  361. package/dist/src/utils/windowTitle.test.js.map +1 -0
  362. package/dist/src/validateNonInterActiveAuth.js +6 -7
  363. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  364. package/dist/src/zed-integration/acp.js +1 -2
  365. package/dist/src/zed-integration/acp.js.map +1 -1
  366. package/dist/src/zed-integration/fileSystemService.d.ts +1 -0
  367. package/dist/src/zed-integration/fileSystemService.js +3 -0
  368. package/dist/src/zed-integration/fileSystemService.js.map +1 -1
  369. package/dist/src/zed-integration/schema.d.ts +48 -48
  370. package/dist/src/zed-integration/zedIntegration.d.ts +2 -3
  371. package/dist/src/zed-integration/zedIntegration.js +10 -27
  372. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  373. package/dist/tsconfig.tsbuildinfo +1 -1
  374. package/package.json +9 -3
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -6,17 +6,19 @@
6
6
  import type { MCPServerConfig, GeminiCLIExtension, ExtensionInstallMetadata } from '@google/gemini-cli-core';
7
7
  import { SettingScope } from '../config/settings.js';
8
8
  import type { LoadExtensionContext } from './extensions/variableSchema.js';
9
- import type { UseHistoryManagerReturn } from '../ui/hooks/useHistoryManager.js';
9
+ import { ExtensionEnablementManager } from './extensions/extensionEnablement.js';
10
+ import type { ConfirmationRequest } from '../ui/types.js';
10
11
  export declare const EXTENSIONS_DIRECTORY_NAME: string;
11
12
  export declare const EXTENSIONS_CONFIG_FILENAME = "gemini-extension.json";
12
13
  export declare const INSTALL_METADATA_FILENAME = ".gemini-extension-install.json";
13
- export interface Extension {
14
- path: string;
15
- config: ExtensionConfig;
16
- contextFiles: string[];
17
- installMetadata?: ExtensionInstallMetadata | undefined;
18
- }
19
- export interface ExtensionConfig {
14
+ /**
15
+ * Extension definition as written to disk in gemini-extension.json files.
16
+ * This should *not* be referenced outside of the logic for reading files.
17
+ * If information is required for manipulating extensions (load, unload, update)
18
+ * outside of the loading process that data needs to be stored on the
19
+ * GeminiCLIExtension class defined in Core.
20
+ */
21
+ interface ExtensionConfig {
20
22
  name: string;
21
23
  version: string;
22
24
  mcpServers?: Record<string, MCPServerConfig>;
@@ -36,14 +38,14 @@ export declare class ExtensionStorage {
36
38
  static getUserExtensionsDir(): string;
37
39
  static createTmpDir(): Promise<string>;
38
40
  }
39
- export declare function getWorkspaceExtensions(workspaceDir: string): Extension[];
41
+ export declare function getWorkspaceExtensions(workspaceDir: string): GeminiCLIExtension[];
40
42
  export declare function copyExtension(source: string, destination: string): Promise<void>;
41
- export declare function performWorkspaceExtensionMigration(extensions: Extension[], requestConsent: (consent: string) => Promise<boolean>): Promise<string[]>;
42
- export declare function loadExtensions(workspaceDir?: string): Extension[];
43
- export declare function loadUserExtensions(): Extension[];
44
- export declare function loadExtensionsFromDir(dir: string): Extension[];
45
- export declare function loadExtension(context: LoadExtensionContext): Extension | null;
46
- export declare function loadExtensionByName(name: string, workspaceDir?: string): Extension | null;
43
+ export declare function performWorkspaceExtensionMigration(extensions: GeminiCLIExtension[], requestConsent: (consent: string) => Promise<boolean>): Promise<string[]>;
44
+ export declare function loadExtensions(extensionEnablementManager: ExtensionEnablementManager, workspaceDir?: string): GeminiCLIExtension[];
45
+ export declare function loadUserExtensions(): GeminiCLIExtension[];
46
+ export declare function loadExtensionsFromDir(dir: string): GeminiCLIExtension[];
47
+ export declare function loadExtension(context: LoadExtensionContext): GeminiCLIExtension | null;
48
+ export declare function loadExtensionByName(name: string, workspaceDir?: string): GeminiCLIExtension | null;
47
49
  export declare function loadInstallMetadata(extensionDir: string): ExtensionInstallMetadata | undefined;
48
50
  /**
49
51
  * Returns an annotated list of extensions. If an extension is listed in enabledExtensionNames, it will be active.
@@ -52,7 +54,7 @@ export declare function loadInstallMetadata(extensionDir: string): ExtensionInst
52
54
  * @param enabledExtensionNames The names of explicitly enabled extensions.
53
55
  * @param workspaceDir The current workspace directory.
54
56
  */
55
- export declare function annotateActiveExtensions(extensions: Extension[], enabledExtensionNames: string[], workspaceDir: string): GeminiCLIExtension[];
57
+ export declare function annotateActiveExtensions(extensions: GeminiCLIExtension[], workspaceDir: string, manager: ExtensionEnablementManager): GeminiCLIExtension[];
56
58
  /**
57
59
  * Requests consent from the user to perform an action, by reading a Y/n
58
60
  * character from stdin.
@@ -69,13 +71,15 @@ export declare function requestConsentNonInteractive(consentDescription: string)
69
71
  * This should not be called from non-interactive mode as it will not work.
70
72
  *
71
73
  * @param consentDescription The description of the thing they will be consenting to.
74
+ * @param setExtensionUpdateConfirmationRequest A function to actually add a prompt to the UI.
72
75
  * @returns boolean, whether they consented or not.
73
76
  */
74
- export declare function requestConsentInteractive(_consentDescription: string, addHistoryItem: UseHistoryManagerReturn['addItem']): Promise<boolean>;
75
- export declare function installExtension(installMetadata: ExtensionInstallMetadata, requestConsent: (consent: string) => Promise<boolean>, cwd?: string, previousExtensionConfig?: ExtensionConfig): Promise<string>;
77
+ export declare function requestConsentInteractive(consentDescription: string, addExtensionUpdateConfirmationRequest: (value: ConfirmationRequest) => void): Promise<boolean>;
78
+ export declare function installOrUpdateExtension(installMetadata: ExtensionInstallMetadata, requestConsent: (consent: string) => Promise<boolean>, cwd?: string, previousExtensionConfig?: ExtensionConfig): Promise<string>;
76
79
  export declare function validateName(name: string): void;
77
80
  export declare function loadExtensionConfig(context: LoadExtensionContext): ExtensionConfig;
78
- export declare function uninstallExtension(extensionIdentifier: string, cwd?: string): Promise<void>;
79
- export declare function toOutputString(extension: Extension, workspaceDir: string): string;
81
+ export declare function uninstallExtension(extensionIdentifier: string, isUpdate: boolean, cwd?: string): Promise<void>;
82
+ export declare function toOutputString(extension: GeminiCLIExtension, workspaceDir: string): string;
80
83
  export declare function disableExtension(name: string, scope: SettingScope, cwd?: string): void;
81
84
  export declare function enableExtension(name: string, scope: SettingScope, cwd?: string): void;
85
+ export {};
@@ -3,19 +3,20 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { GEMINI_DIR, Storage, Config, ExtensionInstallEvent, ExtensionUninstallEvent, ExtensionDisableEvent, ExtensionEnableEvent, logExtensionEnable, logExtensionInstallEvent, logExtensionUninstall, logExtensionDisable, } from '@google/gemini-cli-core';
6
+ import { GEMINI_DIR, Storage, Config, ExtensionInstallEvent, ExtensionUninstallEvent, ExtensionUpdateEvent, ExtensionDisableEvent, ExtensionEnableEvent, logExtensionEnable, logExtensionInstallEvent, logExtensionUninstall, logExtensionUpdateEvent, logExtensionDisable, } from '@google/gemini-cli-core';
7
7
  import * as fs from 'node:fs';
8
8
  import * as path from 'node:path';
9
9
  import * as os from 'node:os';
10
10
  import { SettingScope, loadSettings } from '../config/settings.js';
11
11
  import { getErrorMessage } from '../utils/errors.js';
12
- import { recursivelyHydrateStrings } from './extensions/variables.js';
12
+ import { recursivelyHydrateStrings, } from './extensions/variables.js';
13
13
  import { isWorkspaceTrusted } from './trustedFolders.js';
14
14
  import { resolveEnvVarsInObject } from '../utils/envVarResolver.js';
15
15
  import { randomUUID } from 'node:crypto';
16
16
  import { cloneFromGit, downloadFromGitHubRelease, } from './extensions/github.js';
17
17
  import { ExtensionEnablementManager } from './extensions/extensionEnablement.js';
18
18
  import chalk from 'chalk';
19
+ import { escapeAnsiCtrlCodes } from '../ui/utils/textUtils.js';
19
20
  export const EXTENSIONS_DIRECTORY_NAME = path.join(GEMINI_DIR, 'extensions');
20
21
  export const EXTENSIONS_CONFIG_FILENAME = 'gemini-extension.json';
21
22
  export const INSTALL_METADATA_FILENAME = '.gemini-extension-install.json';
@@ -56,10 +57,10 @@ export async function performWorkspaceExtensionMigration(extensions, requestCons
56
57
  source: extension.path,
57
58
  type: 'local',
58
59
  };
59
- await installExtension(installMetadata, requestConsent);
60
+ await installOrUpdateExtension(installMetadata, requestConsent);
60
61
  }
61
62
  catch (_) {
62
- failedInstallNames.push(extension.config.name);
63
+ failedInstallNames.push(extension.name);
63
64
  }
64
65
  }
65
66
  return failedInstallNames;
@@ -77,20 +78,19 @@ function getTelemetryConfig(cwd) {
77
78
  });
78
79
  return config;
79
80
  }
80
- export function loadExtensions(workspaceDir = process.cwd()) {
81
+ export function loadExtensions(extensionEnablementManager, workspaceDir = process.cwd()) {
81
82
  const settings = loadSettings(workspaceDir).merged;
82
83
  const allExtensions = [...loadUserExtensions()];
83
- if ((isWorkspaceTrusted(settings) ?? true) &&
84
+ if (isWorkspaceTrusted(settings).isTrusted &&
84
85
  // Default management setting to true
85
86
  !(settings.experimental?.extensionManagement ?? true)) {
86
87
  allExtensions.push(...getWorkspaceExtensions(workspaceDir));
87
88
  }
88
89
  const uniqueExtensions = new Map();
89
- const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
90
90
  for (const extension of allExtensions) {
91
- if (!uniqueExtensions.has(extension.config.name) &&
92
- manager.isEnabled(extension.config.name, workspaceDir)) {
93
- uniqueExtensions.set(extension.config.name, extension);
91
+ if (!uniqueExtensions.has(extension.name) &&
92
+ extensionEnablementManager.isEnabled(extension.name, workspaceDir)) {
93
+ uniqueExtensions.set(extension.name, extension);
94
94
  }
95
95
  }
96
96
  return Array.from(uniqueExtensions.values());
@@ -99,8 +99,8 @@ export function loadUserExtensions() {
99
99
  const userExtensions = loadExtensionsFromDir(os.homedir());
100
100
  const uniqueExtensions = new Map();
101
101
  for (const extension of userExtensions) {
102
- if (!uniqueExtensions.has(extension.config.name)) {
103
- uniqueExtensions.set(extension.config.name, extension);
102
+ if (!uniqueExtensions.has(extension.name)) {
103
+ uniqueExtensions.set(extension.name, extension);
104
104
  }
105
105
  }
106
106
  return Array.from(uniqueExtensions.values());
@@ -147,10 +147,14 @@ export function loadExtension(context) {
147
147
  .map((contextFileName) => path.join(effectiveExtensionPath, contextFileName))
148
148
  .filter((contextFilePath) => fs.existsSync(contextFilePath));
149
149
  return {
150
+ name: config.name,
151
+ version: config.version,
150
152
  path: effectiveExtensionPath,
151
- config,
152
153
  contextFiles,
153
154
  installMetadata,
155
+ mcpServers: config.mcpServers,
156
+ excludeTools: config.excludeTools,
157
+ isActive: true, // Barring any other signals extensions should be considered Active.
154
158
  };
155
159
  }
156
160
  catch (e) {
@@ -169,8 +173,7 @@ export function loadExtensionByName(name, workspaceDir = process.cwd()) {
169
173
  continue;
170
174
  }
171
175
  const extension = loadExtension({ extensionDir, workspaceDir });
172
- if (extension &&
173
- extension.config.name.toLowerCase() === name.toLowerCase()) {
176
+ if (extension && extension.name.toLowerCase() === name.toLowerCase()) {
174
177
  return extension;
175
178
  }
176
179
  }
@@ -208,48 +211,12 @@ function getContextFileNames(config) {
208
211
  * @param enabledExtensionNames The names of explicitly enabled extensions.
209
212
  * @param workspaceDir The current workspace directory.
210
213
  */
211
- export function annotateActiveExtensions(extensions, enabledExtensionNames, workspaceDir) {
212
- const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
213
- const annotatedExtensions = [];
214
- if (enabledExtensionNames.length === 0) {
215
- return extensions.map((extension) => ({
216
- name: extension.config.name,
217
- version: extension.config.version,
218
- isActive: manager.isEnabled(extension.config.name, workspaceDir),
219
- path: extension.path,
220
- installMetadata: extension.installMetadata,
221
- }));
222
- }
223
- const lowerCaseEnabledExtensions = new Set(enabledExtensionNames.map((e) => e.trim().toLowerCase()));
224
- if (lowerCaseEnabledExtensions.size === 1 &&
225
- lowerCaseEnabledExtensions.has('none')) {
226
- return extensions.map((extension) => ({
227
- name: extension.config.name,
228
- version: extension.config.version,
229
- isActive: false,
230
- path: extension.path,
231
- installMetadata: extension.installMetadata,
232
- }));
233
- }
234
- const notFoundNames = new Set(lowerCaseEnabledExtensions);
235
- for (const extension of extensions) {
236
- const lowerCaseName = extension.config.name.toLowerCase();
237
- const isActive = lowerCaseEnabledExtensions.has(lowerCaseName);
238
- if (isActive) {
239
- notFoundNames.delete(lowerCaseName);
240
- }
241
- annotatedExtensions.push({
242
- name: extension.config.name,
243
- version: extension.config.version,
244
- isActive,
245
- path: extension.path,
246
- installMetadata: extension.installMetadata,
247
- });
248
- }
249
- for (const requestedName of notFoundNames) {
250
- console.error(`Extension not found: ${requestedName}`);
251
- }
252
- return annotatedExtensions;
214
+ export function annotateActiveExtensions(extensions, workspaceDir, manager) {
215
+ manager.validateExtensionOverrides(extensions);
216
+ return extensions.map((extension) => ({
217
+ ...extension,
218
+ isActive: manager.isEnabled(extension.name, workspaceDir),
219
+ }));
253
220
  }
254
221
  /**
255
222
  * Requests consent from the user to perform an action, by reading a Y/n
@@ -262,7 +229,7 @@ export function annotateActiveExtensions(extensions, enabledExtensionNames, work
262
229
  */
263
230
  export async function requestConsentNonInteractive(consentDescription) {
264
231
  console.info(consentDescription);
265
- const result = await promptForContinuationNonInteractive('Do you want to continue? [Y/n]: ');
232
+ const result = await promptForConsentNonInteractive('Do you want to continue? [Y/n]: ');
266
233
  return result;
267
234
  }
268
235
  /**
@@ -271,14 +238,11 @@ export async function requestConsentNonInteractive(consentDescription) {
271
238
  * This should not be called from non-interactive mode as it will not work.
272
239
  *
273
240
  * @param consentDescription The description of the thing they will be consenting to.
241
+ * @param setExtensionUpdateConfirmationRequest A function to actually add a prompt to the UI.
274
242
  * @returns boolean, whether they consented or not.
275
243
  */
276
- export async function requestConsentInteractive(_consentDescription, addHistoryItem) {
277
- addHistoryItem({
278
- type: 'info',
279
- text: 'Tried to update an extension but it has some changes that require consent, please use `gemini extensions update`.',
280
- }, Date.now());
281
- return false;
244
+ export async function requestConsentInteractive(consentDescription, addExtensionUpdateConfirmationRequest) {
245
+ return await promptForConsentInteractive(consentDescription + '\n\nDo you want to continue?', addExtensionUpdateConfirmationRequest);
282
246
  }
283
247
  /**
284
248
  * Asks users a prompt and awaits for a y/n response on stdin.
@@ -288,7 +252,7 @@ export async function requestConsentInteractive(_consentDescription, addHistoryI
288
252
  * @param prompt A yes/no prompt to ask the user
289
253
  * @returns Whether or not the user answers 'y' (yes). Defaults to 'yes' on enter.
290
254
  */
291
- async function promptForContinuationNonInteractive(prompt) {
255
+ async function promptForConsentNonInteractive(prompt) {
292
256
  const readline = await import('node:readline');
293
257
  const rl = readline.createInterface({
294
258
  input: process.stdin,
@@ -301,13 +265,33 @@ async function promptForContinuationNonInteractive(prompt) {
301
265
  });
302
266
  });
303
267
  }
304
- export async function installExtension(installMetadata, requestConsent, cwd = process.cwd(), previousExtensionConfig) {
268
+ /**
269
+ * Asks users an interactive yes/no prompt.
270
+ *
271
+ * This should not be called from non-interactive mode as it will break the CLI.
272
+ *
273
+ * @param prompt A markdown prompt to ask the user
274
+ * @param setExtensionUpdateConfirmationRequest Function to update the UI state with the confirmation request.
275
+ * @returns Whether or not the user answers yes.
276
+ */
277
+ async function promptForConsentInteractive(prompt, addExtensionUpdateConfirmationRequest) {
278
+ return await new Promise((resolve) => {
279
+ addExtensionUpdateConfirmationRequest({
280
+ prompt,
281
+ onConfirm: (resolvedConfirmed) => {
282
+ resolve(resolvedConfirmed);
283
+ },
284
+ });
285
+ });
286
+ }
287
+ export async function installOrUpdateExtension(installMetadata, requestConsent, cwd = process.cwd(), previousExtensionConfig) {
288
+ const isUpdate = !!previousExtensionConfig;
305
289
  const telemetryConfig = getTelemetryConfig(cwd);
306
290
  let newExtensionConfig = null;
307
291
  let localSourcePath;
308
292
  try {
309
293
  const settings = loadSettings(cwd).merged;
310
- if (!isWorkspaceTrusted(settings)) {
294
+ if (!isWorkspaceTrusted(settings).isTrusted) {
311
295
  throw new Error(`Could not install extension from untrusted folder at ${installMetadata.source}`);
312
296
  }
313
297
  const extensionsDir = ExtensionStorage.getUserExtensionsDir();
@@ -344,13 +328,18 @@ export async function installExtension(installMetadata, requestConsent, cwd = pr
344
328
  workspaceDir: cwd,
345
329
  });
346
330
  const newExtensionName = newExtensionConfig.name;
331
+ if (!isUpdate) {
332
+ const installedExtensions = loadUserExtensions();
333
+ if (installedExtensions.some((installed) => installed.name === newExtensionName)) {
334
+ throw new Error(`Extension "${newExtensionName}" is already installed. Please uninstall it first.`);
335
+ }
336
+ }
337
+ await maybeRequestConsentOrFail(newExtensionConfig, requestConsent, previousExtensionConfig);
347
338
  const extensionStorage = new ExtensionStorage(newExtensionName);
348
339
  const destinationPath = extensionStorage.getExtensionDir();
349
- const installedExtensions = loadUserExtensions();
350
- if (installedExtensions.some((installed) => installed.config.name === newExtensionName)) {
351
- throw new Error(`Extension "${newExtensionName}" is already installed. Please uninstall it first.`);
340
+ if (isUpdate) {
341
+ await uninstallExtension(newExtensionName, isUpdate, cwd);
352
342
  }
353
- await maybeRequestConsentOrFail(newExtensionConfig, requestConsent, previousExtensionConfig);
354
343
  await fs.promises.mkdir(destinationPath, { recursive: true });
355
344
  if (installMetadata.type === 'local' ||
356
345
  installMetadata.type === 'git' ||
@@ -366,8 +355,13 @@ export async function installExtension(installMetadata, requestConsent, cwd = pr
366
355
  await fs.promises.rm(tempDir, { recursive: true, force: true });
367
356
  }
368
357
  }
369
- logExtensionInstallEvent(telemetryConfig, new ExtensionInstallEvent(newExtensionConfig.name, newExtensionConfig.version, installMetadata.source, 'success'));
370
- enableExtension(newExtensionConfig.name, SettingScope.User);
358
+ if (isUpdate) {
359
+ logExtensionUpdateEvent(telemetryConfig, new ExtensionUpdateEvent(newExtensionConfig.name, newExtensionConfig.version, previousExtensionConfig.version, installMetadata.source, 'success'));
360
+ }
361
+ else {
362
+ logExtensionInstallEvent(telemetryConfig, new ExtensionInstallEvent(newExtensionConfig.name, newExtensionConfig.version, installMetadata.source, 'success'));
363
+ enableExtension(newExtensionConfig.name, SettingScope.User);
364
+ }
371
365
  return newExtensionConfig.name;
372
366
  }
373
367
  catch (error) {
@@ -384,7 +378,12 @@ export async function installExtension(installMetadata, requestConsent, cwd = pr
384
378
  // Ignore error, this is just for logging.
385
379
  }
386
380
  }
387
- logExtensionInstallEvent(telemetryConfig, new ExtensionInstallEvent(newExtensionConfig?.name ?? '', newExtensionConfig?.version ?? '', installMetadata.source, 'error'));
381
+ if (isUpdate) {
382
+ logExtensionUpdateEvent(telemetryConfig, new ExtensionUpdateEvent(newExtensionConfig?.name ?? previousExtensionConfig.name, newExtensionConfig?.version ?? '', previousExtensionConfig.version, installMetadata.source, 'error'));
383
+ }
384
+ else {
385
+ logExtensionInstallEvent(telemetryConfig, new ExtensionInstallEvent(newExtensionConfig?.name ?? '', newExtensionConfig?.version ?? '', installMetadata.source, 'error'));
386
+ }
388
387
  throw error;
389
388
  }
390
389
  }
@@ -393,10 +392,11 @@ export async function installExtension(installMetadata, requestConsent, cwd = pr
393
392
  * extensionConfig.
394
393
  */
395
394
  function extensionConsentString(extensionConfig) {
395
+ const sanitizedConfig = escapeAnsiCtrlCodes(extensionConfig);
396
396
  const output = [];
397
- const mcpServerEntries = Object.entries(extensionConfig.mcpServers || {});
398
- output.push('Extensions may introduce unexpected behavior.');
399
- output.push('Ensure you have investigated the extension source and trust the author.');
397
+ const mcpServerEntries = Object.entries(sanitizedConfig.mcpServers || {});
398
+ output.push(`Installing extension "${sanitizedConfig.name}".`);
399
+ output.push('**Extensions may introduce unexpected behavior. Ensure you have investigated the extension source and trust the author.**');
400
400
  if (mcpServerEntries.length) {
401
401
  output.push('This extension will run the following MCP servers:');
402
402
  for (const [key, mcpServer] of mcpServerEntries) {
@@ -406,11 +406,11 @@ function extensionConsentString(extensionConfig) {
406
406
  output.push(` * ${key} (${isLocal ? 'local' : 'remote'}): ${source}`);
407
407
  }
408
408
  }
409
- if (extensionConfig.contextFileName) {
410
- output.push(`This extension will append info to your gemini.md context using ${extensionConfig.contextFileName}`);
409
+ if (sanitizedConfig.contextFileName) {
410
+ output.push(`This extension will append info to your gemini.md context using ${sanitizedConfig.contextFileName}`);
411
411
  }
412
- if (extensionConfig.excludeTools) {
413
- output.push(`This extension will exclude the following core tools: ${extensionConfig.excludeTools}`);
412
+ if (sanitizedConfig.excludeTools) {
413
+ output.push(`This extension will exclude the following core tools: ${sanitizedConfig.excludeTools}`);
414
414
  }
415
415
  return output.join('\n');
416
416
  }
@@ -432,7 +432,7 @@ async function maybeRequestConsentOrFail(extensionConfig, requestConsent, previo
432
432
  }
433
433
  }
434
434
  if (!(await requestConsent(extensionConsent))) {
435
- throw new Error('Installation cancelled.');
435
+ throw new Error(`Installation cancelled for "${extensionConfig.name}".`);
436
436
  }
437
437
  }
438
438
  export function validateName(name) {
@@ -448,15 +448,17 @@ export function loadExtensionConfig(context) {
448
448
  }
449
449
  try {
450
450
  const configContent = fs.readFileSync(configFilePath, 'utf-8');
451
- const config = recursivelyHydrateStrings(JSON.parse(configContent), {
452
- extensionPath: extensionDir,
451
+ const rawConfig = JSON.parse(configContent);
452
+ if (!rawConfig.name || !rawConfig.version) {
453
+ throw new Error(`Invalid configuration in ${configFilePath}: missing ${!rawConfig.name ? '"name"' : '"version"'}`);
454
+ }
455
+ const installDir = new ExtensionStorage(rawConfig.name).getExtensionDir();
456
+ const config = recursivelyHydrateStrings(rawConfig, {
457
+ extensionPath: installDir,
453
458
  workspacePath: workspaceDir,
454
459
  '/': path.sep,
455
460
  pathSeparator: path.sep,
456
461
  });
457
- if (!config.name || !config.version) {
458
- throw new Error(`Invalid configuration in ${configFilePath}: missing ${!config.name ? '"name"' : '"version"'}`);
459
- }
460
462
  validateName(config.name);
461
463
  return config;
462
464
  }
@@ -464,31 +466,34 @@ export function loadExtensionConfig(context) {
464
466
  throw new Error(`Failed to load extension config from ${configFilePath}: ${getErrorMessage(e)}`);
465
467
  }
466
468
  }
467
- export async function uninstallExtension(extensionIdentifier, cwd = process.cwd()) {
468
- const telemetryConfig = getTelemetryConfig(cwd);
469
+ export async function uninstallExtension(extensionIdentifier, isUpdate, cwd = process.cwd()) {
469
470
  const installedExtensions = loadUserExtensions();
470
- const extensionName = installedExtensions.find((installed) => installed.config.name.toLowerCase() ===
471
- extensionIdentifier.toLowerCase() ||
471
+ const extensionName = installedExtensions.find((installed) => installed.name.toLowerCase() === extensionIdentifier.toLowerCase() ||
472
472
  installed.installMetadata?.source.toLowerCase() ===
473
- extensionIdentifier.toLowerCase())?.config.name;
473
+ extensionIdentifier.toLowerCase())?.name;
474
474
  if (!extensionName) {
475
475
  throw new Error(`Extension not found.`);
476
476
  }
477
- const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
478
- manager.remove(extensionName);
479
477
  const storage = new ExtensionStorage(extensionName);
480
478
  await fs.promises.rm(storage.getExtensionDir(), {
481
479
  recursive: true,
482
480
  force: true,
483
481
  });
482
+ // The rest of the cleanup below here is only for true uninstalls, not
483
+ // uninstalls related to updates.
484
+ if (isUpdate)
485
+ return;
486
+ const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir(), [extensionName]);
487
+ manager.remove(extensionName);
488
+ const telemetryConfig = getTelemetryConfig(cwd);
484
489
  logExtensionUninstall(telemetryConfig, new ExtensionUninstallEvent(extensionName, 'success'));
485
490
  }
486
491
  export function toOutputString(extension, workspaceDir) {
487
492
  const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
488
- const userEnabled = manager.isEnabled(extension.config.name, os.homedir());
489
- const workspaceEnabled = manager.isEnabled(extension.config.name, workspaceDir);
493
+ const userEnabled = manager.isEnabled(extension.name, os.homedir());
494
+ const workspaceEnabled = manager.isEnabled(extension.name, workspaceDir);
490
495
  const status = workspaceEnabled ? chalk.green('✓') : chalk.red('✗');
491
- let output = `${status} ${extension.config.name} (${extension.config.version})`;
496
+ let output = `${status} ${extension.name} (${extension.version})`;
492
497
  output += `\n Path: ${extension.path}`;
493
498
  if (extension.installMetadata) {
494
499
  output += `\n Source: ${extension.installMetadata.source} (Type: ${extension.installMetadata.type})`;
@@ -507,15 +512,15 @@ export function toOutputString(extension, workspaceDir) {
507
512
  output += `\n ${contextFile}`;
508
513
  });
509
514
  }
510
- if (extension.config.mcpServers) {
515
+ if (extension.mcpServers) {
511
516
  output += `\n MCP servers:`;
512
- Object.keys(extension.config.mcpServers).forEach((key) => {
517
+ Object.keys(extension.mcpServers).forEach((key) => {
513
518
  output += `\n ${key}`;
514
519
  });
515
520
  }
516
- if (extension.config.excludeTools) {
521
+ if (extension.excludeTools) {
517
522
  output += `\n Excluded tools:`;
518
- extension.config.excludeTools.forEach((tool) => {
523
+ extension.excludeTools.forEach((tool) => {
519
524
  output += `\n ${tool}`;
520
525
  });
521
526
  }
@@ -530,7 +535,7 @@ export function disableExtension(name, scope, cwd = process.cwd()) {
530
535
  if (!extension) {
531
536
  throw new Error(`Extension with name ${name} does not exist.`);
532
537
  }
533
- const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
538
+ const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir(), [name]);
534
539
  const scopePath = scope === SettingScope.Workspace ? cwd : os.homedir();
535
540
  manager.disable(name, true, scopePath);
536
541
  logExtensionDisable(config, new ExtensionDisableEvent(name, scope));