@google/gemini-cli 0.10.0-nightly.20250926.1487841d → 0.10.0-nightly.20251009.cd354aeb

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 (320) hide show
  1. package/README.md +108 -71
  2. package/dist/package.json +8 -2
  3. package/dist/src/commands/extensions/examples/context/GEMINI.md +9 -3
  4. package/dist/src/commands/extensions/examples/context/gemini-extension.json +1 -2
  5. package/dist/src/commands/extensions/install.d.ts +2 -2
  6. package/dist/src/commands/extensions/install.js +33 -34
  7. package/dist/src/commands/extensions/install.js.map +1 -1
  8. package/dist/src/commands/extensions/install.test.js +13 -22
  9. package/dist/src/commands/extensions/install.test.js.map +1 -1
  10. package/dist/src/commands/extensions/new.js +22 -7
  11. package/dist/src/commands/extensions/new.js.map +1 -1
  12. package/dist/src/commands/extensions/new.test.js +14 -7
  13. package/dist/src/commands/extensions/new.test.js.map +1 -1
  14. package/dist/src/commands/extensions/update.js +18 -8
  15. package/dist/src/commands/extensions/update.js.map +1 -1
  16. package/dist/src/commands/mcp/list.js +5 -4
  17. package/dist/src/commands/mcp/list.js.map +1 -1
  18. package/dist/src/config/config.d.ts +5 -4
  19. package/dist/src/config/config.js +61 -21
  20. package/dist/src/config/config.js.map +1 -1
  21. package/dist/src/config/extension.d.ts +22 -18
  22. package/dist/src/config/extension.js +65 -82
  23. package/dist/src/config/extension.js.map +1 -1
  24. package/dist/src/config/extensions/extensionEnablement.d.ts +12 -9
  25. package/dist/src/config/extensions/extensionEnablement.js +36 -9
  26. package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
  27. package/dist/src/config/extensions/extensionEnablement.test.js +72 -0
  28. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
  29. package/dist/src/config/extensions/github.d.ts +9 -1
  30. package/dist/src/config/extensions/github.js +49 -79
  31. package/dist/src/config/extensions/github.js.map +1 -1
  32. package/dist/src/config/extensions/github.test.js +119 -12
  33. package/dist/src/config/extensions/github.test.js.map +1 -1
  34. package/dist/src/config/extensions/github_fetch.d.ts +7 -0
  35. package/dist/src/config/extensions/github_fetch.js +34 -0
  36. package/dist/src/config/extensions/github_fetch.js.map +1 -0
  37. package/dist/src/config/extensions/update.d.ts +4 -5
  38. package/dist/src/config/extensions/update.js +60 -41
  39. package/dist/src/config/extensions/update.js.map +1 -1
  40. package/dist/src/config/extensions/update.test.js +84 -69
  41. package/dist/src/config/extensions/update.test.js.map +1 -1
  42. package/dist/src/config/keyBindings.js +1 -1
  43. package/dist/src/config/keyBindings.js.map +1 -1
  44. package/dist/src/config/policy.js +2 -2
  45. package/dist/src/config/policy.js.map +1 -1
  46. package/dist/src/config/settings.d.ts +10 -0
  47. package/dist/src/config/settings.js +2 -1
  48. package/dist/src/config/settings.js.map +1 -1
  49. package/dist/src/config/settingsSchema.d.ts +69 -4
  50. package/dist/src/config/settingsSchema.js +68 -3
  51. package/dist/src/config/settingsSchema.js.map +1 -1
  52. package/dist/src/config/settingsSchema.test.js +9 -1
  53. package/dist/src/config/settingsSchema.test.js.map +1 -1
  54. package/dist/src/gemini.js +14 -10
  55. package/dist/src/gemini.js.map +1 -1
  56. package/dist/src/gemini.test.js +20 -8
  57. package/dist/src/gemini.test.js.map +1 -1
  58. package/dist/src/generated/git-commit.d.ts +2 -2
  59. package/dist/src/generated/git-commit.js +2 -2
  60. package/dist/src/services/BuiltinCommandLoader.js +3 -0
  61. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  62. package/dist/src/services/BuiltinCommandLoader.test.js +37 -0
  63. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  64. package/dist/src/services/prompt-processors/shellProcessor.js +1 -1
  65. package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
  66. package/dist/src/test-utils/render.d.ts +3 -1
  67. package/dist/src/test-utils/render.js +4 -1
  68. package/dist/src/test-utils/render.js.map +1 -1
  69. package/dist/src/ui/App.js +7 -9
  70. package/dist/src/ui/App.js.map +1 -1
  71. package/dist/src/ui/AppContainer.js +59 -12
  72. package/dist/src/ui/AppContainer.js.map +1 -1
  73. package/dist/src/ui/AppContainer.test.js +269 -7
  74. package/dist/src/ui/AppContainer.test.js.map +1 -1
  75. package/dist/src/ui/IdeIntegrationNudge.js +3 -0
  76. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  77. package/dist/src/ui/auth/AuthDialog.js +8 -1
  78. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  79. package/dist/src/ui/auth/AuthDialog.test.js +1 -0
  80. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  81. package/dist/src/ui/auth/AuthInProgress.js +2 -2
  82. package/dist/src/ui/auth/AuthInProgress.js.map +1 -1
  83. package/dist/src/ui/commands/chatCommand.js +7 -24
  84. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  85. package/dist/src/ui/commands/extensionsCommand.js +39 -37
  86. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  87. package/dist/src/ui/commands/mcpCommand.js +78 -260
  88. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  89. package/dist/src/ui/commands/memoryCommand.js +18 -1
  90. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  91. package/dist/src/ui/commands/profileCommand.d.ts +7 -0
  92. package/dist/src/ui/commands/profileCommand.js +23 -0
  93. package/dist/src/ui/commands/profileCommand.js.map +1 -0
  94. package/dist/src/ui/commands/setupGithubCommand.test.js +2 -1
  95. package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
  96. package/dist/src/ui/commands/toolsCommand.js +10 -24
  97. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  98. package/dist/src/ui/commands/types.d.ts +7 -5
  99. package/dist/src/ui/commands/types.js.map +1 -1
  100. package/dist/src/ui/components/CliSpinner.d.ts +10 -0
  101. package/dist/src/ui/components/CliSpinner.js +20 -0
  102. package/dist/src/ui/components/CliSpinner.js.map +1 -0
  103. package/dist/src/ui/components/Composer.js +4 -21
  104. package/dist/src/ui/components/Composer.js.map +1 -1
  105. package/dist/src/ui/components/ConsentPrompt.d.ts +13 -0
  106. package/dist/src/ui/components/ConsentPrompt.js +19 -0
  107. package/dist/src/ui/components/ConsentPrompt.js.map +1 -0
  108. package/dist/src/ui/components/ConsentPrompt.test.d.ts +6 -0
  109. package/dist/src/ui/components/ConsentPrompt.test.js +67 -0
  110. package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -0
  111. package/dist/src/ui/components/DebugProfiler.d.ts +15 -0
  112. package/dist/src/ui/components/DebugProfiler.js +136 -12
  113. package/dist/src/ui/components/DebugProfiler.js.map +1 -1
  114. package/dist/src/ui/components/DebugProfiler.test.d.ts +6 -0
  115. package/dist/src/ui/components/DebugProfiler.test.js +131 -0
  116. package/dist/src/ui/components/DebugProfiler.test.js.map +1 -0
  117. package/dist/src/ui/components/DialogManager.d.ts +2 -1
  118. package/dist/src/ui/components/DialogManager.js +9 -9
  119. package/dist/src/ui/components/DialogManager.js.map +1 -1
  120. package/dist/src/ui/components/EditorSettingsDialog.js +11 -2
  121. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  122. package/dist/src/ui/components/ExitWarning.d.ts +7 -0
  123. package/dist/src/ui/components/ExitWarning.js +9 -0
  124. package/dist/src/ui/components/ExitWarning.js.map +1 -0
  125. package/dist/src/ui/components/FolderTrustDialog.js +3 -0
  126. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  127. package/dist/src/ui/components/FolderTrustDialog.test.js +2 -2
  128. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  129. package/dist/src/ui/components/Footer.d.ts +1 -19
  130. package/dist/src/ui/components/Footer.js +30 -2
  131. package/dist/src/ui/components/Footer.js.map +1 -1
  132. package/dist/src/ui/components/GeminiRespondingSpinner.js +2 -2
  133. package/dist/src/ui/components/GeminiRespondingSpinner.js.map +1 -1
  134. package/dist/src/ui/components/Help.js +1 -1
  135. package/dist/src/ui/components/Help.js.map +1 -1
  136. package/dist/src/ui/components/HistoryItemDisplay.d.ts +1 -0
  137. package/dist/src/ui/components/HistoryItemDisplay.js +6 -2
  138. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  139. package/dist/src/ui/components/HistoryItemDisplay.test.js +50 -10
  140. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  141. package/dist/src/ui/components/IdeTrustChangeDialog.d.ts +11 -0
  142. package/dist/src/ui/components/IdeTrustChangeDialog.js +32 -0
  143. package/dist/src/ui/components/IdeTrustChangeDialog.js.map +1 -0
  144. package/dist/src/ui/components/IdeTrustChangeDialog.test.d.ts +6 -0
  145. package/dist/src/ui/components/IdeTrustChangeDialog.test.js +57 -0
  146. package/dist/src/ui/components/IdeTrustChangeDialog.test.js.map +1 -0
  147. package/dist/src/ui/components/InputPrompt.d.ts +6 -0
  148. package/dist/src/ui/components/InputPrompt.js +43 -13
  149. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  150. package/dist/src/ui/components/LoopDetectionConfirmation.js +2 -0
  151. package/dist/src/ui/components/LoopDetectionConfirmation.js.map +1 -1
  152. package/dist/src/ui/components/MainContent.js +6 -1
  153. package/dist/src/ui/components/MainContent.js.map +1 -1
  154. package/dist/src/ui/components/ModelDialog.js +4 -0
  155. package/dist/src/ui/components/ModelDialog.js.map +1 -1
  156. package/dist/src/ui/components/PermissionsModifyTrustDialog.js +3 -0
  157. package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -1
  158. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +0 -4
  159. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
  160. package/dist/src/ui/components/ProQuotaDialog.js +2 -0
  161. package/dist/src/ui/components/ProQuotaDialog.js.map +1 -1
  162. package/dist/src/ui/components/ProQuotaDialog.test.js +2 -0
  163. package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -1
  164. package/dist/src/ui/components/SettingsDialog.js +5 -2
  165. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  166. package/dist/src/ui/components/ShellConfirmationDialog.js +3 -0
  167. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  168. package/dist/src/ui/components/ThemeDialog.js +2 -0
  169. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  170. package/dist/src/ui/components/WorkspaceMigrationDialog.d.ts +2 -2
  171. package/dist/src/ui/components/WorkspaceMigrationDialog.js +4 -4
  172. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +1 -1
  173. package/dist/src/ui/components/messages/CompressionMessage.js +2 -2
  174. package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
  175. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +14 -0
  176. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  177. package/dist/src/ui/components/messages/ToolMessage.js +25 -2
  178. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  179. package/dist/src/ui/components/messages/UserMessage.js +1 -2
  180. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  181. package/dist/src/ui/components/shared/BaseSelectionList.d.ts +5 -10
  182. package/dist/src/ui/components/shared/BaseSelectionList.js +1 -1
  183. package/dist/src/ui/components/shared/BaseSelectionList.js.map +1 -1
  184. package/dist/src/ui/components/shared/BaseSelectionList.test.js +7 -5
  185. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
  186. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.d.ts +2 -3
  187. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js +1 -1
  188. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js.map +1 -1
  189. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js +13 -2
  190. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js.map +1 -1
  191. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +2 -3
  192. package/dist/src/ui/components/shared/RadioButtonSelect.js +1 -1
  193. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  194. package/dist/src/ui/components/shared/RadioButtonSelect.test.js +5 -3
  195. package/dist/src/ui/components/shared/RadioButtonSelect.test.js.map +1 -1
  196. package/dist/src/ui/components/shared/ScopeSelector.js +4 -1
  197. package/dist/src/ui/components/shared/ScopeSelector.js.map +1 -1
  198. package/dist/src/ui/components/views/ChatList.d.ts +12 -0
  199. package/dist/src/ui/components/views/ChatList.js +17 -0
  200. package/dist/src/ui/components/views/ChatList.js.map +1 -0
  201. package/dist/src/ui/components/views/ChatList.test.d.ts +6 -0
  202. package/dist/src/ui/components/views/ChatList.test.js +42 -0
  203. package/dist/src/ui/components/views/ChatList.test.js.map +1 -0
  204. package/dist/src/ui/components/views/McpStatus.d.ts +27 -0
  205. package/dist/src/ui/components/views/McpStatus.js +77 -0
  206. package/dist/src/ui/components/views/McpStatus.js.map +1 -0
  207. package/dist/src/ui/components/views/McpStatus.test.d.ts +6 -0
  208. package/dist/src/ui/components/views/McpStatus.test.js +117 -0
  209. package/dist/src/ui/components/views/McpStatus.test.js.map +1 -0
  210. package/dist/src/ui/components/views/ToolsList.d.ts +14 -0
  211. package/dist/src/ui/components/views/ToolsList.js +7 -0
  212. package/dist/src/ui/components/views/ToolsList.js.map +1 -0
  213. package/dist/src/ui/components/views/ToolsList.test.d.ts +6 -0
  214. package/dist/src/ui/components/views/ToolsList.test.js +45 -0
  215. package/dist/src/ui/components/views/ToolsList.test.js.map +1 -0
  216. package/dist/src/ui/contexts/UIStateContext.d.ts +5 -1
  217. package/dist/src/ui/contexts/UIStateContext.js +1 -0
  218. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  219. package/dist/src/ui/hooks/shellCommandProcessor.js +2 -2
  220. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  221. package/dist/src/ui/hooks/shellCommandProcessor.test.js +1 -1
  222. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  223. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +6 -5
  224. package/dist/src/ui/hooks/slashCommandProcessor.js +5 -2
  225. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  226. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +10 -1
  227. package/dist/src/ui/hooks/useExtensionUpdates.js +145 -49
  228. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
  229. package/dist/src/ui/hooks/useExtensionUpdates.test.js +161 -80
  230. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
  231. package/dist/src/ui/hooks/useFolderTrust.d.ts +2 -1
  232. package/dist/src/ui/hooks/useFolderTrust.js +12 -3
  233. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  234. package/dist/src/ui/hooks/useGeminiStream.js +32 -2
  235. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  236. package/dist/src/ui/hooks/useHistoryManager.js +3 -3
  237. package/dist/src/ui/hooks/useHistoryManager.js.map +1 -1
  238. package/dist/src/ui/hooks/useIdeTrustListener.d.ts +4 -2
  239. package/dist/src/ui/hooks/useIdeTrustListener.js +40 -14
  240. package/dist/src/ui/hooks/useIdeTrustListener.js.map +1 -1
  241. package/dist/src/ui/hooks/useIdeTrustListener.test.d.ts +6 -0
  242. package/dist/src/ui/hooks/useIdeTrustListener.test.js +183 -0
  243. package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -0
  244. package/dist/src/ui/hooks/useQuotaAndFallback.js +3 -17
  245. package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -1
  246. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +13 -43
  247. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
  248. package/dist/src/ui/hooks/useSelectionList.d.ts +1 -0
  249. package/dist/src/ui/hooks/useSelectionList.js +63 -43
  250. package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
  251. package/dist/src/ui/hooks/useSelectionList.test.js +111 -37
  252. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
  253. package/dist/src/ui/hooks/useToolScheduler.test.js +2 -2
  254. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  255. package/dist/src/ui/hooks/useWorkspaceMigration.d.ts +2 -2
  256. package/dist/src/ui/hooks/useWorkspaceMigration.js +13 -8
  257. package/dist/src/ui/hooks/useWorkspaceMigration.js.map +1 -1
  258. package/dist/src/ui/layouts/DefaultAppLayout.d.ts +7 -0
  259. package/dist/src/ui/layouts/DefaultAppLayout.js +13 -0
  260. package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -0
  261. package/dist/src/ui/layouts/ScreenReaderAppLayout.d.ts +7 -0
  262. package/dist/src/ui/layouts/ScreenReaderAppLayout.js +14 -0
  263. package/dist/src/ui/layouts/ScreenReaderAppLayout.js.map +1 -0
  264. package/dist/src/ui/noninteractive/nonInteractiveUi.js +3 -1
  265. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -1
  266. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +2 -2
  267. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -1
  268. package/dist/src/ui/state/extensions.d.ts +46 -0
  269. package/dist/src/ui/state/extensions.js +67 -0
  270. package/dist/src/ui/state/extensions.js.map +1 -1
  271. package/dist/src/ui/types.d.ts +54 -3
  272. package/dist/src/ui/types.js +3 -0
  273. package/dist/src/ui/types.js.map +1 -1
  274. package/dist/src/ui/utils/MarkdownDisplay.js +1 -2
  275. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  276. package/dist/src/ui/utils/MarkdownDisplay.test.js +94 -91
  277. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  278. package/dist/src/ui/utils/displayUtils.d.ts +1 -0
  279. package/dist/src/ui/utils/displayUtils.js +3 -0
  280. package/dist/src/ui/utils/displayUtils.js.map +1 -1
  281. package/dist/src/ui/utils/displayUtils.test.js +36 -17
  282. package/dist/src/ui/utils/displayUtils.test.js.map +1 -1
  283. package/dist/src/utils/commentJson.js +95 -13
  284. package/dist/src/utils/commentJson.js.map +1 -1
  285. package/dist/src/utils/commentJson.test.js +161 -0
  286. package/dist/src/utils/commentJson.test.js.map +1 -1
  287. package/dist/src/utils/handleAutoUpdate.js +4 -1
  288. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  289. package/dist/src/utils/installationInfo.d.ts +1 -0
  290. package/dist/src/utils/installationInfo.js +2 -0
  291. package/dist/src/utils/installationInfo.js.map +1 -1
  292. package/dist/src/utils/sessionCleanup.d.ts +22 -0
  293. package/dist/src/utils/sessionCleanup.integration.test.d.ts +6 -0
  294. package/dist/src/utils/sessionCleanup.integration.test.js +182 -0
  295. package/dist/src/utils/sessionCleanup.integration.test.js.map +1 -0
  296. package/dist/src/utils/sessionCleanup.js +214 -0
  297. package/dist/src/utils/sessionCleanup.js.map +1 -0
  298. package/dist/src/utils/sessionCleanup.test.d.ts +6 -0
  299. package/dist/src/utils/sessionCleanup.test.js +1232 -0
  300. package/dist/src/utils/sessionCleanup.test.js.map +1 -0
  301. package/dist/src/utils/sessionUtils.d.ts +37 -0
  302. package/dist/src/utils/sessionUtils.js +71 -0
  303. package/dist/src/utils/sessionUtils.js.map +1 -0
  304. package/dist/src/utils/windowTitle.d.ts +12 -0
  305. package/dist/src/utils/windowTitle.js +19 -0
  306. package/dist/src/utils/windowTitle.js.map +1 -0
  307. package/dist/src/utils/windowTitle.test.d.ts +6 -0
  308. package/dist/src/utils/windowTitle.test.js +49 -0
  309. package/dist/src/utils/windowTitle.test.js.map +1 -0
  310. package/dist/src/zed-integration/acp.js +1 -2
  311. package/dist/src/zed-integration/acp.js.map +1 -1
  312. package/dist/src/zed-integration/fileSystemService.d.ts +1 -0
  313. package/dist/src/zed-integration/fileSystemService.js +3 -0
  314. package/dist/src/zed-integration/fileSystemService.js.map +1 -1
  315. package/dist/src/zed-integration/schema.d.ts +48 -48
  316. package/dist/src/zed-integration/zedIntegration.d.ts +2 -3
  317. package/dist/src/zed-integration/zedIntegration.js +3 -1
  318. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  319. package/dist/tsconfig.tsbuildinfo +1 -1
  320. package/package.json +9 -3
