Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 16 additions & 30 deletions open-sse/config/antigravityModelAliases.ts
Original file line number Diff line number Diff line change
@@ -1,50 +1,36 @@
export const ANTIGRAVITY_PUBLIC_MODELS = Object.freeze([
{ id: "claude-opus-4-6-thinking", name: "Claude Opus 4.6 Thinking" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
{ id: "gemini-3-flash-preview", name: "Gemini 3 Flash Preview" },
{ id: "gemini-3-pro-preview", name: "Gemini 3 Pro Preview" },
{ id: "gemini-3-pro-image-preview", name: "Gemini 3 Pro Image Preview" },
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6 Thinking" },
Comment thread
backryun marked this conversation as resolved.
Resolved
{ id: "gemini-3-pro-preview", name: "Gemini 3.1 Pro (High)" },
{ id: "gemini-3.1-pro-low", name: "Gemini 3.1 Pro (Low)" },
{ id: "gemini-3-flash-preview", name: "Gemini 3 Flash" },
{ id: "gpt-oss-120b-medium", name: "GPT OSS 120B Medium" },
{ id: "gemini-3-pro-image-preview", name: "Gemini 3 Pro Image" },
{ id: "gemini-3.1-flash-image", name: "Gemini 3.1 Flash Image" },
{
id: "gemini-2.5-computer-use-preview-10-2025",
name: "Gemini 2.5 Computer Use Preview (10/2025)",
},
{ id: "gemini-3.1-flash-image", name: "Gemini 3.1 Flash Image" },
{ id: "gemini-3.1-pro-low", name: "Gemini 3.1 Pro (Low)" },
{ id: "gemini-claude-sonnet-4-5", name: "Claude Sonnet 4.5 (Gemini Route)" },
{
id: "gemini-claude-sonnet-4-5-thinking",
name: "Claude Sonnet 4.5 Thinking (Gemini Route)",
},
{
id: "gemini-claude-opus-4-5-thinking",
name: "Claude Opus 4.5 Thinking (Gemini Route)",
},
{ id: "gpt-oss-120b-medium", name: "GPT OSS 120B Medium" },
]);

export const ANTIGRAVITY_MODEL_ALIASES = Object.freeze({
"gemini-3-pro-preview": "gemini-3.1-pro-high",
"gemini-3-flash-preview": "gemini-3-flash",
"gemini-3-pro-image-preview": "gemini-3-pro-image",
"gemini-2.5-computer-use-preview-10-2025": "rev19-uic3-1p",
"gemini-claude-sonnet-4-5": "claude-sonnet-4-5",
"gemini-claude-sonnet-4-5-thinking": "claude-sonnet-4-5-thinking",
"gemini-claude-opus-4-5-thinking": "claude-opus-4-5-thinking",
"gemini-claude-sonnet-4-5": "claude-sonnet-4-6",
"gemini-claude-sonnet-4-5-thinking": "claude-sonnet-4-6",
"gemini-claude-opus-4-5-thinking": "claude-opus-4-6-thinking",
});

type AntigravityModelAliasMap = Record<string, string>;

export const ANTIGRAVITY_REVERSE_MODEL_ALIASES = Object.freeze(
Object.entries(ANTIGRAVITY_MODEL_ALIASES).reduce<Record<string, string>>(
(acc, [alias, target]) => {
if (!acc[target]) {
acc[target] = alias;
}
return acc;
},
{}
)
);
export const ANTIGRAVITY_REVERSE_MODEL_ALIASES: AntigravityModelAliasMap = Object.freeze({
"gemini-3.1-pro-high": "gemini-3-pro-preview",
"gemini-3-flash": "gemini-3-flash-preview",
"gemini-3-pro-image": "gemini-3-pro-image-preview",
"rev19-uic3-1p": "gemini-2.5-computer-use-preview-10-2025",
});

const CLIENT_VISIBLE_MODEL_NAMES = Object.freeze(
ANTIGRAVITY_PUBLIC_MODELS.reduce<Record<string, string>>((acc, model) => {
Expand Down
11 changes: 5 additions & 6 deletions tests/unit/antigravity-model-aliases.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,11 @@ test("resolveAntigravityModelId maps the documented Antigravity aliases to upstr
resolveAntigravityModelId("gemini-2.5-computer-use-preview-10-2025"),
"rev19-uic3-1p"
);
assert.equal(resolveAntigravityModelId("gemini-claude-sonnet-4-5"), "claude-sonnet-4-5");
assert.equal(
resolveAntigravityModelId("gemini-claude-sonnet-4-5-thinking"),
"claude-sonnet-4-5-thinking"
);
assert.equal(resolveAntigravityModelId("gemini-claude-sonnet-4-5"), "claude-sonnet-4-6");
assert.equal(resolveAntigravityModelId("gemini-claude-sonnet-4-5-thinking"), "claude-sonnet-4-6");
assert.equal(
resolveAntigravityModelId("gemini-claude-opus-4-5-thinking"),
"claude-opus-4-5-thinking"
"claude-opus-4-6-thinking"
);
assert.equal(resolveAntigravityModelId("unknown-model"), "unknown-model");
});
Expand All @@ -31,6 +28,8 @@ test("toClientAntigravityModelId exposes client-visible aliases for known upstre
assert.equal(toClientAntigravityModelId("gemini-3.1-pro-high"), "gemini-3-pro-preview");
assert.equal(toClientAntigravityModelId("gemini-3-flash"), "gemini-3-flash-preview");
assert.equal(toClientAntigravityModelId("gpt-oss-120b-medium"), "gpt-oss-120b-medium");
assert.equal(toClientAntigravityModelId("claude-sonnet-4-6"), "claude-sonnet-4-6");
assert.equal(toClientAntigravityModelId("claude-opus-4-6-thinking"), "claude-opus-4-6-thinking");
});

test("AntigravityExecutor.transformRequest resolves alias models before dispatching upstream", async () => {
Expand Down
3 changes: 3 additions & 0 deletions tests/unit/models-catalog-route.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,9 @@ test("v1 models catalog exposes Antigravity client-visible preview aliases inste
assert.ok(ids.has("antigravity/gemini-3-pro-preview"));
assert.ok(ids.has("antigravity/gemini-3-flash-preview"));
assert.equal(ids.has("antigravity/gemini-3.1-pro-high"), false);
assert.equal(ids.has("antigravity/gemini-claude-sonnet-4-5"), false);
assert.equal(ids.has("antigravity/gemini-claude-sonnet-4-5-thinking"), false);
assert.equal(ids.has("antigravity/gemini-claude-opus-4-5-thinking"), false);
});

test("v1 models catalog uses provider-node prefixes for compatible provider custom models", async () => {
Expand Down
3 changes: 3 additions & 0 deletions tests/unit/t28-model-catalog-updates.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ test("T28: antigravity static catalog exposes client-visible Gemini preview IDs"
assert.ok(staticIds.includes("gemini-3-flash-preview"));
assert.ok(!staticIds.includes("gemini-3-pro-high"));
assert.ok(!staticIds.includes("gemini-3.1-pro-high"));
assert.ok(!staticIds.includes("gemini-claude-sonnet-4-5"));
assert.ok(!staticIds.includes("gemini-claude-sonnet-4-5-thinking"));
assert.ok(!staticIds.includes("gemini-claude-opus-4-5-thinking"));
});

test("T28: github registry exposes Gemini 3.1 Pro Preview and keeps legacy alias compatibility", async () => {
Expand Down
3 changes: 3 additions & 0 deletions tests/unit/t31-t33-t34-t38-model-specs.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ test("T31: antigravity static catalog exposes client-visible Gemini preview IDs"
const staticIds = (getStaticModelsForProvider("antigravity") || []).map((m) => m.id);
assert.ok(staticIds.includes("gemini-3-pro-preview"));
assert.ok(staticIds.includes("gemini-3.1-pro-low"));
assert.ok(!staticIds.includes("gemini-claude-sonnet-4-5"));
assert.ok(!staticIds.includes("gemini-claude-sonnet-4-5-thinking"));
assert.ok(!staticIds.includes("gemini-claude-opus-4-5-thinking"));
});

test("T31: legacy Gemini aliases resolve to Gemini 3.1 IDs", () => {
Expand Down