@just-every/ensemble 0.2.245 → 0.2.247

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.
Files changed (31) hide show
  1. package/dist/cjs/data/model_data.cjs +218 -156
  2. package/dist/cjs/data/model_data.d.ts.map +1 -1
  3. package/dist/cjs/data/model_data.js.map +1 -1
  4. package/dist/cjs/model_providers/claude.cjs +8 -7
  5. package/dist/cjs/model_providers/claude.d.ts.map +1 -1
  6. package/dist/cjs/model_providers/claude.js.map +1 -1
  7. package/dist/cjs/model_providers/codex.cjs +660 -21
  8. package/dist/cjs/model_providers/codex.d.ts.map +1 -1
  9. package/dist/cjs/model_providers/codex.js.map +1 -1
  10. package/dist/cjs/model_providers/model_provider.cjs +11 -0
  11. package/dist/cjs/model_providers/model_provider.d.ts.map +1 -1
  12. package/dist/cjs/model_providers/model_provider.js.map +1 -1
  13. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  14. package/dist/cjs/types/types.d.ts +4 -0
  15. package/dist/cjs/types/types.d.ts.map +1 -1
  16. package/dist/data/model_data.d.ts.map +1 -1
  17. package/dist/data/model_data.js +218 -156
  18. package/dist/data/model_data.js.map +1 -1
  19. package/dist/model_providers/claude.d.ts.map +1 -1
  20. package/dist/model_providers/claude.js +8 -7
  21. package/dist/model_providers/claude.js.map +1 -1
  22. package/dist/model_providers/codex.d.ts.map +1 -1
  23. package/dist/model_providers/codex.js +628 -22
  24. package/dist/model_providers/codex.js.map +1 -1
  25. package/dist/model_providers/model_provider.d.ts.map +1 -1
  26. package/dist/model_providers/model_provider.js +12 -1
  27. package/dist/model_providers/model_provider.js.map +1 -1
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/dist/types/types.d.ts +4 -0
  30. package/dist/types/types.d.ts.map +1 -1
  31. package/package.json +1 -1
