@google/gemini-cli 0.10.0-preview.2 → 0.11.0-nightly.20251020.a96f0659

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 (417) hide show
  1. package/README.md +9 -0
  2. package/dist/google-gemini-cli-0.11.0-nightly.20251015.203bad7c.tgz +0 -0
  3. package/dist/package.json +2 -2
  4. package/dist/src/commands/extensions/examples/mcp-server/example.d.ts +6 -0
  5. package/dist/src/commands/extensions/examples/mcp-server/example.js +46 -0
  6. package/dist/src/commands/extensions/examples/mcp-server/example.js.map +1 -0
  7. package/dist/src/commands/extensions/install.d.ts +1 -0
  8. package/dist/src/commands/extensions/install.js +15 -2
  9. package/dist/src/commands/extensions/install.js.map +1 -1
  10. package/dist/src/commands/extensions/list.js +3 -2
  11. package/dist/src/commands/extensions/list.js.map +1 -1
  12. package/dist/src/commands/extensions/update.js +2 -2
  13. package/dist/src/commands/extensions/update.js.map +1 -1
  14. package/dist/src/commands/mcp/add.test.d.ts +6 -0
  15. package/dist/src/commands/mcp/add.test.js +234 -0
  16. package/dist/src/commands/mcp/add.test.js.map +1 -0
  17. package/dist/src/commands/mcp/list.js +5 -3
  18. package/dist/src/commands/mcp/list.js.map +1 -1
  19. package/dist/src/commands/mcp/list.test.d.ts +6 -0
  20. package/dist/src/commands/mcp/list.test.js +117 -0
  21. package/dist/src/commands/mcp/list.test.js.map +1 -0
  22. package/dist/src/commands/mcp/remove.test.d.ts +6 -0
  23. package/dist/src/commands/mcp/remove.test.js +175 -0
  24. package/dist/src/commands/mcp/remove.test.js.map +1 -0
  25. package/dist/src/commands/mcp.test.d.ts +6 -0
  26. package/dist/src/commands/mcp.test.js +62 -0
  27. package/dist/src/commands/mcp.test.js.map +1 -0
  28. package/dist/src/config/auth.js +3 -1
  29. package/dist/src/config/auth.js.map +1 -1
  30. package/dist/src/config/auth.test.js +3 -1
  31. package/dist/src/config/auth.test.js.map +1 -1
  32. package/dist/src/config/config.d.ts +0 -11
  33. package/dist/src/config/config.integration.test.d.ts +6 -0
  34. package/dist/src/config/config.integration.test.js +351 -0
  35. package/dist/src/config/config.integration.test.js.map +1 -0
  36. package/dist/src/config/config.js +17 -74
  37. package/dist/src/config/config.js.map +1 -1
  38. package/dist/src/config/config.test.d.ts +6 -0
  39. package/dist/src/config/config.test.js +2001 -0
  40. package/dist/src/config/config.test.js.map +1 -0
  41. package/dist/src/config/extension.d.ts +1 -4
  42. package/dist/src/config/extension.js +64 -69
  43. package/dist/src/config/extension.js.map +1 -1
  44. package/dist/src/config/extension.test.d.ts +6 -0
  45. package/dist/src/config/extension.test.js +1176 -0
  46. package/dist/src/config/extension.test.js.map +1 -0
  47. package/dist/src/config/extensions/extensionEnablement.d.ts +1 -1
  48. package/dist/src/config/extensions/extensionEnablement.js +4 -3
  49. package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
  50. package/dist/src/config/extensions/extensionEnablement.test.js +21 -18
  51. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
  52. package/dist/src/config/extensions/github.d.ts +15 -7
  53. package/dist/src/config/extensions/github.js +95 -21
  54. package/dist/src/config/extensions/github.js.map +1 -1
  55. package/dist/src/config/extensions/github.test.js +14 -12
  56. package/dist/src/config/extensions/github.test.js.map +1 -1
  57. package/dist/src/config/extensions/update.test.js +9 -9
  58. package/dist/src/config/extensions/update.test.js.map +1 -1
  59. package/dist/src/config/keyBindings.d.ts +2 -1
  60. package/dist/src/config/keyBindings.js +4 -2
  61. package/dist/src/config/keyBindings.js.map +1 -1
  62. package/dist/src/config/policy.js +13 -14
  63. package/dist/src/config/policy.js.map +1 -1
  64. package/dist/src/config/policy.test.js +3 -3
  65. package/dist/src/config/policy.test.js.map +1 -1
  66. package/dist/src/config/sandboxConfig.d.ts +0 -1
  67. package/dist/src/config/sandboxConfig.js +1 -3
  68. package/dist/src/config/sandboxConfig.js.map +1 -1
  69. package/dist/src/config/settings.test.d.ts +6 -0
  70. package/dist/src/config/settings.test.js +1937 -0
  71. package/dist/src/config/settings.test.js.map +1 -0
  72. package/dist/src/gemini.js +12 -10
  73. package/dist/src/gemini.js.map +1 -1
  74. package/dist/src/gemini.test.js +34 -11
  75. package/dist/src/gemini.test.js.map +1 -1
  76. package/dist/src/generated/git-commit.d.ts +2 -2
  77. package/dist/src/generated/git-commit.js +2 -2
  78. package/dist/src/generated/git-commit.js.map +1 -1
  79. package/dist/src/nonInteractiveCli.js +91 -3
  80. package/dist/src/nonInteractiveCli.js.map +1 -1
  81. package/dist/src/nonInteractiveCli.test.d.ts +6 -0
  82. package/dist/src/nonInteractiveCli.test.js +711 -0
  83. package/dist/src/nonInteractiveCli.test.js.map +1 -0
  84. package/dist/src/services/FileCommandLoader.test.d.ts +6 -0
  85. package/dist/src/services/FileCommandLoader.test.js +971 -0
  86. package/dist/src/services/FileCommandLoader.test.js.map +1 -0
  87. package/dist/src/services/prompt-processors/argumentProcessor.test.d.ts +6 -0
  88. package/dist/src/services/prompt-processors/argumentProcessor.test.js +40 -0
  89. package/dist/src/services/prompt-processors/argumentProcessor.test.js.map +1 -0
  90. package/dist/src/services/prompt-processors/shellProcessor.test.d.ts +6 -0
  91. package/dist/src/services/prompt-processors/shellProcessor.test.js +482 -0
  92. package/dist/src/services/prompt-processors/shellProcessor.test.js.map +1 -0
  93. package/dist/src/test-utils/render.d.ts +2 -1
  94. package/dist/src/test-utils/render.js +5 -2
  95. package/dist/src/test-utils/render.js.map +1 -1
  96. package/dist/src/ui/App.test.d.ts +6 -0
  97. package/dist/src/ui/App.test.js +110 -0
  98. package/dist/src/ui/App.test.js.map +1 -0
  99. package/dist/src/ui/AppContainer.js +39 -26
  100. package/dist/src/ui/AppContainer.js.map +1 -1
  101. package/dist/src/ui/AppContainer.test.js +35 -9
  102. package/dist/src/ui/AppContainer.test.js.map +1 -1
  103. package/dist/src/ui/auth/AuthDialog.d.ts +1 -1
  104. package/dist/src/ui/auth/AuthDialog.js +3 -1
  105. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  106. package/dist/src/ui/auth/useAuth.d.ts +1 -1
  107. package/dist/src/ui/auth/useAuth.js +3 -1
  108. package/dist/src/ui/auth/useAuth.js.map +1 -1
  109. package/dist/src/ui/commands/aboutCommand.js +1 -1
  110. package/dist/src/ui/commands/aboutCommand.test.d.ts +6 -0
  111. package/dist/src/ui/commands/aboutCommand.test.js +130 -0
  112. package/dist/src/ui/commands/aboutCommand.test.js.map +1 -0
  113. package/dist/src/ui/commands/authCommand.js +1 -1
  114. package/dist/src/ui/commands/authCommand.test.d.ts +6 -0
  115. package/dist/src/ui/commands/authCommand.test.js +30 -0
  116. package/dist/src/ui/commands/authCommand.test.js.map +1 -0
  117. package/dist/src/ui/commands/bugCommand.js +1 -1
  118. package/dist/src/ui/commands/bugCommand.test.d.ts +6 -0
  119. package/dist/src/ui/commands/bugCommand.test.js +105 -0
  120. package/dist/src/ui/commands/bugCommand.test.js.map +1 -0
  121. package/dist/src/ui/commands/chatCommand.js +1 -1
  122. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  123. package/dist/src/ui/commands/chatCommand.test.d.ts +6 -0
  124. package/dist/src/ui/commands/chatCommand.test.js +555 -0
  125. package/dist/src/ui/commands/chatCommand.test.js.map +1 -0
  126. package/dist/src/ui/commands/clearCommand.js +1 -1
  127. package/dist/src/ui/commands/clearCommand.test.d.ts +6 -0
  128. package/dist/src/ui/commands/clearCommand.test.js +76 -0
  129. package/dist/src/ui/commands/clearCommand.test.js.map +1 -0
  130. package/dist/src/ui/commands/compressCommand.js +1 -1
  131. package/dist/src/ui/commands/compressCommand.js.map +1 -1
  132. package/dist/src/ui/commands/compressCommand.test.d.ts +6 -0
  133. package/dist/src/ui/commands/compressCommand.test.js +98 -0
  134. package/dist/src/ui/commands/compressCommand.test.js.map +1 -0
  135. package/dist/src/ui/commands/copyCommand.test.d.ts +6 -0
  136. package/dist/src/ui/commands/copyCommand.test.js +242 -0
  137. package/dist/src/ui/commands/copyCommand.test.js.map +1 -0
  138. package/dist/src/ui/commands/corgiCommand.js +1 -1
  139. package/dist/src/ui/commands/corgiCommand.js.map +1 -1
  140. package/dist/src/ui/commands/corgiCommand.test.d.ts +6 -0
  141. package/dist/src/ui/commands/corgiCommand.test.js +28 -0
  142. package/dist/src/ui/commands/corgiCommand.test.js.map +1 -0
  143. package/dist/src/ui/commands/directoryCommand.test.d.ts +6 -0
  144. package/dist/src/ui/commands/directoryCommand.test.js +145 -0
  145. package/dist/src/ui/commands/directoryCommand.test.js.map +1 -0
  146. package/dist/src/ui/commands/docsCommand.js +1 -1
  147. package/dist/src/ui/commands/docsCommand.test.d.ts +6 -0
  148. package/dist/src/ui/commands/docsCommand.test.js +72 -0
  149. package/dist/src/ui/commands/docsCommand.test.js.map +1 -0
  150. package/dist/src/ui/commands/editorCommand.js +1 -1
  151. package/dist/src/ui/commands/editorCommand.test.d.ts +6 -0
  152. package/dist/src/ui/commands/editorCommand.test.js +27 -0
  153. package/dist/src/ui/commands/editorCommand.test.js.map +1 -0
  154. package/dist/src/ui/commands/extensionsCommand.test.d.ts +6 -0
  155. package/dist/src/ui/commands/extensionsCommand.test.js +241 -0
  156. package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -0
  157. package/dist/src/ui/commands/helpCommand.js +1 -1
  158. package/dist/src/ui/commands/helpCommand.test.d.ts +6 -0
  159. package/dist/src/ui/commands/helpCommand.test.js +42 -0
  160. package/dist/src/ui/commands/helpCommand.test.js.map +1 -0
  161. package/dist/src/ui/commands/ideCommand.js +6 -6
  162. package/dist/src/ui/commands/ideCommand.test.d.ts +6 -0
  163. package/dist/src/ui/commands/ideCommand.test.js +203 -0
  164. package/dist/src/ui/commands/ideCommand.test.js.map +1 -0
  165. package/dist/src/ui/commands/initCommand.js +1 -1
  166. package/dist/src/ui/commands/initCommand.js.map +1 -1
  167. package/dist/src/ui/commands/initCommand.test.d.ts +6 -0
  168. package/dist/src/ui/commands/initCommand.test.js +80 -0
  169. package/dist/src/ui/commands/initCommand.test.js.map +1 -0
  170. package/dist/src/ui/commands/mcpCommand.js +98 -88
  171. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  172. package/dist/src/ui/commands/mcpCommand.test.d.ts +6 -0
  173. package/dist/src/ui/commands/mcpCommand.test.js +148 -0
  174. package/dist/src/ui/commands/mcpCommand.test.js.map +1 -0
  175. package/dist/src/ui/commands/memoryCommand.js +5 -5
  176. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  177. package/dist/src/ui/commands/memoryCommand.test.d.ts +6 -0
  178. package/dist/src/ui/commands/memoryCommand.test.js +266 -0
  179. package/dist/src/ui/commands/memoryCommand.test.js.map +1 -0
  180. package/dist/src/ui/commands/privacyCommand.js +1 -1
  181. package/dist/src/ui/commands/privacyCommand.test.d.ts +6 -0
  182. package/dist/src/ui/commands/privacyCommand.test.js +32 -0
  183. package/dist/src/ui/commands/privacyCommand.test.js.map +1 -0
  184. package/dist/src/ui/commands/quitCommand.js +1 -1
  185. package/dist/src/ui/commands/quitCommand.test.d.ts +6 -0
  186. package/dist/src/ui/commands/quitCommand.test.js +50 -0
  187. package/dist/src/ui/commands/quitCommand.test.js.map +1 -0
  188. package/dist/src/ui/commands/restoreCommand.test.d.ts +6 -0
  189. package/dist/src/ui/commands/restoreCommand.test.js +190 -0
  190. package/dist/src/ui/commands/restoreCommand.test.js.map +1 -0
  191. package/dist/src/ui/commands/settingsCommand.test.d.ts +6 -0
  192. package/dist/src/ui/commands/settingsCommand.test.js +30 -0
  193. package/dist/src/ui/commands/settingsCommand.test.js.map +1 -0
  194. package/dist/src/ui/commands/setupGithubCommand.test.js +1 -2
  195. package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
  196. package/dist/src/ui/commands/statsCommand.js +3 -3
  197. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  198. package/dist/src/ui/commands/statsCommand.test.d.ts +6 -0
  199. package/dist/src/ui/commands/statsCommand.test.js +53 -0
  200. package/dist/src/ui/commands/statsCommand.test.js.map +1 -0
  201. package/dist/src/ui/commands/terminalSetupCommand.test.d.ts +6 -0
  202. package/dist/src/ui/commands/terminalSetupCommand.test.js +66 -0
  203. package/dist/src/ui/commands/terminalSetupCommand.test.js.map +1 -0
  204. package/dist/src/ui/commands/themeCommand.js +1 -1
  205. package/dist/src/ui/commands/themeCommand.test.d.ts +6 -0
  206. package/dist/src/ui/commands/themeCommand.test.js +32 -0
  207. package/dist/src/ui/commands/themeCommand.test.js.map +1 -0
  208. package/dist/src/ui/commands/toolsCommand.js +1 -1
  209. package/dist/src/ui/commands/toolsCommand.test.d.ts +6 -0
  210. package/dist/src/ui/commands/toolsCommand.test.js +100 -0
  211. package/dist/src/ui/commands/toolsCommand.test.js.map +1 -0
  212. package/dist/src/ui/commands/vimCommand.js +1 -1
  213. package/dist/src/ui/components/Composer.js +5 -3
  214. package/dist/src/ui/components/Composer.js.map +1 -1
  215. package/dist/src/ui/components/Composer.test.js +16 -1
  216. package/dist/src/ui/components/Composer.test.js.map +1 -1
  217. package/dist/src/ui/components/ContextSummaryDisplay.d.ts +0 -1
  218. package/dist/src/ui/components/ContextSummaryDisplay.js +2 -12
  219. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  220. package/dist/src/ui/components/ContextSummaryDisplay.test.d.ts +6 -0
  221. package/dist/src/ui/components/ContextSummaryDisplay.test.js +66 -0
  222. package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +1 -0
  223. package/dist/src/ui/components/DialogManager.js +1 -5
  224. package/dist/src/ui/components/DialogManager.js.map +1 -1
  225. package/dist/src/ui/components/EditorSettingsDialog.js +1 -1
  226. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  227. package/dist/src/ui/components/FolderTrustDialog.test.js +7 -3
  228. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  229. package/dist/src/ui/components/Footer.js +1 -1
  230. package/dist/src/ui/components/Footer.js.map +1 -1
  231. package/dist/src/ui/components/Footer.test.d.ts +6 -0
  232. package/dist/src/ui/components/Footer.test.js +231 -0
  233. package/dist/src/ui/components/Footer.test.js.map +1 -0
  234. package/dist/src/ui/components/InputPrompt.d.ts +4 -0
  235. package/dist/src/ui/components/InputPrompt.js +53 -4
  236. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  237. package/dist/src/ui/components/InputPrompt.test.d.ts +6 -0
  238. package/dist/src/ui/components/InputPrompt.test.js +1716 -0
  239. package/dist/src/ui/components/InputPrompt.test.js.map +1 -0
  240. package/dist/src/ui/components/ModelStatsDisplay.test.d.ts +6 -0
  241. package/dist/src/ui/components/ModelStatsDisplay.test.js +285 -0
  242. package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -0
  243. package/dist/src/ui/components/PermissionsModifyTrustDialog.js +22 -18
  244. package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -1
  245. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +10 -2
  246. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
  247. package/dist/src/ui/components/QueuedMessageDisplay.js +3 -3
  248. package/dist/src/ui/components/QueuedMessageDisplay.js.map +1 -1
  249. package/dist/src/ui/components/QueuedMessageDisplay.test.js +4 -0
  250. package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -1
  251. package/dist/src/ui/components/RawMarkdownIndicator.d.ts +7 -0
  252. package/dist/src/ui/components/RawMarkdownIndicator.js +8 -0
  253. package/dist/src/ui/components/RawMarkdownIndicator.js.map +1 -0
  254. package/dist/src/ui/components/SessionSummaryDisplay.test.d.ts +6 -0
  255. package/dist/src/ui/components/SessionSummaryDisplay.test.js +74 -0
  256. package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -0
  257. package/dist/src/ui/components/SettingsDialog.js +8 -8
  258. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  259. package/dist/src/ui/components/SettingsDialog.test.js +188 -56
  260. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  261. package/dist/src/ui/components/StatsDisplay.test.d.ts +6 -0
  262. package/dist/src/ui/components/StatsDisplay.test.js +351 -0
  263. package/dist/src/ui/components/StatsDisplay.test.js.map +1 -0
  264. package/dist/src/ui/components/ThemeDialog.d.ts +4 -2
  265. package/dist/src/ui/components/ThemeDialog.js +3 -3
  266. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  267. package/dist/src/ui/components/ThemeDialog.test.js +13 -0
  268. package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
  269. package/dist/src/ui/components/ToolStatsDisplay.test.d.ts +6 -0
  270. package/dist/src/ui/components/ToolStatsDisplay.test.js +227 -0
  271. package/dist/src/ui/components/ToolStatsDisplay.test.js.map +1 -0
  272. package/dist/src/ui/components/messages/GeminiMessage.js +3 -1
  273. package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
  274. package/dist/src/ui/components/messages/GeminiMessage.test.d.ts +6 -0
  275. package/dist/src/ui/components/messages/GeminiMessage.test.js +35 -0
  276. package/dist/src/ui/components/messages/GeminiMessage.test.js.map +1 -0
  277. package/dist/src/ui/components/messages/GeminiMessageContent.js +3 -1
  278. package/dist/src/ui/components/messages/GeminiMessageContent.js.map +1 -1
  279. package/dist/src/ui/components/messages/Todo.d.ts +7 -0
  280. package/dist/src/ui/components/messages/Todo.js +59 -0
  281. package/dist/src/ui/components/messages/Todo.js.map +1 -0
  282. package/dist/src/ui/components/messages/Todo.test.d.ts +6 -0
  283. package/dist/src/ui/components/messages/Todo.test.js +113 -0
  284. package/dist/src/ui/components/messages/Todo.test.js.map +1 -0
  285. package/dist/src/ui/components/messages/ToolGroupMessage.js +1 -1
  286. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  287. package/dist/src/ui/components/messages/ToolMessage.js +8 -3
  288. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  289. package/dist/src/ui/components/messages/ToolMessage.test.js +2 -2
  290. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
  291. package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.d.ts +6 -0
  292. package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js +30 -0
  293. package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js.map +1 -0
  294. package/dist/src/ui/components/messages/UserShellMessage.js +1 -1
  295. package/dist/src/ui/components/messages/UserShellMessage.js.map +1 -1
  296. package/dist/src/ui/components/shared/BaseSelectionList.test.js +1 -1
  297. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
  298. package/dist/src/ui/components/shared/text-buffer.test.d.ts +6 -0
  299. package/dist/src/ui/components/shared/text-buffer.test.js +1554 -0
  300. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -0
  301. package/dist/src/ui/components/shared/vim-buffer-actions.test.d.ts +6 -0
  302. package/dist/src/ui/components/shared/vim-buffer-actions.test.js +951 -0
  303. package/dist/src/ui/components/shared/vim-buffer-actions.test.js.map +1 -0
  304. package/dist/src/ui/components/views/McpStatus.d.ts +0 -1
  305. package/dist/src/ui/components/views/McpStatus.js +2 -2
  306. package/dist/src/ui/components/views/McpStatus.js.map +1 -1
  307. package/dist/src/ui/components/views/McpStatus.test.js +0 -5
  308. package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
  309. package/dist/src/ui/components/views/ToolsList.test.js +4 -4
  310. package/dist/src/ui/components/views/ToolsList.test.js.map +1 -1
  311. package/dist/src/ui/contexts/KeypressContext.d.ts +1 -0
  312. package/dist/src/ui/contexts/KeypressContext.js +176 -50
  313. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  314. package/dist/src/ui/contexts/KeypressContext.test.js +413 -14
  315. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  316. package/dist/src/ui/contexts/SessionContext.test.d.ts +6 -0
  317. package/dist/src/ui/contexts/SessionContext.test.js +177 -0
  318. package/dist/src/ui/contexts/SessionContext.test.js.map +1 -0
  319. package/dist/src/ui/contexts/UIActionsContext.d.ts +5 -4
  320. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  321. package/dist/src/ui/contexts/UIStateContext.d.ts +3 -3
  322. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  323. package/dist/src/ui/hooks/slashCommandProcessor.test.d.ts +6 -0
  324. package/dist/src/ui/hooks/slashCommandProcessor.test.js +779 -0
  325. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -0
  326. package/dist/src/ui/hooks/useAtCompletion.js +2 -2
  327. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  328. package/dist/src/ui/hooks/useAtCompletion.test.d.ts +6 -0
  329. package/dist/src/ui/hooks/useAtCompletion.test.js +385 -0
  330. package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -0
  331. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +0 -1
  332. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
  333. package/dist/src/ui/hooks/useCommandCompletion.d.ts +1 -1
  334. package/dist/src/ui/hooks/useCommandCompletion.js +5 -3
  335. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
  336. package/dist/src/ui/hooks/useCommandCompletion.test.d.ts +6 -0
  337. package/dist/src/ui/hooks/useCommandCompletion.test.js +375 -0
  338. package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -0
  339. package/dist/src/ui/hooks/useConsoleMessages.test.d.ts +6 -0
  340. package/dist/src/ui/hooks/useConsoleMessages.test.js +110 -0
  341. package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -0
  342. package/dist/src/ui/hooks/useExtensionUpdates.test.js +3 -3
  343. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
  344. package/dist/src/ui/hooks/useFocus.test.d.ts +6 -0
  345. package/dist/src/ui/hooks/useFocus.test.js +115 -0
  346. package/dist/src/ui/hooks/useFocus.test.js.map +1 -0
  347. package/dist/src/ui/hooks/useFolderTrust.test.d.ts +6 -0
  348. package/dist/src/ui/hooks/useFolderTrust.test.js +164 -0
  349. package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -0
  350. package/dist/src/ui/hooks/useGeminiStream.js +33 -31
  351. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  352. package/dist/src/ui/hooks/useGeminiStream.test.d.ts +6 -0
  353. package/dist/src/ui/hooks/useGeminiStream.test.js +1936 -0
  354. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -0
  355. package/dist/src/ui/hooks/useKeypress.test.d.ts +6 -0
  356. package/dist/src/ui/hooks/useKeypress.test.js +234 -0
  357. package/dist/src/ui/hooks/useKeypress.test.js.map +1 -0
  358. package/dist/src/ui/hooks/useLoadingIndicator.test.js +5 -0
  359. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  360. package/dist/src/ui/hooks/useMessageQueue.d.ts +1 -0
  361. package/dist/src/ui/hooks/useMessageQueue.js +14 -0
  362. package/dist/src/ui/hooks/useMessageQueue.js.map +1 -1
  363. package/dist/src/ui/hooks/useMessageQueue.test.js +121 -0
  364. package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
  365. package/dist/src/ui/hooks/usePhraseCycler.d.ts +1 -0
  366. package/dist/src/ui/hooks/usePhraseCycler.js +156 -5
  367. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  368. package/dist/src/ui/hooks/usePhraseCycler.test.d.ts +6 -0
  369. package/dist/src/ui/hooks/usePhraseCycler.test.js +155 -0
  370. package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -0
  371. package/dist/src/ui/hooks/useThemeCommand.d.ts +2 -1
  372. package/dist/src/ui/hooks/useThemeCommand.js +6 -0
  373. package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
  374. package/dist/src/ui/hooks/useToolScheduler.test.js +3 -0
  375. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  376. package/dist/src/ui/hooks/vim.test.d.ts +6 -0
  377. package/dist/src/ui/hooks/vim.test.js +1389 -0
  378. package/dist/src/ui/hooks/vim.test.js.map +1 -0
  379. package/dist/src/ui/keyMatchers.test.js +9 -3
  380. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  381. package/dist/src/ui/themes/theme.test.d.ts +6 -0
  382. package/dist/src/ui/themes/theme.test.js +85 -0
  383. package/dist/src/ui/themes/theme.test.js.map +1 -0
  384. package/dist/src/ui/types.d.ts +0 -1
  385. package/dist/src/ui/types.js.map +1 -1
  386. package/dist/src/ui/utils/CodeColorizer.d.ts +1 -1
  387. package/dist/src/ui/utils/CodeColorizer.js +4 -2
  388. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  389. package/dist/src/ui/utils/MarkdownDisplay.d.ts +1 -0
  390. package/dist/src/ui/utils/MarkdownDisplay.js +8 -1
  391. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  392. package/dist/src/ui/utils/commandUtils.js +18 -2
  393. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  394. package/dist/src/ui/utils/commandUtils.test.js +61 -6
  395. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  396. package/dist/src/ui/utils/updateCheck.d.ts +2 -1
  397. package/dist/src/ui/utils/updateCheck.js +4 -1
  398. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  399. package/dist/src/ui/utils/updateCheck.test.js +25 -10
  400. package/dist/src/ui/utils/updateCheck.test.js.map +1 -1
  401. package/dist/src/utils/errors.d.ts +1 -0
  402. package/dist/src/utils/errors.js +66 -5
  403. package/dist/src/utils/errors.js.map +1 -1
  404. package/dist/src/validateNonInterActiveAuth.test.d.ts +6 -0
  405. package/dist/src/validateNonInterActiveAuth.test.js +336 -0
  406. package/dist/src/validateNonInterActiveAuth.test.js.map +1 -0
  407. package/dist/src/zed-integration/zedIntegration.js +1 -2
  408. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  409. package/dist/tsconfig.tsbuildinfo +1 -1
  410. package/package.json +3 -3
  411. package/dist/google-gemini-cli-0.10.0-preview.1.tgz +0 -0
  412. package/dist/src/ui/components/WorkspaceMigrationDialog.d.ts +0 -11
  413. package/dist/src/ui/components/WorkspaceMigrationDialog.js +0 -44
  414. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +0 -1
  415. package/dist/src/ui/hooks/useWorkspaceMigration.d.ts +0 -13
  416. package/dist/src/ui/hooks/useWorkspaceMigration.js +0 -59
  417. package/dist/src/ui/hooks/useWorkspaceMigration.js.map +0 -1
