diff --git a/README.md b/README.md index d0b0647..e1d43fe 100644 --- a/README.md +++ b/README.md @@ -183,7 +183,7 @@ The `/model` picker carries a curated, provider-grouped slice of the catalog (sm | **Routing** | `blockrun/auto` · `blockrun/premium` · `blockrun/eco` · `blockrun/free` | | **Anthropic** | claude-fable-5.1 · fable-5 · opus-5.5 · opus-5 · opus-4.8 · opus-4.7 · sonnet-5.5 · sonnet-5 · sonnet-4.6 · haiku-4.5 | | **OpenAI** | gpt-6-astra / sol / luna · gpt-6.1-sol · gpt-5.6-terra / sol / luna · gpt-5.5 · gpt-5.5-pro · gpt-5.4-pro / 5.4 / mini / nano · gpt-5.1 · gpt-5.3-codex | -| **Google** | gemini-3.1-pro · gemini-3.8-flash · gemini-3.6-flash · gemini-3.5-flash · gemini-3.5-flash-lite · gemini-3.1-flash-lite · gemini-3-flash-preview | +| **Google** | gemini-4-argon · gemini-3.1-pro · gemini-3.8-flash · gemini-3.6-flash · gemini-3.5-flash · gemini-3.5-flash-lite · gemini-3.1-flash-lite · gemini-3-flash-preview | | **xAI** | grok-4.7 · grok-4.6 · grok-4.5 · grok-4.3 · grok-build-0.1 | | **DeepSeek** | deepseek-v4-flash-vision-exp (vision) · deepseek-v4-pro · deepseek-v4.1-flash · deepseek-chat · deepseek-reasoner | | **Z.ai** | glm-5.3 · glm-5.3-flash · glm-5.2 · glm-5.1 · glm-5-turbo · glm-5 | diff --git a/docs/03-one-endpoint-gpt-claude-gemini-deepseek.md b/docs/03-one-endpoint-gpt-claude-gemini-deepseek.md index 2431f68..d064374 100644 --- a/docs/03-one-endpoint-gpt-claude-gemini-deepseek.md +++ b/docs/03-one-endpoint-gpt-claude-gemini-deepseek.md @@ -77,7 +77,7 @@ blockrun/minimax/minimax-m3 blockrun/moonshot/kimi-k3 blockrun/deepseek/deepseek-v4-pro blockrun/free/nemotron-3.5-lightning -…71 curated entries (88 models via the gateway) +…72 curated entries (88 models via the gateway) ``` Set the model to `blockrun/auto` and the gateway's router picks a model per request diff --git a/pyproject.toml b/pyproject.toml index 8841060..72b7691 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "hermes-plugin-clawrouter" -version = "0.4.3" +version = "0.4.4" description = "ClawRouter for Hermes — every BlockRun model, smart routing, paid by BlockRun API key or x402 USDC" readme = "README.md" license = { text = "MIT" } diff --git a/src/clawrouter_hermes/__init__.py b/src/clawrouter_hermes/__init__.py index 467a576..5ee3168 100644 --- a/src/clawrouter_hermes/__init__.py +++ b/src/clawrouter_hermes/__init__.py @@ -28,7 +28,7 @@ logger = logging.getLogger(__name__) -_VERSION = "0.4.3" +_VERSION = "0.4.4" def register(ctx) -> None: diff --git a/src/clawrouter_hermes/models.py b/src/clawrouter_hermes/models.py index 58298e9..9220ba0 100644 --- a/src/clawrouter_hermes/models.py +++ b/src/clawrouter_hermes/models.py @@ -42,6 +42,7 @@ "blockrun/openai/gpt-5.4-nano", "blockrun/openai/gpt-5.1", "blockrun/openai/gpt-5.3-codex", + "blockrun/google/gemini-4-argon", "blockrun/google/gemini-3.1-pro", "blockrun/google/gemini-3.8-flash", "blockrun/google/gemini-3.6-flash", diff --git a/src/clawrouter_hermes/plugin.yaml b/src/clawrouter_hermes/plugin.yaml index ba5d942..6a0061e 100644 --- a/src/clawrouter_hermes/plugin.yaml +++ b/src/clawrouter_hermes/plugin.yaml @@ -1,5 +1,5 @@ name: clawrouter -version: 0.4.3 +version: 0.4.4 description: "ClawRouter for Hermes — every BlockRun model, smart routing, paid with x402 USDC (Solana or Base) or a BlockRun API key. Wraps the local ClawRouter proxy on http://127.0.0.1:8402." author: BlockRun kind: standalone diff --git a/src/clawrouter_hermes/provider_template/init.py.tmpl b/src/clawrouter_hermes/provider_template/init.py.tmpl index 3e76277..f83bd7e 100644 --- a/src/clawrouter_hermes/provider_template/init.py.tmpl +++ b/src/clawrouter_hermes/provider_template/init.py.tmpl @@ -77,6 +77,7 @@ _STATIC_FALLBACKS = ( "blockrun/openai/gpt-5.4-nano", "blockrun/openai/gpt-5.1", "blockrun/openai/gpt-5.3-codex", + "blockrun/google/gemini-4-argon", "blockrun/google/gemini-3.1-pro", "blockrun/google/gemini-3.8-flash", "blockrun/google/gemini-3.6-flash", diff --git a/src/clawrouter_hermes/skills/clawrouter/SKILL.md b/src/clawrouter_hermes/skills/clawrouter/SKILL.md index d318b56..dc46dd7 100644 --- a/src/clawrouter_hermes/skills/clawrouter/SKILL.md +++ b/src/clawrouter_hermes/skills/clawrouter/SKILL.md @@ -192,7 +192,7 @@ Rules handle ~80% of requests in <1ms. Only ambiguous queries hit the LLM classi ## Available Models -88 models including: claude-fable-5.1, claude-fable-5, claude-opus-5.5, claude-opus-5, claude-opus-4.8, claude-opus-4.7, claude-sonnet-5.5, claude-sonnet-5, claude-sonnet-4.6, gpt-6-astra, gpt-6-sol, gpt-6.1-sol, gpt-6-luna, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-5.6-terra-pro, gpt-5.6-sol-pro, gpt-5.6-luna-pro, gpt-5.5, gpt-5.4, gpt-5.1, gemini-3.1-pro, gemini-3.5-flash, grok-4.7, grok-4.6, grok-4.5, grok-4.3, grok-build-0.1, deepseek-v4-pro, deepseek-v4-flash-vision-exp [vision], deepseek-v4.1-flash, deepseek-chat, glm-5.2, kimi-k3, minimax-m3, qwen3.8-max, qwen3.7-max, mistral-large-4 [vision], hy4-preview, and the curated free models (nemotron-3.5-lightning, laguna-xs-2.1, north-mini-code, nemotron-3-nano-omni-30b-a3b-reasoning [vision], nemotron-3-ultra-550b, llama-3.2-11b-vision [vision]). +88 models including: claude-fable-5.1, claude-fable-5, claude-opus-5.5, claude-opus-5, claude-opus-4.8, claude-opus-4.7, claude-sonnet-5.5, claude-sonnet-5, claude-sonnet-4.6, gpt-6-astra, gpt-6-sol, gpt-6.1-sol, gpt-6-luna, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-5.6-terra-pro, gpt-5.6-sol-pro, gpt-5.6-luna-pro, gpt-5.5, gpt-5.4, gpt-5.1, gemini-4-argon, gemini-3.1-pro, gemini-3.5-flash, grok-4.7, grok-4.6, grok-4.5, grok-4.3, grok-build-0.1, deepseek-v4-pro, deepseek-v4-flash-vision-exp [vision], deepseek-v4.1-flash, deepseek-chat, glm-5.2, kimi-k3, minimax-m3, qwen3.8-max, qwen3.7-max, mistral-large-4 [vision], hy4-preview, and the curated free models (nemotron-3.5-lightning, laguna-xs-2.1, north-mini-code, nemotron-3-nano-omni-30b-a3b-reasoning [vision], nemotron-3-ultra-550b, llama-3.2-11b-vision [vision]). ## Built-in Agent Tools diff --git a/tests/test_provider_template.py b/tests/test_provider_template.py index 24bbffd..600ede0 100644 --- a/tests/test_provider_template.py +++ b/tests/test_provider_template.py @@ -252,14 +252,19 @@ def test_curated_picker_catalog_orders_featured_models(): #: ClawRouter ships them. Drop each one from here the moment it lands in #: top-models.json — a stale entry silences the guard for a real drift. #: Was empty from 2026-09-06 (ClawRouter 0.12.276 landed Gemini 3.8 Flash) -#: until the 2026-10-02 additions, and empty again since 2026-10-20 -#: (BlockRunAI/ClawRouter#487 landed DeepSeek V4.1 Flash). The Gemini entry is why the "has it landed yet" assertion below +#: until the 2026-10-02 additions, empty again from 2026-10-20 +#: (BlockRunAI/ClawRouter#487 landed DeepSeek V4.1 Flash) until Gemini 4 Argon. The Gemini entry is why the "has it landed yet" assertion below #: exists — a picker ID ClawRouter does not carry in BLOCKRUN_MODELS makes #: estimateAmount() return undefined, which skips the pre-request balance #: check, projects $0 into the strict maxCostPerRun gate and never accumulates #: into session cost. An exemption is a cost-cap hole with a deadline, so the #: deadline is enforced rather than remembered. -POST_TOP_MODELS_ADDITIONS: frozenset = frozenset() +POST_TOP_MODELS_ADDITIONS: frozenset = frozenset({ + # Live on blockrun.ai and sol.blockrun.ai since 2026-10-20; ClawRouter adds + # it to BLOCKRUN_MODELS + top-models.json in BlockRunAI/ClawRouter#493. Drop + # this once that merges — the "landed" assertion below fails until you do. + "blockrun/google/gemini-4-argon", +}) #: Entries whose picker placement deliberately diverges from top-models.json #: order; membership is still enforced. Empty since 2026-08-31 — its only