@psnext/slingcli 2.5.20260623-1 → 2.5.20260629-1

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 (108) hide show
  1. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js +5 -2
  2. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js +2 -1
  3. package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.js +1 -1
  4. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  5. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +51 -47
  6. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +9 -3
  7. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +9 -6
  8. package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare.js +0 -18
  9. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +6 -3
  10. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +6 -3
  11. package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +1 -1
  12. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +15 -25
  13. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +30 -26
  14. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +189 -204
  15. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +24 -21
  16. package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.js +2 -5
  17. package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js +11 -2
  18. package/node_modules/@earendil-works/pi-ai/dist/auth/helpers.js +2 -2
  19. package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js +19 -4
  20. package/node_modules/@earendil-works/pi-ai/dist/compat.js +81 -7
  21. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +45 -0
  22. package/node_modules/@earendil-works/pi-ai/dist/images-models.js +7 -3
  23. package/node_modules/@earendil-works/pi-ai/dist/index.js +1 -0
  24. package/node_modules/@earendil-works/pi-ai/dist/legacy-api-aliases.js +49 -0
  25. package/node_modules/@earendil-works/pi-ai/dist/models.js +7 -3
  26. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.models.js +25 -8
  27. package/node_modules/@earendil-works/pi-ai/dist/providers/ant-ling.models.js +3 -3
  28. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.models.js +0 -34
  29. package/node_modules/@earendil-works/pi-ai/dist/providers/cerebras.models.js +2 -0
  30. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.js +2 -2
  31. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.models.js +21 -9
  32. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-auth.js +85 -0
  33. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.js +2 -2
  34. package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-workers-ai.models.js +13 -13
  35. package/node_modules/@earendil-works/pi-ai/dist/providers/deepseek.models.js +2 -2
  36. package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js +1 -20
  37. package/node_modules/@earendil-works/pi-ai/dist/providers/fireworks.models.js +19 -1
  38. package/node_modules/@earendil-works/pi-ai/dist/providers/huggingface.models.js +72 -0
  39. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax-cn.models.js +4 -4
  40. package/node_modules/@earendil-works/pi-ai/dist/providers/minimax.models.js +4 -4
  41. package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js +19 -0
  42. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.models.js +11 -11
  43. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.models.js +15 -15
  44. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +310 -39
  45. package/node_modules/@earendil-works/pi-ai/dist/providers/together.models.js +37 -18
  46. package/node_modules/@earendil-works/pi-ai/dist/providers/vercel-ai-gateway.models.js +349 -77
  47. package/node_modules/@earendil-works/pi-ai/dist/providers/xai.models.js +7 -0
  48. package/node_modules/@earendil-works/pi-ai/dist/providers/zai-coding-cn.models.js +6 -6
  49. package/node_modules/@earendil-works/pi-ai/dist/providers/zai.models.js +6 -6
  50. package/node_modules/@earendil-works/pi-ai/dist/utils/estimate.js +95 -0
  51. package/node_modules/@earendil-works/pi-ai/dist/utils/headers.js +10 -0
  52. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js +2 -2
  53. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +86 -0
  54. package/node_modules/@earendil-works/pi-ai/package.json +1 -33
  55. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.js +13 -25
  56. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js +15 -30
  57. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.js +6 -3
  58. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js +5 -1
  59. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js +2 -4
  60. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js +1 -1
  61. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js +2 -0
  62. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js +9 -5
  63. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js +11 -0
  64. package/node_modules/@earendil-works/pi-coding-agent/dist/core/timings.js +24 -14
  65. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js +12 -25
  66. package/node_modules/@earendil-works/pi-coding-agent/dist/main.js +20 -4
  67. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.js +9 -9
  68. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-editor.js +12 -3
  69. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector.js +14 -3
  70. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.js +1 -1
  71. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +37 -25
  72. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.js +14 -0
  73. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +16 -0
  74. package/node_modules/@earendil-works/pi-coding-agent/dist/rpc-entry.js +10 -0
  75. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-convert.js +21 -15
  76. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-process.js +83 -0
  77. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/mime.js +41 -0
  78. package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +12 -12
  79. package/node_modules/@earendil-works/pi-coding-agent/package.json +8 -5
  80. package/node_modules/@earendil-works/pi-orchestrator/dist/cli.js +136 -0
  81. package/node_modules/@earendil-works/pi-orchestrator/dist/config.js +55 -0
  82. package/node_modules/@earendil-works/pi-orchestrator/dist/handler.js +105 -0
  83. package/node_modules/@earendil-works/pi-orchestrator/dist/index.js +11 -0
  84. package/node_modules/@earendil-works/pi-orchestrator/dist/ipc/client.js +56 -0
  85. package/node_modules/@earendil-works/pi-orchestrator/dist/ipc/protocol.js +12 -0
  86. package/node_modules/@earendil-works/pi-orchestrator/dist/ipc/server.js +145 -0
  87. package/node_modules/@earendil-works/pi-orchestrator/dist/radius.js +365 -0
  88. package/node_modules/@earendil-works/pi-orchestrator/dist/rpc-process.js +168 -0
  89. package/node_modules/@earendil-works/pi-orchestrator/dist/serve.js +70 -0
  90. package/node_modules/@earendil-works/pi-orchestrator/dist/storage.js +58 -0
  91. package/node_modules/@earendil-works/pi-orchestrator/dist/supervisor.js +290 -0
  92. package/node_modules/@earendil-works/pi-orchestrator/dist/types.js +2 -0
  93. package/node_modules/@earendil-works/pi-orchestrator/package.json +45 -0
  94. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js +3 -0
  95. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  96. package/node_modules/@types/node/README.md +1 -1
  97. package/node_modules/@types/node/diagnostics_channel.d.ts +17 -20
  98. package/node_modules/@types/node/package.json +2 -2
  99. package/node_modules/brace-expansion/dist/commonjs/index.js +24 -14
  100. package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
  101. package/node_modules/brace-expansion/dist/esm/index.js +24 -14
  102. package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
  103. package/node_modules/brace-expansion/package.json +2 -2
  104. package/node_modules/google-auth-library/build/src/auth/googleauth.js +1 -1
  105. package/node_modules/google-auth-library/package.json +4 -4
  106. package/package.json +7 -6
  107. package/slingshot/index.js +302 -304
  108. package/node_modules/@earendil-works/pi-ai/dist/api-registry.js +0 -44
