@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/dist/cli.js CHANGED
@@ -36252,10 +36252,9 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36252
36252
  fallback: [
36253
36253
  "free/gpt-oss-20b",
36254
36254
  // FREE — smaller, faster
36255
- "free/deepseek-v4-flash",
36256
- // FREE — 1M ctx; slow (~10 tok/s, 07-28 probe) but completes
36257
- // seed-oss-36b sat here as the free coder until it EOL'd 2026-08-03 (HTTP 410).
36258
- // gpt-oss-120b/20b already head this chain, so the rung is dropped, not retargeted.
36255
+ // deepseek-v4-flash and seed-oss-36b sat here until NVIDIA EOL'd them
36256
+ // (410; 2026-08-12 and 2026-08-03 respectively). gpt-oss-120b/20b already
36257
+ // head this chain, so the rungs are dropped, not retargeted.
36259
36258
  "google/gemini-3.1-flash-lite",
36260
36259
  // $0.25/$1.50 — newest flash-lite
36261
36260
  "openai/gpt-5.4-nano",
@@ -36564,7 +36563,6 @@ var init_top_models = __esm({
36564
36563
  "deepseek/deepseek-v4-pro",
36565
36564
  "deepseek/deepseek-chat",
36566
36565
  "deepseek/deepseek-reasoner",
36567
- "free/deepseek-v4-flash",
36568
36566
  "free/nemotron-3-nano-omni-30b-a3b-reasoning",
36569
36567
  "free/mistral-nemotron",
36570
36568
  "free/step-3.7-flash",
@@ -36764,6 +36762,14 @@ var init_models = __esm({
36764
36762
  "gpt-5.6-sol": "openai/gpt-5.6-sol",
36765
36763
  "gpt-5.6-terra": "openai/gpt-5.6-terra",
36766
36764
  "gpt-5.6-luna": "openai/gpt-5.6-luna",
36765
+ // Pro reasoning tiers (2026-08-03). Explicit pins only — the generic
36766
+ // shorthands above stay on standard Terra.
36767
+ "gpt-5.6-sol-pro": "openai/gpt-5.6-sol-pro",
36768
+ "gpt-5.6-terra-pro": "openai/gpt-5.6-terra-pro",
36769
+ "gpt-5.6-luna-pro": "openai/gpt-5.6-luna-pro",
36770
+ "sol-pro": "openai/gpt-5.6-sol-pro",
36771
+ "terra-pro": "openai/gpt-5.6-terra-pro",
36772
+ "luna-pro": "openai/gpt-5.6-luna-pro",
36767
36773
  "gpt-5.5": "openai/gpt-5.5",
36768
36774
  "gpt-5.5-pro": "openai/gpt-5.5-pro",
36769
36775
  // ChatGPT Instant. `chat-latest` is a rolling upstream id — pinning it means
@@ -36815,6 +36821,20 @@ var init_models = __esm({
36815
36821
  "qwen3.7-max": "qwen/qwen3.7-max",
36816
36822
  "qwen-3.7-max": "qwen/qwen3.7-max",
36817
36823
  "qwen3-7-max": "qwen/qwen3.7-max",
36824
+ // Plus/Flash tiers (2026-08-03) — explicit pins, same rule as Max.
36825
+ "qwen3.7-plus": "qwen/qwen3.7-plus",
36826
+ "qwen-3.7-plus": "qwen/qwen3.7-plus",
36827
+ "qwen3.7-flash": "qwen/qwen3.7-flash",
36828
+ "qwen-3.7-flash": "qwen/qwen3.7-flash",
36829
+ // Tencent + Xiaomi (2026-07-25) — each maker has exactly one model, so the
36830
+ // bare maker names are safe to bind.
36831
+ hy3: "tencent/hy3",
36832
+ tencent: "tencent/hy3",
36833
+ hunyuan: "tencent/hy3",
36834
+ mimo: "xiaomi/mimo-v2.5-pro",
36835
+ "mimo-v2.5-pro": "xiaomi/mimo-v2.5-pro",
36836
+ "mimo-v2.5": "xiaomi/mimo-v2.5-pro",
36837
+ xiaomi: "xiaomi/mimo-v2.5-pro",
36818
36838
  // Google
36819
36839
  // gemini-3-pro-preview delisted by Google 2026-06-06 — mirror the gateway
36820
36840
  // redirect to its successor so pinned callers land on 3.1-pro, not an error.
@@ -36830,7 +36850,10 @@ var init_models = __esm({
36830
36850
  flash: "google/gemini-2.5-flash",
36831
36851
  "gemini-3.1-pro-preview": "google/gemini-3.1-pro",
36832
36852
  "google/gemini-3.1-pro-preview": "google/gemini-3.1-pro",
36853
+ "gemini-3.6-flash": "google/gemini-3.6-flash",
36854
+ "gemini-3.6": "google/gemini-3.6-flash",
36833
36855
  "gemini-3.5-flash": "google/gemini-3.5-flash",
36856
+ "gemini-3.5-flash-lite": "google/gemini-3.5-flash-lite",
36834
36857
  "gemini-3.1-flash-lite": "google/gemini-3.1-flash-lite",
36835
36858
  "gemini-2.5-flash-lite": "google/gemini-2.5-flash-lite",
36836
36859
  // xAI — grok-4.3 is the public flagship since 2026-06-04 (grok-3 and the
@@ -36866,12 +36889,17 @@ var init_models = __esm({
36866
36889
  "gpt-20b": "free/gpt-oss-20b",
36867
36890
  "nvidia/gpt-oss-120b": "free/gpt-oss-120b",
36868
36891
  "nvidia/gpt-oss-20b": "free/gpt-oss-20b",
36869
- // deepseek family → v4-flash, matching blockrun's 2026-07-17 redirect map
36870
- // (v4-flash recovered in the live re-probe; v3.2/v4-pro stay dead upstream).
36871
- "nvidia/deepseek-v3.2": "free/deepseek-v4-flash",
36872
- "free/deepseek-v3.2": "free/deepseek-v4-flash",
36873
- "nvidia/deepseek-v4-pro": "free/deepseek-v4-flash",
36874
- "free/deepseek-v4-pro": "free/deepseek-v4-flash",
36892
+ // deepseek free family: v4-flash EOL'd 2026-08-12 (HTTP 410 from NVIDIA on both
36893
+ // probe passes; prod gate fired [ALERT][free-model-dead] kind=gone twice that
36894
+ // morning). The whole nvidia/deepseek-* family is now dead upstream — blockrun
36895
+ // hid flash and retargeted v3.2/v4-pro (whose redirects chained through flash)
36896
+ // straight to gpt-oss-120b. Ids naming v4-flash itself keep the real id (the
36897
+ // gateway redirects them); the v3.2/v4-pro ids follow blockrun's retarget
36898
+ // rather than chaining through a second dead model.
36899
+ "nvidia/deepseek-v3.2": "free/gpt-oss-120b",
36900
+ "free/deepseek-v3.2": "free/gpt-oss-120b",
36901
+ "nvidia/deepseek-v4-pro": "free/gpt-oss-120b",
36902
+ "free/deepseek-v4-pro": "free/gpt-oss-120b",
36875
36903
  "nvidia/deepseek-v4-flash": "free/deepseek-v4-flash",
36876
36904
  "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning": "free/nemotron-3-nano-omni-30b-a3b-reasoning",
36877
36905
  // qwen3-coder-480b retired (NVIDIA EOL 2026-06-14). Its server-side redirect used
@@ -36913,13 +36941,16 @@ var init_models = __esm({
36913
36941
  "mistral-large-3-675b": "free/mistral-large-3-675b",
36914
36942
  "qwen3.5-122b": "free/qwen3.5-122b-a10b",
36915
36943
  "qwen3-122b": "free/qwen3.5-122b-a10b",
36916
- // Free model shorthand aliases (v4-flash recovered 2026-07-17 — live again)
36917
- "deepseek-free": "free/deepseek-v4-flash",
36918
- "deepseek-v4-pro": "free/deepseek-v4-flash",
36919
- // free shorthand → flash (pro still hung)
36944
+ // Free model shorthand aliases. v4-flash EOL'd 2026-08-12 — no free DeepSeek
36945
+ // is left anywhere, so the generic "a free deepseek" shorthand follows the
36946
+ // gateway's retarget (blockrun's /free-deepseek page points at gpt-oss-120b
36947
+ // too). Shorthands naming v4-flash itself stay on the real id — the gateway
36948
+ // redirects them, same treatment as seed-oss/mistral-large pins.
36949
+ "deepseek-free": "free/gpt-oss-120b",
36950
+ "deepseek-v4-pro": "free/gpt-oss-120b",
36951
+ // free shorthand; pro dead upstream (410)
36920
36952
  "deepseek-v4-flash": "free/deepseek-v4-flash",
36921
- "v4-pro": "free/deepseek-v4-flash",
36922
- // V4 Pro NVIDIA hung → flash
36953
+ "v4-pro": "free/gpt-oss-120b",
36923
36954
  "v4-flash": "free/deepseek-v4-flash",
36924
36955
  "mistral-free": "free/mistral-nemotron",
36925
36956
  // mistral-large-3-675b EOL'd 2026-07-28 → last live free Mistral (blockrun demoted its /free-mistral primary the same way)
@@ -36999,16 +37030,32 @@ var init_models = __esm({
36999
37030
  banana: "google/nano-banana",
37000
37031
  "banana-pro": "google/nano-banana-pro",
37001
37032
  "nano-banana-pro": "google/nano-banana-pro",
37033
+ // Nano Banana 2 (Gemini 3.1 Flash imagegen, 2026-08-03). Explicit pins —
37034
+ // bare `nano-banana`/`banana` stay on the original.
37035
+ "nano-banana-2": "google/nano-banana-2",
37036
+ "banana-2": "google/nano-banana-2",
37002
37037
  seedream: "bytedance/seedream-5-pro",
37003
37038
  "grok-imagine": "xai/grok-imagine-image",
37004
37039
  "grok-imagine-pro": "xai/grok-imagine-image-pro",
37005
37040
  cogview: "zai/cogview-4",
37006
37041
  // Video generation
37007
37042
  "grok-video": "xai/grok-imagine-video",
37043
+ // Bare `seedance` deliberately stays on 1.5-pro. It is the cheapest of the
37044
+ // family ($0.070/s vs 2.5's $0.315/s) and `/videogen` documents it as
37045
+ // "default — cheapest"; repointing it at the newest tier would 4.5x the
37046
+ // quote for every caller who typed the short name expecting the default.
37047
+ // Same reasoning that keeps `kimi` on K2.7. Pin 2.5 explicitly to opt in.
37008
37048
  seedance: "bytedance/seedance-1.5-pro",
37009
37049
  "seedance-1.5": "bytedance/seedance-1.5-pro",
37010
37050
  "seedance-2-fast": "bytedance/seedance-2.0-fast",
37011
- "seedance-2": "bytedance/seedance-2.0"
37051
+ "seedance-2": "bytedance/seedance-2.0",
37052
+ "seedance-2.5": "bytedance/seedance-2.5",
37053
+ "seedance-2-5": "bytedance/seedance-2.5",
37054
+ // Seedance 2.0 Mini (2026-08-12): 720p + synced audio at half the flagship
37055
+ // rate. Note it is NOT cheaper than 1.5-pro, so bare `seedance` stays put.
37056
+ "seedance-2-mini": "bytedance/seedance-2.0-mini",
37057
+ "seedance-2.0-mini": "bytedance/seedance-2.0-mini",
37058
+ "seedance-mini": "bytedance/seedance-2.0-mini"
37012
37059
  };
37013
37060
  BLOCKRUN_MODELS = [
37014
37061
  // Smart routing meta-models — proxy replaces with actual model
@@ -37116,11 +37163,12 @@ var init_models = __esm({
37116
37163
  toolCalling: true
37117
37164
  },
37118
37165
  {
37166
+ // Terra/Luna repriced 2026-07-30 (OpenAI price cut, blockrun #326).
37119
37167
  id: "openai/gpt-5.6-terra",
37120
37168
  name: "GPT-5.6 Terra",
37121
37169
  version: "5.6",
37122
- inputPrice: 2.5,
37123
- outputPrice: 15,
37170
+ inputPrice: 2,
37171
+ outputPrice: 12,
37124
37172
  contextWindow: 105e4,
37125
37173
  maxOutput: 128e3,
37126
37174
  reasoning: true,
@@ -37132,10 +37180,52 @@ var init_models = __esm({
37132
37180
  id: "openai/gpt-5.6-luna",
37133
37181
  name: "GPT-5.6 Luna",
37134
37182
  version: "5.6",
37183
+ inputPrice: 0.2,
37184
+ outputPrice: 1.2,
37185
+ contextWindow: 105e4,
37186
+ maxOutput: 128e3,
37187
+ vision: true,
37188
+ agentic: true,
37189
+ toolCalling: true
37190
+ },
37191
+ // GPT-5.6 Pro tiers (blockrun #329, 2026-08-03): each base tier with pro
37192
+ // reasoning mode. Terra Pro lands at half the standard Terra rate; Luna Pro
37193
+ // is the budget deep-reasoning tier.
37194
+ {
37195
+ id: "openai/gpt-5.6-sol-pro",
37196
+ name: "GPT-5.6 Sol Pro",
37197
+ version: "5.6",
37198
+ inputPrice: 5,
37199
+ outputPrice: 30,
37200
+ contextWindow: 105e4,
37201
+ maxOutput: 128e3,
37202
+ reasoning: true,
37203
+ vision: true,
37204
+ agentic: true,
37205
+ toolCalling: true
37206
+ },
37207
+ {
37208
+ id: "openai/gpt-5.6-terra-pro",
37209
+ name: "GPT-5.6 Terra Pro",
37210
+ version: "5.6",
37135
37211
  inputPrice: 1,
37136
37212
  outputPrice: 6,
37137
37213
  contextWindow: 105e4,
37138
37214
  maxOutput: 128e3,
37215
+ reasoning: true,
37216
+ vision: true,
37217
+ agentic: true,
37218
+ toolCalling: true
37219
+ },
37220
+ {
37221
+ id: "openai/gpt-5.6-luna-pro",
37222
+ name: "GPT-5.6 Luna Pro",
37223
+ version: "5.6",
37224
+ inputPrice: 0.1,
37225
+ outputPrice: 0.6,
37226
+ contextWindow: 105e4,
37227
+ maxOutput: 128e3,
37228
+ reasoning: true,
37139
37229
  vision: true,
37140
37230
  agentic: true,
37141
37231
  toolCalling: true
@@ -37539,19 +37629,45 @@ var init_models = __esm({
37539
37629
  toolCalling: true
37540
37630
  },
37541
37631
  {
37542
- // Latest-generation Flash with built-in thinking mode (backend
37543
- // 2026-05-19) — frontier-class quality at Flash pricing.
37632
+ // Newest-generation Flash with built-in thinking mode (blockrun #329,
37633
+ // 2026-08-03). 17% cheaper output than 3.5 Flash.
37634
+ id: "google/gemini-3.6-flash",
37635
+ name: "Gemini 3.6 Flash",
37636
+ version: "3.6",
37637
+ inputPrice: 1.5,
37638
+ outputPrice: 7.5,
37639
+ contextWindow: 1048576,
37640
+ maxOutput: 65536,
37641
+ reasoning: true,
37642
+ vision: true,
37643
+ toolCalling: true
37644
+ },
37645
+ {
37646
+ // Repriced 0.5/3.0 → 1.5/9.0 (blockrun #304: it was billed at 1/3 of
37647
+ // Google's real rate).
37544
37648
  id: "google/gemini-3.5-flash",
37545
37649
  name: "Gemini 3.5 Flash",
37546
37650
  version: "3.5",
37547
- inputPrice: 0.5,
37548
- outputPrice: 3,
37651
+ inputPrice: 1.5,
37652
+ outputPrice: 9,
37549
37653
  contextWindow: 1048576,
37550
37654
  maxOutput: 65536,
37551
37655
  reasoning: true,
37552
37656
  vision: true,
37553
37657
  toolCalling: true
37554
37658
  },
37659
+ {
37660
+ // Ultra-fast lightweight tier with thinking mode (blockrun #329).
37661
+ id: "google/gemini-3.5-flash-lite",
37662
+ name: "Gemini 3.5 Flash Lite",
37663
+ version: "3.5",
37664
+ inputPrice: 0.3,
37665
+ outputPrice: 2.5,
37666
+ contextWindow: 1048576,
37667
+ maxOutput: 65536,
37668
+ reasoning: true,
37669
+ toolCalling: true
37670
+ },
37555
37671
  {
37556
37672
  id: "google/gemini-3-flash-preview",
37557
37673
  name: "Gemini 3 Flash Preview",
@@ -37608,12 +37724,14 @@ var init_models = __esm({
37608
37724
  },
37609
37725
  // DeepSeek — V4 family (2026-04-24). The legacy deepseek-chat/reasoner
37610
37726
  // aliases are served upstream as V4 Flash non-thinking / thinking modes.
37727
+ // Repriced 0.20/0.40 → 0.14/0.28 (blockrun #354: DeepSeek's published
37728
+ // deepseek-v4-flash rate; the old numbers were 1.43x the real rate).
37611
37729
  {
37612
37730
  id: "deepseek/deepseek-chat",
37613
37731
  name: "DeepSeek V4 Flash Chat",
37614
37732
  version: "4-flash",
37615
- inputPrice: 0.2,
37616
- outputPrice: 0.4,
37733
+ inputPrice: 0.14,
37734
+ outputPrice: 0.28,
37617
37735
  contextWindow: 1e6,
37618
37736
  maxOutput: 8192,
37619
37737
  toolCalling: true
@@ -37622,8 +37740,8 @@ var init_models = __esm({
37622
37740
  id: "deepseek/deepseek-reasoner",
37623
37741
  name: "DeepSeek V4 Flash Reasoner",
37624
37742
  version: "4-flash",
37625
- inputPrice: 0.2,
37626
- outputPrice: 0.4,
37743
+ inputPrice: 0.14,
37744
+ outputPrice: 0.28,
37627
37745
  contextWindow: 1e6,
37628
37746
  maxOutput: 8192,
37629
37747
  reasoning: true,
@@ -37702,6 +37820,32 @@ var init_models = __esm({
37702
37820
  agentic: true,
37703
37821
  toolCalling: true
37704
37822
  },
37823
+ // Qwen3.7 Plus/Flash (blockrun #329, 2026-08-03): the balanced and
37824
+ // latency tiers under Max. Plus genuinely caps output at 131072 while
37825
+ // Flash and Max cap at 65536 (endpoint-probed upstream).
37826
+ {
37827
+ id: "qwen/qwen3.7-plus",
37828
+ name: "Qwen3.7 Plus",
37829
+ version: "3.7-plus",
37830
+ inputPrice: 0.32,
37831
+ outputPrice: 1.28,
37832
+ contextWindow: 1e6,
37833
+ maxOutput: 131072,
37834
+ reasoning: true,
37835
+ agentic: true,
37836
+ toolCalling: true
37837
+ },
37838
+ {
37839
+ id: "qwen/qwen3.7-flash",
37840
+ name: "Qwen3.7 Flash",
37841
+ version: "3.7-flash",
37842
+ inputPrice: 0.03,
37843
+ outputPrice: 0.13,
37844
+ contextWindow: 1e6,
37845
+ maxOutput: 65536,
37846
+ reasoning: true,
37847
+ toolCalling: true
37848
+ },
37705
37849
  // Kimi K2.6 — superseded by K2.7 (2026-06-13), hidden on BlockRun but still routable.
37706
37850
  {
37707
37851
  id: "moonshot/kimi-k2.6",
@@ -37913,6 +38057,34 @@ var init_models = __esm({
37913
38057
  agentic: true,
37914
38058
  toolCalling: true
37915
38059
  },
38060
+ // Tencent + Xiaomi (blockrun 2026-07-25): the two largest real demand gaps
38061
+ // in the catalog — Hy3 held the #1 usage slot on the biggest public
38062
+ // aggregator for 19 days; MiMo ran ~22% weekly share in April. Both are
38063
+ // reasoning models resold via blockrun's OpenRouter pool. toolCalling
38064
+ // LIVE-VERIFIED 2026-08-12: both returned a structured tool_calls array
38065
+ // (name + valid JSON args, finish_reason "tool_calls") through the gateway.
38066
+ {
38067
+ id: "tencent/hy3",
38068
+ name: "Tencent Hy3",
38069
+ version: "hy3",
38070
+ inputPrice: 0.132,
38071
+ outputPrice: 0.528,
38072
+ contextWindow: 262144,
38073
+ maxOutput: 128e3,
38074
+ reasoning: true,
38075
+ toolCalling: true
38076
+ },
38077
+ {
38078
+ id: "xiaomi/mimo-v2.5-pro",
38079
+ name: "Xiaomi MiMo-V2.5 Pro",
38080
+ version: "v2.5-pro",
38081
+ inputPrice: 0.435,
38082
+ outputPrice: 0.87,
38083
+ contextWindow: 1048576,
38084
+ maxOutput: 131072,
38085
+ reasoning: true,
38086
+ toolCalling: true
38087
+ },
37916
38088
  // MiniMax
37917
38089
  {
37918
38090
  id: "minimax/minimax-m3",
@@ -37986,11 +38158,13 @@ var init_models = __esm({
37986
38158
  maxOutput: 16384
37987
38159
  },
37988
38160
  {
37989
- // V4 Flash: 284B / 13B active MoE, 1M context. ~5x faster than V4 Pro.
37990
- // Strong on chat/summarization (MMLU-Pro 86.2). Caveat: weaker factual
37991
- // recall (SimpleQA 34% vs Pro's 58%) — pick V4 Pro for fact-heavy loops.
37992
- // Recovered in blockrun's 2026-07-17 live re-probe (3.2s both passes) —
37993
- // un-hidden upstream and back in the advertised free 8.
38161
+ // V4 Flash: 284B / 13B active MoE, 1M context. EOL'd 2026-08-12 — NVIDIA
38162
+ // published 410 Gone ("has reached its end of life") on both probe passes
38163
+ // and blockrun's prod gate fired [ALERT][free-model-dead] kind=gone twice
38164
+ // that morning. The whole nvidia/deepseek-* family is dead upstream; there
38165
+ // is no free DeepSeek left anywhere. Blockrun hid it and redirects calls to
38166
+ // gpt-oss-120b. Entry kept so explicit pins stay routable; off the picker,
38167
+ // the FREE_MODELS cascade, and the router fallback chains.
37994
38168
  id: "free/deepseek-v4-flash",
37995
38169
  name: "[Free] DeepSeek V4 Flash",
37996
38170
  version: "v4-flash",
@@ -38074,7 +38248,8 @@ var init_models = __esm({
38074
38248
  // 2026-06-16: BlockRun's 2026-06-14 free-tier refresh (self-healing health gate
38075
38249
  // + probe-verified lineup, blockrun commit 5817ecd) added these live NVIDIA free
38076
38250
  // models. Status per blockrun's 2026-07-17 live re-probe: qwen3-coder-480b and
38077
- // glm-4.7 stay dead (server-redirected); deepseek-v4-flash recovered (see above).
38251
+ // glm-4.7 stay dead (server-redirected); deepseek-v4-flash recovered then
38252
+ // EOL'd for good 2026-08-12 (see above).
38078
38253
  {
38079
38254
  // Qwen3-Next 80B (A3B active MoE): 262K context. DIED in the 2026-07-17
38080
38255
  // re-probe (">60s / DEGRADED") — hidden upstream, gateway redirects pinned
@@ -38179,11 +38354,12 @@ var init_models = __esm({
38179
38354
  },
38180
38355
  {
38181
38356
  // Flat-rate launch promo ended 2026-06-06 — backend bills per-token now.
38357
+ // Repriced 0.60/1.92 → 1.00/3.20 (blockrun #354 correction).
38182
38358
  id: "zai/glm-5",
38183
38359
  name: "GLM-5",
38184
38360
  version: "5",
38185
- inputPrice: 0.6,
38186
- outputPrice: 1.92,
38361
+ inputPrice: 1,
38362
+ outputPrice: 3.2,
38187
38363
  contextWindow: 2e5,
38188
38364
  maxOutput: 128e3,
38189
38365
  reasoning: true,
@@ -92580,8 +92756,6 @@ var init_proxy = __esm({
92580
92756
  FREE_MODELS = /* @__PURE__ */ new Set([
92581
92757
  "free/gpt-oss-120b",
92582
92758
  "free/gpt-oss-20b",
92583
- "free/deepseek-v4-flash",
92584
- // 1M ctx; slow (~10 tok/s, 07-28 probe) but completes
92585
92759
  "free/mistral-nemotron",
92586
92760
  // strong instruction following
92587
92761
  "free/step-3.7-flash",
@@ -92678,6 +92852,8 @@ var init_proxy = __esm({
92678
92852
  sizes: { "1024x1024": 0.045, "2048x1024": 0.045, "2048x2048": 0.09 }
92679
92853
  },
92680
92854
  "google/nano-banana": { default: 0.05 },
92855
+ // Nano Banana 2 (Gemini 3.1 Flash imagegen, blockrun #329): $0.09/image at 1K.
92856
+ "google/nano-banana-2": { default: 0.09, sizes: { "1024x1024": 0.09 } },
92681
92857
  "google/nano-banana-pro": {
92682
92858
  default: 0.1,
92683
92859
  sizes: { "1024x1024": 0.1, "2048x2048": 0.1, "4096x4096": 0.15 }
@@ -92698,13 +92874,32 @@ var init_proxy = __esm({
92698
92874
  };
92699
92875
  VIDEO_PRICING = {
92700
92876
  "xai/grok-imagine-video": { pricePerSecond: 0.05, defaultDurationSeconds: 8 },
92701
- "bytedance/seedance-1.5-pro": { pricePerSecond: 0.0875, defaultDurationSeconds: 5 },
92877
+ // Seedance rates re-synced 2026-08-08 from blockrun's models.ts after the
92878
+ // family reprice (blockrun #351/#354). All three were carrying pre-reprice
92879
+ // numbers, which only ever skewed the usage log — the charge comes from the
92880
+ // x402 header, and estimateVideoCost is the fallback for when it is absent.
92881
+ "bytedance/seedance-1.5-pro": { pricePerSecond: 0.07, defaultDurationSeconds: 5 },
92702
92882
  "bytedance/seedance-2.0-fast": {
92703
- pricePerSecond: 0.22687,
92883
+ pricePerSecond: 0.165,
92704
92884
  defaultDurationSeconds: 5
92705
92885
  },
92706
92886
  "bytedance/seedance-2.0": {
92707
- pricePerSecond: 0.28358,
92887
+ pricePerSecond: 0.227,
92888
+ defaultDurationSeconds: 5
92889
+ },
92890
+ // Seedance 2.0 Mini (blockrun #366/#368, 2026-08-12): 720p + synced audio at
92891
+ // half the flagship rate, 480p/720p only, 4–15s. blockrun signs the 3dp-floored
92892
+ // per-second value (0.079, not the raw 0.0797) — mirror the signed number.
92893
+ "bytedance/seedance-2.0-mini": {
92894
+ pricePerSecond: 0.079,
92895
+ defaultDurationSeconds: 5
92896
+ },
92897
+ // Seedance 2.5: 720p with synced audio, up to 30s. Not a replacement for 2.0
92898
+ // Pro — that is still the one for 1080p/4K. No OpenRouter failover exists for
92899
+ // 2.5, so a token360 outage surfaces as an error instead of quietly rendering
92900
+ // on another model.
92901
+ "bytedance/seedance-2.5": {
92902
+ pricePerSecond: 0.315,
92708
92903
  defaultDurationSeconds: 5
92709
92904
  },
92710
92905
  // Sora 2 via Azure AI Foundry — flat $0.10/s for both t2v and i2v.
@@ -226046,7 +226241,9 @@ function buildVideoGenerationProvider() {
226046
226241
  "xai/grok-imagine-video",
226047
226242
  "bytedance/seedance-1.5-pro",
226048
226243
  "bytedance/seedance-2.0-fast",
226049
- "bytedance/seedance-2.0"
226244
+ "bytedance/seedance-2.0",
226245
+ "bytedance/seedance-2.0-mini",
226246
+ "bytedance/seedance-2.5"
226050
226247
  ],
226051
226248
  capabilities: {
226052
226249
  maxVideos: 1,
@@ -226547,7 +226744,7 @@ var init_index = __esm({
226547
226744
  const parsed = parseGenArgs(ctx.args ?? "");
226548
226745
  if (!parsed.prompt) {
226549
226746
  return {
226550
- 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`."
226747
+ 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`."
226551
226748
  };
226552
226749
  }
226553
226750
  const model = resolveModelAlias(parsed.model ?? "nano-banana");
@@ -226599,7 +226796,7 @@ ${errText}`
226599
226796
  const parsed = parseGenArgs(ctx.args ?? "");
226600
226797
  if (!parsed.prompt) {
226601
226798
  return {
226602
- 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."
226799
+ 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."
226603
226800
  };
226604
226801
  }
226605
226802
  const model = resolveModelAlias(parsed.model ?? "seedance");