mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-21 06:12:17 +03:00
feat(models): add Gemini 3.8 Flash tiers to Antigravity and AGY catalogs
This commit is contained in:
@@ -15,6 +15,10 @@ export const ANTIGRAVITY_MODEL_ALIASES = Object.freeze({
|
||||
"gemini-3.7-flash-high": "gemini-3.7-flash-tiered",
|
||||
"gemini-3.7-flash-medium": "gemini-3.7-flash-tiered",
|
||||
"gemini-3.7-flash-low": "gemini-3.7-flash-tiered",
|
||||
"gemini-3.8-flash": "gemini-3.8-flash-tiered",
|
||||
"gemini-3.8-flash-high": "gemini-3.8-flash-tiered",
|
||||
"gemini-3.8-flash-medium": "gemini-3.8-flash-tiered",
|
||||
"gemini-3.8-flash-low": "gemini-3.8-flash-tiered",
|
||||
"gpt-oss-120b": "gpt-oss-120b-medium",
|
||||
// gemini-3.1-pro-low is not aliased: the upstream accepts it verbatim.
|
||||
// gemini-3.1-pro-high: the discovery slot returns HTTP 400 on v1internal;
|
||||
|
||||
@@ -43,6 +43,43 @@ export const ANTIGRAVITY_SHARED_MODELS = Object.freeze([
|
||||
supportsVision: true,
|
||||
toolCalling: true,
|
||||
},
|
||||
// Gemini 3.8 Flash tiers.
|
||||
{
|
||||
id: "gemini-3.8-flash-high",
|
||||
name: "Gemini 3.8 Flash (High)",
|
||||
contextLength: 1048576,
|
||||
maxOutputTokens: 65536,
|
||||
supportsReasoning: true,
|
||||
supportsVision: true,
|
||||
toolCalling: true,
|
||||
},
|
||||
{
|
||||
id: "gemini-3.8-flash-medium",
|
||||
name: "Gemini 3.8 Flash (Medium)",
|
||||
contextLength: 1048576,
|
||||
maxOutputTokens: 65536,
|
||||
supportsReasoning: true,
|
||||
supportsVision: true,
|
||||
toolCalling: true,
|
||||
},
|
||||
{
|
||||
id: "gemini-3.8-flash-low",
|
||||
name: "Gemini 3.8 Flash (Low)",
|
||||
contextLength: 1048576,
|
||||
maxOutputTokens: 65536,
|
||||
supportsReasoning: true,
|
||||
supportsVision: true,
|
||||
toolCalling: true,
|
||||
},
|
||||
{
|
||||
id: "gemini-3.8-flash-tiered",
|
||||
name: "Gemini 3.8 Flash (Tiered)",
|
||||
contextLength: 1048576,
|
||||
maxOutputTokens: 65536,
|
||||
supportsReasoning: true,
|
||||
supportsVision: true,
|
||||
toolCalling: true,
|
||||
},
|
||||
// Gemini 3.1 Pro budget tiers. Live streamGenerateContent validation uses
|
||||
// `gemini-pro-agent` for High; the separately advertised `gemini-3.1-pro-high`
|
||||
// discovery slot currently returns HTTP 400 and is intentionally not public.
|
||||
|
||||
@@ -400,7 +400,7 @@ export async function importManagedModels({
|
||||
// table already knows only has a safe "-tiered" target to always resolve there,
|
||||
// regardless of what any single connection's discovery reported.
|
||||
for (const [displayId, safeTarget] of Object.entries(ANTIGRAVITY_MODEL_ALIASES)) {
|
||||
if (safeTarget === "gemini-3.7-flash-tiered") {
|
||||
if (safeTarget === "gemini-3.7-flash-tiered" || safeTarget === "gemini-3.8-flash-tiered") {
|
||||
mappings[displayId] = `antigravity/${safeTarget}`;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,6 +283,53 @@ export const MODEL_SPECS: Record<string, ModelSpec> = {
|
||||
supportsTools: true,
|
||||
supportsVision: true,
|
||||
},
|
||||
// ── Gemini 3.8 Flash (current Antigravity/AGY live tiers) ─────────
|
||||
"gemini-3.8-flash-high": {
|
||||
maxOutputTokens: 65536,
|
||||
contextWindow: 1048576,
|
||||
defaultThinkingBudget: 24576,
|
||||
thinkingBudgetCap: 24576,
|
||||
supportsThinking: true,
|
||||
supportsTools: true,
|
||||
supportsVision: true,
|
||||
},
|
||||
"gemini-3.8-flash-medium": {
|
||||
maxOutputTokens: 65536,
|
||||
contextWindow: 1048576,
|
||||
defaultThinkingBudget: 8192,
|
||||
thinkingBudgetCap: 24576,
|
||||
supportsThinking: true,
|
||||
supportsTools: true,
|
||||
supportsVision: true,
|
||||
},
|
||||
"gemini-3.8-flash-low": {
|
||||
maxOutputTokens: 65536,
|
||||
contextWindow: 1048576,
|
||||
defaultThinkingBudget: 1024,
|
||||
thinkingBudgetCap: 24576,
|
||||
supportsThinking: true,
|
||||
supportsTools: true,
|
||||
supportsVision: true,
|
||||
},
|
||||
"gemini-3.8-flash": {
|
||||
maxOutputTokens: 65536,
|
||||
contextWindow: 1048576,
|
||||
defaultThinkingBudget: 8192,
|
||||
thinkingBudgetCap: 24576,
|
||||
supportsThinking: true,
|
||||
supportsTools: true,
|
||||
supportsVision: true,
|
||||
aliases: ["gemini-3.8-flash-tiered"],
|
||||
},
|
||||
"gemini-3.8-flash-tiered": {
|
||||
maxOutputTokens: 65536,
|
||||
contextWindow: 1048576,
|
||||
defaultThinkingBudget: 8192,
|
||||
thinkingBudgetCap: 24576,
|
||||
supportsThinking: true,
|
||||
supportsTools: true,
|
||||
supportsVision: true,
|
||||
},
|
||||
|
||||
// Provider-neutral compatibility for providers that still serve Gemini 3.6.
|
||||
// Antigravity/AGY availability is governed by their own provider catalogs and
|
||||
|
||||
@@ -18,9 +18,10 @@ test("(#3696) non-tiered ANTIGRAVITY_PUBLIC_MODELS entries resolve to distinct u
|
||||
const seen = new Map<string, string>();
|
||||
const collisions: string[] = [];
|
||||
for (const model of ANTIGRAVITY_PUBLIC_MODELS) {
|
||||
// Gemini 3.7 Flash tiers intentionally share the upstream `gemini-3.7-flash-tiered`
|
||||
// Gemini 3.7 and 3.8 Flash tiers intentionally share their upstream `*-tiered`
|
||||
// endpoint with different reasoning token budgets.
|
||||
if (model.id.startsWith("gemini-3.7-flash")) continue;
|
||||
if (model.id.startsWith("gemini-3.7-flash") || model.id.startsWith("gemini-3.8-flash"))
|
||||
continue;
|
||||
const upstream = resolveAntigravityModelId(model.id);
|
||||
if (seen.has(upstream)) {
|
||||
collisions.push(`${model.id} and ${seen.get(upstream)} both resolve to "${upstream}"`);
|
||||
|
||||
@@ -62,6 +62,11 @@ test("resolveAntigravityModelId maps the documented Antigravity aliases to upstr
|
||||
}
|
||||
assert.equal(resolveAntigravityModelId("gemini-3.7-flash"), "gemini-3.7-flash-tiered");
|
||||
assert.equal(resolveAntigravityModelId("gemini-3.7-flash-tiered"), "gemini-3.7-flash-tiered");
|
||||
assert.equal(resolveAntigravityModelId("gemini-3.8-flash"), "gemini-3.8-flash-tiered");
|
||||
assert.equal(resolveAntigravityModelId("gemini-3.8-flash-high"), "gemini-3.8-flash-tiered");
|
||||
assert.equal(resolveAntigravityModelId("gemini-3.8-flash-medium"), "gemini-3.8-flash-tiered");
|
||||
assert.equal(resolveAntigravityModelId("gemini-3.8-flash-low"), "gemini-3.8-flash-tiered");
|
||||
assert.equal(resolveAntigravityModelId("gemini-3.8-flash-tiered"), "gemini-3.8-flash-tiered");
|
||||
assert.equal(resolveAntigravityModelId("gpt-oss-120b"), "gpt-oss-120b-medium");
|
||||
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");
|
||||
|
||||
@@ -36,6 +36,10 @@ const EXPECTED_LEADING_MODEL_ORDER = [
|
||||
"gemini-3.7-flash-medium",
|
||||
"gemini-3.7-flash-low",
|
||||
"gemini-3.7-flash-tiered",
|
||||
"gemini-3.8-flash-high",
|
||||
"gemini-3.8-flash-medium",
|
||||
"gemini-3.8-flash-low",
|
||||
"gemini-3.8-flash-tiered",
|
||||
"gemini-pro-agent",
|
||||
"gemini-3.1-pro-low",
|
||||
"gemini-3.1-flash-lite",
|
||||
|
||||
Reference in New Issue
Block a user