package/README.md CHANGED
@@ -7,16 +7,21 @@
7
7
 
8
8
  ![Gemini CLI Screenshot](./docs/assets/gemini-screenshot.png)
9
9
 
10
- Gemini CLI is an open-source AI agent that brings the power of Gemini directly into your terminal. It provides lightweight access to Gemini, giving you the most direct path from your prompt to our model.
10
+ Gemini CLI is an open-source AI agent that brings the power of Gemini directly
11
+ into your terminal. It provides lightweight access to Gemini, giving you the
12
+ most direct path from your prompt to our model.
11
13
 
12
14
  ## 🚀 Why Gemini CLI?
13
15
 
14
- - **🎯 Free tier**: 60 requests/min and 1,000 requests/day with personal Google account
15
- - **🧠 Powerful Gemini 2.5 Pro**: Access to 1M token context window
16
- - **🔧 Built-in tools**: Google Search grounding, file operations, shell commands, web fetching
17
- - **🔌 Extensible**: MCP (Model Context Protocol) support for custom integrations
18
- - **💻 Terminal-first**: Designed for developers who live in the command line
19
- - **🛡️ Open source**: Apache 2.0 licensed
16
+ - **🎯 Free tier**: 60 requests/min and 1,000 requests/day with personal Google
17
+ account.
18
+ - **🧠 Powerful Gemini 2.5 Pro**: Access to 1M token context window.
19
+ - **🔧 Built-in tools**: Google Search grounding, file operations, shell
20
+ commands, web fetching.
21
+ - **🔌 Extensible**: MCP (Model Context Protocol) support for custom
22
+ integrations.
23
+ - **💻 Terminal-first**: Designed for developers who live in the command line.
24
+ - **🛡️ Open source**: Apache 2.0 licensed.
20
25
 
