crosscheck-mcp 0.2.9 → 0.2.11

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.
@@ -11,99 +11,329 @@ var pricing_default = {
11
11
  _meta: {
12
12
  currency: "USD",
13
13
  unit: "per_1k_tokens",
14
- updated_at: "2026-06-07",
15
- notes: "Prices reflect public list pricing per provider. cached_per_1k applies to prompt tokens served from prompt-cache (Anthropic) or input-cache (OpenAI) when supported. Update when providers change rates. Missing models fall back to cost=0 with estimated=true. 2026-06-07: removed decommissioned gemini-2.0-flash / gemini-2.0-flash-lite (Google returns 404) and replaced the low-tier lite model with gemini-2.5-flash-lite. 2026-06-08: bumped the default Anthropic model to claude-opus-4-8. Kept gemini-2.5-pro as the Gemini default (gemini-3.1-pro-preview measured ~2.2x the cost at $2/$12 per M \u2014 output-token dominated by ~1.5k thinking tokens \u2014 so not worth it for a 1-of-4 panel voice). 2026-06-09: corrected rates verified against live provider pricing pages \u2014 gemini-2.5-pro output $5->$10/M; gemini-2.5-flash $0.15/$0.60 -> $0.30/$2.50; gpt-5 $5/$15 -> $1.25/$10 (cached $0.125); grok-4-latest input $5->$3/M (legacy grok-4 tier). Anthropic opus/sonnet/haiku rates confirmed unchanged. Older/unused models (gpt-4o, o1, o3, grok-3) not all re-verified. 2026-07-02: added claude-fable-5 as the optional reasoning-upgrade model (used only for the lead reasoning seat when the operator bumps a heavy task). 2026-07-04: set claude-fable-5 to its real pay-as-you-go API price effective 2026-07-07 \u2014 $10/M input ($0.01/1k), $50/M output ($0.05/1k), cached at 10% of input ($0.001/1k). Dropped the estimated flag. Note: Fable 5 is cheaper than opus-4-8 on both input and output. 2026-07-09: Google retired gemini-2.5-pro AND gemini-3-pro-preview (both now 404 'no longer available'). Moved the Gemini default to gemini-3.1-pro-preview ($2/M in, $12/M out, cache $0.20/M \u2014 the newest working pro; note it's a preview and may need another bump) and added gemini-3.5-flash ($1.50/M in, $9/M out, cache $0.15/M \u2014 GA) to the low/cheap tier. Removed the dead gemini-2.5-pro rate. IMPORTANT: gemini-3.x are heavy thinking models \u2014 thoughtsTokenCount (billed as output) is now folded into completion_tokens in the adapter, so cost reflects reasoning tokens. 2026-07-13: bumped the default OpenAI model to gpt-5.5 ($5/M in, $30/M out, cached $0.50/M \u2014 verified live). Note gpt-5.5 is markedly pricier than gpt-5 ($1.25/$10): ~4x input, 3x output. Kept gpt-5 in the table for cost lookups on pinned installs. 2026-07-16: added gpt-5.6 at the Sol (flagship) tier \u2014 $5/M in, $30/M out, cached $0.50/M (cache-write $6.25/M not modeled). gpt-5.6 is the second premium voice for the max-reasoning co-reasoner (runs alongside claude-fable-5 when an OpenAI key is set). Terra/Luna tiers not added (unused). 2026-07-17: added Moonshot AI (Kimi) provider with kimi-k3, base URL https://api.moonshot.ai/v1. Confirmed real rates \u2014 $3.00/M input (cache miss, $0.003/1k), $15.00/M output ($0.015/1k), $0.30/M cache-hit input ($0.0003/1k); 1M-token context. Kimi K3 is reasoning-class (temperature must be 1; uses max_completion_tokens)."
14
+ updated_at: "2026-08-04",
15
+ notes: "Prices reflect public list pricing per provider. cached_per_1k applies to prompt tokens served from prompt-cache (Anthropic) or input-cache (OpenAI) when supported. Update when providers change rates. Missing models fall back to cost=0 with estimated=true. 2026-06-07: removed decommissioned gemini-2.0-flash / gemini-2.0-flash-lite (Google returns 404) and replaced the low-tier lite model with gemini-2.5-flash-lite. 2026-06-08: bumped the default Anthropic model to claude-opus-4-8. Kept gemini-2.5-pro as the Gemini default (gemini-3.1-pro-preview measured ~2.2x the cost at $2/$12 per M \u2014 output-token dominated by ~1.5k thinking tokens \u2014 so not worth it for a 1-of-4 panel voice). 2026-06-09: corrected rates verified against live provider pricing pages \u2014 gemini-2.5-pro output $5->$10/M; gemini-2.5-flash $0.15/$0.60 -> $0.30/$2.50; gpt-5 $5/$15 -> $1.25/$10 (cached $0.125); grok-4-latest input $5->$3/M (legacy grok-4 tier). Anthropic opus/sonnet/haiku rates confirmed unchanged. Older/unused models (gpt-4o, o1, o3, grok-3) not all re-verified. 2026-07-02: added claude-fable-5 as the optional reasoning-upgrade model (used only for the lead reasoning seat when the operator bumps a heavy task). 2026-07-04: set claude-fable-5 to its real pay-as-you-go API price effective 2026-07-07 \u2014 $10/M input ($0.01/1k), $50/M output ($0.05/1k), cached at 10% of input ($0.001/1k). Dropped the estimated flag. Note: Fable 5 is cheaper than opus-4-8 on both input and output. 2026-07-09: Google retired gemini-2.5-pro AND gemini-3-pro-preview (both now 404 'no longer available'). Moved the Gemini default to gemini-3.1-pro-preview ($2/M in, $12/M out, cache $0.20/M \u2014 the newest working pro; note it's a preview and may need another bump) and added gemini-3.5-flash ($1.50/M in, $9/M out, cache $0.15/M \u2014 GA) to the low/cheap tier. Removed the dead gemini-2.5-pro rate. IMPORTANT: gemini-3.x are heavy thinking models \u2014 thoughtsTokenCount (billed as output) is now folded into completion_tokens in the adapter, so cost reflects reasoning tokens. 2026-07-13: bumped the default OpenAI model to gpt-5.5 ($5/M in, $30/M out, cached $0.50/M \u2014 verified live). Note gpt-5.5 is markedly pricier than gpt-5 ($1.25/$10): ~4x input, 3x output. Kept gpt-5 in the table for cost lookups on pinned installs. 2026-07-16: added gpt-5.6 at the Sol (flagship) tier \u2014 $5/M in, $30/M out, cached $0.50/M (cache-write $6.25/M not modeled). gpt-5.6 is the second premium voice for the max-reasoning co-reasoner (runs alongside claude-fable-5 when an OpenAI key is set). Terra/Luna tiers not added (unused). 2026-07-17: added Moonshot AI (Kimi) provider with kimi-k3, base URL https://api.moonshot.ai/v1. Confirmed real rates \u2014 $3.00/M input (cache miss, $0.003/1k), $15.00/M output ($0.015/1k), $0.30/M cache-hit input ($0.0003/1k); 1M-token context. Kimi K3 is reasoning-class (temperature must be 1; uses max_completion_tokens). 2026-07-24: added claude-opus-5 ($5/M in, $25/M out, cached $0.50/M -- 10% of input, matching this table's existing cache-discount ratio) and made it the default anthropic model (was claude-opus-4-8). Fable 5 remains the reasoning-upgrade/super-mode target, unchanged. 2026-08-04: added Alibaba Cloud Qwen provider (OpenAI-compatible, DashScope international endpoint https://dashscope-intl.aliyuncs.com/compatible-mode/v1) with default model qwen3.8-max -- confirmed business pricing $2.00/M input ($0.002/1k), $6.00/M output ($0.006/1k), cache estimated at 10% of input ($0.0002/1k, not independently confirmed). Also added qwen3.7-max as a fallback tier at $1.25/M in ($0.00125/1k) / $3.75/M out ($0.00375/1k). Note: the model string initially configured (qwen-v3.8 / qwen-v3.7) does not exist on DashScope and 404s -- live-probed the real key against qwen3.8-max, qwen3.7-max, qwen3-max, qwen-max, and qwen-plus, all of which work; corrected the default and pricing keys to qwen3.8-max/qwen3.7-max and fixed QWEN_MODEL in both .env files to match. Qwen's Max tier is a standard instruct model, not reasoning-class -- normal temperature/max_tokens handling."
16
16
  },
17
17
  anthropic: {
18
- "claude-opus-4-5": { prompt_per_1k: 0.015, completion_per_1k: 0.075, cached_per_1k: 15e-4 },
19
- "claude-opus-4-7": { prompt_per_1k: 0.015, completion_per_1k: 0.075, cached_per_1k: 15e-4 },
20
- "claude-opus-4-8": { prompt_per_1k: 0.015, completion_per_1k: 0.075, cached_per_1k: 15e-4 },
21
- "claude-fable-5": { prompt_per_1k: 0.01, completion_per_1k: 0.05, cached_per_1k: 1e-3 },
22
- "claude-sonnet-4-5": { prompt_per_1k: 3e-3, completion_per_1k: 0.015, cached_per_1k: 3e-4 },
23
- "claude-sonnet-4-6": { prompt_per_1k: 3e-3, completion_per_1k: 0.015, cached_per_1k: 3e-4 },
24
- "claude-haiku-4-5": { prompt_per_1k: 1e-3, completion_per_1k: 5e-3, cached_per_1k: 1e-4 },
25
- "claude-3-5-sonnet": { prompt_per_1k: 3e-3, completion_per_1k: 0.015, cached_per_1k: 3e-4 },
26
- "claude-3-5-haiku": { prompt_per_1k: 8e-4, completion_per_1k: 4e-3, cached_per_1k: 8e-5 }
18
+ "claude-opus-4-5": {
19
+ prompt_per_1k: 0.015,
20
+ completion_per_1k: 0.075,
21
+ cached_per_1k: 15e-4
22
+ },
23
+ "claude-opus-4-7": {
24
+ prompt_per_1k: 0.015,
25
+ completion_per_1k: 0.075,
26
+ cached_per_1k: 15e-4
27
+ },
28
+ "claude-opus-4-8": {
29
+ prompt_per_1k: 0.015,
30
+ completion_per_1k: 0.075,
31
+ cached_per_1k: 15e-4
32
+ },
33
+ "claude-opus-5": {
34
+ prompt_per_1k: 5e-3,
35
+ completion_per_1k: 0.025,
36
+ cached_per_1k: 5e-4
37
+ },
38
+ "claude-fable-5": {
39
+ prompt_per_1k: 0.01,
40
+ completion_per_1k: 0.05,
41
+ cached_per_1k: 1e-3
42
+ },
43
+ "claude-sonnet-4-5": {
44
+ prompt_per_1k: 3e-3,
45
+ completion_per_1k: 0.015,
46
+ cached_per_1k: 3e-4
47
+ },
48
+ "claude-sonnet-4-6": {
49
+ prompt_per_1k: 3e-3,
50
+ completion_per_1k: 0.015,
51
+ cached_per_1k: 3e-4
52
+ },
53
+ "claude-haiku-4-5": {
54
+ prompt_per_1k: 1e-3,
55
+ completion_per_1k: 5e-3,
56
+ cached_per_1k: 1e-4
57
+ },
58
+ "claude-3-5-sonnet": {
59
+ prompt_per_1k: 3e-3,
60
+ completion_per_1k: 0.015,
61
+ cached_per_1k: 3e-4
62
+ },
63
+ "claude-3-5-haiku": {
64
+ prompt_per_1k: 8e-4,
65
+ completion_per_1k: 4e-3,
66
+ cached_per_1k: 8e-5
67
+ }
27
68
  },
28
69
  openai: {
29
- "gpt-5.6": { prompt_per_1k: 5e-3, completion_per_1k: 0.03, cached_per_1k: 5e-4 },
30
- "gpt-5.5": { prompt_per_1k: 5e-3, completion_per_1k: 0.03, cached_per_1k: 5e-4 },
31
- "gpt-5": { prompt_per_1k: 125e-5, completion_per_1k: 0.01, cached_per_1k: 125e-6 },
32
- "gpt-5-mini": { prompt_per_1k: 5e-4, completion_per_1k: 15e-4, cached_per_1k: 25e-5 },
33
- "gpt-4o": { prompt_per_1k: 25e-4, completion_per_1k: 0.01, cached_per_1k: 125e-5 },
34
- "gpt-4o-mini": { prompt_per_1k: 15e-5, completion_per_1k: 6e-4, cached_per_1k: 75e-6 },
35
- o1: { prompt_per_1k: 0.015, completion_per_1k: 0.06, cached_per_1k: 75e-4 },
36
- "o1-mini": { prompt_per_1k: 3e-3, completion_per_1k: 0.012, cached_per_1k: 15e-4 },
37
- o3: { prompt_per_1k: 0.01, completion_per_1k: 0.04, cached_per_1k: 5e-3 },
38
- "o3-mini": { prompt_per_1k: 11e-4, completion_per_1k: 44e-4, cached_per_1k: 55e-5 }
70
+ "gpt-5.6": {
71
+ prompt_per_1k: 5e-3,
72
+ completion_per_1k: 0.03,
73
+ cached_per_1k: 5e-4
74
+ },
75
+ "gpt-5.5": {
76
+ prompt_per_1k: 5e-3,
77
+ completion_per_1k: 0.03,
78
+ cached_per_1k: 5e-4
79
+ },
80
+ "gpt-5": {
81
+ prompt_per_1k: 125e-5,
82
+ completion_per_1k: 0.01,
83
+ cached_per_1k: 125e-6
84
+ },
85
+ "gpt-5-mini": {
86
+ prompt_per_1k: 5e-4,
87
+ completion_per_1k: 15e-4,
88
+ cached_per_1k: 25e-5
89
+ },
90
+ "gpt-4o": {
91
+ prompt_per_1k: 25e-4,
92
+ completion_per_1k: 0.01,
93
+ cached_per_1k: 125e-5
94
+ },
95
+ "gpt-4o-mini": {
96
+ prompt_per_1k: 15e-5,
97
+ completion_per_1k: 6e-4,
98
+ cached_per_1k: 75e-6
99
+ },
100
+ o1: {
101
+ prompt_per_1k: 0.015,
102
+ completion_per_1k: 0.06,
103
+ cached_per_1k: 75e-4
104
+ },
105
+ "o1-mini": {
106
+ prompt_per_1k: 3e-3,
107
+ completion_per_1k: 0.012,
108
+ cached_per_1k: 15e-4
109
+ },
110
+ o3: {
111
+ prompt_per_1k: 0.01,
112
+ completion_per_1k: 0.04,
113
+ cached_per_1k: 5e-3
114
+ },
115
+ "o3-mini": {
116
+ prompt_per_1k: 11e-4,
117
+ completion_per_1k: 44e-4,
118
+ cached_per_1k: 55e-5
119
+ }
39
120
  },
40
121
  xai: {
41
- "grok-4-latest": { prompt_per_1k: 3e-3, completion_per_1k: 0.015, cached_per_1k: 75e-5 },
42
- "grok-3": { prompt_per_1k: 3e-3, completion_per_1k: 0.015, cached_per_1k: 15e-4 },
43
- "grok-3-mini": { prompt_per_1k: 3e-4, completion_per_1k: 5e-4, cached_per_1k: 15e-5 }
122
+ "grok-4-latest": {
123
+ prompt_per_1k: 3e-3,
124
+ completion_per_1k: 0.015,
125
+ cached_per_1k: 75e-5
126
+ },
127
+ "grok-3": {
128
+ prompt_per_1k: 3e-3,
129
+ completion_per_1k: 0.015,
130
+ cached_per_1k: 15e-4
131
+ },
132
+ "grok-3-mini": {
133
+ prompt_per_1k: 3e-4,
134
+ completion_per_1k: 5e-4,
135
+ cached_per_1k: 15e-5
136
+ }
44
137
  },
45
138
  gemini: {
46
- "gemini-3.1-pro-preview": { prompt_per_1k: 2e-3, completion_per_1k: 0.012, cached_per_1k: 2e-4 },
47
- "gemini-3.5-flash": { prompt_per_1k: 15e-4, completion_per_1k: 9e-3, cached_per_1k: 15e-5 },
48
- "gemini-2.5-flash": { prompt_per_1k: 3e-4, completion_per_1k: 25e-4, cached_per_1k: 75e-6 },
49
- "gemini-2.5-flash-lite": { prompt_per_1k: 1e-4, completion_per_1k: 4e-4, cached_per_1k: 25e-6 }
139
+ "gemini-3.1-pro-preview": {
140
+ prompt_per_1k: 2e-3,
141
+ completion_per_1k: 0.012,
142
+ cached_per_1k: 2e-4
143
+ },
144
+ "gemini-3.5-flash": {
145
+ prompt_per_1k: 15e-4,
146
+ completion_per_1k: 9e-3,
147
+ cached_per_1k: 15e-5
148
+ },
149
+ "gemini-2.5-flash": {
150
+ prompt_per_1k: 3e-4,
151
+ completion_per_1k: 25e-4,
152
+ cached_per_1k: 75e-6
153
+ },
154
+ "gemini-2.5-flash-lite": {
155
+ prompt_per_1k: 1e-4,
156
+ completion_per_1k: 4e-4,
157
+ cached_per_1k: 25e-6
158
+ }
50
159
  },
51
160
  mistral: {
52
- "mistral-large-latest": { prompt_per_1k: 2e-3, completion_per_1k: 6e-3, cached_per_1k: 2e-4 },
53
- "mistral-small-latest": { prompt_per_1k: 2e-4, completion_per_1k: 6e-4, cached_per_1k: 2e-5 }
161
+ "mistral-large-latest": {
162
+ prompt_per_1k: 2e-3,
163
+ completion_per_1k: 6e-3,
164
+ cached_per_1k: 2e-4
165
+ },
166
+ "mistral-small-latest": {
167
+ prompt_per_1k: 2e-4,
168
+ completion_per_1k: 6e-4,
169
+ cached_per_1k: 2e-5
170
+ }
54
171
  },
55
172
  groq: {
56
- "llama-3.3-70b-versatile": { prompt_per_1k: 59e-5, completion_per_1k: 79e-5, cached_per_1k: 295e-6 },
57
- "llama-3.1-8b-instant": { prompt_per_1k: 5e-5, completion_per_1k: 8e-5, cached_per_1k: 25e-6 }
173
+ "llama-3.3-70b-versatile": {
174
+ prompt_per_1k: 59e-5,
175
+ completion_per_1k: 79e-5,
176
+ cached_per_1k: 295e-6
177
+ },
178
+ "llama-3.1-8b-instant": {
179
+ prompt_per_1k: 5e-5,
180
+ completion_per_1k: 8e-5,
181
+ cached_per_1k: 25e-6
182
+ }
58
183
  },
59
184
  deepseek: {
60
- "deepseek-chat": { prompt_per_1k: 27e-5, completion_per_1k: 11e-4, cached_per_1k: 7e-5 },
61
- "deepseek-reasoner": { prompt_per_1k: 55e-5, completion_per_1k: 22e-4, cached_per_1k: 14e-5 }
185
+ "deepseek-chat": {
186
+ prompt_per_1k: 27e-5,
187
+ completion_per_1k: 11e-4,
188
+ cached_per_1k: 7e-5
189
+ },
190
+ "deepseek-reasoner": {
191
+ prompt_per_1k: 55e-5,
192
+ completion_per_1k: 22e-4,
193
+ cached_per_1k: 14e-5
194
+ }
62
195
  },
63
196
  kimi: {
64
- "kimi-k3": { prompt_per_1k: 3e-3, completion_per_1k: 0.015, cached_per_1k: 3e-4 }
197
+ "kimi-k3": {
198
+ prompt_per_1k: 3e-3,
199
+ completion_per_1k: 0.015,
200
+ cached_per_1k: 3e-4
201
+ }
202
+ },
203
+ qwen: {
204
+ "qwen3.8-max": {
205
+ prompt_per_1k: 2e-3,
206
+ completion_per_1k: 6e-3,
207
+ cached_per_1k: 2e-4
208
+ },
209
+ "qwen3.7-max": {
210
+ prompt_per_1k: 125e-5,
211
+ completion_per_1k: 375e-5,
212
+ cached_per_1k: 125e-6
213
+ }
65
214
  },
66
215
  _tiers: {
67
216
  low: {
68
217
  description: "Cheap, fast models for simple subtasks (extraction, formatting, short summaries).",
69
218
  models: [
70
- { provider: "openai", model: "gpt-4o-mini" },
71
- { provider: "openai", model: "gpt-5-mini" },
72
- { provider: "anthropic", model: "claude-haiku-4-5" },
73
- { provider: "anthropic", model: "claude-3-5-haiku" },
74
- { provider: "gemini", model: "gemini-3.5-flash" },
75
- { provider: "gemini", model: "gemini-2.5-flash" },
76
- { provider: "gemini", model: "gemini-2.5-flash-lite" },
77
- { provider: "xai", model: "grok-3-mini" },
78
- { provider: "groq", model: "llama-3.1-8b-instant" },
79
- { provider: "deepseek", model: "deepseek-chat" }
219
+ {
220
+ provider: "openai",
221
+ model: "gpt-4o-mini"
222
+ },
223
+ {
224
+ provider: "openai",
225
+ model: "gpt-5-mini"
226
+ },
227
+ {
228
+ provider: "anthropic",
229
+ model: "claude-haiku-4-5"
230
+ },
231
+ {
232
+ provider: "anthropic",
233
+ model: "claude-3-5-haiku"
234
+ },
235
+ {
236
+ provider: "gemini",
237
+ model: "gemini-3.5-flash"
238
+ },
239
+ {
240
+ provider: "gemini",
241
+ model: "gemini-2.5-flash"
242
+ },
243
+ {
244
+ provider: "gemini",
245
+ model: "gemini-2.5-flash-lite"
246
+ },
247
+ {
248
+ provider: "xai",
249
+ model: "grok-3-mini"
250
+ },
251
+ {
252
+ provider: "groq",
253
+ model: "llama-3.1-8b-instant"
254
+ },
255
+ {
256
+ provider: "deepseek",
257
+ model: "deepseek-chat"
258
+ }
80
259
  ]
81
260
  },
82
261
  med: {
83
262
  description: "Mid-tier models for reasoning, code, multi-step thinking.",
84
263
  models: [
85
- { provider: "anthropic", model: "claude-sonnet-4-5" },
86
- { provider: "anthropic", model: "claude-sonnet-4-6" },
87
- { provider: "openai", model: "gpt-4o" },
88
- { provider: "openai", model: "o3-mini" },
89
- { provider: "gemini", model: "gemini-3.1-pro-preview" },
90
- { provider: "xai", model: "grok-3" },
91
- { provider: "mistral", model: "mistral-large-latest" },
92
- { provider: "deepseek", model: "deepseek-reasoner" },
93
- { provider: "groq", model: "llama-3.3-70b-versatile" }
264
+ {
265
+ provider: "anthropic",
266
+ model: "claude-sonnet-4-5"
267
+ },
268
+ {
269
+ provider: "anthropic",
270
+ model: "claude-sonnet-4-6"
271
+ },
272
+ {
273
+ provider: "openai",
274
+ model: "gpt-4o"
275
+ },
276
+ {
277
+ provider: "openai",
278
+ model: "o3-mini"
279
+ },
280
+ {
281
+ provider: "gemini",
282
+ model: "gemini-3.1-pro-preview"
283
+ },
284
+ {
285
+ provider: "xai",
286
+ model: "grok-3"
287
+ },
288
+ {
289
+ provider: "mistral",
290
+ model: "mistral-large-latest"
291
+ },
292
+ {
293
+ provider: "deepseek",
294
+ model: "deepseek-reasoner"
295
+ },
296
+ {
297
+ provider: "groq",
298
+ model: "llama-3.3-70b-versatile"
299
+ }
94
300
  ]
95
301
  },
96
302
  high: {
97
303
  description: "Most capable models for hard reasoning, planning, audits.",
98
304
  models: [
99
- { provider: "anthropic", model: "claude-opus-4-5" },
100
- { provider: "anthropic", model: "claude-opus-4-7" },
101
- { provider: "anthropic", model: "claude-fable-5" },
102
- { provider: "openai", model: "gpt-5.5" },
103
- { provider: "openai", model: "gpt-5" },
104
- { provider: "openai", model: "o1" },
105
- { provider: "openai", model: "o3" },
106
- { provider: "xai", model: "grok-4-latest" }
305
+ {
306
+ provider: "anthropic",
307
+ model: "claude-opus-4-5"
308
+ },
309
+ {
310
+ provider: "anthropic",
311
+ model: "claude-opus-4-7"
312
+ },
313
+ {
314
+ provider: "anthropic",
315
+ model: "claude-fable-5"
316
+ },
317
+ {
318
+ provider: "openai",
319
+ model: "gpt-5.5"
320
+ },
321
+ {
322
+ provider: "openai",
323
+ model: "gpt-5"
324
+ },
325
+ {
326
+ provider: "openai",
327
+ model: "o1"
328
+ },
329
+ {
330
+ provider: "openai",
331
+ model: "o3"
332
+ },
333
+ {
334
+ provider: "xai",
335
+ model: "grok-4-latest"
336
+ }
107
337
  ]
108
338
  }
109
339
  }
@@ -154,7 +384,7 @@ var PROVIDER_CAPS = {
154
384
  family: "anthropic",
155
385
  system_role: "separate",
156
386
  supports_temperature: "model",
157
- reasoning_prefixes: ["claude-opus-4-7", "claude-opus-4-8", "claude-fable-5"]
387
+ reasoning_prefixes: ["claude-opus-4-7", "claude-opus-4-8", "claude-opus-5", "claude-fable-5"]
158
388
  },
159
389
  openai: {
160
390
  family: "openai_chat",
@@ -179,7 +409,11 @@ var PROVIDER_CAPS = {
179
409
  system_role: "separate",
180
410
  supports_temperature: true,
181
411
  reasoning_prefixes: ["gemini-3.1-pro", "gemini-3.5-flash", "gemini-2.5-pro"]
182
- }
412
+ },
413
+ // Qwen's "Max" tier (qwen-v3.8, qwen-v3.7) is a standard instruct/chat
414
+ // model, not a visible-reasoning model like QwQ — normal temperature and
415
+ // max_tokens handling, same as xai/mistral/groq/deepseek.
416
+ qwen: { family: "openai_chat", system_role: "inline", supports_temperature: true }
183
417
  };