@@ -7,6 +7,7 @@ export const OPENROUTER_MODELS = {
7
7
  api: "openai-completions",
8
8
  provider: "openrouter",
9
9
  baseUrl: "https://openrouter.ai/api/v1",
10
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
10
11
  reasoning: false,
11
12
  input: ["text"],
12
13
  cost: {
@@ -24,6 +25,7 @@ export const OPENROUTER_MODELS = {
24
25
  api: "openai-completions",
25
26
  provider: "openrouter",
26
27
  baseUrl: "https://openrouter.ai/api/v1",
28
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
27
29
  reasoning: true,
28
30
  input: ["text", "image"],
29
31
  cost: {
@@ -41,6 +43,7 @@ export const OPENROUTER_MODELS = {
41
43
  api: "openai-completions",
42
44
  provider: "openrouter",
43
45
  baseUrl: "https://openrouter.ai/api/v1",
46
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
44
47
  reasoning: false,
45
48
  input: ["text", "image"],
46
49
  cost: {
@@ -58,6 +61,7 @@ export const OPENROUTER_MODELS = {
58
61
  api: "openai-completions",
59
62
  provider: "openrouter",
60
63
  baseUrl: "https://openrouter.ai/api/v1",
64
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
61
65
  reasoning: false,
62
66
  input: ["text"],
63
67
  cost: {
@@ -75,6 +79,7 @@ export const OPENROUTER_MODELS = {
75
79
  api: "openai-completions",
76
80
  provider: "openrouter",
77
81
  baseUrl: "https://openrouter.ai/api/v1",
82
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
78
83
  reasoning: false,
79
84
  input: ["text", "image"],
80
85
  cost: {
@@ -92,6 +97,7 @@ export const OPENROUTER_MODELS = {
92
97
  api: "openai-completions",
93
98
  provider: "openrouter",
94
99
  baseUrl: "https://openrouter.ai/api/v1",
100
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
95
101
  reasoning: false,
96
102
  input: ["text", "image"],
97
103
  cost: {
@@ -109,6 +115,7 @@ export const OPENROUTER_MODELS = {
109
115
  api: "openai-completions",
110
116
  provider: "openrouter",
111
117
  baseUrl: "https://openrouter.ai/api/v1",
118
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
112
119
  reasoning: false,
113
120
  input: ["text", "image"],
114
121
  cost: {
@@ -126,6 +133,7 @@ export const OPENROUTER_MODELS = {
126
133
  api: "openai-completions",
127
134
  provider: "openrouter",
128
135
  baseUrl: "https://openrouter.ai/api/v1",
136
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
129
137
  reasoning: true,
130
138
  input: ["text", "image"],
131
139
  cost: {
@@ -143,6 +151,7 @@ export const OPENROUTER_MODELS = {
143
151
  api: "openai-completions",
144
152
  provider: "openrouter",
145
153
  baseUrl: "https://openrouter.ai/api/v1",
154
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
146
155
  reasoning: true,
147
156
  input: ["text", "image"],
148
157
  cost: {
@@ -160,6 +169,7 @@ export const OPENROUTER_MODELS = {
160
169
  api: "openai-completions",
161
170
  provider: "openrouter",
162
171
  baseUrl: "https://openrouter.ai/api/v1",
172
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
163
173
  reasoning: true,
164
174
  input: ["text", "image"],
165
175
  cost: {
@@ -177,6 +187,7 @@ export const OPENROUTER_MODELS = {
177
187
  api: "openai-completions",
178
188
  provider: "openrouter",
179
189
  baseUrl: "https://openrouter.ai/api/v1",
190
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
180
191
  reasoning: true,
181
192
  input: ["text", "image"],
182
193
  cost: {
@@ -194,6 +205,7 @@ export const OPENROUTER_MODELS = {
194
205
  api: "openai-completions",
195
206
  provider: "openrouter",
196
207
  baseUrl: "https://openrouter.ai/api/v1",
208
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
197
209
  reasoning: true,
198
210
  input: ["text", "image"],
199
211
  cost: {
@@ -211,6 +223,7 @@ export const OPENROUTER_MODELS = {
211
223
  api: "openai-completions",
212
224
  provider: "openrouter",
213
225
  baseUrl: "https://openrouter.ai/api/v1",
226
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
214
227
  reasoning: true,
215
228
  thinkingLevelMap: { "xhigh": "max" },
216
229
  input: ["text", "image"],
@@ -229,6 +242,7 @@ export const OPENROUTER_MODELS = {
229
242
  api: "openai-completions",
230
243
  provider: "openrouter",
231
244
  baseUrl: "https://openrouter.ai/api/v1",
245
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
232
246
  reasoning: true,
233
247
  thinkingLevelMap: { "xhigh": "max" },
234
248
  input: ["text", "image"],
@@ -247,6 +261,7 @@ export const OPENROUTER_MODELS = {
247
261
  api: "openai-completions",
248
262
  provider: "openrouter",
249
263
  baseUrl: "https://openrouter.ai/api/v1",
264
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
250
265
  reasoning: true,
251
266
  thinkingLevelMap: { "xhigh": "xhigh" },
252
267
  input: ["text", "image"],
@@ -265,6 +280,7 @@ export const OPENROUTER_MODELS = {
265
280
  api: "openai-completions",
266
281
  provider: "openrouter",
267
282
  baseUrl: "https://openrouter.ai/api/v1",
283
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
268
284
  reasoning: true,
269
285
  thinkingLevelMap: { "xhigh": "xhigh" },
270
286
  input: ["text", "image"],
@@ -283,6 +299,7 @@ export const OPENROUTER_MODELS = {
283
299
  api: "openai-completions",
284
300
  provider: "openrouter",
285
301
  baseUrl: "https://openrouter.ai/api/v1",
302
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
286
303
  reasoning: true,
287
304
  thinkingLevelMap: { "xhigh": "xhigh" },
288
305
  input: ["text", "image"],
@@ -301,6 +318,7 @@ export const OPENROUTER_MODELS = {
301
318
  api: "openai-completions",
302
319
  provider: "openrouter",
303
320
  baseUrl: "https://openrouter.ai/api/v1",
321
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
304
322
  reasoning: true,
305
323
  thinkingLevelMap: { "xhigh": "xhigh" },
306
324
  input: ["text", "image"],
@@ -319,6 +337,7 @@ export const OPENROUTER_MODELS = {
319
337
  api: "openai-completions",
320
338
  provider: "openrouter",
321
339
  baseUrl: "https://openrouter.ai/api/v1",
340
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
322
341
  reasoning: true,
323
342
  input: ["text", "image"],
324
343
  cost: {
@@ -336,6 +355,7 @@ export const OPENROUTER_MODELS = {
336
355
  api: "openai-completions",
337
356
  provider: "openrouter",
338
357
  baseUrl: "https://openrouter.ai/api/v1",
358
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
339
359
  reasoning: true,
340
360
  input: ["text", "image"],
341
361
  cost: {
@@ -353,6 +373,7 @@ export const OPENROUTER_MODELS = {
353
373
  api: "openai-completions",
354
374
  provider: "openrouter",
355
375
  baseUrl: "https://openrouter.ai/api/v1",
376
+ compat: { "thinkingFormat": "openrouter", "cacheControlFormat": "anthropic" },
356
377
  reasoning: true,
357
378
  input: ["text", "image"],
358
379
  cost: {
@@ -370,6 +391,7 @@ export const OPENROUTER_MODELS = {
370
391
  api: "openai-completions",
371
392
  provider: "openrouter",
372
393
  baseUrl: "https://openrouter.ai/api/v1",
394
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
373
395
  reasoning: true,
374
396
  input: ["text"],
375
397
  cost: {
@@ -387,6 +409,7 @@ export const OPENROUTER_MODELS = {
387
409
  api: "openai-completions",
388
410
  provider: "openrouter",
389
411
  baseUrl: "https://openrouter.ai/api/v1",
412
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
390
413
  reasoning: true,
391
414
  input: ["text"],
392
415
  cost: {
@@ -404,6 +427,7 @@ export const OPENROUTER_MODELS = {
404
427
  api: "openai-completions",
405
428
  provider: "openrouter",
406
429
  baseUrl: "https://openrouter.ai/api/v1",
430
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
407
431
  reasoning: false,
408
432
  input: ["text"],
409
433
  cost: {
@@ -421,6 +445,7 @@ export const OPENROUTER_MODELS = {
421
445
  api: "openai-completions",
422
446
  provider: "openrouter",
423
447
  baseUrl: "https://openrouter.ai/api/v1",
448
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
424
449
  reasoning: true,
425
450
  input: ["text", "image"],
426
451
  cost: {
@@ -438,6 +463,7 @@ export const OPENROUTER_MODELS = {
438
463
  api: "openai-completions",
439
464
  provider: "openrouter",
440
465
  baseUrl: "https://openrouter.ai/api/v1",
466
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
441
467
  reasoning: true,
442
468
  input: ["text", "image"],
443
469
  cost: {
@@ -455,6 +481,7 @@ export const OPENROUTER_MODELS = {
455
481
  api: "openai-completions",
456
482
  provider: "openrouter",
457
483
  baseUrl: "https://openrouter.ai/api/v1",
484
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
458
485
  reasoning: true,
459
486
  input: ["text", "image"],
460
487
  cost: {
@@ -472,6 +499,7 @@ export const OPENROUTER_MODELS = {
472
499
  api: "openai-completions",
473
500
  provider: "openrouter",
474
501
  baseUrl: "https://openrouter.ai/api/v1",
502
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
475
503
  reasoning: true,
476
504
  input: ["text", "image"],
477
505
  cost: {
@@ -489,6 +517,7 @@ export const OPENROUTER_MODELS = {
489
517
  api: "openai-completions",
490
518
  provider: "openrouter",
491
519
  baseUrl: "https://openrouter.ai/api/v1",
520
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
492
521
  reasoning: true,
493
522
  input: ["text", "image"],
494
523
  cost: {
@@ -506,6 +535,7 @@ export const OPENROUTER_MODELS = {
506
535
  api: "openai-completions",
507
536
  provider: "openrouter",
508
537
  baseUrl: "https://openrouter.ai/api/v1",
538
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
509
539
  reasoning: false,
510
540
  input: ["text"],
511
541
  cost: {
@@ -523,6 +553,7 @@ export const OPENROUTER_MODELS = {
523
553
  api: "openai-completions",
524
554
  provider: "openrouter",
525
555
  baseUrl: "https://openrouter.ai/api/v1",
556
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
526
557
  reasoning: false,
527
558
  input: ["text"],
528
559
  cost: {
@@ -540,6 +571,7 @@ export const OPENROUTER_MODELS = {
540
571
  api: "openai-completions",
541
572
  provider: "openrouter",
542
573
  baseUrl: "https://openrouter.ai/api/v1",
574
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
543
575
  reasoning: true,
544
576
  input: ["text"],
545
577
  cost: {
@@ -557,6 +589,7 @@ export const OPENROUTER_MODELS = {
557
589
  api: "openai-completions",
558
590
  provider: "openrouter",
559
591
  baseUrl: "https://openrouter.ai/api/v1",
592
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
560
593
  reasoning: false,
561
594
  input: ["text"],
562
595
  cost: {
@@ -574,6 +607,7 @@ export const OPENROUTER_MODELS = {
574
607
  api: "openai-completions",
575
608
  provider: "openrouter",
576
609
  baseUrl: "https://openrouter.ai/api/v1",
610
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
577
611
  reasoning: false,
578
612
  input: ["text"],
579
613
  cost: {
@@ -591,6 +625,7 @@ export const OPENROUTER_MODELS = {
591
625
  api: "openai-completions",
592
626
  provider: "openrouter",
593
627
  baseUrl: "https://openrouter.ai/api/v1",
628
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
594
629
  reasoning: true,
595
630
  input: ["text"],
596
631
  cost: {
@@ -608,6 +643,7 @@ export const OPENROUTER_MODELS = {
608
643
  api: "openai-completions",
609
644
  provider: "openrouter",
610
645
  baseUrl: "https://openrouter.ai/api/v1",
646
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
611
647
  reasoning: true,
612
648
  input: ["text"],
613
649
  cost: {
@@ -625,6 +661,7 @@ export const OPENROUTER_MODELS = {
625
661
  api: "openai-completions",
626
662
  provider: "openrouter",
627
663
  baseUrl: "https://openrouter.ai/api/v1",
664
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
628
665
  reasoning: true,
629
666
  input: ["text"],
630
667
  cost: {
@@ -642,6 +679,7 @@ export const OPENROUTER_MODELS = {
642
679
  api: "openai-completions",
643
680
  provider: "openrouter",
644
681
  baseUrl: "https://openrouter.ai/api/v1",
682
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
645
683
  reasoning: true,
646
684
  input: ["text"],
647
685
  cost: {
@@ -659,12 +697,13 @@ export const OPENROUTER_MODELS = {
659
697
  api: "openai-completions",
660
698
  provider: "openrouter",
661
699
  baseUrl: "https://openrouter.ai/api/v1",
700
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
662
701
  reasoning: true,
663
702
  input: ["text"],
664
703
  cost: {
665
704
  input: 0.2288,
666
705
  output: 0.3432,
667
- cacheRead: 0,
706
+ cacheRead: 0.02288,
668
707
  cacheWrite: 0,
669
708
  },
670
709
  contextWindow: 131072,
@@ -676,6 +715,7 @@ export const OPENROUTER_MODELS = {
676
715
  api: "openai-completions",
677
716
  provider: "openrouter",
678
717
  baseUrl: "https://openrouter.ai/api/v1",
718
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
679
719
  reasoning: true,
680
720
  input: ["text"],
681
721
  cost: {
@@ -693,7 +733,7 @@ export const OPENROUTER_MODELS = {
693
733
  api: "openai-completions",
694
734
  provider: "openrouter",
695
735
  baseUrl: "https://openrouter.ai/api/v1",
696
- compat: { "requiresReasoningContentOnAssistantMessages": true },
736
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter", "requiresReasoningContentOnAssistantMessages": true },
697
737
  reasoning: true,
698
738
  thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": "xhigh" },
699
739
  input: ["text"],
@@ -712,7 +752,7 @@ export const OPENROUTER_MODELS = {
712
752
  api: "openai-completions",
713
753
  provider: "openrouter",
714
754
  baseUrl: "https://openrouter.ai/api/v1",
715
- compat: { "requiresReasoningContentOnAssistantMessages": true },
755
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter", "requiresReasoningContentOnAssistantMessages": true },
716
756
  reasoning: true,
717
757
  thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": "xhigh" },
718
758
  input: ["text"],
@@ -731,6 +771,7 @@ export const OPENROUTER_MODELS = {
731
771
  api: "openai-completions",
732
772
  provider: "openrouter",
733
773
  baseUrl: "https://openrouter.ai/api/v1",
774
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
734
775
  reasoning: true,
735
776
  input: ["text", "image"],
736
777
  cost: {
@@ -748,6 +789,7 @@ export const OPENROUTER_MODELS = {
748
789
  api: "openai-completions",
749
790
  provider: "openrouter",
750
791
  baseUrl: "https://openrouter.ai/api/v1",
792
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
751
793
  reasoning: true,
752
794
  input: ["text", "image"],
753
795
  cost: {
@@ -765,6 +807,7 @@ export const OPENROUTER_MODELS = {
765
807
  api: "openai-completions",
766
808
  provider: "openrouter",
767
809
  baseUrl: "https://openrouter.ai/api/v1",
810
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
768
811
  reasoning: true,
769
812
  input: ["text", "image"],
770
813
  cost: {
@@ -782,6 +825,7 @@ export const OPENROUTER_MODELS = {
782
825
  api: "openai-completions",
783
826
  provider: "openrouter",
784
827
  baseUrl: "https://openrouter.ai/api/v1",
828
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
785
829
  reasoning: true,
786
830
  input: ["text", "image"],
787
831
  cost: {
@@ -799,6 +843,7 @@ export const OPENROUTER_MODELS = {
799
843
  api: "openai-completions",
800
844
  provider: "openrouter",
801
845
  baseUrl: "https://openrouter.ai/api/v1",
846
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
802
847
  reasoning: true,
803
848
  input: ["text", "image"],
804
849
  cost: {
@@ -816,6 +861,7 @@ export const OPENROUTER_MODELS = {
816
861
  api: "openai-completions",
817
862
  provider: "openrouter",
818
863
  baseUrl: "https://openrouter.ai/api/v1",
864
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
819
865
  reasoning: true,
820
866
  input: ["text", "image"],
821
867
  cost: {
@@ -833,6 +879,7 @@ export const OPENROUTER_MODELS = {
833
879
  api: "openai-completions",
834
880
  provider: "openrouter",
835
881
  baseUrl: "https://openrouter.ai/api/v1",
882
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
836
883
  reasoning: true,
837
884
  input: ["text", "image"],
838
885
  cost: {
@@ -850,6 +897,7 @@ export const OPENROUTER_MODELS = {
850
897
  api: "openai-completions",
851
898
  provider: "openrouter",
852
899
  baseUrl: "https://openrouter.ai/api/v1",
900
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
853
901
  reasoning: true,
854
902
  input: ["text", "image"],
855
903
  cost: {
@@ -867,6 +915,7 @@ export const OPENROUTER_MODELS = {
867
915
  api: "openai-completions",
868
916
  provider: "openrouter",
869
917
  baseUrl: "https://openrouter.ai/api/v1",
918
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
870
919
  reasoning: true,
871
920
  input: ["text", "image"],
872
921
  cost: {
@@ -884,6 +933,7 @@ export const OPENROUTER_MODELS = {
884
933
  api: "openai-completions",
885
934
  provider: "openrouter",
886
935
  baseUrl: "https://openrouter.ai/api/v1",
936
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
887
937
  reasoning: true,
888
938
  input: ["text", "image"],
889
939
  cost: {
@@ -901,6 +951,7 @@ export const OPENROUTER_MODELS = {
901
951
  api: "openai-completions",
902
952
  provider: "openrouter",
903
953
  baseUrl: "https://openrouter.ai/api/v1",
954
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
904
955
  reasoning: true,
905
956
  input: ["text", "image"],
906
957
  cost: {
@@ -918,6 +969,7 @@ export const OPENROUTER_MODELS = {
918
969
  api: "openai-completions",
919
970
  provider: "openrouter",
920
971
  baseUrl: "https://openrouter.ai/api/v1",
972
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
921
973
  reasoning: true,
922
974
  input: ["text", "image"],
923
975
  cost: {
@@ -935,6 +987,7 @@ export const OPENROUTER_MODELS = {
935
987
  api: "openai-completions",
936
988
  provider: "openrouter",
937
989
  baseUrl: "https://openrouter.ai/api/v1",
990
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
938
991
  reasoning: true,
939
992
  input: ["text", "image"],
940
993
  cost: {
@@ -952,6 +1005,7 @@ export const OPENROUTER_MODELS = {
952
1005
  api: "openai-completions",
953
1006
  provider: "openrouter",
954
1007
  baseUrl: "https://openrouter.ai/api/v1",
1008
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
955
1009
  reasoning: false,
956
1010
  input: ["text", "image"],
957
1011
  cost: {
@@ -969,6 +1023,7 @@ export const OPENROUTER_MODELS = {
969
1023
  api: "openai-completions",
970
1024
  provider: "openrouter",
971
1025
  baseUrl: "https://openrouter.ai/api/v1",
1026
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
972
1027
  reasoning: false,
973
1028
  input: ["text", "image"],
974
1029
  cost: {
@@ -986,6 +1041,7 @@ export const OPENROUTER_MODELS = {
986
1041
  api: "openai-completions",
987
1042
  provider: "openrouter",
988
1043
  baseUrl: "https://openrouter.ai/api/v1",
1044
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
989
1045
  reasoning: true,
990
1046
  input: ["text", "image"],
991
1047
  cost: {
@@ -1003,6 +1059,7 @@ export const OPENROUTER_MODELS = {
1003
1059
  api: "openai-completions",
1004
1060
  provider: "openrouter",
1005
1061
  baseUrl: "https://openrouter.ai/api/v1",
1062
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1006
1063
  reasoning: true,
1007
1064
  input: ["text", "image"],
1008
1065
  cost: {
@@ -1020,6 +1077,7 @@ export const OPENROUTER_MODELS = {
1020
1077
  api: "openai-completions",
1021
1078
  provider: "openrouter",
1022
1079
  baseUrl: "https://openrouter.ai/api/v1",
1080
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1023
1081
  reasoning: true,
1024
1082
  input: ["text", "image"],
1025
1083
  cost: {
@@ -1037,6 +1095,7 @@ export const OPENROUTER_MODELS = {
1037
1095
  api: "openai-completions",
1038
1096
  provider: "openrouter",
1039
1097
  baseUrl: "https://openrouter.ai/api/v1",
1098
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1040
1099
  reasoning: true,
1041
1100
  input: ["text", "image"],
1042
1101
  cost: {
@@ -1054,6 +1113,7 @@ export const OPENROUTER_MODELS = {
1054
1113
  api: "openai-completions",
1055
1114
  provider: "openrouter",
1056
1115
  baseUrl: "https://openrouter.ai/api/v1",
1116
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1057
1117
  reasoning: false,
1058
1118
  input: ["text"],
1059
1119
  cost: {
@@ -1071,6 +1131,7 @@ export const OPENROUTER_MODELS = {
1071
1131
  api: "openai-completions",
1072
1132
  provider: "openrouter",
1073
1133
  baseUrl: "https://openrouter.ai/api/v1",
1134
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1074
1135
  reasoning: true,
1075
1136
  thinkingLevelMap: { "off": null },
1076
1137
  input: ["text"],
@@ -1089,6 +1150,7 @@ export const OPENROUTER_MODELS = {
1089
1150
  api: "openai-completions",
1090
1151
  provider: "openrouter",
1091
1152
  baseUrl: "https://openrouter.ai/api/v1",
1153
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1092
1154
  reasoning: false,
1093
1155
  input: ["text"],
1094
1156
  cost: {
@@ -1106,6 +1168,7 @@ export const OPENROUTER_MODELS = {
1106
1168
  api: "openai-completions",
1107
1169
  provider: "openrouter",
1108
1170
  baseUrl: "https://openrouter.ai/api/v1",
1171
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1109
1172
  reasoning: false,
1110
1173
  input: ["text"],
1111
1174
  cost: {
@@ -1123,6 +1186,7 @@ export const OPENROUTER_MODELS = {
1123
1186
  api: "openai-completions",
1124
1187
  provider: "openrouter",
1125
1188
  baseUrl: "https://openrouter.ai/api/v1",
1189
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1126
1190
  reasoning: true,
1127
1191
  input: ["text"],
1128
1192
  cost: {
@@ -1140,6 +1204,7 @@ export const OPENROUTER_MODELS = {
1140
1204
  api: "openai-completions",
1141
1205
  provider: "openrouter",
1142
1206
  baseUrl: "https://openrouter.ai/api/v1",
1207
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1143
1208
  reasoning: false,
1144
1209
  input: ["text"],
1145
1210
  cost: {
@@ -1157,6 +1222,7 @@ export const OPENROUTER_MODELS = {
1157
1222
  api: "openai-completions",
1158
1223
  provider: "openrouter",
1159
1224
  baseUrl: "https://openrouter.ai/api/v1",
1225
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1160
1226
  reasoning: true,
1161
1227
  input: ["text"],
1162
1228
  cost: {
@@ -1174,6 +1240,7 @@ export const OPENROUTER_MODELS = {
1174
1240
  api: "openai-completions",
1175
1241
  provider: "openrouter",
1176
1242
  baseUrl: "https://openrouter.ai/api/v1",
1243
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1177
1244
  reasoning: false,
1178
1245
  input: ["text"],
1179
1246
  cost: {
@@ -1191,6 +1258,7 @@ export const OPENROUTER_MODELS = {
1191
1258
  api: "openai-completions",
1192
1259
  provider: "openrouter",
1193
1260
  baseUrl: "https://openrouter.ai/api/v1",
1261
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1194
1262
  reasoning: false,
1195
1263
  input: ["text"],
1196
1264
  cost: {
@@ -1208,6 +1276,7 @@ export const OPENROUTER_MODELS = {
1208
1276
  api: "openai-completions",
1209
1277
  provider: "openrouter",
1210
1278
  baseUrl: "https://openrouter.ai/api/v1",
1279
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1211
1280
  reasoning: false,
1212
1281
  input: ["text"],
1213
1282
  cost: {
@@ -1225,6 +1294,7 @@ export const OPENROUTER_MODELS = {
1225
1294
  api: "openai-completions",
1226
1295
  provider: "openrouter",
1227
1296
  baseUrl: "https://openrouter.ai/api/v1",
1297
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1228
1298
  reasoning: false,
1229
1299
  input: ["text"],
1230
1300
  cost: {
@@ -1242,6 +1312,7 @@ export const OPENROUTER_MODELS = {
1242
1312
  api: "openai-completions",
1243
1313
  provider: "openrouter",
1244
1314
  baseUrl: "https://openrouter.ai/api/v1",
1315
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1245
1316
  reasoning: false,
1246
1317
  input: ["text", "image"],
1247
1318
  cost: {
@@ -1259,6 +1330,7 @@ export const OPENROUTER_MODELS = {
1259
1330
  api: "openai-completions",
1260
1331
  provider: "openrouter",
1261
1332
  baseUrl: "https://openrouter.ai/api/v1",
1333
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1262
1334
  reasoning: false,
1263
1335
  input: ["text", "image"],
1264
1336
  cost: {
@@ -1276,6 +1348,7 @@ export const OPENROUTER_MODELS = {
1276
1348
  api: "openai-completions",
1277
1349
  provider: "openrouter",
1278
1350
  baseUrl: "https://openrouter.ai/api/v1",
1351
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1279
1352
  reasoning: true,
1280
1353
  input: ["text"],
1281
1354
  cost: {
@@ -1293,6 +1366,7 @@ export const OPENROUTER_MODELS = {
1293
1366
  api: "openai-completions",
1294
1367
  provider: "openrouter",
1295
1368
  baseUrl: "https://openrouter.ai/api/v1",
1369
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1296
1370
  reasoning: true,
1297
1371
  input: ["text"],
1298
1372
  cost: {
@@ -1310,6 +1384,7 @@ export const OPENROUTER_MODELS = {
1310
1384
  api: "openai-completions",
1311
1385
  provider: "openrouter",
1312
1386
  baseUrl: "https://openrouter.ai/api/v1",
1387
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1313
1388
  reasoning: true,
1314
1389
  input: ["text"],
1315
1390
  cost: {
@@ -1327,12 +1402,13 @@ export const OPENROUTER_MODELS = {
1327
1402
  api: "openai-completions",
1328
1403
  provider: "openrouter",
1329
1404
  baseUrl: "https://openrouter.ai/api/v1",
1405
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1330
1406
  reasoning: true,
1331
1407
  input: ["text"],
1332
1408
  cost: {
1333
- input: 0.15,
1334
- output: 0.9,
1335
- cacheRead: 0.05,
1409
+ input: 0.12,
1410
+ output: 0.48,
1411
+ cacheRead: 0,
1336
1412
  cacheWrite: 0,
1337
1413
  },
1338
1414
  contextWindow: 204800,
@@ -1344,11 +1420,12 @@ export const OPENROUTER_MODELS = {
1344
1420
  api: "openai-completions",
1345
1421
  provider: "openrouter",
1346
1422
  baseUrl: "https://openrouter.ai/api/v1",
1423
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1347
1424
  reasoning: true,
1348
1425
  input: ["text"],
1349
1426
  cost: {
1350
- input: 0.24,
1351
- output: 0.96,
1427
+ input: 0.18,
1428
+ output: 0.72,
1352
1429
  cacheRead: 0,
1353
1430
  cacheWrite: 0,
1354
1431
  },
@@ -1361,6 +1438,7 @@ export const OPENROUTER_MODELS = {
1361
1438
  api: "openai-completions",
1362
1439
  provider: "openrouter",
1363
1440
  baseUrl: "https://openrouter.ai/api/v1",
1441
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1364
1442
  reasoning: true,
1365
1443
  input: ["text", "image"],
1366
1444
  cost: {
@@ -1378,6 +1456,7 @@ export const OPENROUTER_MODELS = {
1378
1456
  api: "openai-completions",
1379
1457
  provider: "openrouter",
1380
1458
  baseUrl: "https://openrouter.ai/api/v1",
1459
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1381
1460
  reasoning: false,
1382
1461
  input: ["text"],
1383
1462
  cost: {
@@ -1395,6 +1474,7 @@ export const OPENROUTER_MODELS = {
1395
1474
  api: "openai-completions",
1396
1475
  provider: "openrouter",
1397
1476
  baseUrl: "https://openrouter.ai/api/v1",
1477
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1398
1478
  reasoning: false,
1399
1479
  input: ["text"],
1400
1480
  cost: {
@@ -1412,6 +1492,7 @@ export const OPENROUTER_MODELS = {
1412
1492
  api: "openai-completions",
1413
1493
  provider: "openrouter",
1414
1494
  baseUrl: "https://openrouter.ai/api/v1",
1495
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1415
1496
  reasoning: false,
1416
1497
  input: ["text", "image"],
1417
1498
  cost: {
@@ -1429,6 +1510,7 @@ export const OPENROUTER_MODELS = {
1429
1510
  api: "openai-completions",
1430
1511
  provider: "openrouter",
1431
1512
  baseUrl: "https://openrouter.ai/api/v1",
1513
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1432
1514
  reasoning: false,
1433
1515
  input: ["text", "image"],
1434
1516
  cost: {
@@ -1446,6 +1528,7 @@ export const OPENROUTER_MODELS = {
1446
1528
  api: "openai-completions",
1447
1529
  provider: "openrouter",
1448
1530
  baseUrl: "https://openrouter.ai/api/v1",
1531
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1449
1532
  reasoning: false,
1450
1533
  input: ["text", "image"],
1451
1534
  cost: {
@@ -1463,6 +1546,7 @@ export const OPENROUTER_MODELS = {
1463
1546
  api: "openai-completions",
1464
1547
  provider: "openrouter",
1465
1548
  baseUrl: "https://openrouter.ai/api/v1",
1549
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1466
1550
  reasoning: false,
1467
1551
  input: ["text"],
1468
1552
  cost: {
@@ -1480,6 +1564,7 @@ export const OPENROUTER_MODELS = {
1480
1564
  api: "openai-completions",
1481
1565
  provider: "openrouter",
1482
1566
  baseUrl: "https://openrouter.ai/api/v1",
1567
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1483
1568
  reasoning: false,
1484
1569
  input: ["text"],
1485
1570
  cost: {
@@ -1497,6 +1582,7 @@ export const OPENROUTER_MODELS = {
1497
1582
  api: "openai-completions",
1498
1583
  provider: "openrouter",
1499
1584
  baseUrl: "https://openrouter.ai/api/v1",
1585
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1500
1586
  reasoning: false,
1501
1587
  input: ["text", "image"],
1502
1588
  cost: {
@@ -1514,6 +1600,7 @@ export const OPENROUTER_MODELS = {
1514
1600
  api: "openai-completions",
1515
1601
  provider: "openrouter",
1516
1602
  baseUrl: "https://openrouter.ai/api/v1",
1603
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1517
1604
  reasoning: false,
1518
1605
  input: ["text", "image"],
1519
1606
  cost: {
@@ -1531,6 +1618,7 @@ export const OPENROUTER_MODELS = {
1531
1618
  api: "openai-completions",
1532
1619
  provider: "openrouter",
1533
1620
  baseUrl: "https://openrouter.ai/api/v1",
1621
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1534
1622
  reasoning: true,
1535
1623
  input: ["text", "image"],
1536
1624
  cost: {
@@ -1548,6 +1636,7 @@ export const OPENROUTER_MODELS = {
1548
1636
  api: "openai-completions",
1549
1637
  provider: "openrouter",
1550
1638
  baseUrl: "https://openrouter.ai/api/v1",
1639
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1551
1640
  reasoning: false,
1552
1641
  input: ["text", "image"],
1553
1642
  cost: {
@@ -1565,6 +1654,7 @@ export const OPENROUTER_MODELS = {
1565
1654
  api: "openai-completions",
1566
1655
  provider: "openrouter",
1567
1656
  baseUrl: "https://openrouter.ai/api/v1",
1657
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1568
1658
  reasoning: false,
1569
1659
  input: ["text"],
1570
1660
  cost: {
@@ -1582,6 +1672,7 @@ export const OPENROUTER_MODELS = {
1582
1672
  api: "openai-completions",
1583
1673
  provider: "openrouter",
1584
1674
  baseUrl: "https://openrouter.ai/api/v1",
1675
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1585
1676
  reasoning: false,
1586
1677
  input: ["text"],
1587
1678
  cost: {
@@ -1599,6 +1690,7 @@ export const OPENROUTER_MODELS = {
1599
1690
  api: "openai-completions",
1600
1691
  provider: "openrouter",
1601
1692
  baseUrl: "https://openrouter.ai/api/v1",
1693
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1602
1694
  reasoning: true,
1603
1695
  input: ["text", "image"],
1604
1696
  cost: {
@@ -1616,6 +1708,7 @@ export const OPENROUTER_MODELS = {
1616
1708
  api: "openai-completions",
1617
1709
  provider: "openrouter",
1618
1710
  baseUrl: "https://openrouter.ai/api/v1",
1711
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1619
1712
  reasoning: false,
1620
1713
  input: ["text", "image"],
1621
1714
  cost: {
@@ -1633,6 +1726,7 @@ export const OPENROUTER_MODELS = {
1633
1726
  api: "openai-completions",
1634
1727
  provider: "openrouter",
1635
1728
  baseUrl: "https://openrouter.ai/api/v1",
1729
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1636
1730
  reasoning: false,
1637
1731
  input: ["text"],
1638
1732
  cost: {
@@ -1650,6 +1744,7 @@ export const OPENROUTER_MODELS = {
1650
1744
  api: "openai-completions",
1651
1745
  provider: "openrouter",
1652
1746
  baseUrl: "https://openrouter.ai/api/v1",
1747
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1653
1748
  reasoning: false,
1654
1749
  input: ["text"],
1655
1750
  cost: {
@@ -1667,6 +1762,7 @@ export const OPENROUTER_MODELS = {
1667
1762
  api: "openai-completions",
1668
1763
  provider: "openrouter",
1669
1764
  baseUrl: "https://openrouter.ai/api/v1",
1765
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1670
1766
  reasoning: false,
1671
1767
  input: ["text"],
1672
1768
  cost: {
@@ -1684,6 +1780,7 @@ export const OPENROUTER_MODELS = {
1684
1780
  api: "openai-completions",
1685
1781
  provider: "openrouter",
1686
1782
  baseUrl: "https://openrouter.ai/api/v1",
1783
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1687
1784
  reasoning: false,
1688
1785
  input: ["text"],
1689
1786
  cost: {
@@ -1701,12 +1798,13 @@ export const OPENROUTER_MODELS = {
1701
1798
  api: "openai-completions",
1702
1799
  provider: "openrouter",
1703
1800
  baseUrl: "https://openrouter.ai/api/v1",
1801
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1704
1802
  reasoning: true,
1705
1803
  input: ["text"],
1706
1804
  cost: {
1707
1805
  input: 0.6,
1708
1806
  output: 2.5,
1709
- cacheRead: 0,
1807
+ cacheRead: 0.6,
1710
1808
  cacheWrite: 0,
1711
1809
  },
1712
1810
  contextWindow: 262144,
@@ -1718,6 +1816,7 @@ export const OPENROUTER_MODELS = {
1718
1816
  api: "openai-completions",
1719
1817
  provider: "openrouter",
1720
1818
  baseUrl: "https://openrouter.ai/api/v1",
1819
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1721
1820
  reasoning: true,
1722
1821
  input: ["text", "image"],
1723
1822
  cost: {
@@ -1735,13 +1834,13 @@ export const OPENROUTER_MODELS = {
1735
1834
  api: "openai-completions",
1736
1835
  provider: "openrouter",
1737
1836
  baseUrl: "https://openrouter.ai/api/v1",
1738
- compat: { "supportsDeveloperRole": false, "requiresReasoningContentOnAssistantMessages": true },
1837
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter", "requiresReasoningContentOnAssistantMessages": true },
1739
1838
  reasoning: true,
1740
1839
  input: ["text", "image"],
1741
1840
  cost: {
1742
- input: 0.66,
1743
- output: 3.41,
1744
- cacheRead: 0.144,
1841
+ input: 0.55,
1842
+ output: 3.2,
1843
+ cacheRead: 0.11,
1745
1844
  cacheWrite: 0,
1746
1845
  },
1747
1846
  contextWindow: 262144,
@@ -1753,16 +1852,17 @@ export const OPENROUTER_MODELS = {
1753
1852
  api: "openai-completions",
1754
1853
  provider: "openrouter",
1755
1854
  baseUrl: "https://openrouter.ai/api/v1",
1855
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1756
1856
  reasoning: true,
1757
1857
  input: ["text", "image"],
1758
1858
  cost: {
1759
- input: 0.68,
1760
- output: 3.41,
1761
- cacheRead: 0.144,
1859
+ input: 0.74,
1860
+ output: 3.5,
1861
+ cacheRead: 0.15,
1762
1862
  cacheWrite: 0,
1763
1863
  },
1764
1864
  contextWindow: 262144,
1765
- maxTokens: 262144,
1865
+ maxTokens: 16384,
1766
1866
  },
1767
1867
  "nvidia/llama-3.3-nemotron-super-49b-v1.5": {
1768
1868
  id: "nvidia/llama-3.3-nemotron-super-49b-v1.5",
@@ -1770,6 +1870,7 @@ export const OPENROUTER_MODELS = {
1770
1870
  api: "openai-completions",
1771
1871
  provider: "openrouter",
1772
1872
  baseUrl: "https://openrouter.ai/api/v1",
1873
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1773
1874
  reasoning: true,
1774
1875
  input: ["text"],
1775
1876
  cost: {
@@ -1787,6 +1888,7 @@ export const OPENROUTER_MODELS = {
1787
1888
  api: "openai-completions",
1788
1889
  provider: "openrouter",
1789
1890
  baseUrl: "https://openrouter.ai/api/v1",
1891
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1790
1892
  reasoning: true,
1791
1893
  input: ["text"],
1792
1894
  cost: {
@@ -1804,6 +1906,7 @@ export const OPENROUTER_MODELS = {
1804
1906
  api: "openai-completions",
1805
1907
  provider: "openrouter",
1806
1908
  baseUrl: "https://openrouter.ai/api/v1",
1909
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1807
1910
  reasoning: true,
1808
1911
  input: ["text"],
1809
1912
  cost: {
@@ -1821,6 +1924,7 @@ export const OPENROUTER_MODELS = {
1821
1924
  api: "openai-completions",
1822
1925
  provider: "openrouter",
1823
1926
  baseUrl: "https://openrouter.ai/api/v1",
1927
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1824
1928
  reasoning: true,
1825
1929
  input: ["text", "image"],
1826
1930
  cost: {
@@ -1838,16 +1942,17 @@ export const OPENROUTER_MODELS = {
1838
1942
  api: "openai-completions",
1839
1943
  provider: "openrouter",
1840
1944
  baseUrl: "https://openrouter.ai/api/v1",
1945
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1841
1946
  reasoning: true,
1842
1947
  input: ["text"],
1843
1948
  cost: {
1844
- input: 0.09,
1845
- output: 0.45,
1949
+ input: 0.085,
1950
+ output: 0.4,
1846
1951
  cacheRead: 0,
1847
1952
  cacheWrite: 0,
1848
1953
  },
1849
1954
  contextWindow: 1000000,
1850
- maxTokens: 4096,
1955
+ maxTokens: 16384,
1851
1956
  },
1852
1957
  "nvidia/nemotron-3-super-120b-a12b:free": {
1853
1958
  id: "nvidia/nemotron-3-super-120b-a12b:free",
@@ -1855,6 +1960,7 @@ export const OPENROUTER_MODELS = {
1855
1960
  api: "openai-completions",
1856
1961
  provider: "openrouter",
1857
1962
  baseUrl: "https://openrouter.ai/api/v1",
1963
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1858
1964
  reasoning: true,
1859
1965
  input: ["text"],
1860
1966
  cost: {
@@ -1872,6 +1978,7 @@ export const OPENROUTER_MODELS = {
1872
1978
  api: "openai-completions",
1873
1979
  provider: "openrouter",
1874
1980
  baseUrl: "https://openrouter.ai/api/v1",
1981
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1875
1982
  reasoning: true,
1876
1983
  input: ["text"],
1877
1984
  cost: {
@@ -1889,6 +1996,7 @@ export const OPENROUTER_MODELS = {
1889
1996
  api: "openai-completions",
1890
1997
  provider: "openrouter",
1891
1998
  baseUrl: "https://openrouter.ai/api/v1",
1999
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1892
2000
  reasoning: true,
1893
2001
  input: ["text"],
1894
2002
  cost: {
@@ -1906,6 +2014,7 @@ export const OPENROUTER_MODELS = {
1906
2014
  api: "openai-completions",
1907
2015
  provider: "openrouter",
1908
2016
  baseUrl: "https://openrouter.ai/api/v1",
2017
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1909
2018
  reasoning: true,
1910
2019
  input: ["text", "image"],
1911
2020
  cost: {
@@ -1923,6 +2032,7 @@ export const OPENROUTER_MODELS = {
1923
2032
  api: "openai-completions",
1924
2033
  provider: "openrouter",
1925
2034
  baseUrl: "https://openrouter.ai/api/v1",
2035
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
1926
2036
  reasoning: true,
1927
2037
  input: ["text"],
1928
2038
  cost: {
@@ -1940,6 +2050,7 @@ export const OPENROUTER_MODELS = {
1940
2050
  api: "openai-completions",
1941
2051
  provider: "openrouter",
1942
2052
  baseUrl: "https://openrouter.ai/api/v1",
2053
+ compat: { "thinkingFormat": "openrouter" },
1943
2054
  reasoning: false,
1944
2055
  input: ["text"],
1945
2056
  cost: {
@@ -1957,6 +2068,7 @@ export const OPENROUTER_MODELS = {
1957
2068
  api: "openai-completions",
1958
2069
  provider: "openrouter",
1959
2070
  baseUrl: "https://openrouter.ai/api/v1",
2071
+ compat: { "thinkingFormat": "openrouter" },
1960
2072
  reasoning: false,
1961
2073
  input: ["text"],
1962
2074
  cost: {
@@ -1974,6 +2086,7 @@ export const OPENROUTER_MODELS = {
1974
2086
  api: "openai-completions",
1975
2087
  provider: "openrouter",
1976
2088
  baseUrl: "https://openrouter.ai/api/v1",
2089
+ compat: { "thinkingFormat": "openrouter" },
1977
2090
  reasoning: false,
1978
2091
  input: ["text"],
1979
2092
  cost: {
@@ -1991,6 +2104,7 @@ export const OPENROUTER_MODELS = {
1991
2104
  api: "openai-completions",
1992
2105
  provider: "openrouter",
1993
2106
  baseUrl: "https://openrouter.ai/api/v1",
2107
+ compat: { "thinkingFormat": "openrouter" },
1994
2108
  reasoning: false,
1995
2109
  input: ["text"],
1996
2110
  cost: {
@@ -2008,6 +2122,7 @@ export const OPENROUTER_MODELS = {
2008
2122
  api: "openai-completions",
2009
2123
  provider: "openrouter",
2010
2124
  baseUrl: "https://openrouter.ai/api/v1",
2125
+ compat: { "thinkingFormat": "openrouter" },
2011
2126
  reasoning: false,
2012
2127
  input: ["text", "image"],
2013
2128
  cost: {
@@ -2025,6 +2140,7 @@ export const OPENROUTER_MODELS = {
2025
2140
  api: "openai-completions",
2026
2141
  provider: "openrouter",
2027
2142
  baseUrl: "https://openrouter.ai/api/v1",
2143
+ compat: { "thinkingFormat": "openrouter" },
2028
2144
  reasoning: false,
2029
2145
  input: ["text"],
2030
2146
  cost: {
@@ -2042,6 +2158,7 @@ export const OPENROUTER_MODELS = {
2042
2158
  api: "openai-completions",
2043
2159
  provider: "openrouter",
2044
2160
  baseUrl: "https://openrouter.ai/api/v1",
2161
+ compat: { "thinkingFormat": "openrouter" },
2045
2162
  reasoning: false,
2046
2163
  input: ["text", "image"],
2047
2164
  cost: {
@@ -2059,6 +2176,7 @@ export const OPENROUTER_MODELS = {
2059
2176
  api: "openai-completions",
2060
2177
  provider: "openrouter",
2061
2178
  baseUrl: "https://openrouter.ai/api/v1",
2179
+ compat: { "thinkingFormat": "openrouter" },
2062
2180
  reasoning: false,
2063
2181
  input: ["text", "image"],
2064
2182
  cost: {
@@ -2076,6 +2194,7 @@ export const OPENROUTER_MODELS = {
2076
2194
  api: "openai-completions",
2077
2195
  provider: "openrouter",
2078
2196
  baseUrl: "https://openrouter.ai/api/v1",
2197
+ compat: { "thinkingFormat": "openrouter" },
2079
2198
  reasoning: false,
2080
2199
  input: ["text", "image"],
2081
2200
  cost: {
@@ -2093,6 +2212,7 @@ export const OPENROUTER_MODELS = {
2093
2212
  api: "openai-completions",
2094
2213
  provider: "openrouter",
2095
2214
  baseUrl: "https://openrouter.ai/api/v1",
2215
+ compat: { "thinkingFormat": "openrouter" },
2096
2216
  reasoning: false,
2097
2217
  input: ["text", "image"],
2098
2218
  cost: {
@@ -2110,6 +2230,7 @@ export const OPENROUTER_MODELS = {
2110
2230
  api: "openai-completions",
2111
2231
  provider: "openrouter",
2112
2232
  baseUrl: "https://openrouter.ai/api/v1",
2233
+ compat: { "thinkingFormat": "openrouter" },
2113
2234
  reasoning: false,
2114
2235
  input: ["text", "image"],
2115
2236
  cost: {
@@ -2127,6 +2248,7 @@ export const OPENROUTER_MODELS = {
2127
2248
  api: "openai-completions",
2128
2249
  provider: "openrouter",
2129
2250
  baseUrl: "https://openrouter.ai/api/v1",
2251
+ compat: { "thinkingFormat": "openrouter" },
2130
2252
  reasoning: false,
2131
2253
  input: ["text", "image"],
2132
2254
  cost: {
@@ -2144,6 +2266,7 @@ export const OPENROUTER_MODELS = {
2144
2266
  api: "openai-completions",
2145
2267
  provider: "openrouter",
2146
2268
  baseUrl: "https://openrouter.ai/api/v1",
2269
+ compat: { "thinkingFormat": "openrouter" },
2147
2270
  reasoning: false,
2148
2271
  input: ["text", "image"],
2149
2272
  cost: {
@@ -2161,6 +2284,7 @@ export const OPENROUTER_MODELS = {
2161
2284
  api: "openai-completions",
2162
2285
  provider: "openrouter",
2163
2286
  baseUrl: "https://openrouter.ai/api/v1",
2287
+ compat: { "thinkingFormat": "openrouter" },
2164
2288
  reasoning: false,
2165
2289
  input: ["text", "image"],
2166
2290
  cost: {
@@ -2178,6 +2302,7 @@ export const OPENROUTER_MODELS = {
2178
2302
  api: "openai-completions",
2179
2303
  provider: "openrouter",
2180
2304
  baseUrl: "https://openrouter.ai/api/v1",
2305
+ compat: { "thinkingFormat": "openrouter" },
2181
2306
  reasoning: false,
2182
2307
  input: ["text", "image"],
2183
2308
  cost: {
@@ -2195,6 +2320,7 @@ export const OPENROUTER_MODELS = {
2195
2320
  api: "openai-completions",
2196
2321
  provider: "openrouter",
2197
2322
  baseUrl: "https://openrouter.ai/api/v1",
2323
+ compat: { "thinkingFormat": "openrouter" },
2198
2324
  reasoning: true,
2199
2325
  input: ["text", "image"],
2200
2326
  cost: {
@@ -2212,6 +2338,7 @@ export const OPENROUTER_MODELS = {
2212
2338
  api: "openai-completions",
2213
2339
  provider: "openrouter",
2214
2340
  baseUrl: "https://openrouter.ai/api/v1",
2341
+ compat: { "thinkingFormat": "openrouter" },
2215
2342
  reasoning: true,
2216
2343
  input: ["text", "image"],
2217
2344
  cost: {
@@ -2229,6 +2356,7 @@ export const OPENROUTER_MODELS = {
2229
2356
  api: "openai-completions",
2230
2357
  provider: "openrouter",
2231
2358
  baseUrl: "https://openrouter.ai/api/v1",
2359
+ compat: { "thinkingFormat": "openrouter" },
2232
2360
  reasoning: true,
2233
2361
  input: ["text", "image"],
2234
2362
  cost: {
@@ -2246,6 +2374,7 @@ export const OPENROUTER_MODELS = {
2246
2374
  api: "openai-completions",
2247
2375
  provider: "openrouter",
2248
2376
  baseUrl: "https://openrouter.ai/api/v1",
2377
+ compat: { "thinkingFormat": "openrouter" },
2249
2378
  reasoning: true,
2250
2379
  input: ["text", "image"],
2251
2380
  cost: {
@@ -2263,6 +2392,7 @@ export const OPENROUTER_MODELS = {
2263
2392
  api: "openai-completions",
2264
2393
  provider: "openrouter",
2265
2394
  baseUrl: "https://openrouter.ai/api/v1",
2395
+ compat: { "thinkingFormat": "openrouter" },
2266
2396
  reasoning: true,
2267
2397
  input: ["text", "image"],
2268
2398
  cost: {
@@ -2280,6 +2410,7 @@ export const OPENROUTER_MODELS = {
2280
2410
  api: "openai-completions",
2281
2411
  provider: "openrouter",
2282
2412
  baseUrl: "https://openrouter.ai/api/v1",
2413
+ compat: { "thinkingFormat": "openrouter" },
2283
2414
  reasoning: true,
2284
2415
  input: ["text", "image"],
2285
2416
  cost: {
@@ -2297,6 +2428,7 @@ export const OPENROUTER_MODELS = {
2297
2428
  api: "openai-completions",
2298
2429
  provider: "openrouter",
2299
2430
  baseUrl: "https://openrouter.ai/api/v1",
2431
+ compat: { "thinkingFormat": "openrouter" },
2300
2432
  reasoning: false,
2301
2433
  input: ["text", "image"],
2302
2434
  cost: {
@@ -2314,6 +2446,7 @@ export const OPENROUTER_MODELS = {
2314
2446
  api: "openai-completions",
2315
2447
  provider: "openrouter",
2316
2448
  baseUrl: "https://openrouter.ai/api/v1",
2449
+ compat: { "thinkingFormat": "openrouter" },
2317
2450
  reasoning: true,
2318
2451
  input: ["text", "image"],
2319
2452
  cost: {
@@ -2331,6 +2464,7 @@ export const OPENROUTER_MODELS = {
2331
2464
  api: "openai-completions",
2332
2465
  provider: "openrouter",
2333
2466
  baseUrl: "https://openrouter.ai/api/v1",
2467
+ compat: { "thinkingFormat": "openrouter" },
2334
2468
  reasoning: true,
2335
2469
  input: ["text", "image"],
2336
2470
  cost: {
@@ -2348,6 +2482,7 @@ export const OPENROUTER_MODELS = {
2348
2482
  api: "openai-completions",
2349
2483
  provider: "openrouter",
2350
2484
  baseUrl: "https://openrouter.ai/api/v1",
2485
+ compat: { "thinkingFormat": "openrouter" },
2351
2486
  reasoning: true,
2352
2487
  input: ["text", "image"],
2353
2488
  cost: {
@@ -2365,6 +2500,7 @@ export const OPENROUTER_MODELS = {
2365
2500
  api: "openai-completions",
2366
2501
  provider: "openrouter",
2367
2502
  baseUrl: "https://openrouter.ai/api/v1",
2503
+ compat: { "thinkingFormat": "openrouter" },
2368
2504
  reasoning: true,
2369
2505
  thinkingLevelMap: { "xhigh": "xhigh" },
2370
2506
  input: ["text", "image"],
@@ -2383,6 +2519,7 @@ export const OPENROUTER_MODELS = {
2383
2519
  api: "openai-completions",
2384
2520
  provider: "openrouter",
2385
2521
  baseUrl: "https://openrouter.ai/api/v1",
2522
+ compat: { "thinkingFormat": "openrouter" },
2386
2523
  reasoning: false,
2387
2524
  thinkingLevelMap: { "xhigh": "xhigh" },
2388
2525
  input: ["text", "image"],
@@ -2401,6 +2538,7 @@ export const OPENROUTER_MODELS = {
2401
2538
  api: "openai-completions",
2402
2539
  provider: "openrouter",
2403
2540
  baseUrl: "https://openrouter.ai/api/v1",
2541
+ compat: { "thinkingFormat": "openrouter" },
2404
2542
  reasoning: true,
2405
2543
  thinkingLevelMap: { "xhigh": "xhigh" },
2406
2544
  input: ["text", "image"],
@@ -2419,6 +2557,7 @@ export const OPENROUTER_MODELS = {
2419
2557
  api: "openai-completions",
2420
2558
  provider: "openrouter",
2421
2559
  baseUrl: "https://openrouter.ai/api/v1",
2560
+ compat: { "thinkingFormat": "openrouter" },
2422
2561
  reasoning: true,
2423
2562
  thinkingLevelMap: { "xhigh": "xhigh" },
2424
2563
  input: ["text", "image"],
@@ -2437,6 +2576,7 @@ export const OPENROUTER_MODELS = {
2437
2576
  api: "openai-completions",
2438
2577
  provider: "openrouter",
2439
2578
  baseUrl: "https://openrouter.ai/api/v1",
2579
+ compat: { "thinkingFormat": "openrouter" },
2440
2580
  reasoning: false,
2441
2581
  thinkingLevelMap: { "xhigh": "xhigh" },
2442
2582
  input: ["text", "image"],
@@ -2455,6 +2595,7 @@ export const OPENROUTER_MODELS = {
2455
2595
  api: "openai-completions",
2456
2596
  provider: "openrouter",
2457
2597
  baseUrl: "https://openrouter.ai/api/v1",
2598
+ compat: { "thinkingFormat": "openrouter" },
2458
2599
  reasoning: true,
2459
2600
  thinkingLevelMap: { "xhigh": "xhigh" },
2460
2601
  input: ["text", "image"],
@@ -2473,6 +2614,7 @@ export const OPENROUTER_MODELS = {
2473
2614
  api: "openai-completions",
2474
2615
  provider: "openrouter",
2475
2616
  baseUrl: "https://openrouter.ai/api/v1",
2617
+ compat: { "thinkingFormat": "openrouter" },
2476
2618
  reasoning: true,
2477
2619
  thinkingLevelMap: { "xhigh": "xhigh" },
2478
2620
  input: ["text", "image"],
@@ -2491,6 +2633,7 @@ export const OPENROUTER_MODELS = {
2491
2633
  api: "openai-completions",
2492
2634
  provider: "openrouter",
2493
2635
  baseUrl: "https://openrouter.ai/api/v1",
2636
+ compat: { "thinkingFormat": "openrouter" },
2494
2637
  reasoning: true,
2495
2638
  thinkingLevelMap: { "xhigh": "xhigh" },
2496
2639
  input: ["text", "image"],
@@ -2509,6 +2652,7 @@ export const OPENROUTER_MODELS = {
2509
2652
  api: "openai-completions",
2510
2653
  provider: "openrouter",
2511
2654
  baseUrl: "https://openrouter.ai/api/v1",
2655
+ compat: { "thinkingFormat": "openrouter" },
2512
2656
  reasoning: true,
2513
2657
  thinkingLevelMap: { "xhigh": "xhigh" },
2514
2658
  input: ["text", "image"],
@@ -2527,6 +2671,7 @@ export const OPENROUTER_MODELS = {
2527
2671
  api: "openai-completions",
2528
2672
  provider: "openrouter",
2529
2673
  baseUrl: "https://openrouter.ai/api/v1",
2674
+ compat: { "thinkingFormat": "openrouter" },
2530
2675
  reasoning: true,
2531
2676
  thinkingLevelMap: { "xhigh": "xhigh" },
2532
2677
  input: ["text", "image"],
@@ -2545,6 +2690,7 @@ export const OPENROUTER_MODELS = {
2545
2690
  api: "openai-completions",
2546
2691
  provider: "openrouter",
2547
2692
  baseUrl: "https://openrouter.ai/api/v1",
2693
+ compat: { "thinkingFormat": "openrouter" },
2548
2694
  reasoning: true,
2549
2695
  thinkingLevelMap: { "xhigh": "xhigh" },
2550
2696
  input: ["text", "image"],
@@ -2563,6 +2709,7 @@ export const OPENROUTER_MODELS = {
2563
2709
  api: "openai-completions",
2564
2710
  provider: "openrouter",
2565
2711
  baseUrl: "https://openrouter.ai/api/v1",
2712
+ compat: { "thinkingFormat": "openrouter" },
2566
2713
  reasoning: true,
2567
2714
  thinkingLevelMap: { "xhigh": "xhigh", "off": null, "minimal": null, "low": null },
2568
2715
  input: ["text", "image"],
@@ -2581,6 +2728,7 @@ export const OPENROUTER_MODELS = {
2581
2728
  api: "openai-completions",
2582
2729
  provider: "openrouter",
2583
2730
  baseUrl: "https://openrouter.ai/api/v1",
2731
+ compat: { "thinkingFormat": "openrouter" },
2584
2732
  reasoning: false,
2585
2733
  input: ["text"],
2586
2734
  cost: {
@@ -2598,6 +2746,7 @@ export const OPENROUTER_MODELS = {
2598
2746
  api: "openai-completions",
2599
2747
  provider: "openrouter",
2600
2748
  baseUrl: "https://openrouter.ai/api/v1",
2749
+ compat: { "thinkingFormat": "openrouter" },
2601
2750
  reasoning: false,
2602
2751
  input: ["text"],
2603
2752
  cost: {
@@ -2615,6 +2764,7 @@ export const OPENROUTER_MODELS = {
2615
2764
  api: "openai-completions",
2616
2765
  provider: "openrouter",
2617
2766
  baseUrl: "https://openrouter.ai/api/v1",
2767
+ compat: { "thinkingFormat": "openrouter" },
2618
2768
  reasoning: false,
2619
2769
  input: ["text", "image"],
2620
2770
  cost: {
@@ -2632,16 +2782,17 @@ export const OPENROUTER_MODELS = {
2632
2782
  api: "openai-completions",
2633
2783
  provider: "openrouter",
2634
2784
  baseUrl: "https://openrouter.ai/api/v1",
2785
+ compat: { "thinkingFormat": "openrouter" },
2635
2786
  reasoning: true,
2636
2787
  input: ["text"],
2637
2788
  cost: {
2638
- input: 0.039,
2639
- output: 0.18,
2789
+ input: 0.03,
2790
+ output: 0.15,
2640
2791
  cacheRead: 0,
2641
2792
  cacheWrite: 0,
2642
2793
  },
2643
2794
  contextWindow: 131072,
2644
- maxTokens: 4096,
2795
+ maxTokens: 131072,
2645
2796
  },
2646
2797
  "openai/gpt-oss-120b:free": {
2647
2798
  id: "openai/gpt-oss-120b:free",
@@ -2649,6 +2800,7 @@ export const OPENROUTER_MODELS = {
2649
2800
  api: "openai-completions",
2650
2801
  provider: "openrouter",
2651
2802
  baseUrl: "https://openrouter.ai/api/v1",
2803
+ compat: { "thinkingFormat": "openrouter" },
2652
2804
  reasoning: true,
2653
2805
  input: ["text"],
2654
2806
  cost: {
@@ -2666,6 +2818,7 @@ export const OPENROUTER_MODELS = {
2666
2818
  api: "openai-completions",
2667
2819
  provider: "openrouter",
2668
2820
  baseUrl: "https://openrouter.ai/api/v1",
2821
+ compat: { "thinkingFormat": "openrouter" },
2669
2822
  reasoning: true,
2670
2823
  input: ["text"],
2671
2824
  cost: {
@@ -2683,6 +2836,7 @@ export const OPENROUTER_MODELS = {
2683
2836
  api: "openai-completions",
2684
2837
  provider: "openrouter",
2685
2838
  baseUrl: "https://openrouter.ai/api/v1",
2839
+ compat: { "thinkingFormat": "openrouter" },
2686
2840
  reasoning: true,
2687
2841
  input: ["text"],
2688
2842
  cost: {
@@ -2700,6 +2854,7 @@ export const OPENROUTER_MODELS = {
2700
2854
  api: "openai-completions",
2701
2855
  provider: "openrouter",
2702
2856
  baseUrl: "https://openrouter.ai/api/v1",
2857
+ compat: { "thinkingFormat": "openrouter" },
2703
2858
  reasoning: true,
2704
2859
  input: ["text"],
2705
2860
  cost: {
@@ -2717,6 +2872,7 @@ export const OPENROUTER_MODELS = {
2717
2872
  api: "openai-completions",
2718
2873
  provider: "openrouter",
2719
2874
  baseUrl: "https://openrouter.ai/api/v1",
2875
+ compat: { "thinkingFormat": "openrouter" },
2720
2876
  reasoning: true,
2721
2877
  input: ["text", "image"],
2722
2878
  cost: {
@@ -2734,6 +2890,7 @@ export const OPENROUTER_MODELS = {
2734
2890
  api: "openai-completions",
2735
2891
  provider: "openrouter",
2736
2892
  baseUrl: "https://openrouter.ai/api/v1",
2893
+ compat: { "thinkingFormat": "openrouter" },
2737
2894
  reasoning: true,
2738
2895
  input: ["text", "image"],
2739
2896
  cost: {
@@ -2751,6 +2908,7 @@ export const OPENROUTER_MODELS = {
2751
2908
  api: "openai-completions",
2752
2909
  provider: "openrouter",
2753
2910
  baseUrl: "https://openrouter.ai/api/v1",
2911
+ compat: { "thinkingFormat": "openrouter" },
2754
2912
  reasoning: true,
2755
2913
  input: ["text", "image"],
2756
2914
  cost: {
@@ -2768,6 +2926,7 @@ export const OPENROUTER_MODELS = {
2768
2926
  api: "openai-completions",
2769
2927
  provider: "openrouter",
2770
2928
  baseUrl: "https://openrouter.ai/api/v1",
2929
+ compat: { "thinkingFormat": "openrouter" },
2771
2930
  reasoning: true,
2772
2931
  input: ["text"],
2773
2932
  cost: {
@@ -2785,6 +2944,7 @@ export const OPENROUTER_MODELS = {
2785
2944
  api: "openai-completions",
2786
2945
  provider: "openrouter",
2787
2946
  baseUrl: "https://openrouter.ai/api/v1",
2947
+ compat: { "thinkingFormat": "openrouter" },
2788
2948
  reasoning: true,
2789
2949
  input: ["text"],
2790
2950
  cost: {
@@ -2802,6 +2962,7 @@ export const OPENROUTER_MODELS = {
2802
2962
  api: "openai-completions",
2803
2963
  provider: "openrouter",
2804
2964
  baseUrl: "https://openrouter.ai/api/v1",
2965
+ compat: { "thinkingFormat": "openrouter" },
2805
2966
  reasoning: true,
2806
2967
  input: ["text", "image"],
2807
2968
  cost: {
@@ -2819,6 +2980,7 @@ export const OPENROUTER_MODELS = {
2819
2980
  api: "openai-completions",
2820
2981
  provider: "openrouter",
2821
2982
  baseUrl: "https://openrouter.ai/api/v1",
2983
+ compat: { "thinkingFormat": "openrouter" },
2822
2984
  reasoning: true,
2823
2985
  input: ["text", "image"],
2824
2986
  cost: {
@@ -2836,6 +2998,7 @@ export const OPENROUTER_MODELS = {
2836
2998
  api: "openai-completions",
2837
2999
  provider: "openrouter",
2838
3000
  baseUrl: "https://openrouter.ai/api/v1",
3001
+ compat: { "thinkingFormat": "openrouter" },
2839
3002
  reasoning: true,
2840
3003
  input: ["text", "image"],
2841
3004
  cost: {
@@ -2853,6 +3016,7 @@ export const OPENROUTER_MODELS = {
2853
3016
  api: "openai-completions",
2854
3017
  provider: "openrouter",
2855
3018
  baseUrl: "https://openrouter.ai/api/v1",
3019
+ compat: { "thinkingFormat": "openrouter" },
2856
3020
  reasoning: true,
2857
3021
  input: ["text", "image"],
2858
3022
  cost: {
@@ -2870,6 +3034,7 @@ export const OPENROUTER_MODELS = {
2870
3034
  api: "openai-completions",
2871
3035
  provider: "openrouter",
2872
3036
  baseUrl: "https://openrouter.ai/api/v1",
3037
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2873
3038
  reasoning: true,
2874
3039
  input: ["text", "image"],
2875
3040
  cost: {
@@ -2887,6 +3052,7 @@ export const OPENROUTER_MODELS = {
2887
3052
  api: "openai-completions",
2888
3053
  provider: "openrouter",
2889
3054
  baseUrl: "https://openrouter.ai/api/v1",
3055
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2890
3056
  reasoning: true,
2891
3057
  input: ["text", "image"],
2892
3058
  cost: {
@@ -2904,6 +3070,7 @@ export const OPENROUTER_MODELS = {
2904
3070
  api: "openai-completions",
2905
3071
  provider: "openrouter",
2906
3072
  baseUrl: "https://openrouter.ai/api/v1",
3073
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2907
3074
  reasoning: true,
2908
3075
  input: ["text"],
2909
3076
  cost: {
@@ -2921,6 +3088,7 @@ export const OPENROUTER_MODELS = {
2921
3088
  api: "openai-completions",
2922
3089
  provider: "openrouter",
2923
3090
  baseUrl: "https://openrouter.ai/api/v1",
3091
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2924
3092
  reasoning: false,
2925
3093
  input: ["text"],
2926
3094
  cost: {
@@ -2938,6 +3106,7 @@ export const OPENROUTER_MODELS = {
2938
3106
  api: "openai-completions",
2939
3107
  provider: "openrouter",
2940
3108
  baseUrl: "https://openrouter.ai/api/v1",
3109
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2941
3110
  reasoning: true,
2942
3111
  input: ["text"],
2943
3112
  cost: {
@@ -2955,6 +3124,7 @@ export const OPENROUTER_MODELS = {
2955
3124
  api: "openai-completions",
2956
3125
  provider: "openrouter",
2957
3126
  baseUrl: "https://openrouter.ai/api/v1",
3127
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2958
3128
  reasoning: true,
2959
3129
  input: ["text"],
2960
3130
  cost: {
@@ -2972,6 +3142,7 @@ export const OPENROUTER_MODELS = {
2972
3142
  api: "openai-completions",
2973
3143
  provider: "openrouter",
2974
3144
  baseUrl: "https://openrouter.ai/api/v1",
3145
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2975
3146
  reasoning: true,
2976
3147
  input: ["text"],
2977
3148
  cost: {
@@ -2989,6 +3160,7 @@ export const OPENROUTER_MODELS = {
2989
3160
  api: "openai-completions",
2990
3161
  provider: "openrouter",
2991
3162
  baseUrl: "https://openrouter.ai/api/v1",
3163
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
2992
3164
  reasoning: true,
2993
3165
  input: ["text"],
2994
3166
  cost: {
@@ -3006,6 +3178,7 @@ export const OPENROUTER_MODELS = {
3006
3178
  api: "openai-completions",
3007
3179
  provider: "openrouter",
3008
3180
  baseUrl: "https://openrouter.ai/api/v1",
3181
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3009
3182
  reasoning: false,
3010
3183
  input: ["text"],
3011
3184
  cost: {
@@ -3023,6 +3196,7 @@ export const OPENROUTER_MODELS = {
3023
3196
  api: "openai-completions",
3024
3197
  provider: "openrouter",
3025
3198
  baseUrl: "https://openrouter.ai/api/v1",
3199
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3026
3200
  reasoning: false,
3027
3201
  input: ["text"],
3028
3202
  cost: {
@@ -3040,6 +3214,7 @@ export const OPENROUTER_MODELS = {
3040
3214
  api: "openai-completions",
3041
3215
  provider: "openrouter",
3042
3216
  baseUrl: "https://openrouter.ai/api/v1",
3217
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3043
3218
  reasoning: false,
3044
3219
  input: ["text"],
3045
3220
  cost: {
@@ -3057,6 +3232,7 @@ export const OPENROUTER_MODELS = {
3057
3232
  api: "openai-completions",
3058
3233
  provider: "openrouter",
3059
3234
  baseUrl: "https://openrouter.ai/api/v1",
3235
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3060
3236
  reasoning: false,
3061
3237
  input: ["text"],
3062
3238
  cost: {
@@ -3074,6 +3250,7 @@ export const OPENROUTER_MODELS = {
3074
3250
  api: "openai-completions",
3075
3251
  provider: "openrouter",
3076
3252
  baseUrl: "https://openrouter.ai/api/v1",
3253
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3077
3254
  reasoning: true,
3078
3255
  input: ["text"],
3079
3256
  cost: {
@@ -3091,6 +3268,7 @@ export const OPENROUTER_MODELS = {
3091
3268
  api: "openai-completions",
3092
3269
  provider: "openrouter",
3093
3270
  baseUrl: "https://openrouter.ai/api/v1",
3271
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3094
3272
  reasoning: true,
3095
3273
  input: ["text"],
3096
3274
  cost: {
@@ -3108,6 +3286,7 @@ export const OPENROUTER_MODELS = {
3108
3286
  api: "openai-completions",
3109
3287
  provider: "openrouter",
3110
3288
  baseUrl: "https://openrouter.ai/api/v1",
3289
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3111
3290
  reasoning: true,
3112
3291
  input: ["text"],
3113
3292
  cost: {
@@ -3125,6 +3304,7 @@ export const OPENROUTER_MODELS = {
3125
3304
  api: "openai-completions",
3126
3305
  provider: "openrouter",
3127
3306
  baseUrl: "https://openrouter.ai/api/v1",
3307
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3128
3308
  reasoning: false,
3129
3309
  input: ["text"],
3130
3310
  cost: {
@@ -3142,6 +3322,7 @@ export const OPENROUTER_MODELS = {
3142
3322
  api: "openai-completions",
3143
3323
  provider: "openrouter",
3144
3324
  baseUrl: "https://openrouter.ai/api/v1",
3325
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3145
3326
  reasoning: true,
3146
3327
  input: ["text"],
3147
3328
  cost: {
@@ -3159,6 +3340,7 @@ export const OPENROUTER_MODELS = {
3159
3340
  api: "openai-completions",
3160
3341
  provider: "openrouter",
3161
3342
  baseUrl: "https://openrouter.ai/api/v1",
3343
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3162
3344
  reasoning: true,
3163
3345
  input: ["text"],
3164
3346
  cost: {
@@ -3176,6 +3358,7 @@ export const OPENROUTER_MODELS = {
3176
3358
  api: "openai-completions",
3177
3359
  provider: "openrouter",
3178
3360
  baseUrl: "https://openrouter.ai/api/v1",
3361
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3179
3362
  reasoning: false,
3180
3363
  input: ["text"],
3181
3364
  cost: {
@@ -3193,6 +3376,7 @@ export const OPENROUTER_MODELS = {
3193
3376
  api: "openai-completions",
3194
3377
  provider: "openrouter",
3195
3378
  baseUrl: "https://openrouter.ai/api/v1",
3379
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3196
3380
  reasoning: true,
3197
3381
  input: ["text"],
3198
3382
  cost: {
@@ -3210,6 +3394,7 @@ export const OPENROUTER_MODELS = {
3210
3394
  api: "openai-completions",
3211
3395
  provider: "openrouter",
3212
3396
  baseUrl: "https://openrouter.ai/api/v1",
3397
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3213
3398
  reasoning: true,
3214
3399
  input: ["text"],
3215
3400
  cost: {
@@ -3227,6 +3412,7 @@ export const OPENROUTER_MODELS = {
3227
3412
  api: "openai-completions",
3228
3413
  provider: "openrouter",
3229
3414
  baseUrl: "https://openrouter.ai/api/v1",
3415
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3230
3416
  reasoning: true,
3231
3417
  input: ["text"],
3232
3418
  cost: {
@@ -3244,6 +3430,7 @@ export const OPENROUTER_MODELS = {
3244
3430
  api: "openai-completions",
3245
3431
  provider: "openrouter",
3246
3432
  baseUrl: "https://openrouter.ai/api/v1",
3433
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3247
3434
  reasoning: false,
3248
3435
  input: ["text"],
3249
3436
  cost: {
@@ -3261,6 +3448,7 @@ export const OPENROUTER_MODELS = {
3261
3448
  api: "openai-completions",
3262
3449
  provider: "openrouter",
3263
3450
  baseUrl: "https://openrouter.ai/api/v1",
3451
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3264
3452
  reasoning: false,
3265
3453
  input: ["text"],
3266
3454
  cost: {
@@ -3278,6 +3466,7 @@ export const OPENROUTER_MODELS = {
3278
3466
  api: "openai-completions",
3279
3467
  provider: "openrouter",
3280
3468
  baseUrl: "https://openrouter.ai/api/v1",
3469
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3281
3470
  reasoning: false,
3282
3471
  input: ["text"],
3283
3472
  cost: {
@@ -3295,6 +3484,7 @@ export const OPENROUTER_MODELS = {
3295
3484
  api: "openai-completions",
3296
3485
  provider: "openrouter",
3297
3486
  baseUrl: "https://openrouter.ai/api/v1",
3487
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3298
3488
  reasoning: false,
3299
3489
  input: ["text"],
3300
3490
  cost: {
@@ -3312,6 +3502,7 @@ export const OPENROUTER_MODELS = {
3312
3502
  api: "openai-completions",
3313
3503
  provider: "openrouter",
3314
3504
  baseUrl: "https://openrouter.ai/api/v1",
3505
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3315
3506
  reasoning: false,
3316
3507
  input: ["text"],
3317
3508
  cost: {
@@ -3329,6 +3520,7 @@ export const OPENROUTER_MODELS = {
3329
3520
  api: "openai-completions",
3330
3521
  provider: "openrouter",
3331
3522
  baseUrl: "https://openrouter.ai/api/v1",
3523
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3332
3524
  reasoning: false,
3333
3525
  input: ["text"],
3334
3526
  cost: {
@@ -3346,6 +3538,7 @@ export const OPENROUTER_MODELS = {
3346
3538
  api: "openai-completions",
3347
3539
  provider: "openrouter",
3348
3540
  baseUrl: "https://openrouter.ai/api/v1",
3541
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3349
3542
  reasoning: false,
3350
3543
  input: ["text"],
3351
3544
  cost: {
@@ -3363,6 +3556,7 @@ export const OPENROUTER_MODELS = {
3363
3556
  api: "openai-completions",
3364
3557
  provider: "openrouter",
3365
3558
  baseUrl: "https://openrouter.ai/api/v1",
3559
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3366
3560
  reasoning: true,
3367
3561
  input: ["text"],
3368
3562
  cost: {
@@ -3380,6 +3574,7 @@ export const OPENROUTER_MODELS = {
3380
3574
  api: "openai-completions",
3381
3575
  provider: "openrouter",
3382
3576
  baseUrl: "https://openrouter.ai/api/v1",
3577
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3383
3578
  reasoning: false,
3384
3579
  input: ["text"],
3385
3580
  cost: {
@@ -3397,6 +3592,7 @@ export const OPENROUTER_MODELS = {
3397
3592
  api: "openai-completions",
3398
3593
  provider: "openrouter",
3399
3594
  baseUrl: "https://openrouter.ai/api/v1",
3595
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3400
3596
  reasoning: false,
3401
3597
  input: ["text"],
3402
3598
  cost: {
@@ -3414,6 +3610,7 @@ export const OPENROUTER_MODELS = {
3414
3610
  api: "openai-completions",
3415
3611
  provider: "openrouter",
3416
3612
  baseUrl: "https://openrouter.ai/api/v1",
3613
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3417
3614
  reasoning: true,
3418
3615
  input: ["text"],
3419
3616
  cost: {
@@ -3431,6 +3628,7 @@ export const OPENROUTER_MODELS = {
3431
3628
  api: "openai-completions",
3432
3629
  provider: "openrouter",
3433
3630
  baseUrl: "https://openrouter.ai/api/v1",
3631
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3434
3632
  reasoning: false,
3435
3633
  input: ["text", "image"],
3436
3634
  cost: {
@@ -3448,6 +3646,7 @@ export const OPENROUTER_MODELS = {
3448
3646
  api: "openai-completions",
3449
3647
  provider: "openrouter",
3450
3648
  baseUrl: "https://openrouter.ai/api/v1",
3649
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3451
3650
  reasoning: true,
3452
3651
  input: ["text", "image"],
3453
3652
  cost: {
@@ -3465,6 +3664,7 @@ export const OPENROUTER_MODELS = {
3465
3664
  api: "openai-completions",
3466
3665
  provider: "openrouter",
3467
3666
  baseUrl: "https://openrouter.ai/api/v1",
3667
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3468
3668
  reasoning: false,
3469
3669
  input: ["text", "image"],
3470
3670
  cost: {
@@ -3482,6 +3682,7 @@ export const OPENROUTER_MODELS = {
3482
3682
  api: "openai-completions",
3483
3683
  provider: "openrouter",
3484
3684
  baseUrl: "https://openrouter.ai/api/v1",
3685
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3485
3686
  reasoning: true,
3486
3687
  input: ["text", "image"],
3487
3688
  cost: {
@@ -3499,6 +3700,7 @@ export const OPENROUTER_MODELS = {
3499
3700
  api: "openai-completions",
3500
3701
  provider: "openrouter",
3501
3702
  baseUrl: "https://openrouter.ai/api/v1",
3703
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3502
3704
  reasoning: false,
3503
3705
  input: ["text", "image"],
3504
3706
  cost: {
@@ -3516,6 +3718,7 @@ export const OPENROUTER_MODELS = {
3516
3718
  api: "openai-completions",
3517
3719
  provider: "openrouter",
3518
3720
  baseUrl: "https://openrouter.ai/api/v1",
3721
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3519
3722
  reasoning: false,
3520
3723
  input: ["text", "image"],
3521
3724
  cost: {
@@ -3533,6 +3736,7 @@ export const OPENROUTER_MODELS = {
3533
3736
  api: "openai-completions",
3534
3737
  provider: "openrouter",
3535
3738
  baseUrl: "https://openrouter.ai/api/v1",
3739
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3536
3740
  reasoning: true,
3537
3741
  input: ["text", "image"],
3538
3742
  cost: {
@@ -3550,6 +3754,7 @@ export const OPENROUTER_MODELS = {
3550
3754
  api: "openai-completions",
3551
3755
  provider: "openrouter",
3552
3756
  baseUrl: "https://openrouter.ai/api/v1",
3757
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3553
3758
  reasoning: true,
3554
3759
  input: ["text", "image"],
3555
3760
  cost: {
@@ -3567,6 +3772,7 @@ export const OPENROUTER_MODELS = {
3567
3772
  api: "openai-completions",
3568
3773
  provider: "openrouter",
3569
3774
  baseUrl: "https://openrouter.ai/api/v1",
3775
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3570
3776
  reasoning: true,
3571
3777
  input: ["text", "image"],
3572
3778
  cost: {
@@ -3584,16 +3790,17 @@ export const OPENROUTER_MODELS = {
3584
3790
  api: "openai-completions",
3585
3791
  provider: "openrouter",
3586
3792
  baseUrl: "https://openrouter.ai/api/v1",
3793
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3587
3794
  reasoning: true,
3588
3795
  input: ["text", "image"],
3589
3796
  cost: {
3590
3797
  input: 0.14,
3591
3798
  output: 1,
3592
- cacheRead: 0,
3799
+ cacheRead: 0.05,
3593
3800
  cacheWrite: 0,
3594
3801
  },
3595
3802
  contextWindow: 262144,
3596
- maxTokens: 262144,
3803
+ maxTokens: 81920,
3597
3804
  },
3598
3805
  "qwen/qwen3.5-397b-a17b": {
3599
3806
  id: "qwen/qwen3.5-397b-a17b",
@@ -3601,6 +3808,7 @@ export const OPENROUTER_MODELS = {
3601
3808
  api: "openai-completions",
3602
3809
  provider: "openrouter",
3603
3810
  baseUrl: "https://openrouter.ai/api/v1",
3811
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3604
3812
  reasoning: true,
3605
3813
  input: ["text", "image"],
3606
3814
  cost: {
@@ -3618,6 +3826,7 @@ export const OPENROUTER_MODELS = {
3618
3826
  api: "openai-completions",
3619
3827
  provider: "openrouter",
3620
3828
  baseUrl: "https://openrouter.ai/api/v1",
3829
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3621
3830
  reasoning: true,
3622
3831
  input: ["text", "image"],
3623
3832
  cost: {
@@ -3635,6 +3844,7 @@ export const OPENROUTER_MODELS = {
3635
3844
  api: "openai-completions",
3636
3845
  provider: "openrouter",
3637
3846
  baseUrl: "https://openrouter.ai/api/v1",
3847
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3638
3848
  reasoning: true,
3639
3849
  input: ["text", "image"],
3640
3850
  cost: {
@@ -3652,6 +3862,7 @@ export const OPENROUTER_MODELS = {
3652
3862
  api: "openai-completions",
3653
3863
  provider: "openrouter",
3654
3864
  baseUrl: "https://openrouter.ai/api/v1",
3865
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3655
3866
  reasoning: true,
3656
3867
  input: ["text", "image"],
3657
3868
  cost: {
@@ -3669,6 +3880,7 @@ export const OPENROUTER_MODELS = {
3669
3880
  api: "openai-completions",
3670
3881
  provider: "openrouter",
3671
3882
  baseUrl: "https://openrouter.ai/api/v1",
3883
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3672
3884
  reasoning: true,
3673
3885
  input: ["text", "image"],
3674
3886
  cost: {
@@ -3686,11 +3898,12 @@ export const OPENROUTER_MODELS = {
3686
3898
  api: "openai-completions",
3687
3899
  provider: "openrouter",
3688
3900
  baseUrl: "https://openrouter.ai/api/v1",
3901
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3689
3902
  reasoning: true,
3690
3903
  input: ["text", "image"],
3691
3904
  cost: {
3692
- input: 0.2885,
3693
- output: 3.17,
3905
+ input: 0.2596,
3906
+ output: 2.385,
3694
3907
  cacheRead: 0,
3695
3908
  cacheWrite: 0,
3696
3909
  },
@@ -3703,6 +3916,7 @@ export const OPENROUTER_MODELS = {
3703
3916
  api: "openai-completions",
3704
3917
  provider: "openrouter",
3705
3918
  baseUrl: "https://openrouter.ai/api/v1",
3919
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3706
3920
  reasoning: true,
3707
3921
  input: ["text", "image"],
3708
3922
  cost: {
@@ -3720,6 +3934,7 @@ export const OPENROUTER_MODELS = {
3720
3934
  api: "openai-completions",
3721
3935
  provider: "openrouter",
3722
3936
  baseUrl: "https://openrouter.ai/api/v1",
3937
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3723
3938
  reasoning: true,
3724
3939
  input: ["text", "image"],
3725
3940
  cost: {
@@ -3737,6 +3952,7 @@ export const OPENROUTER_MODELS = {
3737
3952
  api: "openai-completions",
3738
3953
  provider: "openrouter",
3739
3954
  baseUrl: "https://openrouter.ai/api/v1",
3955
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3740
3956
  reasoning: true,
3741
3957
  input: ["text"],
3742
3958
  cost: {
@@ -3754,6 +3970,7 @@ export const OPENROUTER_MODELS = {
3754
3970
  api: "openai-completions",
3755
3971
  provider: "openrouter",
3756
3972
  baseUrl: "https://openrouter.ai/api/v1",
3973
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3757
3974
  reasoning: true,
3758
3975
  input: ["text", "image"],
3759
3976
  cost: {
@@ -3771,6 +3988,7 @@ export const OPENROUTER_MODELS = {
3771
3988
  api: "openai-completions",
3772
3989
  provider: "openrouter",
3773
3990
  baseUrl: "https://openrouter.ai/api/v1",
3991
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3774
3992
  reasoning: true,
3775
3993
  input: ["text"],
3776
3994
  cost: {
@@ -3788,6 +4006,7 @@ export const OPENROUTER_MODELS = {
3788
4006
  api: "openai-completions",
3789
4007
  provider: "openrouter",
3790
4008
  baseUrl: "https://openrouter.ai/api/v1",
4009
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3791
4010
  reasoning: true,
3792
4011
  input: ["text", "image"],
3793
4012
  cost: {
@@ -3805,6 +4024,7 @@ export const OPENROUTER_MODELS = {
3805
4024
  api: "openai-completions",
3806
4025
  provider: "openrouter",
3807
4026
  baseUrl: "https://openrouter.ai/api/v1",
4027
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3808
4028
  reasoning: false,
3809
4029
  input: ["text", "image"],
3810
4030
  cost: {
@@ -3822,6 +4042,7 @@ export const OPENROUTER_MODELS = {
3822
4042
  api: "openai-completions",
3823
4043
  provider: "openrouter",
3824
4044
  baseUrl: "https://openrouter.ai/api/v1",
4045
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3825
4046
  reasoning: false,
3826
4047
  input: ["text"],
3827
4048
  cost: {
@@ -3833,12 +4054,31 @@ export const OPENROUTER_MODELS = {
3833
4054
  contextWindow: 256000,
3834
4055
  maxTokens: 128000,
3835
4056
  },
4057
+ "sakana/fugu-ultra": {
4058
+ id: "sakana/fugu-ultra",
4059
+ name: "Sakana: Fugu Ultra",
4060
+ api: "openai-completions",
4061
+ provider: "openrouter",
4062
+ baseUrl: "https://openrouter.ai/api/v1",
4063
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4064
+ reasoning: true,
4065
+ input: ["text", "image"],
4066
+ cost: {
4067
+ input: 5,
4068
+ output: 30,
4069
+ cacheRead: 0.5,
4070
+ cacheWrite: 0,
4071
+ },
4072
+ contextWindow: 1000000,
4073
+ maxTokens: 128000,
4074
+ },
3836
4075
  "sao10k/l3.1-euryale-70b": {
3837
4076
  id: "sao10k/l3.1-euryale-70b",
3838
4077
  name: "Sao10K: Llama 3.1 Euryale 70B v2.2",
3839
4078
  api: "openai-completions",
3840
4079
  provider: "openrouter",
3841
4080
  baseUrl: "https://openrouter.ai/api/v1",
4081
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3842
4082
  reasoning: false,
3843
4083
  input: ["text"],
3844
4084
  cost: {
@@ -3856,6 +4096,7 @@ export const OPENROUTER_MODELS = {
3856
4096
  api: "openai-completions",
3857
4097
  provider: "openrouter",
3858
4098
  baseUrl: "https://openrouter.ai/api/v1",
4099
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3859
4100
  reasoning: true,
3860
4101
  input: ["text"],
3861
4102
  cost: {
@@ -3873,6 +4114,7 @@ export const OPENROUTER_MODELS = {
3873
4114
  api: "openai-completions",
3874
4115
  provider: "openrouter",
3875
4116
  baseUrl: "https://openrouter.ai/api/v1",
4117
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3876
4118
  reasoning: true,
3877
4119
  input: ["text", "image"],
3878
4120
  cost: {
@@ -3890,6 +4132,7 @@ export const OPENROUTER_MODELS = {
3890
4132
  api: "openai-completions",
3891
4133
  provider: "openrouter",
3892
4134
  baseUrl: "https://openrouter.ai/api/v1",
4135
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3893
4136
  reasoning: true,
3894
4137
  input: ["text"],
3895
4138
  cost: {
@@ -3907,6 +4150,7 @@ export const OPENROUTER_MODELS = {
3907
4150
  api: "openai-completions",
3908
4151
  provider: "openrouter",
3909
4152
  baseUrl: "https://openrouter.ai/api/v1",
4153
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3910
4154
  reasoning: false,
3911
4155
  input: ["text"],
3912
4156
  cost: {
@@ -3924,6 +4168,7 @@ export const OPENROUTER_MODELS = {
3924
4168
  api: "openai-completions",
3925
4169
  provider: "openrouter",
3926
4170
  baseUrl: "https://openrouter.ai/api/v1",
4171
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3927
4172
  reasoning: true,
3928
4173
  input: ["text"],
3929
4174
  cost: {
@@ -3941,6 +4186,7 @@ export const OPENROUTER_MODELS = {
3941
4186
  api: "openai-completions",
3942
4187
  provider: "openrouter",
3943
4188
  baseUrl: "https://openrouter.ai/api/v1",
4189
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3944
4190
  reasoning: true,
3945
4191
  input: ["text", "image"],
3946
4192
  cost: {
@@ -3958,6 +4204,7 @@ export const OPENROUTER_MODELS = {
3958
4204
  api: "openai-completions",
3959
4205
  provider: "openrouter",
3960
4206
  baseUrl: "https://openrouter.ai/api/v1",
4207
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3961
4208
  reasoning: true,
3962
4209
  input: ["text", "image"],
3963
4210
  cost: {
@@ -3975,6 +4222,7 @@ export const OPENROUTER_MODELS = {
3975
4222
  api: "openai-completions",
3976
4223
  provider: "openrouter",
3977
4224
  baseUrl: "https://openrouter.ai/api/v1",
4225
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3978
4226
  reasoning: true,
3979
4227
  input: ["text", "image"],
3980
4228
  cost: {
@@ -3992,16 +4240,17 @@ export const OPENROUTER_MODELS = {
3992
4240
  api: "openai-completions",
3993
4241
  provider: "openrouter",
3994
4242
  baseUrl: "https://openrouter.ai/api/v1",
4243
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
3995
4244
  reasoning: true,
3996
4245
  input: ["text", "image"],
3997
4246
  cost: {
3998
- input: 0.14,
4247
+ input: 0.105,
3999
4248
  output: 0.28,
4000
- cacheRead: 0.0028,
4249
+ cacheRead: 0,
4001
4250
  cacheWrite: 0,
4002
4251
  },
4003
4252
  contextWindow: 1048576,
4004
- maxTokens: 131072,
4253
+ maxTokens: 4096,
4005
4254
  },
4006
4255
  "xiaomi/mimo-v2.5-pro": {
4007
4256
  id: "xiaomi/mimo-v2.5-pro",
@@ -4009,6 +4258,7 @@ export const OPENROUTER_MODELS = {
4009
4258
  api: "openai-completions",
4010
4259
  provider: "openrouter",
4011
4260
  baseUrl: "https://openrouter.ai/api/v1",
4261
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4012
4262
  reasoning: true,
4013
4263
  input: ["text"],
4014
4264
  cost: {
@@ -4026,6 +4276,7 @@ export const OPENROUTER_MODELS = {
4026
4276
  api: "openai-completions",
4027
4277
  provider: "openrouter",
4028
4278
  baseUrl: "https://openrouter.ai/api/v1",
4279
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4029
4280
  reasoning: true,
4030
4281
  input: ["text"],
4031
4282
  cost: {
@@ -4043,6 +4294,7 @@ export const OPENROUTER_MODELS = {
4043
4294
  api: "openai-completions",
4044
4295
  provider: "openrouter",
4045
4296
  baseUrl: "https://openrouter.ai/api/v1",
4297
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4046
4298
  reasoning: true,
4047
4299
  input: ["text"],
4048
4300
  cost: {
@@ -4060,6 +4312,7 @@ export const OPENROUTER_MODELS = {
4060
4312
  api: "openai-completions",
4061
4313
  provider: "openrouter",
4062
4314
  baseUrl: "https://openrouter.ai/api/v1",
4315
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4063
4316
  reasoning: true,
4064
4317
  input: ["text", "image"],
4065
4318
  cost: {
@@ -4077,6 +4330,7 @@ export const OPENROUTER_MODELS = {
4077
4330
  api: "openai-completions",
4078
4331
  provider: "openrouter",
4079
4332
  baseUrl: "https://openrouter.ai/api/v1",
4333
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4080
4334
  reasoning: true,
4081
4335
  input: ["text"],
4082
4336
  cost: {
@@ -4094,6 +4348,7 @@ export const OPENROUTER_MODELS = {
4094
4348
  api: "openai-completions",
4095
4349
  provider: "openrouter",
4096
4350
  baseUrl: "https://openrouter.ai/api/v1",
4351
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4097
4352
  reasoning: true,
4098
4353
  input: ["text", "image"],
4099
4354
  cost: {
@@ -4111,6 +4366,7 @@ export const OPENROUTER_MODELS = {
4111
4366
  api: "openai-completions",
4112
4367
  provider: "openrouter",
4113
4368
  baseUrl: "https://openrouter.ai/api/v1",
4369
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4114
4370
  reasoning: true,
4115
4371
  input: ["text"],
4116
4372
  cost: {
@@ -4128,6 +4384,7 @@ export const OPENROUTER_MODELS = {
4128
4384
  api: "openai-completions",
4129
4385
  provider: "openrouter",
4130
4386
  baseUrl: "https://openrouter.ai/api/v1",
4387
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4131
4388
  reasoning: true,
4132
4389
  input: ["text"],
4133
4390
  cost: {
@@ -4145,6 +4402,7 @@ export const OPENROUTER_MODELS = {
4145
4402
  api: "openai-completions",
4146
4403
  provider: "openrouter",
4147
4404
  baseUrl: "https://openrouter.ai/api/v1",
4405
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4148
4406
  reasoning: true,
4149
4407
  input: ["text"],
4150
4408
  cost: {
@@ -4162,6 +4420,7 @@ export const OPENROUTER_MODELS = {
4162
4420
  api: "openai-completions",
4163
4421
  provider: "openrouter",
4164
4422
  baseUrl: "https://openrouter.ai/api/v1",
4423
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4165
4424
  reasoning: true,
4166
4425
  input: ["text"],
4167
4426
  cost: {
@@ -4179,16 +4438,17 @@ export const OPENROUTER_MODELS = {
4179
4438
  api: "openai-completions",
4180
4439
  provider: "openrouter",
4181
4440
  baseUrl: "https://openrouter.ai/api/v1",
4441
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4182
4442
  reasoning: true,
4183
4443
  input: ["text"],
4184
4444
  cost: {
4185
4445
  input: 0.98,
4186
4446
  output: 3.08,
4187
- cacheRead: 0.49,
4447
+ cacheRead: 0.182,
4188
4448
  cacheWrite: 0,
4189
4449
  },
4190
4450
  contextWindow: 202752,
4191
- maxTokens: 65535,
4451
+ maxTokens: 4096,
4192
4452
  },
4193
4453
  "z-ai/glm-5.2": {
4194
4454
  id: "z-ai/glm-5.2",
@@ -4196,17 +4456,18 @@ export const OPENROUTER_MODELS = {
4196
4456
  api: "openai-completions",
4197
4457
  provider: "openrouter",
4198
4458
  baseUrl: "https://openrouter.ai/api/v1",
4459
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4199
4460
  reasoning: true,
4200
4461
  thinkingLevelMap: { "xhigh": "xhigh" },
4201
4462
  input: ["text"],
4202
4463
  cost: {
4203
- input: 0.98,
4204
- output: 3.08,
4205
- cacheRead: 0.182,
4464
+ input: 0.95,
4465
+ output: 3,
4466
+ cacheRead: 0.18,
4206
4467
  cacheWrite: 0,
4207
4468
  },
4208
4469
  contextWindow: 1048576,
4209
- maxTokens: 4096,
4470
+ maxTokens: 32768,
4210
4471
  },
4211
4472
  "z-ai/glm-5v-turbo": {
4212
4473
  id: "z-ai/glm-5v-turbo",
@@ -4214,6 +4475,7 @@ export const OPENROUTER_MODELS = {
4214
4475
  api: "openai-completions",
4215
4476
  provider: "openrouter",
4216
4477
  baseUrl: "https://openrouter.ai/api/v1",
4478
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4217
4479
  reasoning: true,
4218
4480
  input: ["text", "image"],
4219
4481
  cost: {
@@ -4231,6 +4493,7 @@ export const OPENROUTER_MODELS = {
4231
4493
  api: "openai-completions",
4232
4494
  provider: "openrouter",
4233
4495
  baseUrl: "https://openrouter.ai/api/v1",
4496
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4234
4497
  reasoning: true,
4235
4498
  input: ["text", "image"],
4236
4499
  cost: {
@@ -4248,6 +4511,7 @@ export const OPENROUTER_MODELS = {
4248
4511
  api: "openai-completions",
4249
4512
  provider: "openrouter",
4250
4513
  baseUrl: "https://openrouter.ai/api/v1",
4514
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4251
4515
  reasoning: true,
4252
4516
  input: ["text", "image"],
4253
4517
  cost: {
@@ -4265,6 +4529,7 @@ export const OPENROUTER_MODELS = {
4265
4529
  api: "openai-completions",
4266
4530
  provider: "openrouter",
4267
4531
  baseUrl: "https://openrouter.ai/api/v1",
4532
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4268
4533
  reasoning: true,
4269
4534
  input: ["text", "image"],
4270
4535
  cost: {
@@ -4282,6 +4547,7 @@ export const OPENROUTER_MODELS = {
4282
4547
  api: "openai-completions",
4283
4548
  provider: "openrouter",
4284
4549
  baseUrl: "https://openrouter.ai/api/v1",
4550
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4285
4551
  reasoning: true,
4286
4552
  input: ["text", "image"],
4287
4553
  cost: {
@@ -4299,6 +4565,7 @@ export const OPENROUTER_MODELS = {
4299
4565
  api: "openai-completions",
4300
4566
  provider: "openrouter",
4301
4567
  baseUrl: "https://openrouter.ai/api/v1",
4568
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4302
4569
  reasoning: true,
4303
4570
  input: ["text", "image"],
4304
4571
  cost: {
@@ -4316,6 +4583,7 @@ export const OPENROUTER_MODELS = {
4316
4583
  api: "openai-completions",
4317
4584
  provider: "openrouter",
4318
4585
  baseUrl: "https://openrouter.ai/api/v1",
4586
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4319
4587
  reasoning: true,
4320
4588
  input: ["text", "image"],
4321
4589
  cost: {
@@ -4333,12 +4601,13 @@ export const OPENROUTER_MODELS = {
4333
4601
  api: "openai-completions",
4334
4602
  provider: "openrouter",
4335
4603
  baseUrl: "https://openrouter.ai/api/v1",
4604
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4336
4605
  reasoning: true,
4337
4606
  input: ["text", "image"],
4338
4607
  cost: {
4339
- input: 0.66,
4340
- output: 3.41,
4341
- cacheRead: 0.144,
4608
+ input: 0.55,
4609
+ output: 3.2,
4610
+ cacheRead: 0.11,
4342
4611
  cacheWrite: 0,
4343
4612
  },
4344
4613
  contextWindow: 262144,
@@ -4350,6 +4619,7 @@ export const OPENROUTER_MODELS = {
4350
4619
  api: "openai-completions",
4351
4620
  provider: "openrouter",
4352
4621
  baseUrl: "https://openrouter.ai/api/v1",
4622
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4353
4623
  reasoning: true,
4354
4624
  input: ["text", "image"],
4355
4625
  cost: {
@@ -4367,6 +4637,7 @@ export const OPENROUTER_MODELS = {
4367
4637
  api: "openai-completions",
4368
4638
  provider: "openrouter",
4369
4639
  baseUrl: "https://openrouter.ai/api/v1",
4640
+ compat: { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" },
4370
4641
  reasoning: true,
4371
4642
  input: ["text", "image"],
4372
4643
  cost: {