mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-10 17:14:57 +00:00
fix(provider): normalize bare gemini-3 Pro model IDs for google-antigravity (#24145)
* fix(provider): normalize bare gemini-3 Pro model IDs for google-antigravity The Antigravity Cloud Code Assist API requires a thinking-tier suffix (-low or -high) for all Gemini 3 Pro variants. When a user configures a bare model ID like `gemini-3.1-pro`, the API returns a 404 because it only recognises `gemini-3.1-pro-low` or `gemini-3.1-pro-high`. Add `normalizeAntigravityModelId()` that appends `-low` (the default tier) to bare Pro model IDs, and apply it during provider normalisation for `google-antigravity`. Also refactor the per-provider model normalisation into a shared `normalizeProviderModels()` helper. Closes #24071 Co-authored-by: Cursor <cursoragent@cursor.com> * Tests: cover antigravity model ID normalization * Changelog: note antigravity pro tier normalization * Tests: type antigravity model helper inputs --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
This commit is contained in:
@@ -391,10 +391,22 @@ export function normalizeGoogleModelId(id: string): string {
|
||||
return id;
|
||||
}
|
||||
|
||||
function normalizeGoogleProvider(provider: ProviderConfig): ProviderConfig {
|
||||
const ANTIGRAVITY_BARE_PRO_IDS = new Set(["gemini-3-pro", "gemini-3.1-pro", "gemini-3-1-pro"]);
|
||||
|
||||
export function normalizeAntigravityModelId(id: string): string {
|
||||
if (ANTIGRAVITY_BARE_PRO_IDS.has(id)) {
|
||||
return `${id}-low`;
|
||||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
function normalizeProviderModels(
|
||||
provider: ProviderConfig,
|
||||
normalizeId: (id: string) => string,
|
||||
): ProviderConfig {
|
||||
let mutated = false;
|
||||
const models = provider.models.map((model) => {
|
||||
const nextId = normalizeGoogleModelId(model.id);
|
||||
const nextId = normalizeId(model.id);
|
||||
if (nextId === model.id) {
|
||||
return model;
|
||||
}
|
||||
@@ -404,6 +416,14 @@ function normalizeGoogleProvider(provider: ProviderConfig): ProviderConfig {
|
||||
return mutated ? { ...provider, models } : provider;
|
||||
}
|
||||
|
||||
function normalizeGoogleProvider(provider: ProviderConfig): ProviderConfig {
|
||||
return normalizeProviderModels(provider, normalizeGoogleModelId);
|
||||
}
|
||||
|
||||
function normalizeAntigravityProvider(provider: ProviderConfig): ProviderConfig {
|
||||
return normalizeProviderModels(provider, normalizeAntigravityModelId);
|
||||
}
|
||||
|
||||
export function normalizeProviders(params: {
|
||||
providers: ModelsConfig["providers"];
|
||||
agentDir: string;
|
||||
@@ -470,6 +490,14 @@ export function normalizeProviders(params: {
|
||||
normalizedProvider = googleNormalized;
|
||||
}
|
||||
|
||||
if (normalizedKey === "google-antigravity") {
|
||||
const antigravityNormalized = normalizeAntigravityProvider(normalizedProvider);
|
||||
if (antigravityNormalized !== normalizedProvider) {
|
||||
mutated = true;
|
||||
}
|
||||
normalizedProvider = antigravityNormalized;
|
||||
}
|
||||
|
||||
next[key] = normalizedProvider;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user