@office-ai/aioncli-core 0.30.0 → 0.30.2

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 (324) hide show
  1. package/dist/docs/assets/theme-ansi-dark.png +0 -0
  2. package/dist/docs/assets/theme-atom-one-dark.png +0 -0
  3. package/dist/docs/assets/theme-ayu-dark.png +0 -0
  4. package/dist/docs/assets/theme-default-dark.png +0 -0
  5. package/dist/docs/assets/theme-dracula-dark.png +0 -0
  6. package/dist/docs/assets/theme-github-dark.png +0 -0
  7. package/dist/docs/assets/theme-holiday-dark.png +0 -0
  8. package/dist/docs/assets/theme-shades-of-purple-dark.png +0 -0
  9. package/dist/docs/assets/theme-solarized-dark.png +0 -0
  10. package/dist/docs/assets/theme-solarized-light.png +0 -0
  11. package/dist/docs/cli/notifications.md +58 -0
  12. package/dist/docs/redirects.json +20 -0
  13. package/dist/docs/reference/commands.md +563 -0
  14. package/dist/docs/reference/configuration.md +1804 -0
  15. package/dist/docs/reference/keyboard-shortcuts.md +168 -0
  16. package/dist/docs/reference/memport.md +246 -0
  17. package/dist/docs/reference/policy-engine.md +386 -0
  18. package/dist/docs/reference/tools.md +106 -0
  19. package/dist/docs/resources/faq.md +175 -0
  20. package/dist/docs/resources/quota-and-pricing.md +199 -0
  21. package/dist/docs/resources/tos-privacy.md +102 -0
  22. package/dist/docs/resources/troubleshooting.md +176 -0
  23. package/dist/docs/resources/uninstall.md +56 -0
  24. package/dist/src/agents/a2a-errors.d.ts +65 -0
  25. package/dist/src/agents/a2a-errors.js +164 -0
  26. package/dist/src/agents/a2a-errors.js.map +1 -0
  27. package/dist/src/agents/a2a-errors.test.d.ts +6 -0
  28. package/dist/src/agents/a2a-errors.test.js +183 -0
  29. package/dist/src/agents/a2a-errors.test.js.map +1 -0
  30. package/dist/src/agents/auth-provider/api-key-provider.d.ts +30 -0
  31. package/dist/src/agents/auth-provider/api-key-provider.js +66 -0
  32. package/dist/src/agents/auth-provider/api-key-provider.js.map +1 -0
  33. package/dist/src/agents/auth-provider/api-key-provider.test.d.ts +6 -0
  34. package/dist/src/agents/auth-provider/api-key-provider.test.js +130 -0
  35. package/dist/src/agents/auth-provider/api-key-provider.test.js.map +1 -0
  36. package/dist/src/agents/auth-provider/http-provider.d.ts +28 -0
  37. package/dist/src/agents/auth-provider/http-provider.js +73 -0
  38. package/dist/src/agents/auth-provider/http-provider.js.map +1 -0
  39. package/dist/src/agents/auth-provider/http-provider.test.d.ts +6 -0
  40. package/dist/src/agents/auth-provider/http-provider.test.js +112 -0
  41. package/dist/src/agents/auth-provider/http-provider.test.js.map +1 -0
  42. package/dist/src/agents/auth-provider/oauth2-provider.d.ts +65 -0
  43. package/dist/src/agents/auth-provider/oauth2-provider.js +233 -0
  44. package/dist/src/agents/auth-provider/oauth2-provider.js.map +1 -0
  45. package/dist/src/agents/auth-provider/oauth2-provider.test.d.ts +6 -0
  46. package/dist/src/agents/auth-provider/oauth2-provider.test.js +490 -0
  47. package/dist/src/agents/auth-provider/oauth2-provider.test.js.map +1 -0
  48. package/dist/src/agents/browser/analyzeScreenshot.d.ts +35 -0
  49. package/dist/src/agents/browser/analyzeScreenshot.js +183 -0
  50. package/dist/src/agents/browser/analyzeScreenshot.js.map +1 -0
  51. package/dist/src/agents/browser/analyzeScreenshot.test.d.ts +6 -0
  52. package/dist/src/agents/browser/analyzeScreenshot.test.js +161 -0
  53. package/dist/src/agents/browser/analyzeScreenshot.test.js.map +1 -0
  54. package/dist/src/agents/browser/automationOverlay.d.ts +26 -0
  55. package/dist/src/agents/browser/automationOverlay.js +100 -0
  56. package/dist/src/agents/browser/automationOverlay.js.map +1 -0
  57. package/dist/src/agents/browser/browserAgentDefinition.d.ts +50 -0
  58. package/dist/src/agents/browser/browserAgentDefinition.js +141 -0
  59. package/dist/src/agents/browser/browserAgentDefinition.js.map +1 -0
  60. package/dist/src/agents/browser/browserAgentFactory.d.ts +42 -0
  61. package/dist/src/agents/browser/browserAgentFactory.js +116 -0
  62. package/dist/src/agents/browser/browserAgentFactory.js.map +1 -0
  63. package/dist/src/agents/browser/browserAgentFactory.test.d.ts +6 -0
  64. package/dist/src/agents/browser/browserAgentFactory.test.js +240 -0
  65. package/dist/src/agents/browser/browserAgentFactory.test.js.map +1 -0
  66. package/dist/src/agents/browser/browserAgentInvocation.d.ts +34 -0
  67. package/dist/src/agents/browser/browserAgentInvocation.js +386 -0
  68. package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -0
  69. package/dist/src/agents/browser/browserAgentInvocation.test.d.ts +6 -0
  70. package/dist/src/agents/browser/browserAgentInvocation.test.js +382 -0
  71. package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -0
  72. package/dist/src/agents/browser/browserManager.d.ts +115 -0
  73. package/dist/src/agents/browser/browserManager.js +370 -0
  74. package/dist/src/agents/browser/browserManager.js.map +1 -0
  75. package/dist/src/agents/browser/browserManager.test.d.ts +6 -0
  76. package/dist/src/agents/browser/browserManager.test.js +382 -0
  77. package/dist/src/agents/browser/browserManager.test.js.map +1 -0
  78. package/dist/src/agents/browser/mcpToolWrapper.d.ts +45 -0
  79. package/dist/src/agents/browser/mcpToolWrapper.js +358 -0
  80. package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -0
  81. package/dist/src/agents/browser/mcpToolWrapper.test.d.ts +6 -0
  82. package/dist/src/agents/browser/mcpToolWrapper.test.js +126 -0
  83. package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -0
  84. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.d.ts +6 -0
  85. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.js +59 -0
  86. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.js.map +1 -0
  87. package/dist/src/agents/browser/modelAvailability.d.ts +23 -0
  88. package/dist/src/agents/browser/modelAvailability.js +23 -0
  89. package/dist/src/agents/browser/modelAvailability.js.map +1 -0
  90. package/dist/src/billing/billing.d.ts +80 -0
  91. package/dist/src/billing/billing.js +128 -0
  92. package/dist/src/billing/billing.js.map +1 -0
  93. package/dist/src/billing/billing.test.d.ts +6 -0
  94. package/dist/src/billing/billing.test.js +182 -0
  95. package/dist/src/billing/billing.test.js.map +1 -0
  96. package/dist/src/billing/index.d.ts +6 -0
  97. package/dist/src/billing/index.js +7 -0
  98. package/dist/src/billing/index.js.map +1 -0
  99. package/dist/src/code_assist/types.d.ts +14 -14
  100. package/dist/src/config/agent-loop-context.d.ts +22 -0
  101. package/dist/src/config/agent-loop-context.js +7 -0
  102. package/dist/src/config/agent-loop-context.js.map +1 -0
  103. package/dist/src/config/trackerFeatureFlag.test.d.ts +6 -0
  104. package/dist/src/config/trackerFeatureFlag.test.js +43 -0
  105. package/dist/src/config/trackerFeatureFlag.test.js.map +1 -0
  106. package/dist/src/config/userHintService.d.ts +46 -0
  107. package/dist/src/config/userHintService.js +81 -0
  108. package/dist/src/config/userHintService.js.map +1 -0
  109. package/dist/src/config/userHintService.test.d.ts +6 -0
  110. package/dist/src/config/userHintService.test.js +62 -0
  111. package/dist/src/config/userHintService.test.js.map +1 -0
  112. package/dist/src/core/localLiteRtLmClient.d.ts +24 -0
  113. package/dist/src/core/localLiteRtLmClient.js +77 -0
  114. package/dist/src/core/localLiteRtLmClient.js.map +1 -0
  115. package/dist/src/core/localLiteRtLmClient.test.d.ts +6 -0
  116. package/dist/src/core/localLiteRtLmClient.test.js +87 -0
  117. package/dist/src/core/localLiteRtLmClient.test.js.map +1 -0
  118. package/dist/src/core/openaiContentGenerator.d.ts +1 -0
  119. package/dist/src/core/openaiContentGenerator.js +15 -14
  120. package/dist/src/core/openaiContentGenerator.js.map +1 -1
  121. package/dist/src/generated/git-commit.d.ts +2 -2
  122. package/dist/src/generated/git-commit.js +2 -2
  123. package/dist/src/hooks/runtimeHooks.test.d.ts +6 -0
  124. package/dist/src/hooks/runtimeHooks.test.js +100 -0
  125. package/dist/src/hooks/runtimeHooks.test.js.map +1 -0
  126. package/dist/src/ide/types.d.ts +10 -10
  127. package/dist/src/mcp/mcp-oauth-provider.d.ts +43 -0
  128. package/dist/src/mcp/mcp-oauth-provider.js +67 -0
  129. package/dist/src/mcp/mcp-oauth-provider.js.map +1 -0
  130. package/dist/src/mcp/mcp-oauth-provider.test.d.ts +6 -0
  131. package/dist/src/mcp/mcp-oauth-provider.test.js +63 -0
  132. package/dist/src/mcp/mcp-oauth-provider.test.js.map +1 -0
  133. package/dist/src/policy/integrity.d.ts +45 -0
  134. package/dist/src/policy/integrity.js +121 -0
  135. package/dist/src/policy/integrity.js.map +1 -0
  136. package/dist/src/policy/integrity.test.d.ts +6 -0
  137. package/dist/src/policy/integrity.test.js +132 -0
  138. package/dist/src/policy/integrity.test.js.map +1 -0
  139. package/dist/src/policy/policies/conseca.toml +6 -0
  140. package/dist/src/policy/workspace-policy.test.js +231 -0
  141. package/dist/src/policy/workspace-policy.test.js.map +1 -0
  142. package/dist/src/routing/strategies/approvalModeStrategy.d.ts +18 -0
  143. package/dist/src/routing/strategies/approvalModeStrategy.js +59 -0
  144. package/dist/src/routing/strategies/approvalModeStrategy.js.map +1 -0
  145. package/dist/src/routing/strategies/approvalModeStrategy.test.d.ts +6 -0
  146. package/dist/src/routing/strategies/approvalModeStrategy.test.js +140 -0
  147. package/dist/src/routing/strategies/approvalModeStrategy.test.js.map +1 -0
  148. package/dist/src/routing/strategies/gemmaClassifierStrategy.d.ts +14 -0
  149. package/dist/src/routing/strategies/gemmaClassifierStrategy.js +182 -0
  150. package/dist/src/routing/strategies/gemmaClassifierStrategy.js.map +1 -0
  151. package/dist/src/routing/strategies/gemmaClassifierStrategy.test.d.ts +6 -0
  152. package/dist/src/routing/strategies/gemmaClassifierStrategy.test.js +218 -0
  153. package/dist/src/routing/strategies/gemmaClassifierStrategy.test.js.map +1 -0
  154. package/dist/src/safety/conseca/conseca.d.ts +31 -0
  155. package/dist/src/safety/conseca/conseca.js +105 -0
  156. package/dist/src/safety/conseca/conseca.js.map +1 -0
  157. package/dist/src/safety/conseca/conseca.test.js +226 -0
  158. package/dist/src/safety/conseca/conseca.test.js.map +1 -0
  159. package/dist/src/safety/conseca/integration.test.js +19 -0
  160. package/dist/src/safety/conseca/integration.test.js.map +1 -0
  161. package/dist/src/safety/conseca/policy-enforcer.d.ts +13 -0
  162. package/dist/src/safety/conseca/policy-enforcer.js +135 -0
  163. package/dist/src/safety/conseca/policy-enforcer.js.map +1 -0
  164. package/dist/src/safety/conseca/policy-enforcer.test.js +141 -0
  165. package/dist/src/safety/conseca/policy-enforcer.test.js.map +1 -0
  166. package/dist/src/safety/conseca/policy-generator.d.ts +15 -0
  167. package/dist/src/safety/conseca/policy-generator.js +144 -0
  168. package/dist/src/safety/conseca/policy-generator.js.map +1 -0
  169. package/dist/src/safety/conseca/policy-generator.test.d.ts +6 -0
  170. package/dist/src/safety/conseca/policy-generator.test.js +84 -0
  171. package/dist/src/safety/conseca/policy-generator.test.js.map +1 -0
  172. package/dist/src/safety/conseca/types.d.ts +15 -0
  173. package/dist/src/safety/conseca/types.js +7 -0
  174. package/dist/src/safety/conseca/types.js.map +1 -0
  175. package/dist/src/scheduler/scheduler_parallel.test.d.ts +6 -0
  176. package/dist/src/scheduler/scheduler_parallel.test.js +401 -0
  177. package/dist/src/scheduler/scheduler_parallel.test.js.map +1 -0
  178. package/dist/src/services/FolderTrustDiscoveryService.d.ts +32 -0
  179. package/dist/src/services/FolderTrustDiscoveryService.js +169 -0
  180. package/dist/src/services/FolderTrustDiscoveryService.js.map +1 -0
  181. package/dist/src/services/FolderTrustDiscoveryService.test.d.ts +6 -0
  182. package/dist/src/services/FolderTrustDiscoveryService.test.js +118 -0
  183. package/dist/src/services/FolderTrustDiscoveryService.test.js.map +1 -0
  184. package/dist/src/services/fileKeychain.d.ts +24 -0
  185. package/dist/src/services/fileKeychain.js +123 -0
  186. package/dist/src/services/fileKeychain.js.map +1 -0
  187. package/dist/src/services/keychainService.d.ts +51 -0
  188. package/dist/src/services/keychainService.js +133 -0
  189. package/dist/src/services/keychainService.js.map +1 -0
  190. package/dist/src/services/keychainService.test.d.ts +6 -0
  191. package/dist/src/services/keychainService.test.js +150 -0
  192. package/dist/src/services/keychainService.test.js.map +1 -0
  193. package/dist/src/services/keychainTypes.d.ts +41 -0
  194. package/dist/src/services/keychainTypes.js +18 -0
  195. package/dist/src/services/keychainTypes.js.map +1 -0
  196. package/dist/src/services/trackerService.d.ts +49 -0
  197. package/dist/src/services/trackerService.js +193 -0
  198. package/dist/src/services/trackerService.js.map +1 -0
  199. package/dist/src/services/trackerService.test.d.ts +6 -0
  200. package/dist/src/services/trackerService.test.js +117 -0
  201. package/dist/src/services/trackerService.test.js.map +1 -0
  202. package/dist/src/services/trackerTypes.d.ts +51 -0
  203. package/dist/src/services/trackerTypes.js +33 -0
  204. package/dist/src/services/trackerTypes.js.map +1 -0
  205. package/dist/src/telemetry/billingEvents.d.ts +75 -0
  206. package/dist/src/telemetry/billingEvents.js +181 -0
  207. package/dist/src/telemetry/billingEvents.js.map +1 -0
  208. package/dist/src/telemetry/billingEvents.test.d.ts +6 -0
  209. package/dist/src/telemetry/billingEvents.test.js +139 -0
  210. package/dist/src/telemetry/billingEvents.test.js.map +1 -0
  211. package/dist/src/telemetry/conseca-logger.d.ts +9 -0
  212. package/dist/src/telemetry/conseca-logger.js +91 -0
  213. package/dist/src/telemetry/conseca-logger.js.map +1 -0
  214. package/dist/src/telemetry/conseca-logger.test.d.ts +6 -0
  215. package/dist/src/telemetry/conseca-logger.test.js +90 -0
  216. package/dist/src/telemetry/conseca-logger.test.js.map +1 -0
  217. package/dist/src/telemetry/trace.test.d.ts +6 -0
  218. package/dist/src/telemetry/trace.test.js +116 -0
  219. package/dist/src/telemetry/trace.test.js.map +1 -0
  220. package/dist/src/tools/definitions/trackerTools.d.ts +12 -0
  221. package/dist/src/tools/definitions/trackerTools.js +146 -0
  222. package/dist/src/tools/definitions/trackerTools.js.map +1 -0
  223. package/dist/src/tools/diff-utils.d.ts +9 -0
  224. package/dist/src/tools/diff-utils.js +66 -0
  225. package/dist/src/tools/diff-utils.js.map +1 -0
  226. package/dist/src/tools/diff-utils.test.d.ts +6 -0
  227. package/dist/src/tools/diff-utils.test.js +53 -0
  228. package/dist/src/tools/diff-utils.test.js.map +1 -0
  229. package/dist/src/tools/grep-utils.d.ts +49 -0
  230. package/dist/src/tools/grep-utils.js +147 -0
  231. package/dist/src/tools/grep-utils.js.map +1 -0
  232. package/dist/src/tools/omissionPlaceholderDetector.d.ts +15 -0
  233. package/dist/src/tools/omissionPlaceholderDetector.js +90 -0
  234. package/dist/src/tools/omissionPlaceholderDetector.js.map +1 -0
  235. package/dist/src/tools/omissionPlaceholderDetector.test.d.ts +6 -0
  236. package/dist/src/tools/omissionPlaceholderDetector.test.js +49 -0
  237. package/dist/src/tools/omissionPlaceholderDetector.test.js.map +1 -0
  238. package/dist/src/tools/trackerTools.d.ts +122 -0
  239. package/dist/src/tools/trackerTools.js +365 -0
  240. package/dist/src/tools/trackerTools.js.map +1 -0
  241. package/dist/src/tools/trackerTools.test.d.ts +6 -0
  242. package/dist/src/tools/trackerTools.test.js +97 -0
  243. package/dist/src/tools/trackerTools.test.js.map +1 -0
  244. package/dist/src/utils/approvalModeUtils.d.ts +14 -0
  245. package/dist/src/utils/approvalModeUtils.js +35 -0
  246. package/dist/src/utils/approvalModeUtils.js.map +1 -0
  247. package/dist/src/utils/approvalModeUtils.test.d.ts +6 -0
  248. package/dist/src/utils/approvalModeUtils.test.js +36 -0
  249. package/dist/src/utils/approvalModeUtils.test.js.map +1 -0
  250. package/dist/src/utils/cache.d.ts +63 -0
  251. package/dist/src/utils/cache.js +103 -0
  252. package/dist/src/utils/cache.js.map +1 -0
  253. package/dist/src/utils/cache.test.d.ts +6 -0
  254. package/dist/src/utils/cache.test.js +158 -0
  255. package/dist/src/utils/cache.test.js.map +1 -0
  256. package/dist/src/utils/compatibility.d.ts +41 -0
  257. package/dist/src/utils/compatibility.js +112 -0
  258. package/dist/src/utils/compatibility.js.map +1 -0
  259. package/dist/src/utils/compatibility.test.d.ts +6 -0
  260. package/dist/src/utils/compatibility.test.js +233 -0
  261. package/dist/src/utils/compatibility.test.js.map +1 -0
  262. package/dist/src/utils/envExpansion.d.ts +18 -0
  263. package/dist/src/utils/envExpansion.js +46 -0
  264. package/dist/src/utils/envExpansion.js.map +1 -0
  265. package/dist/src/utils/envExpansion.test.d.ts +6 -0
  266. package/dist/src/utils/envExpansion.test.js +110 -0
  267. package/dist/src/utils/envExpansion.test.js.map +1 -0
  268. package/dist/src/utils/errors_timeout.test.d.ts +6 -0
  269. package/dist/src/utils/errors_timeout.test.js +40 -0
  270. package/dist/src/utils/errors_timeout.test.js.map +1 -0
  271. package/dist/src/utils/fetch.test.d.ts +6 -0
  272. package/dist/src/utils/fetch.test.js +206 -0
  273. package/dist/src/utils/fetch.test.js.map +1 -0
  274. package/dist/src/utils/markdownUtils.d.ts +22 -0
  275. package/dist/src/utils/markdownUtils.js +126 -0
  276. package/dist/src/utils/markdownUtils.js.map +1 -0
  277. package/dist/src/utils/markdownUtils.test.d.ts +6 -0
  278. package/dist/src/utils/markdownUtils.test.js +107 -0
  279. package/dist/src/utils/markdownUtils.test.js.map +1 -0
  280. package/dist/src/utils/oauth-flow.d.ts +105 -0
  281. package/dist/src/utils/oauth-flow.js +370 -0
  282. package/dist/src/utils/oauth-flow.js.map +1 -0
  283. package/dist/src/utils/oauth-flow.test.d.ts +6 -0
  284. package/dist/src/utils/oauth-flow.test.js +360 -0
  285. package/dist/src/utils/oauth-flow.test.js.map +1 -0
  286. package/dist/src/utils/sessionUtils.d.ts +14 -0
  287. package/dist/src/utils/sessionUtils.js +122 -0
  288. package/dist/src/utils/sessionUtils.js.map +1 -0
  289. package/dist/src/utils/sessionUtils.test.d.ts +1 -0
  290. package/dist/src/utils/sessionUtils.test.js +171 -0
  291. package/dist/src/utils/sessionUtils.test.js.map +1 -0
  292. package/dist/src/voice/responseFormatter.d.ts +38 -0
  293. package/dist/src/voice/responseFormatter.js +130 -0
  294. package/dist/src/voice/responseFormatter.js.map +1 -0
  295. package/dist/src/voice/responseFormatter.test.d.ts +6 -0
  296. package/dist/src/voice/responseFormatter.test.js +214 -0
  297. package/dist/src/voice/responseFormatter.test.js.map +1 -0
  298. package/dist/tsconfig.tsbuildinfo +1 -1
  299. package/package.json +1 -1
  300. package/dist/docs/CONTRIBUTING.md +0 -555
  301. package/dist/src/agents/executor.d.ts +0 -114
  302. package/dist/src/agents/executor.js +0 -779
  303. package/dist/src/agents/executor.js.map +0 -1
  304. package/dist/src/agents/executor.test.js +0 -1362
  305. package/dist/src/agents/executor.test.js.map +0 -1
  306. package/dist/src/agents/invocation.d.ts +0 -46
  307. package/dist/src/agents/invocation.js +0 -102
  308. package/dist/src/agents/invocation.js.map +0 -1
  309. package/dist/src/agents/invocation.test.js +0 -215
  310. package/dist/src/agents/invocation.test.js.map +0 -1
  311. package/dist/src/core/subagent.d.ts +0 -236
  312. package/dist/src/core/subagent.js +0 -482
  313. package/dist/src/core/subagent.js.map +0 -1
  314. package/dist/src/core/subagent.test.js +0 -530
  315. package/dist/src/core/subagent.test.js.map +0 -1
  316. package/dist/src/tools/smart-edit.d.ts +0 -78
  317. package/dist/src/tools/smart-edit.js +0 -717
  318. package/dist/src/tools/smart-edit.js.map +0 -1
  319. package/dist/src/tools/smart-edit.test.js +0 -592
  320. package/dist/src/tools/smart-edit.test.js.map +0 -1
  321. /package/dist/src/{agents/executor.test.d.ts → policy/workspace-policy.test.d.ts} +0 -0
  322. /package/dist/src/{agents/invocation.test.d.ts → safety/conseca/conseca.test.d.ts} +0 -0
  323. /package/dist/src/{core/subagent.test.d.ts → safety/conseca/integration.test.d.ts} +0 -0
  324. /package/dist/src/{tools/smart-edit.test.d.ts → safety/conseca/policy-enforcer.test.d.ts} +0 -0
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { CreditType, GeminiUserTier } from '../code_assist/types.js';
7
+ /**
8
+ * Strategy for handling quota exhaustion when AI credits are available.
9
+ * - 'ask': Prompt the user each time
10
+ * - 'always': Automatically use credits
11
+ * - 'never': Never use credits, show standard fallback
12
+ */
13
+ export type OverageStrategy = 'ask' | 'always' | 'never';
14
+ /** Credit type for Google One AI credits */
15
+ export declare const G1_CREDIT_TYPE: CreditType;
16
+ /**
17
+ * The set of models that support AI credits overage billing.
18
+ * Only these models are eligible for the credits-based retry flow.
19
+ */
20
+ export declare const OVERAGE_ELIGIBLE_MODELS: Set<string>;
21
+ /**
22
+ * Checks if a model is eligible for AI credits overage billing.
23
+ * @param model The model name to check.
24
+ * @returns true if the model supports credits overage, false otherwise.
25
+ */
26
+ export declare function isOverageEligibleModel(model: string): boolean;
27
+ /**
28
+ * Wraps a URL in the AccountChooser redirect to maintain user context.
29
+ * @param email User's email address for account selection
30
+ * @param continueUrl The destination URL after account selection
31
+ * @returns The full AccountChooser redirect URL
32
+ */
33
+ export declare function wrapInAccountChooser(email: string, continueUrl: string): string;
34
+ /**
35
+ * UTM campaign identifiers per the design doc.
36
+ */
37
+ export declare const G1_UTM_CAMPAIGNS: {
38
+ /** From Interception Flow "Manage" link (user has credits) */
39
+ readonly MANAGE_ACTIVITY: "hydrogen_cli_settings_ai_credits_activity_page";
40
+ /** From "Manage" to add more credits */
41
+ readonly MANAGE_ADD_CREDITS: "hydrogen_cli_settings_add_credits";
42
+ /** From Empty Wallet Flow "Get AI Credits" link */
43
+ readonly EMPTY_WALLET_ADD_CREDITS: "hydrogen_cli_insufficient_credits_add_credits";
44
+ };
45
+ /**
46
+ * Builds a G1 AI URL with UTM tracking parameters.
47
+ * @param path The path segment (e.g., 'activity' or 'credits')
48
+ * @param email User's email for AccountChooser wrapper
49
+ * @param campaign The UTM campaign identifier
50
+ * @returns The complete URL wrapped in AccountChooser
51
+ */
52
+ export declare function buildG1Url(path: 'activity' | 'credits', email: string, campaign: string): string;
53
+ /**
54
+ * Extracts the G1 AI credit balance from a tier's available credits.
55
+ * @param tier The user tier to check
56
+ * @returns The credit amount as a number, 0 if eligible but empty, or null if not eligible
57
+ */
58
+ export declare function getG1CreditBalance(tier: GeminiUserTier | null | undefined): number | null;
59
+ export declare const MIN_CREDIT_BALANCE = 50;
60
+ /**
61
+ * Determines if credits should be automatically used based on the overage strategy.
62
+ * @param strategy The configured overage strategy
63
+ * @param creditBalance The available credit balance
64
+ * @returns true if credits should be auto-used, false otherwise
65
+ */
66
+ export declare function shouldAutoUseCredits(strategy: OverageStrategy, creditBalance: number | null): boolean;
67
+ /**
68
+ * Determines if the overage menu should be shown based on the strategy.
69
+ * @param strategy The configured overage strategy
70
+ * @param creditBalance The available credit balance
71
+ * @returns true if the menu should be shown
72
+ */
73
+ export declare function shouldShowOverageMenu(strategy: OverageStrategy, creditBalance: number | null): boolean;
74
+ /**
75
+ * Determines if the empty wallet menu should be shown.
76
+ * @param strategy The configured overage strategy
77
+ * @param creditBalance The available credit balance
78
+ * @returns true if the empty wallet menu should be shown
79
+ */
80
+ export declare function shouldShowEmptyWalletMenu(strategy: OverageStrategy, creditBalance: number | null): boolean;
@@ -0,0 +1,128 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { PREVIEW_GEMINI_MODEL, PREVIEW_GEMINI_3_1_MODEL, PREVIEW_GEMINI_FLASH_MODEL, } from '../config/models.js';
7
+ /** Credit type for Google One AI credits */
8
+ export const G1_CREDIT_TYPE = 'GOOGLE_ONE_AI';
9
+ /**
10
+ * The set of models that support AI credits overage billing.
11
+ * Only these models are eligible for the credits-based retry flow.
12
+ */
13
+ export const OVERAGE_ELIGIBLE_MODELS = new Set([
14
+ PREVIEW_GEMINI_MODEL,
15
+ PREVIEW_GEMINI_3_1_MODEL,
16
+ PREVIEW_GEMINI_FLASH_MODEL,
17
+ ]);
18
+ /**
19
+ * Checks if a model is eligible for AI credits overage billing.
20
+ * @param model The model name to check.
21
+ * @returns true if the model supports credits overage, false otherwise.
22
+ */
23
+ export function isOverageEligibleModel(model) {
24
+ return OVERAGE_ELIGIBLE_MODELS.has(model);
25
+ }
26
+ /** Base URL for Google One AI page */
27
+ const G1_AI_BASE_URL = 'https://one.google.com/ai';
28
+ /** AccountChooser URL for redirecting with email context */
29
+ const ACCOUNT_CHOOSER_URL = 'https://accounts.google.com/AccountChooser';
30
+ /** UTM parameters for CLI tracking */
31
+ const UTM_SOURCE = 'gemini_cli';
32
+ // TODO: change to 'desktop' when G1 service fix is rolled out
33
+ const UTM_MEDIUM = 'web';
34
+ /**
35
+ * Wraps a URL in the AccountChooser redirect to maintain user context.
36
+ * @param email User's email address for account selection
37
+ * @param continueUrl The destination URL after account selection
38
+ * @returns The full AccountChooser redirect URL
39
+ */
40
+ export function wrapInAccountChooser(email, continueUrl) {
41
+ const params = new URLSearchParams({
42
+ Email: email,
43
+ continue: continueUrl,
44
+ });
45
+ return `${ACCOUNT_CHOOSER_URL}?${params.toString()}`;
46
+ }
47
+ /**
48
+ * UTM campaign identifiers per the design doc.
49
+ */
50
+ export const G1_UTM_CAMPAIGNS = {
51
+ /** From Interception Flow "Manage" link (user has credits) */
52
+ MANAGE_ACTIVITY: 'hydrogen_cli_settings_ai_credits_activity_page',
53
+ /** From "Manage" to add more credits */
54
+ MANAGE_ADD_CREDITS: 'hydrogen_cli_settings_add_credits',
55
+ /** From Empty Wallet Flow "Get AI Credits" link */
56
+ EMPTY_WALLET_ADD_CREDITS: 'hydrogen_cli_insufficient_credits_add_credits',
57
+ };
58
+ /**
59
+ * Builds a G1 AI URL with UTM tracking parameters.
60
+ * @param path The path segment (e.g., 'activity' or 'credits')
61
+ * @param email User's email for AccountChooser wrapper
62
+ * @param campaign The UTM campaign identifier
63
+ * @returns The complete URL wrapped in AccountChooser
64
+ */
65
+ export function buildG1Url(path, email, campaign) {
66
+ const baseUrl = `${G1_AI_BASE_URL}/${path}`;
67
+ const params = new URLSearchParams({
68
+ utm_source: UTM_SOURCE,
69
+ utm_medium: UTM_MEDIUM,
70
+ utm_campaign: campaign,
71
+ });
72
+ const urlWithUtm = `${baseUrl}?${params.toString()}`;
73
+ return wrapInAccountChooser(email, urlWithUtm);
74
+ }
75
+ /**
76
+ * Extracts the G1 AI credit balance from a tier's available credits.
77
+ * @param tier The user tier to check
78
+ * @returns The credit amount as a number, 0 if eligible but empty, or null if not eligible
79
+ */
80
+ export function getG1CreditBalance(tier) {
81
+ if (!tier?.availableCredits) {
82
+ return null;
83
+ }
84
+ const g1Credits = tier.availableCredits.filter((credit) => credit.creditType === G1_CREDIT_TYPE);
85
+ if (g1Credits.length === 0) {
86
+ return null;
87
+ }
88
+ // creditAmount is an int64 represented as string; sum all matching entries
89
+ return g1Credits.reduce((sum, credit) => {
90
+ const amount = parseInt(credit.creditAmount ?? '0', 10);
91
+ return sum + (isNaN(amount) ? 0 : amount);
92
+ }, 0);
93
+ }
94
+ export const MIN_CREDIT_BALANCE = 50;
95
+ /**
96
+ * Determines if credits should be automatically used based on the overage strategy.
97
+ * @param strategy The configured overage strategy
98
+ * @param creditBalance The available credit balance
99
+ * @returns true if credits should be auto-used, false otherwise
100
+ */
101
+ export function shouldAutoUseCredits(strategy, creditBalance) {
102
+ return (strategy === 'always' &&
103
+ creditBalance != null &&
104
+ creditBalance >= MIN_CREDIT_BALANCE);
105
+ }
106
+ /**
107
+ * Determines if the overage menu should be shown based on the strategy.
108
+ * @param strategy The configured overage strategy
109
+ * @param creditBalance The available credit balance
110
+ * @returns true if the menu should be shown
111
+ */
112
+ export function shouldShowOverageMenu(strategy, creditBalance) {
113
+ return (strategy === 'ask' &&
114
+ creditBalance != null &&
115
+ creditBalance >= MIN_CREDIT_BALANCE);
116
+ }
117
+ /**
118
+ * Determines if the empty wallet menu should be shown.
119
+ * @param strategy The configured overage strategy
120
+ * @param creditBalance The available credit balance
121
+ * @returns true if the empty wallet menu should be shown
122
+ */
123
+ export function shouldShowEmptyWalletMenu(strategy, creditBalance) {
124
+ return (strategy !== 'never' &&
125
+ creditBalance != null &&
126
+ creditBalance < MIN_CREDIT_BALANCE);
127
+ }
128
+ //# sourceMappingURL=billing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../src/billing/billing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAU7B,4CAA4C;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAe,eAAe,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IAC7C,oBAAoB;IACpB,wBAAwB;IACxB,0BAA0B;CAC3B,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,OAAO,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,sCAAsC;AACtC,MAAM,cAAc,GAAG,2BAA2B,CAAC;AAEnD,4DAA4D;AAC5D,MAAM,mBAAmB,GAAG,4CAA4C,CAAC;AAEzE,sCAAsC;AACtC,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,8DAA8D;AAC9D,MAAM,UAAU,GAAG,KAAK,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,WAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,WAAW;KACtB,CAAC,CAAC;IACH,OAAO,GAAG,mBAAmB,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,8DAA8D;IAC9D,eAAe,EAAE,gDAAgD;IACjE,wCAAwC;IACxC,kBAAkB,EAAE,mCAAmC;IACvD,mDAAmD;IACnD,wBAAwB,EAAE,+CAA+C;CACjE,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CACxB,IAA4B,EAC5B,KAAa,EACb,QAAgB;IAEhB,MAAM,OAAO,GAAG,GAAG,cAAc,IAAI,IAAI,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,UAAU,EAAE,UAAU;QACtB,UAAU,EAAE,UAAU;QACtB,YAAY,EAAE,QAAQ;KACvB,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,GAAG,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IACrD,OAAO,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAuC;IAEvC,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAC5C,CAAC,MAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,cAAc,CACnE,CAAC;IAEF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2EAA2E;IAC3E,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QACxD,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAyB,EACzB,aAA4B;IAE5B,OAAO,CACL,QAAQ,KAAK,QAAQ;QACrB,aAAa,IAAI,IAAI;QACrB,aAAa,IAAI,kBAAkB,CACpC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAyB,EACzB,aAA4B;IAE5B,OAAO,CACL,QAAQ,KAAK,KAAK;QAClB,aAAa,IAAI,IAAI;QACrB,aAAa,IAAI,kBAAkB,CACpC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAyB,EACzB,aAA4B;IAE5B,OAAO,CACL,QAAQ,KAAK,OAAO;QACpB,aAAa,IAAI,IAAI;QACrB,aAAa,GAAG,kBAAkB,CACnC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,182 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect } from 'vitest';
7
+ import { buildG1Url, getG1CreditBalance, G1_CREDIT_TYPE, G1_UTM_CAMPAIGNS, isOverageEligibleModel, shouldAutoUseCredits, shouldShowEmptyWalletMenu, shouldShowOverageMenu, wrapInAccountChooser, } from './billing.js';
8
+ describe('billing', () => {
9
+ describe('wrapInAccountChooser', () => {
10
+ it('should wrap URL with AccountChooser redirect', () => {
11
+ const result = wrapInAccountChooser('user@gmail.com', 'https://one.google.com/ai/activity');
12
+ expect(result).toBe('https://accounts.google.com/AccountChooser?Email=user%40gmail.com&continue=https%3A%2F%2Fone.google.com%2Fai%2Factivity');
13
+ });
14
+ it('should handle special characters in email', () => {
15
+ const result = wrapInAccountChooser('user+test@example.com', 'https://example.com');
16
+ expect(result).toContain('Email=user%2Btest%40example.com');
17
+ });
18
+ });
19
+ describe('buildG1Url', () => {
20
+ it('should build activity URL with UTM params wrapped in AccountChooser', () => {
21
+ const result = buildG1Url('activity', 'user@gmail.com', G1_UTM_CAMPAIGNS.MANAGE_ACTIVITY);
22
+ // Should contain AccountChooser prefix
23
+ expect(result).toContain('https://accounts.google.com/AccountChooser');
24
+ expect(result).toContain('Email=user%40gmail.com');
25
+ // The continue URL should contain the G1 activity path and UTM params
26
+ expect(result).toContain('one.google.com%2Fai%2Factivity');
27
+ expect(result).toContain('utm_source%3Dgemini_cli');
28
+ expect(result).toContain('utm_campaign%3Dhydrogen_cli_settings_ai_credits_activity_page');
29
+ });
30
+ it('should build credits URL with UTM params wrapped in AccountChooser', () => {
31
+ const result = buildG1Url('credits', 'test@example.com', G1_UTM_CAMPAIGNS.EMPTY_WALLET_ADD_CREDITS);
32
+ expect(result).toContain('https://accounts.google.com/AccountChooser');
33
+ expect(result).toContain('one.google.com%2Fai%2Fcredits');
34
+ expect(result).toContain('utm_campaign%3Dhydrogen_cli_insufficient_credits_add_credits');
35
+ });
36
+ });
37
+ describe('getG1CreditBalance', () => {
38
+ it('should return null for null tier', () => {
39
+ expect(getG1CreditBalance(null)).toBeNull();
40
+ });
41
+ it('should return null for undefined tier', () => {
42
+ expect(getG1CreditBalance(undefined)).toBeNull();
43
+ });
44
+ it('should return null for tier without availableCredits', () => {
45
+ const tier = { id: 'PERSONAL' };
46
+ expect(getG1CreditBalance(tier)).toBeNull();
47
+ });
48
+ it('should return null for empty availableCredits array', () => {
49
+ const tier = { id: 'PERSONAL', availableCredits: [] };
50
+ expect(getG1CreditBalance(tier)).toBeNull();
51
+ });
52
+ it('should return null when no G1 credit type found', () => {
53
+ const tier = {
54
+ id: 'PERSONAL',
55
+ availableCredits: [
56
+ { creditType: 'CREDIT_TYPE_UNSPECIFIED', creditAmount: '100' },
57
+ ],
58
+ };
59
+ expect(getG1CreditBalance(tier)).toBeNull();
60
+ });
61
+ it('should return G1 credit balance when present', () => {
62
+ const tier = {
63
+ id: 'PERSONAL',
64
+ availableCredits: [{ creditType: G1_CREDIT_TYPE, creditAmount: '500' }],
65
+ };
66
+ expect(getG1CreditBalance(tier)).toBe(500);
67
+ });
68
+ it('should return G1 credit balance when multiple credit types present', () => {
69
+ const tier = {
70
+ id: 'PERSONAL',
71
+ availableCredits: [
72
+ { creditType: 'CREDIT_TYPE_UNSPECIFIED', creditAmount: '100' },
73
+ { creditType: G1_CREDIT_TYPE, creditAmount: '750' },
74
+ ],
75
+ };
76
+ expect(getG1CreditBalance(tier)).toBe(750);
77
+ });
78
+ it('should return 0 for invalid credit amount', () => {
79
+ const tier = {
80
+ id: 'PERSONAL',
81
+ availableCredits: [
82
+ { creditType: G1_CREDIT_TYPE, creditAmount: 'invalid' },
83
+ ],
84
+ };
85
+ expect(getG1CreditBalance(tier)).toBe(0);
86
+ });
87
+ it('should handle large credit amounts (int64 as string)', () => {
88
+ const tier = {
89
+ id: 'PERSONAL',
90
+ availableCredits: [
91
+ { creditType: G1_CREDIT_TYPE, creditAmount: '9999999999' },
92
+ ],
93
+ };
94
+ expect(getG1CreditBalance(tier)).toBe(9999999999);
95
+ });
96
+ it('should sum multiple credits of the same G1 type', () => {
97
+ const tier = {
98
+ id: 'PERSONAL',
99
+ availableCredits: [
100
+ { creditType: G1_CREDIT_TYPE, creditAmount: '1000' },
101
+ { creditType: G1_CREDIT_TYPE, creditAmount: '8' },
102
+ ],
103
+ };
104
+ expect(getG1CreditBalance(tier)).toBe(1008);
105
+ });
106
+ });
107
+ describe('shouldAutoUseCredits', () => {
108
+ it('should return true when strategy is always and balance > 0', () => {
109
+ expect(shouldAutoUseCredits('always', 100)).toBe(true);
110
+ });
111
+ it('should return false when strategy is always but balance is 0', () => {
112
+ expect(shouldAutoUseCredits('always', 0)).toBe(false);
113
+ });
114
+ it('should return false when strategy is ask', () => {
115
+ expect(shouldAutoUseCredits('ask', 100)).toBe(false);
116
+ });
117
+ it('should return false when strategy is never', () => {
118
+ expect(shouldAutoUseCredits('never', 100)).toBe(false);
119
+ });
120
+ it('should return false when creditBalance is null (ineligible)', () => {
121
+ expect(shouldAutoUseCredits('always', null)).toBe(false);
122
+ });
123
+ });
124
+ describe('shouldShowOverageMenu', () => {
125
+ it('should return true when strategy is ask and balance > 0', () => {
126
+ expect(shouldShowOverageMenu('ask', 100)).toBe(true);
127
+ });
128
+ it('should return false when strategy is ask but balance is 0', () => {
129
+ expect(shouldShowOverageMenu('ask', 0)).toBe(false);
130
+ });
131
+ it('should return false when strategy is always', () => {
132
+ expect(shouldShowOverageMenu('always', 100)).toBe(false);
133
+ });
134
+ it('should return false when strategy is never', () => {
135
+ expect(shouldShowOverageMenu('never', 100)).toBe(false);
136
+ });
137
+ it('should return false when creditBalance is null (ineligible)', () => {
138
+ expect(shouldShowOverageMenu('ask', null)).toBe(false);
139
+ });
140
+ });
141
+ describe('shouldShowEmptyWalletMenu', () => {
142
+ it('should return true when strategy is ask and balance is 0', () => {
143
+ expect(shouldShowEmptyWalletMenu('ask', 0)).toBe(true);
144
+ });
145
+ it('should return true when strategy is always and balance is 0', () => {
146
+ expect(shouldShowEmptyWalletMenu('always', 0)).toBe(true);
147
+ });
148
+ it('should return false when strategy is never', () => {
149
+ expect(shouldShowEmptyWalletMenu('never', 0)).toBe(false);
150
+ });
151
+ it('should return false when balance > 0', () => {
152
+ expect(shouldShowEmptyWalletMenu('ask', 100)).toBe(false);
153
+ });
154
+ it('should return false when creditBalance is null (ineligible)', () => {
155
+ expect(shouldShowEmptyWalletMenu('ask', null)).toBe(false);
156
+ });
157
+ });
158
+ describe('isOverageEligibleModel', () => {
159
+ it('should return true for gemini-3-pro-preview', () => {
160
+ expect(isOverageEligibleModel('gemini-3-pro-preview')).toBe(true);
161
+ });
162
+ it('should return true for gemini-3.1-pro-preview', () => {
163
+ expect(isOverageEligibleModel('gemini-3.1-pro-preview')).toBe(true);
164
+ });
165
+ it('should return false for gemini-3.1-pro-preview-customtools', () => {
166
+ expect(isOverageEligibleModel('gemini-3.1-pro-preview-customtools')).toBe(false);
167
+ });
168
+ it('should return true for gemini-3-flash-preview', () => {
169
+ expect(isOverageEligibleModel('gemini-3-flash-preview')).toBe(true);
170
+ });
171
+ it('should return false for gemini-2.5-pro', () => {
172
+ expect(isOverageEligibleModel('gemini-2.5-pro')).toBe(false);
173
+ });
174
+ it('should return false for gemini-2.5-flash', () => {
175
+ expect(isOverageEligibleModel('gemini-2.5-flash')).toBe(false);
176
+ });
177
+ it('should return false for custom model names', () => {
178
+ expect(isOverageEligibleModel('my-custom-model')).toBe(false);
179
+ });
180
+ });
181
+ });
182
+ //# sourceMappingURL=billing.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.test.js","sourceRoot":"","sources":["../../../src/billing/billing.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,MAAM,GAAG,oBAAoB,CACjC,gBAAgB,EAChB,oCAAoC,CACrC,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CACjB,yHAAyH,CAC1H,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,MAAM,GAAG,oBAAoB,CACjC,uBAAuB,EACvB,qBAAqB,CACtB,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;YAC7E,MAAM,MAAM,GAAG,UAAU,CACvB,UAAU,EACV,gBAAgB,EAChB,gBAAgB,CAAC,eAAe,CACjC,CAAC;YAEF,uCAAuC;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC;YACvE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;YAEnD,sEAAsE;YACtE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,+DAA+D,CAChE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC5E,MAAM,MAAM,GAAG,UAAU,CACvB,SAAS,EACT,kBAAkB,EAClB,gBAAgB,CAAC,wBAAwB,CAC1C,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC;YACvE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CACtB,8DAA8D,CAC/D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,IAAI,GAAmB,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,IAAI,GAAmB,EAAE,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;YACtE,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,IAAI,GAAmB;gBAC3B,EAAE,EAAE,UAAU;gBACd,gBAAgB,EAAE;oBAChB,EAAE,UAAU,EAAE,yBAAyB,EAAE,YAAY,EAAE,KAAK,EAAE;iBAC/D;aACF,CAAC;YACF,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,IAAI,GAAmB;gBAC3B,EAAE,EAAE,UAAU;gBACd,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;aACxE,CAAC;YACF,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC5E,MAAM,IAAI,GAAmB;gBAC3B,EAAE,EAAE,UAAU;gBACd,gBAAgB,EAAE;oBAChB,EAAE,UAAU,EAAE,yBAAyB,EAAE,YAAY,EAAE,KAAK,EAAE;oBAC9D,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE;iBACpD;aACF,CAAC;YACF,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,IAAI,GAAmB;gBAC3B,EAAE,EAAE,UAAU;gBACd,gBAAgB,EAAE;oBAChB,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE;iBACxD;aACF,CAAC;YACF,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,IAAI,GAAmB;gBAC3B,EAAE,EAAE,UAAU;gBACd,gBAAgB,EAAE;oBAChB,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE;iBAC3D;aACF,CAAC;YACF,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,IAAI,GAAmB;gBAC3B,EAAE,EAAE,UAAU;gBACd,gBAAgB,EAAE;oBAChB,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE;oBACpD,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,EAAE;iBAClD;aACF,CAAC;YACF,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACnE,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,MAAM,CAAC,yBAAyB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,CAAC,yBAAyB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,yBAAyB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,CAAC,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,CAAC,sBAAsB,CAAC,oCAAoC,CAAC,CAAC,CAAC,IAAI,CACvE,KAAK,CACN,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export * from './billing.js';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export * from './billing.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/billing/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAC"}
@@ -256,31 +256,31 @@ export declare const McpConfigDefinitionSchema: z.ZodObject<{
256
256
  excludeTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
257
257
  }, "strip", z.ZodTypeAny, {
258
258
  type?: "http" | "sse" | undefined;
259
- excludeTools?: string[] | undefined;
260
259
  url?: string | undefined;
261
260
  includeTools?: string[] | undefined;
261
+ excludeTools?: string[] | undefined;
262
262
  trust?: boolean | undefined;
263
263
  }, {
264
264
  type?: "http" | "sse" | undefined;
265
- excludeTools?: string[] | undefined;
266
265
  url?: string | undefined;
267
266
  includeTools?: string[] | undefined;
267
+ excludeTools?: string[] | undefined;
268
268
  trust?: boolean | undefined;
269
269
  }>>>;
