@google/gemini-cli-core 0.5.5 → 0.6.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +12 -2
  3. package/dist/index.d.ts +3 -3
  4. package/dist/index.js +3 -3
  5. package/dist/index.js.map +1 -1
  6. package/dist/src/code_assist/converter.d.ts +1 -0
  7. package/dist/src/code_assist/converter.js +1 -0
  8. package/dist/src/code_assist/converter.js.map +1 -1
  9. package/dist/src/code_assist/converter.test.js +10 -0
  10. package/dist/src/code_assist/converter.test.js.map +1 -1
  11. package/dist/src/code_assist/oauth-credential-storage.d.ts +5 -7
  12. package/dist/src/code_assist/oauth-credential-storage.js +5 -8
  13. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
  14. package/dist/src/code_assist/oauth-credential-storage.test.js +35 -33
  15. package/dist/src/code_assist/oauth-credential-storage.test.js.map +1 -1
  16. package/dist/src/code_assist/oauth2.js +28 -2
  17. package/dist/src/code_assist/oauth2.js.map +1 -1
  18. package/dist/src/code_assist/oauth2.test.js +674 -536
  19. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  20. package/dist/src/config/config.d.ts +32 -1
  21. package/dist/src/config/config.js +73 -16
  22. package/dist/src/config/config.js.map +1 -1
  23. package/dist/src/config/config.test.js +104 -16
  24. package/dist/src/config/config.test.js.map +1 -1
  25. package/dist/src/config/models.d.ts +15 -0
  26. package/dist/src/config/models.js +27 -0
  27. package/dist/src/config/models.js.map +1 -1
  28. package/dist/src/config/models.test.d.ts +6 -0
  29. package/dist/src/config/models.test.js +55 -0
  30. package/dist/src/config/models.test.js.map +1 -0
  31. package/dist/src/confirmation-bus/index.d.ts +7 -0
  32. package/dist/src/confirmation-bus/index.js +8 -0
  33. package/dist/src/confirmation-bus/index.js.map +1 -0
  34. package/dist/src/confirmation-bus/message-bus.d.ts +17 -0
  35. package/dist/src/confirmation-bus/message-bus.js +81 -0
  36. package/dist/src/confirmation-bus/message-bus.js.map +1 -0
  37. package/dist/src/confirmation-bus/message-bus.test.d.ts +6 -0
  38. package/dist/src/confirmation-bus/message-bus.test.js +164 -0
  39. package/dist/src/confirmation-bus/message-bus.test.js.map +1 -0
  40. package/dist/src/confirmation-bus/types.d.ts +38 -0
  41. package/dist/src/confirmation-bus/types.js +15 -0
  42. package/dist/src/confirmation-bus/types.js.map +1 -0
  43. package/dist/src/core/baseLlmClient.d.ts +1 -0
  44. package/dist/src/core/baseLlmClient.js +24 -0
  45. package/dist/src/core/baseLlmClient.js.map +1 -1
  46. package/dist/src/core/baseLlmClient.test.js +63 -0
  47. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  48. package/dist/src/core/client.d.ts +5 -4
  49. package/dist/src/core/client.js +80 -140
  50. package/dist/src/core/client.js.map +1 -1
  51. package/dist/src/core/client.test.js +247 -186
  52. package/dist/src/core/client.test.js.map +1 -1
  53. package/dist/src/core/contentGenerator.d.ts +0 -1
  54. package/dist/src/core/contentGenerator.js +0 -4
  55. package/dist/src/core/contentGenerator.js.map +1 -1
  56. package/dist/src/core/contentGenerator.test.js +0 -3
  57. package/dist/src/core/contentGenerator.test.js.map +1 -1
  58. package/dist/src/core/coreToolScheduler.d.ts +4 -3
  59. package/dist/src/core/coreToolScheduler.js +42 -5
  60. package/dist/src/core/coreToolScheduler.js.map +1 -1
  61. package/dist/src/core/coreToolScheduler.test.js +43 -0
  62. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  63. package/dist/src/core/geminiChat.d.ts +3 -30
  64. package/dist/src/core/geminiChat.js +32 -228
  65. package/dist/src/core/geminiChat.js.map +1 -1
  66. package/dist/src/core/geminiChat.test.js +58 -489
  67. package/dist/src/core/geminiChat.test.js.map +1 -1
  68. package/dist/src/core/loggingContentGenerator.js +5 -5
  69. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  70. package/dist/src/core/nonInteractiveToolExecutor.test.js +49 -0
  71. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  72. package/dist/src/core/subagent.js +1 -1
  73. package/dist/src/core/subagent.js.map +1 -1
  74. package/dist/src/core/subagent.test.js +9 -8
  75. package/dist/src/core/subagent.test.js.map +1 -1
  76. package/dist/src/core/turn.d.ts +2 -1
  77. package/dist/src/core/turn.js +2 -2
  78. package/dist/src/core/turn.js.map +1 -1
  79. package/dist/src/core/turn.test.js +18 -18
  80. package/dist/src/core/turn.test.js.map +1 -1
  81. package/dist/src/generated/git-commit.d.ts +2 -2
  82. package/dist/src/generated/git-commit.js +2 -2
  83. package/dist/src/generated/git-commit.js.map +1 -1
  84. package/dist/src/ide/constants.d.ts +1 -0
  85. package/dist/src/ide/constants.js +1 -0
  86. package/dist/src/ide/constants.js.map +1 -1
  87. package/dist/src/ide/ide-client.d.ts +51 -13
  88. package/dist/src/ide/ide-client.js +182 -35
  89. package/dist/src/ide/ide-client.js.map +1 -1
  90. package/dist/src/ide/ide-client.test.js +71 -0
  91. package/dist/src/ide/ide-client.test.js.map +1 -1
  92. package/dist/src/ide/ide-installer.js +8 -2
  93. package/dist/src/ide/ide-installer.js.map +1 -1
  94. package/dist/src/ide/ide-installer.test.js +13 -2
  95. package/dist/src/ide/ide-installer.test.js.map +1 -1
  96. package/dist/src/ide/ideContext.d.ts +34 -113
  97. package/dist/src/ide/ideContext.js +20 -78
  98. package/dist/src/ide/ideContext.js.map +1 -1
  99. package/dist/src/ide/ideContext.test.js +37 -39
  100. package/dist/src/ide/ideContext.test.js.map +1 -1
  101. package/dist/src/ide/types.d.ts +141 -0
  102. package/dist/src/ide/types.js +73 -0
  103. package/dist/src/ide/types.js.map +1 -1
  104. package/dist/src/index.d.ts +3 -1
  105. package/dist/src/index.js +3 -1
  106. package/dist/src/index.js.map +1 -1
  107. package/dist/src/mcp/oauth-token-storage.d.ts +2 -0
  108. package/dist/src/mcp/oauth-token-storage.js +25 -0
  109. package/dist/src/mcp/oauth-token-storage.js.map +1 -1
  110. package/dist/src/mcp/oauth-token-storage.test.js +251 -160
  111. package/dist/src/mcp/oauth-token-storage.test.js.map +1 -1
  112. package/dist/src/mcp/token-storage/index.d.ts +11 -0
  113. package/dist/src/mcp/token-storage/index.js +12 -0
  114. package/dist/src/mcp/token-storage/index.js.map +1 -0
  115. package/dist/src/output/json-formatter.d.ts +11 -0
  116. package/dist/src/output/json-formatter.js +30 -0
  117. package/dist/src/output/json-formatter.js.map +1 -0
  118. package/dist/src/output/json-formatter.test.d.ts +6 -0
  119. package/dist/src/output/json-formatter.test.js +266 -0
  120. package/dist/src/output/json-formatter.test.js.map +1 -0
  121. package/dist/src/output/types.d.ts +20 -0
  122. package/dist/src/output/types.js +11 -0
  123. package/dist/src/output/types.js.map +1 -0
  124. package/dist/src/policy/index.d.ts +7 -0
  125. package/dist/src/policy/index.js +8 -0
  126. package/dist/src/policy/index.js.map +1 -0
  127. package/dist/src/policy/policy-engine.d.ts +30 -0
  128. package/dist/src/policy/policy-engine.js +83 -0
  129. package/dist/src/policy/policy-engine.js.map +1 -0
  130. package/dist/src/policy/policy-engine.test.d.ts +6 -0
  131. package/dist/src/policy/policy-engine.test.js +470 -0
  132. package/dist/src/policy/policy-engine.test.js.map +1 -0
  133. package/dist/src/policy/stable-stringify.d.ts +58 -0
  134. package/dist/src/policy/stable-stringify.js +122 -0
  135. package/dist/src/policy/stable-stringify.js.map +1 -0
  136. package/dist/src/policy/types.d.ts +47 -0
  137. package/dist/src/policy/types.js +12 -0
  138. package/dist/src/policy/types.js.map +1 -0
  139. package/dist/src/routing/modelRouterService.d.ts +23 -0
  140. package/dist/src/routing/modelRouterService.js +70 -0
  141. package/dist/src/routing/modelRouterService.js.map +1 -0
  142. package/dist/src/routing/modelRouterService.test.d.ts +6 -0
  143. package/dist/src/routing/modelRouterService.test.js +98 -0
  144. package/dist/src/routing/modelRouterService.test.js.map +1 -0
  145. package/dist/src/routing/routingStrategy.d.ts +62 -0
  146. package/dist/src/routing/routingStrategy.js +7 -0
  147. package/dist/src/routing/routingStrategy.js.map +1 -0
  148. package/dist/src/routing/strategies/classifierStrategy.d.ts +12 -0
  149. package/dist/src/routing/strategies/classifierStrategy.js +173 -0
  150. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -0
  151. package/dist/src/routing/strategies/classifierStrategy.test.d.ts +6 -0
  152. package/dist/src/routing/strategies/classifierStrategy.test.js +192 -0
  153. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -0
  154. package/dist/src/routing/strategies/compositeStrategy.d.ts +26 -0
  155. package/dist/src/routing/strategies/compositeStrategy.js +67 -0
  156. package/dist/src/routing/strategies/compositeStrategy.js.map +1 -0
  157. package/dist/src/routing/strategies/compositeStrategy.test.d.ts +6 -0
  158. package/dist/src/routing/strategies/compositeStrategy.test.js +123 -0
  159. package/dist/src/routing/strategies/compositeStrategy.test.js.map +1 -0
  160. package/dist/src/routing/strategies/defaultStrategy.d.ts +12 -0
  161. package/dist/src/routing/strategies/defaultStrategy.js +20 -0
  162. package/dist/src/routing/strategies/defaultStrategy.js.map +1 -0
  163. package/dist/src/routing/strategies/defaultStrategy.test.d.ts +6 -0
  164. package/dist/src/routing/strategies/defaultStrategy.test.js +26 -0
  165. package/dist/src/routing/strategies/defaultStrategy.test.js.map +1 -0
  166. package/dist/src/routing/strategies/fallbackStrategy.d.ts +12 -0
  167. package/dist/src/routing/strategies/fallbackStrategy.js +25 -0
  168. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -0
  169. package/dist/src/routing/strategies/fallbackStrategy.test.d.ts +6 -0
  170. package/dist/src/routing/strategies/fallbackStrategy.test.js +55 -0
  171. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -0
  172. package/dist/src/routing/strategies/overrideStrategy.d.ts +15 -0
  173. package/dist/src/routing/strategies/overrideStrategy.js +28 -0
  174. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -0
  175. package/dist/src/routing/strategies/overrideStrategy.test.d.ts +6 -0
  176. package/dist/src/routing/strategies/overrideStrategy.test.js +42 -0
  177. package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -0
  178. package/dist/src/services/chatRecordingService.d.ts +2 -1
  179. package/dist/src/services/chatRecordingService.js +3 -3
  180. package/dist/src/services/chatRecordingService.js.map +1 -1
  181. package/dist/src/services/chatRecordingService.test.js +8 -3
  182. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  183. package/dist/src/services/fileDiscoveryService.d.ts +10 -0
  184. package/dist/src/services/fileDiscoveryService.js +31 -17
  185. package/dist/src/services/fileDiscoveryService.js.map +1 -1
  186. package/dist/src/services/gitService.js +9 -12
  187. package/dist/src/services/gitService.js.map +1 -1
  188. package/dist/src/services/gitService.test.js +10 -20
  189. package/dist/src/services/gitService.test.js.map +1 -1
  190. package/dist/src/services/loopDetectionService.d.ts +5 -0
  191. package/dist/src/services/loopDetectionService.js +36 -20
  192. package/dist/src/services/loopDetectionService.js.map +1 -1
  193. package/dist/src/services/loopDetectionService.test.js +41 -12
  194. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  195. package/dist/src/services/shellExecutionService.d.ts +34 -2
  196. package/dist/src/services/shellExecutionService.js +177 -43
  197. package/dist/src/services/shellExecutionService.js.map +1 -1
  198. package/dist/src/services/shellExecutionService.test.js +153 -56
  199. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  200. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +10 -2
  201. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +85 -5
  202. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  203. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +63 -5
  204. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  205. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +12 -2
  206. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +31 -2
  207. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  208. package/dist/src/telemetry/constants.d.ts +3 -0
  209. package/dist/src/telemetry/constants.js +3 -0
  210. package/dist/src/telemetry/constants.js.map +1 -1
  211. package/dist/src/telemetry/gcp-exporters.d.ts +34 -0
  212. package/dist/src/telemetry/gcp-exporters.js +117 -0
  213. package/dist/src/telemetry/gcp-exporters.js.map +1 -0
  214. package/dist/src/telemetry/gcp-exporters.test.d.ts +6 -0
  215. package/dist/src/telemetry/gcp-exporters.test.js +318 -0
  216. package/dist/src/telemetry/gcp-exporters.test.js.map +1 -0
  217. package/dist/src/telemetry/index.d.ts +3 -2
  218. package/dist/src/telemetry/index.js +3 -2
  219. package/dist/src/telemetry/index.js.map +1 -1
  220. package/dist/src/telemetry/loggers.d.ts +4 -1
  221. package/dist/src/telemetry/loggers.js +42 -7
  222. package/dist/src/telemetry/loggers.js.map +1 -1
  223. package/dist/src/telemetry/loggers.test.js +84 -36
  224. package/dist/src/telemetry/loggers.test.js.map +1 -1
  225. package/dist/src/telemetry/metrics.d.ts +3 -1
  226. package/dist/src/telemetry/metrics.js +32 -3
  227. package/dist/src/telemetry/metrics.js.map +1 -1
  228. package/dist/src/telemetry/metrics.test.js +42 -0
  229. package/dist/src/telemetry/metrics.test.js.map +1 -1
  230. package/dist/src/telemetry/sdk.js +16 -1
  231. package/dist/src/telemetry/sdk.js.map +1 -1
  232. package/dist/src/telemetry/sdk.test.js +95 -0
  233. package/dist/src/telemetry/sdk.test.js.map +1 -1
  234. package/dist/src/telemetry/types.d.ts +47 -3
  235. package/dist/src/telemetry/types.js +67 -3
  236. package/dist/src/telemetry/types.js.map +1 -1
  237. package/dist/src/tools/edit.js +6 -5
  238. package/dist/src/tools/edit.js.map +1 -1
  239. package/dist/src/tools/edit.test.js +79 -9
  240. package/dist/src/tools/edit.test.js.map +1 -1
  241. package/dist/src/tools/glob.d.ts +5 -1
  242. package/dist/src/tools/glob.js +24 -17
  243. package/dist/src/tools/glob.js.map +1 -1
  244. package/dist/src/tools/glob.test.js +51 -0
  245. package/dist/src/tools/glob.test.js.map +1 -1
  246. package/dist/src/tools/ls.js +19 -32
  247. package/dist/src/tools/ls.js.map +1 -1
  248. package/dist/src/tools/ls.test.js +140 -280
  249. package/dist/src/tools/ls.test.js.map +1 -1
  250. package/dist/src/tools/read-many-files.d.ts +1 -1
  251. package/dist/src/tools/read-many-files.js +17 -49
  252. package/dist/src/tools/read-many-files.js.map +1 -1
  253. package/dist/src/tools/ripGrep.d.ts +4 -0
  254. package/dist/src/tools/ripGrep.js +11 -1
  255. package/dist/src/tools/ripGrep.js.map +1 -1
  256. package/dist/src/tools/ripGrep.test.js +51 -1
  257. package/dist/src/tools/ripGrep.test.js.map +1 -1
  258. package/dist/src/tools/shell.d.ts +12 -2
  259. package/dist/src/tools/shell.js +20 -27
  260. package/dist/src/tools/shell.js.map +1 -1
  261. package/dist/src/tools/shell.test.js +33 -68
  262. package/dist/src/tools/shell.test.js.map +1 -1
  263. package/dist/src/tools/smart-edit.d.ts +0 -1
  264. package/dist/src/tools/smart-edit.js +5 -18
  265. package/dist/src/tools/smart-edit.js.map +1 -1
  266. package/dist/src/tools/smart-edit.test.js +18 -9
  267. package/dist/src/tools/smart-edit.test.js.map +1 -1
  268. package/dist/src/tools/tools.d.ts +7 -5
  269. package/dist/src/tools/tools.js +2 -2
  270. package/dist/src/tools/tools.js.map +1 -1
  271. package/dist/src/tools/write-file.js +4 -5
  272. package/dist/src/tools/write-file.js.map +1 -1
  273. package/dist/src/tools/write-file.test.js +94 -10
  274. package/dist/src/tools/write-file.test.js.map +1 -1
  275. package/dist/src/utils/bfsFileSearch.js +11 -5
  276. package/dist/src/utils/bfsFileSearch.js.map +1 -1
  277. package/dist/src/utils/editCorrector.d.ts +7 -6
  278. package/dist/src/utils/editCorrector.js +61 -18
  279. package/dist/src/utils/editCorrector.js.map +1 -1
  280. package/dist/src/utils/editCorrector.test.js +30 -79
  281. package/dist/src/utils/editCorrector.test.js.map +1 -1
  282. package/dist/src/utils/editor.js +31 -44
  283. package/dist/src/utils/editor.js.map +1 -1
  284. package/dist/src/utils/editor.test.js +61 -75
  285. package/dist/src/utils/editor.test.js.map +1 -1
  286. package/dist/src/utils/errorParsing.js +2 -2
  287. package/dist/src/utils/errorParsing.js.map +1 -1
  288. package/dist/src/utils/errorParsing.test.js +7 -7
  289. package/dist/src/utils/errorParsing.test.js.map +1 -1
  290. package/dist/src/utils/errors.d.ts +6 -0
  291. package/dist/src/utils/errors.js +10 -0
  292. package/dist/src/utils/errors.js.map +1 -1
  293. package/dist/src/utils/fileUtils.test.js +17 -8
  294. package/dist/src/utils/fileUtils.test.js.map +1 -1
  295. package/dist/src/utils/geminiIgnoreParser.d.ts +18 -0
  296. package/dist/src/utils/geminiIgnoreParser.js +61 -0
  297. package/dist/src/utils/geminiIgnoreParser.js.map +1 -0
  298. package/dist/src/utils/geminiIgnoreParser.test.d.ts +6 -0
  299. package/dist/src/utils/geminiIgnoreParser.test.js +50 -0
  300. package/dist/src/utils/geminiIgnoreParser.test.js.map +1 -0
  301. package/dist/src/utils/gitIgnoreParser.d.ts +3 -9
  302. package/dist/src/utils/gitIgnoreParser.js +60 -69
  303. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  304. package/dist/src/utils/gitIgnoreParser.test.js +18 -53
  305. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
  306. package/dist/src/utils/memoryDiscovery.test.js +12 -6
  307. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  308. package/dist/src/utils/nextSpeakerChecker.d.ts +2 -2
  309. package/dist/src/utils/nextSpeakerChecker.js +8 -2
  310. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  311. package/dist/src/utils/nextSpeakerChecker.test.js +40 -33
  312. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
  313. package/dist/src/utils/shell-utils.d.ts +5 -0
  314. package/dist/src/utils/shell-utils.js +23 -0
  315. package/dist/src/utils/shell-utils.js.map +1 -1
  316. package/dist/src/utils/terminalSerializer.d.ts +28 -0
  317. package/dist/src/utils/terminalSerializer.js +432 -0
  318. package/dist/src/utils/terminalSerializer.js.map +1 -0
  319. package/dist/src/utils/terminalSerializer.test.d.ts +6 -0
  320. package/dist/src/utils/terminalSerializer.test.js +176 -0
  321. package/dist/src/utils/terminalSerializer.test.js.map +1 -0
  322. package/dist/src/utils/textUtils.d.ts +5 -0
  323. package/dist/src/utils/textUtils.js +14 -0
  324. package/dist/src/utils/textUtils.js.map +1 -1
  325. package/dist/src/utils/textUtils.test.d.ts +6 -0
  326. package/dist/src/utils/textUtils.test.js +59 -0
  327. package/dist/src/utils/textUtils.test.js.map +1 -0
  328. package/dist/tsconfig.tsbuildinfo +1 -1
  329. package/package.json +5 -1
  330. package/dist/src/utils/ide-trust.d.ts +0 -10
  331. package/dist/src/utils/ide-trust.js +0 -14
  332. package/dist/src/utils/ide-trust.js.map +0 -1