@@ -0,0 +1,351 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest';
7
+ import * as fs from 'node:fs';
8
+ import * as path from 'node:path';
9
+ import { tmpdir } from 'node:os';
10
+ import { Config, DEFAULT_FILE_FILTERING_OPTIONS, } from '@google/gemini-cli-core';
11
+ import { http, HttpResponse } from 'msw';
12
+ import { setupServer } from 'msw/node';
13
+ export const server = setupServer();
14
+ // TODO(richieforeman): Consider moving this to test setup globally.
15
+ beforeAll(() => {
16
+ server.listen({});
17
+ });
18
+ afterEach(() => {
19
+ server.resetHandlers();
20
+ });
21
+ afterAll(() => {
22
+ server.close();
23
+ });
24
+ const CLEARCUT_URL = 'https://play.googleapis.com/log';
25
+ // Mock file discovery service and tool registry
26
+ vi.mock('@google/gemini-cli-core', async () => {
27
+ const actual = await vi.importActual('@google/gemini-cli-core');
28
+ return {
29
+ ...actual,
30
+ FileDiscoveryService: vi.fn().mockImplementation(() => ({
31
+ initialize: vi.fn(),
32
+ })),
33
+ createToolRegistry: vi.fn().mockResolvedValue({}),
34
+ };
35
+ });
36
+ describe('Configuration Integration Tests', () => {
37
+ let tempDir;
38
+ beforeEach(() => {
39
+ server.resetHandlers(http.post(CLEARCUT_URL, () => HttpResponse.text()));
40
+ tempDir = fs.mkdtempSync(path.join(tmpdir(), 'gemini-cli-test-'));
41
+ vi.stubEnv('GEMINI_API_KEY', 'test-api-key');
42
+ vi.clearAllMocks();
43
+ });
44
+ afterEach(() => {
45
+ vi.unstubAllEnvs();
46
+ if (fs.existsSync(tempDir)) {
47
+ fs.rmSync(tempDir, { recursive: true });
48
+ }
49
+ });
50
+ describe('File Filtering Configuration', () => {
51
+ it('should load default file filtering settings', async () => {
52
+ const configParams = {
53
+ sessionId: 'test-session',
54
+ cwd: '/tmp',
55
+ model: 'test-model',
56
+ embeddingModel: 'test-embedding-model',
57
+ sandbox: undefined,
58
+ targetDir: tempDir,
59
+ debugMode: false,
60
+ };
61
+ const config = new Config(configParams);
62
+ expect(config.getFileFilteringRespectGitIgnore()).toBe(DEFAULT_FILE_FILTERING_OPTIONS.respectGitIgnore);
63
+ });
64
+ it('should load custom file filtering settings from configuration', async () => {
65
+ const configParams = {
66
+ sessionId: 'test-session',
67
+ cwd: '/tmp',
68
+ model: 'test-model',
69
+ embeddingModel: 'test-embedding-model',
70
+ sandbox: undefined,
71
+ targetDir: tempDir,
72
+ debugMode: false,
73
+ fileFiltering: {
74
+ respectGitIgnore: false,
75
+ },
76
+ };
77
+ const config = new Config(configParams);
78
+ expect(config.getFileFilteringRespectGitIgnore()).toBe(false);
79
+ });
80
+ it('should merge user and workspace file filtering settings', async () => {
81
+ const configParams = {
82
+ sessionId: 'test-session',
83
+ cwd: '/tmp',
84
+ model: 'test-model',
85
+ embeddingModel: 'test-embedding-model',
86
+ sandbox: undefined,
87
+ targetDir: tempDir,
88
+ debugMode: false,
89
+ fileFiltering: {
90
+ respectGitIgnore: true,
91
+ },
92
+ };
93
+ const config = new Config(configParams);
94
+ expect(config.getFileFilteringRespectGitIgnore()).toBe(true);
95
+ });
96
+ });
97
+ describe('Configuration Integration', () => {
98
+ it('should handle partial configuration objects gracefully', async () => {
99
+ const configParams = {
100
+ sessionId: 'test-session',
101
+ cwd: '/tmp',
102
+ model: 'test-model',
103
+ embeddingModel: 'test-embedding-model',
104
+ sandbox: undefined,
105
+ targetDir: tempDir,
106
+ debugMode: false,
107
+ fileFiltering: {
108
+ respectGitIgnore: false,
109
+ },
110
+ };
111
+ const config = new Config(configParams);
112
+ // Specified settings should be applied
113
+ expect(config.getFileFilteringRespectGitIgnore()).toBe(false);
114
+ });
115
+ it('should handle empty configuration objects gracefully', async () => {
116
+ const configParams = {
117
+ sessionId: 'test-session',
118
+ cwd: '/tmp',
119
+ model: 'test-model',
120
+ embeddingModel: 'test-embedding-model',
121
+ sandbox: undefined,
122
+ targetDir: tempDir,
123
+ debugMode: false,
124
+ fileFiltering: {},
125
+ };
126
+ const config = new Config(configParams);
127
+ // All settings should use defaults
128
+ expect(config.getFileFilteringRespectGitIgnore()).toBe(DEFAULT_FILE_FILTERING_OPTIONS.respectGitIgnore);
129
+ });
130
+ it('should handle missing configuration sections gracefully', async () => {
131
+ const configParams = {
132
+ sessionId: 'test-session',
133
+ cwd: '/tmp',
134
+ model: 'test-model',
135
+ embeddingModel: 'test-embedding-model',
136
+ sandbox: undefined,
137
+ targetDir: tempDir,
138
+ debugMode: false,
139
+ // Missing fileFiltering configuration
140
+ };
141
+ const config = new Config(configParams);
142
+ // All git-aware settings should use defaults
143
+ expect(config.getFileFilteringRespectGitIgnore()).toBe(DEFAULT_FILE_FILTERING_OPTIONS.respectGitIgnore);
144
+ });
145
+ });
146
+ describe('Real-world Configuration Scenarios', () => {
147
+ it('should handle a security-focused configuration', async () => {
148
+ const configParams = {
149
+ sessionId: 'test-session',
150
+ cwd: '/tmp',
151
+ model: 'test-model',
152
+ embeddingModel: 'test-embedding-model',
153
+ sandbox: undefined,
154
+ targetDir: tempDir,
155
+ debugMode: false,
156
+ fileFiltering: {
157
+ respectGitIgnore: true,
158
+ },
159
+ };
160
+ const config = new Config(configParams);
161
+ expect(config.getFileFilteringRespectGitIgnore()).toBe(true);
162
+ });
163
+ it('should handle a CI/CD environment configuration', async () => {
164
+ const configParams = {
165
+ sessionId: 'test-session',
166
+ cwd: '/tmp',
167
+ model: 'test-model',
168
+ embeddingModel: 'test-embedding-model',
169
+ sandbox: undefined,
170
+ targetDir: tempDir,
171
+ debugMode: false,
172
+ fileFiltering: {
173
+ respectGitIgnore: false,
174
+ }, // CI might need to see all files
175
+ };
176
+ const config = new Config(configParams);
177
+ expect(config.getFileFilteringRespectGitIgnore()).toBe(false);
178
+ });
179
+ });
180
+ describe('Checkpointing Configuration', () => {
181
+ it('should enable checkpointing when the setting is true', async () => {
182
+ const configParams = {
183
+ sessionId: 'test-session',
184
+ cwd: '/tmp',
185
+ model: 'test-model',
186
+ embeddingModel: 'test-embedding-model',
187
+ sandbox: undefined,
188
+ targetDir: tempDir,
189
+ debugMode: false,
190
+ checkpointing: true,
191
+ };
192
+ const config = new Config(configParams);
193
+ expect(config.getCheckpointingEnabled()).toBe(true);
194
+ });
195
+ });
196
+ describe('Extension Context Files', () => {
197
+ it('should have an empty array for extension context files by default', () => {
198
+ const configParams = {
199
+ sessionId: 'test-session',
200
+ cwd: '/tmp',
201
+ model: 'test-model',
202
+ embeddingModel: 'test-embedding-model',
203
+ sandbox: undefined,
204
+ targetDir: tempDir,
205
+ debugMode: false,
206
+ };
207
+ const config = new Config(configParams);
208
+ expect(config.getExtensionContextFilePaths()).toEqual([]);
209
+ });
210
+ it('should correctly store and return extension context file paths', () => {
211
+ const contextFiles = ['/path/to/file1.txt', '/path/to/file2.js'];
212
+ const configParams = {
213
+ sessionId: 'test-session',
214
+ cwd: '/tmp',
215
+ model: 'test-model',
216
+ embeddingModel: 'test-embedding-model',
217
+ sandbox: undefined,
218
+ targetDir: tempDir,
219
+ debugMode: false,
220
+ extensionContextFilePaths: contextFiles,
221
+ };
222
+ const config = new Config(configParams);
223
+ expect(config.getExtensionContextFilePaths()).toEqual(contextFiles);
224
+ });
225
+ });
226
+ describe('Approval Mode Integration Tests', () => {
227
+ let parseArguments;
228
+ beforeEach(async () => {
229
+ // Import the argument parsing function for integration testing
230
+ const { parseArguments: parseArgs } = await import('./config.js');
231
+ parseArguments = parseArgs;
232
+ });
233
+ it('should parse --approval-mode=auto_edit correctly through the full argument parsing flow', async () => {
234
+ const originalArgv = process.argv;
235
+ try {
236
+ process.argv = [
237
+ 'node',
238
+ 'script.js',
239
+ '--approval-mode',
240
+ 'auto_edit',
241
+ '-p',
242
+ 'test',
243
+ ];
244
+ const argv = await parseArguments({});
245
+ // Verify that the argument was parsed correctly
246
+ expect(argv.approvalMode).toBe('auto_edit');
247
+ expect(argv.prompt).toBe('test');
248
+ expect(argv.yolo).toBe(false);
249
+ }
250
+ finally {
251
+ process.argv = originalArgv;
252
+ }
253
+ });
254
+ it('should parse --approval-mode=yolo correctly through the full argument parsing flow', async () => {
255
+ const originalArgv = process.argv;
256
+ try {
257
+ process.argv = [
258
+ 'node',
259
+ 'script.js',
260
+ '--approval-mode',
261
+ 'yolo',
262
+ '-p',
263
+ 'test',
264
+ ];
265
+ const argv = await parseArguments({});
266
+ expect(argv.approvalMode).toBe('yolo');
267
+ expect(argv.prompt).toBe('test');
268
+ expect(argv.yolo).toBe(false); // Should NOT be set when using --approval-mode
269
+ }
270
+ finally {
271
+ process.argv = originalArgv;
272
+ }
273
+ });
274
+ it('should parse --approval-mode=default correctly through the full argument parsing flow', async () => {
275
+ const originalArgv = process.argv;
276
+ try {
277
+ process.argv = [
278
+ 'node',
279
+ 'script.js',
280
+ '--approval-mode',
281
+ 'default',
282
+ '-p',
283
+ 'test',
284
+ ];
285
+ const argv = await parseArguments({});
286
+ expect(argv.approvalMode).toBe('default');
287
+ expect(argv.prompt).toBe('test');
288
+ expect(argv.yolo).toBe(false);
289
+ }
290
+ finally {
291
+ process.argv = originalArgv;
292
+ }
293
+ });
294
+ it('should parse legacy --yolo flag correctly', async () => {
295
+ const originalArgv = process.argv;
296
+ try {
297
+ process.argv = ['node', 'script.js', '--yolo', '-p', 'test'];
298
+ const argv = await parseArguments({});
299
+ expect(argv.yolo).toBe(true);
300
+ expect(argv.approvalMode).toBeUndefined(); // Should NOT be set when using --yolo
301
+ expect(argv.prompt).toBe('test');
302
+ }
303
+ finally {
304
+ process.argv = originalArgv;
305
+ }
306
+ });
307
+ it('should reject invalid approval mode values during argument parsing', async () => {
308
+ const originalArgv = process.argv;
309
+ try {
310
+ process.argv = ['node', 'script.js', '--approval-mode', 'invalid_mode'];
311
+ // Should throw during argument parsing due to yargs validation
312
+ await expect(parseArguments({})).rejects.toThrow();
313
+ }
314
+ finally {
315
+ process.argv = originalArgv;
316
+ }
317
+ });
318
+ it('should reject conflicting --yolo and --approval-mode flags', async () => {
319
+ const originalArgv = process.argv;
320
+ try {
321
+ process.argv = [
322
+ 'node',
323
+ 'script.js',
324
+ '--yolo',
325
+ '--approval-mode',
326
+ 'default',
327
+ ];
328
+ // Should throw during argument parsing due to conflict validation
329
+ await expect(parseArguments({})).rejects.toThrow();
330
+ }
331
+ finally {
332
+ process.argv = originalArgv;
333
+ }
334
+ });
335
+ it('should handle backward compatibility with mixed scenarios', async () => {
336
+ const originalArgv = process.argv;
337
+ try {
338
+ // Test that no approval mode arguments defaults to no flags set
339
+ process.argv = ['node', 'script.js', '-p', 'test'];
340
+ const argv = await parseArguments({});
341
+ expect(argv.approvalMode).toBeUndefined();
342
+ expect(argv.yolo).toBe(false);
343
+ expect(argv.prompt).toBe('test');
344
+ }
345
+ finally {
346
+ process.argv = originalArgv;
347
+ }
348
+ });
349
+ });
350
+ });
351
+ //# sourceMappingURL=config.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.integration.test.js","sourceRoot":"","sources":["../../../src/config/config.integration.test.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import { hideBin } from 'yargs/helpers';
11
11
  import process from 'node:process';