21
26
  ## 📦 Installation
22
27
 
@@ -52,7 +57,9 @@ See [Releases](./docs/releases.md) for more details.
52
57
 
53
58
  ### Preview
54
59
 
55
- New preview releases will be published each week at UTC 2359 on Tuesdays. These releases will not have been fully vetted and may contain regressions or other outstanding issues. Please help us test and install with `preview` tag.
60
+ New preview releases will be published each week at UTC 2359 on Tuesdays. These
61
+ releases will not have been fully vetted and may contain regressions or other
62
+ outstanding issues. Please help us test and install with `preview` tag.
56
63
 
57
64
  ```bash
58
65
  npm install -g @google/gemini-cli@preview
@@ -60,7 +67,9 @@ npm install -g @google/gemini-cli@preview
60
67
 
61
68
  ### Stable
62
69
 
63
- - New stable releases will be published each week at UTC 2000 on Tuesdays, this will be the full promotion of last week's `preview` release + any bug fixes and validations. Use `latest` tag.
70
+ - New stable releases will be published each week at UTC 2000 on Tuesdays, this
71
+ will be the full promotion of last week's `preview` release + any bug fixes
72
+ and validations. Use `latest` tag.
64
73
 
65
74
  ```bash
66
75
  npm install -g @google/gemini-cli@latest
