修正 Antigravity Gemini 3.5 Flash 档位展示

This commit is contained in:
MMEXA
2026-07-08 22:34:29 +08:00
parent 9ec48ab6b9
commit c17c78ad4b
6 changed files with 83 additions and 29 deletions
@@ -1051,8 +1051,8 @@ fn build_antigravity_default_user_settings_payload() -> Value {
fn build_antigravity_fetch_available_models_payload() -> Value { fn build_antigravity_fetch_available_models_payload() -> Value {
json!({ json!({
"models": { "models": {
"gemini-3.5-flash-low": antigravity_model_payload("gemini-3.5-flash-low", "Gemini 3.5 Flash Low"), "gemini-3.5-flash-low": antigravity_model_payload("gemini-3.5-flash-low", "Gemini 3.5 Flash Medium"),
"gemini-3-flash-agent": antigravity_model_payload("gemini-3-flash-agent", "Gemini 3 Flash Agent"), "gemini-3-flash-agent": antigravity_model_payload("gemini-3-flash-agent", "Gemini 3.5 Flash High"),
"gemini-3.1-flash-lite": antigravity_model_payload("gemini-3.1-flash-lite", "Gemini 3.1 Flash Lite"), "gemini-3.1-flash-lite": antigravity_model_payload("gemini-3.1-flash-lite", "Gemini 3.1 Flash Lite"),
"gemini-3.1-pro-low": antigravity_model_payload("gemini-3.1-pro-low", "Gemini 3.1 Pro Low"), "gemini-3.1-pro-low": antigravity_model_payload("gemini-3.1-pro-low", "Gemini 3.1 Pro Low"),
"gemini-3-flash": antigravity_model_payload("gemini-3-flash", "Gemini 3 Flash"), "gemini-3-flash": antigravity_model_payload("gemini-3-flash", "Gemini 3 Flash"),
@@ -581,14 +581,14 @@ fn canonical_antigravity_model_label(model_name: &str) -> Option<&'static str> {
match model_name.trim() { match model_name.trim() {
"claude-opus-4-6-thinking" => Some("Claude Opus 4.6 Thinking"), "claude-opus-4-6-thinking" => Some("Claude Opus 4.6 Thinking"),
"claude-sonnet-4-6" => Some("Claude Sonnet 4.6"), "claude-sonnet-4-6" => Some("Claude Sonnet 4.6"),
"gemini-3.5-flash-extra-low" => Some("Gemini 3.5 Flash Extra Low"), "gemini-3-flash-agent" => Some("Gemini 3.5 Flash High"),
"gemini-3.5-flash-low" => Some("Gemini 3.5 Flash Low"), "gemini-3.5-flash-low" => Some("Gemini 3.5 Flash Medium"),
"gemini-3.5-flash-extra-low" => Some("Gemini 3.5 Flash Low"),
"gemini-3.1-pro-high" => Some("Gemini 3.1 Pro High"), "gemini-3.1-pro-high" => Some("Gemini 3.1 Pro High"),
"gemini-3.1-pro-low" => Some("Gemini 3.1 Pro Low"), "gemini-3.1-pro-low" => Some("Gemini 3.1 Pro Low"),
"gemini-pro-agent" => Some("Gemini Pro Agent"), "gemini-pro-agent" => Some("Gemini 3.1 Pro High"),
"gemini-3.1-flash-image" => Some("Gemini 3.1 Flash Image"), "gemini-3.1-flash-image" => Some("Gemini 3.1 Flash Image"),
"gemini-3.1-flash-lite" => Some("Gemini 3.1 Flash Lite"), "gemini-3.1-flash-lite" => Some("Gemini 3.1 Flash Lite"),
"gemini-3-flash-agent" => Some("Gemini 3 Flash Agent"),
"gemini-3-flash" => Some("Gemini 3 Flash"), "gemini-3-flash" => Some("Gemini 3 Flash"),
"gemini-2.5-pro" => Some("Gemini 2.5 Pro"), "gemini-2.5-pro" => Some("Gemini 2.5 Pro"),
"gemini-2.5-flash-thinking" => Some("Gemini 2.5 Flash Thinking"), "gemini-2.5-flash-thinking" => Some("Gemini 2.5 Flash Thinking"),
@@ -3760,9 +3760,18 @@ mod tests {
"antigravity": { "antigravity": {
"updated_at": 1_775_553_285u64, "updated_at": 1_775_553_285u64,
"quota_by_model": { "quota_by_model": {
"gemini-3.5-flash-extra-low": { "remaining_fraction": 1.0 }, "gemini-3.5-flash-extra-low": {
"gemini-3.5-flash-low": { "remaining_fraction": 0.75 }, "display_name": "Gemini 3.5 Flash (Low)",
"gemini-3-flash-agent": { "remaining_fraction": 0.5 }, "remaining_fraction": 1.0
},
"gemini-3.5-flash-low": {
"display_name": "Gemini 3.5 Flash (Medium)",
"remaining_fraction": 0.75
},
"gemini-3-flash-agent": {
"display_name": "Gemini 3.5 Flash (High)",
"remaining_fraction": 0.5
},
"gemini-2.5-flash": { "gemini-2.5-flash": {
"display_name": "Gemini 3.1 Flash Lite", "display_name": "Gemini 3.1 Flash Lite",
"remaining_fraction": 0.4 "remaining_fraction": 0.4
@@ -3796,15 +3805,15 @@ mod tests {
assert_eq!( assert_eq!(
label_for_model("gemini-3.5-flash-extra-low"), label_for_model("gemini-3.5-flash-extra-low"),
Some(json!("Gemini 3.5 Flash Extra Low"))
);
assert_eq!(
label_for_model("gemini-3.5-flash-low"),
Some(json!("Gemini 3.5 Flash Low")) Some(json!("Gemini 3.5 Flash Low"))
); );
assert_eq!(
label_for_model("gemini-3.5-flash-low"),
Some(json!("Gemini 3.5 Flash Medium"))
);
assert_eq!( assert_eq!(
label_for_model("gemini-3-flash-agent"), label_for_model("gemini-3-flash-agent"),
Some(json!("Gemini 3 Flash Agent")) Some(json!("Gemini 3.5 Flash High"))
); );
assert_eq!( assert_eq!(
label_for_model("gemini-2.5-flash"), label_for_model("gemini-2.5-flash"),
@@ -1019,7 +1019,11 @@ async fn gateway_handles_antigravity_v1internal_control_plane_without_proxying()
); );
assert_eq!( assert_eq!(
payload["models"]["gemini-3.5-flash-low"]["displayName"], payload["models"]["gemini-3.5-flash-low"]["displayName"],
"Gemini 3.5 Flash Low" "Gemini 3.5 Flash Medium"
);
assert_eq!(
payload["models"]["gemini-3-flash-agent"]["displayName"],
"Gemini 3.5 Flash High"
); );
assert_eq!( assert_eq!(
payload["models"]["gemini-3.5-flash-low"]["apiProvider"], payload["models"]["gemini-3.5-flash-low"]["apiProvider"],
@@ -132,8 +132,13 @@ describe('AntigravityQuotaDialog', () => {
remaining_fraction: 0.01, remaining_fraction: 0.01,
used_percent: 99, used_percent: 99,
}, },
'gemini-3-flash-agent': {
display_name: 'Gemini 3.5 Flash (High)',
remaining_fraction: 0.9,
used_percent: 10,
},
'gemini-3.5-flash-low': { 'gemini-3.5-flash-low': {
display_name: 'Gemini 3.5 Flash Low', display_name: 'Gemini 3.5 Flash (Medium)',
remaining_fraction: 0.8, remaining_fraction: 0.8,
used_percent: 20, used_percent: 20,
}, },
@@ -152,8 +157,9 @@ describe('AntigravityQuotaDialog', () => {
}) })
const text = root.textContent || '' const text = root.textContent || ''
expect(text.indexOf('Claude Opus 4.6 Thinking')).toBeLessThan(text.indexOf('Gemini 3.5 Flash Low')) expect(text.indexOf('Claude Opus 4.6 Thinking')).toBeLessThan(text.indexOf('Gemini 3.5 Flash High'))
expect(text.indexOf('Gemini 3.5 Flash Low')).toBeLessThan(text.indexOf('Tab Flash Lite Preview')) expect(text.indexOf('Gemini 3.5 Flash High')).toBeLessThan(text.indexOf('Gemini 3.5 Flash Medium'))
expect(text.indexOf('Gemini 3.5 Flash Medium')).toBeLessThan(text.indexOf('Tab Flash Lite Preview'))
expect(text.indexOf('Tab Flash Lite Preview')).toBeLessThan(text.indexOf('chat_20706')) expect(text.indexOf('Tab Flash Lite Preview')).toBeLessThan(text.indexOf('chat_20706'))
unmount() unmount()
@@ -9,6 +9,27 @@ describe('antigravityQuota', () => {
it('uses canonical labels from model ids before stale upstream labels', () => { it('uses canonical labels from model ids before stale upstream labels', () => {
const opaqueDisplayIndex = { value: 1 } const opaqueDisplayIndex = { value: 1 }
expect(
resolveAntigravityQuotaLabel(
'gemini-3-flash-agent',
'Gemini 3.5 Flash (High)',
opaqueDisplayIndex,
),
).toBe('Gemini 3.5 Flash High')
expect(
resolveAntigravityQuotaLabel(
'gemini-3.5-flash-low',
'Gemini 3.5 Flash (Medium)',
opaqueDisplayIndex,
),
).toBe('Gemini 3.5 Flash Medium')
expect(
resolveAntigravityQuotaLabel(
'gemini-3.5-flash-extra-low',
'Gemini 3.5 Flash (Low)',
opaqueDisplayIndex,
),
).toBe('Gemini 3.5 Flash Low')
expect( expect(
resolveAntigravityQuotaLabel( resolveAntigravityQuotaLabel(
'gemini-2.5-flash', 'gemini-2.5-flash',
@@ -41,11 +62,23 @@ describe('antigravityQuota', () => {
resetSeconds: 10, resetSeconds: 10,
}, },
{ {
model: 'gemini-3.5-flash-low', model: 'gemini-3.5-flash-extra-low',
label: 'Gemini 3.5 Flash Low', label: 'Gemini 3.5 Flash Low',
remainingPercent: 95,
resetSeconds: null,
},
{
model: 'gemini-3.5-flash-low',
label: 'Gemini 3.5 Flash Medium',
remainingPercent: 90, remainingPercent: 90,
resetSeconds: null, resetSeconds: null,
}, },
{
model: 'gemini-3-flash-agent',
label: 'Gemini 3.5 Flash High',
remainingPercent: 80,
resetSeconds: null,
},
{ {
model: 'chat_20706', model: 'chat_20706',
label: 'chat_20706', label: 'chat_20706',
@@ -68,7 +101,9 @@ describe('antigravityQuota', () => {
expect(items.map(item => item.model)).toEqual([ expect(items.map(item => item.model)).toEqual([
'claude-opus-4-6-thinking', 'claude-opus-4-6-thinking',
'gemini-3-flash-agent',
'gemini-3.5-flash-low', 'gemini-3.5-flash-low',
'gemini-3.5-flash-extra-low',
'gemini-2.5-flash-lite', 'gemini-2.5-flash-lite',
'tab_flash_lite_preview', 'tab_flash_lite_preview',
'chat_20706', 'chat_20706',
@@ -8,14 +8,14 @@ export interface AntigravityQuotaSortableItem {
const ANTIGRAVITY_MODEL_LABELS: Record<string, string> = { const ANTIGRAVITY_MODEL_LABELS: Record<string, string> = {
'claude-opus-4-6-thinking': 'Claude Opus 4.6 Thinking', 'claude-opus-4-6-thinking': 'Claude Opus 4.6 Thinking',
'claude-sonnet-4-6': 'Claude Sonnet 4.6', 'claude-sonnet-4-6': 'Claude Sonnet 4.6',
'gemini-3.5-flash-low': 'Gemini 3.5 Flash Low', 'gemini-3-flash-agent': 'Gemini 3.5 Flash High',
'gemini-3.5-flash-extra-low': 'Gemini 3.5 Flash Extra Low', 'gemini-3.5-flash-low': 'Gemini 3.5 Flash Medium',
'gemini-3.5-flash-extra-low': 'Gemini 3.5 Flash Low',
'gemini-3.1-pro-high': 'Gemini 3.1 Pro High', 'gemini-3.1-pro-high': 'Gemini 3.1 Pro High',
'gemini-3.1-pro-low': 'Gemini 3.1 Pro Low', 'gemini-3.1-pro-low': 'Gemini 3.1 Pro Low',
'gemini-pro-agent': 'Gemini Pro Agent', 'gemini-pro-agent': 'Gemini 3.1 Pro High',
'gemini-3.1-flash-image': 'Gemini 3.1 Flash Image', 'gemini-3.1-flash-image': 'Gemini 3.1 Flash Image',
'gemini-3.1-flash-lite': 'Gemini 3.1 Flash Lite', 'gemini-3.1-flash-lite': 'Gemini 3.1 Flash Lite',
'gemini-3-flash-agent': 'Gemini 3 Flash Agent',
'gemini-3-flash': 'Gemini 3 Flash', 'gemini-3-flash': 'Gemini 3 Flash',
'gemini-2.5-pro': 'Gemini 2.5 Pro', 'gemini-2.5-pro': 'Gemini 2.5 Pro',
'gemini-2.5-flash-thinking': 'Gemini 2.5 Flash Thinking', 'gemini-2.5-flash-thinking': 'Gemini 2.5 Flash Thinking',
@@ -30,14 +30,14 @@ const ANTIGRAVITY_MODEL_LABELS: Record<string, string> = {
const ANTIGRAVITY_MODEL_PRIORITY: Record<string, number> = { const ANTIGRAVITY_MODEL_PRIORITY: Record<string, number> = {
'claude-opus-4-6-thinking': 10, 'claude-opus-4-6-thinking': 10,
'claude-sonnet-4-6': 20, 'claude-sonnet-4-6': 20,
'gemini-3.5-flash-low': 100, 'gemini-3-flash-agent': 100,
'gemini-3.5-flash-extra-low': 110, 'gemini-3.5-flash-low': 110,
'gemini-3.1-pro-high': 120, 'gemini-3.5-flash-extra-low': 120,
'gemini-3.1-pro-low': 130, 'gemini-3.1-pro-high': 130,
'gemini-pro-agent': 140, 'gemini-pro-agent': 135,
'gemini-3.1-pro-low': 140,
'gemini-3.1-flash-image': 150, 'gemini-3.1-flash-image': 150,
'gemini-3.1-flash-lite': 160, 'gemini-3.1-flash-lite': 160,
'gemini-3-flash-agent': 170,
'gemini-3-flash': 180, 'gemini-3-flash': 180,
'gemini-2.5-pro': 300, 'gemini-2.5-pro': 300,
'gemini-2.5-flash-thinking': 310, 'gemini-2.5-flash-thinking': 310,