From d17399d3795faa9bd95e8719bc78e8c5800f5f67 Mon Sep 17 00:00:00 2001 From: luvs01 Date: Sat, 8 Aug 2026 19:46:46 +0900 Subject: [PATCH] fix: avoid duplicate Antigravity Gemini effort config --- src/providers/antigravity-models.ts | 4 ++-- tests/google-antigravity-wire.test.ts | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/providers/antigravity-models.ts b/src/providers/antigravity-models.ts index 18b0b39612..837d072d62 100644 --- a/src/providers/antigravity-models.ts +++ b/src/providers/antigravity-models.ts @@ -137,7 +137,7 @@ export function isAntigravitySuffixModelId(modelId: string): boolean { * * Precedence (evaluated in order): * 1. Suffix wire ID or compat alias → resolve via `resolveAntigravityWireModelId`, no thinkingConfig. - * 2. Mapped Gemini base with effort → return mapped wire ID + thinkingLevel. + * 2. Mapped Gemini base with effort → return mapped wire ID, no thinkingConfig. * 3. Mapped Gemini base without effort → return default-effort wire ID, no thinkingConfig. * 4. Claude Opus with effort → return identity + thinkingLevel (no suffix variants exist). * 5. All other IDs → return `resolveAntigravityWireModelId(modelId)`, no thinkingConfig. @@ -155,7 +155,7 @@ export function resolveAntigravityEffortWireModel( const effortMap = ANTIGRAVITY_EFFORT_WIRE_MAP[modelId]; if (effortMap) { if (effort && effort in effortMap) { - return { wireModelId: effortMap[effort]!, thinkingLevel: effort }; + return { wireModelId: effortMap[effort]! }; } const defaultEffort = ANTIGRAVITY_DEFAULT_EFFORT[modelId]!; return { wireModelId: effortMap[defaultEffort]! }; diff --git a/tests/google-antigravity-wire.test.ts b/tests/google-antigravity-wire.test.ts index 3c1457abd5..648b3a9c69 100644 --- a/tests/google-antigravity-wire.test.ts +++ b/tests/google-antigravity-wire.test.ts @@ -161,20 +161,20 @@ describe("antigravity CCA envelope", () => { expect(env.request.toolConfig?.functionCallingConfig?.mode).toBeUndefined(); }); - // ── Effort routing: base model + effort → wire model ID + thinkingConfig ── + // ── Gemini effort routing: the wire-model suffix is the complete effort signal ── - test("gemini-3.6-flash with effort=high routes to gemini-3.6-flash-high + thinkingConfig", async () => { + test("gemini-3.6-flash with effort=high routes to suffix without thinkingConfig", async () => { const req = await createGoogleAdapter(effortProvider).buildRequest(parsedWithEffort("gemini-3.6-flash", "high")); const env = JSON.parse(req.body); expect(env.model).toBe("gemini-3.6-flash-high"); - expect(env.request.generationConfig?.thinkingConfig?.thinkingLevel).toBe("high"); + expect(env.request.generationConfig?.thinkingConfig).toBeUndefined(); }); - test("gemini-3.6-flash with effort=low routes to gemini-3.6-flash-low + thinkingConfig", async () => { + test("gemini-3.6-flash with effort=low routes to suffix without thinkingConfig", async () => { const req = await createGoogleAdapter(effortProvider).buildRequest(parsedWithEffort("gemini-3.6-flash", "low")); const env = JSON.parse(req.body); expect(env.model).toBe("gemini-3.6-flash-low"); - expect(env.request.generationConfig?.thinkingConfig?.thinkingLevel).toBe("low"); + expect(env.request.generationConfig?.thinkingConfig).toBeUndefined(); }); test("gemini-3.6-flash with no effort defaults to medium wire ID, no thinkingConfig", async () => { @@ -188,21 +188,21 @@ describe("antigravity CCA envelope", () => { const req = await createGoogleAdapter(effortProvider).buildRequest(parsedWithEffort("gemini-3.6-flash", "max")); const env = JSON.parse(req.body); expect(env.model).toBe("gemini-3.6-flash-high"); - expect(env.request.generationConfig?.thinkingConfig?.thinkingLevel).toBe("high"); + expect(env.request.generationConfig?.thinkingConfig).toBeUndefined(); }); - test("gemini-3.1-pro with effort=low routes to gemini-3.1-pro-low + thinkingConfig", async () => { + test("gemini-3.1-pro with effort=low routes to suffix without thinkingConfig", async () => { const req = await createGoogleAdapter(effortProvider).buildRequest(parsedWithEffort("gemini-3.1-pro", "low")); const env = JSON.parse(req.body); expect(env.model).toBe("gemini-3.1-pro-low"); - expect(env.request.generationConfig?.thinkingConfig?.thinkingLevel).toBe("low"); + expect(env.request.generationConfig?.thinkingConfig).toBeUndefined(); }); - test("gemini-3.1-pro with effort=high routes to gemini-pro-agent + thinkingConfig", async () => { + test("gemini-3.1-pro with effort=high routes to suffix without thinkingConfig", async () => { const req = await createGoogleAdapter(effortProvider).buildRequest(parsedWithEffort("gemini-3.1-pro", "high")); const env = JSON.parse(req.body); expect(env.model).toBe("gemini-pro-agent"); - expect(env.request.generationConfig?.thinkingConfig?.thinkingLevel).toBe("high"); + expect(env.request.generationConfig?.thinkingConfig).toBeUndefined(); }); test("gemini-3.1-pro with no effort defaults to gemini-pro-agent (high)", async () => { @@ -216,7 +216,7 @@ describe("antigravity CCA envelope", () => { const req = await createGoogleAdapter(effortProvider).buildRequest(parsedWithEffort("gemini-3.1-pro", "medium")); const env = JSON.parse(req.body); expect(env.model).toBe("gemini-3.1-pro-low"); - expect(env.request.generationConfig?.thinkingConfig?.thinkingLevel).toBe("low"); + expect(env.request.generationConfig?.thinkingConfig).toBeUndefined(); }); // ── Suffix-ID precedence: suffix IS the effort, no thinkingConfig ──