270
270
  }, "strip", z.ZodTypeAny, {
271
271
  mcpServers?: Record<string, {
272
272
  type?: "http" | "sse" | undefined;
273
- excludeTools?: string[] | undefined;
274
273
  url?: string | undefined;
275
274
  includeTools?: string[] | undefined;
275
+ excludeTools?: string[] | undefined;
276
276
  trust?: boolean | undefined;
277
277
  }> | undefined;
278
278
  }, {
279
279
  mcpServers?: Record<string, {
280
280
  type?: "http" | "sse" | undefined;
281
- excludeTools?: string[] | undefined;
282
281
  url?: string | undefined;
283
282
  includeTools?: string[] | undefined;
283
+ excludeTools?: string[] | undefined;
284
284
  trust?: boolean | undefined;
285
285
  }> | undefined;
286
286
  }>;
@@ -298,31 +298,31 @@ export declare const AdminControlsSettingsSchema: z.ZodObject<{
298
298
  excludeTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
299
299
  }, "strip", z.ZodTypeAny, {
300
300
  type?: "http" | "sse" | undefined;
301
- excludeTools?: string[] | undefined;
302
301
  url?: string | undefined;
303
302
  includeTools?: string[] | undefined;
303
+ excludeTools?: string[] | undefined;
304
304
  trust?: boolean | undefined;
305
305
  }, {
306
306
  type?: "http" | "sse" | undefined;
307
- excludeTools?: string[] | undefined;
308
307
  url?: string | undefined;
309
308
  includeTools?: string[] | undefined;
309
+ excludeTools?: string[] | undefined;
310
310
  trust?: boolean | undefined;
311
311
  }>>>;
