@google/gemini-cli 0.6.0-nightly.20250910.a31830a3 → 0.6.0-preview.0

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 (336) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +12 -2
  3. package/dist/index.js +0 -0
  4. package/dist/package.json +3 -2
  5. package/dist/src/commands/extensions/disable.d.ts +1 -1
  6. package/dist/src/commands/extensions/disable.js +3 -3
  7. package/dist/src/commands/extensions/disable.js.map +1 -1
  8. package/dist/src/commands/extensions/enable.d.ts +1 -1
  9. package/dist/src/commands/extensions/enable.js +5 -7
  10. package/dist/src/commands/extensions/enable.js.map +1 -1
  11. package/dist/src/commands/extensions/install.d.ts +1 -0
  12. package/dist/src/commands/extensions/install.js +10 -2
  13. package/dist/src/commands/extensions/install.js.map +1 -1
  14. package/dist/src/commands/extensions/install.test.js +75 -2
  15. package/dist/src/commands/extensions/install.test.js.map +1 -1
  16. package/dist/src/commands/extensions/update.js +14 -4
  17. package/dist/src/commands/extensions/update.js.map +1 -1
  18. package/dist/src/config/config.d.ts +1 -1
  19. package/dist/src/config/config.js +19 -5
  20. package/dist/src/config/config.js.map +1 -1
  21. package/dist/src/config/extension.d.ts +17 -8
  22. package/dist/src/config/extension.js +192 -73
  23. package/dist/src/config/extension.js.map +1 -1
  24. package/dist/src/config/extensions/extensionEnablement.d.ts +30 -0
  25. package/dist/src/config/extensions/extensionEnablement.js +113 -0
  26. package/dist/src/config/extensions/extensionEnablement.js.map +1 -0
  27. package/dist/src/config/extensions/extensionEnablement.test.d.ts +6 -0
  28. package/dist/src/config/extensions/extensionEnablement.test.js +116 -0
  29. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -0
  30. package/dist/src/config/extensions/variableSchema.d.ts +8 -0
  31. package/dist/src/config/extensions/variableSchema.js +4 -0
  32. package/dist/src/config/extensions/variableSchema.js.map +1 -1
  33. package/dist/src/config/keyBindings.d.ts +4 -1
  34. package/dist/src/config/keyBindings.js +8 -0
  35. package/dist/src/config/keyBindings.js.map +1 -1
  36. package/dist/src/config/settings.d.ts +3 -0
  37. package/dist/src/config/settings.js +54 -15
  38. package/dist/src/config/settings.js.map +1 -1
  39. package/dist/src/config/settingsSchema.d.ts +67 -1
  40. package/dist/src/config/settingsSchema.js +64 -1
  41. package/dist/src/config/settingsSchema.js.map +1 -1
  42. package/dist/src/config/settingsSchema.test.js +6 -0
  43. package/dist/src/config/settingsSchema.test.js.map +1 -1
  44. package/dist/src/config/trustedFolders.d.ts +1 -1
  45. package/dist/src/config/trustedFolders.js +9 -4
  46. package/dist/src/config/trustedFolders.js.map +1 -1
  47. package/dist/src/config/trustedFolders.test.js +41 -25
  48. package/dist/src/config/trustedFolders.test.js.map +1 -1
  49. package/dist/src/core/initializer.js +6 -1
  50. package/dist/src/core/initializer.js.map +1 -1
  51. package/dist/src/gemini.js +34 -24
  52. package/dist/src/gemini.js.map +1 -1
  53. package/dist/src/gemini.test.js +11 -2
  54. package/dist/src/gemini.test.js.map +1 -1
  55. package/dist/src/generated/git-commit.d.ts +2 -2
  56. package/dist/src/generated/git-commit.js +2 -2
  57. package/dist/src/generated/git-commit.js.map +1 -1
  58. package/dist/src/nonInteractiveCli.js +23 -9
  59. package/dist/src/nonInteractiveCli.js.map +1 -1
  60. package/dist/src/services/McpPromptLoader.js +43 -8
  61. package/dist/src/services/McpPromptLoader.js.map +1 -1
  62. package/dist/src/services/McpPromptLoader.test.js +228 -1
  63. package/dist/src/services/McpPromptLoader.test.js.map +1 -1
  64. package/dist/src/services/prompt-processors/shellProcessor.js +8 -1
  65. package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
  66. package/dist/src/ui/AppContainer.js +69 -32
  67. package/dist/src/ui/AppContainer.js.map +1 -1
  68. package/dist/src/ui/AppContainer.test.js +36 -0
  69. package/dist/src/ui/AppContainer.test.js.map +1 -1
  70. package/dist/src/ui/IdeIntegrationNudge.js +2 -1
  71. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  72. package/dist/src/ui/auth/AuthDialog.js +2 -2
  73. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  74. package/dist/src/ui/auth/AuthInProgress.js +2 -2
  75. package/dist/src/ui/auth/AuthInProgress.js.map +1 -1
  76. package/dist/src/ui/commands/chatCommand.d.ts +2 -0
  77. package/dist/src/ui/commands/chatCommand.js +82 -3
  78. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  79. package/dist/src/ui/commands/extensionsCommand.js +70 -16
  80. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  81. package/dist/src/ui/commands/ideCommand.js +2 -2
  82. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  83. package/dist/src/ui/commands/types.d.ts +4 -1
  84. package/dist/src/ui/commands/types.js +0 -1
  85. package/dist/src/ui/commands/types.js.map +1 -1
  86. package/dist/src/ui/components/AboutBox.js +2 -2
  87. package/dist/src/ui/components/AboutBox.js.map +1 -1
  88. package/dist/src/ui/components/AnsiOutput.d.ts +13 -0
  89. package/dist/src/ui/components/AnsiOutput.js +12 -0
  90. package/dist/src/ui/components/AnsiOutput.js.map +1 -0
  91. package/dist/src/ui/components/AnsiOutput.test.d.ts +6 -0
  92. package/dist/src/ui/components/AnsiOutput.test.js +97 -0
  93. package/dist/src/ui/components/AnsiOutput.test.js.map +1 -0
  94. package/dist/src/ui/components/AutoAcceptIndicator.js +4 -4
  95. package/dist/src/ui/components/AutoAcceptIndicator.js.map +1 -1
  96. package/dist/src/ui/components/Composer.js +10 -5
  97. package/dist/src/ui/components/Composer.js.map +1 -1
  98. package/dist/src/ui/components/ConfigInitDisplay.js +2 -1
  99. package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -1
  100. package/dist/src/ui/components/ConsoleSummaryDisplay.js +2 -2
  101. package/dist/src/ui/components/ConsoleSummaryDisplay.js.map +1 -1
  102. package/dist/src/ui/components/ContextSummaryDisplay.js +3 -3
  103. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  104. package/dist/src/ui/components/ContextUsageDisplay.js +2 -2
  105. package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -1
  106. package/dist/src/ui/components/DebugProfiler.js +2 -2
  107. package/dist/src/ui/components/DebugProfiler.js.map +1 -1
  108. package/dist/src/ui/components/DetailedMessagesDisplay.js +7 -7
  109. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  110. package/dist/src/ui/components/DialogManager.js +9 -5
  111. package/dist/src/ui/components/DialogManager.js.map +1 -1
  112. package/dist/src/ui/components/EditorSettingsDialog.js +5 -5
  113. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  114. package/dist/src/ui/components/FolderTrustDialog.js +4 -3
  115. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  116. package/dist/src/ui/components/FolderTrustDialog.test.js +6 -1
  117. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  118. package/dist/src/ui/components/Footer.d.ts +3 -0
  119. package/dist/src/ui/components/Footer.js +8 -3
  120. package/dist/src/ui/components/Footer.js.map +1 -1
  121. package/dist/src/ui/components/GeminiRespondingSpinner.js +3 -2
  122. package/dist/src/ui/components/GeminiRespondingSpinner.js.map +1 -1
  123. package/dist/src/ui/components/Header.js +2 -2
  124. package/dist/src/ui/components/Header.js.map +1 -1
  125. package/dist/src/ui/components/Help.js +5 -5
  126. package/dist/src/ui/components/Help.js.map +1 -1
  127. package/dist/src/ui/components/HistoryItemDisplay.d.ts +2 -0
  128. package/dist/src/ui/components/HistoryItemDisplay.js +2 -1
  129. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  130. package/dist/src/ui/components/InputPrompt.d.ts +3 -0
  131. package/dist/src/ui/components/InputPrompt.js +97 -19
  132. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  133. package/dist/src/ui/components/LoadingIndicator.js +2 -2
  134. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  135. package/dist/src/ui/components/LoopDetectionConfirmation.d.ts +13 -0
  136. package/dist/src/ui/components/LoopDetectionConfirmation.js +35 -0
  137. package/dist/src/ui/components/LoopDetectionConfirmation.js.map +1 -0
  138. package/dist/src/ui/components/LoopDetectionConfirmation.test.d.ts +6 -0
  139. package/dist/src/ui/components/LoopDetectionConfirmation.test.js +25 -0
  140. package/dist/src/ui/components/LoopDetectionConfirmation.test.js.map +1 -0
  141. package/dist/src/ui/components/MainContent.js +1 -1
  142. package/dist/src/ui/components/MainContent.js.map +1 -1
  143. package/dist/src/ui/components/MemoryUsageDisplay.js +6 -4
  144. package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
  145. package/dist/src/ui/components/ModelStatsDisplay.js +7 -7
  146. package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
  147. package/dist/src/ui/components/Notifications.js +2 -2
  148. package/dist/src/ui/components/Notifications.js.map +1 -1
  149. package/dist/src/ui/components/PrepareLabel.d.ts +5 -5
  150. package/dist/src/ui/components/PrepareLabel.js +67 -11
  151. package/dist/src/ui/components/PrepareLabel.js.map +1 -1
  152. package/dist/src/ui/components/PrepareLabel.test.d.ts +6 -0
  153. package/dist/src/ui/components/PrepareLabel.test.js +71 -0
  154. package/dist/src/ui/components/PrepareLabel.test.js.map +1 -0
  155. package/dist/src/ui/components/ProQuotaDialog.js +2 -2
  156. package/dist/src/ui/components/ProQuotaDialog.js.map +1 -1
  157. package/dist/src/ui/components/SettingsDialog.d.ts +2 -1
  158. package/dist/src/ui/components/SettingsDialog.js +73 -17
  159. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  160. package/dist/src/ui/components/SettingsDialog.test.js +291 -0
  161. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  162. package/dist/src/ui/components/ShellConfirmationDialog.js +2 -2
  163. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  164. package/dist/src/ui/components/ShellInputPrompt.d.ts +11 -0
  165. package/dist/src/ui/components/ShellInputPrompt.js +36 -0
  166. package/dist/src/ui/components/ShellInputPrompt.js.map +1 -0
  167. package/dist/src/ui/components/ShellModeIndicator.js +2 -2
  168. package/dist/src/ui/components/ShellModeIndicator.js.map +1 -1
  169. package/dist/src/ui/components/ShowMoreLines.js +2 -2
  170. package/dist/src/ui/components/ShowMoreLines.js.map +1 -1
  171. package/dist/src/ui/components/StatsDisplay.js +6 -6
  172. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  173. package/dist/src/ui/components/SuggestionsDisplay.d.ts +5 -2
  174. package/dist/src/ui/components/SuggestionsDisplay.js +17 -11
  175. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  176. package/dist/src/ui/components/ThemeDialog.js +4 -4
  177. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  178. package/dist/src/ui/components/ThemeDialog.test.js +10 -0
  179. package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
  180. package/dist/src/ui/components/Tips.js +2 -2
  181. package/dist/src/ui/components/Tips.js.map +1 -1
  182. package/dist/src/ui/components/ToolStatsDisplay.js +4 -4
  183. package/dist/src/ui/components/ToolStatsDisplay.js.map +1 -1
  184. package/dist/src/ui/components/UpdateNotification.js +2 -2
  185. package/dist/src/ui/components/UpdateNotification.js.map +1 -1
  186. package/dist/src/ui/components/WorkspaceMigrationDialog.js +4 -4
  187. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +1 -1
  188. package/dist/src/ui/components/messages/CompressionMessage.d.ts +1 -2
  189. package/dist/src/ui/components/messages/CompressionMessage.js +37 -8
  190. package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
  191. package/dist/src/ui/components/messages/CompressionMessage.test.d.ts +6 -0
  192. package/dist/src/ui/components/messages/CompressionMessage.test.js +160 -0
  193. package/dist/src/ui/components/messages/CompressionMessage.test.js.map +1 -0
  194. package/dist/src/ui/components/messages/DiffRenderer.d.ts +2 -1
  195. package/dist/src/ui/components/messages/DiffRenderer.js +14 -22
  196. package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
  197. package/dist/src/ui/components/messages/ErrorMessage.js +2 -2
  198. package/dist/src/ui/components/messages/ErrorMessage.js.map +1 -1
  199. package/dist/src/ui/components/messages/GeminiMessage.js +2 -2
  200. package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
  201. package/dist/src/ui/components/messages/InfoMessage.js +2 -2
  202. package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
  203. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +31 -19
  204. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  205. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +3 -0
  206. package/dist/src/ui/components/messages/ToolGroupMessage.js +10 -6
  207. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  208. package/dist/src/ui/components/messages/ToolMessage.d.ts +4 -0
  209. package/dist/src/ui/components/messages/ToolMessage.js +17 -10
  210. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  211. package/dist/src/ui/components/messages/ToolMessage.test.js +33 -1
  212. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
  213. package/dist/src/ui/components/messages/UserMessage.js +3 -3
  214. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  215. package/dist/src/ui/components/messages/UserShellMessage.js +2 -2
  216. package/dist/src/ui/components/messages/UserShellMessage.js.map +1 -1
  217. package/dist/src/ui/components/shared/MaxSizedBox.js +2 -2
  218. package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
  219. package/dist/src/ui/components/shared/RadioButtonSelect.js +12 -12
  220. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  221. package/dist/src/ui/components/shared/text-buffer.d.ts +19 -2
  222. package/dist/src/ui/components/shared/text-buffer.js +191 -133
  223. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  224. package/dist/src/ui/components/views/ExtensionsList.d.ts +6 -0
  225. package/dist/src/ui/components/views/ExtensionsList.js +47 -0
  226. package/dist/src/ui/components/views/ExtensionsList.js.map +1 -0
  227. package/dist/src/ui/components/views/ExtensionsList.test.d.ts +6 -0
  228. package/dist/src/ui/components/views/ExtensionsList.test.js +97 -0
  229. package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -0
  230. package/dist/src/ui/contexts/UIStateContext.d.ts +6 -1
  231. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  232. package/dist/src/ui/hooks/keyToAnsi.d.ts +15 -0
  233. package/dist/src/ui/hooks/keyToAnsi.js +67 -0
  234. package/dist/src/ui/hooks/keyToAnsi.js.map +1 -0
  235. package/dist/src/ui/hooks/shellCommandProcessor.d.ts +2 -1
  236. package/dist/src/ui/hooks/shellCommandProcessor.js +58 -15
  237. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  238. package/dist/src/ui/hooks/shellCommandProcessor.test.js +196 -17
  239. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  240. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +3 -1
  241. package/dist/src/ui/hooks/slashCommandProcessor.js +15 -45
  242. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  243. package/dist/src/ui/hooks/useAutoAcceptIndicator.d.ts +3 -2
  244. package/dist/src/ui/hooks/useAutoAcceptIndicator.js +9 -5
  245. package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -1
  246. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +69 -0
  247. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
  248. package/dist/src/ui/hooks/useGeminiStream.d.ts +11 -1
  249. package/dist/src/ui/hooks/useGeminiStream.js +75 -18
  250. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  251. package/dist/src/ui/hooks/useGitBranchName.js +15 -18
  252. package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
  253. package/dist/src/ui/hooks/useGitBranchName.test.js +49 -53
  254. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  255. package/dist/src/ui/hooks/useIdeTrustListener.js +2 -2
  256. package/dist/src/ui/hooks/useIdeTrustListener.js.map +1 -1
  257. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +0 -2
  258. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
  259. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +3 -2
  260. package/dist/src/ui/hooks/useReactToolScheduler.js +21 -17
  261. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  262. package/dist/src/ui/hooks/useReverseSearchCompletion.d.ts +1 -1
  263. package/dist/src/ui/hooks/useReverseSearchCompletion.js +67 -20
  264. package/dist/src/ui/hooks/useReverseSearchCompletion.js.map +1 -1
  265. package/dist/src/ui/hooks/useSlashCompletion.d.ts +1 -1
  266. package/dist/src/ui/hooks/useSlashCompletion.js +12 -1
  267. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  268. package/dist/src/ui/hooks/useSlashCompletion.test.js +14 -2
  269. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  270. package/dist/src/ui/hooks/useToolScheduler.test.js +6 -4
  271. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  272. package/dist/src/ui/keyMatchers.test.js +8 -0
  273. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  274. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +5 -5
  275. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -1
  276. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js +2 -2
  277. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js.map +1 -1
  278. package/dist/src/ui/privacy/GeminiPrivacyNotice.js +2 -2
  279. package/dist/src/ui/privacy/GeminiPrivacyNotice.js.map +1 -1
  280. package/dist/src/ui/state/extensions.d.ts +14 -0
  281. package/dist/src/ui/state/extensions.js +16 -0
  282. package/dist/src/ui/state/extensions.js.map +1 -0
  283. package/dist/src/ui/themes/ayu.js +1 -1
  284. package/dist/src/ui/themes/dracula.js +2 -2
  285. package/dist/src/ui/themes/github-dark.js +1 -1
  286. package/dist/src/ui/themes/theme.js +17 -17
  287. package/dist/src/ui/themes/theme.js.map +1 -1
  288. package/dist/src/ui/types.d.ts +12 -2
  289. package/dist/src/ui/types.js +1 -0
  290. package/dist/src/ui/types.js.map +1 -1
  291. package/dist/src/ui/utils/CodeColorizer.js +3 -2
  292. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  293. package/dist/src/ui/utils/InlineMarkdownRenderer.js +7 -7
  294. package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
  295. package/dist/src/ui/utils/MarkdownDisplay.js +10 -10
  296. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  297. package/dist/src/ui/utils/MarkdownDisplay.test.js +6 -2
  298. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  299. package/dist/src/ui/utils/TableRenderer.js +4 -4
  300. package/dist/src/ui/utils/TableRenderer.js.map +1 -1
  301. package/dist/src/ui/utils/clipboardUtils.js +5 -6
  302. package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
  303. package/dist/src/ui/utils/displayUtils.js +4 -4
  304. package/dist/src/ui/utils/displayUtils.js.map +1 -1
  305. package/dist/src/ui/utils/textUtils.d.ts +9 -0
  306. package/dist/src/ui/utils/textUtils.js +52 -3
  307. package/dist/src/ui/utils/textUtils.js.map +1 -1
  308. package/dist/src/utils/commands.d.ts +20 -0
  309. package/dist/src/utils/commands.js +53 -0
  310. package/dist/src/utils/commands.js.map +1 -0
  311. package/dist/src/utils/commands.test.d.ts +6 -0
  312. package/dist/src/utils/commands.test.js +115 -0
  313. package/dist/src/utils/commands.test.js.map +1 -0
  314. package/dist/src/utils/commentJson.d.ts +9 -0
  315. package/dist/src/utils/commentJson.js +48 -0
  316. package/dist/src/utils/commentJson.js.map +1 -0
  317. package/dist/src/utils/commentJson.test.d.ts +6 -0
  318. package/dist/src/utils/commentJson.test.js +146 -0
  319. package/dist/src/utils/commentJson.test.js.map +1 -0
  320. package/dist/src/utils/errors.d.ts +21 -0
  321. package/dist/src/utils/errors.js +93 -0
  322. package/dist/src/utils/errors.js.map +1 -1
  323. package/dist/src/utils/errors.test.d.ts +6 -0
  324. package/dist/src/utils/errors.test.js +303 -0
  325. package/dist/src/utils/errors.test.js.map +1 -0
  326. package/dist/src/utils/sandbox.js +2 -0
  327. package/dist/src/utils/sandbox.js.map +1 -1
  328. package/dist/src/utils/settingsUtils.test.js +37 -2
  329. package/dist/src/utils/settingsUtils.test.js.map +1 -1
  330. package/dist/src/validateNonInterActiveAuth.js +30 -18
  331. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  332. package/dist/src/zed-integration/schema.d.ts +18 -18
  333. package/dist/src/zed-integration/zedIntegration.js +10 -7
  334. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  335. package/dist/tsconfig.tsbuildinfo +1 -1
  336. package/package.json +5 -4
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { GEMINI_DIR, Storage, ClearcutLogger, Config, ExtensionInstallEvent, } from '@google/gemini-cli-core';
6
+ import { GEMINI_DIR, Storage, ClearcutLogger, Config, ExtensionInstallEvent, ExtensionUninstallEvent, } 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';
@@ -14,6 +14,8 @@ import { recursivelyHydrateStrings } from './extensions/variables.js';
14
14
  import { isWorkspaceTrusted } from './trustedFolders.js';
