From 848fbf4686b49305c26ef85da339b12dffa51b5b Mon Sep 17 00:00:00 2001 From: kaitranntt Date: Thu, 4 Dec 2025 05:41:10 -0500 Subject: [PATCH] fix(cliproxy): clarify paid tier messaging to reference google account tier Replace misleading "[Paid API]" and "API key" references with "[Paid Tier]" and clarify that paid tier refers to a paid Google account (not free tier), not an API key purchase. Updates model descriptions in both catalog and configuration to accurately reflect the tier requirement. --- src/cliproxy/model-catalog.ts | 8 ++++---- src/cliproxy/model-config.ts | 12 +++++++----- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/cliproxy/model-catalog.ts b/src/cliproxy/model-catalog.ts index 0fccc017..5c609330 100644 --- a/src/cliproxy/model-catalog.ts +++ b/src/cliproxy/model-catalog.ts @@ -15,7 +15,7 @@ export interface ModelEntry { id: string; /** Human-readable name for display */ name: string; - /** Access tier indicator - 'paid' means requires paid API tier (not model pricing) */ + /** Access tier indicator - 'paid' means requires paid Google account (not free tier) */ tier?: 'free' | 'paid'; /** Optional description for the model */ description?: string; @@ -61,7 +61,7 @@ export const MODEL_CATALOG: Partial> = id: 'gemini-3-pro-preview', name: 'Gemini 3 Pro', tier: 'paid', - description: 'Google latest, requires Paid API tier', + description: 'Google latest, requires paid Google account', }, ], }, @@ -74,12 +74,12 @@ export const MODEL_CATALOG: Partial> = id: 'gemini-3-pro-preview', name: 'Gemini 3 Pro', tier: 'paid', - description: 'Latest model, requires Paid API tier', + description: 'Latest model, requires paid Google account', }, { id: 'gemini-2.5-pro', name: 'Gemini 2.5 Pro', - description: 'Stable release, works with free tier', + description: 'Stable, works with free Google account', }, ], }, diff --git a/src/cliproxy/model-config.ts b/src/cliproxy/model-config.ts index d58c6c11..cc5bcfa4 100644 --- a/src/cliproxy/model-config.ts +++ b/src/cliproxy/model-config.ts @@ -43,8 +43,8 @@ export function getCurrentModel(provider: CLIProxyProvider): string | undefined * Format model entry for display in selection list */ function formatModelOption(model: ModelEntry): string { - // Tier badge: clarify that "paid" means API tier, not model pricing - const tierBadge = model.tier === 'paid' ? color(' [Paid API]', 'warning') : ''; + // Tier badge: clarify that "paid" means paid Google account (not free tier) + const tierBadge = model.tier === 'paid' ? color(' [Paid Tier]', 'warning') : ''; return `${model.name}${tierBadge}`; } @@ -54,7 +54,7 @@ function formatModelOption(model: ModelEntry): string { function formatModelDetailed(model: ModelEntry, isCurrent: boolean): string { const marker = isCurrent ? color('>', 'success') : ' '; const name = isCurrent ? bold(model.name) : model.name; - const tierBadge = model.tier === 'paid' ? color(' [Paid API]', 'warning') : ''; + const tierBadge = model.tier === 'paid' ? color(' [Paid Tier]', 'warning') : ''; const desc = model.description ? dim(` - ${model.description}`) : ''; return ` ${marker} ${name}${tierBadge}${desc}`; } @@ -103,7 +103,9 @@ export async function configureProviderModel( console.error(header(`Configure ${catalog.displayName} Model`)); console.error(''); console.error(dim(' Select which model to use for this provider.')); - console.error(dim(' Models marked [Paid API] require a paid Google AI Studio API key.')); + console.error( + dim(' Models marked [Paid Tier] require a paid Google account (not free tier).') + ); console.error(''); // Interactive selection @@ -181,7 +183,7 @@ export async function showCurrentConfig(provider: CLIProxyProvider): Promise { const isCurrent = m.id === currentModel;