@office-ai/aioncli-core 0.30.0 → 0.30.1
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.
- package/dist/docs/assets/theme-ansi-dark.png +0 -0
- package/dist/docs/assets/theme-atom-one-dark.png +0 -0
- package/dist/docs/assets/theme-ayu-dark.png +0 -0
- package/dist/docs/assets/theme-default-dark.png +0 -0
- package/dist/docs/assets/theme-dracula-dark.png +0 -0
- package/dist/docs/assets/theme-github-dark.png +0 -0
- package/dist/docs/assets/theme-holiday-dark.png +0 -0
- package/dist/docs/assets/theme-shades-of-purple-dark.png +0 -0
- package/dist/docs/assets/theme-solarized-dark.png +0 -0
- package/dist/docs/assets/theme-solarized-light.png +0 -0
- package/dist/docs/cli/notifications.md +58 -0
- package/dist/docs/redirects.json +20 -0
- package/dist/docs/reference/commands.md +563 -0
- package/dist/docs/reference/configuration.md +1804 -0
- package/dist/docs/reference/keyboard-shortcuts.md +168 -0
- package/dist/docs/reference/memport.md +246 -0
- package/dist/docs/reference/policy-engine.md +386 -0
- package/dist/docs/reference/tools.md +106 -0
- package/dist/docs/resources/faq.md +175 -0
- package/dist/docs/resources/quota-and-pricing.md +199 -0
- package/dist/docs/resources/tos-privacy.md +102 -0
- package/dist/docs/resources/troubleshooting.md +176 -0
- package/dist/docs/resources/uninstall.md +56 -0
- package/dist/src/agents/a2a-errors.d.ts +65 -0
- package/dist/src/agents/a2a-errors.js +164 -0
- package/dist/src/agents/a2a-errors.js.map +1 -0
- package/dist/src/agents/a2a-errors.test.d.ts +6 -0
- package/dist/src/agents/a2a-errors.test.js +183 -0
- package/dist/src/agents/a2a-errors.test.js.map +1 -0
- package/dist/src/agents/auth-provider/api-key-provider.d.ts +30 -0
- package/dist/src/agents/auth-provider/api-key-provider.js +66 -0
- package/dist/src/agents/auth-provider/api-key-provider.js.map +1 -0
- package/dist/src/agents/auth-provider/api-key-provider.test.d.ts +6 -0
- package/dist/src/agents/auth-provider/api-key-provider.test.js +130 -0
- package/dist/src/agents/auth-provider/api-key-provider.test.js.map +1 -0
- package/dist/src/agents/auth-provider/http-provider.d.ts +28 -0
- package/dist/src/agents/auth-provider/http-provider.js +73 -0
- package/dist/src/agents/auth-provider/http-provider.js.map +1 -0
- package/dist/src/agents/auth-provider/http-provider.test.d.ts +6 -0
- package/dist/src/agents/auth-provider/http-provider.test.js +112 -0
- package/dist/src/agents/auth-provider/http-provider.test.js.map +1 -0
- package/dist/src/agents/auth-provider/oauth2-provider.d.ts +65 -0
- package/dist/src/agents/auth-provider/oauth2-provider.js +233 -0
- package/dist/src/agents/auth-provider/oauth2-provider.js.map +1 -0
- package/dist/src/agents/auth-provider/oauth2-provider.test.d.ts +6 -0
- package/dist/src/agents/auth-provider/oauth2-provider.test.js +490 -0
- package/dist/src/agents/auth-provider/oauth2-provider.test.js.map +1 -0
- package/dist/src/agents/browser/analyzeScreenshot.d.ts +35 -0
- package/dist/src/agents/browser/analyzeScreenshot.js +183 -0
- package/dist/src/agents/browser/analyzeScreenshot.js.map +1 -0
- package/dist/src/agents/browser/analyzeScreenshot.test.d.ts +6 -0
- package/dist/src/agents/browser/analyzeScreenshot.test.js +161 -0
- package/dist/src/agents/browser/analyzeScreenshot.test.js.map +1 -0
- package/dist/src/agents/browser/automationOverlay.d.ts +26 -0
- package/dist/src/agents/browser/automationOverlay.js +100 -0
- package/dist/src/agents/browser/automationOverlay.js.map +1 -0
- package/dist/src/agents/browser/browserAgentDefinition.d.ts +50 -0
- package/dist/src/agents/browser/browserAgentDefinition.js +141 -0
- package/dist/src/agents/browser/browserAgentDefinition.js.map +1 -0
- package/dist/src/agents/browser/browserAgentFactory.d.ts +42 -0
- package/dist/src/agents/browser/browserAgentFactory.js +116 -0
- package/dist/src/agents/browser/browserAgentFactory.js.map +1 -0
- package/dist/src/agents/browser/browserAgentFactory.test.d.ts +6 -0
- package/dist/src/agents/browser/browserAgentFactory.test.js +240 -0
- package/dist/src/agents/browser/browserAgentFactory.test.js.map +1 -0
- package/dist/src/agents/browser/browserAgentInvocation.d.ts +34 -0
- package/dist/src/agents/browser/browserAgentInvocation.js +386 -0
- package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -0
- package/dist/src/agents/browser/browserAgentInvocation.test.d.ts +6 -0
- package/dist/src/agents/browser/browserAgentInvocation.test.js +382 -0
- package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -0
- package/dist/src/agents/browser/browserManager.d.ts +115 -0
- package/dist/src/agents/browser/browserManager.js +370 -0
- package/dist/src/agents/browser/browserManager.js.map +1 -0
- package/dist/src/agents/browser/browserManager.test.d.ts +6 -0
- package/dist/src/agents/browser/browserManager.test.js +382 -0
- package/dist/src/agents/browser/browserManager.test.js.map +1 -0
- package/dist/src/agents/browser/mcpToolWrapper.d.ts +45 -0
- package/dist/src/agents/browser/mcpToolWrapper.js +358 -0
- package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -0
- package/dist/src/agents/browser/mcpToolWrapper.test.d.ts +6 -0
- package/dist/src/agents/browser/mcpToolWrapper.test.js +126 -0
- package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -0
- package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.d.ts +6 -0
- package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.js +59 -0
- package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.js.map +1 -0
- package/dist/src/agents/browser/modelAvailability.d.ts +23 -0
- package/dist/src/agents/browser/modelAvailability.js +23 -0
- package/dist/src/agents/browser/modelAvailability.js.map +1 -0
- package/dist/src/agents/cli-help-agent.d.ts +2 -2
- package/dist/src/billing/billing.d.ts +80 -0
- package/dist/src/billing/billing.js +128 -0
- package/dist/src/billing/billing.js.map +1 -0
- package/dist/src/billing/billing.test.d.ts +6 -0
- package/dist/src/billing/billing.test.js +182 -0
- package/dist/src/billing/billing.test.js.map +1 -0
- package/dist/src/billing/index.d.ts +6 -0
- package/dist/src/billing/index.js +7 -0
- package/dist/src/billing/index.js.map +1 -0
- package/dist/src/code_assist/oauth2.d.ts +1 -1
- package/dist/src/code_assist/types.d.ts +26 -26
- package/dist/src/config/agent-loop-context.d.ts +22 -0
- package/dist/src/config/agent-loop-context.js +7 -0
- package/dist/src/config/agent-loop-context.js.map +1 -0
- package/dist/src/config/trackerFeatureFlag.test.d.ts +6 -0
- package/dist/src/config/trackerFeatureFlag.test.js +43 -0
- package/dist/src/config/trackerFeatureFlag.test.js.map +1 -0
- package/dist/src/config/userHintService.d.ts +46 -0
- package/dist/src/config/userHintService.js +81 -0
- package/dist/src/config/userHintService.js.map +1 -0
- package/dist/src/config/userHintService.test.d.ts +6 -0
- package/dist/src/config/userHintService.test.js +62 -0
- package/dist/src/config/userHintService.test.js.map +1 -0
- package/dist/src/core/localLiteRtLmClient.d.ts +24 -0
- package/dist/src/core/localLiteRtLmClient.js +77 -0
- package/dist/src/core/localLiteRtLmClient.js.map +1 -0
- package/dist/src/core/localLiteRtLmClient.test.d.ts +6 -0
- package/dist/src/core/localLiteRtLmClient.test.js +87 -0
- package/dist/src/core/localLiteRtLmClient.test.js.map +1 -0
- package/dist/src/core/openaiContentGenerator.d.ts +1 -0
- package/dist/src/core/openaiContentGenerator.js +13 -13
- package/dist/src/core/openaiContentGenerator.js.map +1 -1
- package/dist/src/hooks/runtimeHooks.test.d.ts +6 -0
- package/dist/src/hooks/runtimeHooks.test.js +100 -0
- package/dist/src/hooks/runtimeHooks.test.js.map +1 -0
- package/dist/src/ide/types.d.ts +6 -6
- package/dist/src/mcp/mcp-oauth-provider.d.ts +43 -0
- package/dist/src/mcp/mcp-oauth-provider.js +67 -0
- package/dist/src/mcp/mcp-oauth-provider.js.map +1 -0
- package/dist/src/mcp/mcp-oauth-provider.test.d.ts +6 -0
- package/dist/src/mcp/mcp-oauth-provider.test.js +63 -0
- package/dist/src/mcp/mcp-oauth-provider.test.js.map +1 -0
- package/dist/src/policy/integrity.d.ts +45 -0
- package/dist/src/policy/integrity.js +121 -0
- package/dist/src/policy/integrity.js.map +1 -0
- package/dist/src/policy/integrity.test.d.ts +6 -0
- package/dist/src/policy/integrity.test.js +132 -0
- package/dist/src/policy/integrity.test.js.map +1 -0
- package/dist/src/policy/policies/conseca.toml +6 -0
- package/dist/src/policy/workspace-policy.test.js +231 -0
- package/dist/src/policy/workspace-policy.test.js.map +1 -0
- package/dist/src/routing/strategies/approvalModeStrategy.d.ts +18 -0
- package/dist/src/routing/strategies/approvalModeStrategy.js +59 -0
- package/dist/src/routing/strategies/approvalModeStrategy.js.map +1 -0
- package/dist/src/routing/strategies/approvalModeStrategy.test.d.ts +6 -0
- package/dist/src/routing/strategies/approvalModeStrategy.test.js +140 -0
- package/dist/src/routing/strategies/approvalModeStrategy.test.js.map +1 -0
- package/dist/src/routing/strategies/gemmaClassifierStrategy.d.ts +14 -0
- package/dist/src/routing/strategies/gemmaClassifierStrategy.js +182 -0
- package/dist/src/routing/strategies/gemmaClassifierStrategy.js.map +1 -0
- package/dist/src/routing/strategies/gemmaClassifierStrategy.test.d.ts +6 -0
- package/dist/src/routing/strategies/gemmaClassifierStrategy.test.js +218 -0
- package/dist/src/routing/strategies/gemmaClassifierStrategy.test.js.map +1 -0
- package/dist/src/safety/conseca/conseca.d.ts +31 -0
- package/dist/src/safety/conseca/conseca.js +105 -0
- package/dist/src/safety/conseca/conseca.js.map +1 -0
- package/dist/src/safety/conseca/conseca.test.js +226 -0
- package/dist/src/safety/conseca/conseca.test.js.map +1 -0
- package/dist/src/safety/conseca/integration.test.js +19 -0
- package/dist/src/safety/conseca/integration.test.js.map +1 -0
- package/dist/src/safety/conseca/policy-enforcer.d.ts +13 -0
- package/dist/src/safety/conseca/policy-enforcer.js +135 -0
- package/dist/src/safety/conseca/policy-enforcer.js.map +1 -0
- package/dist/src/safety/conseca/policy-enforcer.test.js +141 -0
- package/dist/src/safety/conseca/policy-enforcer.test.js.map +1 -0
- package/dist/src/safety/conseca/policy-generator.d.ts +15 -0
- package/dist/src/safety/conseca/policy-generator.js +144 -0
- package/dist/src/safety/conseca/policy-generator.js.map +1 -0
- package/dist/src/safety/conseca/policy-generator.test.d.ts +6 -0
- package/dist/src/safety/conseca/policy-generator.test.js +84 -0
- package/dist/src/safety/conseca/policy-generator.test.js.map +1 -0
- package/dist/src/safety/conseca/types.d.ts +15 -0
- package/dist/src/safety/conseca/types.js +7 -0
- package/dist/src/safety/conseca/types.js.map +1 -0
- package/dist/src/scheduler/scheduler_parallel.test.d.ts +6 -0
- package/dist/src/scheduler/scheduler_parallel.test.js +401 -0
- package/dist/src/scheduler/scheduler_parallel.test.js.map +1 -0
- package/dist/src/services/FolderTrustDiscoveryService.d.ts +32 -0
- package/dist/src/services/FolderTrustDiscoveryService.js +169 -0
- package/dist/src/services/FolderTrustDiscoveryService.js.map +1 -0
- package/dist/src/services/FolderTrustDiscoveryService.test.d.ts +6 -0
- package/dist/src/services/FolderTrustDiscoveryService.test.js +118 -0
- package/dist/src/services/FolderTrustDiscoveryService.test.js.map +1 -0
- package/dist/src/services/fileKeychain.d.ts +24 -0
- package/dist/src/services/fileKeychain.js +123 -0
- package/dist/src/services/fileKeychain.js.map +1 -0
- package/dist/src/services/keychainService.d.ts +51 -0
- package/dist/src/services/keychainService.js +133 -0
- package/dist/src/services/keychainService.js.map +1 -0
- package/dist/src/services/keychainService.test.d.ts +6 -0
- package/dist/src/services/keychainService.test.js +150 -0
- package/dist/src/services/keychainService.test.js.map +1 -0
- package/dist/src/services/keychainTypes.d.ts +41 -0
- package/dist/src/services/keychainTypes.js +18 -0
- package/dist/src/services/keychainTypes.js.map +1 -0
- package/dist/src/services/trackerService.d.ts +49 -0
- package/dist/src/services/trackerService.js +193 -0
- package/dist/src/services/trackerService.js.map +1 -0
- package/dist/src/services/trackerService.test.d.ts +6 -0
- package/dist/src/services/trackerService.test.js +117 -0
- package/dist/src/services/trackerService.test.js.map +1 -0
- package/dist/src/services/trackerTypes.d.ts +51 -0
- package/dist/src/services/trackerTypes.js +33 -0
- package/dist/src/services/trackerTypes.js.map +1 -0
- package/dist/src/telemetry/billingEvents.d.ts +75 -0
- package/dist/src/telemetry/billingEvents.js +181 -0
- package/dist/src/telemetry/billingEvents.js.map +1 -0
- package/dist/src/telemetry/billingEvents.test.d.ts +6 -0
- package/dist/src/telemetry/billingEvents.test.js +139 -0
- package/dist/src/telemetry/billingEvents.test.js.map +1 -0
- package/dist/src/telemetry/conseca-logger.d.ts +9 -0
- package/dist/src/telemetry/conseca-logger.js +91 -0
- package/dist/src/telemetry/conseca-logger.js.map +1 -0
- package/dist/src/telemetry/conseca-logger.test.d.ts +6 -0
- package/dist/src/telemetry/conseca-logger.test.js +90 -0
- package/dist/src/telemetry/conseca-logger.test.js.map +1 -0
- package/dist/src/telemetry/trace.test.d.ts +6 -0
- package/dist/src/telemetry/trace.test.js +116 -0
- package/dist/src/telemetry/trace.test.js.map +1 -0
- package/dist/src/tools/definitions/trackerTools.d.ts +12 -0
- package/dist/src/tools/definitions/trackerTools.js +146 -0
- package/dist/src/tools/definitions/trackerTools.js.map +1 -0
- package/dist/src/tools/diff-utils.d.ts +9 -0
- package/dist/src/tools/diff-utils.js +66 -0
- package/dist/src/tools/diff-utils.js.map +1 -0
- package/dist/src/tools/diff-utils.test.d.ts +6 -0
- package/dist/src/tools/diff-utils.test.js +53 -0
- package/dist/src/tools/diff-utils.test.js.map +1 -0
- package/dist/src/tools/grep-utils.d.ts +49 -0
- package/dist/src/tools/grep-utils.js +147 -0
- package/dist/src/tools/grep-utils.js.map +1 -0
- package/dist/src/tools/omissionPlaceholderDetector.d.ts +15 -0
- package/dist/src/tools/omissionPlaceholderDetector.js +90 -0
- package/dist/src/tools/omissionPlaceholderDetector.js.map +1 -0
- package/dist/src/tools/omissionPlaceholderDetector.test.d.ts +6 -0
- package/dist/src/tools/omissionPlaceholderDetector.test.js +49 -0
- package/dist/src/tools/omissionPlaceholderDetector.test.js.map +1 -0
- package/dist/src/tools/trackerTools.d.ts +122 -0
- package/dist/src/tools/trackerTools.js +365 -0
- package/dist/src/tools/trackerTools.js.map +1 -0
- package/dist/src/tools/trackerTools.test.d.ts +6 -0
- package/dist/src/tools/trackerTools.test.js +97 -0
- package/dist/src/tools/trackerTools.test.js.map +1 -0
- package/dist/src/utils/approvalModeUtils.d.ts +14 -0
- package/dist/src/utils/approvalModeUtils.js +35 -0
- package/dist/src/utils/approvalModeUtils.js.map +1 -0
- package/dist/src/utils/approvalModeUtils.test.d.ts +6 -0
- package/dist/src/utils/approvalModeUtils.test.js +36 -0
- package/dist/src/utils/approvalModeUtils.test.js.map +1 -0
- package/dist/src/utils/cache.d.ts +63 -0
- package/dist/src/utils/cache.js +103 -0
- package/dist/src/utils/cache.js.map +1 -0
- package/dist/src/utils/cache.test.d.ts +6 -0
- package/dist/src/utils/cache.test.js +158 -0
- package/dist/src/utils/cache.test.js.map +1 -0
- package/dist/src/utils/checkpointUtils.d.ts +2 -2
- package/dist/src/utils/compatibility.d.ts +41 -0
- package/dist/src/utils/compatibility.js +112 -0
- package/dist/src/utils/compatibility.js.map +1 -0
- package/dist/src/utils/compatibility.test.d.ts +6 -0
- package/dist/src/utils/compatibility.test.js +233 -0
- package/dist/src/utils/compatibility.test.js.map +1 -0
- package/dist/src/utils/envExpansion.d.ts +18 -0
- package/dist/src/utils/envExpansion.js +46 -0
- package/dist/src/utils/envExpansion.js.map +1 -0
- package/dist/src/utils/envExpansion.test.d.ts +6 -0
- package/dist/src/utils/envExpansion.test.js +110 -0
- package/dist/src/utils/envExpansion.test.js.map +1 -0
- package/dist/src/utils/errors_timeout.test.d.ts +6 -0
- package/dist/src/utils/errors_timeout.test.js +40 -0
- package/dist/src/utils/errors_timeout.test.js.map +1 -0
- package/dist/src/utils/fetch.test.d.ts +6 -0
- package/dist/src/utils/fetch.test.js +206 -0
- package/dist/src/utils/fetch.test.js.map +1 -0
- package/dist/src/utils/markdownUtils.d.ts +22 -0
- package/dist/src/utils/markdownUtils.js +126 -0
- package/dist/src/utils/markdownUtils.js.map +1 -0
- package/dist/src/utils/markdownUtils.test.d.ts +6 -0
- package/dist/src/utils/markdownUtils.test.js +107 -0
- package/dist/src/utils/markdownUtils.test.js.map +1 -0
- package/dist/src/utils/oauth-flow.d.ts +105 -0
- package/dist/src/utils/oauth-flow.js +370 -0
- package/dist/src/utils/oauth-flow.js.map +1 -0
- package/dist/src/utils/oauth-flow.test.d.ts +6 -0
- package/dist/src/utils/oauth-flow.test.js +360 -0
- package/dist/src/utils/oauth-flow.test.js.map +1 -0
- package/dist/src/utils/sessionUtils.d.ts +14 -0
- package/dist/src/utils/sessionUtils.js +122 -0
- package/dist/src/utils/sessionUtils.js.map +1 -0
- package/dist/src/utils/sessionUtils.test.d.ts +1 -0
- package/dist/src/utils/sessionUtils.test.js +171 -0
- package/dist/src/utils/sessionUtils.test.js.map +1 -0
- package/dist/src/voice/responseFormatter.d.ts +38 -0
- package/dist/src/voice/responseFormatter.js +130 -0
- package/dist/src/voice/responseFormatter.js.map +1 -0
- package/dist/src/voice/responseFormatter.test.d.ts +6 -0
- package/dist/src/voice/responseFormatter.test.js +214 -0
- package/dist/src/voice/responseFormatter.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/docs/CONTRIBUTING.md +0 -555
- package/dist/src/agents/executor.d.ts +0 -114
- package/dist/src/agents/executor.js +0 -779
- package/dist/src/agents/executor.js.map +0 -1
- package/dist/src/agents/executor.test.js +0 -1362
- package/dist/src/agents/executor.test.js.map +0 -1
- package/dist/src/agents/invocation.d.ts +0 -46
- package/dist/src/agents/invocation.js +0 -102
- package/dist/src/agents/invocation.js.map +0 -1
- package/dist/src/agents/invocation.test.js +0 -215
- package/dist/src/agents/invocation.test.js.map +0 -1
- package/dist/src/core/subagent.d.ts +0 -236
- package/dist/src/core/subagent.js +0 -482
- package/dist/src/core/subagent.js.map +0 -1
- package/dist/src/core/subagent.test.js +0 -530
- package/dist/src/core/subagent.test.js.map +0 -1
- package/dist/src/tools/smart-edit.d.ts +0 -78
- package/dist/src/tools/smart-edit.js +0 -717
- package/dist/src/tools/smart-edit.js.map +0 -1
- package/dist/src/tools/smart-edit.test.js +0 -592
- package/dist/src/tools/smart-edit.test.js.map +0 -1
- /package/dist/src/{agents/executor.test.d.ts → policy/workspace-policy.test.d.ts} +0 -0
- /package/dist/src/{agents/invocation.test.d.ts → safety/conseca/conseca.test.d.ts} +0 -0
- /package/dist/src/{core/subagent.test.d.ts → safety/conseca/integration.test.d.ts} +0 -0
- /package/dist/src/{tools/smart-edit.test.d.ts → safety/conseca/policy-enforcer.test.d.ts} +0 -0
|
@@ -10,11 +10,11 @@ declare const CliHelpReportSchema: z.ZodObject<{
|
|
|
10
10
|
answer: z.ZodString;
|
|
11
11
|
sources: z.ZodArray<z.ZodString, "many">;
|
|
12
12
|
}, "strip", z.ZodTypeAny, {
|
|
13
|
-
sources: string[];
|
|
14
13
|
answer: string;
|
|
15
|
-
}, {
|
|
16
14
|
sources: string[];
|
|
15
|
+
}, {
|
|
17
16
|
answer: string;
|
|
17
|
+
sources: string[];
|
|
18
18
|
}>;
|
|
19
19
|
/**
|
|
20
20
|
* An agent specialized in answering questions about Gemini CLI itself,
|
|
@@ -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":"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"}
|
|
@@ -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":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/billing/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAC"}
|
|
@@ -7,7 +7,7 @@ import type { AuthClient } from 'google-auth-library';
|
|
|
7
7
|
import { EventEmitter } from 'node:events';
|
|
8
8
|
import type { Config } from '../config/config.js';
|
|
9
9
|
import { AuthType } from '../core/contentGenerator.js';
|
|
10
|
-
export declare const authEvents: EventEmitter<
|
|
10
|
+
export declare const authEvents: EventEmitter<any>;
|
|
11
11
|
/**
|
|
12
12
|
* An Authentication URL for updating the credentials of a Oauth2Client
|
|
13
13
|
* as well as a promise that will resolve when the credentials have
|
|
@@ -255,33 +255,33 @@ export declare const McpConfigDefinitionSchema: z.ZodObject<{
|
|
|
255
255
|
includeTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
256
256
|
excludeTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
257
257
|
}, "strip", z.ZodTypeAny, {
|
|
258
|
+
url?: string | undefined;
|
|
258
259
|
type?: "http" | "sse" | undefined;
|
|
259
260
|
excludeTools?: string[] | undefined;
|
|
260
|
-
url?: string | undefined;
|
|
261
|
-
includeTools?: string[] | undefined;
|
|
262
261
|
trust?: boolean | undefined;
|
|
262
|
+
includeTools?: string[] | undefined;
|
|
263
263
|
}, {
|
|
264
|
+
url?: string | undefined;
|
|
264
265
|
type?: "http" | "sse" | undefined;
|
|
265
266
|
excludeTools?: string[] | undefined;
|
|
266
|
-
url?: string | undefined;
|
|
267
|
-
includeTools?: string[] | undefined;
|
|
268
267
|
trust?: boolean | undefined;
|
|
268
|
+
includeTools?: string[] | undefined;
|
|
269
269
|
}>>>;
|
|
270
270
|
}, "strip", z.ZodTypeAny, {
|
|
271
271
|
mcpServers?: Record<string, {
|
|
272
|
+
url?: string | undefined;
|
|
272
273
|
type?: "http" | "sse" | undefined;
|
|
273
274
|
excludeTools?: string[] | undefined;
|
|
274
|
-
url?: string | undefined;
|
|
275
|
-
includeTools?: string[] | undefined;
|
|
276
275
|
trust?: boolean | undefined;
|
|
276
|
+
includeTools?: string[] | undefined;
|
|
277
277
|
}> | undefined;
|
|
278
278
|
}, {
|
|
279
279
|
mcpServers?: Record<string, {
|
|
280
|
+
url?: string | undefined;
|
|
280
281
|
type?: "http" | "sse" | undefined;
|
|
281
282
|
excludeTools?: string[] | undefined;
|
|
282
|
-
url?: string | undefined;
|
|
283
|
-
includeTools?: string[] | undefined;
|
|
284
283
|
trust?: boolean | undefined;
|
|
284
|
+
includeTools?: string[] | undefined;
|
|
285
285
|
}> | undefined;
|
|
286
286
|
}>;
|
|
287
287
|
export type McpConfigDefinition = z.infer<typeof McpConfigDefinitionSchema>;
|
|
@@ -297,55 +297,55 @@ export declare const AdminControlsSettingsSchema: z.ZodObject<{
|
|
|
297
297
|
includeTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
298
298
|
excludeTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
299
299
|
}, "strip", z.ZodTypeAny, {
|
|
300
|
+
url?: string | undefined;
|
|
300
301
|
type?: "http" | "sse" | undefined;
|
|
301
302
|
excludeTools?: string[] | undefined;
|
|
302
|
-
url?: string | undefined;
|
|
303
|
-
includeTools?: string[] | undefined;
|
|
304
303
|
trust?: boolean | undefined;
|
|
304
|
+
includeTools?: string[] | undefined;
|
|
305
305
|
}, {
|
|
306
|
+
url?: string | undefined;
|
|
306
307
|
type?: "http" | "sse" | undefined;
|
|
307
308
|
excludeTools?: string[] | undefined;
|
|
308
|
-
url?: string | undefined;
|
|
309
|
-
includeTools?: string[] | undefined;
|
|
310
309
|
trust?: boolean | undefined;
|
|
310
|
+
includeTools?: string[] | undefined;
|
|
311
311
|
}>>>;
|
|
312
312
|
}, "strip", z.ZodTypeAny, {
|
|
313
313
|
mcpServers?: Record<string, {
|
|
314
|
+
url?: string | undefined;
|
|
314
315
|
type?: "http" | "sse" | undefined;
|
|
315
316
|
excludeTools?: string[] | undefined;
|
|
316
|
-
url?: string | undefined;
|
|
317
|
-
includeTools?: string[] | undefined;
|
|
318
317
|
trust?: boolean | undefined;
|
|
318
|
+
includeTools?: string[] | undefined;
|
|
319
319
|
}> | undefined;
|
|
320
320
|
}, {
|
|
321
321
|
mcpServers?: Record<string, {
|
|
322
|
+
url?: string | undefined;
|
|
322
323
|
type?: "http" | "sse" | undefined;
|
|
323
324
|
excludeTools?: string[] | undefined;
|
|
324
|
-
url?: string | undefined;
|
|
325
|
-
includeTools?: string[] | undefined;
|
|
326
325
|
trust?: boolean | undefined;
|
|
326
|
+
includeTools?: string[] | undefined;
|
|
327
327
|
}> | undefined;
|
|
328
328
|
}>>;
|
|
329
329
|
}, "strip", z.ZodTypeAny, {
|
|
330
330
|
mcpEnabled?: boolean | undefined;
|
|
331
331
|
mcpConfig?: {
|
|
332
332
|
mcpServers?: Record<string, {
|
|
333
|
+
url?: string | undefined;
|
|
333
334
|
type?: "http" | "sse" | undefined;
|
|
334
335
|
excludeTools?: string[] | undefined;
|
|
335
|
-
url?: string | undefined;
|
|
336
|
-
includeTools?: string[] | undefined;
|
|
337
336
|
trust?: boolean | undefined;
|
|
337
|
+
includeTools?: string[] | undefined;
|
|
338
338
|
}> | undefined;
|
|
339
339
|
} | undefined;
|
|
340
340
|
}, {
|
|
341
341
|
mcpEnabled?: boolean | undefined;
|
|
342
342
|
mcpConfig?: {
|
|
343
343
|
mcpServers?: Record<string, {
|
|
344
|
+
url?: string | undefined;
|
|
344
345
|
type?: "http" | "sse" | undefined;
|
|
345
346
|
excludeTools?: string[] | undefined;
|
|
346
|
-
url?: string | undefined;
|
|
347
|
-
includeTools?: string[] | undefined;
|
|
348
347
|
trust?: boolean | undefined;
|
|
348
|
+
includeTools?: string[] | undefined;
|
|
349
349
|
}> | undefined;
|
|
350
350
|
} | undefined;
|
|
351
351
|
}>>;
|
|
@@ -375,11 +375,11 @@ export declare const AdminControlsSettingsSchema: z.ZodObject<{
|
|
|
375
375
|
mcpEnabled?: boolean | undefined;
|
|
376
376
|
mcpConfig?: {
|
|
377
377
|
mcpServers?: Record<string, {
|
|
378
|
+
url?: string | undefined;
|
|
378
379
|
type?: "http" | "sse" | undefined;
|
|
379
380
|
excludeTools?: string[] | undefined;
|
|
380
|
-
url?: string | undefined;
|
|
381
|
-
includeTools?: string[] | undefined;
|
|
382
381
|
trust?: boolean | undefined;
|
|
382
|
+
includeTools?: string[] | undefined;
|
|
383
383
|
}> | undefined;
|
|
384
384
|
} | undefined;
|
|
385
385
|
} | undefined;
|
|
@@ -395,11 +395,11 @@ export declare const AdminControlsSettingsSchema: z.ZodObject<{
|
|
|
395
395
|
mcpEnabled?: boolean | undefined;
|
|
396
396
|
mcpConfig?: {
|
|
397
397
|
mcpServers?: Record<string, {
|
|
398
|
+
url?: string | undefined;
|
|
398
399
|
type?: "http" | "sse" | undefined;
|
|
399
400
|
excludeTools?: string[] | undefined;
|
|
400
|
-
url?: string | undefined;
|
|
401
|
-
includeTools?: string[] | undefined;
|
|
402
401
|
trust?: boolean | undefined;
|
|
402
|
+
includeTools?: string[] | undefined;
|
|
403
403
|
}> | undefined;
|
|
404
404
|
} | undefined;
|
|
405
405
|
} | 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
|
+
}
|