184
418
  function isReasoningModel(provider, model) {
185
419
  const caps = PROVIDER_CAPS[provider];
@@ -750,7 +984,12 @@ var OPENAI_COMPAT_DEFAULT_URLS = {
750
984
  groq: "https://api.groq.com/openai/v1/chat/completions",
751
985
  deepseek: "https://api.deepseek.com/v1/chat/completions",
752
986
  // Moonshot AI (Kimi). OpenAI-compatible chat completions endpoint.
753
- kimi: "https://api.moonshot.ai/v1/chat/completions"
987
+ kimi: "https://api.moonshot.ai/v1/chat/completions",
988
+ // Alibaba Cloud DashScope (Qwen). International endpoint — the mainland
989
+ // China endpoint (dashscope.aliyuncs.com) 403s/404s from outside China in
990
+ // a way that can look like a bad key; this is the deliberate default for
991
+ // a US-based deployment.
992
+ qwen: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions"
754
993
  };
755
994
  var OPENAI_COMPAT_NATIVE_STRUCTURED = /* @__PURE__ */ new Set([
756
995
  "openai"
@@ -912,14 +1151,15 @@ async function sendOpenAICompatible(args) {
912
1151
 
913
1152
  // src/providers/registry.ts
914
1153
  var DEFAULT_MODELS = {
915
- anthropic: "claude-opus-4-8",
1154
+ anthropic: "claude-opus-5",
916
1155
  openai: "gpt-5.5",
917
1156
  xai: "grok-4-latest",
918
1157
  mistral: "mistral-large-latest",
919
1158
  groq: "llama-3.3-70b-versatile",
920
1159
  deepseek: "deepseek-chat",
921
1160
  gemini: "gemini-3.1-pro-preview",
922
- kimi: "kimi-k3"
1161
+ kimi: "kimi-k3",
1162
+ qwen: "qwen3.8-max"
923
1163
  };
924
1164
  function buildProviders(opts) {
925
1165
  const out = {};
@@ -934,7 +1174,8 @@ function buildProviders(opts) {
934
1174
  { name: "mistral", keyEnv: "MISTRAL_API_KEY", modelEnv: "MISTRAL_MODEL", defaultModel: DEFAULT_MODELS["mistral"] },
935
1175
  { name: "groq", keyEnv: "GROQ_API_KEY", modelEnv: "GROQ_MODEL", defaultModel: DEFAULT_MODELS["groq"] },
936
1176
  { name: "deepseek", keyEnv: "DEEPSEEK_API_KEY", modelEnv: "DEEPSEEK_MODEL", defaultModel: DEFAULT_MODELS["deepseek"] },
937
- { name: "kimi", keyEnv: "KIMI_API_KEY", modelEnv: "KIMI_MODEL", defaultModel: DEFAULT_MODELS["kimi"] }
1177
+ { name: "kimi", keyEnv: "KIMI_API_KEY", modelEnv: "KIMI_MODEL", defaultModel: DEFAULT_MODELS["kimi"] },
1178
+ { name: "qwen", keyEnv: "QWEN_API_KEY", modelEnv: "QWEN_MODEL", defaultModel: DEFAULT_MODELS["qwen"] }
938
1179
  ];
939
1180
  for (const s of openAiCompatSpec) {
940
1181
  const apiKey = opts.env[s.keyEnv];
@@ -1006,7 +1247,7 @@ import { z } from "zod";
1006
1247
 
1007
1248
  // src/server-meta.ts
1008
1249
  var SERVER_NAME = "crosscheck-agent";
1009
- var SERVER_VERSION = true ? "0.2.9" : "0.0.0-dev";
1250
+ var SERVER_VERSION = true ? "0.2.11" : "0.0.0-dev";
1010
1251
 
1011
1252
  // src/tools/audit.ts
1012
1253
  import { readdirSync, readFileSync as readFileSync3, statSync } from "fs";
@@ -3855,7 +4096,9 @@ var SUPER_MODELS = {
3855
4096
  // already the default — no-op retarget
3856
4097
  gemini: DEFAULT_MODELS["gemini"],
3857
4098
  // already the default — no-op retarget
3858
- kimi: DEFAULT_MODELS["kimi"]
4099
+ kimi: DEFAULT_MODELS["kimi"],
4100
+ // already the default — no-op retarget
4101
+ qwen: DEFAULT_MODELS["qwen"]
3859
4102
  // already the default — no-op retarget
3860
4103
  };
3861
4104
  var SUPER_PROVIDER_NAMES = Object.keys(SUPER_MODELS);
@@ -9658,7 +9901,8 @@ var KNOWN_PROVIDERS6 = [
9658
9901
  "mistral",
9659
9902
  "groq",
9660
9903
  "deepseek",
9661
- "kimi"
9904
+ "kimi",
9905
+ "qwen"
9662
9906
  ];
9663
9907
  var USAGE_HINT = "Pass a 'providers' array to confer/debate/plan/review to pick an ad-hoc subset, e.g. providers=['openai','gemini']. Omit the field to use the configured active set.";
9664
9908
  function runListProviders(args, opts) {
@@ -11230,7 +11474,7 @@ var CHECK_INTERVAL_SECONDS = 3 * 24 * 60 * 60;
11230
11474
  var DEFAULT_PACKAGE = "crosscheck-cli";
11231
11475
  var FETCH_TIMEOUT_MS = 3e3;
11232
11476
  function engineVersion() {
11233
- return true ? "0.2.9" : "0.0.0-dev";
11477
+ return true ? "0.2.11" : "0.0.0-dev";
11234
11478
  }
11235
11479
  function defaultUpdateCachePath() {
11236
11480
  const base = process.env["CROSSCHECK_DATA_DIR"] || path9.join(os.homedir() || os.tmpdir(), ".crosscheck");
@@ -12851,7 +13095,8 @@ var KEY_ENV = {
12851
13095
  groq: "GROQ_API_KEY",
12852
13096
  deepseek: "DEEPSEEK_API_KEY",
12853
13097
  mistral: "MISTRAL_API_KEY",
12854
- kimi: "KIMI_API_KEY"
13098
+ kimi: "KIMI_API_KEY",
13099
+ qwen: "QWEN_API_KEY"
12855
13100
  };
12856
13101
  function createCrosscheck(opts) {
12857
13102
  const env = {};