package/LICENSE CHANGED
@@ -187,7 +187,7 @@
187
187
  same "printed page" as the copyright notice for easier
188
188
  identification within third-party archives.
189
189
 
190
- Copyright 2025 Google LLC
190
+ Copyright [yyyy] [name of copyright owner]
191
191
 
192
192
  Licensed under the Apache License, Version 2.0 (the "License");
193
193
  you may not use this file except in compliance with the License.
@@ -199,4 +199,4 @@
199
199
  distributed under the License is distributed on an "AS IS" BASIS,
200
200
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
201
  See the License for the specific language governing permissions and
202
- limitations under the License.
202
+ limitations under the License.
package/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Gemini CLI
2
2
 
3
3
  [![Gemini CLI CI](https://github.com/google-gemini/gemini-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/google-gemini/gemini-cli/actions/workflows/ci.yml)
4
+ [![Gemini CLI E2E](https://github.com/google-gemini/gemini-cli/actions/workflows/e2e.yml/badge.svg)](https://github.com/google-gemini/gemini-cli/actions/workflows/e2e.yml)
4
5
  [![Version](https://img.shields.io/npm/v/@google/gemini-cli)](https://www.npmjs.com/package/@google/gemini-cli)
5
6
  [![License](https://img.shields.io/github/license/google-gemini/gemini-cli)](https://github.com/google-gemini/gemini-cli/blob/main/LICENSE)
6
7
 
@@ -106,7 +107,7 @@ Integrate Gemini CLI directly into your GitHub workflows with [**Gemini CLI GitH
106
107
 
107
108
  Choose the authentication method that best fits your needs:
108
109
 
109
- ### Option 1: OAuth login (Using your Google Account)
110
+ ### Option 1: Login with Google (OAuth login using your Google Account)
110
111
 
111
112
  **✨ Best for:** Individual developers as well as anyone who has a Gemini Code Assist License. (see [quota limits and terms of service](https://cloud.google.com/gemini/docs/quotas) for details)
112
113
 
@@ -117,7 +118,7 @@ Choose the authentication method that best fits your needs:
117
118
  - **No API key management** - just sign in with your Google account
118
119
  - **Automatic updates** to latest models
119
120
 
120
- #### Start Gemini CLI, then choose OAuth and follow the browser authentication flow when prompted
121
+ #### Start Gemini CLI, then choose _Login with Google_ and follow the browser authentication flow when prompted
121
122
 
122
123
  ```bash
123
124
  gemini
@@ -190,10 +191,19 @@ gemini -m gemini-2.5-flash
190
191
 
191
192
  #### Non-interactive mode for scripts
192
193
 
194
+ Get a simple text response:
195
+
193
196
  ```bash
194
197
  gemini -p "Explain the architecture of this codebase"
195
198
  ```
196
199
 
200
+ For more advanced scripting, including how to parse JSON and handle errors, use
201
+ the `--output-format json` flag to get structured output:
202
+
203
+ ```bash
204
+ gemini -p "Explain the architecture of this codebase" --output-format json
205
+ ```
206
+
197
207
  ### Quick Examples
198
208
 
199
209
  #### Start a new project
package/dist/index.d.ts CHANGED
@@ -5,12 +5,12 @@
5
5
  */
6
6
  export * from './src/index.js';
7
7
  export { Storage } from './src/config/storage.js';
8
- export { DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, DEFAULT_GEMINI_EMBEDDING_MODEL, } from './src/config/models.js';
8
+ export { DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, DEFAULT_GEMINI_EMBEDDING_MODEL, } from './src/config/models.js';
9
+ export { serializeTerminalToObject, type AnsiOutput, type AnsiLine, type AnsiToken, } from './src/utils/terminalSerializer.js';
9
10
  export { DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES, DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD, } from './src/config/config.js';
10
11
  export { detectIdeFromEnv, getIdeInfo } from './src/ide/detect-ide.js';
11
12
  export { logIdeConnection } from './src/telemetry/loggers.js';
12
- export { IdeConnectionEvent, IdeConnectionType, ExtensionInstallEvent, } from './src/telemetry/types.js';
13
- export { getIdeTrust } from './src/utils/ide-trust.js';
13
+ export { IdeConnectionEvent, IdeConnectionType, ExtensionInstallEvent, ExtensionUninstallEvent, } from './src/telemetry/types.js';
14
14
  export { makeFakeConfig } from './src/test-utils/config.js';
15
15
  export * from './src/utils/pathReader.js';
16
16
  export { ClearcutLogger } from './src/telemetry/clearcut-logger/clearcut-logger.js';
package/dist/index.js CHANGED
@@ -5,12 +5,12 @@
5
5
  */
6
6
  export * from './src/index.js';
7
7
  export { Storage } from './src/config/storage.js';
8
- export { DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, DEFAULT_GEMINI_EMBEDDING_MODEL, } from './src/config/models.js';
8
+ export { DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, DEFAULT_GEMINI_EMBEDDING_MODEL, } from './src/config/models.js';
9
+ export { serializeTerminalToObject, } from './src/utils/terminalSerializer.js';
9
10
  export { DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES, DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD, } from './src/config/config.js';
10
11
  export { detectIdeFromEnv, getIdeInfo } from './src/ide/detect-ide.js';
11
12
  export { logIdeConnection } from './src/telemetry/loggers.js';
12
- export { IdeConnectionEvent, IdeConnectionType, ExtensionInstallEvent, } from './src/telemetry/types.js';
13
- export { getIdeTrust } from './src/utils/ide-trust.js';
13
+ export { IdeConnectionEvent, IdeConnectionType, ExtensionInstallEvent, ExtensionUninstallEvent, } from './src/telemetry/types.js';
14
14
  export { makeFakeConfig } from './src/test-utils/config.js';
15
15
  export * from './src/utils/pathReader.js';
16
16
  export { ClearcutLogger } from './src/telemetry/clearcut-logger/clearcut-logger.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kCAAkC,EAClC,sCAAsC,GACvC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,yBAAyB,GAI1B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,kCAAkC,EAClC,sCAAsC,GACvC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC"}
@@ -53,6 +53,7 @@ interface VertexGenerateContentResponse {
53
53
  automaticFunctionCallingHistory?: Content[];
54
54
  promptFeedback?: GenerateContentResponsePromptFeedback;
55
55
  usageMetadata?: GenerateContentResponseUsageMetadata;
56
+ modelVersion?: string;
56
57
  }
57
58
  export interface CaCountTokenRequest {
58
59
  request: VertexCountTokenRequest;
@@ -32,6 +32,7 @@ export function fromGenerateContentResponse(res) {
32
32
  out.automaticFunctionCallingHistory = inres.automaticFunctionCallingHistory;
33
33
  out.promptFeedback = inres.promptFeedback;
34
34
  out.usageMetadata = inres.usageMetadata;
35
+ out.modelVersion = inres.modelVersion;
35
36
  return out;
36
37
  }
37
38
  function toVertexGenerateContentRequest(req, sessionId) {
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../src/code_assist/converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../src/code_assist/converter.ts"],"names":[],"mappings":"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"}
@@ -227,6 +227,16 @@ describe('converter', () => {
227
227
  const genaiRes = fromGenerateContentResponse(codeAssistRes);
228
228
  expect(genaiRes.automaticFunctionCallingHistory).toEqual(codeAssistRes.response.automaticFunctionCallingHistory);
229
229
  });
230
+ it('should handle modelVersion', () => {
231
+ const codeAssistRes = {
232
+ response: {
233
+ candidates: [],
234
+ modelVersion: 'gemini-2.5-pro',
235
+ },
236
+ };
237
+ const genaiRes = fromGenerateContentResponse(codeAssistRes);
238
+ expect(genaiRes.modelVersion).toEqual('gemini-2.5-pro');
239
+ });
230
240
  });
231
241
  describe('toContents', () => {
232
242
  it('should handle Content', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"converter.test.js","sourceRoot":"","sources":["../../../src/code_assist/converter.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converter.test.js","sourceRoot":"","sources":["../../../src/code_assist/converter.test.ts"],"names":[],"mappings":"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"}
@@ -4,24 +4,22 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { type Credentials } from 'google-auth-library';
7
- import { HybridTokenStorage } from '../mcp/token-storage/hybrid-token-storage.js';
8
7
  export declare class OAuthCredentialStorage {
9
- private readonly storage;
10
- constructor(storage?: HybridTokenStorage);
8
+ private static storage;
11
9
  /**
12
10
  * Load cached OAuth credentials
13
11
  */
14
- loadCredentials(): Promise<Credentials | null>;
12
+ static loadCredentials(): Promise<Credentials | null>;
15
13
  /**
16
14
  * Save OAuth credentials
17
15
  */
18
- saveCredentials(credentials: Credentials): Promise<void>;
16
+ static saveCredentials(credentials: Credentials): Promise<void>;
19
17
  /**
20
18
  * Clear cached OAuth credentials
21
19
  */
22
- clearCredentials(): Promise<void>;
20
+ static clearCredentials(): Promise<void>;
23
21
  /**
24
22
  * Migrate credentials from old file-based storage to keychain
25
23
  */
26
- private migrateFromFileStorage;
24
+ private static migrateFromFileStorage;
27
25
  }
@@ -13,14 +13,11 @@ const GEMINI_DIR = '.gemini';
13
13
  const KEYCHAIN_SERVICE_NAME = 'gemini-cli-oauth';
14
14
  const MAIN_ACCOUNT_KEY = 'main-account';
15
15
  export class OAuthCredentialStorage {
16
- storage;
17
- constructor(storage = new HybridTokenStorage(KEYCHAIN_SERVICE_NAME)) {
18
- this.storage = storage;
19
- }
16
+ static storage = new HybridTokenStorage(KEYCHAIN_SERVICE_NAME);
20
17
  /**
21
18
  * Load cached OAuth credentials
22
19
  */
23
- async loadCredentials() {
20
+ static async loadCredentials() {
24
21
  try {
25
22
  const credentials = await this.storage.getCredentials(MAIN_ACCOUNT_KEY);
26
23
  if (credentials?.token) {
@@ -48,7 +45,7 @@ export class OAuthCredentialStorage {
48
45
  /**
49
46
  * Save OAuth credentials
50
47
  */
51
- async saveCredentials(credentials) {
48
+ static async saveCredentials(credentials) {
52
49
  if (!credentials.access_token) {
53
50
  throw new Error('Attempted to save credentials without an access token.');
54
51
  }
@@ -69,7 +66,7 @@ export class OAuthCredentialStorage {
69
66
  /**
70
67
  * Clear cached OAuth credentials
71
68
  */
72
- async clearCredentials() {
69
+ static async clearCredentials() {
73
70
  try {
74
71
  await this.storage.deleteCredentials(MAIN_ACCOUNT_KEY);
75
72
  // Also try to remove the old file if it exists
@@ -84,7 +81,7 @@ export class OAuthCredentialStorage {
84
81
  /**
85
82
  * Migrate credentials from old file-based storage to keychain
86
83
  */
87
- async migrateFromFileStorage() {
84
+ static async migrateFromFileStorage() {
88
85
  const oldFilePath = path.join(os.homedir(), GEMINI_DIR, OAUTH_FILE);
89
86
  let credsJson;
90
87
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-credential-storage.js","sourceRoot":"","sources":["../../../src/code_assist/oauth-credential-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-credential-storage.js","sourceRoot":"","sources":["../../../src/code_assist/oauth-credential-storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAoB,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,UAAU,GAAG,SAAS,CAAC;AAC7B,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AACjD,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAExC,MAAM,OAAO,sBAAsB;IACzB,MAAM,CAAC,OAAO,GAAuB,IAAI,kBAAkB,CACjE,qBAAqB,CACtB,CAAC;IAEF;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe;QAC1B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAExE,IAAI,WAAW,EAAE,KAAK,EAAE,CAAC;gBACvB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,GAC9D,WAAW,CAAC,KAAK,CAAC;gBACpB,oEAAoE;gBACpE,MAAM,WAAW,GAAgB;oBAC/B,YAAY,EAAE,WAAW;oBACzB,aAAa,EAAE,YAAY,IAAI,SAAS;oBACxC,UAAU,EAAE,SAAS,IAAI,SAAS;oBAClC,KAAK,EAAE,KAAK,IAAI,SAAS;iBAC1B,CAAC;gBAEF,IAAI,SAAS,EAAE,CAAC;oBACd,WAAW,CAAC,WAAW,GAAG,SAAS,CAAC;gBACtC,CAAC;gBAED,OAAO,WAAW,CAAC;YACrB,CAAC;YAED,uDAAuD;YACvD,OAAO,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,WAAwB;QACnD,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,wDAAwD;QACxD,MAAM,cAAc,GAAqB;YACvC,UAAU,EAAE,gBAAgB;YAC5B,KAAK,EAAE;gBACL,WAAW,EAAE,WAAW,CAAC,YAAY;gBACrC,YAAY,EAAE,WAAW,CAAC,aAAa,IAAI,SAAS;gBACpD,SAAS,EAAE,WAAW,CAAC,UAAU,IAAI,QAAQ;gBAC7C,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,SAAS;gBACrC,SAAS,EAAE,WAAW,CAAC,WAAW,IAAI,SAAS;aAChD;YACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAEvD,+CAA+C;YAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACpE,MAAM,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,KAAK,CAAC,sBAAsB;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAEpE,IAAI,SAAiB,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IACE,OAAO,KAAK,KAAK,QAAQ;gBACzB,KAAK,KAAK,IAAI;gBACd,MAAM,IAAI,KAAK;gBACf,KAAK,CAAC,IAAI,KAAK,QAAQ,EACvB,CAAC;gBACD,uCAAuC;gBACvC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,sCAAsC;YACtC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAgB,CAAC;QAEzD,sBAAsB;QACtB,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAExC,6CAA6C;QAC7C,MAAM,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAE1D,OAAO,WAAW,CAAC;IACrB,CAAC"}
@@ -6,12 +6,18 @@
6
6
  import {} from 'google-auth-library';
7
7
  import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
8
8
  import { OAuthCredentialStorage } from './oauth-credential-storage.js';
9
- import { HybridTokenStorage } from '../mcp/token-storage/hybrid-token-storage.js';
10
9
  import * as path from 'node:path';
11
10
  import * as os from 'node:os';
12
11
  import { promises as fs } from 'node:fs';
13
12
  // Mock external dependencies
14
- vi.mock('../mcp/token-storage/hybrid-token-storage.js');
13
+ const mockHybridTokenStorage = vi.hoisted(() => ({
14
+ getCredentials: vi.fn(),
15
+ setCredentials: vi.fn(),
16
+ deleteCredentials: vi.fn(),
17
+ }));
18
+ vi.mock('../mcp/token-storage/hybrid-token-storage.js', () => ({
19
+ HybridTokenStorage: vi.fn(() => mockHybridTokenStorage),
20
+ }));
15
21
  vi.mock('node:fs', () => ({
16
22
  promises: {
17
23
  readFile: vi.fn(),
@@ -21,8 +27,6 @@ vi.mock('node:fs', () => ({
21
27
  vi.mock('node:os');
22
28
  vi.mock('node:path');
23
29
  describe('OAuthCredentialStorage', () => {
24
- let storage;
25
- let oauthStorage;
26
30
  const mockCredentials = {
27
31
  access_token: 'mock_access_token',
28
32
  refresh_token: 'mock_refresh_token',
@@ -43,11 +47,9 @@ describe('OAuthCredentialStorage', () => {
43
47
  };
44
48
  const oldFilePath = '/mock/home/.gemini/oauth.json';
45
49
  beforeEach(() => {
46
- storage = new HybridTokenStorage('');
47
- oauthStorage = new OAuthCredentialStorage(storage);
48
- vi.spyOn(storage, 'getCredentials').mockResolvedValue(null);
49
- vi.spyOn(storage, 'setCredentials').mockResolvedValue(undefined);
50
- vi.spyOn(storage, 'deleteCredentials').mockResolvedValue(undefined);
50
+ vi.spyOn(mockHybridTokenStorage, 'getCredentials').mockResolvedValue(null);
51
+ vi.spyOn(mockHybridTokenStorage, 'setCredentials').mockResolvedValue(undefined);
52
+ vi.spyOn(mockHybridTokenStorage, 'deleteCredentials').mockResolvedValue(undefined);
51
53
  vi.spyOn(fs, 'readFile').mockRejectedValue(new Error('File not found'));
52
54
  vi.spyOn(fs, 'rm').mockResolvedValue(undefined);
53
55
  vi.spyOn(os, 'homedir').mockReturnValue('/mock/home');
@@ -58,18 +60,18 @@ describe('OAuthCredentialStorage', () => {
58
60
  });
59
61
  describe('loadCredentials', () => {
60
62
  it('should load credentials from HybridTokenStorage if available', async () => {
61
- vi.spyOn(storage, 'getCredentials').mockResolvedValue(mockMcpCredentials);
62
- const result = await oauthStorage.loadCredentials();
63
- expect(storage.getCredentials).toHaveBeenCalledWith('main-account');
63
+ vi.spyOn(mockHybridTokenStorage, 'getCredentials').mockResolvedValue(mockMcpCredentials);
64
+ const result = await OAuthCredentialStorage.loadCredentials();
65
+ expect(mockHybridTokenStorage.getCredentials).toHaveBeenCalledWith('main-account');
64
66
  expect(result).toEqual(mockCredentials);
65
67
  });
66
68
  it('should fallback to migrateFromFileStorage if no credentials in HybridTokenStorage', async () => {
67
- vi.spyOn(storage, 'getCredentials').mockResolvedValue(null);
69
+ vi.spyOn(mockHybridTokenStorage, 'getCredentials').mockResolvedValue(null);
68
70
  vi.spyOn(fs, 'readFile').mockResolvedValue(JSON.stringify(mockCredentials));
69
- const result = await oauthStorage.loadCredentials();
70
- expect(storage.getCredentials).toHaveBeenCalledWith('main-account');
71
+ const result = await OAuthCredentialStorage.loadCredentials();
72
+ expect(mockHybridTokenStorage.getCredentials).toHaveBeenCalledWith('main-account');
71
73
  expect(fs.readFile).toHaveBeenCalledWith(oldFilePath, 'utf-8');
72
- expect(storage.setCredentials).toHaveBeenCalled(); // Verify credentials were saved
74
+ expect(mockHybridTokenStorage.setCredentials).toHaveBeenCalled(); // Verify credentials were saved
73
75
  expect(fs.rm).toHaveBeenCalledWith(oldFilePath, { force: true }); // Verify old file was removed
74
76
  expect(result).toEqual(mockCredentials);
75
77
  });
@@ -78,56 +80,56 @@ describe('OAuthCredentialStorage', () => {
78
80
  message: 'File not found',
79
81
  code: 'ENOENT',
80
82
  });
81
- const result = await oauthStorage.loadCredentials();
83
+ const result = await OAuthCredentialStorage.loadCredentials();
82
84
  expect(result).toBeNull();
83
85
  });
84
86
  it('should throw an error if loading fails', async () => {
85
- vi.spyOn(storage, 'getCredentials').mockRejectedValue(new Error('Loading error'));
86
- await expect(oauthStorage.loadCredentials()).rejects.toThrow('Failed to load OAuth credentials');
87
+ vi.spyOn(mockHybridTokenStorage, 'getCredentials').mockRejectedValue(new Error('Loading error'));
88
+ await expect(OAuthCredentialStorage.loadCredentials()).rejects.toThrow('Failed to load OAuth credentials');
87
89
  });
88
90
  it('should throw an error if read file fails', async () => {
89
- vi.spyOn(storage, 'getCredentials').mockResolvedValue(null);
91
+ vi.spyOn(mockHybridTokenStorage, 'getCredentials').mockResolvedValue(null);
90
92
  vi.spyOn(fs, 'readFile').mockRejectedValue(new Error('Permission denied'));
91
- await expect(oauthStorage.loadCredentials()).rejects.toThrow('Failed to load OAuth credentials');
93
+ await expect(OAuthCredentialStorage.loadCredentials()).rejects.toThrow('Failed to load OAuth credentials');
92
94
  });
93
95
  it('should not throw error if migration file removal failed', async () => {
94
- vi.spyOn(storage, 'getCredentials').mockResolvedValue(null);
96
+ vi.spyOn(mockHybridTokenStorage, 'getCredentials').mockResolvedValue(null);
95
97
  vi.spyOn(fs, 'readFile').mockResolvedValue(JSON.stringify(mockCredentials));
96
- vi.spyOn(oauthStorage, 'saveCredentials').mockResolvedValue(undefined);
98
+ vi.spyOn(OAuthCredentialStorage, 'saveCredentials').mockResolvedValue(undefined);
97
99
  vi.spyOn(fs, 'rm').mockRejectedValue(new Error('Deletion failed'));
98
- const result = await oauthStorage.loadCredentials();
100
+ const result = await OAuthCredentialStorage.loadCredentials();
99
101
  expect(result).toEqual(mockCredentials);
100
102
  });
101
103
  });
102
104
  describe('saveCredentials', () => {
103
105
  it('should save credentials to HybridTokenStorage', async () => {
104
- await oauthStorage.saveCredentials(mockCredentials);
105
- expect(storage.setCredentials).toHaveBeenCalledWith(mockMcpCredentials);
106
+ await OAuthCredentialStorage.saveCredentials(mockCredentials);
107
+ expect(mockHybridTokenStorage.setCredentials).toHaveBeenCalledWith(mockMcpCredentials);
106
108
  });
107
109
  it('should throw an error if access_token is missing', async () => {
108
110
  const invalidCredentials = {
109
111
  ...mockCredentials,
110
112
  access_token: undefined,
111
113
  };
112
- await expect(oauthStorage.saveCredentials(invalidCredentials)).rejects.toThrow('Attempted to save credentials without an access token.');
114
+ await expect(OAuthCredentialStorage.saveCredentials(invalidCredentials)).rejects.toThrow('Attempted to save credentials without an access token.');
113
115
  });
114
116
  });
115
117
  describe('clearCredentials', () => {
116
118
  it('should delete credentials from HybridTokenStorage', async () => {
117
- await oauthStorage.clearCredentials();
118
- expect(storage.deleteCredentials).toHaveBeenCalledWith('main-account');
119
+ await OAuthCredentialStorage.clearCredentials();
120
+ expect(mockHybridTokenStorage.deleteCredentials).toHaveBeenCalledWith('main-account');
119
121
  });
120
122
  it('should attempt to remove the old file-based storage', async () => {
121
- await oauthStorage.clearCredentials();
123
+ await OAuthCredentialStorage.clearCredentials();
122
124
  expect(fs.rm).toHaveBeenCalledWith(oldFilePath, { force: true });
123
125
  });
124
126
  it('should not throw an error if deleting old file fails', async () => {
125
127
  vi.spyOn(fs, 'rm').mockRejectedValue(new Error('File deletion failed'));
126
- await expect(oauthStorage.clearCredentials()).resolves.toBeUndefined();
128
+ await expect(OAuthCredentialStorage.clearCredentials()).resolves.toBeUndefined();
127
129
  });
128
130
  it('should throw an error if clearing from HybridTokenStorage fails', async () => {
129
- vi.spyOn(storage, 'deleteCredentials').mockRejectedValue(new Error('Deletion error'));
130
- await expect(oauthStorage.clearCredentials()).rejects.toThrow('Failed to clear OAuth credentials');
131
+ vi.spyOn(mockHybridTokenStorage, 'deleteCredentials').mockRejectedValue(new Error('Deletion error'));
132
+ await expect(OAuthCredentialStorage.clearCredentials()).rejects.toThrow('Failed to clear OAuth credentials');
131
133
  });
132
134
  });
133
135
  });
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-credential-storage.test.js","sourceRoot":"","sources":["../../../src/code_assist/oauth-credential-storage.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-credential-storage.test.js","sourceRoot":"","sources":["../../../src/code_assist/oauth-credential-storage.test.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,8 @@ import { UserAccountManager } from '../utils/userAccountManager.js';
16
16
  import { AuthType } from '../core/contentGenerator.js';
17
17
  import readline from 'node:readline';
18
18
  import { Storage } from '../config/storage.js';
19
+ import { OAuthCredentialStorage } from './oauth-credential-storage.js';
20
+ import { FORCE_ENCRYPTED_FILE_ENV_VAR } from '../mcp/token-storage/index.js';
19
21
  const userAccountManager = new UserAccountManager();
20
22
  // OAuth Client ID used to initiate OAuth2Client class.
21
23
  const OAUTH_CLIENT_ID = '681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com';
@@ -36,6 +38,9 @@ const HTTP_REDIRECT = 301;
36
38
  const SIGN_IN_SUCCESS_URL = 'https://developers.google.com/gemini-code-assist/auth_success_gemini';
37
39
  const SIGN_IN_FAILURE_URL = 'https://developers.google.com/gemini-code-assist/auth_failure_gemini';
38
40
  const oauthClientPromises = new Map();
41
+ function getUseEncryptedStorageFlag() {
42
+ return process.env[FORCE_ENCRYPTED_FILE_ENV_VAR] === 'true';
43
+ }
39
44
  async function initOauthClient(authType, config) {
40
45
  const client = new OAuth2Client({
41
46
  clientId: OAUTH_CLIENT_ID,
@@ -44,6 +49,7 @@ async function initOauthClient(authType, config) {
44
49
  proxy: config.getProxy(),
45
50
  },
46
51
  });
52
+ const useEncryptedStorage = getUseEncryptedStorageFlag();
47
53
  if (process.env['GOOGLE_GENAI_USE_GCA'] &&
48
54
  process.env['GOOGLE_CLOUD_ACCESS_TOKEN']) {
49
55
  client.setCredentials({
@@ -53,7 +59,12 @@ async function initOauthClient(authType, config) {
53
59
  return client;
54
60
  }
55
61
  client.on('tokens', async (tokens) => {
56
- await cacheCredentials(tokens);
62
+ if (useEncryptedStorage) {
63
+ await OAuthCredentialStorage.saveCredentials(tokens);
64
+ }
65
+ else {
66
+ await cacheCredentials(tokens);
67
+ }
57
68
  });
58
69
  // If there are cached creds on disk, they always take precedence
59
70
  if (await loadCachedCredentials(client)) {
@@ -310,6 +321,15 @@ export function getAvailablePort() {
310
321
  });
311
322
  }
312
323
  async function loadCachedCredentials(client) {
324
+ const useEncryptedStorage = getUseEncryptedStorageFlag();
325
+ if (useEncryptedStorage) {
326
+ const credentials = await OAuthCredentialStorage.loadCredentials();
327
+ if (credentials) {
328
+ client.setCredentials(credentials);
329
+ return true;
330
+ }
331
+ return false;
332
+ }
313
333
  const pathsToTry = [
314
334
  Storage.getOAuthCredsPath(),
315
335
  process.env['GOOGLE_APPLICATION_CREDENTIALS'],
@@ -351,7 +371,13 @@ export function clearOauthClientCache() {
351
371
  }
352
372
  export async function clearCachedCredentialFile() {
353
373
  try {
354
- await fs.rm(Storage.getOAuthCredsPath(), { force: true });
374
+ const useEncryptedStorage = getUseEncryptedStorageFlag();
375
+ if (useEncryptedStorage) {
376
+ await OAuthCredentialStorage.clearCredentials();
377
+ }
378
+ else {
379
+ await fs.rm(Storage.getOAuthCredsPath(), { force: true });
380
+ }
355
381
  // Clear the Google Account ID cache when credentials are cleared
356
382
  await userAccountManager.clearCachedGoogleAccount();
357
383
  // Clear the in-memory OAuth client cache to force re-authentication
@@ -1 +1 @@
1
- {"version":3,"file":"oauth2.js","sourceRoot":"","sources":["../../../src/code_assist/oauth2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth2.js","sourceRoot":"","sources":["../../../src/code_assist/oauth2.ts"],"names":[],"mappings":"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"}