From dc26a2920963b39fc389cddfc7facf098cadd79a Mon Sep 17 00:00:00 2001 From: Aniket Dixit Date: Fri, 14 Aug 2026 01:28:52 +0530 Subject: [PATCH] grok 4.6 and gemini flash 3.7 --- CLAUDE.md | 4 ++-- README.md | 4 ++-- tee_gateway/model_registry.py | 15 +++++++++++++++ tests/test_pricing.py | 24 ++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 4 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 53aa353..050241e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -122,8 +122,8 @@ Server configuration: Model name prefixes determine routing: - **OpenAI**: gpt-4.1, gpt-5, gpt-5-mini, gpt-5.2, gpt-5.6-sol/terra/luna, o4-mini; image generation: gpt-image-2 - **Anthropic**: claude-sonnet-4-0/4-5/4-6, claude-sonnet-5, claude-haiku-4-5, claude-opus-4-5/4-6/4-7/4-8, claude-opus-5, claude-fable-5, claude-3-7-sonnet, claude-3-5-haiku -- **Google**: gemini-3.6-flash, gemini-3.5-flash-lite, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.5-pro, gemini-3-pro-preview, gemini-3-flash-preview, gemini-3.1-pro-preview, gemini-3.5-flash; image generation: gemini-2.5-flash-image, gemini-3.1-flash-image -- **xAI**: grok-2, grok-3, grok-3-mini, grok-4, grok-4.3, grok-4.5, grok-4-fast, grok-4-1-fast; image generation: grok-2-image +- **Google**: gemini-3.7-flash, gemini-3.6-flash, gemini-3.5-flash-lite, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.5-pro, gemini-3-pro-preview, gemini-3-flash-preview, gemini-3.1-pro-preview, gemini-3.5-flash; image generation: gemini-2.5-flash-image, gemini-3.1-flash-image +- **xAI**: grok-2, grok-3, grok-3-mini, grok-4, grok-4.3, grok-4.5, grok-4.6, grok-4-fast, grok-4-1-fast; image generation: grok-2-image - **ByteDance** (BytePlus ModelArk, OpenAI-compatible, ap-southeast): seed-1.6, seed-1.8, seed-2.0-lite, deepseek-v4-flash, deepseek-v4-pro, glm-5.2 (Z.ai's model served via a ModelArk deployment endpoint); image generation: seedream-4.0, seedream-5.0-lite, seedance-4.5, seedance-5.0 - **Nous Research** (Nous Portal, OpenAI-compatible): hermes-4-405b, hermes-4-70b - **Z.ai** (Model API, OpenAI-compatible): image generation: glm-image (glm-5.2 chat is routed through BytePlus ModelArk, see ByteDance above) diff --git a/README.md b/README.md index 92fa5b5..107dd1e 100644 --- a/README.md +++ b/README.md @@ -35,8 +35,8 @@ The gateway solves this by running inside a hardware-isolated Nitro Enclave wher |----------|--------| | OpenAI | gpt-4.1, gpt-5, gpt-5-mini, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, o4-mini | | Anthropic | claude-sonnet-4-5, claude-sonnet-4-6, claude-haiku-4-5, claude-opus-4-5, claude-opus-4-6 | -| Google | gemini-3.6-flash, gemini-3.5-flash-lite, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.5-pro, gemini-3-pro-preview, gemini-3-flash-preview | -| xAI | grok-4.5, grok-4.3, grok-4, grok-4-fast, grok-4-1-fast, grok-4-1-fast-non-reasoning | +| Google | gemini-3.7-flash, gemini-3.6-flash, gemini-3.5-flash-lite, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.5-pro, gemini-3-pro-preview, gemini-3-flash-preview | +| xAI | grok-4.6, grok-4.5, grok-4.3, grok-4, grok-4-fast, grok-4-1-fast, grok-4-1-fast-non-reasoning | | ByteDance | seed-1.6, seed-1.8, seed-2.0-lite, deepseek-v4-flash, deepseek-v4-pro | ## Quick Start diff --git a/tee_gateway/model_registry.py b/tee_gateway/model_registry.py index ec9af9a..d289f47 100644 --- a/tee_gateway/model_registry.py +++ b/tee_gateway/model_registry.py @@ -392,8 +392,21 @@ class SupportedModel(Enum): input_price_usd=Decimal("0.0000015"), output_price_usd=Decimal("0.0000075"), ) + # Promotional standard pricing through December 31, 2026. + GEMINI_3_7_FLASH = ModelConfig( + provider="google", + api_name="gemini-3.7-flash", + input_price_usd=Decimal("0.00000075"), + output_price_usd=Decimal("0.00000375"), + ) # ── xAI Grok ──────────────────────────────────────────────────────── + GROK_4_6 = ModelConfig( + provider="x-ai", + api_name="grok-4.6", + input_price_usd=Decimal("0.000002"), + output_price_usd=Decimal("0.000006"), + ) GROK_4_5 = ModelConfig( provider="x-ai", api_name="grok-4.5", @@ -671,7 +684,9 @@ class SupportedModel(Enum): "gemini-3.5-flash": SupportedModel.GEMINI_3_5_FLASH, "gemini-3.5-flash-lite": SupportedModel.GEMINI_3_5_FLASH_LITE, "gemini-3.6-flash": SupportedModel.GEMINI_3_6_FLASH, + "gemini-3.7-flash": SupportedModel.GEMINI_3_7_FLASH, # xAI + "grok-4.6": SupportedModel.GROK_4_6, "grok-4.5": SupportedModel.GROK_4_5, "grok-4.5-latest": SupportedModel.GROK_4_5, "grok-4.3": SupportedModel.GROK_4_3, diff --git a/tests/test_pricing.py b/tests/test_pricing.py index b28c802..1367e36 100644 --- a/tests/test_pricing.py +++ b/tests/test_pricing.py @@ -289,6 +289,13 @@ def test_gemini_3_6_flash_resolves(self): self.assertEqual(cfg.input_price_usd, Decimal("0.0000015")) self.assertEqual(cfg.output_price_usd, Decimal("0.0000075")) + def test_gemini_3_7_flash_resolves(self): + cfg = get_model_config("gemini-3.7-flash") + self.assertEqual(cfg.provider, "google") + self.assertEqual(cfg.api_name, "gemini-3.7-flash") + self.assertEqual(cfg.input_price_usd, Decimal("0.00000075")) + self.assertEqual(cfg.output_price_usd, Decimal("0.00000375")) + def test_gemini_3_1_flash_image_resolves(self): cfg = get_model_config("gemini-3.1-flash-image") self.assertEqual(cfg.provider, "google") @@ -301,6 +308,13 @@ def test_gemini_3_1_flash_image_resolves(self): # ── xAI Grok ──────────────────────────────────────────────────────────── + def test_grok_4_6_resolves(self): + cfg = get_model_config("grok-4.6") + self.assertEqual(cfg.provider, "x-ai") + self.assertEqual(cfg.api_name, "grok-4.6") + self.assertEqual(cfg.input_price_usd, Decimal("0.000002")) + self.assertEqual(cfg.output_price_usd, Decimal("0.000006")) + def test_grok_4_5_resolves(self): cfg = get_model_config("grok-4.5") self.assertEqual(cfg.provider, "x-ai") @@ -713,8 +727,18 @@ def test_gemini_3_6_flash_cost(self): self.assertEqual(cost, _expected_cost_opg("gemini-3.6-flash", 1000, 500)) self.assertEqual(cost, 5_250_000_000_000_000) + def test_gemini_3_7_flash_cost(self): + cost = self._calc("gemini-3.7-flash", 1000, 500) + self.assertEqual(cost, _expected_cost_opg("gemini-3.7-flash", 1000, 500)) + self.assertEqual(cost, 2_625_000_000_000_000) + # ── xAI Grok ──────────────────────────────────────────────────────────── + def test_grok_4_6_cost(self): + cost = self._calc("grok-4.6", 1000, 500) + self.assertEqual(cost, _expected_cost_opg("grok-4.6", 1000, 500)) + self.assertEqual(cost, 5_000_000_000_000_000) + def test_grok_4_5_cost(self): cost = self._calc("grok-4.5", 1000, 500) expected = _expected_cost_opg("grok-4.5", 1000, 500)