@blockrun/clawrouter 0.12.243 → 0.12.245
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 +37 -27
- package/dist/cli.js +241 -44
- package/dist/index.js +241 -44
- package/dist/router/index.js +3 -4
- package/docs/anthropic-cost-savings.md +1 -1
- package/docs/anthropic-third-party-harness-changes.md +3 -3
- package/docs/clawrouter-cuts-llm-api-costs-500x.md +1 -1
- package/docs/clawrouter-vs-openrouter-llm-routing-comparison.md +4 -4
- package/package.json +3 -3
- package/skills/clawrouter/SKILL.md +3 -3
- package/src/top-models.json +0 -1
package/dist/index.js
CHANGED
|
@@ -92,7 +92,6 @@ var init_top_models = __esm({
|
|
|
92
92
|
"deepseek/deepseek-v4-pro",
|
|
93
93
|
"deepseek/deepseek-chat",
|
|
94
94
|
"deepseek/deepseek-reasoner",
|
|
95
|
-
"free/deepseek-v4-flash",
|
|
96
95
|
"free/nemotron-3-nano-omni-30b-a3b-reasoning",
|
|
97
96
|
"free/mistral-nemotron",
|
|
98
97
|
"free/step-3.7-flash",
|
|
@@ -292,6 +291,14 @@ var init_models = __esm({
|
|
|
292
291
|
"gpt-5.6-sol": "openai/gpt-5.6-sol",
|
|
293
292
|
"gpt-5.6-terra": "openai/gpt-5.6-terra",
|
|
294
293
|
"gpt-5.6-luna": "openai/gpt-5.6-luna",
|
|
294
|
+
// Pro reasoning tiers (2026-08-03). Explicit pins only — the generic
|
|
295
|
+
// shorthands above stay on standard Terra.
|
|
296
|
+
"gpt-5.6-sol-pro": "openai/gpt-5.6-sol-pro",
|
|
297
|
+
"gpt-5.6-terra-pro": "openai/gpt-5.6-terra-pro",
|
|
298
|
+
"gpt-5.6-luna-pro": "openai/gpt-5.6-luna-pro",
|
|
299
|
+
"sol-pro": "openai/gpt-5.6-sol-pro",
|
|
300
|
+
"terra-pro": "openai/gpt-5.6-terra-pro",
|
|
301
|
+
"luna-pro": "openai/gpt-5.6-luna-pro",
|
|
295
302
|
"gpt-5.5": "openai/gpt-5.5",
|
|
296
303
|
"gpt-5.5-pro": "openai/gpt-5.5-pro",
|
|
297
304
|
// ChatGPT Instant. `chat-latest` is a rolling upstream id — pinning it means
|
|
@@ -343,6 +350,20 @@ var init_models = __esm({
|
|
|
343
350
|
"qwen3.7-max": "qwen/qwen3.7-max",
|
|
344
351
|
"qwen-3.7-max": "qwen/qwen3.7-max",
|
|
345
352
|
"qwen3-7-max": "qwen/qwen3.7-max",
|
|
353
|
+
// Plus/Flash tiers (2026-08-03) — explicit pins, same rule as Max.
|
|
354
|
+
"qwen3.7-plus": "qwen/qwen3.7-plus",
|
|
355
|
+
"qwen-3.7-plus": "qwen/qwen3.7-plus",
|
|
356
|
+
"qwen3.7-flash": "qwen/qwen3.7-flash",
|
|
357
|
+
"qwen-3.7-flash": "qwen/qwen3.7-flash",
|
|
358
|
+
// Tencent + Xiaomi (2026-07-25) — each maker has exactly one model, so the
|
|
359
|
+
// bare maker names are safe to bind.
|
|
360
|
+
hy3: "tencent/hy3",
|
|
361
|
+
tencent: "tencent/hy3",
|
|
362
|
+
hunyuan: "tencent/hy3",
|
|
363
|
+
mimo: "xiaomi/mimo-v2.5-pro",
|
|
364
|
+
"mimo-v2.5-pro": "xiaomi/mimo-v2.5-pro",
|
|
365
|
+
"mimo-v2.5": "xiaomi/mimo-v2.5-pro",
|
|
366
|
+
xiaomi: "xiaomi/mimo-v2.5-pro",
|
|
346
367
|
// Google
|
|
347
368
|
// gemini-3-pro-preview delisted by Google 2026-06-06 — mirror the gateway
|
|
348
369
|
// redirect to its successor so pinned callers land on 3.1-pro, not an error.
|
|
@@ -358,7 +379,10 @@ var init_models = __esm({
|
|
|
358
379
|
flash: "google/gemini-2.5-flash",
|
|
359
380
|
"gemini-3.1-pro-preview": "google/gemini-3.1-pro",
|
|
360
381
|
"google/gemini-3.1-pro-preview": "google/gemini-3.1-pro",
|
|
382
|
+
"gemini-3.6-flash": "google/gemini-3.6-flash",
|
|
383
|
+
"gemini-3.6": "google/gemini-3.6-flash",
|
|
361
384
|
"gemini-3.5-flash": "google/gemini-3.5-flash",
|
|
385
|
+
"gemini-3.5-flash-lite": "google/gemini-3.5-flash-lite",
|
|
362
386
|
"gemini-3.1-flash-lite": "google/gemini-3.1-flash-lite",
|
|
363
387
|
"gemini-2.5-flash-lite": "google/gemini-2.5-flash-lite",
|
|
364
388
|
// xAI — grok-4.3 is the public flagship since 2026-06-04 (grok-3 and the
|
|
@@ -394,12 +418,17 @@ var init_models = __esm({
|
|
|
394
418
|
"gpt-20b": "free/gpt-oss-20b",
|
|
395
419
|
"nvidia/gpt-oss-120b": "free/gpt-oss-120b",
|
|
396
420
|
"nvidia/gpt-oss-20b": "free/gpt-oss-20b",
|
|
397
|
-
// deepseek family
|
|
398
|
-
//
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
421
|
+
// deepseek free family: v4-flash EOL'd 2026-08-12 (HTTP 410 from NVIDIA on both
|
|
422
|
+
// probe passes; prod gate fired [ALERT][free-model-dead] kind=gone twice that
|
|
423
|
+
// morning). The whole nvidia/deepseek-* family is now dead upstream — blockrun
|
|
424
|
+
// hid flash and retargeted v3.2/v4-pro (whose redirects chained through flash)
|
|
425
|
+
// straight to gpt-oss-120b. Ids naming v4-flash itself keep the real id (the
|
|
426
|
+
// gateway redirects them); the v3.2/v4-pro ids follow blockrun's retarget
|
|
427
|
+
// rather than chaining through a second dead model.
|
|
428
|
+
"nvidia/deepseek-v3.2": "free/gpt-oss-120b",
|
|
429
|
+
"free/deepseek-v3.2": "free/gpt-oss-120b",
|
|
430
|
+
"nvidia/deepseek-v4-pro": "free/gpt-oss-120b",
|
|
431
|
+
"free/deepseek-v4-pro": "free/gpt-oss-120b",
|
|
403
432
|
"nvidia/deepseek-v4-flash": "free/deepseek-v4-flash",
|
|
404
433
|
"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning": "free/nemotron-3-nano-omni-30b-a3b-reasoning",
|
|
405
434
|
// qwen3-coder-480b retired (NVIDIA EOL 2026-06-14). Its server-side redirect used
|
|
@@ -441,13 +470,16 @@ var init_models = __esm({
|
|
|
441
470
|
"mistral-large-3-675b": "free/mistral-large-3-675b",
|
|
442
471
|
"qwen3.5-122b": "free/qwen3.5-122b-a10b",
|
|
443
472
|
"qwen3-122b": "free/qwen3.5-122b-a10b",
|
|
444
|
-
// Free model shorthand aliases
|
|
445
|
-
"
|
|
446
|
-
|
|
447
|
-
//
|
|
473
|
+
// Free model shorthand aliases. v4-flash EOL'd 2026-08-12 — no free DeepSeek
|
|
474
|
+
// is left anywhere, so the generic "a free deepseek" shorthand follows the
|
|
475
|
+
// gateway's retarget (blockrun's /free-deepseek page points at gpt-oss-120b
|
|
476
|
+
// too). Shorthands naming v4-flash itself stay on the real id — the gateway
|
|
477
|
+
// redirects them, same treatment as seed-oss/mistral-large pins.
|
|
478
|
+
"deepseek-free": "free/gpt-oss-120b",
|
|
479
|
+
"deepseek-v4-pro": "free/gpt-oss-120b",
|
|
480
|
+
// free shorthand; pro dead upstream (410)
|
|
448
481
|
"deepseek-v4-flash": "free/deepseek-v4-flash",
|
|
449
|
-
"v4-pro": "free/
|
|
450
|
-
// V4 Pro NVIDIA hung → flash
|
|
482
|
+
"v4-pro": "free/gpt-oss-120b",
|
|
451
483
|
"v4-flash": "free/deepseek-v4-flash",
|
|
452
484
|
"mistral-free": "free/mistral-nemotron",
|
|
453
485
|
// mistral-large-3-675b EOL'd 2026-07-28 → last live free Mistral (blockrun demoted its /free-mistral primary the same way)
|
|
@@ -527,16 +559,32 @@ var init_models = __esm({
|
|
|
527
559
|
banana: "google/nano-banana",
|
|
528
560
|
"banana-pro": "google/nano-banana-pro",
|
|
529
561
|
"nano-banana-pro": "google/nano-banana-pro",
|
|
562
|
+
// Nano Banana 2 (Gemini 3.1 Flash imagegen, 2026-08-03). Explicit pins —
|
|
563
|
+
// bare `nano-banana`/`banana` stay on the original.
|
|
564
|
+
"nano-banana-2": "google/nano-banana-2",
|
|
565
|
+
"banana-2": "google/nano-banana-2",
|
|
530
566
|
seedream: "bytedance/seedream-5-pro",
|
|
531
567
|
"grok-imagine": "xai/grok-imagine-image",
|
|
532
568
|
"grok-imagine-pro": "xai/grok-imagine-image-pro",
|
|
533
569
|
cogview: "zai/cogview-4",
|
|
534
570
|
// Video generation
|
|
535
571
|
"grok-video": "xai/grok-imagine-video",
|
|
572
|
+
// Bare `seedance` deliberately stays on 1.5-pro. It is the cheapest of the
|
|
573
|
+
// family ($0.070/s vs 2.5's $0.315/s) and `/videogen` documents it as
|
|
574
|
+
// "default — cheapest"; repointing it at the newest tier would 4.5x the
|
|
575
|
+
// quote for every caller who typed the short name expecting the default.
|
|
576
|
+
// Same reasoning that keeps `kimi` on K2.7. Pin 2.5 explicitly to opt in.
|
|
536
577
|
seedance: "bytedance/seedance-1.5-pro",
|
|
537
578
|
"seedance-1.5": "bytedance/seedance-1.5-pro",
|
|
538
579
|
"seedance-2-fast": "bytedance/seedance-2.0-fast",
|
|
539
|
-
"seedance-2": "bytedance/seedance-2.0"
|
|
580
|
+
"seedance-2": "bytedance/seedance-2.0",
|
|
581
|
+
"seedance-2.5": "bytedance/seedance-2.5",
|
|
582
|
+
"seedance-2-5": "bytedance/seedance-2.5",
|
|
583
|
+
// Seedance 2.0 Mini (2026-08-12): 720p + synced audio at half the flagship
|
|
584
|
+
// rate. Note it is NOT cheaper than 1.5-pro, so bare `seedance` stays put.
|
|
585
|
+
"seedance-2-mini": "bytedance/seedance-2.0-mini",
|
|
586
|
+
"seedance-2.0-mini": "bytedance/seedance-2.0-mini",
|
|
587
|
+
"seedance-mini": "bytedance/seedance-2.0-mini"
|
|
540
588
|
};
|
|
541
589
|
BLOCKRUN_MODELS = [
|
|
542
590
|
// Smart routing meta-models — proxy replaces with actual model
|
|
@@ -644,11 +692,12 @@ var init_models = __esm({
|
|
|
644
692
|
toolCalling: true
|
|
645
693
|
},
|
|
646
694
|
{
|
|
695
|
+
// Terra/Luna repriced 2026-07-30 (OpenAI price cut, blockrun #326).
|
|
647
696
|
id: "openai/gpt-5.6-terra",
|
|
648
697
|
name: "GPT-5.6 Terra",
|
|
649
698
|
version: "5.6",
|
|
650
|
-
inputPrice: 2
|
|
651
|
-
outputPrice:
|
|
699
|
+
inputPrice: 2,
|
|
700
|
+
outputPrice: 12,
|
|
652
701
|
contextWindow: 105e4,
|
|
653
702
|
maxOutput: 128e3,
|
|
654
703
|
reasoning: true,
|
|
@@ -660,10 +709,52 @@ var init_models = __esm({
|
|
|
660
709
|
id: "openai/gpt-5.6-luna",
|
|
661
710
|
name: "GPT-5.6 Luna",
|
|
662
711
|
version: "5.6",
|
|
712
|
+
inputPrice: 0.2,
|
|
713
|
+
outputPrice: 1.2,
|
|
714
|
+
contextWindow: 105e4,
|
|
715
|
+
maxOutput: 128e3,
|
|
716
|
+
vision: true,
|
|
717
|
+
agentic: true,
|
|
718
|
+
toolCalling: true
|
|
719
|
+
},
|
|
720
|
+
// GPT-5.6 Pro tiers (blockrun #329, 2026-08-03): each base tier with pro
|
|
721
|
+
// reasoning mode. Terra Pro lands at half the standard Terra rate; Luna Pro
|
|
722
|
+
// is the budget deep-reasoning tier.
|
|
723
|
+
{
|
|
724
|
+
id: "openai/gpt-5.6-sol-pro",
|
|
725
|
+
name: "GPT-5.6 Sol Pro",
|
|
726
|
+
version: "5.6",
|
|
727
|
+
inputPrice: 5,
|
|
728
|
+
outputPrice: 30,
|
|
729
|
+
contextWindow: 105e4,
|
|
730
|
+
maxOutput: 128e3,
|
|
731
|
+
reasoning: true,
|
|
732
|
+
vision: true,
|
|
733
|
+
agentic: true,
|
|
734
|
+
toolCalling: true
|
|
735
|
+
},
|
|
736
|
+
{
|
|
737
|
+
id: "openai/gpt-5.6-terra-pro",
|
|
738
|
+
name: "GPT-5.6 Terra Pro",
|
|
739
|
+
version: "5.6",
|
|
663
740
|
inputPrice: 1,
|
|
664
741
|
outputPrice: 6,
|
|
665
742
|
contextWindow: 105e4,
|
|
666
743
|
maxOutput: 128e3,
|
|
744
|
+
reasoning: true,
|
|
745
|
+
vision: true,
|
|
746
|
+
agentic: true,
|
|
747
|
+
toolCalling: true
|
|
748
|
+
},
|
|
749
|
+
{
|
|
750
|
+
id: "openai/gpt-5.6-luna-pro",
|
|
751
|
+
name: "GPT-5.6 Luna Pro",
|
|
752
|
+
version: "5.6",
|
|
753
|
+
inputPrice: 0.1,
|
|
754
|
+
outputPrice: 0.6,
|
|
755
|
+
contextWindow: 105e4,
|
|
756
|
+
maxOutput: 128e3,
|
|
757
|
+
reasoning: true,
|
|
667
758
|
vision: true,
|
|
668
759
|
agentic: true,
|
|
669
760
|
toolCalling: true
|
|
@@ -1067,19 +1158,45 @@ var init_models = __esm({
|
|
|
1067
1158
|
toolCalling: true
|
|
1068
1159
|
},
|
|
1069
1160
|
{
|
|
1070
|
-
//
|
|
1071
|
-
// 2026-
|
|
1161
|
+
// Newest-generation Flash with built-in thinking mode (blockrun #329,
|
|
1162
|
+
// 2026-08-03). 17% cheaper output than 3.5 Flash.
|
|
1163
|
+
id: "google/gemini-3.6-flash",
|
|
1164
|
+
name: "Gemini 3.6 Flash",
|
|
1165
|
+
version: "3.6",
|
|
1166
|
+
inputPrice: 1.5,
|
|
1167
|
+
outputPrice: 7.5,
|
|
1168
|
+
contextWindow: 1048576,
|
|
1169
|
+
maxOutput: 65536,
|
|
1170
|
+
reasoning: true,
|
|
1171
|
+
vision: true,
|
|
1172
|
+
toolCalling: true
|
|
1173
|
+
},
|
|
1174
|
+
{
|
|
1175
|
+
// Repriced 0.5/3.0 → 1.5/9.0 (blockrun #304: it was billed at 1/3 of
|
|
1176
|
+
// Google's real rate).
|
|
1072
1177
|
id: "google/gemini-3.5-flash",
|
|
1073
1178
|
name: "Gemini 3.5 Flash",
|
|
1074
1179
|
version: "3.5",
|
|
1075
|
-
inputPrice:
|
|
1076
|
-
outputPrice:
|
|
1180
|
+
inputPrice: 1.5,
|
|
1181
|
+
outputPrice: 9,
|
|
1077
1182
|
contextWindow: 1048576,
|
|
1078
1183
|
maxOutput: 65536,
|
|
1079
1184
|
reasoning: true,
|
|
1080
1185
|
vision: true,
|
|
1081
1186
|
toolCalling: true
|
|
1082
1187
|
},
|
|
1188
|
+
{
|
|
1189
|
+
// Ultra-fast lightweight tier with thinking mode (blockrun #329).
|
|
1190
|
+
id: "google/gemini-3.5-flash-lite",
|
|
1191
|
+
name: "Gemini 3.5 Flash Lite",
|
|
1192
|
+
version: "3.5",
|
|
1193
|
+
inputPrice: 0.3,
|
|
1194
|
+
outputPrice: 2.5,
|
|
1195
|
+
contextWindow: 1048576,
|
|
1196
|
+
maxOutput: 65536,
|
|
1197
|
+
reasoning: true,
|
|
1198
|
+
toolCalling: true
|
|
1199
|
+
},
|
|
1083
1200
|
{
|
|
1084
1201
|
id: "google/gemini-3-flash-preview",
|
|
1085
1202
|
name: "Gemini 3 Flash Preview",
|
|
@@ -1136,12 +1253,14 @@ var init_models = __esm({
|
|
|
1136
1253
|
},
|
|
1137
1254
|
// DeepSeek — V4 family (2026-04-24). The legacy deepseek-chat/reasoner
|
|
1138
1255
|
// aliases are served upstream as V4 Flash non-thinking / thinking modes.
|
|
1256
|
+
// Repriced 0.20/0.40 → 0.14/0.28 (blockrun #354: DeepSeek's published
|
|
1257
|
+
// deepseek-v4-flash rate; the old numbers were 1.43x the real rate).
|
|
1139
1258
|
{
|
|
1140
1259
|
id: "deepseek/deepseek-chat",
|
|
1141
1260
|
name: "DeepSeek V4 Flash Chat",
|
|
1142
1261
|
version: "4-flash",
|
|
1143
|
-
inputPrice: 0.
|
|
1144
|
-
outputPrice: 0.
|
|
1262
|
+
inputPrice: 0.14,
|
|
1263
|
+
outputPrice: 0.28,
|
|
1145
1264
|
contextWindow: 1e6,
|
|
1146
1265
|
maxOutput: 8192,
|
|
1147
1266
|
toolCalling: true
|
|
@@ -1150,8 +1269,8 @@ var init_models = __esm({
|
|
|
1150
1269
|
id: "deepseek/deepseek-reasoner",
|
|
1151
1270
|
name: "DeepSeek V4 Flash Reasoner",
|
|
1152
1271
|
version: "4-flash",
|
|
1153
|
-
inputPrice: 0.
|
|
1154
|
-
outputPrice: 0.
|
|
1272
|
+
inputPrice: 0.14,
|
|
1273
|
+
outputPrice: 0.28,
|
|
1155
1274
|
contextWindow: 1e6,
|
|
1156
1275
|
maxOutput: 8192,
|
|
1157
1276
|
reasoning: true,
|
|
@@ -1230,6 +1349,32 @@ var init_models = __esm({
|
|
|
1230
1349
|
agentic: true,
|
|
1231
1350
|
toolCalling: true
|
|
1232
1351
|
},
|
|
1352
|
+
// Qwen3.7 Plus/Flash (blockrun #329, 2026-08-03): the balanced and
|
|
1353
|
+
// latency tiers under Max. Plus genuinely caps output at 131072 while
|
|
1354
|
+
// Flash and Max cap at 65536 (endpoint-probed upstream).
|
|
1355
|
+
{
|
|
1356
|
+
id: "qwen/qwen3.7-plus",
|
|
1357
|
+
name: "Qwen3.7 Plus",
|
|
1358
|
+
version: "3.7-plus",
|
|
1359
|
+
inputPrice: 0.32,
|
|
1360
|
+
outputPrice: 1.28,
|
|
1361
|
+
contextWindow: 1e6,
|
|
1362
|
+
maxOutput: 131072,
|
|
1363
|
+
reasoning: true,
|
|
1364
|
+
agentic: true,
|
|
1365
|
+
toolCalling: true
|
|
1366
|
+
},
|
|
1367
|
+
{
|
|
1368
|
+
id: "qwen/qwen3.7-flash",
|
|
1369
|
+
name: "Qwen3.7 Flash",
|
|
1370
|
+
version: "3.7-flash",
|
|
1371
|
+
inputPrice: 0.03,
|
|
1372
|
+
outputPrice: 0.13,
|
|
1373
|
+
contextWindow: 1e6,
|
|
1374
|
+
maxOutput: 65536,
|
|
1375
|
+
reasoning: true,
|
|
1376
|
+
toolCalling: true
|
|
1377
|
+
},
|
|
1233
1378
|
// Kimi K2.6 — superseded by K2.7 (2026-06-13), hidden on BlockRun but still routable.
|
|
1234
1379
|
{
|
|
1235
1380
|
id: "moonshot/kimi-k2.6",
|
|
@@ -1441,6 +1586,34 @@ var init_models = __esm({
|
|
|
1441
1586
|
agentic: true,
|
|
1442
1587
|
toolCalling: true
|
|
1443
1588
|
},
|
|
1589
|
+
// Tencent + Xiaomi (blockrun 2026-07-25): the two largest real demand gaps
|
|
1590
|
+
// in the catalog — Hy3 held the #1 usage slot on the biggest public
|
|
1591
|
+
// aggregator for 19 days; MiMo ran ~22% weekly share in April. Both are
|
|
1592
|
+
// reasoning models resold via blockrun's OpenRouter pool. toolCalling
|
|
1593
|
+
// LIVE-VERIFIED 2026-08-12: both returned a structured tool_calls array
|
|
1594
|
+
// (name + valid JSON args, finish_reason "tool_calls") through the gateway.
|
|
1595
|
+
{
|
|
1596
|
+
id: "tencent/hy3",
|
|
1597
|
+
name: "Tencent Hy3",
|
|
1598
|
+
version: "hy3",
|
|
1599
|
+
inputPrice: 0.132,
|
|
1600
|
+
outputPrice: 0.528,
|
|
1601
|
+
contextWindow: 262144,
|
|
1602
|
+
maxOutput: 128e3,
|
|
1603
|
+
reasoning: true,
|
|
1604
|
+
toolCalling: true
|
|
1605
|
+
},
|
|
1606
|
+
{
|
|
1607
|
+
id: "xiaomi/mimo-v2.5-pro",
|
|
1608
|
+
name: "Xiaomi MiMo-V2.5 Pro",
|
|
1609
|
+
version: "v2.5-pro",
|
|
1610
|
+
inputPrice: 0.435,
|
|
1611
|
+
outputPrice: 0.87,
|
|
1612
|
+
contextWindow: 1048576,
|
|
1613
|
+
maxOutput: 131072,
|
|
1614
|
+
reasoning: true,
|
|
1615
|
+
toolCalling: true
|
|
1616
|
+
},
|
|
1444
1617
|
// MiniMax
|
|
1445
1618
|
{
|
|
1446
1619
|
id: "minimax/minimax-m3",
|
|
@@ -1514,11 +1687,13 @@ var init_models = __esm({
|
|
|
1514
1687
|
maxOutput: 16384
|
|
1515
1688
|
},
|
|
1516
1689
|
{
|
|
1517
|
-
// V4 Flash: 284B / 13B active MoE, 1M context.
|
|
1518
|
-
//
|
|
1519
|
-
//
|
|
1520
|
-
//
|
|
1521
|
-
//
|
|
1690
|
+
// V4 Flash: 284B / 13B active MoE, 1M context. EOL'd 2026-08-12 — NVIDIA
|
|
1691
|
+
// published 410 Gone ("has reached its end of life") on both probe passes
|
|
1692
|
+
// and blockrun's prod gate fired [ALERT][free-model-dead] kind=gone twice
|
|
1693
|
+
// that morning. The whole nvidia/deepseek-* family is dead upstream; there
|
|
1694
|
+
// is no free DeepSeek left anywhere. Blockrun hid it and redirects calls to
|
|
1695
|
+
// gpt-oss-120b. Entry kept so explicit pins stay routable; off the picker,
|
|
1696
|
+
// the FREE_MODELS cascade, and the router fallback chains.
|
|
1522
1697
|
id: "free/deepseek-v4-flash",
|
|
1523
1698
|
name: "[Free] DeepSeek V4 Flash",
|
|
1524
1699
|
version: "v4-flash",
|
|
@@ -1602,7 +1777,8 @@ var init_models = __esm({
|
|
|
1602
1777
|
// 2026-06-16: BlockRun's 2026-06-14 free-tier refresh (self-healing health gate
|
|
1603
1778
|
// + probe-verified lineup, blockrun commit 5817ecd) added these live NVIDIA free
|
|
1604
1779
|
// models. Status per blockrun's 2026-07-17 live re-probe: qwen3-coder-480b and
|
|
1605
|
-
// glm-4.7 stay dead (server-redirected); deepseek-v4-flash recovered
|
|
1780
|
+
// glm-4.7 stay dead (server-redirected); deepseek-v4-flash recovered then
|
|
1781
|
+
// EOL'd for good 2026-08-12 (see above).
|
|
1606
1782
|
{
|
|
1607
1783
|
// Qwen3-Next 80B (A3B active MoE): 262K context. DIED in the 2026-07-17
|
|
1608
1784
|
// re-probe (">60s / DEGRADED") — hidden upstream, gateway redirects pinned
|
|
@@ -1707,11 +1883,12 @@ var init_models = __esm({
|
|
|
1707
1883
|
},
|
|
1708
1884
|
{
|
|
1709
1885
|
// Flat-rate launch promo ended 2026-06-06 — backend bills per-token now.
|
|
1886
|
+
// Repriced 0.60/1.92 → 1.00/3.20 (blockrun #354 correction).
|
|
1710
1887
|
id: "zai/glm-5",
|
|
1711
1888
|
name: "GLM-5",
|
|
1712
1889
|
version: "5",
|
|
1713
|
-
inputPrice:
|
|
1714
|
-
outputPrice:
|
|
1890
|
+
inputPrice: 1,
|
|
1891
|
+
outputPrice: 3.2,
|
|
1715
1892
|
contextWindow: 2e5,
|
|
1716
1893
|
maxOutput: 128e3,
|
|
1717
1894
|
reasoning: true,
|
|
@@ -37866,10 +38043,9 @@ ${value.slice(-(scanLimit - prefixLength))}`;
|
|
|
37866
38043
|
fallback: [
|
|
37867
38044
|
"free/gpt-oss-20b",
|
|
37868
38045
|
// FREE — smaller, faster
|
|
37869
|
-
|
|
37870
|
-
//
|
|
37871
|
-
//
|
|
37872
|
-
// gpt-oss-120b/20b already head this chain, so the rung is dropped, not retargeted.
|
|
38046
|
+
// deepseek-v4-flash and seed-oss-36b sat here until NVIDIA EOL'd them
|
|
38047
|
+
// (410; 2026-08-12 and 2026-08-03 respectively). gpt-oss-120b/20b already
|
|
38048
|
+
// head this chain, so the rungs are dropped, not retargeted.
|
|
37873
38049
|
"google/gemini-3.1-flash-lite",
|
|
37874
38050
|
// $0.25/$1.50 — newest flash-lite
|
|
37875
38051
|
"openai/gpt-5.4-nano",
|
|
@@ -92400,8 +92576,6 @@ var init_proxy = __esm({
|
|
|
92400
92576
|
FREE_MODELS = /* @__PURE__ */ new Set([
|
|
92401
92577
|
"free/gpt-oss-120b",
|
|
92402
92578
|
"free/gpt-oss-20b",
|
|
92403
|
-
"free/deepseek-v4-flash",
|
|
92404
|
-
// 1M ctx; slow (~10 tok/s, 07-28 probe) but completes
|
|
92405
92579
|
"free/mistral-nemotron",
|
|
92406
92580
|
// strong instruction following
|
|
92407
92581
|
"free/step-3.7-flash",
|
|
@@ -92498,6 +92672,8 @@ var init_proxy = __esm({
|
|
|
92498
92672
|
sizes: { "1024x1024": 0.045, "2048x1024": 0.045, "2048x2048": 0.09 }
|
|
92499
92673
|
},
|
|
92500
92674
|
"google/nano-banana": { default: 0.05 },
|
|
92675
|
+
// Nano Banana 2 (Gemini 3.1 Flash imagegen, blockrun #329): $0.09/image at 1K.
|
|
92676
|
+
"google/nano-banana-2": { default: 0.09, sizes: { "1024x1024": 0.09 } },
|
|
92501
92677
|
"google/nano-banana-pro": {
|
|
92502
92678
|
default: 0.1,
|
|
92503
92679
|
sizes: { "1024x1024": 0.1, "2048x2048": 0.1, "4096x4096": 0.15 }
|
|
@@ -92518,13 +92694,32 @@ var init_proxy = __esm({
|
|
|
92518
92694
|
};
|
|
92519
92695
|
VIDEO_PRICING = {
|
|
92520
92696
|
"xai/grok-imagine-video": { pricePerSecond: 0.05, defaultDurationSeconds: 8 },
|
|
92521
|
-
|
|
92697
|
+
// Seedance rates re-synced 2026-08-08 from blockrun's models.ts after the
|
|
92698
|
+
// family reprice (blockrun #351/#354). All three were carrying pre-reprice
|
|
92699
|
+
// numbers, which only ever skewed the usage log — the charge comes from the
|
|
92700
|
+
// x402 header, and estimateVideoCost is the fallback for when it is absent.
|
|
92701
|
+
"bytedance/seedance-1.5-pro": { pricePerSecond: 0.07, defaultDurationSeconds: 5 },
|
|
92522
92702
|
"bytedance/seedance-2.0-fast": {
|
|
92523
|
-
pricePerSecond: 0.
|
|
92703
|
+
pricePerSecond: 0.165,
|
|
92524
92704
|
defaultDurationSeconds: 5
|
|
92525
92705
|
},
|
|
92526
92706
|
"bytedance/seedance-2.0": {
|
|
92527
|
-
pricePerSecond: 0.
|
|
92707
|
+
pricePerSecond: 0.227,
|
|
92708
|
+
defaultDurationSeconds: 5
|
|
92709
|
+
},
|
|
92710
|
+
// Seedance 2.0 Mini (blockrun #366/#368, 2026-08-12): 720p + synced audio at
|
|
92711
|
+
// half the flagship rate, 480p/720p only, 4–15s. blockrun signs the 3dp-floored
|
|
92712
|
+
// per-second value (0.079, not the raw 0.0797) — mirror the signed number.
|
|
92713
|
+
"bytedance/seedance-2.0-mini": {
|
|
92714
|
+
pricePerSecond: 0.079,
|
|
92715
|
+
defaultDurationSeconds: 5
|
|
92716
|
+
},
|
|
92717
|
+
// Seedance 2.5: 720p with synced audio, up to 30s. Not a replacement for 2.0
|
|
92718
|
+
// Pro — that is still the one for 1080p/4K. No OpenRouter failover exists for
|
|
92719
|
+
// 2.5, so a token360 outage surfaces as an error instead of quietly rendering
|
|
92720
|
+
// on another model.
|
|
92721
|
+
"bytedance/seedance-2.5": {
|
|
92722
|
+
pricePerSecond: 0.315,
|
|
92528
92723
|
defaultDurationSeconds: 5
|
|
92529
92724
|
},
|
|
92530
92725
|
// Sora 2 via Azure AI Foundry — flat $0.10/s for both t2v and i2v.
|
|
@@ -225799,7 +225994,9 @@ function buildVideoGenerationProvider() {
|
|
|
225799
225994
|
"xai/grok-imagine-video",
|
|
225800
225995
|
"bytedance/seedance-1.5-pro",
|
|
225801
225996
|
"bytedance/seedance-2.0-fast",
|
|
225802
|
-
"bytedance/seedance-2.0"
|
|
225997
|
+
"bytedance/seedance-2.0",
|
|
225998
|
+
"bytedance/seedance-2.0-mini",
|
|
225999
|
+
"bytedance/seedance-2.5"
|
|
225803
226000
|
],
|
|
225804
226001
|
capabilities: {
|
|
225805
226002
|
maxVideos: 1,
|
|
@@ -226299,7 +226496,7 @@ var init_index = __esm({
|
|
|
226299
226496
|
const parsed = parseGenArgs(ctx.args ?? "");
|
|
226300
226497
|
if (!parsed.prompt) {
|
|
226301
226498
|
return {
|
|
226302
|
-
text: "Usage: `/cr-imagegen <prompt> [--model=<alias>] [--size=1024x1024] [--n=1]`\n\nAliases: `nano-banana` (default), `banana-pro`, `dalle`, `gpt-image`, `flux`, `grok-imagine`, `grok-imagine-pro`, `cogview`."
|
|
226499
|
+
text: "Usage: `/cr-imagegen <prompt> [--model=<alias>] [--size=1024x1024] [--n=1]`\n\nAliases: `nano-banana` (default), `banana-2` (Gemini 3.1 Flash quality), `banana-pro`, `dalle`, `gpt-image`, `flux`, `grok-imagine`, `grok-imagine-pro`, `cogview`."
|
|
226303
226500
|
};
|
|
226304
226501
|
}
|
|
226305
226502
|
const model = resolveModelAlias(parsed.model ?? "nano-banana");
|
|
@@ -226351,7 +226548,7 @@ ${errText}`
|
|
|
226351
226548
|
const parsed = parseGenArgs(ctx.args ?? "");
|
|
226352
226549
|
if (!parsed.prompt) {
|
|
226353
226550
|
return {
|
|
226354
|
-
text: "Usage: `/videogen <prompt> [--model=<alias>] [--duration=5|8|10]`\n\nAliases: `seedance` (1.5-pro, default \u2014 cheapest), `seedance-2-fast`, `seedance-2`, `grok-video`.\n\n\u23F1\uFE0F Generation takes 60\u2013180 seconds. Payment settles only on success."
|
|
226551
|
+
text: "Usage: `/videogen <prompt> [--model=<alias>] [--duration=5|8|10]`\n\nAliases: `seedance` (1.5-pro, default \u2014 cheapest), `seedance-2-fast`, `seedance-2`, `seedance-2-mini` (720p + audio, half the flagship rate), `seedance-2.5` (720p + synced audio, long-form), `grok-video`.\n\n\u23F1\uFE0F Generation takes 60\u2013180 seconds. Payment settles only on success."
|
|
226355
226552
|
};
|
|
226356
226553
|
}
|
|
226357
226554
|
const model = resolveModelAlias(parsed.model ?? "seedance");
|
package/dist/router/index.js
CHANGED
|
@@ -3008,10 +3008,9 @@ var DEFAULT_ROUTING_CONFIG = {
|
|
|
3008
3008
|
fallback: [
|
|
3009
3009
|
"free/gpt-oss-20b",
|
|
3010
3010
|
// FREE — smaller, faster
|
|
3011
|
-
|
|
3012
|
-
//
|
|
3013
|
-
//
|
|
3014
|
-
// gpt-oss-120b/20b already head this chain, so the rung is dropped, not retargeted.
|
|
3011
|
+
// deepseek-v4-flash and seed-oss-36b sat here until NVIDIA EOL'd them
|
|
3012
|
+
// (410; 2026-08-12 and 2026-08-03 respectively). gpt-oss-120b/20b already
|
|
3013
|
+
// head this chain, so the rungs are dropped, not retargeted.
|
|
3015
3014
|
"google/gemini-3.1-flash-lite",
|
|
3016
3015
|
// $0.25/$1.50 — newest flash-lite
|
|
3017
3016
|
"openai/gpt-5.4-nano",
|
|
@@ -50,7 +50,7 @@ This is where you're paying for real value:
|
|
|
50
50
|
|
|
51
51
|
## The Solution: ClawRouter
|
|
52
52
|
|
|
53
|
-
[ClawRouter](https://github.com/BlockRunAI/ClawRouter) is an open-source local proxy that sits between your app and <!-- br:models.chatVisible -->
|
|
53
|
+
[ClawRouter](https://github.com/BlockRunAI/ClawRouter) is an open-source local proxy that sits between your app and <!-- br:models.chatVisible -->70<!-- /br:models.chatVisible --> AI models. It saves you money in three ways: **smart routing**, **token optimization**, and **response caching**.
|
|
54
54
|
|
|
55
55
|
```
|
|
56
56
|
┌─────────────┐ ┌──────────────────────────────┐ ┌──────────────────┐
|
|
@@ -31,7 +31,7 @@ This is exactly the problem [ClawRouter](https://github.com/BlockRunAI/ClawRoute
|
|
|
31
31
|
|
|
32
32
|
## ClawRouter: Smart Routing for Agents
|
|
33
33
|
|
|
34
|
-
ClawRouter is an open-source local proxy that sits between your agent and <!-- br:models.chatVisible -->
|
|
34
|
+
ClawRouter is an open-source local proxy that sits between your agent and <!-- br:models.chatVisible -->70<!-- /br:models.chatVisible --> LLM models across 9 providers. It analyzes every request across 15 dimensions and routes it to the cheapest model that can handle it — in under 1ms, entirely locally.
|
|
35
35
|
|
|
36
36
|
```
|
|
37
37
|
Your Agent → ClawRouter (localhost:8402) → Best model for the job
|
|
@@ -56,7 +56,7 @@ From 20,000+ production requests:
|
|
|
56
56
|
| Free models (trivial tasks) | 12.8% | $0.00 |
|
|
57
57
|
| Others | 13.8% | varies |
|
|
58
58
|
|
|
59
|
-
**Result: <!-- br:savings.autoVsBaselinePct -->
|
|
59
|
+
**Result: <!-- br:savings.autoVsBaselinePct -->88<!-- /br:savings.autoVsBaselinePct -->% cheaper than pinning Claude Opus 5 for every request** — the published figure, priced on a stated workload mix rather than estimated.
|
|
60
60
|
|
|
61
61
|
A typical user running 10K mixed requests/month:
|
|
62
62
|
|
|
@@ -74,7 +74,7 @@ Then point your agent at `http://localhost:8402/v1/` with any OpenAI-compatible
|
|
|
74
74
|
|
|
75
75
|
- **No API keys to manage** — wallet-based cryptographic auth
|
|
76
76
|
- **No subscriptions** — pay per request in USDC (Base or Solana)
|
|
77
|
-
- **No vendor lock-in** — <!-- br:models.chatVisible -->
|
|
77
|
+
- **No vendor lock-in** — <!-- br:models.chatVisible -->70<!-- /br:models.chatVisible --> models, switch anytime
|
|
78
78
|
- **You control your wallet** — non-custodial, funds never held by a third party
|
|
79
79
|
- **Budget caps** — set a max spend per session, ClawRouter gracefully downgrades when budget runs low
|
|
80
80
|
- **Token compression** — 7-layer pipeline reduces token costs by 7–40% before they hit any provider
|
|
@@ -135,7 +135,7 @@ Less context repeated = fewer tokens = lower cost. Agents that need to recall ea
|
|
|
135
135
|
|
|
136
136
|
### 7. x402 Micropayments — Wallet-Based Budget Control
|
|
137
137
|
|
|
138
|
-
<p align="center"><img src="assets/blockrun-clawrouter-x402-usdc-micropayment-wallet-budget-control.png" alt="Budget limits enforced by physical construction — wallet loaded via Base/Solana, pay per call across <!-- br:models.chatVisible -->
|
|
138
|
+
<p align="center"><img src="assets/blockrun-clawrouter-x402-usdc-micropayment-wallet-budget-control.png" alt="Budget limits enforced by physical construction — wallet loaded via Base/Solana, pay per call across <!-- br:models.chatVisible -->70<!-- /br:models.chatVisible --> models, balance hits zero and the valve shuts cleanly" width="720"></p>
|
|
139
139
|
|
|
140
140
|
ClawRouter pays for inference via [x402](https://x402.org/) USDC micropayments (Base or Solana). You load a wallet. Each inference call costs exactly what it costs. When the wallet runs low, requests stop cleanly.
|
|
141
141
|
|
|
@@ -222,7 +222,7 @@ OpenRouter doesn't always pass through provider-specific features correctly. Ima
|
|
|
222
222
|
|
|
223
223
|
**Direct provider routing.** ClawRouter routes through BlockRun's API directly to providers — not through a second aggregator. One hop, not two. Provider-specific features work because there's no middleman translating them.
|
|
224
224
|
|
|
225
|
-

|
|
226
226
|
|
|
227
227
|
---
|
|
228
228
|
|
|
@@ -240,7 +240,7 @@ When new models launch, OpenRouter's catalog lags. Users configure a model that
|
|
|
240
240
|
|
|
241
241
|
### How ClawRouter Solves This
|
|
242
242
|
|
|
243
|
-
ClawRouter maintains a curated catalog of <!-- br:models.chatVisible -->
|
|
243
|
+
ClawRouter maintains a curated catalog of <!-- br:models.chatVisible -->70<!-- /br:models.chatVisible --> models across 9 providers (including 9 free models), updated with each release. Delisted models have automatic redirect aliases:
|
|
244
244
|
|
|
245
245
|
```typescript
|
|
246
246
|
// Delisted models redirect automatically
|
|
@@ -268,10 +268,10 @@ No silent drops. No stale catalog. Models are benchmarked for speed, quality, an
|
|
|
268
268
|
| **Rate limits** | Per-key, shared | Per-wallet, independent |
|
|
269
269
|
| **Vision support** | Images sometimes dropped | Auto-detected, vision-only fallback |
|
|
270
270
|
| **Tool calling** | Silent failures with some models | Flag-based filtering, guaranteed support |
|
|
271
|
-
| **Model catalog** | Laggy, silent drops | Curated <!-- br:models.chatVisible -->
|
|
271
|
+
| **Model catalog** | Laggy, silent drops | Curated <!-- br:models.chatVisible -->70<!-- /br:models.chatVisible --> models, redirect aliases |
|
|
272
272
|
| **Budget control** | Monthly invoice | Per-session cap (`maxCostPerRun`) |
|
|
273
273
|
| **Setup** | Create account, paste key | Agent generates wallet, auto-configured |
|
|
274
|
-
| **Average cost** | $25/M tokens (Opus direct) | auto-routed = **<!-- br:savings.autoVsBaselinePct -->
|
|
274
|
+
| **Average cost** | $25/M tokens (Opus direct) | auto-routed = **<!-- br:savings.autoVsBaselinePct -->88<!-- /br:savings.autoVsBaselinePct -->% savings** |
|
|
275
275
|
|
|
276
276
|

|
|
277
277
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blockrun/clawrouter",
|
|
3
|
-
"version": "0.12.
|
|
4
|
-
"description": "Smart LLM router — save
|
|
3
|
+
"version": "0.12.245",
|
|
4
|
+
"description": "Smart LLM router — save 88% on inference costs. 70 models (5 free), one wallet, x402 micropayments.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
}
|
|
111
111
|
},
|
|
112
112
|
"devDependencies": {
|
|
113
|
-
"@blockrun/router-core": "https://codeload.github.com/BlockRunAI/router-core/tar.gz/
|
|
113
|
+
"@blockrun/router-core": "https://codeload.github.com/BlockRunAI/router-core/tar.gz/18bf4abc7e34599e51595b90703c385f53d4f4a6",
|
|
114
114
|
"@eslint/js": "^10.0.1",
|
|
115
115
|
"eslint": "^10.2.0",
|
|
116
116
|
"openclaw": "^2026.7.2-beta.7",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: clawrouter
|
|
3
|
-
description: Hosted-gateway LLM router — save
|
|
3
|
+
description: Hosted-gateway LLM router — save 88% on inference costs. A local proxy that forwards each request to the blockrun.ai gateway, which routes to the cheapest capable model across 70 models from OpenAI, Anthropic, Google, DeepSeek, xAI, NVIDIA, and more. 5 free NVIDIA models included. Also exposes realtime market data (global stocks, crypto, FX, commodities), Twitter/X intelligence, prediction-market data across Polymarket, Kalshi, Limitless, Opinion, Predict.Fun, dFlow + UMA oracle resolution + wallet identity & clustering, phone-number intelligence (carrier + SIM-swap fraud detection) plus AI-powered outbound voice calls (Twilio + Bland.ai), AND the Surf unified crypto data API (84 endpoints — CEX/DEX, on-chain SQL over 80+ ClickHouse tables, 100M+ labeled wallets, prediction markets, social/CT mindshare, news, VC fund intel) as built-in agent tools. Not a local-inference tool — prompts are sent to the blockrun.ai gateway.
|
|
4
4
|
triggers:
|
|
5
5
|
- "clawrouter"
|
|
6
6
|
- "claw router"
|
|
@@ -53,7 +53,7 @@ metadata:
|
|
|
53
53
|
|
|
54
54
|
# ClawRouter
|
|
55
55
|
|
|
56
|
-
Hosted-gateway LLM router that saves <!-- br:savings.autoVsBaselinePct -->
|
|
56
|
+
Hosted-gateway LLM router that saves <!-- br:savings.autoVsBaselinePct -->88<!-- /br:savings.autoVsBaselinePct -->% on inference costs by forwarding each request to the blockrun.ai gateway, which picks the cheapest model capable of handling it across <!-- br:models.chatVisible -->70<!-- /br:models.chatVisible --> models from 9 providers (<!-- br:models.free -->5<!-- /br:models.free --> free NVIDIA models). All billing flows through one USDC wallet; you do not hold provider API keys.
|
|
57
57
|
|
|
58
58
|
**This is not a local-inference tool.** ClawRouter is a thin local proxy. Your prompts are sent over HTTPS to the blockrun.ai gateway for model execution. If your workload requires inference that never leaves your machine, use a local runtime like Ollama — ClawRouter is not the right tool for that use case.
|
|
59
59
|
|
|
@@ -141,7 +141,7 @@ Rules handle ~~80% of requests in <1ms. Only ambiguous queries hit the LLM class
|
|
|
141
141
|
|
|
142
142
|
## Available Models
|
|
143
143
|
|
|
144
|
-
<!-- br:models.chatVisible -->
|
|
144
|
+
<!-- br:models.chatVisible -->70<!-- /br:models.chatVisible --> models including: gpt-5.6-terra [balanced, stable default], gpt-5.6-sol [flagship], gpt-5.6-luna [cost-efficient], gpt-5.6-sol/terra/luna-pro [pro reasoning tiers], gpt-5.5, gpt-5.5-pro [max compute], chat-latest [ChatGPT Instant], gpt-5.4, gpt-4o, o3, claude-fable-5, claude-opus-5 [Anthropic flagship, 1M ctx], claude-opus-4.8, claude-opus-4.7, claude-opus-4.5, claude-sonnet-5, claude-sonnet-4.6, gemini-3.1-pro, gemini-3.6-flash, gemini-3.5-flash-lite, gemini-2.5-flash, deepseek-v4-pro, deepseek-chat, grok-4.5, grok-4.3, grok-build-0.1, kimi-k3 [1M ctx flagship], kimi-k2.7, qwen3.7-max [Qwen flagship, 1M ctx], qwen3.7-plus, qwen3.7-flash, hy3 [Tencent], mimo [Xiaomi MiMo-V2.5 Pro, 1M ctx], and 5 free NVIDIA models (nemotron-3-nano-omni-30b-a3b-reasoning [vision], mistral-nemotron, step-3.7-flash, nemotron-nano-9b-v2, nemotron-nano-12b-v2-vl [vision]).
|
|
145
145
|
|
|
146
146
|
## Built-in Agent Tools
|
|
147
147
|
|