@@ -68,7 +77,9 @@ npm install -g @google/gemini-cli@latest
68
77
 
69
78
  ### Nightly
70
79
 
71
- - New releases will be published each week at UTC 0000 each day, This will be all changes from the main branch as represented at time of release. It should be assumed there are pending validations and issues. Use `nightly` tag.
80
+ - New releases will be published each week at UTC 0000 each day, This will be
81
+ all changes from the main branch as represented at time of release. It should
82
+ be assumed there are pending validations and issues. Use `nightly` tag.
72
83
 
73
84
  ```bash
74
85
  npm install -g @google/gemini-cli@nightly
@@ -84,24 +95,33 @@ npm install -g @google/gemini-cli@nightly
84
95
 
85
96
  ### Automation & Integration
86
97
 
87
- - Automate operational tasks like querying pull requests or handling complex rebases
88
- - Use MCP servers to connect new capabilities, including [media generation with Imagen, Veo or Lyria](https://github.com/GoogleCloudPlatform/vertex-ai-creative-studio/tree/main/experiments/mcp-genmedia)
98
+ - Automate operational tasks like querying pull requests or handling complex
99
+ rebases
100
+ - Use MCP servers to connect new capabilities, including
101
+ [media generation with Imagen, Veo or Lyria](https://github.com/GoogleCloudPlatform/vertex-ai-creative-studio/tree/main/experiments/mcp-genmedia)
89
102
  - Run non-interactively in scripts for workflow automation
90
103
 
91
104
  ### Advanced Capabilities
92
105
 
93
- - Ground your queries with built-in [Google Search](https://ai.google.dev/gemini-api/docs/grounding) for real-time information
106
+ - Ground your queries with built-in
107
+ [Google Search](https://ai.google.dev/gemini-api/docs/grounding) for real-time
108
+ information
94
109
  - Conversation checkpointing to save and resume complex sessions
95
110
  - Custom context files (GEMINI.md) to tailor behavior for your projects
96
111
 
97
112
  ### GitHub Integration
98
113
 
99
- Integrate Gemini CLI directly into your GitHub workflows with [**Gemini CLI GitHub Action**](https://github.com/google-github-actions/run-gemini-cli):
114
+ Integrate Gemini CLI directly into your GitHub workflows with
115
+ [**Gemini CLI GitHub Action**](https://github.com/google-github-actions/run-gemini-cli):
100
116
 
101
- - **Pull Request Reviews**: Automated code review with contextual feedback and suggestions
102
- - **Issue Triage**: Automated labeling and prioritization of GitHub issues based on content analysis
103
- - **On-demand Assistance**: Mention `@gemini-cli` in issues and pull requests for help with debugging, explanations, or task delegation
104
- - **Custom Workflows**: Build automated, scheduled and on-demand workflows tailored to your team's needs
117
+ - **Pull Request Reviews**: Automated code review with contextual feedback and
118
+ suggestions
119
+ - **Issue Triage**: Automated labeling and prioritization of GitHub issues based
120
+ on content analysis
121
+ - **On-demand Assistance**: Mention `@gemini-cli` in issues and pull requests
122
+ for help with debugging, explanations, or task delegation
123
+ - **Custom Workflows**: Build automated, scheduled and on-demand workflows
124
+ tailored to your team's needs
105
125
 
106
126
  ## 🔐 Authentication Options
107
127
 
@@ -109,20 +129,17 @@ Choose the authentication method that best fits your needs:
109
129
 
110
130
  ### Option 1: Login with Google (OAuth login using your Google Account)
111
131
 
112
- **✨ Best for:**
113
-
114
- - Individual developers.
115
- - Google AI Pro and AI Ultra subscribers.
116
- - Anyone who has a Gemini Code Assist license.
117
-
118
- _See [quota limits and terms of service](https://cloud.google.com/gemini/docs/quotas) for details._
132
+ **✨ Best for:** Individual developers as well as anyone who has a Gemini Code
133
+ Assist License. (see
134
+ [quota limits and terms of service](https://cloud.google.com/gemini/docs/quotas)
135
+ for details)
119
136
 
120
137
  **Benefits:**
121
138
 
122
- - **Free tier** with 60 requests/min and 1,000 requests/day
123
- - **Gemini 2.5 Pro and Flash** with 1M token context window
139
+ - **Free tier**: 60 requests/min and 1,000 requests/day
140
+ - **Gemini 2.5 Pro** with 1M token context window
124
141
  - **No API key management** - just sign in with your Google account
125
- - **Automatic updates** to our latest models
142
+ - **Automatic updates** to latest models
126
143
 
127
144
  #### Start Gemini CLI, then choose _Login with Google_ and follow the browser authentication flow when prompted
128
145
 
@@ -134,7 +151,7 @@ gemini
134
151
 
135
152
  ```bash
