mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-13 13:22:35 -07:00
fix(core): handle optional response fields from code assist API (#20345)
This commit is contained in:
@@ -18,6 +18,7 @@ import type { AuthClient } from 'google-auth-library';
|
||||
import type { ValidationHandler } from '../fallback/types.js';
|
||||
import { ChangeAuthRequestedError } from '../utils/errors.js';
|
||||
import { ValidationRequiredError } from '../utils/googleQuotaErrors.js';
|
||||
import { debugLogger } from '../utils/debugLogger.js';
|
||||
|
||||
export class ProjectIdRequiredError extends Error {
|
||||
constructor() {
|
||||
@@ -130,11 +131,20 @@ export async function setupUser(
|
||||
}
|
||||
|
||||
if (loadRes.currentTier) {
|
||||
if (!loadRes.paidTier?.id && !loadRes.currentTier.id) {
|
||||
debugLogger.warn(
|
||||
'Warning: Code Assist API did not return a user tier ID. Defaulting to STANDARD tier.',
|
||||
);
|
||||
}
|
||||
|
||||
if (!loadRes.cloudaicompanionProject) {
|
||||
if (projectId) {
|
||||
return {
|
||||
projectId,
|
||||
userTier: loadRes.paidTier?.id ?? loadRes.currentTier.id,
|
||||
userTier:
|
||||
loadRes.paidTier?.id ??
|
||||
loadRes.currentTier.id ??
|
||||
UserTierId.STANDARD,
|
||||
userTierName: loadRes.paidTier?.name ?? loadRes.currentTier.name,
|
||||
};
|
||||
}
|
||||
@@ -144,13 +154,20 @@ export async function setupUser(
|
||||
}
|
||||
return {
|
||||
projectId: loadRes.cloudaicompanionProject,
|
||||
userTier: loadRes.paidTier?.id ?? loadRes.currentTier.id,
|
||||
userTier:
|
||||
loadRes.paidTier?.id ?? loadRes.currentTier.id ?? UserTierId.STANDARD,
|
||||
userTierName: loadRes.paidTier?.name ?? loadRes.currentTier.name,
|
||||
};
|
||||
}
|
||||
|
||||
const tier = getOnboardTier(loadRes);
|
||||
|
||||
if (!tier.id) {
|
||||
debugLogger.warn(
|
||||
'Warning: Code Assist API did not return an onboarding tier ID. Defaulting to STANDARD tier.',
|
||||
);
|
||||
}
|
||||
|
||||
let onboardReq: OnboardUserRequest;
|
||||
if (tier.id === UserTierId.FREE) {
|
||||
// The free tier uses a managed google cloud project. Setting a project in the `onboardUser` request causes a `Precondition Failed` error.
|
||||
@@ -183,7 +200,7 @@ export async function setupUser(
|
||||
if (projectId) {
|
||||
return {
|
||||
projectId,
|
||||
userTier: tier.id,
|
||||
userTier: tier.id ?? UserTierId.STANDARD,
|
||||
userTierName: tier.name,
|
||||
};
|
||||
}
|
||||
@@ -193,7 +210,7 @@ export async function setupUser(
|
||||
|
||||
return {
|
||||
projectId: lroRes.response.cloudaicompanionProject.id,
|
||||
userTier: tier.id,
|
||||
userTier: tier.id ?? UserTierId.STANDARD,
|
||||
userTierName: tier.name,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user