@google/gemini-cli-core 0.31.0 → 0.33.0-nightly.20260228.1ca5c05d0

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 (323) hide show
  1. package/dist/docs/changelogs/index.md +22 -0
  2. package/dist/docs/changelogs/latest.md +307 -352
  3. package/dist/docs/changelogs/preview.md +391 -293
  4. package/dist/docs/cli/cli-reference.md +12 -12
  5. package/dist/docs/cli/custom-commands.md +9 -0
  6. package/dist/docs/cli/enterprise.md +19 -0
  7. package/dist/docs/cli/model.md +5 -14
  8. package/dist/docs/cli/plan-mode.md +29 -7
  9. package/dist/docs/cli/sandbox.md +42 -2
  10. package/dist/docs/cli/settings.md +15 -6
  11. package/dist/docs/cli/telemetry.md +68 -11
  12. package/dist/docs/cli/tutorials/automation.md +101 -5
  13. package/dist/docs/cli/tutorials/mcp-setup.md +8 -0
  14. package/dist/docs/cli/tutorials/skills-getting-started.md +8 -0
  15. package/dist/docs/extensions/reference.md +36 -0
  16. package/dist/docs/extensions/writing-extensions.md +16 -0
  17. package/dist/docs/get-started/authentication.md +86 -5
  18. package/dist/docs/get-started/installation.md +2 -2
  19. package/dist/docs/hooks/best-practices.md +33 -1
  20. package/dist/docs/hooks/writing-hooks.md +24 -0
  21. package/dist/docs/ide-integration/index.md +8 -0
  22. package/dist/docs/local-development.md +49 -43
  23. package/dist/docs/reference/configuration.md +48 -7
  24. package/dist/docs/reference/keyboard-shortcuts.md +6 -6
  25. package/dist/docs/reference/policy-engine.md +14 -3
  26. package/dist/docs/resources/faq.md +21 -0
  27. package/dist/docs/resources/tos-privacy.md +6 -0
  28. package/dist/docs/resources/troubleshooting.md +4 -1
  29. package/dist/docs/resources/uninstall.md +1 -10
  30. package/dist/docs/tools/mcp-server.md +22 -0
  31. package/dist/google-gemini-cli-core-0.33.0-nightly.20260227.08ee13613.tgz +0 -0
  32. package/dist/src/agents/a2a-client-manager.d.ts +7 -6
  33. package/dist/src/agents/a2a-client-manager.js +8 -9
  34. package/dist/src/agents/a2a-client-manager.js.map +1 -1
  35. package/dist/src/agents/a2a-client-manager.test.js +45 -31
  36. package/dist/src/agents/a2a-client-manager.test.js.map +1 -1
  37. package/dist/src/agents/a2aUtils.d.ts +25 -7
  38. package/dist/src/agents/a2aUtils.js +165 -58
  39. package/dist/src/agents/a2aUtils.js.map +1 -1
  40. package/dist/src/agents/a2aUtils.test.js +170 -27
  41. package/dist/src/agents/a2aUtils.test.js.map +1 -1
  42. package/dist/src/agents/generalist-agent.js +1 -2
  43. package/dist/src/agents/generalist-agent.js.map +1 -1
  44. package/dist/src/agents/registry.test.js +4 -2
  45. package/dist/src/agents/registry.test.js.map +1 -1
  46. package/dist/src/agents/remote-invocation.d.ts +2 -1
  47. package/dist/src/agents/remote-invocation.js +41 -22
  48. package/dist/src/agents/remote-invocation.js.map +1 -1
  49. package/dist/src/agents/remote-invocation.test.js +196 -56
  50. package/dist/src/agents/remote-invocation.test.js.map +1 -1
  51. package/dist/src/agents/subagent-tool-wrapper.js +1 -1
  52. package/dist/src/agents/subagent-tool-wrapper.test.js +1 -1
  53. package/dist/src/agents/subagent-tool.js +15 -2
  54. package/dist/src/agents/subagent-tool.js.map +1 -1
  55. package/dist/src/agents/subagent-tool.test.js +31 -0
  56. package/dist/src/agents/subagent-tool.test.js.map +1 -1
  57. package/dist/src/billing/billing.d.ts +80 -0
  58. package/dist/src/billing/billing.js +127 -0
  59. package/dist/src/billing/billing.js.map +1 -0
  60. package/dist/src/billing/billing.test.d.ts +6 -0
  61. package/dist/src/billing/billing.test.js +182 -0
  62. package/dist/src/billing/billing.test.js.map +1 -0
  63. package/dist/src/billing/index.d.ts +6 -0
  64. package/dist/src/billing/index.js +7 -0
  65. package/dist/src/billing/index.js.map +1 -0
  66. package/dist/src/code_assist/codeAssist.js +1 -1
  67. package/dist/src/code_assist/codeAssist.js.map +1 -1
  68. package/dist/src/code_assist/codeAssist.test.js +2 -2
  69. package/dist/src/code_assist/codeAssist.test.js.map +1 -1
  70. package/dist/src/code_assist/converter.d.ts +9 -4
  71. package/dist/src/code_assist/converter.js +17 -2
  72. package/dist/src/code_assist/converter.js.map +1 -1
  73. package/dist/src/code_assist/converter.test.js.map +1 -1
  74. package/dist/src/code_assist/oauth2.js +6 -3
  75. package/dist/src/code_assist/oauth2.js.map +1 -1
  76. package/dist/src/code_assist/oauth2.test.js +1 -0
  77. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  78. package/dist/src/code_assist/server.d.ts +9 -4
  79. package/dist/src/code_assist/server.js +86 -5
  80. package/dist/src/code_assist/server.js.map +1 -1
  81. package/dist/src/code_assist/server.test.js +11 -0
  82. package/dist/src/code_assist/server.test.js.map +1 -1
  83. package/dist/src/code_assist/setup.d.ts +2 -1
  84. package/dist/src/code_assist/setup.js +15 -4
  85. package/dist/src/code_assist/setup.js.map +1 -1
  86. package/dist/src/code_assist/types.d.ts +33 -10
  87. package/dist/src/code_assist/types.js.map +1 -1
  88. package/dist/src/config/config.d.ts +50 -4
  89. package/dist/src/config/config.js +77 -3
  90. package/dist/src/config/config.js.map +1 -1
  91. package/dist/src/config/config.test.js +151 -1
  92. package/dist/src/config/config.test.js.map +1 -1
  93. package/dist/src/config/storage.d.ts +1 -0
  94. package/dist/src/config/storage.js +3 -0
  95. package/dist/src/config/storage.js.map +1 -1
  96. package/dist/src/core/contentGenerator.d.ts +3 -2
  97. package/dist/src/core/contentGenerator.js +9 -2
  98. package/dist/src/core/contentGenerator.js.map +1 -1
  99. package/dist/src/core/coreToolScheduler.js +2 -1
  100. package/dist/src/core/coreToolScheduler.js.map +1 -1
  101. package/dist/src/core/coreToolScheduler.test.js +21 -2
  102. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  103. package/dist/src/core/fakeContentGenerator.d.ts +2 -1
  104. package/dist/src/core/fakeContentGenerator.js +1 -0
  105. package/dist/src/core/fakeContentGenerator.js.map +1 -1
  106. package/dist/src/core/geminiChat.js +6 -2
  107. package/dist/src/core/geminiChat.js.map +1 -1
  108. package/dist/src/core/geminiChat.test.js +34 -0
  109. package/dist/src/core/geminiChat.test.js.map +1 -1
  110. package/dist/src/core/localLiteRtLmClient.d.ts +24 -0
  111. package/dist/src/core/localLiteRtLmClient.js +77 -0
  112. package/dist/src/core/localLiteRtLmClient.js.map +1 -0
  113. package/dist/src/core/localLiteRtLmClient.test.d.ts +6 -0
  114. package/dist/src/core/localLiteRtLmClient.test.js +87 -0
  115. package/dist/src/core/localLiteRtLmClient.test.js.map +1 -0
  116. package/dist/src/core/loggingContentGenerator.d.ts +3 -1
  117. package/dist/src/core/loggingContentGenerator.js +65 -17
  118. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  119. package/dist/src/core/loggingContentGenerator.test.js +164 -5
  120. package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
  121. package/dist/src/core/prompts.test.js +1 -1
  122. package/dist/src/core/prompts.test.js.map +1 -1
  123. package/dist/src/fallback/handler.js +2 -0
  124. package/dist/src/fallback/handler.js.map +1 -1
  125. package/dist/src/fallback/types.d.ts +1 -1
  126. package/dist/src/generated/git-commit.d.ts +2 -2
  127. package/dist/src/generated/git-commit.js +2 -2
  128. package/dist/src/generated/git-commit.js.map +1 -1
  129. package/dist/src/index.d.ts +5 -0
  130. package/dist/src/index.js +5 -0
  131. package/dist/src/index.js.map +1 -1
  132. package/dist/src/policy/config.d.ts +18 -6
  133. package/dist/src/policy/config.js +50 -12
  134. package/dist/src/policy/config.js.map +1 -1
  135. package/dist/src/policy/config.test.js +26 -26
  136. package/dist/src/policy/config.test.js.map +1 -1
  137. package/dist/src/policy/policies/plan.toml +1 -1
  138. package/dist/src/policy/policy-engine.d.ts +8 -0
  139. package/dist/src/policy/policy-engine.js +12 -0
  140. package/dist/src/policy/policy-engine.js.map +1 -1
  141. package/dist/src/policy/policy-engine.test.js +93 -0
  142. package/dist/src/policy/policy-engine.test.js.map +1 -1
  143. package/dist/src/policy/toml-loader.d.ts +1 -1
  144. package/dist/src/policy/toml-loader.js +4 -2
  145. package/dist/src/policy/toml-loader.js.map +1 -1
  146. package/dist/src/policy/toml-loader.test.js +15 -12
  147. package/dist/src/policy/toml-loader.test.js.map +1 -1
  148. package/dist/src/policy/workspace-policy.test.js +10 -10
  149. package/dist/src/prompts/snippets.js +43 -27
  150. package/dist/src/prompts/snippets.js.map +1 -1
  151. package/dist/src/routing/modelRouterService.js +19 -11
  152. package/dist/src/routing/modelRouterService.js.map +1 -1
  153. package/dist/src/routing/modelRouterService.test.js +38 -1
  154. package/dist/src/routing/modelRouterService.test.js.map +1 -1
  155. package/dist/src/routing/routingStrategy.d.ts +3 -2
  156. package/dist/src/routing/strategies/classifierStrategy.d.ts +2 -1
  157. package/dist/src/routing/strategies/classifierStrategy.js +1 -1
  158. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  159. package/dist/src/routing/strategies/classifierStrategy.test.js +15 -13
  160. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  161. package/dist/src/routing/strategies/compositeStrategy.d.ts +2 -1
  162. package/dist/src/routing/strategies/compositeStrategy.js +3 -3
  163. package/dist/src/routing/strategies/compositeStrategy.js.map +1 -1
  164. package/dist/src/routing/strategies/compositeStrategy.test.js +10 -8
  165. package/dist/src/routing/strategies/compositeStrategy.test.js.map +1 -1
  166. package/dist/src/routing/strategies/defaultStrategy.d.ts +2 -1
  167. package/dist/src/routing/strategies/defaultStrategy.js +1 -1
  168. package/dist/src/routing/strategies/defaultStrategy.js.map +1 -1
  169. package/dist/src/routing/strategies/defaultStrategy.test.js +8 -4
  170. package/dist/src/routing/strategies/defaultStrategy.test.js.map +1 -1
  171. package/dist/src/routing/strategies/fallbackStrategy.d.ts +2 -1
  172. package/dist/src/routing/strategies/fallbackStrategy.js +1 -1
  173. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  174. package/dist/src/routing/strategies/fallbackStrategy.test.js +6 -5
  175. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
  176. package/dist/src/routing/strategies/gemmaClassifierStrategy.d.ts +14 -0
  177. package/dist/src/routing/strategies/gemmaClassifierStrategy.js +182 -0
  178. package/dist/src/routing/strategies/gemmaClassifierStrategy.js.map +1 -0
  179. package/dist/src/routing/strategies/gemmaClassifierStrategy.test.d.ts +6 -0
  180. package/dist/src/routing/strategies/gemmaClassifierStrategy.test.js +218 -0
  181. package/dist/src/routing/strategies/gemmaClassifierStrategy.test.js.map +1 -0
  182. package/dist/src/routing/strategies/numericalClassifierStrategy.d.ts +2 -1
  183. package/dist/src/routing/strategies/numericalClassifierStrategy.js +1 -1
  184. package/dist/src/routing/strategies/numericalClassifierStrategy.js.map +1 -1
  185. package/dist/src/routing/strategies/numericalClassifierStrategy.test.js +24 -22
  186. package/dist/src/routing/strategies/numericalClassifierStrategy.test.js.map +1 -1
  187. package/dist/src/routing/strategies/overrideStrategy.d.ts +2 -1
  188. package/dist/src/routing/strategies/overrideStrategy.js +1 -1
  189. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
  190. package/dist/src/routing/strategies/overrideStrategy.test.js +5 -4
  191. package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -1
  192. package/dist/src/scheduler/scheduler.d.ts +1 -0
  193. package/dist/src/scheduler/scheduler.js +18 -7
  194. package/dist/src/scheduler/scheduler.js.map +1 -1
  195. package/dist/src/scheduler/scheduler.test.js +19 -1
  196. package/dist/src/scheduler/scheduler.test.js.map +1 -1
  197. package/dist/src/scheduler/scheduler_parallel.test.js +94 -3
  198. package/dist/src/scheduler/scheduler_parallel.test.js.map +1 -1
  199. package/dist/src/scheduler/tool-executor.js +21 -12
  200. package/dist/src/scheduler/tool-executor.js.map +1 -1
  201. package/dist/src/scheduler/tool-executor.test.js +54 -0
  202. package/dist/src/scheduler/tool-executor.test.js.map +1 -1
  203. package/dist/src/services/trackerService.d.ts +49 -0
  204. package/dist/src/services/trackerService.js +172 -0
  205. package/dist/src/services/trackerService.js.map +1 -0
  206. package/dist/src/services/trackerService.test.d.ts +6 -0
  207. package/dist/src/services/trackerService.test.js +117 -0
  208. package/dist/src/services/trackerService.test.js.map +1 -0
  209. package/dist/src/services/trackerTypes.d.ts +51 -0
  210. package/dist/src/services/trackerTypes.js +33 -0
  211. package/dist/src/services/trackerTypes.js.map +1 -0
  212. package/dist/src/telemetry/billingEvents.d.ts +75 -0
  213. package/dist/src/telemetry/billingEvents.js +181 -0
  214. package/dist/src/telemetry/billingEvents.js.map +1 -0
  215. package/dist/src/telemetry/billingEvents.test.d.ts +6 -0
  216. package/dist/src/telemetry/billingEvents.test.js +139 -0
  217. package/dist/src/telemetry/billingEvents.test.js.map +1 -0
  218. package/dist/src/telemetry/conseca-logger.test.js +1 -0
  219. package/dist/src/telemetry/conseca-logger.test.js.map +1 -1
  220. package/dist/src/telemetry/constants.d.ts +25 -0
  221. package/dist/src/telemetry/constants.js +29 -0
  222. package/dist/src/telemetry/constants.js.map +1 -1
  223. package/dist/src/telemetry/index.d.ts +3 -1
  224. package/dist/src/telemetry/index.js +5 -1
  225. package/dist/src/telemetry/index.js.map +1 -1
  226. package/dist/src/telemetry/loggers.d.ts +2 -0
  227. package/dist/src/telemetry/loggers.js +10 -0
  228. package/dist/src/telemetry/loggers.js.map +1 -1
  229. package/dist/src/telemetry/loggers.test.js +16 -0
  230. package/dist/src/telemetry/loggers.test.js.map +1 -1
  231. package/dist/src/telemetry/metrics.d.ts +28 -0
  232. package/dist/src/telemetry/metrics.js +40 -0
  233. package/dist/src/telemetry/metrics.js.map +1 -1
  234. package/dist/src/telemetry/sanitize.test.js +1 -0
  235. package/dist/src/telemetry/sanitize.test.js.map +1 -1
  236. package/dist/src/telemetry/sdk.test.js +1 -0
  237. package/dist/src/telemetry/sdk.test.js.map +1 -1
  238. package/dist/src/telemetry/telemetryAttributes.js +2 -0
  239. package/dist/src/telemetry/telemetryAttributes.js.map +1 -1
  240. package/dist/src/telemetry/trace.d.ts +2 -1
  241. package/dist/src/telemetry/trace.js +13 -18
  242. package/dist/src/telemetry/trace.js.map +1 -1
  243. package/dist/src/telemetry/trace.test.d.ts +6 -0
  244. package/dist/src/telemetry/trace.test.js +116 -0
  245. package/dist/src/telemetry/trace.test.js.map +1 -0
  246. package/dist/src/tools/confirmation-policy.test.js +1 -0
  247. package/dist/src/tools/confirmation-policy.test.js.map +1 -1
  248. package/dist/src/tools/definitions/model-family-sets/default-legacy.js +2 -2
  249. package/dist/src/tools/definitions/model-family-sets/default-legacy.js.map +1 -1
  250. package/dist/src/tools/definitions/model-family-sets/gemini-3.js +3 -3
  251. package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
  252. package/dist/src/tools/grep-utils.d.ts +1 -1
  253. package/dist/src/tools/grep-utils.js +4 -4
  254. package/dist/src/tools/grep-utils.js.map +1 -1
  255. package/dist/src/tools/grep.d.ts +1 -1
  256. package/dist/src/tools/grep.js +9 -9
  257. package/dist/src/tools/grep.js.map +1 -1
  258. package/dist/src/tools/grep.test.js +8 -5
  259. package/dist/src/tools/grep.test.js.map +1 -1
  260. package/dist/src/tools/line-endings.test.js +3 -11
  261. package/dist/src/tools/line-endings.test.js.map +1 -1
  262. package/dist/src/tools/mcp-client-manager.d.ts +25 -0
  263. package/dist/src/tools/mcp-client-manager.js +66 -3
  264. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  265. package/dist/src/tools/mcp-client-manager.test.js +47 -0
  266. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  267. package/dist/src/tools/mcp-client.d.ts +20 -9
  268. package/dist/src/tools/mcp-client.js +50 -46
  269. package/dist/src/tools/mcp-client.js.map +1 -1
  270. package/dist/src/tools/mcp-client.test.js +96 -84
  271. package/dist/src/tools/mcp-client.test.js.map +1 -1
  272. package/dist/src/tools/mcp-tool.d.ts +3 -3
  273. package/dist/src/tools/mcp-tool.js +1 -0
  274. package/dist/src/tools/mcp-tool.js.map +1 -1
  275. package/dist/src/tools/ripGrep.d.ts +1 -1
  276. package/dist/src/tools/ripGrep.js +7 -7
  277. package/dist/src/tools/ripGrep.js.map +1 -1
  278. package/dist/src/tools/ripGrep.test.js +10 -7
  279. package/dist/src/tools/ripGrep.test.js.map +1 -1
  280. package/dist/src/tools/tools.d.ts +1 -0
  281. package/dist/src/tools/tools.js +1 -0
  282. package/dist/src/tools/tools.js.map +1 -1
  283. package/dist/src/tools/write-file.js +4 -17
  284. package/dist/src/tools/write-file.js.map +1 -1
  285. package/dist/src/tools/write-file.test.js +29 -83
  286. package/dist/src/tools/write-file.test.js.map +1 -1
  287. package/dist/src/utils/editCorrector.d.ts +1 -42
  288. package/dist/src/utils/editCorrector.js +9 -461
  289. package/dist/src/utils/editCorrector.js.map +1 -1
  290. package/dist/src/utils/editCorrector.test.js +17 -421
  291. package/dist/src/utils/editCorrector.test.js.map +1 -1
  292. package/dist/src/utils/envExpansion.js.map +1 -1
  293. package/dist/src/utils/errors.js +7 -0
  294. package/dist/src/utils/errors.js.map +1 -1
  295. package/dist/src/utils/errors_timeout.test.d.ts +6 -0
  296. package/dist/src/utils/errors_timeout.test.js +40 -0
  297. package/dist/src/utils/errors_timeout.test.js.map +1 -0
  298. package/dist/src/utils/extensionLoader.js +35 -0
  299. package/dist/src/utils/extensionLoader.js.map +1 -1
  300. package/dist/src/utils/extensionLoader.test.js +36 -0
  301. package/dist/src/utils/extensionLoader.test.js.map +1 -1
  302. package/dist/src/utils/fetch.js +13 -2
  303. package/dist/src/utils/fetch.js.map +1 -1
  304. package/dist/src/utils/fileUtils.js +0 -1
  305. package/dist/src/utils/fileUtils.js.map +1 -1
  306. package/dist/src/utils/fileUtils.test.js +0 -1
  307. package/dist/src/utils/fileUtils.test.js.map +1 -1
  308. package/dist/src/utils/flashFallback.test.js +24 -0
  309. package/dist/src/utils/flashFallback.test.js.map +1 -1
  310. package/dist/src/utils/googleErrors.d.ts +2 -2
  311. package/dist/src/utils/googleQuotaErrors.d.ts +3 -1
  312. package/dist/src/utils/googleQuotaErrors.js +22 -12
  313. package/dist/src/utils/googleQuotaErrors.js.map +1 -1
  314. package/dist/src/utils/googleQuotaErrors.test.js +33 -1
  315. package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
  316. package/dist/src/utils/retry.js +4 -2
  317. package/dist/src/utils/retry.js.map +1 -1
  318. package/dist/src/utils/retry.test.js +20 -0
  319. package/dist/src/utils/retry.test.js.map +1 -1
  320. package/dist/src/utils/schemaValidator.js +0 -1
  321. package/dist/src/utils/schemaValidator.js.map +1 -1
  322. package/dist/tsconfig.tsbuildinfo +1 -1
  323. package/package.json +1 -1