136
153
  # Set your Google Cloud Project
137
- export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_NAME"
154
+ export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
138
155
  gemini
139
156
  ```
140
157
 
@@ -171,7 +188,8 @@ export GOOGLE_GENAI_USE_VERTEXAI=true
171
188
  gemini
172
189
  ```
173
190
 
174
- For Google Workspace accounts and other authentication methods, see the [authentication guide](./docs/cli/authentication.md).
191
+ For Google Workspace accounts and other authentication methods, see the
192
+ [authentication guide](./docs/get-started/authentication.md).
175
193
 
176
194
  ## 🚀 Getting Started
177
195
 
@@ -233,17 +251,26 @@ gemini
233
251
 
234
252
  ### Getting Started
235
253
 
236
- - [**Quickstart Guide**](./docs/cli/index.md) - Get up and running quickly
237
- - [**Authentication Setup**](./docs/cli/authentication.md) - Detailed auth configuration
238
- - [**Configuration Guide**](./docs/cli/configuration.md) - Settings and customization
239
- - [**Keyboard Shortcuts**](./docs/keyboard-shortcuts.md) - Productivity tips
254
+ - [**Quickstart Guide**](./docs/get-started/index.md) - Get up and running
255
+ quickly.
256
+ - [**Authentication Setup**](./docs/get-started/authentication.md) - Detailed
257
+ auth configuration.
258
+ - [**Configuration Guide**](./docs/get-started/configuration.md) - Settings and
259
+ customization.
260
+ - [**Keyboard Shortcuts**](./docs/cli/keyboard-shortcuts.md) - Productivity
261
+ tips.
240
262
 
241
263
  ### Core Features
242
264
 
243
- - [**Commands Reference**](./docs/cli/commands.md) - All slash commands (`/help`, `/chat`, `/mcp`, etc.)
244
- - [**Checkpointing**](./docs/checkpointing.md) - Save and resume conversations
245
- - [**Memory Management**](./docs/tools/memory.md) - Using GEMINI.md context files
246
- - [**Token Caching**](./docs/cli/token-caching.md) - Optimize token usage
265
+ - [**Commands Reference**](./docs/cli/commands.md) - All slash commands
266
+ (`/help`, `/chat`, etc).
267
+ - [**Custom Commands**](./docs/cli/custom-commands.md) - Create your own
268
+ reusable commands.
269
+ - [**Context Files (GEMINI.md)**](./docs/cli/gemini-md.md) - Provide persistent
270
+ context to Gemini CLI.
271
+ - [**Checkpointing**](./docs/cli/checkpointing.md) - Save and resume
272
+ conversations.
273
+ - [**Token Caching**](./docs/cli/token-caching.md) - Optimize token usage.
247
274
 
248
275
  ### Tools & Extensions
249
276
 
@@ -251,35 +278,37 @@ gemini
251
278
  - [File System Operations](./docs/tools/file-system.md)
252
279
  - [Shell Commands](./docs/tools/shell.md)
253
280
  - [Web Fetch & Search](./docs/tools/web-fetch.md)
254
- - [Multi-file Operations](./docs/tools/multi-file.md)
255
- - [**MCP Server Integration**](./docs/tools/mcp-server.md) - Extend with custom tools
256
- - [**Custom Extensions**](./docs/extension.md) - Build your own commands
281
+ - [**MCP Server Integration**](./docs/tools/mcp-server.md) - Extend with custom
282
+ tools.
283
+ - [**Custom Extensions**](./docs/extensions/index.md) - Build and share your own
284
+ commands.
257
285
 
