@machina.ai/cell-cli 1.6.1-rc1 → 1.8.2-rc1

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 (401) hide show
  1. package/dist/package.json +7 -4
  2. package/dist/src/commands/extensions/examples/context/gemini-extension.json +1 -2
  3. package/dist/src/commands/extensions/examples/mcp-server/gemini-extension.json +3 -2
  4. package/dist/src/commands/extensions/examples/mcp-server/package.json +18 -0
  5. package/dist/src/commands/extensions/examples/mcp-server/tsconfig.json +13 -0
  6. package/dist/src/commands/extensions/install.d.ts +1 -2
  7. package/dist/src/commands/extensions/install.js +29 -36
  8. package/dist/src/commands/extensions/install.js.map +1 -1
  9. package/dist/src/commands/extensions/install.test.js +16 -16
  10. package/dist/src/commands/extensions/install.test.js.map +1 -1
  11. package/dist/src/commands/extensions/link.js +2 -2
  12. package/dist/src/commands/extensions/link.js.map +1 -1
  13. package/dist/src/commands/extensions/list.js +1 -1
  14. package/dist/src/commands/extensions/list.js.map +1 -1
  15. package/dist/src/commands/extensions/new.js +28 -8
  16. package/dist/src/commands/extensions/new.js.map +1 -1
  17. package/dist/src/commands/extensions/new.test.js +14 -5
  18. package/dist/src/commands/extensions/new.test.js.map +1 -1
  19. package/dist/src/commands/extensions/uninstall.test.js +4 -1
  20. package/dist/src/commands/extensions/uninstall.test.js.map +1 -1
  21. package/dist/src/commands/extensions/update.js +19 -5
  22. package/dist/src/commands/extensions/update.js.map +1 -1
  23. package/dist/src/commands/mcp/add.js +6 -1
  24. package/dist/src/commands/mcp/add.js.map +1 -1
  25. package/dist/src/commands/mcp/list.js +3 -2
  26. package/dist/src/commands/mcp/list.js.map +1 -1
  27. package/dist/src/config/config.d.ts +5 -2
  28. package/dist/src/config/config.js +126 -73
  29. package/dist/src/config/config.js.map +1 -1
  30. package/dist/src/config/extension.d.ts +29 -5
  31. package/dist/src/config/extension.js +139 -65
  32. package/dist/src/config/extension.js.map +1 -1
  33. package/dist/src/config/extensions/extensionEnablement.d.ts +12 -9
  34. package/dist/src/config/extensions/extensionEnablement.js +37 -9
  35. package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
  36. package/dist/src/config/extensions/extensionEnablement.test.js +72 -0
  37. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
  38. package/dist/src/config/extensions/github.d.ts +1 -0
  39. package/dist/src/config/extensions/github.js +31 -15
  40. package/dist/src/config/extensions/github.js.map +1 -1
  41. package/dist/src/config/extensions/github.test.js +68 -1
  42. package/dist/src/config/extensions/github.test.js.map +1 -1
  43. package/dist/src/config/extensions/update.d.ts +4 -5
  44. package/dist/src/config/extensions/update.js +59 -40
  45. package/dist/src/config/extensions/update.js.map +1 -1
  46. package/dist/src/config/extensions/update.test.js +89 -71
  47. package/dist/src/config/extensions/update.test.js.map +1 -1
  48. package/dist/src/config/policy-engine.integration.test.js +270 -0
  49. package/dist/src/config/policy-engine.integration.test.js.map +1 -0
  50. package/dist/src/config/policy.d.ts +8 -0
  51. package/dist/src/config/policy.js +150 -0
  52. package/dist/src/config/policy.js.map +1 -0
  53. package/dist/src/config/policy.test.d.ts +6 -0
  54. package/dist/src/config/policy.test.js +336 -0
  55. package/dist/src/config/policy.test.js.map +1 -0
  56. package/dist/src/config/settings.js +19 -3
  57. package/dist/src/config/settings.js.map +1 -1
  58. package/dist/src/config/settingsSchema.d.ts +30 -3
  59. package/dist/src/config/settingsSchema.js +29 -2
  60. package/dist/src/config/settingsSchema.js.map +1 -1
  61. package/dist/src/config/trustedFolders.d.ts +10 -1
  62. package/dist/src/config/trustedFolders.js +42 -16
  63. package/dist/src/config/trustedFolders.js.map +1 -1
  64. package/dist/src/config/trustedFolders.test.js +98 -17
  65. package/dist/src/config/trustedFolders.test.js.map +1 -1
  66. package/dist/src/gemini.js +118 -161
  67. package/dist/src/gemini.js.map +1 -1
  68. package/dist/src/gemini.test.js +81 -12
  69. package/dist/src/gemini.test.js.map +1 -1
  70. package/dist/src/generated/git-commit.d.ts +2 -2
  71. package/dist/src/generated/git-commit.js +2 -2
  72. package/dist/src/nonInteractiveCli.d.ts +2 -1
  73. package/dist/src/nonInteractiveCli.js +29 -16
  74. package/dist/src/nonInteractiveCli.js.map +1 -1
  75. package/dist/src/nonInteractiveCliCommands.d.ts +17 -0
  76. package/dist/src/nonInteractiveCliCommands.js +79 -0
  77. package/dist/src/nonInteractiveCliCommands.js.map +1 -0
  78. package/dist/src/services/BuiltinCommandLoader.js +4 -0
  79. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  80. package/dist/src/services/BuiltinCommandLoader.test.js +50 -1
  81. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  82. package/dist/src/test-utils/render.d.ts +5 -1
  83. package/dist/src/test-utils/render.js +5 -1
  84. package/dist/src/test-utils/render.js.map +1 -1
  85. package/dist/src/ui/App.js +23 -8
  86. package/dist/src/ui/App.js.map +1 -1
  87. package/dist/src/ui/AppContainer.js +114 -55
  88. package/dist/src/ui/AppContainer.js.map +1 -1
  89. package/dist/src/ui/AppContainer.test.js +399 -7
  90. package/dist/src/ui/AppContainer.test.js.map +1 -1
  91. package/dist/src/ui/IdeIntegrationNudge.d.ts +2 -2
  92. package/dist/src/ui/IdeIntegrationNudge.js +4 -2
  93. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  94. package/dist/src/ui/auth/AuthDialog.js +1 -0
  95. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  96. package/dist/src/ui/auth/AuthDialog.test.js +1 -0
  97. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  98. package/dist/src/ui/commands/chatCommand.js +14 -3
  99. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  100. package/dist/src/ui/commands/clearCommand.js +1 -1
  101. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  102. package/dist/src/ui/commands/extensionsCommand.js +17 -10
  103. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  104. package/dist/src/ui/commands/ideCommand.js +1 -1
  105. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  106. package/dist/src/ui/commands/mcpCommand.js +87 -262
  107. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  108. package/dist/src/ui/commands/modelCommand.d.ts +7 -0
  109. package/dist/src/ui/commands/modelCommand.js +16 -0
  110. package/dist/src/ui/commands/modelCommand.js.map +1 -0
  111. package/dist/src/ui/commands/modelCommand.test.d.ts +6 -0
  112. package/dist/src/ui/commands/modelCommand.test.js +30 -0
  113. package/dist/src/ui/commands/modelCommand.test.js.map +1 -0
  114. package/dist/src/ui/commands/permissionsCommand.d.ts +7 -0
  115. package/dist/src/ui/commands/permissionsCommand.js +16 -0
  116. package/dist/src/ui/commands/permissionsCommand.js.map +1 -0
  117. package/dist/src/ui/commands/permissionsCommand.test.d.ts +6 -0
  118. package/dist/src/ui/commands/permissionsCommand.test.js +30 -0
  119. package/dist/src/ui/commands/permissionsCommand.test.js.map +1 -0
  120. package/dist/src/ui/commands/toolsCommand.js +10 -24
  121. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  122. package/dist/src/ui/commands/types.d.ts +7 -6
  123. package/dist/src/ui/commands/types.js.map +1 -1
  124. package/dist/src/ui/components/AppHeader.js +2 -5
  125. package/dist/src/ui/components/AppHeader.js.map +1 -1
  126. package/dist/src/ui/components/AsciiArt.d.ts +3 -3
  127. package/dist/src/ui/components/AsciiArt.js +3 -3
  128. package/dist/src/ui/components/Composer.js +12 -32
  129. package/dist/src/ui/components/Composer.js.map +1 -1
  130. package/dist/src/ui/components/Composer.test.js +18 -21
  131. package/dist/src/ui/components/Composer.test.js.map +1 -1
  132. package/dist/src/ui/components/ConsentPrompt.d.ts +13 -0
  133. package/dist/src/ui/components/ConsentPrompt.js +19 -0
  134. package/dist/src/ui/components/ConsentPrompt.js.map +1 -0
  135. package/dist/src/ui/components/ConsentPrompt.test.d.ts +6 -0
  136. package/dist/src/ui/components/ConsentPrompt.test.js +67 -0
  137. package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -0
  138. package/dist/src/ui/components/ContextUsageDisplay.d.ts +2 -1
  139. package/dist/src/ui/components/ContextUsageDisplay.js +4 -2
  140. package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -1
  141. package/dist/src/ui/components/DialogManager.d.ts +7 -1
  142. package/dist/src/ui/components/DialogManager.js +18 -9
  143. package/dist/src/ui/components/DialogManager.js.map +1 -1
  144. package/dist/src/ui/components/EditorSettingsDialog.js +11 -2
  145. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  146. package/dist/src/ui/components/ExitWarning.d.ts +7 -0
  147. package/dist/src/ui/components/ExitWarning.js +9 -0
  148. package/dist/src/ui/components/ExitWarning.js.map +1 -0
  149. package/dist/src/ui/components/FolderTrustDialog.js +3 -0
  150. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  151. package/dist/src/ui/components/FolderTrustDialog.test.js +2 -2
  152. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  153. package/dist/src/ui/components/Footer.d.ts +1 -19
  154. package/dist/src/ui/components/Footer.js +32 -15
  155. package/dist/src/ui/components/Footer.js.map +1 -1
  156. package/dist/src/ui/components/HistoryItemDisplay.d.ts +2 -1
  157. package/dist/src/ui/components/HistoryItemDisplay.js +10 -1
  158. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  159. package/dist/src/ui/components/HistoryItemDisplay.test.js +90 -9
  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 +59 -22
  169. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  170. package/dist/src/ui/components/LoadingIndicator.js +1 -1
  171. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  172. package/dist/src/ui/components/LoadingIndicator.test.js +4 -0
  173. package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
  174. package/dist/src/ui/components/LoopDetectionConfirmation.js +2 -0
  175. package/dist/src/ui/components/LoopDetectionConfirmation.js.map +1 -1
  176. package/dist/src/ui/components/MainContent.js +7 -2
  177. package/dist/src/ui/components/MainContent.js.map +1 -1
  178. package/dist/src/ui/components/ModelDialog.d.ts +11 -0
  179. package/dist/src/ui/components/ModelDialog.js +57 -0
  180. package/dist/src/ui/components/ModelDialog.js.map +1 -0
  181. package/dist/src/ui/components/ModelDialog.test.d.ts +6 -0
  182. package/dist/src/ui/components/ModelDialog.test.js +153 -0
  183. package/dist/src/ui/components/ModelDialog.test.js.map +1 -0
  184. package/dist/src/ui/components/PermissionsModifyTrustDialog.d.ts +13 -0
  185. package/dist/src/ui/components/PermissionsModifyTrustDialog.js +48 -0
  186. package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -0
  187. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.d.ts +6 -0
  188. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +154 -0
  189. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -0
  190. package/dist/src/ui/components/ProQuotaDialog.js +2 -0
  191. package/dist/src/ui/components/ProQuotaDialog.js.map +1 -1
  192. package/dist/src/ui/components/ProQuotaDialog.test.js +2 -0
  193. package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -1
  194. package/dist/src/ui/components/QueuedMessageDisplay.d.ts +9 -0
  195. package/dist/src/ui/components/QueuedMessageDisplay.js +20 -0
  196. package/dist/src/ui/components/QueuedMessageDisplay.js.map +1 -0
  197. package/dist/src/ui/components/QueuedMessageDisplay.test.d.ts +6 -0
  198. package/dist/src/ui/components/QueuedMessageDisplay.test.js +56 -0
  199. package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -0
  200. package/dist/src/ui/components/RatingWidget.js +5 -1
  201. package/dist/src/ui/components/RatingWidget.js.map +1 -1
  202. package/dist/src/ui/components/SettingsDialog.js +5 -2
  203. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  204. package/dist/src/ui/components/SettingsDialog.test.js +47 -13
  205. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  206. package/dist/src/ui/components/ShellConfirmationDialog.js +3 -0
  207. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  208. package/dist/src/ui/components/ThemeDialog.js +2 -0
  209. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  210. package/dist/src/ui/components/WorkspaceMigrationDialog.js +5 -3
  211. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +1 -1
  212. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +14 -0
  213. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  214. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +1 -1
  215. package/dist/src/ui/components/messages/ToolGroupMessage.js +5 -5
  216. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  217. package/dist/src/ui/components/messages/ToolMessage.d.ts +1 -1
  218. package/dist/src/ui/components/messages/ToolMessage.js +27 -4
  219. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  220. package/dist/src/ui/components/messages/UserMessage.js +1 -2
  221. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  222. package/dist/src/ui/components/messages/WarningMessage.d.ts +11 -0
  223. package/dist/src/ui/components/messages/WarningMessage.js +10 -0
  224. package/dist/src/ui/components/messages/WarningMessage.js.map +1 -0
  225. package/dist/src/ui/components/shared/BaseSelectionList.d.ts +38 -0
  226. package/dist/src/ui/components/shared/BaseSelectionList.js +72 -0
  227. package/dist/src/ui/components/shared/BaseSelectionList.js.map +1 -0
  228. package/dist/src/ui/components/shared/BaseSelectionList.test.d.ts +6 -0
  229. package/dist/src/ui/components/shared/BaseSelectionList.test.js +376 -0
  230. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -0
  231. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.d.ts +35 -0
  232. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js +13 -0
  233. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js.map +1 -0
  234. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.d.ts +6 -0
  235. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js +79 -0
  236. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js.map +1 -0
  237. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +2 -3
  238. package/dist/src/ui/components/shared/RadioButtonSelect.js +9 -104
  239. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  240. package/dist/src/ui/components/shared/RadioButtonSelect.test.js +115 -92
  241. package/dist/src/ui/components/shared/RadioButtonSelect.test.js.map +1 -1
  242. package/dist/src/ui/components/shared/ScopeSelector.js +4 -1
  243. package/dist/src/ui/components/shared/ScopeSelector.js.map +1 -1
  244. package/dist/src/ui/components/shared/text-buffer.d.ts +6 -0
  245. package/dist/src/ui/components/shared/text-buffer.js +71 -4
  246. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  247. package/dist/src/ui/components/views/ExtensionsList.test.js +1 -1
  248. package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -1
  249. package/dist/src/ui/components/views/McpStatus.d.ts +27 -0
  250. package/dist/src/ui/components/views/McpStatus.js +77 -0
  251. package/dist/src/ui/components/views/McpStatus.js.map +1 -0
  252. package/dist/src/ui/components/views/McpStatus.test.d.ts +6 -0
  253. package/dist/src/ui/components/views/McpStatus.test.js +117 -0
  254. package/dist/src/ui/components/views/McpStatus.test.js.map +1 -0
  255. package/dist/src/ui/components/views/ToolsList.d.ts +14 -0
  256. package/dist/src/ui/components/views/ToolsList.js +7 -0
  257. package/dist/src/ui/components/views/ToolsList.js.map +1 -0
  258. package/dist/src/ui/components/views/ToolsList.test.d.ts +6 -0
  259. package/dist/src/ui/components/views/ToolsList.test.js +45 -0
  260. package/dist/src/ui/components/views/ToolsList.test.js.map +1 -0
  261. package/dist/src/ui/contexts/KeypressContext.js +3 -0
  262. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  263. package/dist/src/ui/contexts/SessionContext.d.ts +6 -0
  264. package/dist/src/ui/contexts/SessionContext.js +107 -5
  265. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  266. package/dist/src/ui/contexts/ShellFocusContext.d.ts +7 -0
  267. package/dist/src/ui/contexts/ShellFocusContext.js +9 -0
  268. package/dist/src/ui/contexts/ShellFocusContext.js.map +1 -0
  269. package/dist/src/ui/contexts/UIActionsContext.d.ts +2 -0
  270. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  271. package/dist/src/ui/contexts/UIStateContext.d.ts +11 -5
  272. package/dist/src/ui/contexts/UIStateContext.js +2 -0
  273. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  274. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +7 -5
  275. package/dist/src/ui/hooks/slashCommandProcessor.js +10 -2
  276. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  277. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +10 -1
  278. package/dist/src/ui/hooks/useExtensionUpdates.js +93 -41
  279. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
  280. package/dist/src/ui/hooks/useExtensionUpdates.test.js +160 -79
  281. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
  282. package/dist/src/ui/hooks/useFocus.js +10 -0
  283. package/dist/src/ui/hooks/useFocus.js.map +1 -1
  284. package/dist/src/ui/hooks/useFolderTrust.d.ts +1 -1
  285. package/dist/src/ui/hooks/useFolderTrust.js +2 -7
  286. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  287. package/dist/src/ui/hooks/useGeminiStream.js +7 -6
  288. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  289. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  290. package/dist/src/ui/hooks/useIdeTrustListener.d.ts +4 -2
  291. package/dist/src/ui/hooks/useIdeTrustListener.js +40 -14
  292. package/dist/src/ui/hooks/useIdeTrustListener.js.map +1 -1
  293. package/dist/src/ui/hooks/useIdeTrustListener.test.d.ts +6 -0
  294. package/dist/src/ui/hooks/useIdeTrustListener.test.js +183 -0
  295. package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -0
  296. package/dist/src/ui/hooks/useMemoryMonitor.d.ts +13 -0
  297. package/dist/src/ui/hooks/useMemoryMonitor.js +28 -0
  298. package/dist/src/ui/hooks/useMemoryMonitor.js.map +1 -0
  299. package/dist/src/ui/hooks/useMemoryMonitor.test.d.ts +6 -0
  300. package/dist/src/ui/hooks/useMemoryMonitor.test.js +57 -0
  301. package/dist/src/ui/hooks/useMemoryMonitor.test.js.map +1 -0
  302. package/dist/src/ui/hooks/useModelCommand.d.ts +12 -0
  303. package/dist/src/ui/hooks/useModelCommand.js +21 -0
  304. package/dist/src/ui/hooks/useModelCommand.js.map +1 -0
  305. package/dist/src/ui/hooks/useModelCommand.test.d.ts +6 -0
  306. package/dist/src/ui/hooks/useModelCommand.test.js +35 -0
  307. package/dist/src/ui/hooks/useModelCommand.test.js.map +1 -0
  308. package/dist/src/ui/hooks/usePermissionsModifyTrust.d.ts +17 -0
  309. package/dist/src/ui/hooks/usePermissionsModifyTrust.js +78 -0
  310. package/dist/src/ui/hooks/usePermissionsModifyTrust.js.map +1 -0
  311. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.d.ts +6 -0
  312. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +182 -0
  313. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -0
  314. package/dist/src/ui/hooks/useSelectionList.d.ts +34 -0
  315. package/dist/src/ui/hooks/useSelectionList.js +245 -0
  316. package/dist/src/ui/hooks/useSelectionList.js.map +1 -0
  317. package/dist/src/ui/hooks/useSelectionList.test.d.ts +6 -0
  318. package/dist/src/ui/hooks/useSelectionList.test.js +701 -0
  319. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -0
  320. package/dist/src/ui/hooks/useSlashCompletion.js +7 -2
  321. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  322. package/dist/src/ui/hooks/useSlashCompletion.test.js +33 -0
  323. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  324. package/dist/src/ui/hooks/useStateAndRef.d.ts +1 -1
  325. package/dist/src/ui/hooks/useStateAndRef.js +2 -2
  326. package/dist/src/ui/hooks/useStateAndRef.js.map +1 -1
  327. package/dist/src/ui/hooks/useToolScheduler.test.js +2 -2
  328. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  329. package/dist/src/ui/layouts/DefaultAppLayout.d.ts +9 -0
  330. package/dist/src/ui/layouts/DefaultAppLayout.js +13 -0
  331. package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -0
  332. package/dist/src/ui/layouts/ScreenReaderAppLayout.d.ts +7 -0
  333. package/dist/src/ui/layouts/ScreenReaderAppLayout.js +14 -0
  334. package/dist/src/ui/layouts/ScreenReaderAppLayout.js.map +1 -0
  335. package/dist/src/ui/noninteractive/nonInteractiveUi.d.ts +12 -0
  336. package/dist/src/ui/noninteractive/nonInteractiveUi.js +28 -0
  337. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -0
  338. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +2 -2
  339. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -1
  340. package/dist/src/ui/state/extensions.d.ts +28 -1
  341. package/dist/src/ui/state/extensions.js +46 -1
  342. package/dist/src/ui/state/extensions.js.map +1 -1
  343. package/dist/src/ui/themes/theme.js +2 -2
  344. package/dist/src/ui/themes/theme.js.map +1 -1
  345. package/dist/src/ui/types.d.ts +50 -3
  346. package/dist/src/ui/types.js +3 -0
  347. package/dist/src/ui/types.js.map +1 -1
  348. package/dist/src/ui/utils/MarkdownDisplay.js +1 -2
  349. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  350. package/dist/src/ui/utils/MarkdownDisplay.test.js +94 -91
  351. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  352. package/dist/src/ui/utils/displayUtils.d.ts +1 -0
  353. package/dist/src/ui/utils/displayUtils.js +4 -1
  354. package/dist/src/ui/utils/displayUtils.js.map +1 -1
  355. package/dist/src/ui/utils/displayUtils.test.js +36 -17
  356. package/dist/src/ui/utils/displayUtils.test.js.map +1 -1
  357. package/dist/src/ui/utils/highlight.d.ts +1 -0
  358. package/dist/src/ui/utils/highlight.js +28 -0
  359. package/dist/src/ui/utils/highlight.js.map +1 -1
  360. package/dist/src/ui/utils/textUtils.d.ts +1 -0
  361. package/dist/src/ui/utils/textUtils.js +56 -0
  362. package/dist/src/ui/utils/textUtils.js.map +1 -1
  363. package/dist/src/ui/utils/textUtils.test.d.ts +6 -0
  364. package/dist/src/ui/utils/textUtils.test.js +132 -0
  365. package/dist/src/ui/utils/textUtils.test.js.map +1 -0
  366. package/dist/src/utils/deepMerge.d.ts +2 -3
  367. package/dist/src/utils/events.d.ts +2 -1
  368. package/dist/src/utils/events.js +1 -0
  369. package/dist/src/utils/events.js.map +1 -1
  370. package/dist/src/utils/math.d.ts +13 -0
  371. package/dist/src/utils/math.js +14 -0
  372. package/dist/src/utils/math.js.map +1 -0
  373. package/dist/src/utils/relaunch.d.ts +7 -0
  374. package/dist/src/utils/relaunch.js +57 -0
  375. package/dist/src/utils/relaunch.js.map +1 -0
  376. package/dist/src/utils/relaunch.test.d.ts +6 -0
  377. package/dist/src/utils/relaunch.test.js +273 -0
  378. package/dist/src/utils/relaunch.test.js.map +1 -0
  379. package/dist/src/utils/sandbox.js +24 -10
  380. package/dist/src/utils/sandbox.js.map +1 -1
  381. package/dist/src/utils/windowTitle.d.ts +12 -0
  382. package/dist/src/utils/windowTitle.js +19 -0
  383. package/dist/src/utils/windowTitle.js.map +1 -0
  384. package/dist/src/utils/windowTitle.test.d.ts +6 -0
  385. package/dist/src/utils/windowTitle.test.js +49 -0
  386. package/dist/src/utils/windowTitle.test.js.map +1 -0
  387. package/dist/src/validateNonInterActiveAuth.d.ts +2 -1
  388. package/dist/src/validateNonInterActiveAuth.js +33 -12
  389. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  390. package/dist/src/zed-integration/fileSystemService.d.ts +1 -0
  391. package/dist/src/zed-integration/fileSystemService.js +3 -0
  392. package/dist/src/zed-integration/fileSystemService.js.map +1 -1
  393. package/dist/src/zed-integration/schema.d.ts +128 -128
  394. package/dist/src/zed-integration/zedIntegration.d.ts +8 -1
  395. package/dist/src/zed-integration/zedIntegration.js +17 -3
  396. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  397. package/dist/tsconfig.tsbuildinfo +1 -1
  398. package/package.json +12 -8
  399. package/dist/src/commands/extensions/examples/mcp-server/example.js +0 -46
  400. package/dist/src/commands/extensions/examples/mcp-server/example.js.map +0 -1
  401. /package/dist/src/{commands/extensions/examples/mcp-server/example.d.ts → config/policy-engine.integration.test.d.ts} +0 -0
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { CELL_DIR, Storage, Config, ExtensionInstallEvent, ExtensionUninstallEvent, ExtensionEnableEvent, logExtensionEnable, logExtensionInstallEvent, logExtensionUninstall, } from '@google/gemini-cli-core';
6
+ import { CELL_DIR, Storage, Config, ExtensionInstallEvent, ExtensionUninstallEvent, ExtensionDisableEvent, ExtensionEnableEvent, logExtensionEnable, logExtensionInstallEvent, logExtensionUninstall, 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';
@@ -15,6 +15,7 @@ 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
+ import chalk from 'chalk';
18
19
  export const EXTENSIONS_DIRECTORY_NAME = path.join(CELL_DIR, 'extensions');
19
20
  export const EXTENSIONS_CONFIG_FILENAME = 'gemini-extension.json';
20
21
  export const INSTALL_METADATA_FILENAME = '.cell-cli-extension-install.json';
@@ -47,7 +48,7 @@ export function getWorkspaceExtensions(workspaceDir) {
47
48
  export async function copyExtension(source, destination) {
48
49
  await fs.promises.cp(source, destination, { recursive: true });
49
50
  }
50
- export async function performWorkspaceExtensionMigration(extensions) {
51
+ export async function performWorkspaceExtensionMigration(extensions, requestConsent) {
51
52
  const failedInstallNames = [];
52
53
  for (const extension of extensions) {
53
54
  try {
@@ -55,7 +56,7 @@ export async function performWorkspaceExtensionMigration(extensions) {
55
56
  source: extension.path,
56
57
  type: 'local',
57
58
  };
58
- await installExtension(installMetadata);
59
+ await installExtension(installMetadata, requestConsent);
59
60
  }
60
61
  catch (_) {
61
62
  failedInstallNames.push(extension.config.name);
@@ -76,7 +77,7 @@ function getTelemetryConfig(cwd) {
76
77
  });
77
78
  return config;
78
79
  }
79
- export function loadExtensions(workspaceDir = process.cwd()) {
80
+ export function loadExtensions(extensionEnablementManager, workspaceDir = process.cwd()) {
80
81
  const settings = loadSettings(workspaceDir).merged;
81
82
  const allExtensions = [...loadUserExtensions()];
82
83
  if ((isWorkspaceTrusted(settings) ?? true) &&
@@ -85,10 +86,9 @@ export function loadExtensions(workspaceDir = process.cwd()) {
85
86
  allExtensions.push(...getWorkspaceExtensions(workspaceDir));
86
87
  }
87
88
  const uniqueExtensions = new Map();
88
- const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
89
89
  for (const extension of allExtensions) {
90
90
  if (!uniqueExtensions.has(extension.config.name) &&
91
- manager.isEnabled(extension.config.name, workspaceDir)) {
91
+ extensionEnablementManager.isEnabled(extension.config.name, workspaceDir)) {
92
92
  uniqueExtensions.set(extension.config.name, extension);
93
93
  }
94
94
  }
@@ -157,6 +157,24 @@ export function loadExtension(context) {
157
157
  return null;
158
158
  }
159
159
  }
160
+ export function loadExtensionByName(name, workspaceDir = process.cwd()) {
161
+ const userExtensionsDir = ExtensionStorage.getUserExtensionsDir();
162
+ if (!fs.existsSync(userExtensionsDir)) {
163
+ return null;
164
+ }
165
+ for (const subdir of fs.readdirSync(userExtensionsDir)) {
166
+ const extensionDir = path.join(userExtensionsDir, subdir);
167
+ if (!fs.statSync(extensionDir).isDirectory()) {
168
+ continue;
169
+ }
170
+ const extension = loadExtension({ extensionDir, workspaceDir });
171
+ if (extension &&
172
+ extension.config.name.toLowerCase() === name.toLowerCase()) {
173
+ return extension;
174
+ }
175
+ }
176
+ return null;
177
+ }
160
178
  function filterMcpConfig(original) {
161
179
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
162
180
  const { trust, ...rest } = original;
@@ -189,55 +207,51 @@ function getContextFileNames(config) {
189
207
  * @param enabledExtensionNames The names of explicitly enabled extensions.
190
208
  * @param workspaceDir The current workspace directory.
191
209
  */
192
- export function annotateActiveExtensions(extensions, enabledExtensionNames, workspaceDir) {
193
- const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
194
- const annotatedExtensions = [];
195
- if (enabledExtensionNames.length === 0) {
196
- return extensions.map((extension) => ({
197
- name: extension.config.name,
198
- version: extension.config.version,
199
- isActive: manager.isEnabled(extension.config.name, workspaceDir),
200
- path: extension.path,
201
- installMetadata: extension.installMetadata,
202
- }));
203
- }
204
- const lowerCaseEnabledExtensions = new Set(enabledExtensionNames.map((e) => e.trim().toLowerCase()));
205
- if (lowerCaseEnabledExtensions.size === 1 &&
206
- lowerCaseEnabledExtensions.has('none')) {
207
- return extensions.map((extension) => ({
208
- name: extension.config.name,
209
- version: extension.config.version,
210
- isActive: false,
211
- path: extension.path,
212
- installMetadata: extension.installMetadata,
213
- }));
214
- }
215
- const notFoundNames = new Set(lowerCaseEnabledExtensions);
216
- for (const extension of extensions) {
217
- const lowerCaseName = extension.config.name.toLowerCase();
218
- const isActive = lowerCaseEnabledExtensions.has(lowerCaseName);
219
- if (isActive) {
220
- notFoundNames.delete(lowerCaseName);
221
- }
222
- annotatedExtensions.push({
223
- name: extension.config.name,
224
- version: extension.config.version,
225
- isActive,
226
- path: extension.path,
227
- installMetadata: extension.installMetadata,
228
- });
229
- }
230
- for (const requestedName of notFoundNames) {
231
- console.error(`Extension not found: ${requestedName}`);
232
- }
233
- return annotatedExtensions;
210
+ export function annotateActiveExtensions(extensions, workspaceDir, manager) {
211
+ manager.validateExtensionOverrides(extensions);
212
+ return extensions.map((extension) => ({
213
+ name: extension.config.name,
214
+ version: extension.config.version,
215
+ isActive: manager.isEnabled(extension.config.name, workspaceDir),
216
+ path: extension.path,
217
+ installMetadata: extension.installMetadata,
218
+ }));
219
+ }
220
+ /**
221
+ * Requests consent from the user to perform an action, by reading a Y/n
222
+ * character from stdin.
223
+ *
224
+ * This should not be called from interactive mode as it will break the CLI.
225
+ *
226
+ * @param consentDescription The description of the thing they will be consenting to.
227
+ * @returns boolean, whether they consented or not.
228
+ */
229
+ export async function requestConsentNonInteractive(consentDescription) {
230
+ console.info(consentDescription);
231
+ const result = await promptForConsentNonInteractive('Do you want to continue? [Y/n]: ');
232
+ return result;
234
233
  }
235
234
  /**
236
- * Asks users a prompt and awaits for a y/n response
235
+ * Requests consent from the user to perform an action, in interactive mode.
236
+ *
237
+ * This should not be called from non-interactive mode as it will not work.
238
+ *
239
+ * @param consentDescription The description of the thing they will be consenting to.
240
+ * @param setExtensionUpdateConfirmationRequest A function to actually add a prompt to the UI.
241
+ * @returns boolean, whether they consented or not.
242
+ */
243
+ export async function requestConsentInteractive(consentDescription, addExtensionUpdateConfirmationRequest) {
244
+ return await promptForConsentInteractive(consentDescription + '\n\nDo you want to continue?', addExtensionUpdateConfirmationRequest);
245
+ }
246
+ /**
247
+ * Asks users a prompt and awaits for a y/n response on stdin.
248
+ *
249
+ * This should not be called from interactive mode as it will break the CLI.
250
+ *
237
251
  * @param prompt A yes/no prompt to ask the user
238
252
  * @returns Whether or not the user answers 'y' (yes). Defaults to 'yes' on enter.
239
253
  */
240
- async function promptForContinuation(prompt) {
254
+ async function promptForConsentNonInteractive(prompt) {
241
255
  const readline = await import('node:readline');
242
256
  const rl = readline.createInterface({
243
257
  input: process.stdin,
@@ -250,7 +264,26 @@ async function promptForContinuation(prompt) {
250
264
  });
251
265
  });
252
266
  }
253
- export async function installExtension(installMetadata, askConsent = false, cwd = process.cwd()) {
267
+ /**
268
+ * Asks users an interactive yes/no prompt.
269
+ *
270
+ * This should not be called from non-interactive mode as it will break the CLI.
271
+ *
272
+ * @param prompt A markdown prompt to ask the user
273
+ * @param setExtensionUpdateConfirmationRequest Function to update the UI state with the confirmation request.
274
+ * @returns Whether or not the user answers yes.
275
+ */
276
+ async function promptForConsentInteractive(prompt, addExtensionUpdateConfirmationRequest) {
277
+ return await new Promise((resolve) => {
278
+ addExtensionUpdateConfirmationRequest({
279
+ prompt,
280
+ onConfirm: (resolvedConfirmed) => {
281
+ resolve(resolvedConfirmed);
282
+ },
283
+ });
284
+ });
285
+ }
286
+ export async function installExtension(installMetadata, requestConsent, cwd = process.cwd(), previousExtensionConfig) {
254
287
  const telemetryConfig = getTelemetryConfig(cwd);
255
288
  let newExtensionConfig = null;
256
289
  let localSourcePath;
@@ -299,9 +332,7 @@ export async function installExtension(installMetadata, askConsent = false, cwd
299
332
  if (installedExtensions.some((installed) => installed.config.name === newExtensionName)) {
300
333
  throw new Error(`Extension "${newExtensionName}" is already installed. Please uninstall it first.`);
301
334
  }
302
- if (askConsent) {
303
- await requestConsent(newExtensionConfig);
304
- }
335
+ await maybeRequestConsentOrFail(newExtensionConfig, requestConsent, previousExtensionConfig);
305
336
  await fs.promises.mkdir(destinationPath, { recursive: true });
306
337
  if (installMetadata.type === 'local' ||
307
338
  installMetadata.type === 'git' ||
@@ -339,11 +370,15 @@ export async function installExtension(installMetadata, askConsent = false, cwd
339
370
  throw error;
340
371
  }
341
372
  }
342
- async function requestConsent(extensionConfig) {
373
+ /**
374
+ * Builds a consent string for installing an extension based on it's
375
+ * extensionConfig.
376
+ */
377
+ function extensionConsentString(extensionConfig) {
343
378
  const output = [];
344
379
  const mcpServerEntries = Object.entries(extensionConfig.mcpServers || {});
345
- output.push('Extensions may introduce unexpected behavior.');
346
- output.push('Ensure you have investigated the extension source and trust the author.');
380
+ output.push(`Installing extension "${extensionConfig.name}".`);
381
+ output.push('**Extensions may introduce unexpected behavior. Ensure you have investigated the extension source and trust the author.**');
347
382
  if (mcpServerEntries.length) {
348
383
  output.push('This extension will run the following MCP servers:');
349
384
  for (const [key, mcpServer] of mcpServerEntries) {
@@ -359,10 +394,32 @@ async function requestConsent(extensionConfig) {
359
394
  if (extensionConfig.excludeTools) {
360
395
  output.push(`This extension will exclude the following core tools: ${extensionConfig.excludeTools}`);
361
396
  }
362
- console.info(output.join('\n'));
363
- const shouldContinue = await promptForContinuation('Do you want to continue? [Y/n]: ');
364
- if (!shouldContinue) {
365
- throw new Error('Installation cancelled by user.');
397
+ return output.join('\n');
398
+ }
399
+ /**
400
+ * Requests consent from the user to install an extension (extensionConfig), if
401
+ * there is any difference between the consent string for `extensionConfig` and
402
+ * `previousExtensionConfig`.
403
+ *
404
+ * Always requests consent if previousExtensionConfig is null.
405
+ *
406
+ * Throws if the user does not consent.
407
+ */
408
+ async function maybeRequestConsentOrFail(extensionConfig, requestConsent, previousExtensionConfig) {
409
+ const extensionConsent = extensionConsentString(extensionConfig);
410
+ if (previousExtensionConfig) {
411
+ const previousExtensionConsent = extensionConsentString(previousExtensionConfig);
412
+ if (previousExtensionConsent === extensionConsent) {
413
+ return;
414
+ }
415
+ }
416
+ if (!(await requestConsent(extensionConsent))) {
417
+ throw new Error(`Installation cancelled for "${extensionConfig.name}".`);
418
+ }
419
+ }
420
+ export function validateName(name) {
421
+ if (!/^[a-zA-Z0-9-]+$/.test(name)) {
422
+ throw new Error(`Invalid extension name: "${name}". Only letters (a-z, A-Z), numbers (0-9), and dashes (-) are allowed.`);
366
423
  }
367
424
  }
368
425
  export function loadExtensionConfig(context) {
@@ -382,6 +439,7 @@ export function loadExtensionConfig(context) {
382
439
  if (!config.name || !config.version) {
383
440
  throw new Error(`Invalid configuration in ${configFilePath}: missing ${!config.name ? '"name"' : '"version"'}`);
384
441
  }
442
+ validateName(config.name);
385
443
  return config;
386
444
  }
387
445
  catch (e) {
@@ -398,7 +456,7 @@ export async function uninstallExtension(extensionIdentifier, cwd = process.cwd(
398
456
  if (!extensionName) {
399
457
  throw new Error(`Extension not found.`);
400
458
  }
401
- const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
459
+ const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir(), [extensionName]);
402
460
  manager.remove(extensionName);
403
461
  const storage = new ExtensionStorage(extensionName);
404
462
  await fs.promises.rm(storage.getExtensionDir(), {
@@ -407,8 +465,12 @@ export async function uninstallExtension(extensionIdentifier, cwd = process.cwd(
407
465
  });
408
466
  logExtensionUninstall(telemetryConfig, new ExtensionUninstallEvent(extensionName, 'success'));
409
467
  }
410
- export function toOutputString(extension) {
411
- let output = `${extension.config.name} (${extension.config.version})`;
468
+ export function toOutputString(extension, workspaceDir) {
469
+ const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
470
+ const userEnabled = manager.isEnabled(extension.config.name, os.homedir());
471
+ const workspaceEnabled = manager.isEnabled(extension.config.name, workspaceDir);
472
+ const status = workspaceEnabled ? chalk.green('✓') : chalk.red('✗');
473
+ let output = `${status} ${extension.config.name} (${extension.config.version})`;
412
474
  output += `\n Path: ${extension.path}`;
413
475
  if (extension.installMetadata) {
414
476
  output += `\n Source: ${extension.installMetadata.source} (Type: ${extension.installMetadata.type})`;
@@ -419,6 +481,8 @@ export function toOutputString(extension) {
419
481
  output += `\n Release tag: ${extension.installMetadata.releaseTag}`;
420
482
  }
421
483
  }
484
+ output += `\n Enabled (User): ${userEnabled}`;
485
+ output += `\n Enabled (Workspace): ${workspaceEnabled}`;
422
486
  if (extension.contextFiles.length > 0) {
423
487
  output += `\n Context files:`;
424
488
  extension.contextFiles.forEach((contextFile) => {
@@ -440,17 +504,27 @@ export function toOutputString(extension) {
440
504
  return output;
441
505
  }
442
506
  export function disableExtension(name, scope, cwd = process.cwd()) {
507
+ const config = getTelemetryConfig(cwd);
443
508
  if (scope === SettingScope.System || scope === SettingScope.SystemDefaults) {
444
509
  throw new Error('System and SystemDefaults scopes are not supported.');
445
510
  }
446
- const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
511
+ const extension = loadExtensionByName(name, cwd);
512
+ if (!extension) {
513
+ throw new Error(`Extension with name ${name} does not exist.`);
514
+ }
515
+ const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir(), [name]);
447
516
  const scopePath = scope === SettingScope.Workspace ? cwd : os.homedir();
448
517
  manager.disable(name, true, scopePath);
518
+ logExtensionDisable(config, new ExtensionDisableEvent(name, scope));
449
519
  }
450
520
  export function enableExtension(name, scope, cwd = process.cwd()) {
451
521
  if (scope === SettingScope.System || scope === SettingScope.SystemDefaults) {
452
522
  throw new Error('System and SystemDefaults scopes are not supported.');
453
523
  }
524
+ const extension = loadExtensionByName(name, cwd);
525
+ if (!extension) {
526
+ throw new Error(`Extension with name ${name} does not exist.`);
527
+ }
454
528
  const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
455
529
  const scopePath = scope === SettingScope.Workspace ? cwd : os.homedir();
456
530
  manager.enable(name, true, scopePath);
@@ -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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"}
@@ -3,6 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { type Extension } from '../extension.js';
6
7
  export interface ExtensionEnablementConfig {
7
8
  overrides: string[];
8
9
  }
@@ -23,18 +24,20 @@ export declare class Override {
23
24
  output(): string;
24
25
  matchesPath(path: string): boolean;
25
26
  }
26
- /**
27
- * Determines if an extension is enabled based on the configuration and current path.
28
- * The last matching rule in the overrides list wins.
29
- *
30
- * @param config The enablement configuration for a single extension.
31
- * @param currentPath The absolute path of the current working directory.
32
- * @returns True if the extension is enabled, false otherwise.
33
- */
34
27
  export declare class ExtensionEnablementManager {
35
28
  private configFilePath;
36
29
  private configDir;
37
- constructor(configDir: string);
30
+ private enabledExtensionNamesOverride;
31
+ constructor(configDir: string, enabledExtensionNames?: string[]);
32
+ validateExtensionOverrides(extensions: Extension[]): void;
33
+ /**
34
+ * Determines if an extension is enabled based on its name and the current
35
+ * path. The last matching rule in the overrides list wins.
36
+ *
37
+ * @param extensionName The name of the extension.
38
+ * @param currentPath The absolute path of the current working directory.
39
+ * @returns True if the extension is enabled, false otherwise.
40
+ */
38
41
  isEnabled(extensionName: string, currentPath: string): boolean;
39
42
  readConfig(): AllExtensionsEnablementConfig;
40
43
  writeConfig(config: AllExtensionsEnablementConfig): void;
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import fs from 'node:fs';
7
7
  import path from 'node:path';
8
+ import {} from '../extension.js';
8
9
  export class Override {
9
10
  baseRule;
10
11
  isDisable;
@@ -81,22 +82,49 @@ function globToRegex(glob) {
81
82
  .replace(/(\/?)\*/g, '($1.*)?'); // Convert * to optional group
82
83
  return new RegExp(`^${regexString}$`);
83
84
  }
84
- /**
85
- * Determines if an extension is enabled based on the configuration and current path.
86
- * The last matching rule in the overrides list wins.
87
- *
88
- * @param config The enablement configuration for a single extension.
89
- * @param currentPath The absolute path of the current working directory.
90
- * @returns True if the extension is enabled, false otherwise.
91
- */
92
85
  export class ExtensionEnablementManager {
93
86
  configFilePath;
94
87
  configDir;
95
- constructor(configDir) {
88
+ // If non-empty, this overrides all other extension configuration and enables
89
+ // only the ones in this list.
90
+ enabledExtensionNamesOverride;
91
+ constructor(configDir, enabledExtensionNames) {
96
92
  this.configDir = configDir;
97
93
  this.configFilePath = path.join(configDir, 'extension-enablement.json');
94
+ this.enabledExtensionNamesOverride =
95
+ enabledExtensionNames?.map((name) => name.toLowerCase()) ?? [];
96
+ }
97
+ validateExtensionOverrides(extensions) {
98
+ for (const name of this.enabledExtensionNamesOverride) {
99
+ if (name === 'none')
100
+ continue;
101
+ if (!extensions.some((ext) => ext.config.name.toLowerCase() === name.toLowerCase())) {
102
+ console.error(`Extension not found: ${name}`);
103
+ }
104
+ }
98
105
  }
106
+ /**
107
+ * Determines if an extension is enabled based on its name and the current
108
+ * path. The last matching rule in the overrides list wins.
109
+ *
110
+ * @param extensionName The name of the extension.
111
+ * @param currentPath The absolute path of the current working directory.
112
+ * @returns True if the extension is enabled, false otherwise.
113
+ */
99
114
  isEnabled(extensionName, currentPath) {
115
+ // If we have a single override called 'none', this disables all extensions.
116
+ // Typically, this comes from the user passing `-e none`.
117
+ if (this.enabledExtensionNamesOverride.length === 1 &&
118
+ this.enabledExtensionNamesOverride[0] === 'none') {
119
+ return false;
120
+ }
121
+ // If we have explicit overrides, only enable those extensions.
122
+ if (this.enabledExtensionNamesOverride.length > 0) {
123
+ // When checking against overrides ONLY, we use a case insensitive match.
124
+ // The override names are already lowercased in the constructor.
125
+ return this.enabledExtensionNamesOverride.includes(extensionName.toLocaleLowerCase());
126
+ }
127
+ // Otherwise, we use the configuration settings
100
128
  const config = this.readConfig();
101
129
  const extensionConfig = config[extensionName];
102
130
  // Extensions are enabled by default.
@@ -1 +1 @@
1
- {"version":3,"file":"extensionEnablement.js","sourceRoot":"","sources":["../../../../src/config/extensions/extensionEnablement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extensionEnablement.js","sourceRoot":"","sources":["../../../../src/config/extensions/extensionEnablement.ts"],"names":[],"mappings":"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"}
@@ -171,6 +171,78 @@ describe('ExtensionEnablementManager', () => {
171
171
  manager.disable('ext-test', false, '/Users/chrstn');
172
172
  expect(manager.isEnabled('ext-test', '/Users/chrstn/gemini-cli')).toBe(true);
173
173
  });
174
+ describe('extension overrides (-e <name>)', () => {
175
+ beforeEach(() => {
176
+ manager = new ExtensionEnablementManager(configDir, ['ext-test']);
177
+ });
178
+ it('can enable extensions, case-insensitive', () => {
179
+ manager.disable('ext-test', true, '/');
180
+ expect(manager.isEnabled('ext-test', '/')).toBe(true);
181
+ expect(manager.isEnabled('Ext-Test', '/')).toBe(true);
182
+ // Double check that it would have been disabled otherwise
183
+ expect(new ExtensionEnablementManager(configDir).isEnabled('ext-test', '/')).toBe(false);
184
+ });
185
+ it('disable all other extensions', () => {
186
+ manager = new ExtensionEnablementManager(configDir, ['ext-test']);
187
+ manager.enable('ext-test-2', true, '/');
188
+ expect(manager.isEnabled('ext-test-2', '/')).toBe(false);
189
+ // Double check that it would have been enabled otherwise
190
+ expect(new ExtensionEnablementManager(configDir).isEnabled('ext-test-2', '/')).toBe(true);
191
+ });
192
+ it('none disables all extensions', () => {
193
+ manager = new ExtensionEnablementManager(configDir, ['none']);
194
+ manager.enable('ext-test', true, '/');
195
+ expect(manager.isEnabled('ext-test', '/path/to/dir')).toBe(false);
196
+ // Double check that it would have been enabled otherwise
197
+ expect(new ExtensionEnablementManager(configDir).isEnabled('ext-test', '/')).toBe(true);
198
+ });
199
+ });
200
+ describe('validateExtensionOverrides', () => {
201
+ let consoleErrorSpy;
202
+ beforeEach(() => {
203
+ consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
204
+ });
205
+ afterEach(() => {
206
+ consoleErrorSpy.mockRestore();
207
+ });
208
+ it('should not log an error if enabledExtensionNamesOverride is empty', () => {
209
+ const manager = new ExtensionEnablementManager(configDir, []);
210
+ manager.validateExtensionOverrides([]);
211
+ expect(consoleErrorSpy).not.toHaveBeenCalled();
212
+ });
213
+ it('should not log an error if all enabledExtensionNamesOverride are valid', () => {
214
+ const manager = new ExtensionEnablementManager(configDir, [
215
+ 'ext-one',
216
+ 'ext-two',
217
+ ]);
218
+ const extensions = [
219
+ { config: { name: 'ext-one' } },
220
+ { config: { name: 'ext-two' } },
221
+ ];
222
+ manager.validateExtensionOverrides(extensions);
223
+ expect(consoleErrorSpy).not.toHaveBeenCalled();
224
+ });
225
+ it('should log an error for each invalid extension name in enabledExtensionNamesOverride', () => {
226
+ const manager = new ExtensionEnablementManager(configDir, [
227
+ 'ext-one',
228
+ 'ext-invalid',
229
+ 'ext-another-invalid',
230
+ ]);
231
+ const extensions = [
232
+ { config: { name: 'ext-one' } },
233
+ { config: { name: 'ext-two' } },
234
+ ];
235
+ manager.validateExtensionOverrides(extensions);
236
+ expect(consoleErrorSpy).toHaveBeenCalledTimes(2);
237
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Extension not found: ext-invalid');
238
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Extension not found: ext-another-invalid');
239
+ });
240
+ it('should not log an error if "none" is in enabledExtensionNamesOverride', () => {
241
+ const manager = new ExtensionEnablementManager(configDir, ['none']);
242
+ manager.validateExtensionOverrides([]);
243
+ expect(consoleErrorSpy).not.toHaveBeenCalled();
244
+ });
245
+ });
174
246
  });
175
247
  describe('Override', () => {
176
248
  it('should create an override from input', () => {