15
15
  import { resolveEnvVarsInObject } from '../utils/envVarResolver.js';
16
16
  import { randomUUID } from 'node:crypto';
17
+ import { ExtensionUpdateState } from '../ui/state/extensions.js';
18
+ import { ExtensionEnablementManager } from './extensions/extensionEnablement.js';
17
19
  export const EXTENSIONS_DIRECTORY_NAME = path.join(GEMINI_DIR, 'extensions');
18
20
  export const EXTENSIONS_CONFIG_FILENAME = 'gemini-extension.json';
19
21
  export const INSTALL_METADATA_FILENAME = '.gemini-extension-install.json';
@@ -62,9 +64,19 @@ export async function performWorkspaceExtensionMigration(extensions) {
62
64
  }
63
65
  return failedInstallNames;
64
66
  }
67
+ function getClearcutLogger(cwd) {
68
+ const config = new Config({
69
+ sessionId: randomUUID(),
70
+ targetDir: cwd,
71
+ cwd,
72
+ model: '',
73
+ debugMode: false,
74
+ });
75
+ const logger = ClearcutLogger.getInstance(config);
76
+ return logger;
77
+ }
65
78
  export function loadExtensions(workspaceDir = process.cwd()) {
66
79
  const settings = loadSettings(workspaceDir).merged;
67
- const disabledExtensions = settings.extensions?.disabled ?? [];
68
80
  const allExtensions = [...loadUserExtensions()];
69
81
  if ((isWorkspaceTrusted(settings) ?? true) &&
70
82
  // Default management setting to true
@@ -72,9 +84,10 @@ export function loadExtensions(workspaceDir = process.cwd()) {
72
84
  allExtensions.push(...getWorkspaceExtensions(workspaceDir));
73
85
  }
74
86
  const uniqueExtensions = new Map();
87
+ const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
75
88
  for (const extension of allExtensions) {
76
89
  if (!uniqueExtensions.has(extension.config.name) &&
77
- !disabledExtensions.includes(extension.config.name)) {
90
+ manager.isEnabled(extension.config.name, workspaceDir)) {
78
91
  uniqueExtensions.set(extension.config.name, extension);
79
92
  }
80
93
  }
@@ -99,16 +112,16 @@ export function loadExtensionsFromDir(dir) {
99
112
  const extensions = [];
100
113
  for (const subdir of fs.readdirSync(extensionsDir)) {
101
114
  const extensionDir = path.join(extensionsDir, subdir);
102
- const extension = loadExtension(extensionDir);
115
+ const extension = loadExtension({ extensionDir, workspaceDir: dir });
103
116
  if (extension != null) {
104
117
  extensions.push(extension);
105
118
  }
106
119
  }
107
120
  return extensions;
108
121
  }
109
- export function loadExtension(extensionDir) {
122
+ export function loadExtension(context) {
123
+ const { extensionDir, workspaceDir } = context;
110
124
  if (!fs.statSync(extensionDir).isDirectory()) {
111
- console.error(`Warning: unexpected file ${extensionDir} in extensions directory.`);
112
125
  return null;
113
126
  }
114
127
  const installMetadata = loadInstallMetadata(extensionDir);
@@ -125,6 +138,7 @@ export function loadExtension(extensionDir) {
125
138
  const configContent = fs.readFileSync(configFilePath, 'utf-8');
126
139
  let config = recursivelyHydrateStrings(JSON.parse(configContent), {
127
140
  extensionPath: extensionDir,
141
+ workspacePath: workspaceDir,
128
142
  '/': path.sep,
129
143
  pathSeparator: path.sep,
130
144
  });
@@ -170,21 +184,23 @@ function getContextFileNames(config) {
170
184
  }
171
185
  /**
172
186
  * Returns an annotated list of extensions. If an extension is listed in enabledExtensionNames, it will be active.
173
- * If enabledExtensionNames is empty, an extension is active unless it is in list of disabled extensions in settings.
187
+ * If enabledExtensionNames is empty, an extension is active unless it is disabled.
174
188
  * @param extensions The base list of extensions.
175
189
  * @param enabledExtensionNames The names of explicitly enabled extensions.
176
190
  * @param workspaceDir The current workspace directory.
177
191
  */
178
192
  export function annotateActiveExtensions(extensions, enabledExtensionNames, workspaceDir) {
179
- const settings = loadSettings(workspaceDir).merged;
180
- const disabledExtensions = settings.extensions?.disabled ?? [];
193
+ const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
181
194
  const annotatedExtensions = [];
182
195
  if (enabledExtensionNames.length === 0) {
183
196
  return extensions.map((extension) => ({
184
197
  name: extension.config.name,
185
198
  version: extension.config.version,
186
- isActive: !disabledExtensions.includes(extension.config.name),
199
+ isActive: manager.isEnabled(extension.config.name, workspaceDir),
187
200
  path: extension.path,
201
+ source: extension.installMetadata?.source,
202
+ type: extension.installMetadata?.type,
203
+ ref: extension.installMetadata?.ref,
188
204
  }));
189
205
  }
190
206
  const lowerCaseEnabledExtensions = new Set(enabledExtensionNames.map((e) => e.trim().toLowerCase()));
@@ -195,6 +211,9 @@ export function annotateActiveExtensions(extensions, enabledExtensionNames, work
195
211
  version: extension.config.version,
196
212
  isActive: false,
197
213
  path: extension.path,
214
+ source: extension.installMetadata?.source,
215
+ type: extension.installMetadata?.type,
216
+ ref: extension.installMetadata?.ref,
198
217
  }));
199
218
  }
200
219
  const notFoundNames = new Set(lowerCaseEnabledExtensions);
@@ -218,29 +237,49 @@ export function annotateActiveExtensions(extensions, enabledExtensionNames, work
218
237
  }
219
238
  /**
220
239
  * Clones a Git repository to a specified local path.
221
- * @param gitUrl The Git URL to clone.
240
+ * @param installMetadata The metadata for the extension to install.
222
241
  * @param destination The destination path to clone the repository to.
223
242
  */
224
- async function cloneFromGit(gitUrl, destination) {
243
+ async function cloneFromGit(installMetadata, destination) {
225
244
  try {
226
- // TODO(chrstnb): Download the archive instead to avoid unnecessary .git info.
227
- await simpleGit().clone(gitUrl, destination, ['--depth', '1']);
245
+ const git = simpleGit(destination);
246
+ await git.clone(installMetadata.source, './', ['--depth', '1']);
247
+ const remotes = await git.getRemotes(true);
248
+ if (remotes.length === 0) {
249
+ throw new Error(`Unable to find any remotes for repo ${installMetadata.source}`);
250
+ }
251
+ const refToFetch = installMetadata.ref || 'HEAD';
252
+ await git.fetch(remotes[0].name, refToFetch);
253
+ // After fetching, checkout FETCH_HEAD to get the content of the fetched ref.
254
+ // This results in a detached HEAD state, which is fine for this purpose.
255
+ await git.checkout('FETCH_HEAD');
228
256
  }
229
257
  catch (error) {
230
- throw new Error(`Failed to clone Git repository from ${gitUrl}`, {
258
+ throw new Error(`Failed to clone Git repository from ${installMetadata.source}`, {
231
259
  cause: error,
232
260
  });
233
261
  }
234
262
  }
235
- export async function installExtension(installMetadata, cwd = process.cwd()) {
236
- const config = new Config({
237
- sessionId: randomUUID(),
238
- targetDir: process.cwd(),
239
- cwd: process.cwd(),
240
- model: '',
241
- debugMode: false,
263
+ /**
264
+ * Asks users a prompt and awaits for a y/n response
265
+ * @param prompt A yes/no prompt to ask the user
266
+ * @returns Whether or not the user answers 'y' (yes)
267
+ */
268
+ async function promptForContinuation(prompt) {
269
+ const readline = await import('node:readline');
270
+ const rl = readline.createInterface({
271
+ input: process.stdin,
272
+ output: process.stdout,
242
273
  });
243
- const logger = ClearcutLogger.getInstance(config);
274
+ return new Promise((resolve) => {
275
+ rl.question(prompt, (answer) => {
276
+ rl.close();
277
+ resolve(answer.toLowerCase() === 'y');
278
+ });
279
+ });
280
+ }
281
+ export async function installExtension(installMetadata, askConsent = false, cwd = process.cwd()) {
282
+ const logger = getClearcutLogger(cwd);
244
283
  let newExtensionConfig = null;
245
284
  let localSourcePath;
246
285
  try {
@@ -257,7 +296,7 @@ export async function installExtension(installMetadata, cwd = process.cwd()) {
257
296
  let tempDir;
258
297
  if (installMetadata.type === 'git') {
259
298
  tempDir = await ExtensionStorage.createTmpDir();
260
- await cloneFromGit(installMetadata.source, tempDir);
299
+ await cloneFromGit(installMetadata, tempDir);
261
300
  localSourcePath = tempDir;
262
301
  }
263
302
  else if (installMetadata.type === 'local' ||
@@ -268,7 +307,10 @@ export async function installExtension(installMetadata, cwd = process.cwd()) {
268
307
  throw new Error(`Unsupported install type: ${installMetadata.type}`);
269
308
  }
270
309
  try {
271
- newExtensionConfig = await loadExtensionConfig(localSourcePath);
310
+ newExtensionConfig = await loadExtensionConfig({
311
+ extensionDir: localSourcePath,
312
+ workspaceDir: cwd,
313
+ });
272
314
  if (!newExtensionConfig) {
273
315
  throw new Error(`Invalid extension at ${installMetadata.source}. Please make sure it has a valid gemini-extension.json file.`);
274
316
  }
@@ -279,6 +321,9 @@ export async function installExtension(installMetadata, cwd = process.cwd()) {
279
321
  if (installedExtensions.some((installed) => installed.config.name === newExtensionName)) {
280
322
  throw new Error(`Extension "${newExtensionName}" is already installed. Please uninstall it first.`);
281
323
  }
324
+ if (askConsent) {
325
+ await requestConsent(newExtensionConfig);
326
+ }
282
327
  await fs.promises.mkdir(destinationPath, { recursive: true });
283
328
  if (installMetadata.type === 'local' || installMetadata.type === 'git') {
284
329
  await copyExtension(localSourcePath, destinationPath);
@@ -293,19 +338,39 @@ export async function installExtension(installMetadata, cwd = process.cwd()) {
293
338
  }
294
339
  }
295
340
  logger?.logExtensionInstallEvent(new ExtensionInstallEvent(newExtensionConfig.name, newExtensionConfig.version, installMetadata.source, 'success'));
341
+ enableExtension(newExtensionConfig.name, SettingScope.User);
296
342
  return newExtensionConfig.name;
297
343
  }
298
344
  catch (error) {
299
345
  // Attempt to load config from the source path even if installation fails
300
346
  // to get the name and version for logging.
301
347
  if (!newExtensionConfig && localSourcePath) {
302
- newExtensionConfig = await loadExtensionConfig(localSourcePath);
348
+ newExtensionConfig = await loadExtensionConfig({
349
+ extensionDir: localSourcePath,
350
+ workspaceDir: cwd,
351
+ });
303
352
  }
304
353
  logger?.logExtensionInstallEvent(new ExtensionInstallEvent(newExtensionConfig?.name ?? '', newExtensionConfig?.version ?? '', installMetadata.source, 'error'));
305
354
  throw error;
306
355
  }
307
356
  }
308
- export async function loadExtensionConfig(extensionDir) {
357
+ async function requestConsent(extensionConfig) {
358
+ const mcpServerEntries = Object.entries(extensionConfig.mcpServers || {});
359
+ if (mcpServerEntries.length) {
360
+ console.info('This extension will run the following MCP servers: ');
361
+ for (const [key, mcpServer] of mcpServerEntries) {
362
+ const isLocal = !!mcpServer.command;
363
+ console.info(` * ${key} (${isLocal ? 'local' : 'remote'}): ${mcpServer.description}`);
364
+ }
365
+ console.info('The extension will append info to your gemini.md context');
366
+ const shouldContinue = await promptForContinuation('Do you want to continue? (y/n): ');
367
+ if (!shouldContinue) {
368
+ throw new Error('Installation cancelled by user.');
369
+ }
370
+ }
371
+ }
372
+ export async function loadExtensionConfig(context) {
373
+ const { extensionDir, workspaceDir } = context;
309
374
  const configFilePath = path.join(extensionDir, EXTENSIONS_CONFIG_FILENAME);
310
375
  if (!fs.existsSync(configFilePath)) {
311
376
  return null;
@@ -314,6 +379,7 @@ export async function loadExtensionConfig(extensionDir) {
314
379
  const configContent = fs.readFileSync(configFilePath, 'utf-8');
315
380
  const config = recursivelyHydrateStrings(JSON.parse(configContent), {
316
381
  extensionPath: extensionDir,
382
+ workspacePath: workspaceDir,
317
383
  '/': path.sep,
318
384
  pathSeparator: path.sep,
319
385
  });
@@ -327,22 +393,28 @@ export async function loadExtensionConfig(extensionDir) {
327
393
  }
328
394
  }
329
395
  export async function uninstallExtension(extensionName, cwd = process.cwd()) {
396
+ const logger = getClearcutLogger(cwd);
330
397
  const installedExtensions = loadUserExtensions();
331
398
  if (!installedExtensions.some((installed) => installed.config.name === extensionName)) {
332
399
  throw new Error(`Extension "${extensionName}" not found.`);
333
400
  }
334
- removeFromDisabledExtensions(extensionName, [SettingScope.User, SettingScope.Workspace], cwd);
401
+ const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
402
+ manager.remove(extensionName);
335
403
  const storage = new ExtensionStorage(extensionName);
336
- return await fs.promises.rm(storage.getExtensionDir(), {
404
+ await fs.promises.rm(storage.getExtensionDir(), {
337
405
  recursive: true,
338
406
  force: true,
339
407
  });
408
+ logger?.logExtensionUninstallEvent(new ExtensionUninstallEvent(extensionName, 'success'));
340
409
  }
341
410
  export function toOutputString(extension) {
342
411
  let output = `${extension.config.name} (${extension.config.version})`;
343
412
  output += `\n Path: ${extension.path}`;
344
413
  if (extension.installMetadata) {
345
414
  output += `\n Source: ${extension.installMetadata.source} (Type: ${extension.installMetadata.type})`;
415
+ if (extension.installMetadata.ref) {
416
+ output += `\n Ref: ${extension.installMetadata.ref}`;
417
+ }
346
418
  }
347
419
  if (extension.contextFiles.length > 0) {
348
420
  output += `\n Context files:`;
@@ -364,41 +436,53 @@ export function toOutputString(extension) {
364
436
  }
365
437
  return output;
366
438
  }
367
- export async function updateExtensionByName(extensionName, cwd = process.cwd()) {
368
- const installedExtensions = loadUserExtensions();
369
- const extension = installedExtensions.find((installed) => installed.config.name === extensionName);
439
+ export async function updateExtensionByName(extensionName, cwd = process.cwd(), extensions, setExtensionUpdateState) {
440
+ const extension = extensions.find((installed) => installed.name === extensionName);
370
441
  if (!extension) {
371
442
  throw new Error(`Extension "${extensionName}" not found. Run gemini extensions list to see available extensions.`);
372
443
  }
373
- return await updateExtension(extension, cwd);
444
+ return await updateExtension(extension, cwd, setExtensionUpdateState);
374
445
  }
375
- export async function updateExtension(extension, cwd = process.cwd()) {
376
- if (!extension.installMetadata) {
377
- throw new Error(`Extension ${extension.config.name} cannot be updated.`);
446
+ export async function updateExtension(extension, cwd = process.cwd(), setExtensionUpdateState) {
447
+ if (!extension.type) {
448
+ setExtensionUpdateState(ExtensionUpdateState.ERROR);
449
+ throw new Error(`Extension ${extension.name} cannot be updated, type is unknown.`);
378
450
  }
379
- if (extension.installMetadata.type === 'link') {
451
+ if (extension.type === 'link') {
452
+ setExtensionUpdateState(ExtensionUpdateState.UP_TO_DATE);
380
453
  throw new Error(`Extension is linked so does not need to be updated`);
381
454
  }
382
- const originalVersion = extension.config.version;
455
+ setExtensionUpdateState(ExtensionUpdateState.UPDATING);
456
+ const originalVersion = extension.version;
383
457
  const tempDir = await ExtensionStorage.createTmpDir();
384
458
  try {
385
459
  await copyExtension(extension.path, tempDir);
386
- await uninstallExtension(extension.config.name, cwd);
387
- await installExtension(extension.installMetadata, cwd);
388
- const updatedExtensionStorage = new ExtensionStorage(extension.config.name);
389
- const updatedExtension = loadExtension(updatedExtensionStorage.getExtensionDir());
460
+ await uninstallExtension(extension.name, cwd);
461
+ await installExtension({
462
+ source: extension.source,
463
+ type: extension.type,
464
+ ref: extension.ref,
465
+ }, false, cwd);
466
+ const updatedExtensionStorage = new ExtensionStorage(extension.name);
467
+ const updatedExtension = loadExtension({
468
+ extensionDir: updatedExtensionStorage.getExtensionDir(),
469
+ workspaceDir: cwd,
470
+ });
390
471
  if (!updatedExtension) {
472
+ setExtensionUpdateState(ExtensionUpdateState.ERROR);
391
473
  throw new Error('Updated extension not found after installation.');
392
474
  }
393
475
  const updatedVersion = updatedExtension.config.version;
476
+ setExtensionUpdateState(ExtensionUpdateState.UPDATED_NEEDS_RESTART);
394
477
  return {
395
- name: extension.config.name,
478
+ name: extension.name,
396
479
  originalVersion,
397
480
  updatedVersion,
398
481
  };
399
482
  }
400
483
  catch (e) {
401
484
  console.error(`Error updating extension, rolling back. ${getErrorMessage(e)}`);
485
+ setExtensionUpdateState(ExtensionUpdateState.ERROR);
402
486
  await copyExtension(tempDir, extension.path);
403
487
  throw e;
404
488
  }
@@ -410,40 +494,75 @@ export function disableExtension(name, scope, cwd = process.cwd()) {
410
494
  if (scope === SettingScope.System || scope === SettingScope.SystemDefaults) {
411
495
  throw new Error('System and SystemDefaults scopes are not supported.');
412
496
  }
413
- const settings = loadSettings(cwd);
414
- const settingsFile = settings.forScope(scope);
415
- const extensionSettings = settingsFile.settings.extensions || {
416
- disabled: [],
417
- };
418
- const disabledExtensions = extensionSettings.disabled || [];
419
- if (!disabledExtensions.includes(name)) {
420
- disabledExtensions.push(name);
421
- extensionSettings.disabled = disabledExtensions;
422
- settings.setValue(scope, 'extensions', extensionSettings);
497
+ const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
498
+ const scopePath = scope === SettingScope.Workspace ? cwd : os.homedir();
499
+ manager.disable(name, true, scopePath);
500
+ }
501
+ export function enableExtension(name, scope, cwd = process.cwd()) {
502
+ if (scope === SettingScope.System || scope === SettingScope.SystemDefaults) {
503
+ throw new Error('System and SystemDefaults scopes are not supported.');
423
504
  }
505
+ const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
506
+ const scopePath = scope === SettingScope.Workspace ? cwd : os.homedir();
507
+ manager.enable(name, true, scopePath);
424
508
  }
425
- export function enableExtension(name, scopes) {
426
- removeFromDisabledExtensions(name, scopes);
509
+ export async function updateAllUpdatableExtensions(cwd = process.cwd(), extensions, extensionsState, setExtensionsUpdateState) {
510
+ return await Promise.all(extensions
511
+ .filter((extension) => extensionsState.get(extension.name) ===
512
+ ExtensionUpdateState.UPDATE_AVAILABLE)
513
+ .map((extension) => updateExtension(extension, cwd, (updateState) => {
514
+ const newState = new Map(extensionsState);
515
+ newState.set(extension.name, updateState);
516
+ setExtensionsUpdateState(newState);
517
+ })));
427
518
  }
428
- /**
429
- * Removes an extension from the list of disabled extensions.
430
- * @param name The name of the extension to remove.
431
- * @param scope The scopes to remove the name from.
432
- */
433
- function removeFromDisabledExtensions(name, scopes, cwd = process.cwd()) {
434
- const settings = loadSettings(cwd);
435
- for (const scope of scopes) {
436
- const settingsFile = settings.forScope(scope);
437
- const extensionSettings = settingsFile.settings.extensions || {
438
- disabled: [],
439
- };
440
- const disabledExtensions = extensionSettings.disabled || [];
441
- extensionSettings.disabled = disabledExtensions.filter((extension) => extension !== name);
442
- settings.setValue(scope, 'extensions', extensionSettings);
519
+ export async function checkForAllExtensionUpdates(extensions, setExtensionsUpdateState) {
520
+ const finalState = new Map();
521
+ for (const extension of extensions) {
522
+ finalState.set(extension.name, await checkForExtensionUpdate(extension));
443
523
  }
524
+ setExtensionsUpdateState(finalState);
525
+ return finalState;
444
526
  }
445
- export async function updateAllUpdatableExtensions(cwd = process.cwd()) {
446
- const extensions = loadExtensions(cwd).filter((extension) => !!extension.installMetadata);
447
- return await Promise.all(extensions.map((extension) => updateExtension(extension, cwd)));
527
+ export async function checkForExtensionUpdate(extension) {
528
+ if (extension.type !== 'git') {
529
+ return ExtensionUpdateState.NOT_UPDATABLE;
530
+ }
531
+ try {
532
+ const git = simpleGit(extension.path);
533
+ const remotes = await git.getRemotes(true);
534
+ if (remotes.length === 0) {
535
+ console.error('No git remotes found.');
536
+ return ExtensionUpdateState.ERROR;
537
+ }
538
+ const remoteUrl = remotes[0].refs.fetch;
539
+ if (!remoteUrl) {
540
+ console.error(`No fetch URL found for git remote ${remotes[0].name}.`);
541
+ return ExtensionUpdateState.ERROR;
542
+ }
543
+ // Determine the ref to check on the remote.
544
+ const refToCheck = extension.ref || 'HEAD';
545
+ const lsRemoteOutput = await git.listRemote([remoteUrl, refToCheck]);
546
+ if (typeof lsRemoteOutput !== 'string' || lsRemoteOutput.trim() === '') {
547
+ console.error(`Git ref ${refToCheck} not found.`);
548
+ return ExtensionUpdateState.ERROR;
549
+ }
550
+ const remoteHash = lsRemoteOutput.split('\t')[0];
551
+ const localHash = await git.revparse(['HEAD']);
552
+ if (!remoteHash) {
553
+ console.error(`Unable to parse hash from git ls-remote output "${lsRemoteOutput}"`);
554
+ return ExtensionUpdateState.ERROR;
555
+ }
556
+ else if (remoteHash === localHash) {
557
+ return ExtensionUpdateState.UP_TO_DATE;
558
+ }
559
+ else {
560
+ return ExtensionUpdateState.UPDATE_AVAILABLE;
561
+ }
562
+ }
563
+ catch (error) {
564
+ console.error(`Failed to check for updates for extension "${extension.name}": ${getErrorMessage(error)}`);
565
+ return ExtensionUpdateState.ERROR;
566
+ }
448
567
  }
449
568
  //# sourceMappingURL=extension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../src/config/extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../src/config/extension.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export interface ExtensionEnablementConfig {
7
+ overrides: string[];
8
+ }
9
+ export interface AllExtensionsEnablementConfig {
10
+ [extensionName: string]: ExtensionEnablementConfig;
11
+ }
12
+ /**
13
+ * Determines if an extension is enabled based on the configuration and current path.
14
+ * The last matching rule in the overrides list wins.
15
+ *
16
+ * @param config The enablement configuration for a single extension.
17
+ * @param currentPath The absolute path of the current working directory.
18
+ * @returns True if the extension is enabled, false otherwise.
19
+ */
20
+ export declare class ExtensionEnablementManager {
21
+ private configFilePath;
22
+ private configDir;
23
+ constructor(configDir: string);
24
+ isEnabled(extensionName: string, currentPath: string): boolean;
25
+ readConfig(): AllExtensionsEnablementConfig;
26
+ writeConfig(config: AllExtensionsEnablementConfig): void;
27
+ enable(extensionName: string, includeSubdirs: boolean, scopePath: string): void;
28
+ disable(extensionName: string, includeSubdirs: boolean, scopePath: string): void;
29
+ remove(extensionName: string): void;
30
+ }