@blockrun/clawrouter 0.12.249 → 0.12.251

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/index.js CHANGED
@@ -409,12 +409,16 @@ var init_models = __esm({
409
409
  "xai/grok-3-fast": "xai/grok-4-fast-reasoning",
410
410
  // delisted (too expensive)
411
411
  // NVIDIA — backward compat aliases (nvidia/xxx → free/xxx)
412
- // Default free model is gpt-oss-120b (heavy user demand). New free models
413
- // added 2026-04-29 — deepseek-v4-pro/flash, nemotron-omni — are additions,
414
- // not replacements. Retired-with-redirect entries below mirror BlockRun
415
- // server-side decommissioning of slow models (nemotron family, etc.).
416
- nvidia: "free/gpt-oss-120b",
412
+ // Default free model is step-3.7-flash — the same model @blockrun/router-core
413
+ // opens the eco SIMPLE tier on. It replaced gpt-oss-120b on 2026-08-29:
414
+ // gpt-oss-120b went dead upstream on 2026-08-16 (NVIDIA still LISTS it, but a
415
+ // completion hangs until the client gives up — blockrun #391 retargeted its
416
+ // whole free cascade off it, and the gateway now answers 400 Unknown model
417
+ // for the `free/` id). Pins that NAME gpt-oss stay routable below — the
418
+ // gateway server-redirects them — but nothing generic may land on it.
419
+ nvidia: "free/step-3.7-flash",
417
420
  "gpt-120b": "free/gpt-oss-120b",
421
+ // names the model itself — gateway redirects
418
422
  "gpt-20b": "free/gpt-oss-20b",
419
423
  "nvidia/gpt-oss-120b": "free/gpt-oss-120b",
420
424
  "nvidia/gpt-oss-20b": "free/gpt-oss-20b",
@@ -489,9 +493,10 @@ var init_models = __esm({
489
493
  // no live free Llama left (maverick died 2026-07)
490
494
  // qwen3-coder-480b retired 2026-06-14 → seed-oss-36b, which then EOL'd 2026-08-03.
491
495
  // Follow the gateway's own retarget rather than chaining to a second dead model.
492
- "qwen-coder": "free/gpt-oss-120b",
493
- "qwen-coder-free": "free/gpt-oss-120b",
494
- "qwen-thinking": "free/gpt-oss-120b",
496
+ "qwen-coder": "free/step-3.7-flash",
497
+ // no live free Qwen; follows the free default
498
+ "qwen-coder-free": "free/step-3.7-flash",
499
+ "qwen-thinking": "free/step-3.7-flash",
495
500
  // qwen3-next died 2026-07-17; no live free Qwen left
496
501
  "qwen3-next": "free/qwen3-next-80b-a3b-instruct",
497
502
  // explicit-ish pin — gateway redirects
@@ -502,8 +507,8 @@ var init_models = __esm({
502
507
  // seed-oss pins name the model itself — kept routable, the gateway redirects them.
503
508
  "seed-oss": "free/seed-oss-36b",
504
509
  "seed-oss-36b": "free/seed-oss-36b",
505
- "coder-free": "free/gpt-oss-120b",
506
- // generic "a free coder" → follows the gateway retarget
510
+ "coder-free": "free/step-3.7-flash",
511
+ // generic "a free coder" → follows the free default
507
512
  "mistral-nemotron": "free/mistral-nemotron",
508
513
  "step-flash": "free/step-3.7-flash",
509
514
  "step-3.7-flash": "free/step-3.7-flash",
@@ -515,21 +520,25 @@ var init_models = __esm({
515
520
  "nemotron-omni": "free/nemotron-3-nano-omni-30b-a3b-reasoning",
516
521
  "nano-omni": "free/nemotron-3-nano-omni-30b-a3b-reasoning",
517
522
  "vision-free": "free/nemotron-3-nano-omni-30b-a3b-reasoning",
518
- // Retired shorthand aliases redirect to live successors (2026-07-17 map:
519
- // llama-4-maverick died, so the old catch-all target moved to gpt-oss-120b)
523
+ // Retired shorthand aliases redirect to live successors. The catch-all target
524
+ // moved llama-4-maverick → gpt-oss-120b (2026-07-17) → step-3.7-flash
525
+ // (2026-08-29, gpt-oss-120b hung upstream; see the NVIDIA block above).
520
526
  nemotron: "free/nemotron-3-nano-omni-30b-a3b-reasoning",
521
527
  // strongest live Nemotron
522
- "nemotron-ultra": "free/gpt-oss-120b",
523
- "nemotron-253b": "free/gpt-oss-120b",
524
- "nemotron-super": "free/gpt-oss-120b",
525
- "nemotron-49b": "free/gpt-oss-120b",
526
- "nemotron-120b": "free/gpt-oss-120b",
527
- devstral: "free/gpt-oss-120b",
528
- // seed-oss-36b EOL'd 2026-08-03; matches blockrun's own retarget
529
- "devstral-2": "free/gpt-oss-120b",
528
+ "nemotron-ultra": "free/step-3.7-flash",
529
+ "nemotron-253b": "free/step-3.7-flash",
530
+ "nemotron-super": "free/step-3.7-flash",
531
+ "nemotron-49b": "free/step-3.7-flash",
532
+ "nemotron-120b": "free/step-3.7-flash",
533
+ devstral: "free/step-3.7-flash",
534
+ // seed-oss-36b EOL'd 2026-08-03
535
+ "devstral-2": "free/step-3.7-flash",
530
536
  maverick: "free/llama-4-maverick",
531
537
  // explicit-ish pin — gateway redirects
532
- free: "free/gpt-oss-120b",
538
+ // `free` = the free-tier default. Must equal router-core's ecoTiers.SIMPLE
539
+ // primary and the head of proxy.ts FREE_MODELS so `/model free`, the eco
540
+ // profile and the budget-cap free fallback all agree on one live model.
541
+ free: "free/step-3.7-flash",
533
542
  // MiniMax (minimax → current flagship: M3)
534
543
  minimax: "minimax/minimax-m3",
535
544
  "minimax-m3": "minimax/minimax-m3",
@@ -599,7 +608,7 @@ var init_models = __esm({
599
608
  },
600
609
  {
601
610
  id: "free",
602
- name: "Free \u2192 GPT-OSS 120B",
611
+ name: "Free \u2192 Step 3.7 Flash",
603
612
  inputPrice: 0,
604
613
  outputPrice: 0,
605
614
  contextWindow: 131072,
@@ -35878,7 +35887,7 @@ function affinity(modelId, task, language = "other", agentDomain = "other", deep
35878
35887
  match(["gpt-5.3-codex"], 1),
35879
35888
  match(["claude-sonnet-4.6"], 0.94),
35880
35889
  match(["glm-5.2"], 0.9),
35881
- match(["kimi-k2.7", "deepseek-v4-pro"], 0.86)
35890
+ match(["deepseek-v4-pro"], 0.86)
35882
35891
  );
35883
35892
  case "reasoning":
35884
35893
  return Math.max(
@@ -35902,14 +35911,13 @@ function affinity(modelId, task, language = "other", agentDomain = "other", deep
35902
35911
  base3,
35903
35912
  match(["gemini-3.5-flash"], 1),
35904
35913
  match(["grok-4.5"], 0.93),
35905
- match(["claude-sonnet-5", "deepseek-v4-pro", "kimi-k3"], 0.9),
35906
- match(["kimi-k2.7"], 0.84)
35914
+ match(["claude-sonnet-5", "deepseek-v4-pro", "kimi-k3"], 0.9)
35907
35915
  );
35908
35916
  case "vision":
35909
35917
  return Math.max(
35910
35918
  base3,
35911
35919
  match(["gemini-3.1-pro"], 0.96),
35912
- match(["qwen3.7-max", "claude-sonnet-4.6", "kimi-k2.7", "grok-4.3"], 0.9)
35920
+ match(["qwen3.7-max", "claude-sonnet-4.6", "kimi-k3", "grok-4.3"], 0.9)
35913
35921
  );
35914
35922
  case "long_context":
35915
35923
  return Math.max(
@@ -35921,17 +35929,18 @@ function affinity(modelId, task, language = "other", agentDomain = "other", deep
35921
35929
  );
35922
35930
  case "extraction": {
35923
35931
  const kimiExtractionAffinity = language === "zh" ? 1 : 0.9;
35932
+ const otherExtractionAffinity = language === "zh" ? 0.88 : 0.9;
35924
35933
  return Math.max(
35925
35934
  base3,
35926
- match(["gemini-3.5-flash", "gemini-2.5-flash", "gpt-4o-mini"], 0.9),
35927
- match(["claude-sonnet-5", "claude-sonnet-4.6"], 0.9),
35928
- match(["kimi-k3", "kimi-k2.7"], kimiExtractionAffinity)
35935
+ match(["gemini-3.5-flash", "gemini-2.5-flash", "gpt-4o-mini"], otherExtractionAffinity),
35936
+ match(["claude-sonnet-5", "claude-sonnet-4.6"], otherExtractionAffinity),
35937
+ match(["kimi-k3"], kimiExtractionAffinity)
35929
35938
  );
35930
35939
  }
35931
35940
  default:
35932
35941
  return Math.max(
35933
35942
  base3,
35934
- match(["gemini-3.5-flash", "gemini-2.5-flash", "kimi-k3", "kimi-k2.7"], 0.86)
35943
+ match(["gemini-3.5-flash", "gemini-2.5-flash", "kimi-k3"], 0.86)
35935
35944
  );
35936
35945
  }
35937
35946
  }
@@ -35990,6 +35999,9 @@ function evidenceCandidates(task) {
35990
35999
  "deepseek/deepseek-v4-pro"
35991
36000
  ];
35992
36001
  }
36002
+ if (task === "extraction") {
36003
+ return ["moonshot/kimi-k3", "google/gemini-3.5-flash", "anthropic/claude-sonnet-5"];
36004
+ }
35993
36005
  if (task === "reasoning_math") {
35994
36006
  return [
35995
36007
  "google/gemini-3.5-flash",
@@ -36161,14 +36173,15 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36161
36173
  supportsVision: true
36162
36174
  },
36163
36175
  "anthropic/claude-haiku-4.5": {
36176
+ // override: The public catalog's `categories` omit "vision" for this Anthropic model even though the gateway accepts image input for it (the prior hand-maintained snapshot had it, and Anthropic's model card lists it). Without this the vision filter would silently drop it — reported against the catalog; remove once the categories carry vision.
36164
36177
  contextWindow: 2e5,
36165
- maxOutputTokens: 8192,
36178
+ maxOutputTokens: 64e3,
36166
36179
  supportsTools: true,
36167
36180
  supportsVision: true
36168
36181
  },
36169
- "anthropic/claude-opus-4.6": {
36170
- contextWindow: 1e6,
36171
- maxOutputTokens: 128e3,
36182
+ "anthropic/claude-opus-4.5": {
36183
+ contextWindow: 2e5,
36184
+ maxOutputTokens: 64e3,
36172
36185
  supportsTools: true,
36173
36186
  supportsVision: true
36174
36187
  },
@@ -36190,12 +36203,19 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36190
36203
  supportsTools: true,
36191
36204
  supportsVision: true
36192
36205
  },
36193
- "anthropic/claude-sonnet-4.6": {
36206
+ "anthropic/claude-sonnet-4.5": {
36194
36207
  contextWindow: 2e5,
36195
36208
  maxOutputTokens: 64e3,
36196
36209
  supportsTools: true,
36197
36210
  supportsVision: true
36198
36211
  },
36212
+ "anthropic/claude-sonnet-4.6": {
36213
+ // override: The public catalog's `categories` omit "vision" for this Anthropic model even though the gateway accepts image input for it (the prior hand-maintained snapshot had it, and Anthropic's model card lists it). Without this the vision filter would silently drop it — reported against the catalog; remove once the categories carry vision.
36214
+ contextWindow: 1e6,
36215
+ maxOutputTokens: 128e3,
36216
+ supportsTools: true,
36217
+ supportsVision: true
36218
+ },
36199
36219
  "anthropic/claude-sonnet-5": {
36200
36220
  contextWindow: 1e6,
36201
36221
  maxOutputTokens: 128e3,
@@ -36203,14 +36223,14 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36203
36223
  supportsVision: true
36204
36224
  },
36205
36225
  "deepseek/deepseek-chat": {
36206
- contextWindow: 1e6,
36207
- maxOutputTokens: 8192,
36226
+ contextWindow: 1048576,
36227
+ maxOutputTokens: 65536,
36208
36228
  supportsTools: true,
36209
36229
  supportsVision: false
36210
36230
  },
36211
36231
  "deepseek/deepseek-reasoner": {
36212
- contextWindow: 1e6,
36213
- maxOutputTokens: 8192,
36232
+ contextWindow: 1048576,
36233
+ maxOutputTokens: 65536,
36214
36234
  supportsTools: true,
36215
36235
  supportsVision: false
36216
36236
  },
@@ -36220,50 +36240,38 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36220
36240
  supportsTools: true,
36221
36241
  supportsVision: false
36222
36242
  },
36223
- "free/deepseek-v4-flash": {
36224
- contextWindow: 1e6,
36225
- maxOutputTokens: 16384,
36226
- supportsTools: false,
36227
- supportsVision: false
36228
- },
36229
- "free/seed-oss-36b": {
36230
- contextWindow: 131072,
36231
- maxOutputTokens: 16384,
36232
- supportsTools: false,
36233
- supportsVision: false
36234
- },
36235
36243
  "google/gemini-2.5-flash": {
36236
- contextWindow: 1e6,
36244
+ contextWindow: 1048576,
36237
36245
  maxOutputTokens: 65536,
36238
36246
  supportsTools: true,
36239
36247
  supportsVision: true
36240
36248
  },
36241
36249
  "google/gemini-2.5-flash-lite": {
36242
- contextWindow: 1e6,
36250
+ contextWindow: 1048576,
36243
36251
  maxOutputTokens: 65536,
36244
36252
  supportsTools: true,
36245
36253
  supportsVision: false
36246
36254
  },
36247
36255
  "google/gemini-2.5-pro": {
36248
- contextWindow: 105e4,
36256
+ contextWindow: 1048576,
36249
36257
  maxOutputTokens: 65536,
36250
36258
  supportsTools: true,
36251
36259
  supportsVision: true
36252
36260
  },
36253
36261
  "google/gemini-3-flash-preview": {
36254
- contextWindow: 1e6,
36262
+ contextWindow: 1048576,
36255
36263
  maxOutputTokens: 65536,
36256
- supportsTools: false,
36264
+ supportsTools: true,
36257
36265
  supportsVision: true
36258
36266
  },
36259
36267
  "google/gemini-3.1-flash-lite": {
36260
- contextWindow: 1e6,
36261
- maxOutputTokens: 8192,
36268
+ contextWindow: 1048576,
36269
+ maxOutputTokens: 65536,
36262
36270
  supportsTools: true,
36263
36271
  supportsVision: false
36264
36272
  },
36265
36273
  "google/gemini-3.1-pro": {
36266
- contextWindow: 105e4,
36274
+ contextWindow: 1048576,
36267
36275
  maxOutputTokens: 65536,
36268
36276
  supportsTools: true,
36269
36277
  supportsVision: true
@@ -36274,23 +36282,29 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36274
36282
  supportsTools: true,
36275
36283
  supportsVision: true
36276
36284
  },
36277
- "moonshot/kimi-k2.5": {
36278
- contextWindow: 262144,
36279
- maxOutputTokens: 16384,
36285
+ "google/gemini-3.5-flash-lite": {
36286
+ contextWindow: 1048576,
36287
+ maxOutputTokens: 65536,
36280
36288
  supportsTools: true,
36281
- supportsVision: true
36289
+ supportsVision: false
36282
36290
  },
36283
- "moonshot/kimi-k2.6": {
36284
- contextWindow: 262144,
36291
+ "google/gemini-3.6-flash": {
36292
+ contextWindow: 1048576,
36285
36293
  maxOutputTokens: 65536,
36286
36294
  supportsTools: true,
36287
36295
  supportsVision: true
36288
36296
  },
36289
- "moonshot/kimi-k2.7": {
36290
- contextWindow: 262144,
36297
+ "minimax/minimax-m2.7": {
36298
+ contextWindow: 204800,
36299
+ maxOutputTokens: 16384,
36300
+ supportsTools: true,
36301
+ supportsVision: false
36302
+ },
36303
+ "minimax/minimax-m3": {
36304
+ contextWindow: 1048576,
36291
36305
  maxOutputTokens: 65536,
36292
36306
  supportsTools: true,
36293
- supportsVision: true
36307
+ supportsVision: false
36294
36308
  },
36295
36309
  "moonshot/kimi-k3": {
36296
36310
  contextWindow: 1048576,
@@ -36298,6 +36312,26 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36298
36312
  supportsTools: true,
36299
36313
  supportsVision: true
36300
36314
  },
36315
+ "nvidia/mistral-nemotron": {
36316
+ // supportsTools: gateway unavailable at probe time — fails closed
36317
+ contextWindow: 131072,
36318
+ maxOutputTokens: 16384,
36319
+ supportsTools: false,
36320
+ supportsVision: false
36321
+ },
36322
+ "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning": {
36323
+ contextWindow: 256e3,
36324
+ maxOutputTokens: 16384,
36325
+ supportsTools: false,
36326
+ supportsVision: true
36327
+ },
36328
+ "nvidia/nemotron-nano-12b-v2-vl": {
36329
+ // supportsTools: gateway unavailable at probe time — fails closed
36330
+ contextWindow: 131072,
36331
+ maxOutputTokens: 16384,
36332
+ supportsTools: false,
36333
+ supportsVision: true
36334
+ },
36301
36335
  "nvidia/nemotron-nano-9b-v2": {
36302
36336
  contextWindow: 131072,
36303
36337
  maxOutputTokens: 16384,
@@ -36310,7 +36344,31 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36310
36344
  supportsTools: false,
36311
36345
  supportsVision: false
36312
36346
  },
36347
+ "openai/chat-latest": {
36348
+ contextWindow: 128e3,
36349
+ maxOutputTokens: 128e3,
36350
+ supportsTools: true,
36351
+ supportsVision: true
36352
+ },
36313
36353
  "openai/gpt-4.1": {
36354
+ contextWindow: 128e3,
36355
+ maxOutputTokens: 32768,
36356
+ supportsTools: true,
36357
+ supportsVision: true
36358
+ },
36359
+ "openai/gpt-4.1-mini": {
36360
+ contextWindow: 128e3,
36361
+ maxOutputTokens: 32768,
36362
+ supportsTools: true,
36363
+ supportsVision: false
36364
+ },
36365
+ "openai/gpt-4.1-nano": {
36366
+ contextWindow: 128e3,
36367
+ maxOutputTokens: 32768,
36368
+ supportsTools: true,
36369
+ supportsVision: false
36370
+ },
36371
+ "openai/gpt-4o": {
36314
36372
  contextWindow: 128e3,
36315
36373
  maxOutputTokens: 16384,
36316
36374
  supportsTools: true,
@@ -36324,17 +36382,44 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36324
36382
  },
36325
36383
  "openai/gpt-5-mini": {
36326
36384
  contextWindow: 2e5,
36327
- maxOutputTokens: 65536,
36385
+ maxOutputTokens: 128e3,
36328
36386
  supportsTools: true,
36329
36387
  supportsVision: false
36330
36388
  },
36389
+ "openai/gpt-5.2": {
36390
+ contextWindow: 4e5,
36391
+ maxOutputTokens: 128e3,
36392
+ supportsTools: true,
36393
+ supportsVision: true
36394
+ },
36395
+ "openai/gpt-5.2-pro": {
36396
+ // supportsTools: not probed — fails closed
36397
+ contextWindow: 4e5,
36398
+ maxOutputTokens: 128e3,
36399
+ supportsTools: false,
36400
+ supportsVision: true
36401
+ },
36402
+ "openai/gpt-5.3": {
36403
+ // supportsTools: gateway unavailable at probe time — fails closed
36404
+ contextWindow: 128e3,
36405
+ maxOutputTokens: 128e3,
36406
+ supportsTools: false,
36407
+ supportsVision: true
36408
+ },
36331
36409
  "openai/gpt-5.3-codex": {
36410
+ // 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.
36332
36411
  contextWindow: 4e5,
36333
36412
  maxOutputTokens: 128e3,
36334
36413
  supportsTools: true,
36335
36414
  supportsVision: false
36336
36415
  },
36337
36416
  "openai/gpt-5.4": {
36417
+ contextWindow: 105e4,
36418
+ maxOutputTokens: 128e3,
36419
+ supportsTools: true,
36420
+ supportsVision: true
36421
+ },
36422
+ "openai/gpt-5.4-mini": {
36338
36423
  contextWindow: 4e5,
36339
36424
  maxOutputTokens: 128e3,
36340
36425
  supportsTools: true,
@@ -36342,30 +36427,92 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36342
36427
  },
36343
36428
  "openai/gpt-5.4-nano": {
36344
36429
  contextWindow: 105e4,
36345
- maxOutputTokens: 32768,
36430
+ maxOutputTokens: 128e3,
36346
36431
  supportsTools: true,
36347
36432
  supportsVision: false
36348
36433
  },
36434
+ "openai/gpt-5.4-pro": {
36435
+ // supportsTools: not probed — fails closed
36436
+ contextWindow: 105e4,
36437
+ maxOutputTokens: 128e3,
36438
+ supportsTools: false,
36439
+ supportsVision: true
36440
+ },
36349
36441
  "openai/gpt-5.5": {
36350
36442
  contextWindow: 105e4,
36351
36443
  maxOutputTokens: 128e3,
36352
36444
  supportsTools: true,
36353
36445
  supportsVision: true
36354
36446
  },
36447
+ "openai/gpt-5.5-pro": {
36448
+ // supportsTools: not probed — fails closed
36449
+ contextWindow: 105e4,
36450
+ maxOutputTokens: 128e3,
36451
+ supportsTools: false,
36452
+ supportsVision: true
36453
+ },
36454
+ "openai/gpt-5.6-luna": {
36455
+ contextWindow: 105e4,
36456
+ maxOutputTokens: 128e3,
36457
+ supportsTools: true,
36458
+ supportsVision: true
36459
+ },
36460
+ "openai/gpt-5.6-luna-pro": {
36461
+ contextWindow: 105e4,
36462
+ maxOutputTokens: 128e3,
36463
+ supportsTools: false,
36464
+ supportsVision: true
36465
+ },
36466
+ "openai/gpt-5.6-sol": {
36467
+ contextWindow: 105e4,
36468
+ maxOutputTokens: 128e3,
36469
+ supportsTools: true,
36470
+ supportsVision: true
36471
+ },
36472
+ "openai/gpt-5.6-sol-pro": {
36473
+ contextWindow: 105e4,
36474
+ maxOutputTokens: 128e3,
36475
+ supportsTools: true,
36476
+ supportsVision: true
36477
+ },
36355
36478
  "openai/gpt-5.6-terra": {
36356
36479
  contextWindow: 105e4,
36357
36480
  maxOutputTokens: 128e3,
36358
36481
  supportsTools: true,
36359
36482
  supportsVision: true
36360
36483
  },
36484
+ "openai/gpt-5.6-terra-pro": {
36485
+ contextWindow: 105e4,
36486
+ maxOutputTokens: 128e3,
36487
+ supportsTools: true,
36488
+ supportsVision: true
36489
+ },
36490
+ "openai/o1": {
36491
+ contextWindow: 2e5,
36492
+ maxOutputTokens: 1e5,
36493
+ supportsTools: true,
36494
+ supportsVision: false
36495
+ },
36361
36496
  "openai/o3": {
36362
36497
  contextWindow: 2e5,
36363
36498
  maxOutputTokens: 1e5,
36364
36499
  supportsTools: true,
36365
36500
  supportsVision: false
36366
36501
  },
36502
+ "openai/o3-mini": {
36503
+ contextWindow: 128e3,
36504
+ maxOutputTokens: 1e5,
36505
+ supportsTools: true,
36506
+ supportsVision: false
36507
+ },
36367
36508
  "openai/o4-mini": {
36368
36509
  contextWindow: 128e3,
36510
+ maxOutputTokens: 1e5,
36511
+ supportsTools: true,
36512
+ supportsVision: false
36513
+ },
36514
+ "qwen/qwen3.7-flash": {
36515
+ contextWindow: 1e6,
36369
36516
  maxOutputTokens: 65536,
36370
36517
  supportsTools: true,
36371
36518
  supportsVision: false
@@ -36376,47 +36523,53 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36376
36523
  supportsTools: true,
36377
36524
  supportsVision: false
36378
36525
  },
36379
- "xai/grok-3-mini": {
36380
- contextWindow: 131072,
36381
- maxOutputTokens: 16384,
36526
+ "qwen/qwen3.7-plus": {
36527
+ contextWindow: 1e6,
36528
+ maxOutputTokens: 131072,
36382
36529
  supportsTools: true,
36383
36530
  supportsVision: false
36384
36531
  },
36385
- "xai/grok-4-0709": {
36386
- contextWindow: 131072,
36387
- maxOutputTokens: 16384,
36532
+ "tencent/hy3": {
36533
+ contextWindow: 262144,
36534
+ maxOutputTokens: 128e3,
36388
36535
  supportsTools: true,
36389
36536
  supportsVision: false
36390
36537
  },
36391
- "xai/grok-4-1-fast-non-reasoning": {
36392
- contextWindow: 131072,
36538
+ "xai/grok-4.3": {
36539
+ contextWindow: 1e6,
36393
36540
  maxOutputTokens: 16384,
36394
36541
  supportsTools: true,
36395
- supportsVision: false
36542
+ supportsVision: true
36396
36543
  },
36397
- "xai/grok-4-1-fast-reasoning": {
36398
- contextWindow: 131072,
36544
+ "xai/grok-4.5": {
36545
+ contextWindow: 5e5,
36399
36546
  maxOutputTokens: 16384,
36400
36547
  supportsTools: true,
36401
- supportsVision: false
36548
+ supportsVision: true
36402
36549
  },
36403
- "xai/grok-4-fast-non-reasoning": {
36404
- contextWindow: 131072,
36550
+ "xai/grok-build-0.1": {
36551
+ contextWindow: 256e3,
36405
36552
  maxOutputTokens: 16384,
36406
36553
  supportsTools: true,
36407
36554
  supportsVision: false
36408
36555
  },
36409
- "xai/grok-4-fast-reasoning": {
36410
- contextWindow: 131072,
36411
- maxOutputTokens: 16384,
36556
+ "xiaomi/mimo-v2.5-pro": {
36557
+ contextWindow: 1048576,
36558
+ maxOutputTokens: 131072,
36412
36559
  supportsTools: true,
36413
36560
  supportsVision: false
36414
36561
  },
36415
- "xai/grok-4.5": {
36416
- contextWindow: 5e5,
36417
- maxOutputTokens: 16384,
36562
+ "zai/glm-5": {
36563
+ contextWindow: 2e5,
36564
+ maxOutputTokens: 128e3,
36418
36565
  supportsTools: true,
36419
- supportsVision: true
36566
+ supportsVision: false
36567
+ },
36568
+ "zai/glm-5-turbo": {
36569
+ contextWindow: 2e5,
36570
+ maxOutputTokens: 128e3,
36571
+ supportsTools: true,
36572
+ supportsVision: false
36420
36573
  },
36421
36574
  "zai/glm-5.1": {
36422
36575
  contextWindow: 2e5,
@@ -36426,249 +36579,549 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36426
36579
  },
36427
36580
  "zai/glm-5.2": {
36428
36581
  contextWindow: 1e6,
36429
- maxOutputTokens: 262144,
36582
+ maxOutputTokens: 131072,
36583
+ supportsTools: true,
36584
+ supportsVision: false
36585
+ },
36586
+ "zai/glm-5.3": {
36587
+ contextWindow: 1e6,
36588
+ maxOutputTokens: 131072,
36430
36589
  supportsTools: true,
36431
36590
  supportsVision: false
36591
+ },
36592
+ "zai/glm-5.3-flash": {
36593
+ contextWindow: 1e6,
36594
+ maxOutputTokens: 131072,
36595
+ supportsTools: true,
36596
+ supportsVision: true
36432
36597
  }
36433
36598
  });
36434
36599
  model_profiles_generated_default = {
36435
- "openai/gpt-5.5": {
36436
- measuredAt: "2026-07-21T10:21:31Z",
36437
- latencyMs: 6243.1,
36438
- p95LatencyMs: 9865,
36439
- outputTokensPerSecond: 12.53,
36600
+ "anthropic/claude-fable-5": {
36601
+ measuredAt: "2026-08-29T16:51:33Z",
36602
+ latencyMs: 9298.5,
36603
+ p95LatencyMs: 9873.4,
36604
+ outputTokensPerSecond: 55.17,
36440
36605
  errorRate: 0,
36441
36606
  samples: 3
36442
36607
  },
36443
- "openai/gpt-5.4-pro": {
36444
- measuredAt: "2026-07-21T10:21:31Z",
36445
- latencyMs: 13015.5,
36446
- p95LatencyMs: 23976.4,
36447
- outputTokensPerSecond: 6.42,
36608
+ "anthropic/claude-haiku-4.5": {
36609
+ measuredAt: "2026-08-29T16:51:33Z",
36610
+ latencyMs: 3157.4,
36611
+ p95LatencyMs: 3170.7,
36612
+ outputTokensPerSecond: 162.16,
36448
36613
  errorRate: 0,
36449
36614
  samples: 3
36450
36615
  },
36451
- "openai/gpt-5.4-mini": {
36452
- measuredAt: "2026-07-21T10:21:31Z",
36453
- latencyMs: 5550,
36454
- p95LatencyMs: 6595.7,
36455
- outputTokensPerSecond: 11.96,
36456
- errorRate: 0.3333,
36616
+ "anthropic/claude-opus-4.5": {
36617
+ measuredAt: "2026-08-29T16:51:33Z",
36618
+ latencyMs: 6497.7,
36619
+ p95LatencyMs: 6953.7,
36620
+ outputTokensPerSecond: 78.99,
36621
+ errorRate: 0,
36457
36622
  samples: 3
36458
36623
  },
36459
- "openai/gpt-5.3-codex": {
36460
- measuredAt: "2026-07-21T10:21:31Z",
36461
- latencyMs: 4617.1,
36462
- p95LatencyMs: 5800.7,
36463
- outputTokensPerSecond: 12.48,
36624
+ "anthropic/claude-opus-4.7": {
36625
+ measuredAt: "2026-08-29T16:51:33Z",
36626
+ latencyMs: 5316.5,
36627
+ p95LatencyMs: 6121.5,
36628
+ outputTokensPerSecond: 97.34,
36464
36629
  errorRate: 0,
36465
36630
  samples: 3
36466
36631
  },
36467
36632
  "anthropic/claude-opus-4.8": {
36468
- measuredAt: "2026-07-21T10:21:31Z",
36469
- latencyMs: 3915.1,
36470
- p95LatencyMs: 6130.8,
36471
- outputTokensPerSecond: 16.33,
36633
+ measuredAt: "2026-08-29T16:51:33Z",
36634
+ latencyMs: 6216.1,
36635
+ p95LatencyMs: 6847.7,
36636
+ outputTokensPerSecond: 82.81,
36472
36637
  errorRate: 0,
36473
36638
  samples: 3
36474
36639
  },
36475
- "anthropic/claude-opus-4.6": {
36476
- measuredAt: "2026-07-21T10:21:31Z",
36477
- latencyMs: 3765.5,
36478
- p95LatencyMs: 4257.2,
36479
- outputTokensPerSecond: 14.18,
36640
+ "anthropic/claude-opus-5": {
36641
+ measuredAt: "2026-08-29T16:51:33Z",
36642
+ latencyMs: 7309,
36643
+ p95LatencyMs: 7745.2,
36644
+ outputTokensPerSecond: 70.17,
36645
+ errorRate: 0,
36646
+ samples: 3
36647
+ },
36648
+ "anthropic/claude-sonnet-4.5": {
36649
+ measuredAt: "2026-08-29T16:51:33Z",
36650
+ latencyMs: 6330.4,
36651
+ p95LatencyMs: 6631.6,
36652
+ outputTokensPerSecond: 81.03,
36480
36653
  errorRate: 0,
36481
36654
  samples: 3
36482
36655
  },
36483
36656
  "anthropic/claude-sonnet-4.6": {
36484
- measuredAt: "2026-07-21T10:21:31Z",
36485
- latencyMs: 3860.6,
36486
- p95LatencyMs: 5093.5,
36487
- outputTokensPerSecond: 13.85,
36657
+ measuredAt: "2026-08-29T16:51:33Z",
36658
+ latencyMs: 6508,
36659
+ p95LatencyMs: 6698.3,
36660
+ outputTokensPerSecond: 78.6,
36488
36661
  errorRate: 0,
36489
36662
  samples: 3
36490
36663
  },
36491
- "anthropic/claude-haiku-4.5": {
36492
- measuredAt: "2026-07-21T10:21:31Z",
36493
- latencyMs: 2734.9,
36494
- p95LatencyMs: 3181.6,
36495
- outputTokensPerSecond: 19.58,
36664
+ "anthropic/claude-sonnet-5": {
36665
+ measuredAt: "2026-08-29T16:51:33Z",
36666
+ latencyMs: 6165.4,
36667
+ p95LatencyMs: 6582.9,
36668
+ outputTokensPerSecond: 83.62,
36496
36669
  errorRate: 0,
36497
36670
  samples: 3
36498
36671
  },
36499
- "google/gemini-3.1-pro": {
36500
- measuredAt: "2026-07-21T10:21:31Z",
36501
- latencyMs: 13935.7,
36502
- p95LatencyMs: 26675.3,
36503
- outputTokensPerSecond: 77.47,
36672
+ "deepseek/deepseek-chat": {
36673
+ measuredAt: "2026-08-29T16:51:33Z",
36674
+ latencyMs: 4351.4,
36675
+ p95LatencyMs: 4543.7,
36676
+ outputTokensPerSecond: 117.78,
36504
36677
  errorRate: 0,
36505
36678
  samples: 3
36506
36679
  },
36507
- "google/gemini-3.5-flash": {
36508
- measuredAt: "2026-07-21T10:21:31Z",
36509
- latencyMs: 4608.7,
36510
- p95LatencyMs: 8420.9,
36511
- outputTokensPerSecond: 57.88,
36680
+ "deepseek/deepseek-reasoner": {
36681
+ measuredAt: "2026-08-29T16:51:33Z",
36682
+ latencyMs: 5201.2,
36683
+ p95LatencyMs: 6079.6,
36684
+ outputTokensPerSecond: 99.77,
36512
36685
  errorRate: 0,
36513
36686
  samples: 3
36514
36687
  },
36515
- "google/gemini-3.1-flash-lite": {
36516
- measuredAt: "2026-07-21T10:21:31Z",
36517
- latencyMs: 4619.7,
36518
- p95LatencyMs: 9927.1,
36519
- outputTokensPerSecond: 42.01,
36688
+ "deepseek/deepseek-v4-pro": {
36689
+ measuredAt: "2026-08-29T16:51:33Z",
36690
+ latencyMs: 8781.2,
36691
+ p95LatencyMs: 9881.1,
36692
+ outputTokensPerSecond: 58.98,
36520
36693
  errorRate: 0,
36521
36694
  samples: 3
36522
36695
  },
36523
36696
  "google/gemini-2.5-flash": {
36524
- measuredAt: "2026-07-21T10:21:31Z",
36525
- latencyMs: 5506.9,
36526
- p95LatencyMs: 11462.5,
36527
- outputTokensPerSecond: 65.19,
36697
+ measuredAt: "2026-08-29T16:51:33Z",
36698
+ latencyMs: 5416.4,
36699
+ p95LatencyMs: 6442.8,
36700
+ outputTokensPerSecond: 213.07,
36528
36701
  errorRate: 0,
36529
36702
  samples: 3
36530
36703
  },
36531
- "deepseek/deepseek-v4-pro": {
36532
- measuredAt: "2026-07-21T10:21:31Z",
36533
- latencyMs: 6044.8,
36534
- p95LatencyMs: 10782.3,
36535
- outputTokensPerSecond: 22.47,
36704
+ "google/gemini-2.5-flash-lite": {
36705
+ measuredAt: "2026-08-29T16:51:33Z",
36706
+ latencyMs: 5002.6,
36707
+ p95LatencyMs: 5780.3,
36708
+ outputTokensPerSecond: 408.43,
36536
36709
  errorRate: 0,
36537
36710
  samples: 3
36538
36711
  },
36539
- "deepseek/deepseek-reasoner": {
36540
- measuredAt: "2026-07-21T10:21:31Z",
36541
- latencyMs: 4111.9,
36542
- p95LatencyMs: 5305.7,
36543
- outputTokensPerSecond: 16.46,
36712
+ "google/gemini-2.5-pro": {
36713
+ measuredAt: "2026-08-29T16:51:33Z",
36714
+ latencyMs: 28169.5,
36715
+ p95LatencyMs: 29491.4,
36716
+ outputTokensPerSecond: 147.3,
36544
36717
  errorRate: 0,
36545
36718
  samples: 3
36546
36719
  },
36547
- "deepseek/deepseek-chat": {
36548
- measuredAt: "2026-07-21T10:21:31Z",
36549
- latencyMs: 2648.6,
36550
- p95LatencyMs: 3524.1,
36551
- outputTokensPerSecond: 16.73,
36720
+ "google/gemini-3-flash-preview": {
36721
+ measuredAt: "2026-08-29T16:51:33Z",
36722
+ latencyMs: 4717.1,
36723
+ p95LatencyMs: 5037.1,
36724
+ outputTokensPerSecond: 198.71,
36552
36725
  errorRate: 0,
36553
36726
  samples: 3
36554
36727
  },
36555
- "moonshot/kimi-k2.7": {
36556
- measuredAt: "2026-07-21T10:21:31Z",
36557
- latencyMs: 4295.4,
36558
- p95LatencyMs: 6153.8,
36559
- outputTokensPerSecond: 18.54,
36728
+ "google/gemini-3.1-flash-lite": {
36729
+ measuredAt: "2026-08-29T16:51:33Z",
36730
+ latencyMs: 2855.8,
36731
+ p95LatencyMs: 3172.7,
36732
+ outputTokensPerSecond: 286.91,
36560
36733
  errorRate: 0,
36561
36734
  samples: 3
36562
36735
  },
36563
- "qwen/qwen3.7-max": {
36564
- measuredAt: "2026-07-21T10:21:31Z",
36565
- latencyMs: 30729.4,
36566
- p95LatencyMs: 39622,
36567
- outputTokensPerSecond: 36.89,
36568
- errorRate: 0.3333,
36736
+ "google/gemini-3.1-pro": {
36737
+ measuredAt: "2026-08-29T16:59:54Z",
36738
+ latencyMs: 24194.1,
36739
+ p95LatencyMs: 27269.6,
36740
+ outputTokensPerSecond: 109.47,
36741
+ errorRate: 0,
36569
36742
  samples: 3
36570
36743
  },
36571
- "xai/grok-4.3": {
36572
- measuredAt: "2026-07-21T10:21:31Z",
36573
- latencyMs: 6946.1,
36574
- p95LatencyMs: 9495.4,
36575
- outputTokensPerSecond: 65.3,
36744
+ "google/gemini-3.5-flash": {
36745
+ measuredAt: "2026-08-29T16:51:33Z",
36746
+ latencyMs: 5320.6,
36747
+ p95LatencyMs: 5429.8,
36748
+ outputTokensPerSecond: 226.21,
36576
36749
  errorRate: 0,
36577
36750
  samples: 3
36578
36751
  },
36579
- "xai/grok-4.20-reasoning": {
36580
- measuredAt: "2026-07-21T10:21:31Z",
36581
- latencyMs: 3472.4,
36582
- p95LatencyMs: 5332.4,
36583
- outputTokensPerSecond: 13.27,
36752
+ "google/gemini-3.5-flash-lite": {
36753
+ measuredAt: "2026-08-29T16:51:33Z",
36754
+ latencyMs: 3515.8,
36755
+ p95LatencyMs: 4363.4,
36756
+ outputTokensPerSecond: 248.9,
36584
36757
  errorRate: 0,
36585
36758
  samples: 3
36586
36759
  },
36587
- "xai/grok-4.20-non-reasoning": {
36588
- measuredAt: "2026-07-21T10:21:31Z",
36589
- latencyMs: 5174.4,
36590
- p95LatencyMs: 6081.7,
36591
- outputTokensPerSecond: 10.21,
36592
- errorRate: 0.3333,
36760
+ "google/gemini-3.6-flash": {
36761
+ measuredAt: "2026-08-29T16:51:33Z",
36762
+ latencyMs: 13020,
36763
+ p95LatencyMs: 15383.1,
36764
+ outputTokensPerSecond: 187.87,
36765
+ errorRate: 0,
36593
36766
  samples: 3
36594
36767
  },
36595
- "xai/grok-4-1-fast-reasoning": {
36596
- measuredAt: "2026-07-21T10:21:31Z",
36597
- latencyMs: 13148.2,
36598
- p95LatencyMs: 19104.2,
36599
- outputTokensPerSecond: 4.28,
36768
+ "minimax/minimax-m2.7": {
36769
+ measuredAt: "2026-08-29T16:51:33Z",
36770
+ latencyMs: 8761.1,
36771
+ p95LatencyMs: 10199.3,
36772
+ outputTokensPerSecond: 59.18,
36600
36773
  errorRate: 0,
36601
36774
  samples: 3
36602
36775
  },
36603
36776
  "minimax/minimax-m3": {
36604
- measuredAt: "2026-07-21T10:21:31Z",
36605
- latencyMs: 3385,
36606
- p95LatencyMs: 4247.2,
36607
- outputTokensPerSecond: 15.16,
36777
+ measuredAt: "2026-08-29T16:51:33Z",
36778
+ latencyMs: 11101.9,
36779
+ p95LatencyMs: 26087.1,
36780
+ outputTokensPerSecond: 101.12,
36608
36781
  errorRate: 0,
36609
36782
  samples: 3
36610
36783
  },
36611
- "minimax/minimax-m2.7": {
36612
- measuredAt: "2026-07-21T10:21:31Z",
36613
- latencyMs: 4596.7,
36614
- p95LatencyMs: 6884.6,
36615
- outputTokensPerSecond: 17.03,
36784
+ "moonshot/kimi-k3": {
36785
+ measuredAt: "2026-08-29T16:51:33Z",
36786
+ latencyMs: 24498.9,
36787
+ p95LatencyMs: 40365.3,
36788
+ outputTokensPerSecond: 25.11,
36616
36789
  errorRate: 0,
36617
36790
  samples: 3
36618
36791
  },
36619
- "zai/glm-5.2": {
36620
- measuredAt: "2026-07-21T10:21:31Z",
36621
- latencyMs: 4406.3,
36622
- p95LatencyMs: 6139.7,
36623
- outputTokensPerSecond: 10.41,
36792
+ "nvidia/mistral-nemotron": {
36793
+ measuredAt: "2026-08-29T16:51:33Z",
36794
+ latencyMs: 7349.6,
36795
+ p95LatencyMs: 9932.3,
36796
+ outputTokensPerSecond: 79.48,
36797
+ errorRate: 0.3333,
36798
+ samples: 3
36799
+ },
36800
+ "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning": {
36801
+ measuredAt: "2026-08-29T16:59:54Z",
36802
+ latencyMs: 9324.6,
36803
+ p95LatencyMs: 12992,
36804
+ outputTokensPerSecond: 64.96,
36805
+ errorRate: 0.3333,
36806
+ samples: 3
36807
+ },
36808
+ "nvidia/nemotron-nano-12b-v2-vl": {
36809
+ measuredAt: "2026-08-29T16:51:33Z",
36810
+ latencyMs: 5846.9,
36811
+ p95LatencyMs: 5846.9,
36812
+ outputTokensPerSecond: 87.57,
36813
+ errorRate: 0.6667,
36814
+ samples: 3
36815
+ },
36816
+ "nvidia/nemotron-nano-9b-v2": {
36817
+ measuredAt: "2026-08-29T16:51:33Z",
36818
+ latencyMs: 5282.5,
36819
+ p95LatencyMs: 5282.5,
36820
+ outputTokensPerSecond: 96.92,
36821
+ errorRate: 0.6667,
36822
+ samples: 3
36823
+ },
36824
+ "nvidia/step-3.7-flash": {
36825
+ measuredAt: "2026-08-29T16:51:33Z",
36826
+ latencyMs: 4617.4,
36827
+ p95LatencyMs: 5237.4,
36828
+ outputTokensPerSecond: 112.92,
36829
+ errorRate: 0.3333,
36830
+ samples: 3
36831
+ },
36832
+ "openai/chat-latest": {
36833
+ measuredAt: "2026-08-29T16:51:33Z",
36834
+ latencyMs: 3690.9,
36835
+ p95LatencyMs: 4344,
36836
+ outputTokensPerSecond: 111.85,
36624
36837
  errorRate: 0,
36625
36838
  samples: 3
36626
36839
  },
36627
- "zai/glm-5.1": {
36628
- measuredAt: "2026-07-21T10:21:31Z",
36629
- latencyMs: 7775.4,
36630
- p95LatencyMs: 9182.1,
36631
- outputTokensPerSecond: 6.08,
36840
+ "openai/gpt-4.1": {
36841
+ measuredAt: "2026-08-29T16:51:33Z",
36842
+ latencyMs: 3527.9,
36843
+ p95LatencyMs: 3831.7,
36844
+ outputTokensPerSecond: 141.27,
36845
+ errorRate: 0,
36846
+ samples: 3
36847
+ },
36848
+ "openai/gpt-4.1-mini": {
36849
+ measuredAt: "2026-08-29T16:51:33Z",
36850
+ latencyMs: 4268.2,
36851
+ p95LatencyMs: 5101.5,
36852
+ outputTokensPerSecond: 103.42,
36853
+ errorRate: 0,
36854
+ samples: 3
36855
+ },
36856
+ "openai/gpt-4.1-nano": {
36857
+ measuredAt: "2026-08-29T16:51:33Z",
36858
+ latencyMs: 3088.3,
36859
+ p95LatencyMs: 3369.2,
36860
+ outputTokensPerSecond: 150.31,
36861
+ errorRate: 0,
36862
+ samples: 3
36863
+ },
36864
+ "openai/gpt-4o": {
36865
+ measuredAt: "2026-08-29T16:51:33Z",
36866
+ latencyMs: 2995.2,
36867
+ p95LatencyMs: 3174.2,
36868
+ outputTokensPerSecond: 171.32,
36869
+ errorRate: 0,
36870
+ samples: 3
36871
+ },
36872
+ "openai/gpt-4o-mini": {
36873
+ measuredAt: "2026-08-29T16:51:33Z",
36874
+ latencyMs: 4751.5,
36875
+ p95LatencyMs: 4930.4,
36876
+ outputTokensPerSecond: 107.84,
36877
+ errorRate: 0,
36878
+ samples: 3
36879
+ },
36880
+ "openai/gpt-5-mini": {
36881
+ measuredAt: "2026-08-29T16:51:33Z",
36882
+ latencyMs: 4558.1,
36883
+ p95LatencyMs: 5081.9,
36884
+ outputTokensPerSecond: 113.25,
36885
+ errorRate: 0,
36886
+ samples: 3
36887
+ },
36888
+ "openai/gpt-5.2": {
36889
+ measuredAt: "2026-08-29T16:51:33Z",
36890
+ latencyMs: 5436.6,
36891
+ p95LatencyMs: 5928.8,
36892
+ outputTokensPerSecond: 95.47,
36893
+ errorRate: 0,
36894
+ samples: 3
36895
+ },
36896
+ "openai/gpt-5.3-codex": {
36897
+ measuredAt: "2026-08-29T16:59:54Z",
36898
+ latencyMs: 15290.4,
36899
+ p95LatencyMs: 15290.4,
36900
+ outputTokensPerSecond: 33.49,
36901
+ errorRate: 0.6667,
36902
+ samples: 3
36903
+ },
36904
+ "openai/gpt-5.4": {
36905
+ measuredAt: "2026-08-29T16:51:33Z",
36906
+ latencyMs: 5596,
36907
+ p95LatencyMs: 5919.4,
36908
+ outputTokensPerSecond: 91.67,
36909
+ errorRate: 0,
36910
+ samples: 3
36911
+ },
36912
+ "openai/gpt-5.4-mini": {
36913
+ measuredAt: "2026-08-29T16:51:33Z",
36914
+ latencyMs: 3377.8,
36915
+ p95LatencyMs: 3646.8,
36916
+ outputTokensPerSecond: 138.08,
36917
+ errorRate: 0,
36918
+ samples: 3
36919
+ },
36920
+ "openai/gpt-5.4-nano": {
36921
+ measuredAt: "2026-08-29T16:51:33Z",
36922
+ latencyMs: 4040.4,
36923
+ p95LatencyMs: 4205.9,
36924
+ outputTokensPerSecond: 118.52,
36925
+ errorRate: 0,
36926
+ samples: 3
36927
+ },
36928
+ "openai/gpt-5.5": {
36929
+ measuredAt: "2026-08-29T16:51:33Z",
36930
+ latencyMs: 6367.8,
36931
+ p95LatencyMs: 7330.7,
36932
+ outputTokensPerSecond: 81.29,
36933
+ errorRate: 0,
36934
+ samples: 3
36935
+ },
36936
+ "openai/gpt-5.6-luna": {
36937
+ measuredAt: "2026-08-29T16:51:33Z",
36938
+ latencyMs: 6064.5,
36939
+ p95LatencyMs: 7347.3,
36940
+ outputTokensPerSecond: 87.93,
36941
+ errorRate: 0,
36942
+ samples: 3
36943
+ },
36944
+ "openai/gpt-5.6-luna-pro": {
36945
+ measuredAt: "2026-08-29T16:59:54Z",
36946
+ latencyMs: 13914.9,
36947
+ p95LatencyMs: 13914.9,
36948
+ outputTokensPerSecond: 36.79,
36949
+ errorRate: 0.6667,
36950
+ samples: 3
36951
+ },
36952
+ "openai/gpt-5.6-sol": {
36953
+ measuredAt: "2026-08-29T16:51:33Z",
36954
+ latencyMs: 7720.2,
36955
+ p95LatencyMs: 9108.2,
36956
+ outputTokensPerSecond: 67.47,
36957
+ errorRate: 0,
36958
+ samples: 3
36959
+ },
36960
+ "openai/gpt-5.6-sol-pro": {
36961
+ measuredAt: "2026-08-29T16:51:33Z",
36962
+ latencyMs: 11442.7,
36963
+ p95LatencyMs: 13363.1,
36964
+ outputTokensPerSecond: 148.75,
36965
+ errorRate: 0,
36966
+ samples: 3
36967
+ },
36968
+ "openai/gpt-5.6-terra": {
36969
+ measuredAt: "2026-08-29T16:51:33Z",
36970
+ latencyMs: 4941,
36971
+ p95LatencyMs: 5095.3,
36972
+ outputTokensPerSecond: 103.69,
36973
+ errorRate: 0,
36974
+ samples: 3
36975
+ },
36976
+ "openai/gpt-5.6-terra-pro": {
36977
+ measuredAt: "2026-08-29T16:51:33Z",
36978
+ latencyMs: 3574.1,
36979
+ p95LatencyMs: 4126.3,
36980
+ outputTokensPerSecond: 133.59,
36981
+ errorRate: 0,
36982
+ samples: 3
36983
+ },
36984
+ "openai/o1": {
36985
+ measuredAt: "2026-08-29T16:51:33Z",
36986
+ latencyMs: 4324.9,
36987
+ p95LatencyMs: 5838.1,
36988
+ outputTokensPerSecond: 125.86,
36989
+ errorRate: 0,
36990
+ samples: 3
36991
+ },
36992
+ "openai/o3": {
36993
+ measuredAt: "2026-08-29T16:51:33Z",
36994
+ latencyMs: 5463.4,
36995
+ p95LatencyMs: 5613.1,
36996
+ outputTokensPerSecond: 93.8,
36997
+ errorRate: 0,
36998
+ samples: 3
36999
+ },
37000
+ "openai/o3-mini": {
37001
+ measuredAt: "2026-08-29T16:51:33Z",
37002
+ latencyMs: 2912.7,
37003
+ p95LatencyMs: 3092.1,
37004
+ outputTokensPerSecond: 176.49,
37005
+ errorRate: 0,
37006
+ samples: 3
37007
+ },
37008
+ "openai/o4-mini": {
37009
+ measuredAt: "2026-08-29T16:51:33Z",
37010
+ latencyMs: 4958.7,
37011
+ p95LatencyMs: 5313,
37012
+ outputTokensPerSecond: 103.81,
37013
+ errorRate: 0,
37014
+ samples: 3
37015
+ },
37016
+ "qwen/qwen3.7-flash": {
37017
+ measuredAt: "2026-08-29T16:51:33Z",
37018
+ latencyMs: 3385.5,
37019
+ p95LatencyMs: 4042.7,
37020
+ outputTokensPerSecond: 153.94,
37021
+ errorRate: 0,
37022
+ samples: 3
37023
+ },
37024
+ "qwen/qwen3.7-max": {
37025
+ measuredAt: "2026-08-29T16:51:33Z",
37026
+ latencyMs: 9387.1,
37027
+ p95LatencyMs: 10490.2,
37028
+ outputTokensPerSecond: 54.92,
37029
+ errorRate: 0,
37030
+ samples: 3
37031
+ },
37032
+ "qwen/qwen3.7-plus": {
37033
+ measuredAt: "2026-08-29T16:51:33Z",
37034
+ latencyMs: 9766.6,
37035
+ p95LatencyMs: 9798.2,
37036
+ outputTokensPerSecond: 52.42,
37037
+ errorRate: 0,
37038
+ samples: 3
37039
+ },
37040
+ "tencent/hy3": {
37041
+ measuredAt: "2026-08-29T16:51:33Z",
37042
+ latencyMs: 6062.3,
37043
+ p95LatencyMs: 7070.2,
37044
+ outputTokensPerSecond: 87.3,
37045
+ errorRate: 0,
37046
+ samples: 3
37047
+ },
37048
+ "xai/grok-4.3": {
37049
+ measuredAt: "2026-08-29T16:51:33Z",
37050
+ latencyMs: 9467.7,
37051
+ p95LatencyMs: 10087.9,
37052
+ outputTokensPerSecond: 48.36,
37053
+ errorRate: 0,
37054
+ samples: 3
37055
+ },
37056
+ "xai/grok-4.5": {
37057
+ measuredAt: "2026-08-29T16:51:33Z",
37058
+ latencyMs: 13564.8,
37059
+ p95LatencyMs: 17351.9,
37060
+ outputTokensPerSecond: 60.71,
37061
+ errorRate: 0,
37062
+ samples: 3
37063
+ },
37064
+ "xai/grok-build-0.1": {
37065
+ measuredAt: "2026-08-29T16:51:33Z",
37066
+ latencyMs: 16394.8,
37067
+ p95LatencyMs: 18035.4,
37068
+ outputTokensPerSecond: 96.86,
37069
+ errorRate: 0,
37070
+ samples: 3
37071
+ },
37072
+ "xiaomi/mimo-v2.5-pro": {
37073
+ measuredAt: "2026-08-29T16:51:33Z",
37074
+ latencyMs: 12070.7,
37075
+ p95LatencyMs: 12386.8,
37076
+ outputTokensPerSecond: 42.44,
36632
37077
  errorRate: 0,
36633
37078
  samples: 3
36634
37079
  },
36635
37080
  "zai/glm-5": {
36636
- measuredAt: "2026-07-21T10:21:31Z",
36637
- latencyMs: 4159.4,
36638
- p95LatencyMs: 4992.7,
36639
- outputTokensPerSecond: 10.28,
37081
+ measuredAt: "2026-08-29T16:51:33Z",
37082
+ latencyMs: 6839.7,
37083
+ p95LatencyMs: 7261.4,
37084
+ outputTokensPerSecond: 75.16,
36640
37085
  errorRate: 0,
36641
37086
  samples: 3
36642
37087
  },
36643
- "free/qwen3-coder-480b": {
36644
- measuredAt: "2026-07-21T10:21:31Z",
36645
- latencyMs: 2063.9,
36646
- p95LatencyMs: 3646.3,
36647
- outputTokensPerSecond: 39.8,
37088
+ "zai/glm-5-turbo": {
37089
+ measuredAt: "2026-08-29T16:51:33Z",
37090
+ latencyMs: 55348.5,
37091
+ p95LatencyMs: 114086.6,
37092
+ outputTokensPerSecond: 14.64,
37093
+ errorRate: 0,
37094
+ samples: 3
37095
+ },
37096
+ "zai/glm-5.1": {
37097
+ measuredAt: "2026-08-29T16:51:33Z",
37098
+ latencyMs: 15658.4,
37099
+ p95LatencyMs: 17307.1,
37100
+ outputTokensPerSecond: 32.9,
36648
37101
  errorRate: 0,
36649
37102
  samples: 3
36650
37103
  },
36651
- "free/mistral-large-3-675b": {
36652
- measuredAt: "2026-07-21T10:21:31Z",
36653
- latencyMs: 3147.5,
36654
- p95LatencyMs: 5555.3,
36655
- outputTokensPerSecond: 27.76,
37104
+ "zai/glm-5.2": {
37105
+ measuredAt: "2026-08-29T16:51:33Z",
37106
+ latencyMs: 10308.5,
37107
+ p95LatencyMs: 15127.6,
37108
+ outputTokensPerSecond: 54.87,
36656
37109
  errorRate: 0,
36657
37110
  samples: 3
36658
37111
  },
36659
- "free/nemotron-3-nano-omni-30b-a3b-reasoning": {
36660
- measuredAt: "2026-07-21T10:21:31Z",
36661
- latencyMs: 6508.4,
36662
- p95LatencyMs: 14252.7,
36663
- outputTokensPerSecond: 68.26,
37112
+ "zai/glm-5.3": {
37113
+ measuredAt: "2026-08-29T16:51:33Z",
37114
+ latencyMs: 7272.4,
37115
+ p95LatencyMs: 7998.1,
37116
+ outputTokensPerSecond: 71.09,
36664
37117
  errorRate: 0,
36665
37118
  samples: 3
36666
37119
  },
36667
- "free/glm-4.7": {
36668
- measuredAt: "2026-07-21T10:21:31Z",
36669
- latencyMs: 2014.8,
36670
- p95LatencyMs: 3039.9,
36671
- outputTokensPerSecond: 39.92,
37120
+ "zai/glm-5.3-flash": {
37121
+ measuredAt: "2026-08-29T16:51:33Z",
37122
+ latencyMs: 10545.3,
37123
+ p95LatencyMs: 11672.4,
37124
+ outputTokensPerSecond: 49.01,
36672
37125
  errorRate: 0,
36673
37126
  samples: 3
36674
37127
  }
@@ -36682,11 +37135,6 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36682
37135
  latencyMs: 2305,
36683
37136
  outputTokensPerSecond: 140.6
36684
37137
  },
36685
- "anthropic/claude-opus-4.6": {
36686
- measuredAt: "2026-03-16T13:50:48Z",
36687
- latencyMs: 2139,
36688
- outputTokensPerSecond: 119.7
36689
- },
36690
37138
  "anthropic/claude-sonnet-4.6": {
36691
37139
  measuredAt: "2026-03-16T13:50:48Z",
36692
37140
  latencyMs: 2110,
@@ -36720,11 +37168,6 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36720
37168
  latencyMs: 1609,
36721
37169
  outputTokensPerSecond: 167.2
36722
37170
  },
36723
- "moonshot/kimi-k2.5": {
36724
- measuredAt: "2026-03-16T13:50:48Z",
36725
- latencyMs: 1646,
36726
- outputTokensPerSecond: 155.7
36727
- },
36728
37171
  "openai/gpt-4o-mini": {
36729
37172
  measuredAt: "2026-03-16T13:50:48Z",
36730
37173
  latencyMs: 2764,
@@ -36734,18 +37177,6 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36734
37177
  measuredAt: "2026-03-16T13:50:48Z",
36735
37178
  latencyMs: 7935,
36736
37179
  outputTokensPerSecond: 32.3
36737
- },
36738
- "xai/grok-4-1-fast-non-reasoning": {
36739
- measuredAt: "2026-03-16T13:50:48Z",
36740
- latencyMs: 1244,
36741
- outputTokensPerSecond: 205.8,
36742
- intelligenceIndex: 41
36743
- },
36744
- "xai/grok-4-1-fast-reasoning": {
36745
- measuredAt: "2026-03-16T13:50:48Z",
36746
- latencyMs: 1454,
36747
- outputTokensPerSecond: 176.2,
36748
- intelligenceIndex: 41
36749
37180
  }
36750
37181
  });
36751
37182
  DEFAULT_PORTFOLIO_WEIGHTS = {
@@ -36902,7 +37333,7 @@ ${value.slice(-(scanLimit - prefixLength))}`;
36902
37333
  }
36903
37334
  };
36904
37335
  DEFAULT_ROUTING_CONFIG = {
36905
- version: "3.4",
37336
+ version: "3.5",
36906
37337
  strategy: "portfolio",
36907
37338
  portfolio: {
36908
37339
  auto: {
@@ -37956,95 +38387,129 @@ ${value.slice(-(scanLimit - prefixLength))}`;
37956
38387
  // Below this confidence → ambiguous (null tier)
37957
38388
  confidenceThreshold: 0.7
37958
38389
  },
38390
+ // ─── Tier chains ───
38391
+ //
38392
+ // Catalog refresh 2026-08-29 (V3.5). Every chain below names only models
38393
+ // the public catalog lists (GET https://blockrun.ai/api/v1/models). Ids the
38394
+ // gateway withholds (`hidden: true`) — kimi-k2.5/k2.6/k2.7, the grok-4-fast
38395
+ // and grok-4-1-fast pairs, grok-4-0709, claude-opus-4.6, gemini-3-pro-preview,
38396
+ // the whole `free/*` namespace — were removed everywhere, including fallback
38397
+ // rungs, so a routed model is always one a user can find on blockrun.ai/models.
38398
+ //
38399
+ // Primaries moved only where portfolio.ts already carries calibration
38400
+ // evidence for the successor (Sonnet 5 over Sonnet 4.6, GPT-5 Mini for
38401
+ // agentic MEDIUM, Gemini 3.5 Flash where Kimi K2.7 was). Newcomers with no
38402
+ // trajectory evidence yet (gemini-3.6-flash, glm-5.3, glm-5.3-flash,
38403
+ // gpt-5.6-luna, grok-4.3, minimax-m3, qwen3.7-plus) enter as fallback rungs;
38404
+ // promotion waits for a calibration run, because version recency is not a
38405
+ // quality signal.
38406
+ //
38407
+ // Latency figures in comments are the 2026-08-29 gateway probe
38408
+ // (model-profiles.generated.json); prices are the catalog list.
37959
38409
  // Auto (balanced) tier configs - current default smart routing
37960
- // Benchmark-tuned 2026-03-16: balancing quality (retention) + latency
37961
38410
  tiers: {
37962
38411
  SIMPLE: {
37963
38412
  primary: "google/gemini-2.5-flash",
37964
- // 1,238ms, IQ 20, 60% retention (best) — fast AND quality
38413
+ // $0.30/$2.50 — 60% retention (best) in the 2026-03 run; still the fastest quality answer
37965
38414
  fallback: [
37966
38415
  "google/gemini-3-flash-preview",
37967
- // 1,398ms, IQ 46 — smarter fallback
38416
+ // $0.50/$3 — GPQA 5/6 in the 2026-07 calibration
38417
+ "google/gemini-3.5-flash-lite",
38418
+ // $0.30/$2.50, 1M ctx, thinking mode — same price as 2.5 Flash, newer generation
37968
38419
  "deepseek/deepseek-chat",
37969
- // V4 Flash chat ($0.20/$0.40, 1M ctx) — repriced 2026-04-24
37970
- "moonshot/kimi-k2.5",
37971
- // 1,646ms, IQ 47, strong quality
38420
+ // $0.14/$0.28, 1M ctx
37972
38421
  "google/gemini-3.1-flash-lite",
37973
- // $0.25/$1.50, 1M context — newest flash-lite
37974
- "google/gemini-2.5-flash-lite",
37975
- // 1,353ms, $0.10/$0.40
38422
+ // $0.25/$1.50, 1M ctx
38423
+ "openai/gpt-5.6-luna",
38424
+ // $0.20/$1.20, 1M ctx — GPT-5.6 cost tier (cut 2026-07-30)
37976
38425
  "openai/gpt-5.4-nano",
37977
- // $0.20/$1.25, 1M context
37978
- "xai/grok-4-fast-non-reasoning",
37979
- // 1,143ms, $0.20/$0.50 — fast fallback
38426
+ // $0.20/$1.25, 1M ctx
38427
+ "google/gemini-2.5-flash-lite",
38428
+ // $0.10/$0.40
37980
38429
  "nvidia/step-3.7-flash"
37981
- // FREE backstop — new NVIDIA free tier (gpt-oss-120b now 400s; probed 2026-08-21)
38430
+ // FREE backstop — NVIDIA free tier (probed 2026-08-21)
37982
38431
  ]
37983
38432
  },
37984
38433
  MEDIUM: {
37985
- primary: "moonshot/kimi-k2.7",
37986
- // $0.95/$4.00, 256K ctx, multi-modal + reasoning — Moonshot flagship; promoted from K2.6 (2026-06-14) after BlockRun added K2.7 + hid K2.6. Same price as K2.6.
38434
+ // Was moonshot/kimi-k2.7 (hidden 2026-08). Gemini 3.5 Flash is the
38435
+ // calibrated successor: MGSM 5/5, GPQA 4/6, extraction band (portfolio.ts).
38436
+ primary: "google/gemini-3.5-flash",
38437
+ // $1.50/$9, 1M ctx, vision + tools
37987
38438
  fallback: [
37988
- "moonshot/kimi-k2.6",
37989
- // identical-cost in-family hot swap (K2.6 still routable)
37990
- "moonshot/kimi-k2.5",
37991
- // $0.60/$3.00 — graceful-degradation backstop
38439
+ "google/gemini-3.6-flash",
38440
+ // $1.50/$7.50 — newest Flash, output 17% cheaper than 3.5; awaiting calibration
38441
+ "zai/glm-5.3-flash",
38442
+ // $0.15/$0.50, 1M ctx, vision + tools verified live 2026-08-27
38443
+ "openai/gpt-5.6-terra",
38444
+ // $2/$12, 1M ctx — GPT-5.6 balanced tier
37992
38445
  "google/gemini-3-flash-preview",
37993
- // 1,398ms, IQ 46 — nearly same IQ, faster + cheaper
38446
+ // $0.50/$3
37994
38447
  "deepseek/deepseek-chat",
37995
- // 1,431ms, IQ 32, 41% retention
38448
+ // $0.14/$0.28
37996
38449
  "google/gemini-2.5-flash",
37997
- // 1,238ms, 60% retention
38450
+ // $0.30/$2.50
38451
+ "minimax/minimax-m3",
38452
+ // $0.30/$1.20, 1M ctx
37998
38453
  "google/gemini-3.1-flash-lite",
37999
- // $0.25/$1.50, 1M context
38000
- "google/gemini-2.5-flash-lite",
38001
- // 1,353ms, $0.10/$0.40
38002
- "xai/grok-4-1-fast-non-reasoning",
38003
- // 1,244ms, fast fallback
38004
- "xai/grok-3-mini"
38005
- // 1,202ms, $0.30/$0.50
38454
+ // $0.25/$1.50
38455
+ "openai/gpt-5.6-luna",
38456
+ // $0.20/$1.20
38457
+ "google/gemini-2.5-flash-lite"
38458
+ // $0.10/$0.40
38006
38459
  ]
38007
38460
  },
38008
38461
  COMPLEX: {
38009
38462
  primary: "google/gemini-3.1-pro",
38010
- // 1,609ms, IQ 57 — fast flagship quality
38463
+ // $2/$12 — proven long-context flagship (portfolio.ts long_context lead)
38011
38464
  fallback: [
38012
- "google/gemini-3-flash-preview",
38013
- // 1,398ms, IQ 46 — fast + smart
38014
- "xai/grok-4-0709",
38015
- // 1,348ms, IQ 41
38016
- "google/gemini-2.5-pro",
38017
- // 1,294ms
38465
+ "google/gemini-3.6-flash",
38466
+ // $1.50/$7.50 — Pro-level quality at Flash price (Google's claim; uncalibrated here)
38467
+ "google/gemini-3.5-flash",
38468
+ // $1.50/$9 — calibrated
38018
38469
  "anthropic/claude-sonnet-5",
38019
- // near-Opus quality at Sonnet cost, 1M ctx
38470
+ // $3/$15 — near-Opus quality, tau2 + Terminal-Bench calibrated
38471
+ "xai/grok-4.5",
38472
+ // $2.50/$9 — 503-resistant, independent infra (was grok-4-0709, now hidden)
38473
+ "google/gemini-2.5-pro",
38474
+ // $1.25/$10
38020
38475
  "anthropic/claude-sonnet-4.6",
38021
- // 2,110ms, IQ 52 — quality fallback
38022
- "deepseek/deepseek-chat",
38023
- // 1,431ms, IQ 32
38024
- "google/gemini-2.5-flash",
38025
- // 1,238ms, IQ 20 — cheap last resort
38476
+ // $3/$15
38026
38477
  "openai/gpt-5.6-terra",
38027
- // GPT-5.6 balanced tier — newest generation, stable (Sol excluded: #202)
38478
+ // $2/$12 — GPT-5.6 balanced tier (Sol excluded: #202)
38028
38479
  "openai/gpt-5.5",
38029
- // Prior OpenAI flagship — 1M+ ctx, native agent + computer use; benchmark TBD
38030
- "openai/gpt-5.4"
38031
- // 6,213ms, IQ 57 — previous flagship, benchmarked
38480
+ // $5/$30 — prior OpenAI flagship
38481
+ "openai/gpt-5.4",
38482
+ // $2.50/$15 — previous flagship, benchmarked
38483
+ "zai/glm-5.3",
38484
+ // $1.40/$4.40, 1M ctx, always-on thinking — verified live 2026-08-19
38485
+ "moonshot/kimi-k3",
38486
+ // $3/$15, 1M ctx — Moonshot flagship (K2.7 successor)
38487
+ "deepseek/deepseek-v4-pro",
38488
+ // $0.435/$0.87 — strongest open-weight reasoner
38489
+ "deepseek/deepseek-chat",
38490
+ // $0.14/$0.28 — cheap last resort
38491
+ "google/gemini-2.5-flash"
38492
+ // $0.30/$2.50
38032
38493
  ]
38033
38494
  },
38034
38495
  REASONING: {
38035
- primary: "xai/grok-4-1-fast-reasoning",
38036
- // 1,454ms, $0.20/$0.50
38496
+ // Was xai/grok-4-1-fast-reasoning ($0.20/$0.50, hidden 2026-08). DeepSeek
38497
+ // Reasoner is the cheapest listed reasoner at the same 1M context.
38498
+ primary: "deepseek/deepseek-reasoner",
38499
+ // $0.14/$0.28, 1M ctx
38037
38500
  fallback: [
38038
- "xai/grok-4-fast-reasoning",
38039
- // 1,298ms, $0.20/$0.50
38040
- "deepseek/deepseek-reasoner",
38041
- // V4 Flash thinking ($0.20/$0.40, 1M ctx)
38042
38501
  "deepseek/deepseek-v4-pro",
38043
- // V4 Pro flagship ($0.50/$1.00 promo through 2026-05-31, list $2/$4) — strongest open-weight reasoner
38502
+ // $0.435/$0.87 — calibrated reasoning band 0.95
38503
+ "xai/grok-4.3",
38504
+ // $1.50/$4, 1M ctx — xAI reasoning model, vision
38505
+ "qwen/qwen3.7-plus",
38506
+ // $0.32/$1.28, 1M ctx — reasoning; needs a generous max_tokens (thinking is billed)
38507
+ "google/gemini-3.5-flash",
38508
+ // $1.50/$9 — MGSM 5/5
38044
38509
  "openai/o4-mini",
38045
- // 2,328ms ($1.10/$4.40)
38510
+ // $1.10/$4.40
38046
38511
  "openai/o3"
38047
- // 2,862ms
38512
+ // $2/$8
38048
38513
  ]
38049
38514
  }
38050
38515
  },
@@ -38052,90 +38517,119 @@ ${value.slice(-(scanLimit - prefixLength))}`;
38052
38517
  ecoTiers: {
38053
38518
  SIMPLE: {
38054
38519
  primary: "nvidia/step-3.7-flash",
38055
- // FREE! $0.00/$0.00 — new NVIDIA free tier flagship
38520
+ // FREE — NVIDIA free tier flagship
38056
38521
  fallback: [
38057
38522
  "nvidia/nemotron-nano-9b-v2",
38058
- // FREE — compact + fast (~0.7s), high-volume light tasks
38059
- // This head keeps rotting with NVIDIA's free hosting: deepseek-v4-flash
38060
- // (410, 2026-08-12), seed-oss-36b (410, 2026-08-03), then gpt-oss-120b/20b
38061
- // (400 Unknown model, probed 2026-08-21). Each retirement retargets the
38062
- // two free rungs to the current free tier; the paid rungs below never move.
38063
- "google/gemini-3.1-flash-lite",
38064
- // $0.25/$1.50 — newest flash-lite
38065
- "openai/gpt-5.4-nano",
38066
- // $0.20/$1.25 — fast nano
38523
+ // FREE — compact + fast, high-volume light tasks
38524
+ // The free head keeps rotting with NVIDIA's hosting (deepseek-v4-flash
38525
+ // 410 2026-08-12, seed-oss-36b 410 2026-08-03, gpt-oss-120b/20b 400
38526
+ // 2026-08-21). Each retirement retargets the two free rungs to the
38527
+ // current free tier; the paid rungs below never move.
38067
38528
  "google/gemini-2.5-flash-lite",
38068
- // $0.10/$0.40
38069
- "xai/grok-4-fast-non-reasoning"
38070
- // $0.20/$0.50
38529
+ // $0.10/$0.40 — cheapest paid rung
38530
+ "zai/glm-5.3-flash",
38531
+ // $0.15/$0.50, 1M ctx, vision + tools
38532
+ "openai/gpt-5.6-luna",
38533
+ // $0.20/$1.20, 1M ctx
38534
+ "openai/gpt-5.4-nano",
38535
+ // $0.20/$1.25
38536
+ "google/gemini-3.1-flash-lite"
38537
+ // $0.25/$1.50
38071
38538
  ]
38072
38539
  },
38073
38540
  MEDIUM: {
38074
- primary: "google/gemini-3.1-flash-lite",
38075
- // $0.25/$1.50 — newest flash-lite
38541
+ primary: "zai/glm-5.3-flash",
38542
+ // $0.15/$0.50, 1M ctx, vision + tools verified live — cheapest full-capability model
38076
38543
  fallback: [
38544
+ "deepseek/deepseek-chat",
38545
+ // $0.14/$0.28
38546
+ "google/gemini-3.1-flash-lite",
38547
+ // $0.25/$1.50
38548
+ "openai/gpt-5.6-luna",
38549
+ // $0.20/$1.20
38077
38550
  "openai/gpt-5.4-nano",
38078
38551
  // $0.20/$1.25
38079
38552
  "google/gemini-2.5-flash-lite",
38080
38553
  // $0.10/$0.40
38081
- "xai/grok-4-fast-non-reasoning",
38082
38554
  "google/gemini-2.5-flash"
38555
+ // $0.30/$2.50
38083
38556
  ]
38084
38557
  },
38085
38558
  COMPLEX: {
38086
- primary: "google/gemini-3.1-flash-lite",
38087
- // $0.25/$1.50
38559
+ primary: "zai/glm-5.3-flash",
38560
+ // $0.15/$0.50, 1M ctx
38088
38561
  fallback: [
38089
- "google/gemini-2.5-flash-lite",
38090
- "xai/grok-4-0709",
38091
- "google/gemini-2.5-flash",
38092
- "deepseek/deepseek-chat"
38562
+ "deepseek/deepseek-chat",
38563
+ // $0.14/$0.28, 1M ctx
38564
+ "minimax/minimax-m3",
38565
+ // $0.30/$1.20, 1M ctx
38566
+ "deepseek/deepseek-v4-pro",
38567
+ // $0.435/$0.87
38568
+ "google/gemini-3.1-flash-lite",
38569
+ // $0.25/$1.50
38570
+ "google/gemini-2.5-flash"
38571
+ // $0.30/$2.50
38093
38572
  ]
38094
38573
  },
38095
38574
  REASONING: {
38096
- primary: "xai/grok-4-1-fast-reasoning",
38097
- // $0.20/$0.50
38575
+ primary: "deepseek/deepseek-reasoner",
38576
+ // $0.14/$0.28, 1M ctx — cheapest listed reasoner
38098
38577
  fallback: [
38099
- "xai/grok-4-fast-reasoning",
38100
- "deepseek/deepseek-reasoner",
38101
- // V4 Flash thinking — $0.20/$0.40
38102
- "deepseek/deepseek-v4-pro"
38103
- // V4 Pro flagship — $0.50/$1.00 promo, post-promo $2/$4
38578
+ "deepseek/deepseek-v4-pro",
38579
+ // $0.435/$0.87
38580
+ "qwen/qwen3.7-plus",
38581
+ // $0.32/$1.28 — reasoning
38582
+ "minimax/minimax-m3",
38583
+ // $0.30/$1.20 — reasoning + coding
38584
+ "zai/glm-5.3-flash"
38585
+ // $0.15/$0.50 — reasoning tokens alongside content
38104
38586
  ]
38105
38587
  }
38106
38588
  },
38107
38589
  // Premium tier configs - best quality (blockrun/premium)
38108
- // codex=complex coding, kimi=simple coding, sonnet=reasoning/instructions, opus=architecture/PM/audits
38590
+ // codex=complex coding, flash=simple coding, sonnet=reasoning/instructions, fable/opus=architecture/PM/audits
38109
38591
  premiumTiers: {
38110
38592
  SIMPLE: {
38111
- primary: "moonshot/kimi-k2.7",
38112
- // $0.95/$4.00 - Moonshot flagship (256K ctx, multi-modal + reasoning); promoted from K2.6 (2026-06-14), same price
38593
+ // Was moonshot/kimi-k2.7 (hidden 2026-08).
38594
+ primary: "google/gemini-3.5-flash",
38595
+ // $1.50/$9, 1M ctx, vision + tools — calibrated
38113
38596
  fallback: [
38114
- "moonshot/kimi-k2.6",
38115
- // identical-cost in-family hot swap (K2.6 still routable)
38116
- "moonshot/kimi-k2.5",
38117
- // $0.60/$3.00 - proven reliable backstop when Moonshot direct API falters
38118
- "google/gemini-2.5-flash",
38119
- // 60% retention, fast growth
38597
+ "google/gemini-3.6-flash",
38598
+ // $1.50/$7.50 — newest Flash
38120
38599
  "anthropic/claude-haiku-4.5",
38121
- "google/gemini-2.5-flash-lite",
38600
+ // $1/$5
38601
+ "zai/glm-5.3",
38602
+ // $1.40/$4.40, 1M ctx
38603
+ "google/gemini-2.5-flash",
38604
+ // $0.30/$2.50
38605
+ "google/gemini-3.5-flash-lite",
38606
+ // $0.30/$2.50
38122
38607
  "deepseek/deepseek-chat"
38608
+ // $0.14/$0.28
38123
38609
  ]
38124
38610
  },
38125
38611
  MEDIUM: {
38126
38612
  primary: "openai/gpt-5.3-codex",
38127
- // $1.75/$14 - 400K context, 128K output, replaces 5.2
38613
+ // $1.75/$14 - 400K context, 128K output — code_edit/debug lead (portfolio.ts)
38128
38614
  fallback: [
38129
- "moonshot/kimi-k2.7",
38130
- // Moonshot flagship
38131
- "moonshot/kimi-k2.6",
38132
- "moonshot/kimi-k2.5",
38133
- "google/gemini-2.5-flash",
38134
- // 60% retention, good coding capability
38135
- "google/gemini-2.5-pro",
38136
- "xai/grok-4-0709",
38137
38615
  "anthropic/claude-sonnet-5",
38138
- "anthropic/claude-sonnet-4.6"
38616
+ // $3/$15 — code_agent band 0.98
38617
+ "moonshot/kimi-k3",
38618
+ // $3/$15, 1M ctx — Moonshot flagship
38619
+ "zai/glm-5.3",
38620
+ // $1.40/$4.40 — long-horizon coding
38621
+ "google/gemini-3.6-flash",
38622
+ // $1.50/$7.50
38623
+ "google/gemini-3.5-flash",
38624
+ // $1.50/$9
38625
+ "google/gemini-2.5-pro",
38626
+ // $1.25/$10
38627
+ "xai/grok-4.5",
38628
+ // $2.50/$9
38629
+ "anthropic/claude-sonnet-4.6",
38630
+ // $3/$15
38631
+ "openai/gpt-5.6-terra"
38632
+ // $2/$12
38139
38633
  ]
38140
38634
  },
38141
38635
  COMPLEX: {
@@ -38145,8 +38639,8 @@ ${value.slice(-(scanLimit - prefixLength))}`;
38145
38639
  // Best quality for complex tasks — Mythos-class flagship above Opus ($10/$50, 1M ctx, always-on thinking)
38146
38640
  // Fallback chain de-Gemini'd 2026-04-22: when Anthropic 503s, Gemini is
38147
38641
  // also prone to "high demand" 503s (correlated failure — everyone falls
38148
- // back to Google at the same time). Prefer xAI Grok → Moonshot → OpenAI
38149
- // flagship → DeepSeek → NVIDIA free instead.
38642
+ // back to Google at the same time). Prefer in-family → xAI → Moonshot →
38643
+ // OpenAI flagship → Z.AI → DeepSeek → NVIDIA free instead.
38150
38644
  fallback: [
38151
38645
  "anthropic/claude-opus-5",
38152
38646
  // in-family hot swap first (half the price, 1M ctx + adaptive thinking)
@@ -38154,52 +38648,54 @@ ${value.slice(-(scanLimit - prefixLength))}`;
38154
38648
  // in-family hot swap (identical cost to 5)
38155
38649
  "anthropic/claude-opus-4.7",
38156
38650
  // in-family hot swap (identical cost to 4.8)
38157
- "anthropic/claude-opus-4.6",
38158
- // in-family hot swap
38159
38651
  "anthropic/claude-sonnet-5",
38160
38652
  // Sonnet-tier drop-down, near-Opus quality
38161
38653
  "anthropic/claude-sonnet-4.6",
38162
38654
  "xai/grok-4.5",
38163
- // xAI flagship — 503-resistant, direct-xAI SKU (added 2026-07-14)
38164
- "xai/grok-4-0709",
38165
- // 503-resistant flagship
38166
- "moonshot/kimi-k2.7",
38655
+ // xAI flagship — 503-resistant, direct-xAI SKU
38656
+ "moonshot/kimi-k3",
38167
38657
  // Moonshot flagship, independent infra
38168
- "moonshot/kimi-k2.6",
38169
- "moonshot/kimi-k2.5",
38170
38658
  "openai/gpt-5.6-terra",
38171
- // GPT-5.6 balanced tier — newest generation, stable (Sol excluded: #202)
38659
+ // GPT-5.6 balanced tier — stable (Sol excluded: #202)
38172
38660
  "openai/gpt-5.5",
38173
38661
  // Prior OpenAI flagship — 1M+ ctx, native agent + computer use
38174
38662
  "openai/gpt-5.4",
38175
38663
  // Previous flagship (slow but stable, benchmarked at 6,213ms)
38176
38664
  "openai/gpt-5.3-codex",
38665
+ "zai/glm-5.3",
38666
+ // Z.AI flagship, 1M ctx
38667
+ "deepseek/deepseek-v4-pro",
38668
+ // strongest open-weight reasoner
38177
38669
  "deepseek/deepseek-chat",
38178
38670
  // Cheap, reliable
38179
38671
  "nvidia/step-3.7-flash"
38180
- // NVIDIA free ultimate backstop (was gpt-oss-120b; 400s since ~2026-08)
38672
+ // NVIDIA free ultimate backstop
38181
38673
  ]
38182
38674
  },
38183
38675
  REASONING: {
38184
- primary: "anthropic/claude-sonnet-4.6",
38185
- // 2,110ms, $3/$15 - best for reasoning/instructions
38676
+ // Sonnet 5 promoted over Sonnet 4.6 (same price; reasoning band 0.98 for both,
38677
+ // plus Sonnet 5's tau2/BrowseComp trajectory evidence).
38678
+ primary: "anthropic/claude-sonnet-5",
38679
+ // $3/$15, 1M ctx, adaptive thinking
38186
38680
  fallback: [
38187
- "anthropic/claude-sonnet-5",
38188
- // in-family hot swap — same cost, adaptive thinking, 1M ctx
38681
+ "anthropic/claude-sonnet-4.6",
38682
+ // in-family hot swap — same cost
38189
38683
  "anthropic/claude-opus-5",
38190
38684
  // Newest flagship Opus w/ adaptive thinking
38191
38685
  "anthropic/claude-opus-4.8",
38192
38686
  // Prior flagship Opus — identical cost to 5
38193
38687
  "anthropic/claude-opus-4.7",
38194
38688
  // Flagship Opus w/ adaptive thinking
38195
- "anthropic/claude-opus-4.6",
38196
- // 2,139ms
38197
- "xai/grok-4-1-fast-reasoning",
38198
- // 1,454ms, cheap fast reasoning
38689
+ "xai/grok-4.5",
38690
+ // reasoning band 0.94
38691
+ "deepseek/deepseek-v4-pro",
38692
+ // reasoning band 0.95
38693
+ "xai/grok-4.3",
38694
+ // $1.50/$4 — xAI reasoning model
38199
38695
  "openai/o4-mini",
38200
- // 2,328ms ($1.10/$4.40)
38696
+ // $1.10/$4.40
38201
38697
  "openai/o3"
38202
- // 2,862ms
38698
+ // $2/$8
38203
38699
  ]
38204
38700
  }
38205
38701
  },
@@ -38209,101 +38705,102 @@ ${value.slice(-(scanLimit - prefixLength))}`;
38209
38705
  primary: "openai/gpt-4o-mini",
38210
38706
  // $0.15/$0.60 - best tool compliance at lowest cost
38211
38707
  fallback: [
38212
- "moonshot/kimi-k2.5",
38213
- // 1,646ms, strong tool use quality
38708
+ "openai/gpt-5.6-luna",
38709
+ // $0.20/$1.20 — lightweight agentic tier of GPT-5.6
38710
+ "zai/glm-5.3-flash",
38711
+ // $0.15/$0.50 — tool calls verified live 2026-08-27
38214
38712
  "anthropic/claude-haiku-4.5",
38215
- // 2,305ms
38216
- "xai/grok-4-1-fast-non-reasoning"
38217
- // 1,244ms, fast fallback
38713
+ // $1/$5
38714
+ "google/gemini-2.5-flash"
38715
+ // $0.30/$2.50
38218
38716
  ]
38219
38717
  },
38220
38718
  MEDIUM: {
38221
- primary: "moonshot/kimi-k2.7",
38222
- // $0.95/$4.00 — Moonshot flagship, strong tool use; promoted from K2.6 (2026-06-14) after BlockRun added K2.7 + hid K2.6. Same price.
38719
+ // Was moonshot/kimi-k2.7 (hidden 2026-08). GPT-5 Mini carries the
38720
+ // Terminal-Bench and tau2 trajectory evidence in portfolio.ts.
38721
+ primary: "openai/gpt-5-mini",
38722
+ // $0.25/$2 — 4/7 Terminal-Bench, 5/6 tau2 airline
38223
38723
  fallback: [
38224
- "moonshot/kimi-k2.6",
38225
- // identical-cost in-family hot swap (K2.6 still routable)
38226
- "moonshot/kimi-k2.5",
38227
- // $0.60/$3.00 — graceful-degradation backstop
38228
- "xai/grok-4-1-fast-non-reasoning",
38229
- // 1,244ms, fast fallback
38724
+ "google/gemini-3.5-flash",
38725
+ // $1.50/$9 — tool_agent band 0.88
38726
+ "zai/glm-5.3-flash",
38727
+ // $0.15/$0.50 — tools verified
38728
+ "openai/gpt-5.6-terra",
38729
+ // $2/$12
38230
38730
  "openai/gpt-4o-mini",
38231
- // 2,764ms, reliable tool calling
38731
+ // $0.15/$0.60 — reliable tool calling
38232
38732
  "anthropic/claude-haiku-4.5",
38233
- // 2,305ms
38234
- "deepseek/deepseek-chat"
38235
- // 1,431ms
38733
+ // $1/$5
38734
+ "deepseek/deepseek-chat",
38735
+ // $0.14/$0.28
38736
+ "moonshot/kimi-k3"
38737
+ // $3/$15 — tool_agent band 0.85
38236
38738
  ]
38237
38739
  },
38238
38740
  COMPLEX: {
38239
- primary: "anthropic/claude-sonnet-4.6",
38240
- // 2,110ms — best agentic quality
38741
+ // Sonnet 5 promoted over Sonnet 4.6: tau2 airline + retail reward 1.0,
38742
+ // Terminal-Bench safety band lead (portfolio.ts).
38743
+ primary: "anthropic/claude-sonnet-5",
38744
+ // $3/$15 — best agentic quality per trajectory evidence
38241
38745
  // Fallback chain de-Gemini'd 2026-04-22: Gemini's "high demand" 503s
38242
38746
  // correlate with Anthropic outages (everyone falls back together).
38243
38747
  // Prefer 503-resistant providers first.
38244
38748
  fallback: [
38245
- "anthropic/claude-sonnet-5",
38246
- // in-family hot swap — same cost, near-Opus agentic quality
38749
+ "anthropic/claude-sonnet-4.6",
38750
+ // in-family hot swap — same cost
38247
38751
  "anthropic/claude-opus-5",
38248
38752
  // Newest flagship Opus — in-family hot swap
38249
38753
  "anthropic/claude-opus-4.8",
38250
38754
  // Prior flagship Opus — identical cost to 5
38251
38755
  "anthropic/claude-opus-4.7",
38252
38756
  // Flagship Opus — in-family hot swap
38253
- "anthropic/claude-opus-4.6",
38254
- // 2,139ms
38255
- "xai/grok-4-0709",
38256
- // 1,348ms — strong tool use, independent infra
38257
- "moonshot/kimi-k2.7",
38258
- // Moonshot flagship — strong tool use, independent infra
38259
- "moonshot/kimi-k2.5",
38260
- // cost-stability backstop
38757
+ "xai/grok-4.5",
38758
+ // xAI flagship — strong tool use, independent infra
38759
+ "moonshot/kimi-k3",
38760
+ // Moonshot flagship — independent infra
38261
38761
  "openai/gpt-5.6-terra",
38262
- // GPT-5.6 balanced tier — newest generation, stable (Sol excluded: #202)
38762
+ // GPT-5.6 balanced tier — stable (Sol excluded: #202)
38263
38763
  "openai/gpt-5.5",
38264
38764
  // Prior flagship — native agent + computer use (exactly the agentic-tier use case)
38265
38765
  "openai/gpt-5.4",
38266
- // Previous flagship — 6,213ms, reliable
38766
+ // Previous flagship — reliable
38767
+ "openai/gpt-5.3-codex",
38768
+ // code_agent lead
38769
+ "zai/glm-5.3",
38770
+ // long-horizon coding
38771
+ "deepseek/deepseek-v4-pro",
38772
+ // retail high-risk 3/3
38267
38773
  "deepseek/deepseek-chat",
38268
- // 1,431ms — cheap, reliable
38774
+ // cheap, reliable
38269
38775
  "nvidia/step-3.7-flash"
38270
- // NVIDIA free ultimate backstop (was gpt-oss-120b; 400s since ~2026-08)
38776
+ // NVIDIA free ultimate backstop
38271
38777
  ]
38272
38778
  },
38273
38779
  REASONING: {
38274
- primary: "anthropic/claude-sonnet-4.6",
38275
- // 2,110ms — strong tool use + reasoning
38780
+ primary: "anthropic/claude-sonnet-5",
38781
+ // $3/$15 — strong tool use + adaptive thinking
38276
38782
  fallback: [
38277
- "anthropic/claude-sonnet-5",
38278
- // in-family hot swap — same cost, adaptive thinking
38783
+ "anthropic/claude-sonnet-4.6",
38784
+ // in-family hot swap — same cost
38279
38785
  "anthropic/claude-opus-5",
38280
38786
  // Newest flagship Opus w/ adaptive thinking
38281
38787
  "anthropic/claude-opus-4.8",
38282
38788
  // Prior flagship Opus — identical cost to 5
38283
38789
  "anthropic/claude-opus-4.7",
38284
38790
  // Flagship Opus w/ adaptive thinking
38285
- "anthropic/claude-opus-4.6",
38286
- // 2,139ms
38287
- "xai/grok-4-1-fast-reasoning",
38288
- // 1,454ms
38791
+ "xai/grok-4.5",
38792
+ // reasoning band 0.94
38793
+ "deepseek/deepseek-v4-pro",
38794
+ // reasoning band 0.95
38289
38795
  "deepseek/deepseek-reasoner"
38290
- // 1,454ms
38796
+ // $0.14/$0.28
38291
38797
  ]
38292
38798
  }
38293
38799
  },
38294
- // Time-windowed promotions — auto-applied when active, ignored when expired
38295
- promotions: [
38296
- {
38297
- name: "GLM-5.1 Launch Promo ($0.001 flat)",
38298
- startDate: "2026-04-01",
38299
- endDate: "2026-05-01",
38300
- tierOverrides: {
38301
- SIMPLE: { primary: "zai/glm-5.1" }
38302
- },
38303
- profiles: ["auto"]
38304
- // only auto profile — eco stays free, premium stays premium
38305
- }
38306
- ],
38800
+ // Time-windowed promotions — auto-applied when active, ignored when expired.
38801
+ // The GLM-5.1 launch promo (2026-04-01 → 2026-05-01) was the last entry and
38802
+ // has expired; the list is kept empty so the mechanism stays wired.
38803
+ promotions: [],
38307
38804
  overrides: {
38308
38805
  maxTokensForceComplex: 1e5,
38309
38806
  structuredOutputMinTier: "MEDIUM",
@@ -92653,20 +93150,18 @@ var init_proxy = __esm({
92653
93150
  "premium"
92654
93151
  ]);
92655
93152
  FREE_MODELS = /* @__PURE__ */ new Set([
92656
- "free/gpt-oss-120b",
92657
- "free/gpt-oss-20b",
92658
- "free/mistral-nemotron",
92659
- // strong instruction following
92660
93153
  "free/step-3.7-flash",
92661
- // reasoning-focused
93154
+ // reasoning-focused — free-tier flagship
92662
93155
  "free/nemotron-nano-9b-v2",
92663
- // fast lightweight generalist
93156
+ // fast lightweight generalist (~0.7s)
93157
+ "free/mistral-nemotron",
93158
+ // strong instruction following
92664
93159
  "free/nemotron-3-nano-omni-30b-a3b-reasoning",
92665
93160
  // vision (text/image/video/audio)
92666
93161
  "free/nemotron-nano-12b-v2-vl"
92667
93162
  // vision-language (text + image)
92668
93163
  ]);
92669
- FREE_MODEL = "free/gpt-oss-120b";
93164
+ FREE_MODEL = "free/step-3.7-flash";
92670
93165
  MAX_MESSAGES = 200;
92671
93166
  CONTEXT_LIMIT_KB = 5120;
92672
93167
  HEARTBEAT_INTERVAL_MS = 2e3;