Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,20 @@

All notable changes to blockrun-llm will be documented in this file.

## 1.21.1 — 2026-10-20

### Changed
- **Router Core re-synced to upstream `3aca0e1`** (was `2cd5a10`; the
TypeScript SDK moves to the same commit in 3.24.4). The only upstream change
is a `google/gemini-4-argon` capability entry — 1M context, 65,536 max
output, vision, `supports_tools` False until a paid tool probe verifies it,
so tool requests fail closed. The 88-decision parity fixture is re-copied
and byte-identical, so no routing decision changes.

### Docs
- README model list adds `google/gemini-4-argon` (Gemini 4 Argon, live on Base
and Solana since 2026-10-20). Catalog only: no routing tier picks it.

## 1.21.0 — 2026-10-20

### Changed
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.21.0
1.21.1
2 changes: 1 addition & 1 deletion blockrun_llm/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@
create_wallet as generate_wallet, # User-friendly alias
)

__version__ = "1.21.0"
__version__ = "1.21.1"
__all__ = [
"DEFAULT_API_KEY_URL",
"ENV_API_KEY",
Expand Down
2 changes: 1 addition & 1 deletion blockrun_llm/router_core/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Router Core — deterministic, constraint-first model routing.

Python port of `@blockrun/router-core <https://github.com/BlockRunAI/router-core>`_
(upstream commit ``2cd5a10``), the same routing engine the TypeScript SDK and
(upstream commit ``3aca0e1``), the same routing engine the TypeScript SDK and
the BlockRun gateway use. The package is deliberately product-neutral: task
classification, hard capability filtering, portfolio scoring, ordered
fallbacks, and routing configuration. It contains no wallet, gateway client,
Expand Down
2 changes: 1 addition & 1 deletion blockrun_llm/router_core/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Default Routing Config

Python port of ``@blockrun/router-core`` ``config.ts`` (upstream commit
``2cd5a10``; the file is unchanged since ``e38958b``, 2026-09-29, so it is the
``3aca0e1``; the file is unchanged since ``e38958b``, 2026-09-29, so it is the
same table the TypeScript SDK bundles). V3.5: every tier rung is a public
catalog id.

Expand Down
7 changes: 7 additions & 0 deletions blockrun_llm/router_core/model_capabilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,13 @@
"supports_tools": True,
"supports_vision": True,
},
# supportsTools: not probed — fails closed
"google/gemini-4-argon": {
"context_window": 1_048_576,
"max_output_tokens": 65_536,
"supports_tools": False,
"supports_vision": True,
},
"minimax/minimax-m2.7": {
"context_window": 204_800,
"max_output_tokens": 16_384,
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "blockrun-llm"
version = "1.21.0"
version = "1.21.1"
description = "BlockRun SDK - Pay-per-request AI (LLM, Image, Video, Music, Voice) via x402 on Base and Solana"
readme = "README.md"
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/test_router_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
case (``model-capabilities.test.ts``, ``portfolio.test.ts``, ``rules.test.ts``,
``selector.test.ts``, ``strategy.test.ts``, ``tokens.test.ts``,
``tool-intent.test.ts``, ``unavailable-models.test.ts`` at commit
``2cd5a10``). They are the regression guard
``3aca0e1``). They are the regression guard
that the Python port keeps choosing the same models as the TypeScript SDK —
when upstream is re-synced, re-port these alongside the source.
"""
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/test_router_core_snapshot.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Cross-language decision-snapshot parity.

``router_core_decisions.snapshot.json`` is a verbatim copy of upstream
``decisions.snapshot.json`` at commit ``2cd5a10`` — 88 complete decisions the
``decisions.snapshot.json`` at commit ``3aca0e1`` — 88 complete decisions the
TypeScript engine produced for a frozen corpus (22 prompts x 4 profiles with
rotating tool/vision/structured-output shapes, frozen pricing, frozen clock).
This test recomputes every decision with the Python port and compares field
Expand Down