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