fix(models): synthesize antigravity Gemini 3.1 pro high/low models (#22899)

* Models: add antigravity Gemini 3.1 forward-compat

* models: propagate availability to Gemini 3.1 dot IDs

* test(models): format Gemini 3.1 forward-compat test

* test(models): type Gemini 3.1 forward-compat fixtures

* models: add changelog note for antigravity gemini 3.1 forward-compat

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
This commit is contained in:
Phineas1500
2026-02-22 19:11:39 -05:00
committed by GitHub
parent 5c7c37a02a
commit 320b62265d
5 changed files with 236 additions and 2 deletions

View File

@@ -26,6 +26,12 @@ const ANTIGRAVITY_OPUS_THINKING_TEMPLATE_MODEL_IDS = [
"claude-opus-4-5-thinking",
"claude-opus-4.5-thinking",
] as const;
const ANTIGRAVITY_GEMINI_31_PRO_HIGH_MODEL_ID = "gemini-3-1-pro-high";
const ANTIGRAVITY_GEMINI_31_PRO_DOT_HIGH_MODEL_ID = "gemini-3.1-pro-high";
const ANTIGRAVITY_GEMINI_31_PRO_LOW_MODEL_ID = "gemini-3-1-pro-low";
const ANTIGRAVITY_GEMINI_31_PRO_DOT_LOW_MODEL_ID = "gemini-3.1-pro-low";
const ANTIGRAVITY_GEMINI_31_PRO_HIGH_TEMPLATE_MODEL_IDS = ["gemini-3-pro-high"] as const;
const ANTIGRAVITY_GEMINI_31_PRO_LOW_TEMPLATE_MODEL_IDS = ["gemini-3-pro-low"] as const;
export const ANTIGRAVITY_OPUS_46_FORWARD_COMPAT_CANDIDATES = [
{
@@ -34,10 +40,25 @@ export const ANTIGRAVITY_OPUS_46_FORWARD_COMPAT_CANDIDATES = [
"google-antigravity/claude-opus-4-5-thinking",
"google-antigravity/claude-opus-4.5-thinking",
],
availabilityAliasIds: [] as const,
},
{
id: ANTIGRAVITY_OPUS_46_MODEL_ID,
templatePrefixes: ["google-antigravity/claude-opus-4-5", "google-antigravity/claude-opus-4.5"],
availabilityAliasIds: [] as const,
},
] as const;
export const ANTIGRAVITY_GEMINI_31_FORWARD_COMPAT_CANDIDATES = [
{
id: ANTIGRAVITY_GEMINI_31_PRO_HIGH_MODEL_ID,
templatePrefixes: ["google-antigravity/gemini-3-pro-high"],
availabilityAliasIds: [ANTIGRAVITY_GEMINI_31_PRO_DOT_HIGH_MODEL_ID],
},
{
id: ANTIGRAVITY_GEMINI_31_PRO_LOW_MODEL_ID,
templatePrefixes: ["google-antigravity/gemini-3-pro-low"],
availabilityAliasIds: [ANTIGRAVITY_GEMINI_31_PRO_DOT_LOW_MODEL_ID],
},
] as const;
@@ -278,6 +299,40 @@ function resolveAntigravityOpus46ForwardCompatModel(
});
}
function resolveAntigravityGemini31ForwardCompatModel(
provider: string,
modelId: string,
modelRegistry: ModelRegistry,
): Model<Api> | undefined {
const normalizedProvider = normalizeProviderId(provider);
if (normalizedProvider !== "google-antigravity") {
return undefined;
}
const trimmedModelId = modelId.trim();
const lower = trimmedModelId.toLowerCase();
const isGemini31High =
lower === ANTIGRAVITY_GEMINI_31_PRO_HIGH_MODEL_ID ||
lower === ANTIGRAVITY_GEMINI_31_PRO_DOT_HIGH_MODEL_ID;
const isGemini31Low =
lower === ANTIGRAVITY_GEMINI_31_PRO_LOW_MODEL_ID ||
lower === ANTIGRAVITY_GEMINI_31_PRO_DOT_LOW_MODEL_ID;
if (!isGemini31High && !isGemini31Low) {
return undefined;
}
const templateIds = isGemini31High
? [...ANTIGRAVITY_GEMINI_31_PRO_HIGH_TEMPLATE_MODEL_IDS]
: [...ANTIGRAVITY_GEMINI_31_PRO_LOW_TEMPLATE_MODEL_IDS];
return cloneFirstTemplateModel({
normalizedProvider,
trimmedModelId,
templateIds,
modelRegistry,
});
}
export function resolveForwardCompatModel(
provider: string,
modelId: string,
@@ -288,6 +343,7 @@ export function resolveForwardCompatModel(
resolveAnthropicOpus46ForwardCompatModel(provider, modelId, modelRegistry) ??
resolveAnthropicSonnet46ForwardCompatModel(provider, modelId, modelRegistry) ??
resolveZaiGlm5ForwardCompatModel(provider, modelId, modelRegistry) ??
resolveAntigravityOpus46ForwardCompatModel(provider, modelId, modelRegistry)
resolveAntigravityOpus46ForwardCompatModel(provider, modelId, modelRegistry) ??
resolveAntigravityGemini31ForwardCompatModel(provider, modelId, modelRegistry)
);
}