From 7ab75dd15a1460c1a11e136c924f28cd0e8dafef Mon Sep 17 00:00:00 2001 From: Chris Staley Date: Mon, 30 Mar 2026 14:18:02 -0600 Subject: [PATCH 1/2] fix: use gemini-cli/ as model prefix instead of gc/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gemini CLI clients use bare model names, not provider-prefixed IDs. The gc/ alias was opaque — gemini-cli/ is self-documenting. Since alias now equals provider ID, the dual-prefix duplication logic naturally skips Gemini CLI (no duplicate gemini-cli/ entries). --- open-sse/config/providerRegistry.ts | 2 +- src/app/(dashboard)/dashboard/combos/page.tsx | 2 +- src/app/api/v1/models/catalog.ts | 1 - src/lib/pricingSync.ts | 4 ++-- src/shared/constants/pricing.ts | 2 +- src/shared/constants/providers.ts | 2 +- 6 files changed, 6 insertions(+), 7 deletions(-) diff --git a/open-sse/config/providerRegistry.ts b/open-sse/config/providerRegistry.ts index 0228412b9f..0e831d3b37 100644 --- a/open-sse/config/providerRegistry.ts +++ b/open-sse/config/providerRegistry.ts @@ -212,7 +212,7 @@ export const REGISTRY: Record = { "gemini-cli": { id: "gemini-cli", - alias: "gc", + alias: "gemini-cli", format: "gemini-cli", executor: "gemini-cli", baseUrl: "https://cloudcode-pa.googleapis.com/v1internal", diff --git a/src/app/(dashboard)/dashboard/combos/page.tsx b/src/app/(dashboard)/dashboard/combos/page.tsx index 952b50276e..181cded1fb 100644 --- a/src/app/(dashboard)/dashboard/combos/page.tsx +++ b/src/app/(dashboard)/dashboard/combos/page.tsx @@ -1439,7 +1439,7 @@ function ComboFormModal({ isOpen, combo, onClose, onSave, activeProviders }) { }; const FREE_STACK_PRESET_MODELS = [ - { model: "gc/gemini-3-flash-preview", weight: 0 }, + { model: "gemini-cli/gemini-3-flash-preview", weight: 0 }, { model: "kr/claude-sonnet-4.5", weight: 0 }, { model: "if/kimi-k2-thinking", weight: 0 }, { model: "if/qwen3-coder-plus", weight: 0 }, diff --git a/src/app/api/v1/models/catalog.ts b/src/app/api/v1/models/catalog.ts index 3be16b456e..5aeebeb20c 100644 --- a/src/app/api/v1/models/catalog.ts +++ b/src/app/api/v1/models/catalog.ts @@ -25,7 +25,6 @@ const FALLBACK_ALIAS_TO_PROVIDER = { cl: "cline", cu: "cursor", cx: "codex", - gc: "gemini-cli", gh: "github", if: "iflow", kc: "kilocode", diff --git a/src/lib/pricingSync.ts b/src/lib/pricingSync.ts index f3836eee36..b6f1fe65c6 100644 --- a/src/lib/pricingSync.ts +++ b/src/lib/pricingSync.ts @@ -75,9 +75,9 @@ const LITELLM_PRICING_URL = const LITELLM_PROVIDER_MAP: Record = { openai: ["openai", "cx"], anthropic: ["anthropic", "cc"], - vertex_ai: ["gemini", "gc"], + vertex_ai: ["gemini", "gemini-cli"], "vertex_ai-anthropic_models": ["anthropic"], - google: ["gemini", "gc"], + google: ["gemini", "gemini-cli"], deepseek: ["if"], groq: ["groq"], together_ai: ["openrouter"], diff --git a/src/shared/constants/pricing.ts b/src/shared/constants/pricing.ts index 789ae0a06a..10fcff078e 100644 --- a/src/shared/constants/pricing.ts +++ b/src/shared/constants/pricing.ts @@ -1299,7 +1299,7 @@ type TokenUsage = Record; /** * Get pricing for a specific provider and model - * @param {string} provider - Provider ID (e.g., "openai", "cc", "gc") + * @param {string} provider - Provider ID (e.g., "openai", "cc", "gemini-cli") * @param {string} model - Model ID * @returns {object|null} Pricing object or null if not found */ diff --git a/src/shared/constants/providers.ts b/src/shared/constants/providers.ts index 266dc08234..13dfc12ed5 100644 --- a/src/shared/constants/providers.ts +++ b/src/shared/constants/providers.ts @@ -6,7 +6,7 @@ export const FREE_PROVIDERS = { qwen: { id: "qwen", alias: "qw", name: "Qwen Code", icon: "psychology", color: "#10B981" }, "gemini-cli": { id: "gemini-cli", - alias: "gc", + alias: "gemini-cli", name: "Gemini CLI", icon: "terminal", color: "#4285F4", From e2eb4ef29d6c87f45081b11252cd74149d6d6e9b Mon Sep 17 00:00:00 2001 From: Chris Staley Date: Mon, 30 Mar 2026 15:23:34 -0600 Subject: [PATCH 2/2] fix: address PR #831 review feedback - Update DEFAULT_PRICING key from 'gc' to 'gemini-cli' so pricing lookups work with the new alias - Restore gc -> gemini-cli in FALLBACK_ALIAS_TO_PROVIDER for backward compatibility (existing saved configs with gc/ prefix still resolve) --- src/app/api/v1/models/catalog.ts | 1 + src/shared/constants/pricing.ts | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/app/api/v1/models/catalog.ts b/src/app/api/v1/models/catalog.ts index 5aeebeb20c..3be16b456e 100644 --- a/src/app/api/v1/models/catalog.ts +++ b/src/app/api/v1/models/catalog.ts @@ -25,6 +25,7 @@ const FALLBACK_ALIAS_TO_PROVIDER = { cl: "cline", cu: "cursor", cx: "codex", + gc: "gemini-cli", gh: "github", if: "iflow", kc: "kilocode", diff --git a/src/shared/constants/pricing.ts b/src/shared/constants/pricing.ts index 10fcff078e..a07ee45a52 100644 --- a/src/shared/constants/pricing.ts +++ b/src/shared/constants/pricing.ts @@ -189,8 +189,8 @@ export const DEFAULT_PRICING = { }, }, - // Gemini CLI (gc) - gc: { + // Gemini CLI + "gemini-cli": { "gemini-3-flash-preview": { input: 0.5, output: 3.0,