258
286
  ### Advanced Topics
259
287
 
260
- - [**Architecture Overview**](./docs/architecture.md) - How Gemini CLI works
261
- - [**IDE Integration**](./docs/ide-integration.md) - VS Code companion
262
- - [**Sandboxing & Security**](./docs/sandbox.md) - Safe execution environments
263
- - [**Enterprise Deployment**](./docs/deployment.md) - Docker, system-wide config
264
- - [**Telemetry & Monitoring**](./docs/telemetry.md) - Usage tracking
265
- - [**Tools API Development**](./docs/core/tools-api.md) - Create custom tools
266
-
267
- ### Configuration & Customization
268
-
269
- - [**Settings Reference**](./docs/cli/configuration.md) - All configuration options
270
- - [**Theme Customization**](./docs/cli/themes.md) - Visual customization
271
- - [**.gemini Directory**](./docs/gemini-ignore.md) - Project-specific settings
272
- - [**Environment Variables**](./docs/cli/configuration.md#environment-variables)
288
+ - [**Headless Mode (Scripting)**](./docs/cli/headless.md) - Use Gemini CLI in
289
+ automated workflows.
290
+ - [**Architecture Overview**](./docs/architecture.md) - How Gemini CLI works.
291
+ - [**IDE Integration**](./docs/ide-integration/index.md) - VS Code companion.
292
+ - [**Sandboxing & Security**](./docs/cli/sandbox.md) - Safe execution
293
+ environments.
294
+ - [**Trusted Folders**](./docs/cli/trusted-folders.md) - Control execution
295
+ policies by folder.
296
+ - [**Enterprise Guide**](./docs/cli/enterprise.md) - Deploy and manage in a
297
+ corporate environment.
298
+ - [**Telemetry & Monitoring**](./docs/cli/telemetry.md) - Usage tracking.
299
+ - [**Tools API Development**](./docs/core/tools-api.md) - Create custom tools.
273
300
 
274
301
  ### Troubleshooting & Support
275
302
 
276
- - [**Troubleshooting Guide**](./docs/troubleshooting.md) - Common issues and solutions
277
- - [**FAQ**](./docs/troubleshooting.md#frequently-asked-questions) - Quick answers
278
- - Use `/bug` command to report issues directly from the CLI
303
+ - [**Troubleshooting Guide**](./docs/troubleshooting.md) - Common issues and
304
+ solutions.
305
+ - [**FAQ**](./docs/faq.md) - Frequently asked questions.
306
+ - Use `/bug` command to report issues directly from the CLI.
279
307
 
280
308
  ### Using MCP Servers
281
309
 
282
- Configure MCP servers in `~/.gemini/settings.json` to extend Gemini CLI with custom tools:
310
+ Configure MCP servers in `~/.gemini/settings.json` to extend Gemini CLI with
311
+ custom tools:
283
312
 
284
313
  ```text
285
314
  > @github List my open pull requests
@@ -287,31 +316,39 @@ Configure MCP servers in `~/.gemini/settings.json` to extend Gemini CLI with cus
287
316
  > @database Run a query to find inactive users
288
317
  ```
289
318
 
290
- See the [MCP Server Integration guide](./docs/tools/mcp-server.md) for setup instructions.
319
+ See the [MCP Server Integration guide](./docs/tools/mcp-server.md) for setup
320
+ instructions.
291
321
 
292
322
  ## 🤝 Contributing
293
323
 
294
- We welcome contributions! Gemini CLI is fully open source (Apache 2.0), and we encourage the community to:
324
+ We welcome contributions! Gemini CLI is fully open source (Apache 2.0), and we
325
+ encourage the community to:
295
326
 
296
- - Report bugs and suggest features
297
- - Improve documentation
298
- - Submit code improvements
299
- - Share your MCP servers and extensions
327
+ - Report bugs and suggest features.
328
+ - Improve documentation.
329
+ - Submit code improvements.
330
+ - Share your MCP servers and extensions.
300
331
 
301
- See our [Contributing Guide](./CONTRIBUTING.md) for development setup, coding standards, and how to submit pull requests.
332
+ See our [Contributing Guide](./CONTRIBUTING.md) for development setup, coding
333
+ standards, and how to submit pull requests.
302
334
 
303
- Check our [Official Roadmap](https://github.com/orgs/google-gemini/projects/11/) for planned features and priorities.
335
+ Check our [Official Roadmap](https://github.com/orgs/google-gemini/projects/11)
336
+ for planned features and priorities.
304
337
 
305
338
  ## 📖 Resources
306
339
 
307
- - **[Official Roadmap](./ROADMAP.md)** - See what's coming next
308
- - **[NPM Package](https://www.npmjs.com/package/@google/gemini-cli)** - Package registry
309
- - **[GitHub Issues](https://github.com/google-gemini/gemini-cli/issues)** - Report bugs or request features
310
- - **[Security Advisories](https://github.com/google-gemini/gemini-cli/security/advisories)** - Security updates
340
+ - **[Official Roadmap](./ROADMAP.md)** - See what's coming next.
341
+ - **[Changelog](./docs/changelogs/index.md)** - See recent notable updates.
342
+ - **[NPM Package](https://www.npmjs.com/package/@google/gemini-cli)** - Package
343
+ registry.
344
+ - **[GitHub Issues](https://github.com/google-gemini/gemini-cli/issues)** -
345
+ Report bugs or request features.
346
+ - **[Security Advisories](https://github.com/google-gemini/gemini-cli/security/advisories)** -
347
+ Security updates.
311
348
 
312
349
  ### Uninstall
313
350
 
314
- See the [Uninstall Guide](docs/Uninstall.md) for removal instructions.
351
+ See the [Uninstall Guide](docs/cli/uninstall.md) for removal instructions.
315
352
 
316
353
  ## 📄 Legal
317
354
 
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@google/gemini-cli",
3
- "version": "0.10.0-nightly.20250926.1487841d",
3
+ "version": "0.10.0-nightly.20251009.cd354aeb",
4
4
  "description": "Gemini CLI",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,7 +25,7 @@
25
25
  "dist"
26
26
  ],
27
27
  "config": {
28
- "sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.10.0-nightly.20250926.1487841d"
28
+ "sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.10.0-nightly.20251009.cd354aeb"
29
29
  },
30
30
  "dependencies": {
31
31
  "@google/gemini-cli-core": "file:../core",
@@ -45,6 +45,7 @@
45
45
  "ink-gradient": "^3.0.0",
46
46
  "ink-spinner": "^5.0.0",
47
47
  "lowlight": "^3.3.0",
48
+ "mnemonist": "^0.40.3",
48
49
  "open": "^10.1.2",
49
50
  "react": "^19.1.0",
50
51
  "read-package-up": "^11.0.0",
@@ -53,7 +54,9 @@
53
54
  "string-width": "^7.1.0",
54
55
  "strip-ansi": "^7.1.0",
55
56
  "strip-json-comments": "^3.1.1",
57
+ "tar": "^7.5.1",
56
58
  "undici": "^7.10.0",
59
+ "extract-zip": "^2.0.1",
57
60
  "update-notifier": "^7.3.1",
58
61
  "wrap-ansi": "9.0.2",
59
62
  "yargs": "^17.7.2",
@@ -63,6 +66,7 @@
63
66
  "@babel/runtime": "^7.27.6",
64
67
  "@google/gemini-cli-test-utils": "file:../test-utils",
65
68
  "@testing-library/react": "^16.3.0",
69
+ "@types/archiver": "^6.0.3",
66
70
  "@types/command-exists": "^1.2.3",
67
71
  "@types/diff": "^7.0.2",
68
72
  "@types/dotenv": "^6.1.1",
@@ -71,7 +75,9 @@
71
75
  "@types/react-dom": "^19.1.6",
72
76
  "@types/semver": "^7.7.0",
73
77
  "@types/shell-quote": "^1.7.5",
78
+ "@types/tar": "^6.1.13",
74
79
  "@types/yargs": "^17.0.32",
80
+ "archiver": "^7.0.1",
75
81
  "ink-testing-library": "^4.0.0",
76
82
  "jsdom": "^26.1.0",
77
83
  "pretty-format": "^30.0.2",
@@ -1,8 +1,14 @@
1
1
  # Ink Library Screen Reader Guidance
2
2
 
3
- When building custom components, it's important to keep accessibility in mind. While Ink provides the building blocks, ensuring your components are accessible will make your CLIs usable by a wider audience.
3
+ When building custom components, it's important to keep accessibility in mind.
4
+ While Ink provides the building blocks, ensuring your components are accessible
5
+ will make your CLIs usable by a wider audience.
4
6
 
5
7
  ## General Principles
6
8
 
7
- Provide screen reader-friendly output: Use the useIsScreenReaderEnabled hook to detect if a screen reader is active. You can then render a more descriptive output for screen reader users.
8
- Leverage ARIA props: For components that have a specific role (e.g., a checkbox or a button), use the aria-role, aria-state, and aria-label props on <Box> and <Text> to provide semantic meaning to screen readers.
9
+ Provide screen reader-friendly output: Use the useIsScreenReaderEnabled hook to
10
+ detect if a screen reader is active. You can then render a more descriptive
11
+ output for screen reader users. Leverage ARIA props: For components that have a
12
+ specific role (e.g., a checkbox or a button), use the aria-role, aria-state, and
13
+ aria-label props on <Box> and <Text> to provide semantic meaning to screen
14
+ readers.
@@ -1,5 +1,4 @@
1
1
  {
2
2
  "name": "context-example",
3
- "version": "1.0.0",
4
- "contextFileName": "GEMINI.md"
3
+ "version": "1.0.0"
5
4
  }
@@ -5,10 +5,10 @@
5
5
  */
6
6
  import type { CommandModule } from 'yargs';
7
7
  interface InstallArgs {
8
- source?: string;
9
- path?: string;
8
+ source: string;
10
9
  ref?: string;
11
10
  autoUpdate?: boolean;
11
+ allowPreRelease?: boolean;
12
12
  }
13
13
  export declare function handleInstall(args: InstallArgs): Promise<void>;
14
14
  export declare const installCommand: CommandModule;
@@ -5,36 +5,37 @@
5
5
  */
6
6
  import { installExtension, requestConsentNonInteractive, } from '../../config/extension.js';
7
7
  import { getErrorMessage } from '../../utils/errors.js';
8
+ import { stat } from 'node:fs/promises';
8
9
  export async function handleInstall(args) {
9
10
  try {
10
11
  let installMetadata;
11
- if (args.source) {
12
- const { source } = args;
13
- if (source.startsWith('http://') ||
14
- source.startsWith('https://') ||
15
- source.startsWith('git@') ||
16
- source.startsWith('sso://')) {
17
- installMetadata = {
18
- source,
19
- type: 'git',
20
- ref: args.ref,
21
- autoUpdate: args.autoUpdate,
22
- };
23
- }
24
- else {
25
- throw new Error(`The source "${source}" is not a valid URL format.`);
26
- }
27
- }
28
- else if (args.path) {
12
+ const { source } = args;
13
+ if (source.startsWith('http://') ||
14
+ source.startsWith('https://') ||
15
+ source.startsWith('git@') ||
16
+ source.startsWith('sso://')) {
29
17
  installMetadata = {
30
- source: args.path,
31
- type: 'local',
18
+ source,
19
+ type: 'git',
20
+ ref: args.ref,
32
21
  autoUpdate: args.autoUpdate,
22
+ allowPreRelease: args.allowPreRelease,
33
23
  };
34
24
  }
35
25
  else {
36
- // This should not be reached due to the yargs check.
37
- throw new Error('Either --source or --path must be provided.');
26
+ if (args.ref || args.autoUpdate) {
27
+ throw new Error('--ref and --auto-update are not applicable for local extensions.');
28
+ }
29
+ try {
30
+ await stat(source);
31
+ installMetadata = {
32
+ source,
33
+ type: 'local',
34
+ };
35
+ }
36
+ catch {
37
+ throw new Error('Install source not found.');
38
+ }
38
39
  }
39
40
  const name = await installExtension(installMetadata, requestConsentNonInteractive);
40
41
  console.log(`Extension "${name}" installed successfully and enabled.`);
@@ -45,16 +46,13 @@ export async function handleInstall(args) {
45
46
  }
46
47
  }
47
48
  export const installCommand = {
48
- command: 'install [<source>] [--path] [--ref] [--auto-update]',
49
+ command: 'install <source> [--auto-update] [--pre-release]',
49
50
  describe: 'Installs an extension from a git repository URL or a local path.',
50
51
  builder: (yargs) => yargs
51
52
  .positional('source', {
52
- describe: 'The github URL of the extension to install.',
53
- type: 'string',
54
- })
55
- .option('path', {
56
- describe: 'Path to a local extension directory.',
53
+ describe: 'The github URL or local path of the extension to install.',
57
54
  type: 'string',
55
+ demandOption: true,
58
56
  })
59
57
  .option('ref', {
60
58
  describe: 'The git ref to install from.',
@@ -64,21 +62,22 @@ export const installCommand = {
64
62
  describe: 'Enable auto-update for this extension.',
65
63
  type: 'boolean',
66
64
  })
67
- .conflicts('source', 'path')
68
- .conflicts('path', 'ref')
69
- .conflicts('path', 'auto-update')
65
+ .option('pre-release', {
66
+ describe: 'Enable pre-release versions for this extension.',
67
+ type: 'boolean',
68
+ })
70
69
  .check((argv) => {
71
- if (!argv.source && !argv.path) {
72
- throw new Error('Either source or --path must be provided.');
70
+ if (!argv.source) {
71
+ throw new Error('The source argument must be provided.');
73
72
  }
74
73
  return true;
75
74
  }),
76
75
  handler: async (argv) => {
77
76
  await handleInstall({
78
77
  source: argv['source'],
79
- path: argv['path'],
80
78
  ref: argv['ref'],
81
79
  autoUpdate: argv['auto-update'],
80
+ allowPreRelease: argv['pre-release'],
82
81
  });
83
82
  },
84
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/commands/extensions/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/commands/extensions/install.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { handleInstall, installCommand } from './install.js';
8
8
  import yargs from 'yargs';
9
9
  const mockInstallExtension = vi.hoisted(() => vi.fn());
10
10
  const mockRequestConsentNonInteractive = vi.hoisted(() => vi.fn());
11
+ const mockStat = vi.hoisted(() => vi.fn());
11
12
  vi.mock('../../config/extension.js', () => ({
12
13
  installExtension: mockInstallExtension,
13
14
  requestConsentNonInteractive: mockRequestConsentNonInteractive,
@@ -15,24 +16,16 @@ vi.mock('../../config/extension.js', () => ({
15
16
  vi.mock('../../utils/errors.js', () => ({
16
17
  getErrorMessage: vi.fn((error) => error.message),
17
18
  }));
19
+ vi.mock('node:fs/promises', () => ({
20
+ stat: mockStat,
21
+ default: {
22
+ stat: mockStat,
23
+ },
24
+ }));
18
25
  describe('extensions install command', () => {
19
26
  it('should fail if no source is provided', () => {
20
27
  const validationParser = yargs([]).command(installCommand).fail(false);
21
- expect(() => validationParser.parse('install')).toThrow('Either source or --path must be provided.');
22
- });
23
- it('should fail if both git source and local path are provided', () => {
24
- const validationParser = yargs([])
25
- .command(installCommand)
26
- .fail(false)
27
- .locale('en');
28
- expect(() => validationParser.parse('install some-url --path /some/path')).toThrow('Arguments source and path are mutually exclusive');
29
- });
30
- it('should fail if both auto update and local path are provided', () => {
31
- const validationParser = yargs([])
32
- .command(installCommand)
33
- .fail(false)
34
- .locale('en');
35
- expect(() => validationParser.parse('install some-url --path /some/path --auto-update')).toThrow('Arguments path and auto-update are mutually exclusive');
28
+ expect(() => validationParser.parse('install')).toThrow('Not enough non-option arguments: got 0, need at least 1');
36
29
  });
37
30
  });
38
31
  describe('handleInstall', () => {
@@ -49,6 +42,7 @@ describe('handleInstall', () => {
49
42
  afterEach(() => {
50
43
  mockInstallExtension.mockClear();
51
44
  mockRequestConsentNonInteractive.mockClear();
45
+ mockStat.mockClear();
52
46
  vi.resetAllMocks();
53
47
  });
54
48
  it('should install an extension from a http source', async () => {
@@ -73,10 +67,11 @@ describe('handleInstall', () => {
73
67
  expect(consoleLogSpy).toHaveBeenCalledWith('Extension "git-extension" installed successfully and enabled.');
74
68
  });
75
69
  it('throws an error from an unknown source', async () => {
70
+ mockStat.mockRejectedValue(new Error('ENOENT: no such file or directory'));
76
71
  await handleInstall({
77
72
  source: 'test://google.com',
78
73
  });
79
- expect(consoleErrorSpy).toHaveBeenCalledWith('The source "test://google.com" is not a valid URL format.');
74
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Install source not found.');
80
75
  expect(processSpy).toHaveBeenCalledWith(1);
81
76
  });
82
77
  it('should install an extension from a sso source', async () => {
@@ -88,16 +83,12 @@ describe('handleInstall', () => {
88
83
  });
89
84
  it('should install an extension from a local path', async () => {
90
85
  mockInstallExtension.mockResolvedValue('local-extension');
86
+ mockStat.mockResolvedValue({});
91
87
  await handleInstall({
92
- path: '/some/path',
88
+ source: '/some/path',
93
89
  });
94
90
  expect(consoleLogSpy).toHaveBeenCalledWith('Extension "local-extension" installed successfully and enabled.');
95
91
  });
96
- it('should throw an error if no source or path is provided', async () => {
97
- await handleInstall({});
98
- expect(consoleErrorSpy).toHaveBeenCalledWith('Either --source or --path must be provided.');
99
- expect(processSpy).toHaveBeenCalledWith(1);
100
- });
101
92
  it('should throw an error if install extension fails', async () => {
102
93
  mockInstallExtension.mockRejectedValue(new Error('Install extension failed'));
103
94
  await handleInstall({ source: 'git@some-url' });
@@ -1 +1 @@
1
- {"version":3,"file":"install.test.js","sourceRoot":"","sources":["../../../../src/commands/extensions/install.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.test.js","sourceRoot":"","sources":["../../../../src/commands/extensions/install.test.ts"],"names":[],"mappings":"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"}