@blockrun/llm 3.13.4 → 3.13.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -218,7 +218,7 @@ console.log(`Saved ${(result.routing.savings * 100).toFixed(0)}%`); // this requ
218
218
  const complex = await client.smartChat('Prove the Riemann hypothesis step by step');
219
219
  console.log(complex.model); // 'xai/grok-4.3'
220
220
 
221
- // Inspect how the request was classified and ranked (Router v3.4 portfolio).
221
+ // Inspect how the request was classified and ranked (Router Core V3.5 portfolio).
222
222
  console.log(complex.routing.method); // 'portfolio'
223
223
  console.log(complex.routing.taskType); // 'reasoning'
224
224
  console.log(complex.routing.candidates); // ranked, capability-eligible models
@@ -279,8 +279,8 @@ flowchart LR
279
279
  F --> G["response<br/>+ full routing metadata"]
280
280
  ```
281
281
 
282
- Since ClawRouter v0.12.242, Auto uses the deterministic **Router v3.4 portfolio
283
- strategy**: it classifies the task shape locally across
282
+ Auto uses the deterministic **Router Core V3.5 portfolio strategy**
283
+ (`DEFAULT_ROUTING_CONFIG.version` in the pinned engine): it classifies the task shape locally across
284
284
  <!-- br:clawrouter.dimensions -->15<!-- /br:clawrouter.dimensions --> dimensions
285
285
  (token count, code presence, reasoning markers, technical/creative terms,
286
286
  agentic patterns, …), enforces tool / vision / structured-output / context
@@ -296,7 +296,7 @@ anchors the portfolio's candidate pool):
296
296
 
297
297
  | Tier | Example Tasks | ECO | AUTO | PREMIUM |
298
298
  |------|---------------|-----|------|---------|
299
- | SIMPLE | "What is 2+2?", definitions | step-3.7-flash (**FREE**) | gemini-2.5-flash ($0.30/$2.50) | gemini-3.5-flash ($1.50/$9) |
299
+ | SIMPLE | "What is 2+2?", definitions | nemotron-3.5-lightning (**FREE**) | gemini-2.5-flash ($0.30/$2.50) | gemini-3.5-flash ($1.50/$9) |
300
300
  | MEDIUM | Code snippets, explanations | glm-5.3-flash ($0.15/$0.50) | gemini-3.5-flash ($1.50/$9) | gpt-5.3-codex ($1.75/$14.00) |
301
301
  | COMPLEX | Architecture, long documents | glm-5.3-flash ($0.15/$0.50) | gemini-3.1-pro ($2/$12) | claude-fable-5 ($10/$50) |
302
302
  | REASONING | Proofs, multi-step reasoning | deepseek-reasoner ($0.14/$0.28) | deepseek-reasoner ($0.14/$0.28) | claude-sonnet-5 ($3/$15) |
package/dist/index.cjs CHANGED
@@ -145,7 +145,7 @@ var APIError = class extends BlockrunError {
145
145
  }
146
146
  };
147
147
 
148
- // node_modules/.pnpm/@blockrun+router-core@https+++codeload.github.com+BlockRunAI+router-core+tar.gz+5d911879d7f1e_fbldkf3f3jmlwtwu53ftq2mj24/node_modules/@blockrun/router-core/dist/index.js
148
+ // node_modules/.pnpm/@blockrun+router-core@https+++codeload.github.com+BlockRunAI+router-core+tar.gz+814fd3b6bc788_xq5fkcckbb2p7dtp6dodey4yri/node_modules/@blockrun/router-core/dist/index.js
149
149
  function scoreTokenCount(estimatedTokens, thresholds) {
150
150
  if (estimatedTokens < thresholds.simple) {
151
151
  return { name: "tokenCount", score: -1, signal: `short (${estimatedTokens} tokens)` };
@@ -668,6 +668,13 @@ var DEFAULT_MODEL_CAPABILITIES = Object.freeze({
668
668
  supportsTools: true,
669
669
  supportsVision: true
670
670
  },
671
+ "cohere/north-mini-code": {
672
+ // supportsTools: not probed — fails closed
673
+ contextWindow: 256e3,
674
+ maxOutputTokens: 16384,
675
+ supportsTools: false,
676
+ supportsVision: false
677
+ },
671
678
  "deepseek/deepseek-chat": {
672
679
  contextWindow: 1048576,
673
680
  maxOutputTokens: 65536,
@@ -758,8 +765,15 @@ var DEFAULT_MODEL_CAPABILITIES = Object.freeze({
758
765
  supportsTools: true,
759
766
  supportsVision: true
760
767
  },
761
- "nvidia/mistral-nemotron": {
762
- // supportsTools: gateway unavailable at probe time — fails closed
768
+ "nvidia/llama-3.2-11b-vision": {
769
+ // supportsTools: not probed — fails closed
770
+ contextWindow: 128e3,
771
+ maxOutputTokens: 16384,
772
+ supportsTools: false,
773
+ supportsVision: true
774
+ },
775
+ "nvidia/nemotron-3-nano-30b": {
776
+ // supportsTools: not probed — fails closed
763
777
  contextWindow: 131072,
764
778
  maxOutputTokens: 16384,
765
779
  supportsTools: false,
@@ -771,21 +785,16 @@ var DEFAULT_MODEL_CAPABILITIES = Object.freeze({
771
785
  supportsTools: false,
772
786
  supportsVision: true
773
787
  },
774
- "nvidia/nemotron-nano-12b-v2-vl": {
775
- // supportsTools: gateway unavailable at probe time — fails closed
776
- contextWindow: 131072,
777
- maxOutputTokens: 16384,
778
- supportsTools: false,
779
- supportsVision: true
780
- },
781
- "nvidia/nemotron-nano-9b-v2": {
782
- contextWindow: 131072,
788
+ "nvidia/nemotron-3-ultra-550b": {
789
+ // supportsTools: not probed — fails closed
790
+ contextWindow: 1e6,
783
791
  maxOutputTokens: 16384,
784
792
  supportsTools: false,
785
793
  supportsVision: false
786
794
  },
787
- "nvidia/step-3.7-flash": {
788
- contextWindow: 131072,
795
+ "nvidia/nemotron-3.5-lightning": {
796
+ // supportsTools: not probed — fails closed
797
+ contextWindow: 1e6,
789
798
  maxOutputTokens: 16384,
790
799
  supportsTools: false,
791
800
  supportsVision: false
@@ -845,13 +854,6 @@ var DEFAULT_MODEL_CAPABILITIES = Object.freeze({
845
854
  supportsTools: false,
846
855
  supportsVision: true
847
856
  },
848
- "openai/gpt-5.3": {
849
- // supportsTools: gateway unavailable at probe time — fails closed
850
- contextWindow: 128e3,
851
- maxOutputTokens: 128e3,
852
- supportsTools: false,
853
- supportsVision: true
854
- },
855
857
  "openai/gpt-5.3-codex": {
856
858
  // supportsTools: gateway unavailable at probe time — fails closed; override: 2026-08-29 probe: every request (6 plain + 3 tool attempts) returned a gateway 500, so the probe measured an incident, not the model. Codex's function calling is established by the 2026-07 Terminal-Bench / tau2 calibration trajectories in portfolio.ts. Hosts observing the 500s should drop it with RouterOptions.unavailableModels rather than this snapshot claiming the model cannot call tools.
857
859
  contextWindow: 4e5,
@@ -957,6 +959,13 @@ var DEFAULT_MODEL_CAPABILITIES = Object.freeze({
957
959
  supportsTools: true,
958
960
  supportsVision: false
959
961
  },
962
+ "poolside/laguna-xs-2.1": {
963
+ // supportsTools: not probed — fails closed
964
+ contextWindow: 131072,
965
+ maxOutputTokens: 16384,
966
+ supportsTools: false,
967
+ supportsVision: false
968
+ },
960
969
  "qwen/qwen3.7-flash": {
961
970
  contextWindow: 1e6,
962
971
  maxOutputTokens: 65536,
@@ -3498,8 +3507,8 @@ var DEFAULT_ROUTING_CONFIG = {
3498
3507
  // $0.20/$1.25, 1M ctx
3499
3508
  "google/gemini-2.5-flash-lite",
3500
3509
  // $0.10/$0.40
3501
- "nvidia/step-3.7-flash"
3502
- // FREE backstop — NVIDIA free tier (probed 2026-08-21)
3510
+ "nvidia/nemotron-3.5-lightning"
3511
+ // FREE backstop — NVIDIA free tier (probed 2026-08-30)
3503
3512
  ]
3504
3513
  },
3505
3514
  MEDIUM: {
@@ -3588,15 +3597,19 @@ var DEFAULT_ROUTING_CONFIG = {
3588
3597
  // Eco tier configs - absolute cheapest (blockrun/eco)
3589
3598
  ecoTiers: {
3590
3599
  SIMPLE: {
3591
- primary: "nvidia/step-3.7-flash",
3592
- // FREE — NVIDIA free tier flagship
3600
+ primary: "nvidia/nemotron-3.5-lightning",
3601
+ // FREE — NVIDIA free tier flagship, 1M ctx
3593
3602
  fallback: [
3594
- "nvidia/nemotron-nano-9b-v2",
3595
- // FREE — compact + fast, high-volume light tasks
3603
+ "nvidia/nemotron-3-nano-30b",
3604
+ // FREE — fastest free model (~121 tok/s)
3596
3605
  // The free head keeps rotting with NVIDIA's hosting (deepseek-v4-flash
3597
3606
  // 410 2026-08-12, seed-oss-36b 410 2026-08-03, gpt-oss-120b/20b 400
3598
- // 2026-08-21). Each retirement retargets the two free rungs to the
3599
- // current free tier; the paid rungs below never move.
3607
+ // 2026-08-21, and on 2026-08-30 FOUR of the five visible free models at
3608
+ // once — step-3.7-flash, nemotron-nano-9b-v2 and nemotron-nano-12b-v2-vl
3609
+ // all 410, mistral-nemotron hung). Each retirement retargets the two
3610
+ // free rungs to the current free tier; the paid rungs below never move.
3611
+ // The head follows blockrun's own redirect of the model it replaces, so
3612
+ // the router and the gateway never name different models.
3600
3613
  "google/gemini-2.5-flash-lite",
3601
3614
  // $0.10/$0.40 — cheapest paid rung
3602
3615
  "zai/glm-5.3-flash",
@@ -3740,7 +3753,7 @@ var DEFAULT_ROUTING_CONFIG = {
3740
3753
  // strongest open-weight reasoner
3741
3754
  "deepseek/deepseek-chat",
3742
3755
  // Cheap, reliable
3743
- "nvidia/step-3.7-flash"
3756
+ "nvidia/nemotron-3.5-lightning"
3744
3757
  // NVIDIA free ultimate backstop
3745
3758
  ]
3746
3759
  },
@@ -3844,7 +3857,7 @@ var DEFAULT_ROUTING_CONFIG = {
3844
3857
  // retail high-risk 3/3
3845
3858
  "deepseek/deepseek-chat",
3846
3859
  // cheap, reliable
3847
- "nvidia/step-3.7-flash"
3860
+ "nvidia/nemotron-3.5-lightning"
3848
3861
  // NVIDIA free ultimate backstop
3849
3862
  ]
3850
3863
  },
@@ -4465,7 +4478,7 @@ function getCostSummary() {
4465
4478
  }
4466
4479
 
4467
4480
  // src/version.ts
4468
- var SDK_VERSION = "3.13.4";
4481
+ var SDK_VERSION = "3.13.6";
4469
4482
  var USER_AGENT = `blockrun-ts/${SDK_VERSION}`;
4470
4483
 
4471
4484
  // src/client.ts
package/dist/index.js CHANGED
@@ -31,7 +31,7 @@ var APIError = class extends BlockrunError {
31
31
  }
32
32
  };
33
33
 
34
- // node_modules/.pnpm/@blockrun+router-core@https+++codeload.github.com+BlockRunAI+router-core+tar.gz+5d911879d7f1e_fbldkf3f3jmlwtwu53ftq2mj24/node_modules/@blockrun/router-core/dist/index.js
34
+ // node_modules/.pnpm/@blockrun+router-core@https+++codeload.github.com+BlockRunAI+router-core+tar.gz+814fd3b6bc788_xq5fkcckbb2p7dtp6dodey4yri/node_modules/@blockrun/router-core/dist/index.js
35
35
  function scoreTokenCount(estimatedTokens, thresholds) {
36
36
  if (estimatedTokens < thresholds.simple) {
37
37
  return { name: "tokenCount", score: -1, signal: `short (${estimatedTokens} tokens)` };
@@ -554,6 +554,13 @@ var DEFAULT_MODEL_CAPABILITIES = Object.freeze({
554
554
  supportsTools: true,
555
555
  supportsVision: true
556
556
  },
557
+ "cohere/north-mini-code": {
558
+ // supportsTools: not probed — fails closed
559
+ contextWindow: 256e3,
560
+ maxOutputTokens: 16384,
561
+ supportsTools: false,
562
+ supportsVision: false
563
+ },
557
564
  "deepseek/deepseek-chat": {
558
565
  contextWindow: 1048576,
559
566
  maxOutputTokens: 65536,
@@ -644,8 +651,15 @@ var DEFAULT_MODEL_CAPABILITIES = Object.freeze({
644
651
  supportsTools: true,
645
652
  supportsVision: true
646
653
  },
647
- "nvidia/mistral-nemotron": {
648
- // supportsTools: gateway unavailable at probe time — fails closed
654
+ "nvidia/llama-3.2-11b-vision": {
655
+ // supportsTools: not probed — fails closed
656
+ contextWindow: 128e3,
657
+ maxOutputTokens: 16384,
658
+ supportsTools: false,
659
+ supportsVision: true
660
+ },
661
+ "nvidia/nemotron-3-nano-30b": {
662
+ // supportsTools: not probed — fails closed
649
663
  contextWindow: 131072,
650
664
  maxOutputTokens: 16384,
651
665
  supportsTools: false,
@@ -657,21 +671,16 @@ var DEFAULT_MODEL_CAPABILITIES = Object.freeze({
657
671
  supportsTools: false,
658
672
  supportsVision: true
659
673
  },
660
- "nvidia/nemotron-nano-12b-v2-vl": {
661
- // supportsTools: gateway unavailable at probe time — fails closed
662
- contextWindow: 131072,
663
- maxOutputTokens: 16384,
664
- supportsTools: false,
665
- supportsVision: true
666
- },
667
- "nvidia/nemotron-nano-9b-v2": {
668
- contextWindow: 131072,
674
+ "nvidia/nemotron-3-ultra-550b": {
675
+ // supportsTools: not probed — fails closed
676
+ contextWindow: 1e6,
669
677
  maxOutputTokens: 16384,
670
678
  supportsTools: false,
671
679
  supportsVision: false
672
680
  },
673
- "nvidia/step-3.7-flash": {
674
- contextWindow: 131072,
681
+ "nvidia/nemotron-3.5-lightning": {
682
+ // supportsTools: not probed — fails closed
683
+ contextWindow: 1e6,
675
684
  maxOutputTokens: 16384,
676
685
  supportsTools: false,
677
686
  supportsVision: false
@@ -731,13 +740,6 @@ var DEFAULT_MODEL_CAPABILITIES = Object.freeze({
731
740
  supportsTools: false,
732
741
  supportsVision: true
733
742
  },
734
- "openai/gpt-5.3": {
735
- // supportsTools: gateway unavailable at probe time — fails closed
736
- contextWindow: 128e3,
737
- maxOutputTokens: 128e3,
738
- supportsTools: false,
739
- supportsVision: true
740
- },
741
743
  "openai/gpt-5.3-codex": {
742
744
  // supportsTools: gateway unavailable at probe time — fails closed; override: 2026-08-29 probe: every request (6 plain + 3 tool attempts) returned a gateway 500, so the probe measured an incident, not the model. Codex's function calling is established by the 2026-07 Terminal-Bench / tau2 calibration trajectories in portfolio.ts. Hosts observing the 500s should drop it with RouterOptions.unavailableModels rather than this snapshot claiming the model cannot call tools.
743
745
  contextWindow: 4e5,
@@ -843,6 +845,13 @@ var DEFAULT_MODEL_CAPABILITIES = Object.freeze({
843
845
  supportsTools: true,
844
846
  supportsVision: false
845
847
  },
848
+ "poolside/laguna-xs-2.1": {
849
+ // supportsTools: not probed — fails closed
850
+ contextWindow: 131072,
851
+ maxOutputTokens: 16384,
852
+ supportsTools: false,
853
+ supportsVision: false
854
+ },
846
855
  "qwen/qwen3.7-flash": {
847
856
  contextWindow: 1e6,
848
857
  maxOutputTokens: 65536,
@@ -3384,8 +3393,8 @@ var DEFAULT_ROUTING_CONFIG = {
3384
3393
  // $0.20/$1.25, 1M ctx
3385
3394
  "google/gemini-2.5-flash-lite",
3386
3395
  // $0.10/$0.40
3387
- "nvidia/step-3.7-flash"
3388
- // FREE backstop — NVIDIA free tier (probed 2026-08-21)
3396
+ "nvidia/nemotron-3.5-lightning"
3397
+ // FREE backstop — NVIDIA free tier (probed 2026-08-30)
3389
3398
  ]
3390
3399
  },
3391
3400
  MEDIUM: {
@@ -3474,15 +3483,19 @@ var DEFAULT_ROUTING_CONFIG = {
3474
3483
  // Eco tier configs - absolute cheapest (blockrun/eco)
3475
3484
  ecoTiers: {
3476
3485
  SIMPLE: {
3477
- primary: "nvidia/step-3.7-flash",
3478
- // FREE — NVIDIA free tier flagship
3486
+ primary: "nvidia/nemotron-3.5-lightning",
3487
+ // FREE — NVIDIA free tier flagship, 1M ctx
3479
3488
  fallback: [
3480
- "nvidia/nemotron-nano-9b-v2",
3481
- // FREE — compact + fast, high-volume light tasks
3489
+ "nvidia/nemotron-3-nano-30b",
3490
+ // FREE — fastest free model (~121 tok/s)
3482
3491
  // The free head keeps rotting with NVIDIA's hosting (deepseek-v4-flash
3483
3492
  // 410 2026-08-12, seed-oss-36b 410 2026-08-03, gpt-oss-120b/20b 400
3484
- // 2026-08-21). Each retirement retargets the two free rungs to the
3485
- // current free tier; the paid rungs below never move.
3493
+ // 2026-08-21, and on 2026-08-30 FOUR of the five visible free models at
3494
+ // once — step-3.7-flash, nemotron-nano-9b-v2 and nemotron-nano-12b-v2-vl
3495
+ // all 410, mistral-nemotron hung). Each retirement retargets the two
3496
+ // free rungs to the current free tier; the paid rungs below never move.
3497
+ // The head follows blockrun's own redirect of the model it replaces, so
3498
+ // the router and the gateway never name different models.
3486
3499
  "google/gemini-2.5-flash-lite",
3487
3500
  // $0.10/$0.40 — cheapest paid rung
3488
3501
  "zai/glm-5.3-flash",
@@ -3626,7 +3639,7 @@ var DEFAULT_ROUTING_CONFIG = {
3626
3639
  // strongest open-weight reasoner
3627
3640
  "deepseek/deepseek-chat",
3628
3641
  // Cheap, reliable
3629
- "nvidia/step-3.7-flash"
3642
+ "nvidia/nemotron-3.5-lightning"
3630
3643
  // NVIDIA free ultimate backstop
3631
3644
  ]
3632
3645
  },
@@ -3730,7 +3743,7 @@ var DEFAULT_ROUTING_CONFIG = {
3730
3743
  // retail high-risk 3/3
3731
3744
  "deepseek/deepseek-chat",
3732
3745
  // cheap, reliable
3733
- "nvidia/step-3.7-flash"
3746
+ "nvidia/nemotron-3.5-lightning"
3734
3747
  // NVIDIA free ultimate backstop
3735
3748
  ]
3736
3749
  },
@@ -4351,7 +4364,7 @@ function getCostSummary() {
4351
4364
  }
4352
4365
 
4353
4366
  // src/version.ts
4354
- var SDK_VERSION = "3.13.4";
4367
+ var SDK_VERSION = "3.13.6";
4355
4368
  var USER_AGENT = `blockrun-ts/${SDK_VERSION}`;
4356
4369
 
4357
4370
  // src/client.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blockrun/llm",
3
- "version": "3.13.4",
3
+ "version": "3.13.6",
4
4
  "type": "module",
5
5
  "description": "BlockRun SDK - Pay-per-request AI (LLM, Image, Video, Music, Voice) via x402 on Base and Solana",
6
6
  "main": "dist/index.cjs",
@@ -49,27 +49,29 @@
49
49
  },
50
50
  "dependencies": {
51
51
  "bs58": "^6.0.0",
52
- "viem": "^2.49.0"
52
+ "viem": "^2.56.3"
53
53
  },
54
54
  "optionalDependencies": {
55
55
  "@anthropic-ai/sdk": "^0.39.0"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@blockrun/core": "^0.1.0",
59
- "@blockrun/router-core": "https://codeload.github.com/BlockRunAI/router-core/tar.gz/5d911879d7f1eddf93d513b08798998320272cc8",
60
- "@eslint/js": "^9.39.4",
61
- "@types/node": "^20.19.41",
62
- "eslint": "^9.39.4",
59
+ "@blockrun/router-core": "https://codeload.github.com/BlockRunAI/router-core/tar.gz/814fd3b6bc7880a84bbe030bd08c98e8670031e7",
60
+ "@eslint/js": "^9.39.5",
61
+ "@types/node": "^20.19.43",
62
+ "eslint": "^9.39.5",
63
63
  "tsup": "^8.5.1",
64
64
  "typescript": "^5.9.3",
65
- "typescript-eslint": "^8.59.3",
66
- "vitest": "^3.2.6"
65
+ "typescript-eslint": "^8.69.0",
66
+ "vitest": "^3.2.7"
67
67
  },
68
68
  "pnpm": {
69
69
  "overrides": {
70
70
  "ws@>=8.0.0 <8.21.0": "8.21.0",
71
71
  "ws@>=7.0.0 <7.5.11": "7.5.11",
72
- "form-data@>=4.0.0 <4.0.6": "4.0.6"
72
+ "form-data@>=4.0.0 <4.0.6": "4.0.6",
73
+ "uuid@<11.1.1": "^11.1.1",
74
+ "esbuild@<0.28.1": "^0.28.1"
73
75
  }
74
76
  },
75
77
  "engines": {
@@ -77,7 +79,7 @@
77
79
  },
78
80
  "packageManager": "pnpm@9.15.4",
79
81
  "peerDependencies": {
80
- "@solana/spl-token": "^0.4.14",
82
+ "@solana/spl-token": "^0.4.15",
81
83
  "@solana/web3.js": "^1.98.4"
82
84
  },
83
85
  "peerDependenciesMeta": {