@@ -31,7 +31,7 @@ export const MODEL_CLASSES = {
31
31
  models: [
32
32
  'gpt-5.5-pro',
33
33
  'gemini-3.1-pro-preview',
34
- 'claude-opus-4-7',
34
+ 'claude-opus-4-8',
35
35
  'grok-4.3',
36
36
  ],
37
37
  random: true,
@@ -58,7 +58,7 @@ export const MODEL_CLASSES = {
58
58
  models: [
59
59
  'gpt-5.5',
60
60
  'gemini-3.1-pro-preview',
61
- 'claude-opus-4-7',
61
+ 'claude-opus-4-8',
62
62
  'grok-4.3',
63
63
  ],
64
64
  random: true,
@@ -67,7 +67,7 @@ export const MODEL_CLASSES = {
67
67
  models: [
68
68
  'gpt-5.3-codex',
69
69
  'gemini-3.1-pro-preview',
70
- 'claude-opus-4-7',
70
+ 'claude-opus-4-8',
71
71
  'grok-4.3',
72
72
  'qwen3-coder',
73
73
  ],
@@ -95,7 +95,7 @@ export const MODEL_CLASSES = {
95
95
  models: [
96
96
  'gpt-5.5',
97
97
  'gemini-3.1-pro-preview',
98
- 'claude-opus-4-7',
98
+ 'claude-opus-4-8',
99
99
  'grok-4.3',
100
100
  ],
101
101
  random: true,
@@ -120,7 +120,7 @@ export const MODEL_CLASSES = {
120
120
  models: [
121
121
  'gpt-5.5',
122
122
  'gemini-3.1-pro-preview',
123
- 'claude-opus-4-7',
123
+ 'claude-opus-4-8',
124
124
  'grok-4.3',
125
125
  ],
126
126
  random: true,
@@ -399,7 +399,7 @@ export const MODEL_REGISTRY = [
399
399
  id: 'meta-llama/llama-4-maverick',
400
400
  provider: 'openrouter',
401
401
  cost: {
402
- input_per_million: 0.18,
402
+ input_per_million: 0.15,
403
403
  output_per_million: 0.6,
404
404
  },
405
405
  features: {
@@ -409,6 +409,7 @@ export const MODEL_REGISTRY = [
409
409
  tool_use: true,
410
410
  streaming: true,
411
411
  json_output: true,
412
+ max_output_tokens: 16384,
412
413
  },
413
414
  class: 'standard',
414
415
  score: 78,
@@ -427,12 +428,13 @@ export const MODEL_REGISTRY = [
427
428
  output_per_million: 0.3,
428
429
  },
429
430
  features: {
430
- context_length: 327680,
431
- input_modality: ['text'],
431
+ context_length: 10000000,
432
+ input_modality: ['text', 'image'],
432
433
  output_modality: ['text'],
433
434
  tool_use: true,
434
435
  streaming: true,
435
436
  json_output: true,
437
+ max_output_tokens: 16384,
436
438
  },
437
439
  class: 'mini',
438
440
  score: 65,
@@ -442,16 +444,17 @@ export const MODEL_REGISTRY = [
442
444
  id: 'qwen/qwen3-235b-a22b',
443
445
  provider: 'openrouter',
444
446
  cost: {
445
- input_per_million: 0.1,
446
- output_per_million: 0.1,
447
+ input_per_million: 0.455,
448
+ output_per_million: 1.82,
447
449
  },
448
450
  features: {
449
- context_length: 40960,
451
+ context_length: 131072,
450
452
  input_modality: ['text'],
451
453
  output_modality: ['text'],
452
454
  tool_use: true,
453
455
  streaming: true,
454
456
  json_output: true,
457
+ max_output_tokens: 8192,
455
458
  },
456
459
  class: 'reasoning',
457
460
  score: 83,
@@ -462,30 +465,6 @@ export const MODEL_REGISTRY = [
462
465
  },
463
466
  description: 'Qwen3-235B-A22B is a 235B parameter mixture-of-experts (MoE) model developed by Qwen, activating 22B parameters per forward pass.',
464
467
  },
465
- {
466
- id: 'qwen/qwen-max',
467
- provider: 'openrouter',
468
- cost: {
469
- input_per_million: 1.6,
470
- output_per_million: 6.4,
471
- },
472
- features: {
473
- context_length: 131072,
474
- input_modality: ['text', 'image'],
475
- output_modality: ['text'],
476
- tool_use: true,
477
- streaming: true,
478
- json_output: true,
479
- },
480
- class: 'reasoning',
481
- score: 80,
482
- scores: {
483
- monologue: 73,
484
- code: 61,
485
- reasoning: 57,
486
- },
487
- description: 'Qwen-Max, based on Qwen2.5, provides the best inference performance among Qwen models, especially for complex multi-step tasks.',
488
- },
489
468
  {
490
469
  id: 'qwen/qwen3.5-397b-a17b',
491
470
  aliases: ['qwen3.5-397b-a17b'],
@@ -501,7 +480,7 @@ export const MODEL_REGISTRY = [
501
480
  tool_use: true,
502
481
  streaming: true,
503
482
  json_output: true,
504
- max_output_tokens: 81920,
483
+ max_output_tokens: 65536,
505
484
  reasoning_output: true,
506
485
  },
507
486
  class: 'reasoning',
@@ -514,41 +493,41 @@ export const MODEL_REGISTRY = [
514
493
  description: 'Qwen3.5-397B-A17B is a vision-language 397B MoE model with a native 262k-context window, multimodal input support, and strong reasoning.',
515
494
  },
516
495
  {
517
- id: 'mistral/ministral-8b',
518
- provider: 'openrouter',
496
+ id: 'grok-4.3',
497
+ provider: 'xai',
519
498
  cost: {
520
- input_per_million: 0.1,
521
- output_per_million: 0.1,
499
+ input_per_million: 1.25,
500
+ output_per_million: 2.5,
522
501
  },
523
502
  features: {
524
- context_length: 131072,
525
- input_modality: ['text'],
503
+ context_length: 1_000_000,
504
+ input_modality: ['text', 'image'],
526
505
  output_modality: ['text'],
527
506
  tool_use: true,
528
507
  streaming: true,
529
508
  json_output: true,
530
509
  },
531
- class: 'standard',
532
- score: 55,
533
- description: 'Ministral 8B is a state-of-the-art language model optimized for on-device and edge computing. Designed for efficiency in knowledge-intensive tasks, commonsense reasoning, and function-calling.',
510
+ class: 'reasoning',
511
+ description: "Grok 4.3, xAI's latest recommended reasoning model with 1M context, multimodal input, streaming, tools, structured output, and low/medium/high reasoning effort.",
534
512
  },
535
513
  {
536
- id: 'grok-4.3',
514
+ id: 'grok-build-0.1',
515
+ aliases: ['grok-build', 'grok-build-latest'],
537
516
  provider: 'xai',
538
517
  cost: {
539
- input_per_million: 1.25,
540
- output_per_million: 2.5,
518
+ input_per_million: 1.0,
519
+ output_per_million: 2.0,
541
520
  },
542
521
  features: {
543
- context_length: 1_000_000,
522
+ context_length: 256000,
544
523
  input_modality: ['text', 'image'],
545
524
  output_modality: ['text'],
546
525
  tool_use: true,
547
526
  streaming: true,
548
527
  json_output: true,
549
528
  },
550
- class: 'reasoning',
551
- description: "Grok 4.3, xAI's latest recommended reasoning model with 1M context, multimodal input, streaming, tools, structured output, and low/medium/high reasoning effort.",
529
+ class: 'code',
530
+ description: "Grok Build 0.1, xAI's fast coding model trained for agentic coding workflows with 256k context and text/image input.",
552
531
  },
553
532
  {
554
533
  id: 'grok-4-1-fast-reasoning',
@@ -1370,6 +1349,48 @@ export const MODEL_REGISTRY = [
1370
1349
  score: 91,
1371
1350
  description: 'ChatGPT-optimized GPT-5.1 chat model (128k/16k).',
1372
1351
  },
1352
+ {
1353
+ id: 'codex-gpt-5.5',
1354
+ aliases: ['codex-gpt-5.5-2026-04-23'],
1355
+ provider: 'codex',
1356
+ cost: {
1357
+ input_per_million: {
1358
+ threshold_tokens: 272000,
1359
+ price_below_threshold_per_million: 5.0,
1360
+ price_above_threshold_per_million: 10.0,
1361
+ tier_basis: 'input_tokens',
1362
+ },
1363
+ cached_input_per_million: {
1364
+ threshold_tokens: 272000,
1365
+ price_below_threshold_per_million: 0.5,
1366
+ price_above_threshold_per_million: 1.0,
1367
+ tier_basis: 'input_tokens',
1368
+ },
1369
+ output_per_million: {
1370
+ threshold_tokens: 272000,
1371
+ price_below_threshold_per_million: 30.0,
1372
+ price_above_threshold_per_million: 45.0,
1373
+ tier_basis: 'input_tokens',
1374
+ },
1375
+ },
1376
+ features: {
1377
+ context_length: 1050000,
1378
+ max_output_tokens: 128000,
1379
+ input_modality: ['text', 'image'],
1380
+ output_modality: ['text'],
1381
+ tool_use: true,
1382
+ streaming: false,
1383
+ json_output: true,
1384
+ },
1385
+ class: 'code',
1386
+ score: 99,
1387
+ scores: {
1388
+ monologue: 99,
1389
+ code: 99,
1390
+ reasoning: 98,
1391
+ },
1392
+ description: 'Codex CLI GPT-5.5 text model for agentic coding, visual repair, and tool-mediated workflows.',
1393
+ },
1373
1394
  {
1374
1395
  id: 'gpt-5-codex',
1375
1396
  aliases: ['gpt-5-codex-2025-09-15'],
@@ -1775,7 +1796,7 @@ export const MODEL_REGISTRY = [
1775
1796
  },
1776
1797
  {
1777
1798
  id: 'claude-sonnet-4-6',
1778
- aliases: ['claude-sonnet-4-6', 'claude-sonnet-4.6', 'claude-sonnet-latest'],
1799
+ aliases: ['claude-sonnet-4-6', 'claude-sonnet-4.6', 'claude-sonnet-latest', 'sonnet-4-6', 'sonnet-4.6'],
1779
1800
  provider: 'anthropic',
1780
1801
  cost: {
1781
1802
  input_per_million: 3.0,
@@ -1974,7 +1995,7 @@ export const MODEL_REGISTRY = [
1974
1995
  },
1975
1996
  {
1976
1997
  id: 'claude-opus-4-7',
1977
- aliases: ['claude-opus-4-7', 'claude-opus-4.7', 'claude-opus', 'claude-opus-latest', 'claude-4.7-opus'],
1998
+ aliases: ['claude-opus-4-7', 'claude-opus-4.7', 'claude-4.7-opus'],
1978
1999
  provider: 'anthropic',
1979
2000
  cost: {
1980
2001
  input_per_million: 5.0,
@@ -1994,6 +2015,36 @@ export const MODEL_REGISTRY = [
1994
2015
  class: 'reasoning',
1995
2016
  description: 'Claude Opus 4.7 - Frontier Opus model for complex reasoning, agentic coding, and high-resolution vision.',
1996
2017
  },
2018
+ {
2019
+ id: 'claude-opus-4-8',
2020
+ aliases: [
2021
+ 'claude-opus-4-8',
2022
+ 'claude-opus-4.8',
2023
+ 'claude-opus',
2024
+ 'claude-opus-latest',
2025
+ 'claude-4.8-opus',
2026
+ 'opus-4-8',
2027
+ 'opus-4.8',
2028
+ ],
2029
+ provider: 'anthropic',
2030
+ cost: {
2031
+ input_per_million: 5.0,
2032
+ output_per_million: 25.0,
2033
+ cached_input_per_million: 0.5,
2034
+ },
2035
+ features: {
2036
+ context_length: 1_000_000,
2037
+ input_modality: ['text', 'image'],
2038
+ output_modality: ['text'],
2039
+ tool_use: true,
2040
+ streaming: true,
2041
+ json_output: true,
2042
+ reasoning_output: true,
2043
+ max_output_tokens: 128000,
2044
+ },
2045
+ class: 'reasoning',
2046
+ description: 'Claude Opus 4.8 - Frontier Opus model for complex reasoning, agentic coding, and high-resolution vision.',
2047
+ },
1997
2048
  {
1998
2049
  id: 'gemini-2.5-pro-preview-06-05',
1999
2050
  aliases: ['gemini-2.5-pro', 'gemini-2.5-pro-exp-03-25', 'gemini-2.5-pro-preview-05-06'],
@@ -2063,7 +2114,8 @@ export const MODEL_REGISTRY = [
2063
2114
  description: 'Gemini 3.5 Flash - fast multimodal reasoning model with 1M context and native thinking levels.',
2064
2115
  },
2065
2116
  {
2066
- id: 'gemini-3.1-flash-lite-preview',
2117
+ id: 'gemini-3.1-flash-lite',
2118
+ aliases: ['gemini-3.1-flash-lite-preview'],
2067
2119
  provider: 'google',
2068
2120
  cost: {
2069
2121
  input_per_million: {
@@ -2072,6 +2124,7 @@ export const MODEL_REGISTRY = [
2072
2124
  video: 0.25,
2073
2125
  audio: 0.5,
2074
2126
  },
2127
+ cached_input_per_million: 0.025,
2075
2128
  output_per_million: 1.5,
2076
2129
  },
2077
2130
  features: {
@@ -2085,7 +2138,7 @@ export const MODEL_REGISTRY = [
2085
2138
  },
2086
2139
  class: 'reasoning_mini',
2087
2140
  score: 82,
2088
- description: 'Gemini 3.1 Flash Lite Preview - cost-efficient multimodal model with 1M context window.',
2141
+ description: 'Gemini 3.1 Flash Lite - stable cost-efficient multimodal model with 1M context window; preview ID remains supported as an alias.',
2089
2142
  },
2090
2143
  {
2091
2144
  id: 'gemini-2.5-flash',
@@ -2533,7 +2586,7 @@ export const MODEL_REGISTRY = [
2533
2586
  output_per_million: 1.0,
2534
2587
  },
2535
2588
  features: {
2536
- context_length: 32768,
2589
+ context_length: 127072,
2537
2590
  input_modality: ['text'],
2538
2591
  output_modality: ['text'],
2539
2592
  tool_use: true,
@@ -2551,34 +2604,17 @@ export const MODEL_REGISTRY = [
2551
2604
  output_per_million: 15.0,
2552
2605
  },
2553
2606
  features: {
2554
- context_length: 32768,
2607
+ context_length: 200000,
2555
2608
  input_modality: ['text'],
2556
2609
  output_modality: ['text'],
2557
2610
  tool_use: true,
2558
2611
  streaming: true,
2559
2612
  json_output: true,
2613
+ max_output_tokens: 8000,
2560
2614
  },
2561
2615
  class: 'standard',
2562
2616
  description: 'Advanced search model optimized for complex queries and deeper content understanding.',
2563
2617
  },
2564
- {
2565
- id: 'perplexity/sonar-reasoning',
2566
- provider: 'openrouter',
2567
- cost: {
2568
- input_per_million: 1.0,
2569
- output_per_million: 5.0,
2570
- },
2571
- features: {
2572
- context_length: 32768,
2573
- input_modality: ['text'],
2574
- output_modality: ['text'],
2575
- tool_use: true,
2576
- streaming: true,
2577
- json_output: true,
2578
- },
2579
- class: 'reasoning_mini',
2580
- description: 'Quick problem-solving and reasoning model, ideal for evaluating complex queries.',
2581
- },
2582
2618
  {
2583
2619
  id: 'perplexity/sonar-reasoning-pro',
2584
2620
  provider: 'openrouter',
@@ -2587,7 +2623,7 @@ export const MODEL_REGISTRY = [
2587
2623
  output_per_million: 8.0,
2588
2624
  },
2589
2625
  features: {
2590
- context_length: 32768,
2626
+ context_length: 128000,
2591
2627
  input_modality: ['text'],
2592
2628
  output_modality: ['text'],
2593
2629
  tool_use: true,
@@ -2605,7 +2641,7 @@ export const MODEL_REGISTRY = [
2605
2641
  output_per_million: 8.0,
2606
2642
  },
2607
2643
  features: {
2608
- context_length: 32768,
2644
+ context_length: 128000,
2609
2645
  input_modality: ['text'],
2610
2646
  output_modality: ['text'],
2611
2647
  tool_use: true,
@@ -2615,45 +2651,6 @@ export const MODEL_REGISTRY = [
2615
2651
  class: 'standard',
2616
2652
  description: 'Best suited for exhaustive research, generating detailed reports and in-depth insights.',
2617
2653
  },
2618
- {
2619
- id: 'mistralai/magistral-small-2506',
2620
- provider: 'openrouter',
2621
- cost: {
2622
- input_per_million: 0.5,
2623
- output_per_million: 1.5,
2624
- },
2625
- features: {
2626
- context_length: 40000,
2627
- input_modality: ['text'],
2628
- output_modality: ['text'],
2629
- tool_use: true,
2630
- streaming: true,
2631
- json_output: true,
2632
- },
2633
- class: 'reasoning_mini',
2634
- score: 72,
2635
- description: 'Magistral Small is a 24B parameter instruction-tuned model based on Mistral-Small-3.1 (2503), enhanced through supervised fine-tuning on traces from Magistral Medium and further refined via reinforcement learning. It is optimized for reasoning and supports a wide multilingual range, including over 20 languages.',
2636
- },
2637
- {
2638
- id: 'mistralai/magistral-medium-2506:thinking',
2639
- provider: 'openrouter',
2640
- cost: {
2641
- input_per_million: 2.0,
2642
- output_per_million: 5.0,
2643
- },
2644
- features: {
2645
- context_length: 40960,
2646
- input_modality: ['text'],
2647
- output_modality: ['text'],
2648
- tool_use: true,
2649
- streaming: true,
2650
- json_output: true,
2651
- reasoning_output: true,
2652
- },
2653
- class: 'reasoning',
2654
- score: 80,
2655
- description: "Magistral is Mistral's first reasoning model. It is ideal for general purpose use requiring longer thought processing and better accuracy than with non-reasoning LLMs. From legal research and financial forecasting to software development and creative storytelling — this model solves multi-step challenges where transparency and precision are critical.",
2656
- },
2657
2654
  {
2658
2655
  id: 'test-model',
2659
2656
  provider: 'test',
@@ -3049,8 +3046,8 @@ export const MODEL_REGISTRY = [
3049
3046
  provider: 'openrouter',
3050
3047
  openrouter_id: 'openai/gpt-oss-120b',
3051
3048
  cost: {
3052
- input_per_million: 0.1,
3053
- output_per_million: 0.5,
3049
+ input_per_million: 0.039,
3050
+ output_per_million: 0.18,
3054
3051
  },
3055
3052
  features: {
3056
3053
  context_length: 131072,
@@ -3059,7 +3056,6 @@ export const MODEL_REGISTRY = [
3059
3056
  tool_use: true,
3060
3057
  streaming: true,
3061
3058
  json_output: true,
3062
- max_output_tokens: 100000,
3063
3059
  reasoning_output: true,
3064
3060
  },
3065
3061
  class: 'reasoning',
@@ -3072,8 +3068,8 @@ export const MODEL_REGISTRY = [
3072
3068
  provider: 'openrouter',
3073
3069
  openrouter_id: 'openai/gpt-oss-20b',
3074
3070
  cost: {
3075
- input_per_million: 0.05,
3076
- output_per_million: 0.2,
3071
+ input_per_million: 0.029,
3072
+ output_per_million: 0.14,
3077
3073
  },
3078
3074
  features: {
3079
3075
  context_length: 131072,
@@ -3082,12 +3078,34 @@ export const MODEL_REGISTRY = [
3082
3078
  tool_use: true,
3083
3079
  streaming: true,
3084
3080
  json_output: true,
3085
- max_output_tokens: 100000,
3086
3081
  },
3087
3082
  class: 'standard',
3088
3083
  score: 82,
3089
3084
  description: 'GPT OSS 20B - MoE model with 3.6B active params, optimized for consumer hardware',
3090
3085
  },
3086
+ {
3087
+ id: 'qwen/qwen3.7-max',
3088
+ aliases: ['Qwen3.7 Max', 'qwen3.7-max', 'qwen-3.7-max'],
3089
+ provider: 'openrouter',
3090
+ openrouter_id: 'qwen/qwen3.7-max',
3091
+ cost: {
3092
+ input_per_million: 1.25,
3093
+ cached_input_per_million: 0.25,
3094
+ output_per_million: 3.75,
3095
+ },
3096
+ features: {
3097
+ context_length: 1000000,
3098
+ input_modality: ['text'],
3099
+ output_modality: ['text'],
3100
+ tool_use: true,
3101
+ streaming: true,
3102
+ json_output: true,
3103
+ max_output_tokens: 65536,
3104
+ reasoning_output: true,
3105
+ },
3106
+ class: 'code',
3107
+ description: 'Qwen3.7 Max via OpenRouter. Flagship Qwen 3.7 model for agent-centric coding, productivity, and long-horizon autonomous execution.',
3108
+ },
3091
3109
  {
3092
3110
  id: 'qwen/qwen3.6-plus',
3093
3111
  aliases: ['Qwen 3.6', 'Qwen3.6', 'qwen3.6', 'qwen-3.6', 'qwen3.6-plus', 'qwen-3.6-plus'],
@@ -3116,9 +3134,8 @@ export const MODEL_REGISTRY = [
3116
3134
  provider: 'openrouter',
3117
3135
  openrouter_id: 'qwen/qwen3.6-flash',
3118
3136
  cost: {
3119
- input_per_million: 0.25,
3120
- cached_input_per_million: 0.3125,
3121
- output_per_million: 1.5,
3137
+ input_per_million: 0.1875,
3138
+ output_per_million: 1.125,
3122
3139
  },
3123
3140
  features: {
3124
3141
  context_length: 1000000,
@@ -3139,9 +3156,8 @@ export const MODEL_REGISTRY = [
3139
3156
  provider: 'openrouter',
3140
3157
  openrouter_id: 'qwen/qwen3.6-35b-a3b',
3141
3158
  cost: {
3142
- input_per_million: 0.1612,
3143
- cached_input_per_million: 0.1612,
3144
- output_per_million: 0.96525,
3159
+ input_per_million: 0.14,
3160
+ output_per_million: 1.0,
3145
3161
  },
3146
3162
  features: {
3147
3163
  context_length: 262144,
@@ -3150,7 +3166,7 @@ export const MODEL_REGISTRY = [
3150
3166
  tool_use: true,
3151
3167
  streaming: true,
3152
3168
  json_output: true,
3153
- max_output_tokens: 65536,
3169
+ max_output_tokens: 262140,
3154
3170
  reasoning_output: true,
3155
3171
  },
3156
3172
  class: 'reasoning',
@@ -3185,7 +3201,7 @@ export const MODEL_REGISTRY = [
3185
3201
  provider: 'openrouter',
3186
3202
  openrouter_id: 'qwen/qwen3.6-27b',
3187
3203
  cost: {
3188
- input_per_million: 0.32,
3204
+ input_per_million: 0.29,
3189
3205
  output_per_million: 3.2,
3190
3206
  },
3191
3207
  features: {
@@ -3195,7 +3211,7 @@ export const MODEL_REGISTRY = [
3195
3211
  tool_use: true,
3196
3212
  streaming: true,
3197
3213
  json_output: true,
3198
- max_output_tokens: 81920,
3214
+ max_output_tokens: 262140,
3199
3215
  reasoning_output: true,
3200
3216
  },
3201
3217
  class: 'reasoning',
@@ -3207,8 +3223,9 @@ export const MODEL_REGISTRY = [
3207
3223
  provider: 'openrouter',
3208
3224
  openrouter_id: 'qwen/qwen3-235b-a22b-thinking-2507',
3209
3225
  cost: {
3210
- input_per_million: 0.078,
3211
- output_per_million: 0.312,
3226
+ input_per_million: 0.1,
3227
+ cached_input_per_million: 0.1,
3228
+ output_per_million: 0.1,
3212
3229
  },
3213
3230
  features: {
3214
3231
  context_length: 262144,
@@ -3217,7 +3234,7 @@ export const MODEL_REGISTRY = [
3217
3234
  tool_use: true,
3218
3235
  streaming: true,
3219
3236
  json_output: true,
3220
- max_output_tokens: 81920,
3237
+ max_output_tokens: 262144,
3221
3238
  reasoning_output: true,
3222
3239
  },
3223
3240
  class: 'reasoning',
@@ -3230,17 +3247,17 @@ export const MODEL_REGISTRY = [
3230
3247
  provider: 'openrouter',
3231
3248
  openrouter_id: 'qwen/qwen3-coder',
3232
3249
  cost: {
3233
- input_per_million: 0.2,
3234
- output_per_million: 0.8,
3250
+ input_per_million: 0.22,
3251
+ output_per_million: 1.8,
3235
3252
  },
3236
3253
  features: {
3237
- context_length: 262144,
3254
+ context_length: 1048576,
3238
3255
  input_modality: ['text'],
3239
3256
  output_modality: ['text'],
3240
3257
  tool_use: true,
3241
3258
  streaming: true,
3242
3259
  json_output: true,
3243
- max_output_tokens: 100000,
3260
+ max_output_tokens: 65536,
3244
3261
  },
3245
3262
  class: 'code',
3246
3263
  score: 90,
@@ -3252,9 +3269,9 @@ export const MODEL_REGISTRY = [
3252
3269
  provider: 'openrouter',
3253
3270
  openrouter_id: 'z-ai/glm-5.1',
3254
3271
  cost: {
3255
- input_per_million: 1.05,
3256
- output_per_million: 3.5,
3257
- cached_input_per_million: 0.525,
3272
+ input_per_million: 0.98,
3273
+ output_per_million: 3.08,
3274
+ cached_input_per_million: 0.182,
3258
3275
  },
3259
3276
  features: {
3260
3277
  context_length: 202752,
@@ -3263,7 +3280,6 @@ export const MODEL_REGISTRY = [
3263
3280
  tool_use: true,
3264
3281
  streaming: true,
3265
3282
  json_output: true,
3266
- max_output_tokens: 65535,
3267
3283
  reasoning_output: true,
3268
3284
  },
3269
3285
  class: 'reasoning',
@@ -3297,11 +3313,57 @@ export const MODEL_REGISTRY = [
3297
3313
  aliases: ['DeepSeek-V4-Flash', 'deepseek-v4-flash'],
3298
3314
  provider: 'openrouter',
3299
3315
  openrouter_id: 'deepseek/deepseek-v4-flash',
3316
+ cost: {
3317
+ input_per_million: 0.0983,
3318
+ cached_input_per_million: 0.0197,
3319
+ output_per_million: 0.1966,
3320
+ },
3321
+ features: {
3322
+ context_length: 1048576,
3323
+ input_modality: ['text'],
3324
+ output_modality: ['text'],
3325
+ tool_use: true,
3326
+ streaming: true,
3327
+ json_output: true,
3328
+ max_output_tokens: 131072,
3329
+ reasoning_output: true,
3330
+ },
3331
+ class: 'reasoning',
3332
+ description: 'DeepSeek V4 Flash via OpenRouter. Efficiency-optimized 284B-parameter MoE model with 13B active parameters and 1M context.',
3333
+ },
3334
+ {
3335
+ id: 'xiaomi/mimo-v2.5',
3336
+ aliases: ['MiMo-V2.5', 'mimo-v2.5', 'mimo-v2-5'],
3337
+ provider: 'openrouter',
3338
+ openrouter_id: 'xiaomi/mimo-v2.5',
3300
3339
  cost: {
3301
3340
  input_per_million: 0.14,
3302
3341
  cached_input_per_million: 0.0028,
3303
3342
  output_per_million: 0.28,
3304
3343
  },
3344
+ features: {
3345
+ context_length: 1048576,
3346
+ input_modality: ['text', 'audio', 'image', 'video'],
3347
+ output_modality: ['text'],
3348
+ tool_use: true,
3349
+ streaming: true,
3350
+ json_output: true,
3351
+ max_output_tokens: 131072,
3352
+ reasoning_output: true,
3353
+ },
3354
+ class: 'reasoning',
3355
+ description: 'Xiaomi MiMo V2.5 via OpenRouter. Native omnimodal 1M-context model for agentic workflows, multimodal perception, and cost-efficient reasoning.',
3356
+ },
3357
+ {
3358
+ id: 'xiaomi/mimo-v2.5-pro',
3359
+ aliases: ['MiMo-V2.5-Pro', 'mimo-v2.5-pro', 'mimo-v2-5-pro'],
3360
+ provider: 'openrouter',
3361
+ openrouter_id: 'xiaomi/mimo-v2.5-pro',
3362
+ cost: {
3363
+ input_per_million: 0.435,
3364
+ cached_input_per_million: 0.0036,
3365
+ output_per_million: 0.87,
3366
+ },
3305
3367
  features: {
3306
3368
  context_length: 1048576,
3307
3369
  input_modality: ['text'],
@@ -3309,11 +3371,11 @@ export const MODEL_REGISTRY = [
3309
3371
  tool_use: true,
3310
3372
  streaming: true,
3311
3373
  json_output: true,
3312
- max_output_tokens: 384000,
3374
+ max_output_tokens: 131072,
3313
3375
  reasoning_output: true,
3314
3376
  },
3315
3377
  class: 'reasoning',
3316
- description: 'DeepSeek V4 Flash via OpenRouter. Efficiency-optimized 284B-parameter MoE model with 13B active parameters and 1M context.',
3378
+ description: 'Xiaomi MiMo V2.5 Pro via OpenRouter. Flagship 1M-context model for agentic coding, complex software engineering, and long-horizon tasks.',
3317
3379
  },
3318
3380
  {
3319
3381
  id: 'tencent/hy3-preview',
@@ -3321,9 +3383,9 @@ export const MODEL_REGISTRY = [
3321
3383
  provider: 'openrouter',
3322
3384
  openrouter_id: 'tencent/hy3-preview',
3323
3385
  cost: {
3324
- input_per_million: 0.066,
3325
- cached_input_per_million: 0.029,
3326
- output_per_million: 0.26,
3386
+ input_per_million: 0.063,
3387
+ cached_input_per_million: 0.021,
3388
+ output_per_million: 0.21,
3327
3389
  },
3328
3390
  features: {
3329
3391
  context_length: 262144,
@@ -3332,7 +3394,6 @@ export const MODEL_REGISTRY = [
3332
3394
  tool_use: true,
3333
3395
  streaming: true,
3334
3396
  json_output: false,
3335
- max_output_tokens: 262144,
3336
3397
  reasoning_output: true,
3337
3398
  },
3338
3399
  class: 'reasoning',
@@ -3343,9 +3404,9 @@ export const MODEL_REGISTRY = [
3343
3404
  aliases: ['kimi-k2.5', 'kimi-k2-5'],
3344
3405
  provider: 'openrouter',
3345
3406
  cost: {
3346
- input_per_million: 0.45,
3347
- output_per_million: 2.2,
3348
- cached_input_per_million: 0.225,
3407
+ input_per_million: 0.4,
3408
+ output_per_million: 1.9,
3409
+ cached_input_per_million: 0.09,
3349
3410
  },
3350
3411
  features: {
3351
3412
  context_length: 262144,
@@ -3354,6 +3415,7 @@ export const MODEL_REGISTRY = [
3354
3415
  tool_use: true,
3355
3416
  streaming: true,
3356
3417
  json_output: true,
3418
+ max_output_tokens: 262144,
3357
3419
  },
3358
3420
  class: 'reasoning',
3359
3421
  score: 86,
@@ -3365,18 +3427,18 @@ export const MODEL_REGISTRY = [
3365
3427
  provider: 'openrouter',
3366
3428
  openrouter_id: 'moonshotai/kimi-k2.6',
3367
3429
  cost: {
3368
- input_per_million: 0.74,
3369
- output_per_million: 3.49,
3370
- cached_input_per_million: 0.14,
3430
+ input_per_million: 0.684,
3431
+ output_per_million: 3.42,
3432
+ cached_input_per_million: 0.144,
3371
3433
  },
3372
3434
  features: {
3373
- context_length: 262142,
3435
+ context_length: 262144,
3374
3436
  input_modality: ['text', 'image'],
3375
3437
  output_modality: ['text'],
3376
3438
  tool_use: true,
3377
3439
  streaming: true,
3378
3440
  json_output: true,
3379
- max_output_tokens: 262142,
3441
+ max_output_tokens: 262144,
3380
3442
  reasoning_output: true,
3381
3443
  },
3382
3444
  class: 'reasoning',