312
312
  }, "strip", z.ZodTypeAny, {
313
313
  mcpServers?: Record<string, {
314
314
  type?: "http" | "sse" | undefined;
315
- excludeTools?: string[] | undefined;
316
315
  url?: string | undefined;
317
316
  includeTools?: string[] | undefined;
317
+ excludeTools?: string[] | undefined;
318
318
  trust?: boolean | undefined;
319
319
  }> | undefined;
320
320
  }, {
321
321
  mcpServers?: Record<string, {
322
322
  type?: "http" | "sse" | undefined;
323
- excludeTools?: string[] | undefined;
324
323
  url?: string | undefined;
325
324
  includeTools?: string[] | undefined;
325
+ excludeTools?: string[] | undefined;
326
326
  trust?: boolean | undefined;
327
327
  }> | undefined;
328
328
  }>>;
@@ -331,9 +331,9 @@ export declare const AdminControlsSettingsSchema: z.ZodObject<{
331
331
  mcpConfig?: {
332
332
  mcpServers?: Record<string, {
333
333
  type?: "http" | "sse" | undefined;
334
- excludeTools?: string[] | undefined;
335
334
  url?: string | undefined;
336
335
  includeTools?: string[] | undefined;
336
+ excludeTools?: string[] | undefined;
337
337
  trust?: boolean | undefined;
338
338
  }> | undefined;
339
339
  } | undefined;
@@ -342,9 +342,9 @@ export declare const AdminControlsSettingsSchema: z.ZodObject<{
342
342
  mcpConfig?: {
343
343
  mcpServers?: Record<string, {
344
344
  type?: "http" | "sse" | undefined;
345
- excludeTools?: string[] | undefined;
346
345
  url?: string | undefined;
347
346
  includeTools?: string[] | undefined;
347
+ excludeTools?: string[] | undefined;
348
348
  trust?: boolean | undefined;
349
349
  }> | undefined;
350
350
  } | undefined;
@@ -376,9 +376,9 @@ export declare const AdminControlsSettingsSchema: z.ZodObject<{
376
376
  mcpConfig?: {
377
377
  mcpServers?: Record<string, {
378
378
  type?: "http" | "sse" | undefined;
379
- excludeTools?: string[] | undefined;
380
379
  url?: string | undefined;
381
380
  includeTools?: string[] | undefined;
381
+ excludeTools?: string[] | undefined;
382
382
  trust?: boolean | undefined;
383
383
  }> | undefined;
384
384
  } | undefined;
@@ -396,9 +396,9 @@ export declare const AdminControlsSettingsSchema: z.ZodObject<{
396
396
  mcpConfig?: {
397
397
  mcpServers?: Record<string, {
398
398
  type?: "http" | "sse" | undefined;
399
- excludeTools?: string[] | undefined;
400
399
  url?: string | undefined;
401
400
  includeTools?: string[] | undefined;
401
+ excludeTools?: string[] | undefined;
402
402
  trust?: boolean | undefined;
403
403
  }> | undefined;
404
404
  } | undefined;
@@ -446,7 +446,6 @@ export declare const FetchAdminControlsResponseSchema: z.ZodObject<{
446
446
  }>>;
447
447
  adminControlsApplicable: z.ZodOptional<z.ZodBoolean>;
448
448
  }, "strip", z.ZodTypeAny, {
449
- secureModeEnabled?: boolean | undefined;
450
449
  strictModeDisabled?: boolean | undefined;
451
450
  mcpSetting?: {
452
451
  mcpEnabled?: boolean | undefined;
@@ -458,9 +457,9 @@ export declare const FetchAdminControlsResponseSchema: z.ZodObject<{
458
457
  } | undefined;
459
458
  unmanagedCapabilitiesEnabled?: boolean | undefined;
460
459
  } | undefined;
460
+ secureModeEnabled?: boolean | undefined;
461
461
  adminControlsApplicable?: boolean | undefined;
462
462
  }, {
463
- secureModeEnabled?: boolean | undefined;
464
463
  strictModeDisabled?: boolean | undefined;
465
464
  mcpSetting?: {
466
465
  mcpEnabled?: boolean | undefined;
@@ -472,6 +471,7 @@ export declare const FetchAdminControlsResponseSchema: z.ZodObject<{
472
471
  } | undefined;
473
472
  unmanagedCapabilitiesEnabled?: boolean | undefined;
474
473
  } | undefined;
474
+ secureModeEnabled?: boolean | undefined;
475
475
  adminControlsApplicable?: boolean | undefined;
476
476
  }>;
477
477
  export {};
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { GeminiClient } from '../core/client.js';
7
+ import type { MessageBus } from '../confirmation-bus/message-bus.js';
8
+ import type { ToolRegistry } from '../tools/tool-registry.js';
9
+ /**
10
+ * AgentLoopContext represents the execution-scoped view of the world for a single
11
+ * agent turn or sub-agent loop.
12
+ */
13
+ export interface AgentLoopContext {
14
+ /** The unique ID for the current user turn or agent thought loop. */
15
+ readonly promptId: string;
16
+ /** The registry of tools available to the agent in this context. */
17
+ readonly toolRegistry: ToolRegistry;
18
+ /** The bus for user confirmations and messages in this context. */
19
+ readonly messageBus: MessageBus;
20
+ /** The client used to communicate with the LLM in this context. */
21
+ readonly geminiClient: GeminiClient;
22
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=agent-loop-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-loop-context.js","sourceRoot":"","sources":["../../../src/config/agent-loop-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};