mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-03 13:52:09 +03:00
fix: update Antigravity model list and replace ag/ prefix with antigravity/
- Replace stale model IDs (gemini-3.1-pro-preview, gemini-3.1-flash-lite-preview) with correct High/Low tier variants from fetchAvailableModels API (gemini-3-pro-high, gemini-3-pro-low, gemini-3.1-pro-high, gemini-3.1-pro-low, etc.) - Remove ag/ alias prefix in favor of antigravity/ across registry, providers, model capabilities, combos, docs, and static model providers - Make provider alias optional in Zod schema and guard ALIAS_TO_ID/ID_TO_ALIAS maps - Show raw model IDs in quota display instead of unmapped display names - Update T28 model catalog test to assert new High/Low tier models
This commit is contained in:
@@ -46,7 +46,7 @@ export interface RegistryOAuth {
|
||||
|
||||
export interface RegistryEntry {
|
||||
id: string;
|
||||
alias: string;
|
||||
alias?: string;
|
||||
format: string;
|
||||
executor: string;
|
||||
baseUrl?: string;
|
||||
@@ -359,7 +359,7 @@ export const REGISTRY: Record<string, RegistryEntry> = {
|
||||
|
||||
antigravity: {
|
||||
id: "antigravity",
|
||||
alias: "ag",
|
||||
alias: undefined,
|
||||
format: "antigravity",
|
||||
executor: "antigravity",
|
||||
baseUrls: [
|
||||
@@ -389,14 +389,17 @@ export const REGISTRY: Record<string, RegistryEntry> = {
|
||||
{ id: "claude-sonnet-4-6", name: "Claude Sonnet 4.6" },
|
||||
{ id: "claude-sonnet-4-5", name: "Claude Sonnet 4.5" },
|
||||
{ id: "claude-sonnet-4", name: "Claude Sonnet 4" },
|
||||
{ id: "gemini-3.1-pro-preview", name: "Gemini 3.1 Pro Preview" },
|
||||
{ id: "gemini-3.1-flash-lite-preview", name: "Gemini 3.1 Flash Lite Preview" },
|
||||
{ id: "gemini-3.1-pro-high", name: "Gemini 3.1 Pro (High)" },
|
||||
{ id: "gemini-3.1-pro-low", name: "Gemini 3.1 Pro (Low)" },
|
||||
{ id: "gemini-3.1-flash-image", name: "Gemini 3.1 Flash Image" },
|
||||
{ id: "gemini-3-pro-high", name: "Gemini 3 Pro (High)" },
|
||||
{ id: "gemini-3-pro-low", name: "Gemini 3 Pro (Low)" },
|
||||
{ id: "gemini-3-flash", name: "Gemini 3 Flash" },
|
||||
{ id: "gemini-2.5-pro", name: "Gemini 2.5 Pro" },
|
||||
{ id: "gemini-2.5-flash", name: "Gemini 2.5 Flash" },
|
||||
{ id: "gemini-2.5-flash-lite", name: "Gemini 2.5 Flash Lite" },
|
||||
{ id: "gemini-2.0-flash", name: "Gemini 2.0 Flash" },
|
||||
{ id: "gpt-oss-120b-medium", name: "GPT OSS 120B Medium" },
|
||||
{ id: "gpt-5", name: "GPT 5" },
|
||||
{ id: "gpt-5-mini", name: "GPT 5 Mini" },
|
||||
],
|
||||
passthroughModels: true,
|
||||
},
|
||||
|
||||
@@ -51,9 +51,6 @@ const REASONING_UNSUPPORTED_PATTERNS = [
|
||||
"antigravity/claude-sonnet-4-6",
|
||||
"antigravity/claude-sonnet-4-5",
|
||||
"antigravity/claude-sonnet-4",
|
||||
"ag/claude-sonnet-4-6",
|
||||
"ag/claude-sonnet-4-5",
|
||||
"ag/claude-sonnet-4",
|
||||
];
|
||||
|
||||
function getRegistryReasoningFlag(providerIdOrAlias: string, modelId: string): boolean | null {
|
||||
|
||||
@@ -1450,10 +1450,10 @@ function ComboFormModal({ isOpen, combo, onClose, onSave, activeProviders }) {
|
||||
|
||||
const PAID_PREMIUM_PRESET_MODELS = [
|
||||
{ model: "cu/claude-4.6-opus-high", weight: 0 },
|
||||
{ model: "ag/claude-sonnet-4-6", weight: 0 },
|
||||
{ model: "antigravity/claude-sonnet-4-6", weight: 0 },
|
||||
{ model: "cu/claude-4.6-sonnet-high", weight: 0 },
|
||||
{ model: "ag/gpt-5", weight: 0 },
|
||||
{ model: "ag/gemini-3.1-pro-preview", weight: 0 },
|
||||
{ model: "antigravity/gemini-3.1-pro-high", weight: 0 },
|
||||
{ model: "antigravity/gemini-3-pro-high", weight: 0 },
|
||||
];
|
||||
|
||||
const applyTemplate = (template) => {
|
||||
|
||||
@@ -204,8 +204,8 @@ export function parseQuotaData(provider, data) {
|
||||
if (data.quotas) {
|
||||
Object.entries(data.quotas).forEach(([modelKey, quota]: [string, any]) => {
|
||||
normalizedQuotas.push(
|
||||
normalizeQuotaEntry(quota.displayName || modelKey, quota, {
|
||||
modelKey: modelKey, // Keep modelKey for sorting
|
||||
normalizeQuotaEntry(modelKey, quota, {
|
||||
modelKey: modelKey,
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
@@ -69,10 +69,17 @@ const STATIC_MODEL_PROVIDERS: Record<string, () => Array<{ id: string; name: str
|
||||
antigravity: () => [
|
||||
{ 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.1-pro-preview", name: "Gemini 3.1 Pro Preview" },
|
||||
{ id: "gemini-3.1-flash-lite-preview", name: "Gemini 3.1 Flash Lite Preview" },
|
||||
{ id: "claude-sonnet-4-5", name: "Claude Sonnet 4.5" },
|
||||
{ id: "claude-sonnet-4", name: "Claude Sonnet 4" },
|
||||
{ id: "gemini-3.1-pro-high", name: "Gemini 3.1 Pro (High)" },
|
||||
{ id: "gemini-3.1-pro-low", name: "Gemini 3.1 Pro (Low)" },
|
||||
{ id: "gemini-3.1-flash-image", name: "Gemini 3.1 Flash Image" },
|
||||
{ id: "gemini-3-pro-high", name: "Gemini 3 Pro (High)" },
|
||||
{ id: "gemini-3-pro-low", name: "Gemini 3 Pro (Low)" },
|
||||
{ id: "gemini-3-flash", name: "Gemini 3 Flash" },
|
||||
{ id: "gemini-2.5-pro", name: "Gemini 2.5 Pro" },
|
||||
{ id: "gemini-2.5-flash", name: "Gemini 2.5 Flash" },
|
||||
{ id: "gemini-2.5-flash-lite", name: "Gemini 2.5 Flash Lite" },
|
||||
{ id: "gemini-2.0-flash", name: "Gemini 2.0 Flash" },
|
||||
{ id: "gpt-oss-120b-medium", name: "GPT OSS 120B Medium" },
|
||||
],
|
||||
|
||||
@@ -394,7 +394,7 @@ export default function DocsPage() {
|
||||
{t("clientClaudeBullet1Prefix")}{" "}
|
||||
<code className="px-1 rounded bg-bg-subtle">cc/</code>{" "}
|
||||
{t("clientClaudeBullet1Middle")}{" "}
|
||||
<code className="px-1 rounded bg-bg-subtle">ag/</code>{" "}
|
||||
<code className="px-1 rounded bg-bg-subtle">antigravity/</code>{" "}
|
||||
{t("clientClaudeBullet1Suffix")}
|
||||
</li>
|
||||
<li>{t("oauthAutoRefresh")}</li>
|
||||
|
||||
@@ -22,7 +22,7 @@ export const OAUTH_PROVIDERS = {
|
||||
claude: { id: "claude", alias: "cc", name: "Claude Code", icon: "smart_toy", color: "#D97757" },
|
||||
antigravity: {
|
||||
id: "antigravity",
|
||||
alias: "ag",
|
||||
alias: undefined,
|
||||
name: "Antigravity",
|
||||
icon: "rocket_launch",
|
||||
color: "#F59E0B",
|
||||
@@ -643,13 +643,13 @@ export function getProviderAlias(providerId) {
|
||||
|
||||
// Alias to ID mapping (for quick lookup)
|
||||
export const ALIAS_TO_ID = Object.values(AI_PROVIDERS).reduce((acc, p) => {
|
||||
acc[p.alias] = p.id;
|
||||
if (p.alias) acc[p.alias] = p.id;
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
// ID to Alias mapping
|
||||
export const ID_TO_ALIAS = Object.values(AI_PROVIDERS).reduce((acc, p) => {
|
||||
acc[p.id] = p.alias;
|
||||
acc[p.id] = p.alias || p.id;
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ import { z } from "zod";
|
||||
|
||||
export const ProviderSchema = z.object({
|
||||
id: z.string().min(1),
|
||||
alias: z.string().min(1),
|
||||
alias: z.string().min(1).optional(),
|
||||
name: z.string().min(1),
|
||||
icon: z.string().min(1),
|
||||
color: z.string().regex(/^#[0-9A-Fa-f]{6}$/, "Must be a valid hex color (#RRGGBB)"),
|
||||
|
||||
@@ -15,11 +15,14 @@ test("T28: gemini catalog includes preview models from 9router", () => {
|
||||
assert.ok(geminiCliIds.includes("gemini-3-flash-preview"));
|
||||
});
|
||||
|
||||
test("T28: antigravity static catalog includes Gemini 3.1 preview fallbacks", () => {
|
||||
test("T28: antigravity static catalog includes Gemini 3 Pro High/Low tier models", () => {
|
||||
const staticIds = (getStaticModelsForProvider("antigravity") || []).map((m) => m.id);
|
||||
|
||||
assert.ok(staticIds.includes("gemini-3.1-pro-preview"));
|
||||
assert.ok(staticIds.includes("gemini-3.1-flash-lite-preview"));
|
||||
assert.ok(staticIds.includes("gemini-3.1-pro-high"));
|
||||
assert.ok(staticIds.includes("gemini-3.1-pro-low"));
|
||||
assert.ok(staticIds.includes("gemini-3-pro-high"));
|
||||
assert.ok(staticIds.includes("gemini-3-pro-low"));
|
||||
assert.ok(staticIds.includes("gemini-3-flash"));
|
||||
});
|
||||
|
||||
test("T28: qwen registry uses native chat.qwen.ai base URL", () => {
|
||||
|
||||
Reference in New Issue
Block a user