@oh-my-pi/pi-catalog 18.8.8 → 18.9.0

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.
@@ -111,6 +111,12 @@ provider "factory-droid" {
111
111
  cost input=0 output=0 cache-read=0 cache-write=0
112
112
  limits context=180000 max-tokens=32000
113
113
  }
114
+ model "claude-haiku-5-5" name="Haiku 5.5" {
115
+ reasoning #true
116
+ input "text" "image"
117
+ cost input=0 output=0 cache-read=0 cache-write=0
118
+ limits context=872000 max-tokens=128000
119
+ }
114
120
  model "claude-haiku-4-5-20251001" name="Haiku 4.5" {
115
121
  reasoning #true
116
122
  input "text" "image"
@@ -273,6 +279,12 @@ provider "factory-droid" {
273
279
  cost input=0 output=0 cache-read=0 cache-write=0
274
280
  limits context=1007232 max-tokens=32768
275
281
  }
282
+ model "mistral-large-4" name="Mistral Large 4" {
283
+ reasoning #true
284
+ input "text" "image"
285
+ cost input=0 output=0 cache-read=0 cache-write=0
286
+ limits context=524288 max-tokens=64000
287
+ }
276
288
  model "mistral-medium-3.5" name="Mistral Medium 3.5" {
277
289
  reasoning #true
278
290
  input "text" "image"
@@ -400,7 +412,7 @@ provider "factory-droid" {
400
412
  models "claude-fable-5.1" {
401
413
  routing-family "anthropic"
402
414
  upstream-rotation "anthropic" "vertex_anthropic" "bedrock_anthropic"
403
- region-upstreams-eu
415
+ region-upstreams-eu "vertex_anthropic"
404
416
  credit-rates { input 4; output 5; cache-read 0.025 }
405
417
  thinking-efforts "low" "medium" "high" "xhigh" "max"
406
418
  thinking-requires-effort #false
@@ -410,7 +422,7 @@ provider "factory-droid" {
410
422
  models "claude-fable-5" {
411
423
  routing-family "anthropic"
412
424
  upstream-rotation "anthropic" "vertex_anthropic" "bedrock_anthropic"
413
- region-upstreams-eu
425
+ region-upstreams-eu "vertex_anthropic"
414
426
  credit-rates { input 4; output 5 }
415
427
  list-price-from "anthropic"
416
428
  thinking-efforts "low" "medium" "high" "xhigh" "max"
@@ -439,7 +451,7 @@ provider "factory-droid" {
439
451
  models "claude-opus-5" {
440
452
  routing-family "anthropic"
441
453
  upstream-rotation "anthropic" "vertex_anthropic" "bedrock_anthropic" "azure_anthropic" "snowflake"
442
- region-upstreams-eu "bedrock_anthropic"
454
+ region-upstreams-eu "vertex_anthropic" "bedrock_anthropic"
443
455
  credit-rates { input 2 }
444
456
  list-price-from "anthropic"
445
457
  thinking-efforts "low" "medium" "high" "xhigh" "max"
@@ -458,7 +470,7 @@ provider "factory-droid" {
458
470
  models "claude-opus-4-8" {
459
471
  routing-family "anthropic"
460
472
  upstream-rotation "anthropic" "vertex_anthropic" "bedrock_anthropic" "azure_anthropic" "snowflake"
461
- region-upstreams-eu "bedrock_anthropic"
473
+ region-upstreams-eu "vertex_anthropic" "bedrock_anthropic"
462
474
  credit-rates { input 2 }
463
475
  list-price-from "anthropic"
464
476
  thinking-efforts "low" "medium" "high" "xhigh" "max"
@@ -477,7 +489,7 @@ provider "factory-droid" {
477
489
  models "claude-opus-4-7" {
478
490
  routing-family "anthropic"
479
491
  upstream-rotation "anthropic" "vertex_anthropic" "bedrock_anthropic"
480
- region-upstreams-eu "bedrock_anthropic"
492
+ region-upstreams-eu "vertex_anthropic" "bedrock_anthropic"
481
493
  credit-rates { input 2 }
482
494
  list-price-from "anthropic"
483
495
  thinking-efforts "low" "medium" "high" "xhigh" "max"
@@ -506,9 +518,10 @@ provider "factory-droid" {
506
518
  models "claude-sonnet-5-5" {
507
519
  routing-family "anthropic"
508
520
  upstream-rotation "anthropic" "vertex_anthropic" "bedrock_anthropic" "azure_anthropic"
509
- credit-rates { input 0.8; output 5 }
521
+ credit-rates { input 0.8; output 5; cache-read 0.05 }
522
+ list-price-from "anthropic"
510
523
  thinking-efforts "low" "medium" "high" "xhigh" "max"
511
- thinking-requires-effort #true
524
+ thinking-requires-effort #false
512
525
  thinking-default-level "high"
513
526
  entitlement { feature-flag "claude_sonnet_5_5" }
514
527
  }
@@ -540,6 +553,16 @@ provider "factory-droid" {
540
553
  thinking-requires-effort #false
541
554
  default-reasoning-off #true
542
555
  }
556
+ models "claude-haiku-5-5" {
557
+ routing-family "anthropic"
558
+ upstream-rotation "anthropic" "vertex_anthropic" "bedrock_anthropic" "azure_anthropic"
559
+ credit-rates { input 0.04; output 5 }
560
+ list-price-from "anthropic"
561
+ thinking-efforts "low" "medium" "high" "xhigh" "max"
562
+ thinking-requires-effort #false
563
+ thinking-default-level "medium"
564
+ entitlement { feature-flag "claude_haiku_5_5" }
565
+ }
543
566
  models "claude-haiku-4-5-20251001" {
544
567
  routing-family "anthropic"
545
568
  upstream-rotation "anthropic" "vertex_anthropic" "bedrock_anthropic"
@@ -562,7 +585,7 @@ provider "factory-droid" {
562
585
  }
563
586
  models "gpt-6.1-sol" {
564
587
  routing-family "openai"
565
- upstream-rotation "openai"
588
+ upstream-rotation "openai" "bedrock_openai" "databricks"
566
589
  region-upstreams-eu "openai"
567
590
  credit-rates { input 0.8; output 5; cache-read 0.05 }
568
591
  thinking-efforts "low" "medium" "high" "xhigh" "max"
@@ -589,7 +612,6 @@ provider "factory-droid" {
589
612
  thinking-efforts "low" "medium" "high" "xhigh" "max"
590
613
  thinking-requires-effort #false
591
614
  thinking-default-level "medium"
592
- entitlement { feature-flag "gpt_6_luna" }
593
615
  }
594
616
  models "gpt-5.6-sol" {
595
617
  routing-family "openai"
@@ -749,6 +771,7 @@ provider "factory-droid" {
749
771
  models "gemini-3.8-flash" {
750
772
  routing-family "google"
751
773
  upstream-rotation "google"
774
+ region-upstreams-eu "google"
752
775
  credit-rates { input 0.6; output 5 }
753
776
  list-price-from "google"
754
777
  thinking-efforts "low" "medium" "high"
@@ -758,6 +781,7 @@ provider "factory-droid" {
758
781
  models "gemini-3.7-flash" {
759
782
  routing-family "google"
760
783
  upstream-rotation "google"
784
+ region-upstreams-eu "google"
761
785
  credit-rates { input 0.6; output 5 }
762
786
  list-price-from "google"
763
787
  thinking-efforts "low" "medium" "high"
@@ -767,6 +791,7 @@ provider "factory-droid" {
767
791
  models "gemini-3.6-flash" {
768
792
  routing-family "google"
769
793
  upstream-rotation "google"
794
+ region-upstreams-eu "google"
770
795
  credit-rates { input 0.6; output 5 }
771
796
  list-price-from "google"
772
797
  thinking-efforts "low" "medium" "high"
@@ -776,6 +801,7 @@ provider "factory-droid" {
776
801
  models "gemini-3.5-flash" {
777
802
  routing-family "google"
778
803
  upstream-rotation "google"
804
+ region-upstreams-eu "google"
779
805
  credit-rates { input 0.6 }
780
806
  list-price-from "google"
781
807
  thinking-efforts "minimal" "low" "medium" "high"
@@ -801,6 +827,19 @@ provider "factory-droid" {
801
827
  thinking-requires-effort #false
802
828
  thinking-default-level "high"
803
829
  }
830
+ // Factory bills the Standard list-price ceiling, above the bundled Mistral
831
+ // row, so no list price is borrowed.
832
+ models "mistral-large-4" {
833
+ routing-family "factory"
834
+ upstream-rotation "mistral"
835
+ region-upstreams-us
836
+ region-upstreams-eu "mistral"
837
+ credit-rates { input 0.544; output 3.08; cache-read 0.103 }
838
+ thinking-efforts "high"
839
+ thinking-requires-effort #false
840
+ thinking-default-level "high"
841
+ entitlement { feature-flag "mistral_large_4" }
842
+ }
804
843
  models "mistral-medium-3.5" {
805
844
  routing-family "factory"
806
845
  upstream-rotation "mistral"
@@ -889,7 +928,6 @@ provider "factory-droid" {
889
928
  thinking-efforts "low" "high" "max"
890
929
  thinking-requires-effort #false
891
930
  thinking-default-level "high"
892
- entitlement { feature-flag "deepseek_v4_1_flash" }
893
931
  }
894
932
  models "deepseek-v4-flash-0731" {
895
933
  routing-family "factory"
@@ -999,7 +1037,8 @@ provider "factory-droid" {
999
1037
  // Native declares every Responses tool `strict: false`; the field must reach the wire.
1000
1038
  supports-strict-mode #true
1001
1039
  }
1002
- models "glm-*" "kimi-*" "deepseek-*" "nemotron-*" "inkling" "mistral-medium-3.5" "qwen3.8-max" "minimax-m3" {
1040
+ models "glm-*" "kimi-*" "deepseek-*" "nemotron-*" "inkling" "mistral-medium-3.5" "mistral-large-4" "qwen3.8-max" \
1041
+ "minimax-m3" {
1003
1042
  clamp-output-to-model-max #true
1004
1043
  completions-reasoning-mode "none"
1005
1044
  completions-reasoning-history "omit"
@@ -1039,7 +1078,7 @@ provider "factory-droid" {
1039
1078
  }
1040
1079
  // The replay codec follows the selected route, including EU GLM routes.
1041
1080
  on-upstream "mistral" {
1042
- models "glm-*" "mistral-medium-3.5" {
1081
+ models "glm-*" "mistral-medium-3.5" "mistral-large-4" {
1043
1082
  completions-reasoning-mode "effort"
1044
1083
  completions-reasoning-history "omit"
1045
1084
  mistral-reasoning-content-parts #true
@@ -1058,6 +1097,7 @@ provider "factory-droid" {
1058
1097
  // Messages contract on every Factory Anthropic route: non-thinking-led
1059
1098
  // history drops thinking, disabled thinking omits the field, and the effort
1060
1099
  // beta rides only where the route requires it alongside output effort.
1100
+ // Where disabled thinking is sent, replayed history drops its thinking.
1061
1101
  on-api "anthropic-messages" {
1062
1102
  strip-thinking-history #true
1063
1103
  disabled-thinking "omit"
@@ -1073,6 +1113,12 @@ provider "factory-droid" {
1073
1113
  disabled-thinking "disabled"
1074
1114
  }
1075
1115
  }
1116
+ // Adaptive models the registry marks `supportsDisabledThinking` send the
1117
+ // explicit disabled form at Off on every upstream.
1118
+ models "claude-sonnet-4-6" "claude-sonnet-5" "claude-opus-4-6" "claude-opus-4-7" "claude-opus-4-8" \
1119
+ "claude-opus-4-8-fast" "claude-opus-5" "claude-opus-5-fast" "claude-haiku-5-5" {
1120
+ disabled-thinking "disabled"
1121
+ }
1076
1122
  models "claude-*" "atlas-07-21" "aster-07-15" {
1077
1123
  anthropic-thinking "adaptive-summarized"
1078
1124
  }
@@ -1091,9 +1137,15 @@ provider "factory-droid" {
1091
1137
  anthropic-thinking "budget-effort"
1092
1138
  }
1093
1139
  // Always-thinking models keep adaptive thinking on disabled turns, on every upstream.
1094
- models "claude-fable-5.1" "claude-opus-5-5" "claude-opus-5-5-fast" "claude-sonnet-5-5" {
1140
+ models "claude-fable-5.1" "claude-opus-5-5" "claude-opus-5-5-fast" {
1095
1141
  disabled-thinking "adaptive"
1096
1142
  }
1143
+ // Sonnet 5.5 rejects `disabled`: Off is `between_tools`, pinned to high
1144
+ // effort because `between_tools` rejects xhigh and max.
1145
+ models "claude-sonnet-5-5" {
1146
+ disabled-thinking "between-tools"
1147
+ between-tools-effort "high"
1148
+ }
1097
1149
  // Fast tiers are distinct SKUs served with `speed: "fast"`.
1098
1150
  models "claude-opus-5-5-fast" "claude-opus-5-fast" "claude-opus-4-8-fast" {
1099
1151
  fast-mode #true
@@ -1113,6 +1165,13 @@ provider "factory-droid" {
1113
1165
  on-upstream "bedrock_anthropic" {
1114
1166
  anthropic-tool-streaming-beta #true
1115
1167
  }
1168
+ // Azure Foundry enforces the preserved-thinking prefix check on Factory's
1169
+ // account, so prefix-bound models (`thinking-prefix-binding`) ask it to drop
1170
+ // stale signed blocks instead of failing. The other Anthropic upstreams
1171
+ // predate default enforcement; the field would opt them into it.
1172
+ on-upstream "azure_anthropic" {
1173
+ supports-thinking-binding-controls #true
1174
+ }
1116
1175
  // xAI and Google sessions lock their upstream.
1117
1176
  on-upstream "xai" "google" {
1118
1177
  routing-session-lock #true
@@ -1132,6 +1191,11 @@ provider "factory-droid" {
1132
1191
  reasoning-disable-mode "none-effort"
1133
1192
  }
1134
1193
  }
1194
+ // GPT models whose ladder has an Off/None rung send the literal `none`
1195
+ // tier on every upstream.
1196
+ models "gpt-5.2" "gpt-5.6-sol" "gpt-5.6-sol-fast" "gpt-5.6-terra" "gpt-5.6-luna" "gpt-6-sol" "gpt-6-luna" {
1197
+ reasoning-disable-mode "none-effort"
1198
+ }
1135
1199
  models "gpt-*" {
1136
1200
  omit-max-output-tokens #true
1137
1201
  responses-verbosity "low"
@@ -1,7 +1,10 @@
1
- // Catalog entry for "litellm"; no deployment-contract compat rules are needed.
1
+ // Provider-wire compat for "litellm".
2
2
 
3
3
  provider "litellm" {
4
4
  default-model "claude-opus-5-5"
5
5
  env "LITELLM_API_KEY"
6
6
  discovery label="LiteLLM" allow-unauthenticated=#true
7
+
8
+ // The proxy groups request logs into sessions by this header.
9
+ session-header "x-litellm-session-id"
7
10
  }
@@ -24,7 +24,11 @@ provider "mistral" {
24
24
  }
25
25
  }
26
26
 
27
- thinking-mode "effort"
27
+ // Mistral's chat-completions endpoint derives cache affinity from the
28
+ // top-level `prompt_cache_key` (https://docs.mistral.ai/studio/conversations/advanced/prompt-caching);
29
+ // without it, requests only hit replica-local implicit cache. Same shape as
30
+ // the kimi-code rule (#6049).
31
+ supports-prompt-cache-key #true
28
32
  class "unknown" {
29
33
  thinking-efforts "minimal" "low" "medium" "high" "xhigh"
30
34
  }
@@ -77,16 +77,6 @@ provider "openai-codex" {
77
77
  cache-read 1.0
78
78
  cache-write 0
79
79
  }
80
- service-tier-cost {
81
- flex 0.5
82
- priority 2.5
83
- // Ultrafast is Astra-only. This table uses OpenAI's included-usage
84
- // multipliers for Codex: Ultrafast 8x and Fast 2.5x Standard (purchased
85
- // credits / Enterprise pay-as-you-go bill 6x and 2x instead). See
86
- // https://learn.chatgpt.com/docs/agent-configuration/speed and
87
- // https://learn.chatgpt.com/docs/pricing.
88
- ultrafast 8
89
- }
90
80
  limits-patch {
91
81
  context-window 272000
92
82
  }
@@ -117,6 +107,18 @@ provider "openai-codex" {
117
107
  }
118
108
  max-context-window 922000
119
109
  }
110
+ // Codex Ultrafast ships on GPT-6 Astra and GPT-6.1 Sol. This table uses
111
+ // OpenAI's included-usage multipliers for Codex: Ultrafast 8x and Fast 2.5x
112
+ // Standard (purchased credits / Enterprise pay-as-you-go bill 6x and 2x
113
+ // instead). See https://learn.chatgpt.com/docs/agent-configuration/speed
114
+ // and https://learn.chatgpt.com/docs/pricing.
115
+ models "gpt-6-astra" "gpt-6-astra-wm" "gpt-6.1-sol" "gpt-6.1-sol-wm" {
116
+ service-tier-cost {
117
+ flex 0.5
118
+ priority 2.5
119
+ ultrafast 8
120
+ }
121
+ }
120
122
  models "gpt-6-luna" "gpt-6-luna-wm" {
121
123
  cost-patch {
122
124
  input 0.1
@@ -176,8 +176,10 @@ provider "openai" {
176
176
  cache-read 2.0
177
177
  cache-write 25.0
178
178
  }
179
- // Ultrafast is Astra-only: $60/$6/$75/$300 per 1M short-context
180
- // (6x the standard card), and the same 6x holds on the long-context tier.
179
+ }
180
+ // API Ultrafast is 6x the standard card on both context tiers: GPT-6 Astra
181
+ // $60/$6/$75/$300 and GPT-6.1 Sol $12/$0.60/$15/$60 per 1M short-context.
182
+ models "gpt-6-astra*" "gpt-6.1-sol*" {
181
183
  service-tier-cost {
182
184
  ultrafast 6
183
185
  }
@@ -116,4 +116,24 @@ provider "opencode-zen" {
116
116
  thinking-efforts "minimal" "low" "medium" "high"
117
117
  thinking-mode "effort"
118
118
  }
119
+ // Zen serves Jev over System One, not chat completions.
120
+ seed api="typesafe" bundle="always" base-url="https://opencode.ai/zen" {
121
+ model "jev-1.13" name="Jev 1.13" {
122
+ reasoning #false
123
+ input "text"
124
+ cost input=0.042 output=0 cache-read=0 cache-write=0
125
+ limits
126
+ supports-tools #false
127
+ }
128
+ model "jev-1.13-free" name="Jev 1.13 Free" {
129
+ reasoning #false
130
+ input "text"
131
+ cost input=0 output=0 cache-read=0 cache-write=0
132
+ limits
133
+ supports-tools #false
134
+ }
135
+ }
136
+ models "jev-1.13" "jev-1.13-free" {
137
+ kind "judge"
138
+ }
119
139
  }
@@ -159,6 +159,12 @@ provider "openrouter" {
159
159
  family "o-series" {
160
160
  thinking-efforts "minimal" "low" "medium" "high"
161
161
  }
162
+ // OpenRouter's Responses API does not document `configuration_update`
163
+ // input items (and serves `-pro` rows that would need pro mode, where the
164
+ // item is unsupported): GPT-6 effort changes stay on the request level.
165
+ revision ">=6 <7" {
166
+ supports-configuration-update #false
167
+ }
162
168
  }
163
169
  class "stepfun" {
164
170
  family "step" {
@@ -5,6 +5,16 @@ provider "zhipu-coding-plan" {
5
5
  env "ZHIPU_API_KEY"
6
6
  dynamic-models-authoritative #true
7
7
  discovery label="Zhipu Coding Plan"
8
+ // The coding-plan upstream snapshot omits FlashX although the served SKU
9
+ // has the same limits and mandatory-thinking ladder as GLM-5.3-Flash.
10
+ seed api="openai-completions" base-url="https://open.bigmodel.cn/api/coding/paas/v4" bundle="always" {
11
+ model "glm-5.3-flashx" name="GLM-5.3-FlashX" {
12
+ reasoning #true
13
+ input "text" "image"
14
+ cost input=0 output=0 cache-read=0 cache-write=0
15
+ limits context=1000000 max-tokens=131072
16
+ }
17
+ }
8
18
 
9
19
  // Replaces the Zhipu provider thinking-format branch.
10
20
  thinking-format "zai"
@@ -92,13 +92,13 @@ behavior {
92
92
  // Factory Droid bills each model from one subscription pool: Droid Core
93
93
  // (flat rate) or Standard Credits. Unknown ids have no inferred entitlement.
94
94
  quota-tiers provider="factory-droid" {
95
- tier "core" "inkling" "mistral-medium-3.5" "glm-5.3-flash" "glm-5.3" "glm-5.2" "glm-5.2-fast" \
95
+ tier "core" "inkling" "mistral-large-4" "mistral-medium-3.5" "glm-5.3-flash" "glm-5.3" "glm-5.2" "glm-5.2-fast" \
96
96
  "kimi-k3" "qwen3.8-max" "nemotron-3-ultra" "deepseek-v4.1-flash" "deepseek-v4-flash-0731" \
97
97
  "deepseek-v4-pro" "minimax-m3" "minimax-m2.7"
98
98
  tier "standard" "claude-fable-5.1" "claude-fable-5" "claude-opus-5-5" "claude-opus-5-5-fast" \
99
99
  "claude-opus-5" "claude-opus-5-fast" "claude-opus-4-8" "claude-opus-4-8-fast" "claude-opus-4-7" \
100
100
  "claude-opus-4-6" "claude-opus-4-5-20251101" "claude-sonnet-5-5" "claude-sonnet-5" \
101
- "claude-sonnet-4-6" "claude-sonnet-4-5-20250929" "claude-haiku-4-5-20251001" "gpt-6-astra" \
101
+ "claude-sonnet-4-6" "claude-sonnet-4-5-20250929" "claude-haiku-5-5" "claude-haiku-4-5-20251001" "gpt-6-astra" \
102
102
  "gpt-6.1-sol" "gpt-6-sol" "gpt-6-luna" "gpt-5.6-sol" "gpt-5.6-sol-fast" "gpt-5.6-terra" \
103
103
  "gpt-5.6-luna" "gpt-5.5" "gpt-5.5-fast" "gpt-5.5-pro" "gpt-5.4" "gpt-5.4-fast" "gpt-5.4-mini" \
104
104
  "gpt-5.4-mini-fast" "gpt-5.3-codex" "gpt-5.3-codex-fast" "gpt-5.2" "garnet-07-15" \
@@ -279,7 +279,8 @@ behavior {
279
279
  exact="claude-opus-4-8" exact="claude-opus-4-8-fast" exact="claude-opus-4-7" \
280
280
  exact="claude-opus-4-6" exact="claude-opus-4-5-20251101" exact="claude-sonnet-5-5" \
281
281
  exact="claude-sonnet-5" exact="claude-sonnet-4-6" exact="claude-sonnet-4-5-20250929" \
282
- exact="claude-haiku-4-5-20251001" exact="atlas-07-21" exact="aster-07-15" exact="minimax-m2.7"
282
+ exact="claude-haiku-5-5" exact="claude-haiku-4-5-20251001" exact="atlas-07-21" exact="aster-07-15" \
283
+ exact="minimax-m2.7"
283
284
  route "openai-responses" exact="gpt-6-astra" exact="gpt-6.1-sol" exact="gpt-6-sol" exact="gpt-6-luna" \
284
285
  exact="gpt-5.6-sol" exact="gpt-5.6-sol-fast" exact="gpt-5.6-terra" exact="gpt-5.6-luna" \
285
286
  exact="gpt-5.5" exact="gpt-5.5-fast" exact="gpt-5.5-pro" exact="gpt-5.4" exact="gpt-5.4-fast" \
@@ -288,7 +289,7 @@ behavior {
288
289
  route "google-generate" exact="garnet-07-15" exact="gemini-3.1-pro-preview" exact="gemini-3.8-flash" \
289
290
  exact="gemini-3.7-flash" exact="gemini-3.6-flash" exact="gemini-3.5-flash" \
290
291
  exact="gemini-3-flash-preview"
291
- route "openai-completions" exact="inkling" exact="mistral-medium-3.5" exact="glm-5.3-flash" \
292
+ route "openai-completions" exact="inkling" exact="mistral-large-4" exact="mistral-medium-3.5" exact="glm-5.3-flash" \
292
293
  exact="glm-5.3" exact="glm-5.2" exact="glm-5.2-fast" exact="kimi-k3" exact="qwen3.8-max" \
293
294
  exact="nemotron-3-ultra" exact="deepseek-v4.1-flash" exact="deepseek-v4-flash-0731" \
294
295
  exact="deepseek-v4-pro" exact="minimax-m3"