12
12
  import { mcpCommand } from '../commands/mcp.js';
13
13
  import { extensionsCommand } from '../commands/extensions.js';
14
- import { Config, loadServerHierarchicalMemory, setGeminiMdFilename as setServerGeminiMdFilename, getCurrentGeminiMdFilename, ApprovalMode, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, FileDiscoveryService, ShellTool, EditTool, WRITE_FILE_TOOL_NAME, SHELL_TOOL_NAMES, resolveTelemetrySettings, FatalConfigError, getPty, } from '@google/gemini-cli-core';
14
+ import { Config, loadServerHierarchicalMemory, setGeminiMdFilename as setServerGeminiMdFilename, getCurrentGeminiMdFilename, ApprovalMode, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, FileDiscoveryService, WRITE_FILE_TOOL_NAME, SHELL_TOOL_NAMES, SHELL_TOOL_NAME, resolveTelemetrySettings, FatalConfigError, getPty, EDIT_TOOL_NAME, } from '@google/gemini-cli-core';
15
15
  import { annotateActiveExtensions } from './extension.js';
16
16
  import { getCliVersion } from '../utils/version.js';
17
17
  import { loadSandboxConfig } from './sandboxConfig.js';
@@ -34,49 +34,12 @@ export async function parseArguments(settings) {
34
34
  .locale('en')
35
35
  .scriptName('gemini')
36
36
  .usage('Usage: gemini [options] [command]\n\nGemini CLI - Launch an interactive CLI, use -p/--prompt for non-interactive mode')
37
- .option('telemetry', {
38
- type: 'boolean',
39
- description: 'Enable telemetry? This flag specifically controls if telemetry is sent. Other --telemetry-* flags set specific values but do not enable telemetry on their own.',
40
- })
41
- .option('telemetry-target', {
42
- type: 'string',
43
- choices: ['local', 'gcp'],
44
- description: 'Set the telemetry target (local or gcp). Overrides settings files.',
45
- })
46
- .option('telemetry-otlp-endpoint', {
47
- type: 'string',
48
- description: 'Set the OTLP endpoint for telemetry. Overrides environment variables and settings files.',
49
- })
50
- .option('telemetry-otlp-protocol', {
51
- type: 'string',
52
- choices: ['grpc', 'http'],
53
- description: 'Set the OTLP protocol for telemetry (grpc or http). Overrides settings files.',
54
- })
55
- .option('telemetry-log-prompts', {
56
- type: 'boolean',
57
- description: 'Enable or disable logging of user prompts for telemetry. Overrides settings files.',
58
- })
59
- .option('telemetry-outfile', {
60
- type: 'string',
61
- description: 'Redirect all telemetry output to the specified file.',
62
- })
63
- .deprecateOption('telemetry', 'Use the "telemetry.enabled" setting in settings.json instead. This flag will be removed in a future version.')
64
- .deprecateOption('telemetry-target', 'Use the "telemetry.target" setting in settings.json instead. This flag will be removed in a future version.')
65
- .deprecateOption('telemetry-otlp-endpoint', 'Use the "telemetry.otlpEndpoint" setting in settings.json instead. This flag will be removed in a future version.')
66
- .deprecateOption('telemetry-otlp-protocol', 'Use the "telemetry.otlpProtocol" setting in settings.json instead. This flag will be removed in a future version.')
67
- .deprecateOption('telemetry-log-prompts', 'Use the "telemetry.logPrompts" setting in settings.json instead. This flag will be removed in a future version.')
68
- .deprecateOption('telemetry-outfile', 'Use the "telemetry.outfile" setting in settings.json instead. This flag will be removed in a future version.')
69
37
  .option('debug', {
70
38
  alias: 'd',
71
39
  type: 'boolean',
72
40
  description: 'Run in debug mode?',
73
41
  default: false,
74
42
  })
75
- .option('proxy', {
76
- type: 'string',
77
- description: 'Proxy for gemini client, like schema://user:password@host:port',
78
- })
79
- .deprecateOption('proxy', 'Use the "proxy" setting in settings.json instead. This flag will be removed in a future version.')
80
43
  .command('$0 [query..]', 'Launch Gemini CLI', (yargsInstance) => yargsInstance
81
44
  .positional('query', {
82
45
  description: 'Positional prompt. Defaults to one-shot; use -i/--prompt-interactive for interactive.',
@@ -84,37 +47,25 @@ export async function parseArguments(settings) {
84
47
  .option('model', {
85
48
  alias: 'm',
86
49
  type: 'string',
50
+ nargs: 1,
87
51
  description: `Model`,
88
52
  })
89
53
  .option('prompt', {
90
54
  alias: 'p',
91
55
  type: 'string',
56
+ nargs: 1,
92
57
  description: 'Prompt. Appended to input on stdin (if any).',
93
58
  })
94
59
  .option('prompt-interactive', {
95
60
  alias: 'i',
96
61
  type: 'string',
62
+ nargs: 1,
97
63
  description: 'Execute the provided prompt and continue in interactive mode',
98
64
  })
99
65
  .option('sandbox', {
100
66
  alias: 's',
101
67
  type: 'boolean',
102
68
  description: 'Run in sandbox?',
103
- })
104
- .option('sandbox-image', {
105
- type: 'string',
106
- description: 'Sandbox image URI.',
107
- })
108
- .option('all-files', {
109
- alias: ['a'],
110
- type: 'boolean',
111
- description: 'Include ALL files in context?',
112
- default: false,
113
- })
114
- .option('show-memory-usage', {
115
- type: 'boolean',
116
- description: 'Show memory usage in status bar',
117
- default: false,
118
69
  })
119
70
  .option('yolo', {
120
71
  alias: 'y',
@@ -124,14 +75,9 @@ export async function parseArguments(settings) {
124
75
  })
125
76
  .option('approval-mode', {
126
77
  type: 'string',
78
+ nargs: 1,
127
79
  choices: ['default', 'auto_edit', 'yolo'],
128
80
  description: 'Set the approval mode: default (prompt for approval), auto_edit (auto-approve edit tools), yolo (auto-approve all tools)',
129
- })
130
- .option('checkpointing', {
131
- alias: 'c',
132
- type: 'boolean',
133
- description: 'Enables checkpointing of file edits',
134
- default: false,
135
81
  })
136
82
  .option('experimental-acp', {
137
83
  type: 'boolean',
@@ -140,6 +86,7 @@ export async function parseArguments(settings) {
140
86
  .option('allowed-mcp-server-names', {
141
87
  type: 'array',
142
88
  string: true,
89
+ nargs: 1,
143
90
  description: 'Allowed MCP server names',
144
91
  coerce: (mcpServerNames) =>
145
92
  // Handle comma-separated values
@@ -148,6 +95,7 @@ export async function parseArguments(settings) {
148
95
  .option('allowed-tools', {
149
96
  type: 'array',
150
97
  string: true,
98
+ nargs: 1,
151
99
  description: 'Tools that are allowed to run without confirmation',
152
100
  coerce: (tools) =>
153
101
  // Handle comma-separated values
@@ -171,6 +119,7 @@ export async function parseArguments(settings) {
171
119
  .option('include-directories', {
172
120
  type: 'array',
173
121
  string: true,
122
+ nargs: 1,
174
123
  description: 'Additional directories to include in the workspace (comma-separated or multiple --include-directories)',
175
124
  coerce: (dirs) =>
176
125
  // Handle comma-separated values
@@ -183,13 +132,10 @@ export async function parseArguments(settings) {
183
132
  .option('output-format', {
184
133
  alias: 'o',
185
134
  type: 'string',
135
+ nargs: 1,
186
136
  description: 'The format of the CLI output.',
187
- choices: ['text', 'json'],
137
+ choices: ['text', 'json', 'stream-json'],
188
138
  })
189
- .deprecateOption('show-memory-usage', 'Use the "ui.showMemoryUsage" setting in settings.json instead. This flag will be removed in a future version.')
190
- .deprecateOption('sandbox-image', 'Use the "tools.sandbox" setting in settings.json instead. This flag will be removed in a future version.')
191
- .deprecateOption('checkpointing', 'Use the "general.checkpointing.enabled" setting in settings.json instead. This flag will be removed in a future version.')
192
- .deprecateOption('all-files', 'Use @ includes in the application instead. This flag will be removed in a future version.')
193
139
  .deprecateOption('prompt', 'Use the positional prompt instead. This flag will be removed in a future version.')
194
140
  // Ensure validation flows through .fail() for clean UX
195
141
  .fail((msg, err, yargs) => {
@@ -292,7 +238,7 @@ export async function loadHierarchicalGeminiMemory(currentWorkingDirectory, incl
292
238
  */
293
239
  function createToolExclusionFilter(allowedTools, allowedToolsSet) {
294
240
  return (tool) => {
295
- if (tool === ShellTool.Name) {
241
+ if (tool === SHELL_TOOL_NAME) {
296
242
  // If any of the allowed tools is ShellTool (even with subcommands), don't exclude it.
297
243
  return !allowedTools.some((allowed) => SHELL_TOOL_NAMES.some((shellName) => allowed.startsWith(shellName)));
298
244
  }
@@ -368,7 +314,6 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
368
314
  let telemetrySettings;
369
315
  try {
370
316
  telemetrySettings = await resolveTelemetrySettings({
371
- argv,
372
317
  env: process.env,
373
318
  settings: settings.telemetry,
374
319
  });
@@ -390,11 +335,11 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
390
335
  const extraExcludes = [];
391
336
  if (!interactive && !argv.experimentalAcp) {
392
337
  const defaultExcludes = [
393
- ShellTool.Name,
394
- EditTool.Name,
338
+ SHELL_TOOL_NAME,
339
+ EDIT_TOOL_NAME,
395
340
  WRITE_FILE_TOOL_NAME,
396
341
  ];
397
- const autoEditExcludes = [ShellTool.Name];
342
+ const autoEditExcludes = [SHELL_TOOL_NAME];
398
343
  const toolExclusionFilter = createToolExclusionFilter(allowedTools, allowedToolsSet);
399
344
  switch (approvalMode) {
400
345
  case ApprovalMode.DEFAULT:
@@ -451,7 +396,6 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
451
396
  loadMemoryFromIncludeDirectories: settings.context?.loadMemoryFromIncludeDirectories || false,
452
397
  debugMode,
453
398
  question,
454
- fullContext: argv.allFiles || false,
455
399
  coreTools: settings.tools?.core || undefined,
456
400
  allowedTools: allowedTools.length > 0 ? allowedTools : undefined,
457
401
  policyEngineConfig,
@@ -464,7 +408,7 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
464
408
  geminiMdFileCount: fileCount,
465
409
  geminiMdFilePaths: filePaths,
466
410
  approvalMode,
467
- showMemoryUsage: argv.showMemoryUsage || settings.ui?.showMemoryUsage || false,
411
+ showMemoryUsage: settings.ui?.showMemoryUsage || false,
468
412
  accessibility: {
469
413
  ...settings.ui?.accessibility,
470
414
  screenReader,
@@ -472,9 +416,8 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
472
416
  telemetry: telemetrySettings,
473
417
  usageStatisticsEnabled: settings.privacy?.usageStatisticsEnabled ?? true,
474
418
  fileFiltering,
475
- checkpointing: argv.checkpointing || settings.general?.checkpointing?.enabled,
476
- proxy: argv.proxy ||
477
- process.env['HTTPS_PROXY'] ||
419
+ checkpointing: settings.general?.checkpointing?.enabled,
420
+ proxy: process.env['HTTPS_PROXY'] ||
478
421
  process.env['https_proxy'] ||
479
422
  process.env['HTTP_PROXY'] ||
480
423
  process.env['http_proxy'],