feat(antigravity): add gemini-3.5-flash-extra-low (Low) model

- Add gemini-3.5-flash-extra-low across CLI menu, provider models, usage, pricing
- Add MITM synonyms (high/medium/extra-low) and split pattern so Low no longer falls through to Medium
- Strip models/ prefix in getMappedModel for AG public name normalization

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
AbdoKnbGit
2026-06-06 10:42:47 +07:00
committed by decolua
parent 40cfa63eb8
commit e6c09aad15
7 changed files with 13 additions and 5 deletions

View File

@@ -32,6 +32,9 @@ const URL_PATTERNS = {
const MODEL_SYNONYMS = {
antigravity: {
"gemini-default": "gemini-3.5-flash-low",
"gemini-3.5-flash-high": "gemini-3-flash-agent",
"gemini-3.5-flash-medium": "gemini-3.5-flash-low",
"gemini-3.5-flash-extra-low": "gemini-3.5-flash-extra-low",
"gemini-3.1-pro-high": "gemini-pro-agent",
"gemini-3-pro-high": "gemini-pro-agent",
"gemini-3-pro-low": "gemini-3.1-pro-low",
@@ -42,7 +45,8 @@ const MODEL_SYNONYMS = {
// Order matters: more specific patterns first. Catches AG renamed variants (e.g. gemini-pro-agent)
const MODEL_PATTERNS = {
antigravity: [
{ match: /flash.*low|low.*flash|flash.*medium|medium.*flash/i, alias: "gemini-3.5-flash-low" },
{ match: /flash.*extra.*low|extra.*low.*flash|flash.*low|low.*flash/i, alias: "gemini-3.5-flash-extra-low" },
{ match: /flash.*medium|medium.*flash/i, alias: "gemini-3.5-flash-low" },
{ match: /flash.*agent|agent.*flash|flash/i, alias: "gemini-3-flash-agent" },
{ match: /pro.*low|low.*pro/i, alias: "gemini-3.1-pro-low" },
{ match: /gemini.*pro|pro.*gemini/i, alias: "gemini-pro-agent" },

View File

@@ -109,8 +109,9 @@ function getMappedModel(tool, model) {
try {
const aliases = getMitmAlias(tool);
if (!aliases) return null;
// Normalize via synonym map (e.g., gemini-default → gemini-3-flash)
const lookup = MODEL_SYNONYMS?.[tool]?.[model] || model;
// Normalize via synonym map (e.g., public AG names -> backend model ids)
const normalizedModel = String(model).replace(/^models\//, "");
const lookup = MODEL_SYNONYMS?.[tool]?.[normalizedModel] || normalizedModel;
if (aliases[lookup]) return aliases[lookup];
// Prefix match fallback
const prefixKey = Object.keys(aliases).find(k => k && aliases[k] && (lookup.startsWith(k) || k.startsWith(lookup)));