@@ -7,6 +7,7 @@ import { UserTierId, IneligibleTierReasonCode } from './types.js';
7
7
  import { CodeAssistServer } from './server.js';
8
8
  import { ChangeAuthRequestedError } from '../utils/errors.js';
9
9
  import { ValidationRequiredError } from '../utils/googleQuotaErrors.js';
10
+ import { debugLogger } from '../utils/debugLogger.js';
10
11
  export class ProjectIdRequiredError extends Error {
11
12
  constructor() {
12
13
  super('This account requires setting the GOOGLE_CLOUD_PROJECT or GOOGLE_CLOUD_PROJECT_ID env var. See https://goo.gle/gemini-cli-auth-docs#workspace-gca');
@@ -89,12 +90,18 @@ export async function setupUser(client, validationHandler, httpOptions = {}) {
89
90
  }
90
91
  }
91
92
  if (loadRes.currentTier) {
93
+ if (!loadRes.paidTier?.id && !loadRes.currentTier.id) {
94
+ debugLogger.warn('Warning: Code Assist API did not return a user tier ID. Defaulting to STANDARD tier.');
95
+ }
92
96
  if (!loadRes.cloudaicompanionProject) {
93
97
  if (projectId) {
94
98
  return {
95
99
  projectId,
96
- userTier: loadRes.paidTier?.id ?? loadRes.currentTier.id,
100
+ userTier: loadRes.paidTier?.id ??
101
+ loadRes.currentTier.id ??
102
+ UserTierId.STANDARD,
97
103
  userTierName: loadRes.paidTier?.name ?? loadRes.currentTier.name,
104
+ paidTier: loadRes.paidTier ?? undefined,
98
105
  };
99
106
  }
100
107
  // If user is not setup for standard tier, inform them about all other tiers they are ineligible for.
@@ -102,11 +109,15 @@ export async function setupUser(client, validationHandler, httpOptions = {}) {
102
109
  }
103
110
  return {
104
111
  projectId: loadRes.cloudaicompanionProject,
105
- userTier: loadRes.paidTier?.id ?? loadRes.currentTier.id,
112
+ userTier: loadRes.paidTier?.id ?? loadRes.currentTier.id ?? UserTierId.STANDARD,
106
113
  userTierName: loadRes.paidTier?.name ?? loadRes.currentTier.name,
114
+ paidTier: loadRes.paidTier ?? undefined,
107
115
  };
108
116
  }
109
117
  const tier = getOnboardTier(loadRes);
118
+ if (!tier.id) {
119
+ debugLogger.warn('Warning: Code Assist API did not return an onboarding tier ID. Defaulting to STANDARD tier.');
120
+ }
110
121
  let onboardReq;
111
122
  if (tier.id === UserTierId.FREE) {
112
123
  // The free tier uses a managed google cloud project. Setting a project in the `onboardUser` request causes a `Precondition Failed` error.
@@ -138,7 +149,7 @@ export async function setupUser(client, validationHandler, httpOptions = {}) {
138
149
  if (projectId) {
139
150
  return {
140
151
  projectId,
141
- userTier: tier.id,
152
+ userTier: tier.id ?? UserTierId.STANDARD,
142
153
  userTierName: tier.name,
143
154
  };
144
155
  }
@@ -146,7 +157,7 @@ export async function setupUser(client, validationHandler, httpOptions = {}) {
146
157
  }
147
158
  return {
148
159
  projectId: lroRes.response.cloudaicompanionProject.id,
149
- userTier: tier.id,
160
+ userTier: tier.id ?? UserTierId.STANDARD,
150
161
  userTierName: tier.name,
151
162
  };
152
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/code_assist/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/code_assist/setup.ts"],"names":[],"mappings":"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"}
@@ -17,10 +17,31 @@ export interface ClientMetadata {
17
17
  export type ClientMetadataIdeType = 'IDE_UNSPECIFIED' | 'VSCODE' | 'INTELLIJ' | 'VSCODE_CLOUD_WORKSTATION' | 'INTELLIJ_CLOUD_WORKSTATION' | 'CLOUD_SHELL' | 'GEMINI_CLI';
18
18
  export type ClientMetadataPlatform = 'PLATFORM_UNSPECIFIED' | 'DARWIN_AMD64' | 'DARWIN_ARM64' | 'LINUX_AMD64' | 'LINUX_ARM64' | 'WINDOWS_AMD64';
19
19
  export type ClientMetadataPluginType = 'PLUGIN_UNSPECIFIED' | 'CLOUD_CODE' | 'GEMINI' | 'AIPLUGIN_INTELLIJ' | 'AIPLUGIN_STUDIO';
20
+ /**
21
+ * Credit types that can be used for API consumption.
22
+ */
23
+ export type CreditType = 'CREDIT_TYPE_UNSPECIFIED' | 'GOOGLE_ONE_AI';
24
+ /**
25
+ * Represents a credit amount for a specific credit type.
26
+ * Used in LoadCodeAssistResponse for available credits and
27
+ * in GenerateContentResponse for consumed/remaining credits.
28
+ */
29
+ export interface Credits {
30
+ creditType: CreditType;
31
+ creditAmount: string;
32
+ }
33
+ /** Alias for Credits used in available_credits context */
34
+ export type AvailableCredits = Credits;
35
+ /** Alias for Credits used in consumedCredits context */
36
+ export type ConsumedCredits = Credits;
37
+ /** Alias for Credits used in remainingCredits context */
38
+ export type RemainingCredits = Credits;
20
39
  export interface LoadCodeAssistRequest {
21
40
  cloudaicompanionProject?: string;
22
41
  metadata: ClientMetadata;
42
+ mode?: LoadCodeAssistMode;
23
43
  }
44
+ export type LoadCodeAssistMode = 'MODE_UNSPECIFIED' | 'FULL_ELIGIBILITY_CHECK' | 'HEALTH_CHECK';
24
45
  /**
25
46
  * Represents LoadCodeAssistResponse proto json field
26
47
  * http://google3/google/internal/cloud/code/v1internal/cloudcode.proto;l=224
@@ -36,7 +57,7 @@ export interface LoadCodeAssistResponse {
36
57
  * GeminiUserTier reflects the structure received from the CodeAssist when calling LoadCodeAssist.
37
58
  */
38
59
  export interface GeminiUserTier {
39
- id: UserTierId;
60
+ id?: UserTierId;
40
61
  name?: string;
41
62
  description?: string;
42
63
  userDefinedCloudaicompanionProject?: boolean | null;
@@ -44,6 +65,8 @@ export interface GeminiUserTier {
44
65
  privacyNotice?: PrivacyNotice;
45
66
  hasAcceptedTos?: boolean;
46
67
  hasOnboardedPreviously?: boolean;
68
+ /** Available AI credits for this tier (e.g., Google One AI credits) */
69
+ availableCredits?: AvailableCredits[];
47
70
  }
48
71
  /**
49
72
  * Includes information specifying the reasons for a user's ineligibility for a specific tier.
@@ -53,10 +76,10 @@ export interface GeminiUserTier {
53
76
  * @param tierName name of the tier.
54
77
  */
55
78
  export interface IneligibleTier {
56
- reasonCode: IneligibleTierReasonCode;
57
- reasonMessage: string;
58
- tierId: UserTierId;
59
- tierName: string;
79
+ reasonCode?: IneligibleTierReasonCode;
80
+ reasonMessage?: string;
81
+ tierId?: UserTierId;
82
+ tierName?: string;
60
83
  validationErrorMessage?: string;
61
84
  validationUrl?: string;
62
85
  validationUrlLinkText?: string;
@@ -96,7 +119,7 @@ export type UserTierId = (typeof UserTierId)[keyof typeof UserTierId] | string;
96
119
  * privacy notice.
97
120
  */
98
121
  export interface PrivacyNotice {
99
- showNotice: boolean;
122
+ showNotice?: boolean;
100
123
  noticeText?: string;
101
124
  }
102
125
  /**
@@ -112,7 +135,7 @@ export interface OnboardUserRequest {
112
135
  * http://google3/google/longrunning/operations.proto;rcl=698857719;l=107
113
136
  */
114
137
  export interface LongRunningOperationResponse {
115
- name: string;
138
+ name?: string;
116
139
  done?: boolean;
117
140
  response?: OnboardUserResponse;
118
141
  }
@@ -122,8 +145,8 @@ export interface LongRunningOperationResponse {
122
145
  */
123
146
  export interface OnboardUserResponse {
124
147
  cloudaicompanionProject?: {
125
- id: string;
126
- name: string;
148
+ id?: string;
149
+ name?: string;
127
150
  };
128
151
  }
129
152
  /**
@@ -155,7 +178,7 @@ export interface SetCodeAssistGlobalUserSettingRequest {
155
178
  }
156
179
  export interface CodeAssistGlobalUserSettingResponse {
157
180
  cloudaicompanionProject?: string;
158
- freeTierDataCollectionOptin: boolean;
181
+ freeTierDataCollectionOptin?: boolean;
159
182
  }
160
183
  /**
161
184
  * Relevant fields that can be returned from a Google RPC response
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/code_assist/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/code_assist/types.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,14 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import type { ContentGenerator, ContentGeneratorConfig } from '../core/contentGenerator.js';
7
+ import type { OverageStrategy } from '../billing/billing.js';
7
8
  import { AuthType } from '../core/contentGenerator.js';
8
9
  import { PromptRegistry } from '../prompts/prompt-registry.js';
9
10
  import { ResourceRegistry } from '../resources/resource-registry.js';
10
11
  import { ToolRegistry } from '../tools/tool-registry.js';
11
12
  import { GeminiClient } from '../core/client.js';
12
13
  import { BaseLlmClient } from '../core/baseLlmClient.js';
14
+ import { LocalLiteRtLmClient } from '../core/localLiteRtLmClient.js';
13
15
  import type { HookDefinition, HookEventName } from '../hooks/types.js';
14
16
  import { FileDiscoveryService } from '../services/fileDiscoveryService.js';
15
17
  import { GitService } from '../services/gitService.js';
@@ -34,9 +36,9 @@ import { FileExclusions } from '../utils/ignorePatterns.js';
34
36
  import { MessageBus } from '../confirmation-bus/message-bus.js';
35
37
  import type { EventEmitter } from 'node:events';
36
38
  import { PolicyEngine } from '../policy/policy-engine.js';
37
- import { ApprovalMode, type PolicyEngineConfig } from '../policy/types.js';
39
+ import { ApprovalMode, type PolicyEngineConfig, type PolicyRule, type SafetyCheckerRule } from '../policy/types.js';
38
40
  import { HookSystem } from '../hooks/index.js';
39
- import type { UserTierId, RetrieveUserQuotaResponse, AdminControlsSettings } from '../code_assist/types.js';
41
+ import type { UserTierId, GeminiUserTier, RetrieveUserQuotaResponse, AdminControlsSettings } from '../code_assist/types.js';
40
42
  import type { HierarchicalMemory } from './memory.js';
41
43
  import type { Experiments } from '../code_assist/experiments/experiments.js';
42
44
  import { AgentRegistry } from '../agents/registry.js';
@@ -78,6 +80,13 @@ export interface ToolOutputMaskingConfig {
78
80
  minPrunableTokensThreshold: number;
79
81
  protectLatestTurn: boolean;
80
82
  }
83
+ export interface GemmaModelRouterSettings {
84
+ enabled?: boolean;
85
+ classifier?: {
86
+ host?: string;
87
+ model?: string;
88
+ };
89
+ }
81
90
  export interface ExtensionSetting {
82
91
  name: string;
83
92
  description: string;
@@ -207,6 +216,14 @@ export interface GeminiCLIExtension {
207
216
  * These themes will be registered when the extension is activated.
208
217
  */
209
218
  themes?: CustomTheme[];
219
+ /**
220
+ * Policy rules contributed by this extension.
221
+ */
222
+ rules?: PolicyRule[];
223
+ /**
224
+ * Safety checkers contributed by this extension.
225
+ */
226
+ checkers?: SafetyCheckerRule[];
210
227
  }
211
228
  export interface ExtensionInstallMetadata {
212
229
  source: string;
@@ -220,6 +237,7 @@ import type { FileFilteringOptions } from './constants.js';
220
237
  import { DEFAULT_FILE_FILTERING_OPTIONS, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS } from './constants.js';
221
238
  import { type ExtensionLoader } from '../utils/extensionLoader.js';
222
239
  import { McpClientManager } from '../tools/mcp-client-manager.js';
240
+ import { type McpContext } from '../tools/mcp-client.js';
223
241
  import type { EnvironmentSanitizationConfig } from '../services/environmentSanitization.js';
224
242
  export type { FileFilteringOptions };
225
243
  export { DEFAULT_FILE_FILTERING_OPTIONS, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, };
@@ -341,6 +359,7 @@ export interface ConfigParameters {
341
359
  interactive?: boolean;
342
360
  trustedFolder?: boolean;
343
361
  useBackgroundColor?: boolean;
362
+ useAlternateBuffer?: boolean;
344
363
  useRipgrep?: boolean;
345
364
  enableInteractiveShell?: boolean;
346
365
  skipNextSpeakerCheck?: boolean;
@@ -353,6 +372,7 @@ export interface ConfigParameters {
353
372
  directWebFetch?: boolean;
354
373
  policyUpdateConfirmationRequest?: PolicyUpdateConfirmationRequest;
355
374
  output?: OutputSettings;
375
+ gemmaModelRouter?: GemmaModelRouterSettings;
356
376
  disableModelRouterForAuth?: AuthType[];
357
377
  continueOnFailedApiCall?: boolean;
358
378
  retryFetchErrors?: boolean;
@@ -397,8 +417,11 @@ export interface ConfigParameters {
397
417
  agents?: AgentSettings;
398
418
  }>;
399
419
  enableConseca?: boolean;
420
+ billing?: {
421
+ overageStrategy?: OverageStrategy;
422
+ };
400
423
  }
401
- export declare class Config {
424
+ export declare class Config implements McpContext {
402
425
  private toolRegistry;
403
426
  private mcpClientManager?;
404
427
  private allowedMcpServers;
@@ -445,6 +468,7 @@ export declare class Config {
445
468
  private readonly usageStatisticsEnabled;
446
469
  private geminiClient;
447
470
  private baseLlmClient;
471
+ private localLiteRtLmClient?;
448
472
  private modelRouterService;
449
473
  private readonly modelAvailabilityService;
450
474
  private readonly fileFiltering;
@@ -493,6 +517,7 @@ export declare class Config {
493
517
  private readonly enableInteractiveShell;
494
518
  private readonly skipNextSpeakerCheck;
495
519
  private readonly useBackgroundColor;
520
+ private readonly useAlternateBuffer;
496
521
  private shellExecutionConfig;
497
522
  private readonly extensionManagement;
498
523
  private readonly truncateToolOutputThreshold;
@@ -507,6 +532,7 @@ export declare class Config {
507
532
  private readonly policyEngine;
508
533
  private policyUpdateConfirmationRequest;
509
534
  private readonly outputSettings;
535
+ private readonly gemmaModelRouter;
510
536
  private readonly continueOnFailedApiCall;
511
537
  private readonly retryFetchErrors;
512
538
  private readonly maxAttempts;
@@ -529,6 +555,7 @@ export declare class Config {
529
555
  private hookSystem?;
530
556
  private readonly onModelChange;
531
557
  private readonly onReload;
558
+ private readonly billing;
532
559
  private readonly enableAgents;
533
560
  private agents;
534
561
  private readonly enableEventDrivenScheduler;
@@ -556,14 +583,16 @@ export declare class Config {
556
583
  initialize(): Promise<void>;
557
584
  private _initialize;
558
585
  getContentGenerator(): ContentGenerator;
559
- refreshAuth(authMethod: AuthType): Promise<void>;
586
+ refreshAuth(authMethod: AuthType, apiKey?: string): Promise<void>;
560
587
  getExperimentsAsync(): Promise<Experiments | undefined>;
561
588
  getUserTier(): UserTierId | undefined;
562
589
  getUserTierName(): string | undefined;
590
+ getUserPaidTier(): GeminiUserTier | undefined;
563
591
  /**
564
592
  * Provides access to the BaseLlmClient for stateless LLM operations.
565
593
  */
566
594
  getBaseLlmClient(): BaseLlmClient;
595
+ getLocalLiteRtLmClient(): LocalLiteRtLmClient;
567
596
  getSessionId(): string;
568
597
  setSessionId(sessionId: string): void;
569
598
  setTerminalBackground(terminalBackground: string | undefined): void;
@@ -612,6 +641,7 @@ export declare class Config {
612
641
  getQuestion(): string | undefined;
613
642
  getHasAccessToPreviewModel(): boolean;
614
643
  setHasAccessToPreviewModel(hasAccess: boolean | null): void;
644
+ refreshAvailableCredits(): Promise<void>;
615
645
  refreshUserQuota(): Promise<RetrieveUserQuotaResponse | undefined>;
616
646
  refreshUserQuotaIfStale(staleMs?: number): Promise<RetrieveUserQuotaResponse | undefined>;
617
647
  getLastRetrievedQuota(): RetrieveUserQuotaResponse | undefined;
@@ -642,6 +672,10 @@ export declare class Config {
642
672
  getMcpEnablementCallbacks(): McpEnablementCallbacks | undefined;
643
673
  getExtensionsEnabled(): boolean;
644
674
  getMcpClientManager(): McpClientManager | undefined;
675
+ setUserInteractedWithMcp(): void;
676
+ /** @deprecated Use getMcpClientManager().getLastError() directly */
677
+ getLastMcpError(serverName: string): string | undefined;
678
+ emitMcpDiagnostic(severity: 'info' | 'warning' | 'error', message: string, error?: unknown, serverName?: string): void;
645
679
  getAllowedMcpServers(): string[] | undefined;
646
680
  getBlockedMcpServers(): string[] | undefined;
647
681
  get sanitizationConfig(): EnvironmentSanitizationConfig;
@@ -694,6 +728,15 @@ export declare class Config {
694
728
  getTelemetryOtlpProtocol(): 'grpc' | 'http';
695
729
  getTelemetryTarget(): TelemetryTarget;
696
730
  getTelemetryOutfile(): string | undefined;
731
+ getBillingSettings(): {
732
+ overageStrategy: OverageStrategy;
733
+ };
734
+ /**
735
+ * Updates the overage strategy at runtime.
736
+ * Used to switch from 'ask' to 'always' after the user accepts credits
737
+ * via the overage dialog, so subsequent API calls auto-include credits.
738
+ */
739
+ setOverageStrategy(strategy: OverageStrategy): void;
697
740
  getTelemetryUseCollector(): boolean;
698
741
  getTelemetryUseCliAuth(): boolean;
699
742
  getGeminiClient(): GeminiClient;
@@ -811,6 +854,7 @@ export declare class Config {
811
854
  isInteractive(): boolean;
812
855
  getUseRipgrep(): boolean;
813
856
  getUseBackgroundColor(): boolean;
857
+ getUseAlternateBuffer(): boolean;
814
858
  getEnableInteractiveShell(): boolean;
815
859
  getSkipNextSpeakerCheck(): boolean;
816
860
  getContinueOnFailedApiCall(): boolean;
@@ -831,6 +875,8 @@ export declare class Config {
831
875
  getPolicyEngine(): PolicyEngine;
832
876
  getEnableHooks(): boolean;
833
877
  getEnableHooksUI(): boolean;
878
+ getGemmaModelRouterEnabled(): boolean;
879
+ getGemmaModelRouterSettings(): GemmaModelRouterSettings;
834
880
  /**
835
881
  * Get override settings for a specific agent.
836
882
  * Reads from agents.overrides.<agentName>.
@@ -29,6 +29,7 @@ import { ExitPlanModeTool } from '../tools/exit-plan-mode.js';
29
29
  import { EnterPlanModeTool } from '../tools/enter-plan-mode.js';
30
30
  import { GeminiClient } from '../core/client.js';
31
31
  import { BaseLlmClient } from '../core/baseLlmClient.js';
32
+ import { LocalLiteRtLmClient } from '../core/localLiteRtLmClient.js';
32
33
  import { FileDiscoveryService } from '../services/fileDiscoveryService.js';
33
34
  import { GitService } from '../services/gitService.js';
34
35
  import { initializeTelemetry, DEFAULT_TELEMETRY_TARGET, DEFAULT_OTLP_ENDPOINT, uiTelemetryService, } from '../telemetry/index.js';
@@ -52,7 +53,7 @@ import { Storage } from './storage.js';
52
53
  import { FileExclusions } from '../utils/ignorePatterns.js';
53
54
  import { MessageBus } from '../confirmation-bus/message-bus.js';
54
55
  import { PolicyEngine } from '../policy/policy-engine.js';
55
- import { ApprovalMode } from '../policy/types.js';
56
+ import { ApprovalMode, } from '../policy/types.js';
56
57
  import { HookSystem } from '../hooks/index.js';
57
58
  import { getCodeAssistServer } from '../code_assist/codeAssist.js';
58
59
  import { AgentRegistry } from '../agents/registry.js';
@@ -78,6 +79,7 @@ import { DEFAULT_FILE_FILTERING_OPTIONS, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS,
78
79
  import { DEFAULT_TOOL_PROTECTION_THRESHOLD, DEFAULT_MIN_PRUNABLE_TOKENS_THRESHOLD, DEFAULT_PROTECT_LATEST_TURN, } from '../services/toolOutputMaskingService.js';
79
80
  import { SimpleExtensionLoader, } from '../utils/extensionLoader.js';
80
81
  import { McpClientManager } from '../tools/mcp-client-manager.js';
82
+ import {} from '../tools/mcp-client.js';
81
83
  import { getErrorMessage } from '../utils/errors.js';
82
84
  import { ENTER_PLAN_MODE_TOOL_NAME, EXIT_PLAN_MODE_TOOL_NAME, } from '../tools/tool-names.js';
83
85
  export { DEFAULT_FILE_FILTERING_OPTIONS, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, };
@@ -202,6 +204,7 @@ export class Config {
202
204
  usageStatisticsEnabled;
203
205
  geminiClient;
204
206
  baseLlmClient;
207
+ localLiteRtLmClient;
205
208
  modelRouterService;
206
209
  modelAvailabilityService;
207
210
  fileFiltering;
@@ -259,6 +262,7 @@ export class Config {
259
262
  enableInteractiveShell;
260
263
  skipNextSpeakerCheck;
261
264
  useBackgroundColor;
265
+ useAlternateBuffer;
262
266
  shellExecutionConfig;
263
267
  extensionManagement = true;
264
268
  truncateToolOutputThreshold;
@@ -273,6 +277,7 @@ export class Config {
273
277
  policyEngine;
274
278
  policyUpdateConfirmationRequest;
275
279
  outputSettings;
280
+ gemmaModelRouter;
276
281
  continueOnFailedApiCall;
277
282
  retryFetchErrors;
278
283
  maxAttempts;
@@ -295,6 +300,7 @@ export class Config {
295
300
  hookSystem;
296
301
  onModelChange;
297
302
  onReload;
303
+ billing;
298
304
  enableAgents;
299
305
  agents;
300
306
  enableEventDrivenScheduler;
@@ -429,6 +435,7 @@ export class Config {
429
435
  this.directWebFetch = params.directWebFetch ?? false;
430
436
  this.useRipgrep = params.useRipgrep ?? true;
431
437
  this.useBackgroundColor = params.useBackgroundColor ?? true;
438
+ this.useAlternateBuffer = params.useAlternateBuffer ?? false;
432
439
  this.enableInteractiveShell = params.enableInteractiveShell ?? false;
433
440
  this.skipNextSpeakerCheck = params.skipNextSpeakerCheck ?? true;
434
441
  this.shellExecutionConfig = {
@@ -488,6 +495,13 @@ export class Config {
488
495
  this.outputSettings = {
489
496
  format: params.output?.format ?? OutputFormat.TEXT,
490
497
  };
498
+ this.gemmaModelRouter = {
499
+ enabled: params.gemmaModelRouter?.enabled ?? false,
500
+ classifier: {
501
+ host: params.gemmaModelRouter?.classifier?.host ?? 'http://localhost:9379',
502
+ model: params.gemmaModelRouter?.classifier?.model ?? 'gemma3-1b-gpu-custom',
503
+ },
504
+ };
491
505
  this.retryFetchErrors = params.retryFetchErrors ?? false;
492
506
  this.maxAttempts = Math.min(params.maxAttempts ?? DEFAULT_MAX_ATTEMPTS, DEFAULT_MAX_ATTEMPTS);
493
507
  this.disableYoloMode = params.disableYoloMode ?? false;
@@ -502,6 +516,9 @@ export class Config {
502
516
  this.experiments = params.experiments;
503
517
  this.onModelChange = params.onModelChange;
504
518
  this.onReload = params.onReload;
519
+ this.billing = {
520
+ overageStrategy: params.billing?.overageStrategy ?? 'ask',
521
+ };
505
522
  if (params.contextFileName) {
506
523
  setGeminiMdFilename(params.contextFileName);
507
524
  }
@@ -627,7 +644,7 @@ export class Config {
627
644
  getContentGenerator() {
628
645
  return this.contentGenerator;
629
646
  }
630
- async refreshAuth(authMethod) {
647
+ async refreshAuth(authMethod, apiKey) {
631
648
  // Reset availability service when switching auth
632
649
  this.modelAvailabilityService.reset();
633
650
  // Vertex and Genai have incompatible encryption and sending history with
@@ -644,7 +661,7 @@ export class Config {
644
661
  if (this.contentGeneratorConfig) {
645
662
  this.contentGeneratorConfig.authType = undefined;
646
663
  }
647
- const newContentGeneratorConfig = await createContentGeneratorConfig(this, authMethod);
664
+ const newContentGeneratorConfig = await createContentGeneratorConfig(this, authMethod, apiKey);
648
665
  this.contentGenerator = await createContentGenerator(newContentGeneratorConfig, this, this.getSessionId());
649
666
  // Only assign to instance properties after successful initialization
650
667
  this.contentGeneratorConfig = newContentGeneratorConfig;
@@ -694,6 +711,9 @@ export class Config {
694
711
  getUserTierName() {
695
712
  return this.contentGenerator?.userTierName;
696
713
  }
714
+ getUserPaidTier() {
715
+ return this.contentGenerator?.paidTier;
716
+ }
697
717
  /**
698
718
  * Provides access to the BaseLlmClient for stateless LLM operations.
699
719
  */
@@ -709,6 +729,12 @@ export class Config {
709
729
  }
710
730
  return this.baseLlmClient;
711
731
  }
732
+ getLocalLiteRtLmClient() {
733
+ if (!this.localLiteRtLmClient) {
734
+ this.localLiteRtLmClient = new LocalLiteRtLmClient(this);
735
+ }
736
+ return this.localLiteRtLmClient;
737
+ }
712
738
  getSessionId() {
713
739
  return this.sessionId;
714
740
  }
@@ -922,6 +948,19 @@ export class Config {
922
948
  setHasAccessToPreviewModel(hasAccess) {
923
949
  this.hasAccessToPreviewModel = hasAccess;
924
950
  }
951
+ async refreshAvailableCredits() {
952
+ const codeAssistServer = getCodeAssistServer(this);
953
+ if (!codeAssistServer) {
954
+ return;
955
+ }
956
+ try {
957
+ await codeAssistServer.refreshAvailableCredits();
958
+ }
959
+ catch {
960
+ // Non-fatal: proceed even if refresh fails.
961
+ // The actual credit balance will be verified server-side.
962
+ }
963
+ }
925
964
  async refreshUserQuota() {
926
965
  const codeAssistServer = getCodeAssistServer(this);
927
966
  if (!codeAssistServer || !codeAssistServer.projectId) {
@@ -1043,6 +1082,21 @@ export class Config {
1043
1082
  getMcpClientManager() {
1044
1083
  return this.mcpClientManager;
1045
1084
  }
1085
+ setUserInteractedWithMcp() {
1086
+ this.mcpClientManager?.setUserInteractedWithMcp();
1087
+ }
1088
+ /** @deprecated Use getMcpClientManager().getLastError() directly */
1089
+ getLastMcpError(serverName) {
1090
+ return this.mcpClientManager?.getLastError(serverName);
1091
+ }
1092
+ emitMcpDiagnostic(severity, message, error, serverName) {
1093
+ if (this.mcpClientManager) {
1094
+ this.mcpClientManager.emitDiagnostic(severity, message, error, serverName);
1095
+ }
1096
+ else {
1097
+ coreEvents.emitFeedback(severity, message, error);
1098
+ }
1099
+ }
1046
1100
  getAllowedMcpServers() {
1047
1101
  return this.allowedMcpServers;
1048
1102
  }
@@ -1284,6 +1338,17 @@ export class Config {
1284
1338
  getTelemetryOutfile() {
1285
1339
  return this.telemetrySettings.outfile;
1286
1340
  }
1341
+ getBillingSettings() {
1342
+ return this.billing;
1343
+ }
1344
+ /**
1345
+ * Updates the overage strategy at runtime.
1346
+ * Used to switch from 'ask' to 'always' after the user accepts credits
1347
+ * via the overage dialog, so subsequent API calls auto-include credits.
1348
+ */
1349
+ setOverageStrategy(strategy) {
1350
+ this.billing.overageStrategy = strategy;
1351
+ }
1287
1352
  getTelemetryUseCollector() {
1288
1353
  return this.telemetrySettings.useCollector ?? false;
1289
1354
  }
@@ -1656,6 +1721,9 @@ export class Config {
1656
1721
  getUseBackgroundColor() {
1657
1722
  return this.useBackgroundColor;
1658
1723
  }
1724
+ getUseAlternateBuffer() {
1725
+ return this.useAlternateBuffer;
1726
+ }
1659
1727
  getEnableInteractiveShell() {
1660
1728
  return this.enableInteractiveShell;
1661
1729
  }
@@ -1732,6 +1800,12 @@ export class Config {
1732
1800
  getEnableHooksUI() {
1733
1801
  return this.enableHooksUI;
1734
1802
  }
1803
+ getGemmaModelRouterEnabled() {
1804
+ return this.gemmaModelRouter.enabled ?? false;
1805
+ }
1806
+ getGemmaModelRouterSettings() {
1807
+ return this.gemmaModelRouter;
1808
+ }
1735
1809
  /**
1736
1810
  * Get override settings for a specific agent.
1737
1811
  * Reads from agents.overrides.<agentName>.