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;