summaryrefslogtreecommitdiff
path: root/packages/cli/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src')
-rw-r--r--packages/cli/src/ui/App.tsx79
1 files changed, 43 insertions, 36 deletions
diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx
index cd94311b..f66d8a5b 100644
--- a/packages/cli/src/ui/App.tsx
+++ b/packages/cli/src/ui/App.tsx
@@ -57,6 +57,7 @@ import {
EditorType,
FlashFallbackEvent,
logFlashFallback,
+ AuthType,
} from '@google/gemini-cli-core';
import { validateAuthMethod } from '../config/auth.js';
import { useLogger } from './hooks/useLogger.js';
@@ -294,64 +295,70 @@ const App = ({ config, settings, startupWarnings = [], version }: AppProps) => {
): Promise<boolean> => {
let message: string;
- // Use actual user tier if available, otherwise default to FREE tier behavior (safe default)
- const isPaidTier =
- userTier === UserTierId.LEGACY || userTier === UserTierId.STANDARD;
+ if (
+ config.getContentGeneratorConfig().authType ===
+ AuthType.LOGIN_WITH_GOOGLE
+ ) {
+ // Use actual user tier if available, otherwise default to FREE tier behavior (safe default)
+ const isPaidTier =
+ userTier === UserTierId.LEGACY || userTier === UserTierId.STANDARD;
- // Check if this is a Pro quota exceeded error
- if (error && isProQuotaExceededError(error)) {
- if (isPaidTier) {
- message = `⚡ You have reached your daily ${currentModel} quota limit.
+ // Check if this is a Pro quota exceeded error
+ if (error && isProQuotaExceededError(error)) {
+ if (isPaidTier) {
+ message = `⚡ You have reached your daily ${currentModel} quota limit.
⚡ Automatically switching from ${currentModel} to ${fallbackModel} for the remainder of this session.
⚡ To continue accessing the ${currentModel} model today, consider using /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey`;
- } else {
- message = `⚡ You have reached your daily ${currentModel} quota limit.
+ } else {
+ message = `⚡ You have reached your daily ${currentModel} quota limit.
⚡ Automatically switching from ${currentModel} to ${fallbackModel} for the remainder of this session.
⚡ To increase your limits, upgrade to a Gemini Code Assist Standard or Enterprise plan with higher limits at https://goo.gle/set-up-gemini-code-assist
⚡ Or you can utilize a Gemini API Key. See: https://goo.gle/gemini-cli-docs-auth#gemini-api-key
⚡ You can switch authentication methods by typing /auth`;
- }
- } else if (error && isGenericQuotaExceededError(error)) {
- if (isPaidTier) {
- message = `⚡ You have reached your daily quota limit.
+ }
+ } else if (error && isGenericQuotaExceededError(error)) {
+ if (isPaidTier) {
+ message = `⚡ You have reached your daily quota limit.
⚡ Automatically switching from ${currentModel} to ${fallbackModel} for the remainder of this session.
⚡ To continue accessing the ${currentModel} model today, consider using /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey`;
- } else {
- message = `⚡ You have reached your daily quota limit.
+ } else {
+ message = `⚡ You have reached your daily quota limit.
⚡ Automatically switching from ${currentModel} to ${fallbackModel} for the remainder of this session.
⚡ To increase your limits, upgrade to a Gemini Code Assist Standard or Enterprise plan with higher limits at https://goo.gle/set-up-gemini-code-assist
⚡ Or you can utilize a Gemini API Key. See: https://goo.gle/gemini-cli-docs-auth#gemini-api-key
⚡ You can switch authentication methods by typing /auth`;
- }
- } else {
- if (isPaidTier) {
- // Default fallback message for other cases (like consecutive 429s)
- message = `⚡ Automatically switching from ${currentModel} to ${fallbackModel} for faster responses for the remainder of this session.
+ }
+ } else {
+ if (isPaidTier) {
+ // Default fallback message for other cases (like consecutive 429s)
+ message = `⚡ Automatically switching from ${currentModel} to ${fallbackModel} for faster responses for the remainder of this session.
⚡ Possible reasons for this are that you have received multiple consecutive capacity errors or you have reached your daily ${currentModel} quota limit
⚡ To continue accessing the ${currentModel} model today, consider using /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey`;
- } else {
- // Default fallback message for other cases (like consecutive 429s)
- message = `⚡ Automatically switching from ${currentModel} to ${fallbackModel} for faster responses for the remainder of this session.
+ } else {
+ // Default fallback message for other cases (like consecutive 429s)
+ message = `⚡ Automatically switching from ${currentModel} to ${fallbackModel} for faster responses for the remainder of this session.
⚡ Possible reasons for this are that you have received multiple consecutive capacity errors or you have reached your daily ${currentModel} quota limit
⚡ To increase your limits, upgrade to a Gemini Code Assist Standard or Enterprise plan with higher limits at https://goo.gle/set-up-gemini-code-assist
⚡ Or you can utilize a Gemini API Key. See: https://goo.gle/gemini-cli-docs-auth#gemini-api-key
⚡ You can switch authentication methods by typing /auth`;
+ }
}
- }
- // Add message to UI history
- addItem(
- {
- type: MessageType.INFO,
- text: message,
- },
- Date.now(),
- );
+ // Add message to UI history
+ addItem(
+ {
+ type: MessageType.INFO,
+ text: message,
+ },
+ Date.now(),
+ );
+
+ // Set the flag to prevent tool continuation
+ setModelSwitchedFromQuotaError(true);
+ // Set global quota error flag to prevent Flash model calls
+ config.setQuotaErrorOccurred(true);
+ }
- // Set the flag to prevent tool continuation
- setModelSwitchedFromQuotaError(true);
- // Set global quota error flag to prevent Flash model calls
- config.setQuotaErrorOccurred(true);
// Switch model for future use but return false to stop current retry
config.setModel(fallbackModel);
logFlashFallback(