llm-zoo 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs ADDED
@@ -0,0 +1,1778 @@
1
+ 'use strict';
2
+
3
+ // src/ModelConfig.ts
4
+ var DEFAULT_CONTEXT_WINDOW = 128e3;
5
+ var ReasoningEffort = /* @__PURE__ */ ((ReasoningEffort2) => {
6
+ ReasoningEffort2["XHIGH"] = "xhigh";
7
+ ReasoningEffort2["HIGH"] = "high";
8
+ ReasoningEffort2["MEDIUM"] = "medium";
9
+ ReasoningEffort2["LOW"] = "low";
10
+ ReasoningEffort2["NONE"] = "none";
11
+ return ReasoningEffort2;
12
+ })(ReasoningEffort || {});
13
+ var ModelProvider = /* @__PURE__ */ ((ModelProvider2) => {
14
+ ModelProvider2["ANTHROPIC"] = "anthropic";
15
+ ModelProvider2["OPENAI"] = "openai";
16
+ ModelProvider2["GOOGLE"] = "google";
17
+ ModelProvider2["DEEPSEEK"] = "deepseek";
18
+ ModelProvider2["XAI"] = "xai";
19
+ ModelProvider2["MOONSHOT"] = "moonshot";
20
+ ModelProvider2["DASHSCOPE"] = "dashscope";
21
+ ModelProvider2["COPILOT"] = "copilot";
22
+ ModelProvider2["OTHERS"] = "others";
23
+ return ModelProvider2;
24
+ })(ModelProvider || {});
25
+ var DEFAULT_MODEL_CAPABILITIES = {
26
+ supportsFunctionCalling: true,
27
+ supportsNativeMCPServer: false,
28
+ supportsNativeWebSearch: false,
29
+ supportsNativeCodeExecution: false,
30
+ supportsPromptCaching: false,
31
+ supportsAutoPromptCaching: false,
32
+ cacheDiscountFactor: 1,
33
+ supportsReasoning: false,
34
+ supportsInterleavedThinking: false,
35
+ reasoningEffort: "none" /* NONE */,
36
+ supportsVision: true,
37
+ supportsNativePdf: false,
38
+ supportsAssistantPrefill: false,
39
+ supportsPredictiveOutput: false,
40
+ supportsTokenCounting: false,
41
+ supportsSystemPrompt: true,
42
+ supportsIntermDevMsgs: false,
43
+ supportsReasoningEffort: false,
44
+ supportsNativeAudio: false
45
+ };
46
+
47
+ // src/providers/anthropicModels.ts
48
+ var ANTHROPIC_DEFAULT_CAPABILITIES = {
49
+ ...DEFAULT_MODEL_CAPABILITIES,
50
+ supportsPromptCaching: true,
51
+ cacheDiscountFactor: 0.1,
52
+ supportsTokenCounting: true,
53
+ supportsVision: true,
54
+ supportsNativePdf: true,
55
+ supportsNativeMCPServer: false,
56
+ supportsNativeWebSearch: false,
57
+ supportsNativeCodeExecution: false
58
+ };
59
+ var ANTHROPIC_MODELS = {
60
+ opus45T: {
61
+ name: "opus45T",
62
+ fullName: "claude-opus-4-5",
63
+ openrouterFullName: "anthropic/claude-opus-4.5:thinking",
64
+ provider: "anthropic" /* ANTHROPIC */,
65
+ maxOutputTokens: 64e3,
66
+ contextWindow: 2e5,
67
+ inputPrice: 5,
68
+ outputPrice: 25,
69
+ capabilities: {
70
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
71
+ supportsNativeMCPServer: true,
72
+ supportsNativeWebSearch: true,
73
+ supportsNativeCodeExecution: true,
74
+ supportsAssistantPrefill: false,
75
+ supportsReasoning: true,
76
+ supportsInterleavedThinking: true
77
+ },
78
+ openRouterOnly: false
79
+ },
80
+ opus45: {
81
+ name: "opus45",
82
+ fullName: "claude-opus-4-5",
83
+ openrouterFullName: "anthropic/claude-opus-4.5",
84
+ provider: "anthropic" /* ANTHROPIC */,
85
+ maxOutputTokens: 64e3,
86
+ contextWindow: 2e5,
87
+ inputPrice: 5,
88
+ outputPrice: 25,
89
+ capabilities: {
90
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
91
+ supportsNativeWebSearch: true,
92
+ supportsNativeCodeExecution: true,
93
+ supportsAssistantPrefill: true,
94
+ supportsReasoning: false
95
+ },
96
+ openRouterOnly: false
97
+ },
98
+ opus41T: {
99
+ name: "opus41T",
100
+ fullName: "claude-opus-4-1-20250805",
101
+ openrouterFullName: "anthropic/claude-opus-4.1",
102
+ provider: "anthropic" /* ANTHROPIC */,
103
+ maxOutputTokens: 32e3,
104
+ contextWindow: 2e5,
105
+ inputPrice: 15,
106
+ outputPrice: 75,
107
+ capabilities: {
108
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
109
+ supportsNativeMCPServer: true,
110
+ supportsNativeWebSearch: true,
111
+ supportsNativeCodeExecution: true,
112
+ supportsAssistantPrefill: false,
113
+ supportsReasoning: true,
114
+ supportsInterleavedThinking: true
115
+ },
116
+ openRouterOnly: false
117
+ },
118
+ opus41: {
119
+ name: "opus41",
120
+ fullName: "claude-opus-4-1-20250805",
121
+ openrouterFullName: "anthropic/claude-opus-4.1",
122
+ provider: "anthropic" /* ANTHROPIC */,
123
+ maxOutputTokens: 32e3,
124
+ contextWindow: 2e5,
125
+ inputPrice: 15,
126
+ outputPrice: 75,
127
+ capabilities: {
128
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
129
+ supportsNativeWebSearch: true,
130
+ supportsNativeCodeExecution: true,
131
+ supportsAssistantPrefill: true,
132
+ supportsReasoning: false
133
+ },
134
+ openRouterOnly: false
135
+ },
136
+ opus4T: {
137
+ name: "opus4T",
138
+ fullName: "claude-opus-4-20250514",
139
+ openrouterFullName: "anthropic/claude-opus-4",
140
+ provider: "anthropic" /* ANTHROPIC */,
141
+ maxOutputTokens: 32e3,
142
+ contextWindow: 2e5,
143
+ inputPrice: 15,
144
+ outputPrice: 75,
145
+ capabilities: {
146
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
147
+ supportsNativeMCPServer: true,
148
+ supportsNativeWebSearch: true,
149
+ supportsNativeCodeExecution: true,
150
+ supportsAssistantPrefill: false,
151
+ supportsReasoning: true,
152
+ supportsInterleavedThinking: true
153
+ },
154
+ openRouterOnly: false
155
+ },
156
+ opus4: {
157
+ name: "opus4",
158
+ fullName: "claude-opus-4-20250514",
159
+ openrouterFullName: "anthropic/claude-opus-4",
160
+ provider: "anthropic" /* ANTHROPIC */,
161
+ maxOutputTokens: 32e3,
162
+ contextWindow: 2e5,
163
+ inputPrice: 15,
164
+ outputPrice: 75,
165
+ capabilities: {
166
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
167
+ supportsNativeWebSearch: true,
168
+ supportsNativeCodeExecution: true,
169
+ supportsAssistantPrefill: true,
170
+ supportsReasoning: false
171
+ },
172
+ openRouterOnly: false
173
+ },
174
+ sonnet45T: {
175
+ name: "sonnet45T",
176
+ fullName: "claude-sonnet-4-5",
177
+ openrouterFullName: "anthropic/claude-sonnet-4.5:thinking",
178
+ provider: "anthropic" /* ANTHROPIC */,
179
+ maxOutputTokens: 64e3,
180
+ contextWindow: 2e5,
181
+ inputPrice: 3,
182
+ outputPrice: 15,
183
+ capabilities: {
184
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
185
+ supportsNativeWebSearch: true,
186
+ supportsNativeCodeExecution: true,
187
+ supportsAssistantPrefill: false,
188
+ supportsReasoning: true,
189
+ supportsInterleavedThinking: true
190
+ },
191
+ openRouterOnly: false
192
+ },
193
+ sonnet45: {
194
+ name: "sonnet45",
195
+ fullName: "claude-sonnet-4-5",
196
+ openrouterFullName: "anthropic/claude-sonnet-4.5",
197
+ provider: "anthropic" /* ANTHROPIC */,
198
+ maxOutputTokens: 64e3,
199
+ contextWindow: 2e5,
200
+ inputPrice: 3,
201
+ outputPrice: 15,
202
+ capabilities: {
203
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
204
+ supportsNativeWebSearch: true,
205
+ supportsNativeCodeExecution: true,
206
+ supportsAssistantPrefill: true,
207
+ supportsReasoning: false
208
+ },
209
+ openRouterOnly: false
210
+ },
211
+ haiku45T: {
212
+ name: "haiku45T",
213
+ fullName: "claude-haiku-4-5-20251001",
214
+ openrouterFullName: "anthropic/claude-haiku-4.5:thinking",
215
+ provider: "anthropic" /* ANTHROPIC */,
216
+ maxOutputTokens: 64e3,
217
+ contextWindow: 2e5,
218
+ inputPrice: 1,
219
+ outputPrice: 5,
220
+ capabilities: {
221
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
222
+ supportsNativeWebSearch: true,
223
+ supportsNativeCodeExecution: true,
224
+ supportsAssistantPrefill: false,
225
+ supportsReasoning: true,
226
+ supportsInterleavedThinking: true
227
+ },
228
+ openRouterOnly: false
229
+ },
230
+ haiku45: {
231
+ name: "haiku45",
232
+ fullName: "claude-haiku-4-5-20251001",
233
+ openrouterFullName: "anthropic/claude-haiku-4.5",
234
+ provider: "anthropic" /* ANTHROPIC */,
235
+ maxOutputTokens: 64e3,
236
+ contextWindow: 2e5,
237
+ inputPrice: 1,
238
+ outputPrice: 5,
239
+ capabilities: {
240
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
241
+ supportsNativeWebSearch: true,
242
+ supportsNativeCodeExecution: true,
243
+ supportsAssistantPrefill: true,
244
+ supportsReasoning: false
245
+ },
246
+ openRouterOnly: false
247
+ },
248
+ sonnet4T: {
249
+ name: "sonnet4T",
250
+ fullName: "claude-sonnet-4-20250514",
251
+ openrouterFullName: "anthropic/claude-sonnet-4",
252
+ provider: "anthropic" /* ANTHROPIC */,
253
+ maxOutputTokens: 64e3,
254
+ contextWindow: 2e5,
255
+ inputPrice: 5,
256
+ outputPrice: 25,
257
+ capabilities: {
258
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
259
+ supportsNativeWebSearch: true,
260
+ supportsNativeCodeExecution: true,
261
+ supportsAssistantPrefill: false,
262
+ supportsReasoning: true,
263
+ supportsInterleavedThinking: true
264
+ },
265
+ openRouterOnly: false
266
+ },
267
+ sonnet4: {
268
+ name: "sonnet4",
269
+ fullName: "claude-sonnet-4-20250514",
270
+ openrouterFullName: "anthropic/claude-sonnet-4",
271
+ provider: "anthropic" /* ANTHROPIC */,
272
+ maxOutputTokens: 64e3,
273
+ contextWindow: 2e5,
274
+ inputPrice: 3,
275
+ outputPrice: 15,
276
+ capabilities: {
277
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
278
+ supportsNativeWebSearch: true,
279
+ supportsNativeCodeExecution: true,
280
+ supportsAssistantPrefill: true,
281
+ supportsReasoning: false
282
+ },
283
+ openRouterOnly: false
284
+ },
285
+ sonnet37T: {
286
+ name: "sonnet37T",
287
+ fullName: "claude-3-7-sonnet-20250219",
288
+ openrouterFullName: "anthropic/claude-3.7-sonnet:thinking",
289
+ provider: "anthropic" /* ANTHROPIC */,
290
+ maxOutputTokens: 64e3,
291
+ contextWindow: 2e5,
292
+ inputPrice: 3,
293
+ outputPrice: 15,
294
+ capabilities: {
295
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
296
+ supportsNativeWebSearch: true,
297
+ supportsNativeCodeExecution: true,
298
+ supportsAssistantPrefill: false,
299
+ supportsReasoning: true
300
+ },
301
+ openRouterOnly: false
302
+ },
303
+ sonnet37: {
304
+ name: "sonnet37",
305
+ fullName: "claude-3-7-sonnet-20250219",
306
+ openrouterFullName: "anthropic/claude-3.7-sonnet",
307
+ provider: "anthropic" /* ANTHROPIC */,
308
+ maxOutputTokens: 64e3,
309
+ contextWindow: 2e5,
310
+ inputPrice: 3,
311
+ outputPrice: 15,
312
+ capabilities: {
313
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
314
+ supportsNativeWebSearch: true,
315
+ supportsNativeCodeExecution: true,
316
+ supportsAssistantPrefill: true,
317
+ supportsReasoning: false
318
+ },
319
+ openRouterOnly: false
320
+ },
321
+ opus3: {
322
+ name: "opus3",
323
+ fullName: "claude-3-opus-20240229",
324
+ openrouterFullName: "anthropic/claude-3-opus:beta",
325
+ provider: "anthropic" /* ANTHROPIC */,
326
+ maxOutputTokens: 4096,
327
+ contextWindow: 2e5,
328
+ inputPrice: 15,
329
+ outputPrice: 75,
330
+ capabilities: {
331
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
332
+ supportsAssistantPrefill: true,
333
+ supportsReasoning: false
334
+ },
335
+ openRouterOnly: false
336
+ },
337
+ sonnet36: {
338
+ name: "sonnet36",
339
+ fullName: "claude-3-5-sonnet-20241022",
340
+ openrouterFullName: "anthropic/claude-3.5-sonnet:beta",
341
+ provider: "anthropic" /* ANTHROPIC */,
342
+ maxOutputTokens: 8192,
343
+ contextWindow: 2e5,
344
+ inputPrice: 3,
345
+ outputPrice: 15,
346
+ capabilities: {
347
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
348
+ supportsAssistantPrefill: true,
349
+ supportsReasoning: false
350
+ },
351
+ openRouterOnly: false
352
+ },
353
+ sonnet35: {
354
+ name: "sonnet35",
355
+ fullName: "claude-3-5-sonnet-20240620",
356
+ openrouterFullName: "anthropic/claude-3.5-sonnet-20240620:beta",
357
+ provider: "anthropic" /* ANTHROPIC */,
358
+ maxOutputTokens: 8192,
359
+ contextWindow: 2e5,
360
+ inputPrice: 3,
361
+ outputPrice: 15,
362
+ capabilities: {
363
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
364
+ supportsNativeWebSearch: true,
365
+ supportsAssistantPrefill: true,
366
+ supportsReasoning: false
367
+ },
368
+ openRouterOnly: false
369
+ },
370
+ sonnet3: {
371
+ name: "sonnet3",
372
+ fullName: "claude-3-sonnet-20240229",
373
+ openrouterFullName: "anthropic/claude-3.5-sonnet-20240229:beta",
374
+ provider: "anthropic" /* ANTHROPIC */,
375
+ maxOutputTokens: 8192,
376
+ contextWindow: 2e5,
377
+ inputPrice: 3,
378
+ outputPrice: 15,
379
+ capabilities: {
380
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
381
+ supportsAssistantPrefill: true,
382
+ supportsReasoning: false
383
+ },
384
+ openRouterOnly: false
385
+ },
386
+ haiku35: {
387
+ name: "haiku35",
388
+ fullName: "claude-3-5-haiku-20241022",
389
+ openrouterFullName: "anthropic/claude-3.5-haiku:beta",
390
+ provider: "anthropic" /* ANTHROPIC */,
391
+ maxOutputTokens: 8192,
392
+ contextWindow: 2e5,
393
+ inputPrice: 0.8,
394
+ outputPrice: 4,
395
+ capabilities: {
396
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
397
+ supportsNativeWebSearch: true,
398
+ supportsNativeCodeExecution: true,
399
+ supportsAssistantPrefill: true,
400
+ supportsReasoning: false,
401
+ supportsVision: true
402
+ },
403
+ openRouterOnly: false
404
+ },
405
+ haiku3: {
406
+ name: "haiku3",
407
+ fullName: "claude-3-haiku-20240307",
408
+ openrouterFullName: "anthropic/claude-3.5-haiku-20240307:beta",
409
+ provider: "anthropic" /* ANTHROPIC */,
410
+ maxOutputTokens: 8192,
411
+ contextWindow: 2e5,
412
+ inputPrice: 0.25,
413
+ outputPrice: 1.25,
414
+ capabilities: {
415
+ ...ANTHROPIC_DEFAULT_CAPABILITIES,
416
+ supportsAssistantPrefill: true,
417
+ supportsReasoning: false
418
+ },
419
+ openRouterOnly: false
420
+ }
421
+ };
422
+
423
+ // src/providers/copilotModels.ts
424
+ var COPILOT_DEFAULT_CAPABILITIES = {
425
+ ...DEFAULT_MODEL_CAPABILITIES,
426
+ supportsVision: true,
427
+ supportsNativePdf: false
428
+ };
429
+ var COPILOT_MODELS = {
430
+ copilot4o: {
431
+ name: "copilot4o",
432
+ fullName: "copilot-gpt-4o",
433
+ provider: "copilot" /* COPILOT */,
434
+ maxOutputTokens: 8192,
435
+ contextWindow: 128e3,
436
+ inputPrice: 0,
437
+ outputPrice: 0,
438
+ capabilities: {
439
+ ...COPILOT_DEFAULT_CAPABILITIES,
440
+ reasoningEffort: "medium" /* MEDIUM */
441
+ },
442
+ openRouterOnly: false
443
+ }
444
+ };
445
+
446
+ // src/providers/dashscopeModels.ts
447
+ var DASHSCOPE_DEFAULT_CAPABILITIES = {
448
+ ...DEFAULT_MODEL_CAPABILITIES,
449
+ supportsPromptCaching: false,
450
+ supportsVision: true,
451
+ supportsSystemPrompt: true
452
+ };
453
+ var DASHSCOPE_MODELS = {
454
+ qwen3max: {
455
+ name: "qwen3max",
456
+ fullName: "qwen3-max",
457
+ openrouterFullName: "qwen/qwen-max",
458
+ provider: "dashscope" /* DASHSCOPE */,
459
+ maxOutputTokens: 65536,
460
+ contextWindow: 262144,
461
+ inputPrice: 1.2,
462
+ outputPrice: 6,
463
+ capabilities: {
464
+ ...DASHSCOPE_DEFAULT_CAPABILITIES,
465
+ supportsVision: false
466
+ },
467
+ openRouterOnly: false
468
+ },
469
+ qwenplus: {
470
+ name: "qwenplus",
471
+ fullName: "qwen-plus",
472
+ openrouterFullName: "qwen/qwen-plus",
473
+ provider: "dashscope" /* DASHSCOPE */,
474
+ maxOutputTokens: 32768,
475
+ contextWindow: 1e6,
476
+ inputPrice: 0.4,
477
+ outputPrice: 1.2,
478
+ capabilities: {
479
+ ...DASHSCOPE_DEFAULT_CAPABILITIES,
480
+ supportsVision: false,
481
+ supportsReasoning: true
482
+ },
483
+ openRouterOnly: false
484
+ },
485
+ qwenturbo: {
486
+ name: "qwenturbo",
487
+ fullName: "qwen-turbo-latest",
488
+ openrouterFullName: "qwen/qwen-turbo",
489
+ provider: "dashscope" /* DASHSCOPE */,
490
+ maxOutputTokens: 8192,
491
+ contextWindow: 131072,
492
+ inputPrice: 0.05,
493
+ outputPrice: 0.5,
494
+ capabilities: {
495
+ ...DASHSCOPE_DEFAULT_CAPABILITIES,
496
+ supportsVision: false,
497
+ supportsReasoning: true
498
+ },
499
+ openRouterOnly: false
500
+ }
501
+ };
502
+
503
+ // src/providers/deepseekModels.ts
504
+ var DEEPSEEK_DEFAULT_CAPABILITIES = {
505
+ ...DEFAULT_MODEL_CAPABILITIES,
506
+ supportsAutoPromptCaching: true,
507
+ cacheDiscountFactor: 0.1,
508
+ supportsVision: false
509
+ };
510
+ var DEEPSEEK_MODELS = {
511
+ // DeepSeek-V3.2 (Non-thinking Mode)
512
+ deepseek: {
513
+ name: "deepseek",
514
+ fullName: "deepseek-chat",
515
+ openrouterFullName: "deepseek/deepseek-v3.2",
516
+ provider: "deepseek" /* DEEPSEEK */,
517
+ maxOutputTokens: 8192,
518
+ contextWindow: 128e3,
519
+ inputPrice: 0.28,
520
+ outputPrice: 0.42,
521
+ capabilities: {
522
+ ...DEEPSEEK_DEFAULT_CAPABILITIES,
523
+ supportsAssistantPrefill: true,
524
+ supportsFunctionCalling: true
525
+ },
526
+ openRouterOnly: false
527
+ },
528
+ // DeepSeek-V3.2 (Thinking Mode)
529
+ deepseekT: {
530
+ name: "deepseekT",
531
+ fullName: "deepseek-reasoner",
532
+ openrouterFullName: "deepseek/deepseek-v3.2",
533
+ provider: "deepseek" /* DEEPSEEK */,
534
+ maxOutputTokens: 65536,
535
+ contextWindow: 163840,
536
+ inputPrice: 0.28,
537
+ outputPrice: 0.42,
538
+ capabilities: {
539
+ ...DEEPSEEK_DEFAULT_CAPABILITIES,
540
+ supportsReasoning: true,
541
+ supportsReasoningEffort: false,
542
+ supportsFunctionCalling: true,
543
+ supportsAssistantPrefill: true
544
+ },
545
+ openRouterOnly: false
546
+ },
547
+ // DeepSeek-V3.2-Speciale (Extended Thinking)
548
+ "deepseekT+": {
549
+ name: "deepseekT+",
550
+ fullName: "deepseek-reasoner",
551
+ openrouterFullName: "deepseek/deepseek-v3.2-speciale",
552
+ provider: "deepseek" /* DEEPSEEK */,
553
+ maxOutputTokens: 131072,
554
+ contextWindow: 163840,
555
+ inputPrice: 0.28,
556
+ outputPrice: 0.42,
557
+ capabilities: {
558
+ ...DEEPSEEK_DEFAULT_CAPABILITIES,
559
+ supportsReasoning: true,
560
+ supportsReasoningEffort: false,
561
+ supportsFunctionCalling: false,
562
+ supportsAssistantPrefill: false
563
+ },
564
+ openRouterOnly: false,
565
+ baseUrl: "https://api.deepseek.com/v3.2_speciale_expires_on_20251215"
566
+ },
567
+ dsv3: {
568
+ name: "dsv3",
569
+ fullName: "deepseek-chat",
570
+ openrouterFullName: "deepseek/deepseek-chat-v3-0324",
571
+ provider: "deepseek" /* DEEPSEEK */,
572
+ maxOutputTokens: 64e3,
573
+ contextWindow: 128e3,
574
+ inputPrice: 0.14,
575
+ outputPrice: 0.28,
576
+ capabilities: {
577
+ ...DEEPSEEK_DEFAULT_CAPABILITIES,
578
+ supportsAssistantPrefill: true
579
+ },
580
+ openRouterOnly: false
581
+ },
582
+ dsr1: {
583
+ name: "dsr1",
584
+ fullName: "deepseek-reasoner",
585
+ openrouterFullName: "deepseek/deepseek-r1-0528",
586
+ provider: "deepseek" /* DEEPSEEK */,
587
+ maxOutputTokens: 65536,
588
+ contextWindow: 128e3,
589
+ inputPrice: 4,
590
+ outputPrice: 4,
591
+ capabilities: {
592
+ ...DEEPSEEK_DEFAULT_CAPABILITIES,
593
+ supportsReasoning: true,
594
+ supportsReasoningEffort: false
595
+ },
596
+ openRouterOnly: false
597
+ },
598
+ dsv3o: {
599
+ name: "dsv3o",
600
+ fullName: "deepseek-chat",
601
+ openrouterFullName: "deepseek/deepseek-chat-v3-0324",
602
+ provider: "deepseek" /* DEEPSEEK */,
603
+ maxOutputTokens: 8192,
604
+ contextWindow: 64e3,
605
+ inputPrice: 0.27,
606
+ outputPrice: 1.1,
607
+ capabilities: {
608
+ ...DEEPSEEK_DEFAULT_CAPABILITIES,
609
+ supportsAssistantPrefill: true
610
+ },
611
+ openRouterOnly: false
612
+ },
613
+ dsr1o: {
614
+ name: "dsr1o",
615
+ fullName: "deepseek-reasoner",
616
+ openrouterFullName: "deepseek/deepseek-r1-0528",
617
+ provider: "deepseek" /* DEEPSEEK */,
618
+ maxOutputTokens: 64e3,
619
+ contextWindow: 64e3,
620
+ inputPrice: 0.55,
621
+ outputPrice: 2.19,
622
+ capabilities: {
623
+ ...DEEPSEEK_DEFAULT_CAPABILITIES,
624
+ supportsReasoning: true,
625
+ supportsReasoningEffort: false
626
+ },
627
+ openRouterOnly: false
628
+ }
629
+ };
630
+
631
+ // src/providers/googleModels.ts
632
+ var GOOGLE_DEFAULT_CAPABILITIES = {
633
+ ...DEFAULT_MODEL_CAPABILITIES,
634
+ cacheDiscountFactor: 0.25,
635
+ supportsNativePdf: true,
636
+ supportsVision: true,
637
+ supportsNativeAudio: true,
638
+ supportsNativeMCPServer: false,
639
+ supportsNativeWebSearch: false
640
+ };
641
+ var GOOGLE_MODELS = {
642
+ gemini3p: {
643
+ name: "gemini3p",
644
+ fullName: "gemini-3-pro-preview",
645
+ openrouterFullName: "google/gemini-3-pro-preview",
646
+ provider: "google" /* GOOGLE */,
647
+ maxOutputTokens: 65536,
648
+ contextWindow: 1048576,
649
+ inputPrice: 2,
650
+ outputPrice: 12,
651
+ capabilities: {
652
+ ...GOOGLE_DEFAULT_CAPABILITIES,
653
+ supportsPromptCaching: true,
654
+ supportsAutoPromptCaching: true,
655
+ supportsReasoning: true,
656
+ supportsReasoningEffort: true,
657
+ reasoningEffort: "high" /* HIGH */,
658
+ supportsNativeCodeExecution: true,
659
+ supportsNativeMCPServer: true
660
+ },
661
+ openRouterOnly: false
662
+ },
663
+ gemini3f: {
664
+ name: "gemini3f",
665
+ fullName: "gemini-3-flash-preview",
666
+ openrouterFullName: "google/gemini-3-flash-preview",
667
+ provider: "google" /* GOOGLE */,
668
+ maxOutputTokens: 65536,
669
+ contextWindow: 1048576,
670
+ inputPrice: 0.3,
671
+ outputPrice: 2.5,
672
+ capabilities: {
673
+ ...GOOGLE_DEFAULT_CAPABILITIES,
674
+ supportsPromptCaching: true,
675
+ supportsAutoPromptCaching: true,
676
+ supportsReasoning: true,
677
+ supportsReasoningEffort: true,
678
+ reasoningEffort: "high" /* HIGH */,
679
+ supportsNativeCodeExecution: true,
680
+ supportsNativeMCPServer: true
681
+ },
682
+ openRouterOnly: false
683
+ },
684
+ gemini25p: {
685
+ name: "gemini25p",
686
+ fullName: "gemini-2.5-pro",
687
+ openrouterFullName: "google/gemini-2.5-pro",
688
+ provider: "google" /* GOOGLE */,
689
+ maxOutputTokens: 65536,
690
+ contextWindow: 1048576,
691
+ inputPrice: 1.25,
692
+ outputPrice: 10,
693
+ capabilities: {
694
+ ...GOOGLE_DEFAULT_CAPABILITIES,
695
+ supportsPromptCaching: true,
696
+ supportsAutoPromptCaching: true,
697
+ supportsReasoning: true,
698
+ supportsReasoningEffort: false,
699
+ supportsNativeCodeExecution: true,
700
+ supportsNativeMCPServer: true
701
+ },
702
+ openRouterOnly: false
703
+ },
704
+ gemini25f: {
705
+ name: "gemini25f",
706
+ fullName: "gemini-flash-latest",
707
+ openrouterFullName: "google/gemini-2.5-flash-preview-09-2025",
708
+ provider: "google" /* GOOGLE */,
709
+ maxOutputTokens: 65536,
710
+ contextWindow: 1048576,
711
+ inputPrice: 0.3,
712
+ outputPrice: 2.5,
713
+ capabilities: {
714
+ ...GOOGLE_DEFAULT_CAPABILITIES,
715
+ supportsPromptCaching: true,
716
+ supportsAutoPromptCaching: true,
717
+ supportsReasoning: true,
718
+ supportsReasoningEffort: false,
719
+ supportsNativeCodeExecution: true,
720
+ supportsNativeMCPServer: true
721
+ },
722
+ openRouterOnly: false
723
+ },
724
+ gemini25f0617: {
725
+ name: "gemini25f",
726
+ fullName: "gemini-2.5-flash",
727
+ openrouterFullName: "google/gemini-2.5-flash",
728
+ provider: "google" /* GOOGLE */,
729
+ maxOutputTokens: 65536,
730
+ contextWindow: 1048576,
731
+ inputPrice: 0.3,
732
+ outputPrice: 2.5,
733
+ capabilities: {
734
+ ...GOOGLE_DEFAULT_CAPABILITIES,
735
+ supportsPromptCaching: true,
736
+ supportsAutoPromptCaching: true,
737
+ supportsReasoning: true,
738
+ supportsReasoningEffort: false,
739
+ supportsNativeCodeExecution: true,
740
+ supportsNativeMCPServer: true
741
+ },
742
+ openRouterOnly: false
743
+ },
744
+ "gemini25f-": {
745
+ name: "gemini25f-",
746
+ fullName: "gemini-2.5-flash-lite-preview-09-2025",
747
+ openrouterFullName: "google/gemini-2.5-flash-lite-preview-09-2025",
748
+ provider: "google" /* GOOGLE */,
749
+ maxOutputTokens: 32768,
750
+ contextWindow: 65536,
751
+ inputPrice: 0.1,
752
+ outputPrice: 0.4,
753
+ capabilities: {
754
+ ...GOOGLE_DEFAULT_CAPABILITIES,
755
+ supportsPromptCaching: true,
756
+ supportsAutoPromptCaching: true,
757
+ supportsReasoning: true,
758
+ supportsReasoningEffort: false,
759
+ supportsNativeCodeExecution: false
760
+ },
761
+ openRouterOnly: false
762
+ }
763
+ };
764
+
765
+ // src/providers/moonshotModels.ts
766
+ var MOONSHOT_DEFAULT_CAPABILITIES = {
767
+ ...DEFAULT_MODEL_CAPABILITIES,
768
+ supportsPromptCaching: false,
769
+ supportsSystemPrompt: true
770
+ };
771
+ var MOONSHOT_MODELS = {
772
+ kimi: {
773
+ name: "kimi128k",
774
+ fullName: "moonshot-v1-128k",
775
+ openrouterFullName: "moonshotai/moonshot-v1-128k",
776
+ provider: "moonshot" /* MOONSHOT */,
777
+ maxOutputTokens: 64e3,
778
+ contextWindow: 128e3,
779
+ inputPrice: 0.28,
780
+ outputPrice: 1.12,
781
+ capabilities: {
782
+ ...MOONSHOT_DEFAULT_CAPABILITIES,
783
+ supportsVision: false
784
+ },
785
+ openRouterOnly: false
786
+ },
787
+ kimiv: {
788
+ name: "kimi128kv",
789
+ fullName: "moonshot-v1-128k-vision",
790
+ openrouterFullName: "moonshotai/moonshot-v1-128k-vision",
791
+ provider: "moonshot" /* MOONSHOT */,
792
+ maxOutputTokens: 64e3,
793
+ contextWindow: 128e3,
794
+ inputPrice: 0.35,
795
+ outputPrice: 1.4,
796
+ capabilities: {
797
+ ...MOONSHOT_DEFAULT_CAPABILITIES,
798
+ supportsVision: true
799
+ },
800
+ openRouterOnly: false
801
+ },
802
+ kimit: {
803
+ name: "kimit",
804
+ fullName: "kimi-thinking-preview",
805
+ openrouterFullName: "moonshotai/kimi-thinking-preview",
806
+ provider: "moonshot" /* MOONSHOT */,
807
+ maxOutputTokens: 64e3,
808
+ contextWindow: 128e3,
809
+ inputPrice: 0.42,
810
+ outputPrice: 1.68,
811
+ capabilities: {
812
+ ...MOONSHOT_DEFAULT_CAPABILITIES,
813
+ supportsVision: true,
814
+ supportsReasoning: true
815
+ },
816
+ openRouterOnly: false
817
+ },
818
+ kimi2: {
819
+ name: "kimi2",
820
+ fullName: "kimi-k2-0905-preview",
821
+ openrouterFullName: "moonshotai/kimi-k2-0905",
822
+ provider: "moonshot" /* MOONSHOT */,
823
+ maxOutputTokens: 64e3,
824
+ contextWindow: 262144,
825
+ inputPrice: 0.6,
826
+ outputPrice: 2.5,
827
+ capabilities: {
828
+ ...MOONSHOT_DEFAULT_CAPABILITIES,
829
+ supportsVision: false,
830
+ supportsAutoPromptCaching: true,
831
+ cacheDiscountFactor: 0.25,
832
+ supportsReasoning: false
833
+ },
834
+ openRouterOnly: false
835
+ },
836
+ "kimi2+": {
837
+ name: "kimi2+",
838
+ fullName: "kimi-k2-turbo-preview",
839
+ openrouterFullName: "moonshotai/kimi-k2-turbo",
840
+ provider: "moonshot" /* MOONSHOT */,
841
+ maxOutputTokens: 64e3,
842
+ contextWindow: 262144,
843
+ inputPrice: 0.56 * 4,
844
+ outputPrice: 2.22 * 4,
845
+ capabilities: {
846
+ ...MOONSHOT_DEFAULT_CAPABILITIES,
847
+ supportsVision: false,
848
+ supportsAutoPromptCaching: true,
849
+ cacheDiscountFactor: 0.25,
850
+ supportsReasoning: false
851
+ },
852
+ openRouterOnly: false
853
+ },
854
+ kimi2T: {
855
+ name: "kimi2T",
856
+ fullName: "kimi-k2-thinking",
857
+ openrouterFullName: "moonshotai/kimi-k2-thinking",
858
+ provider: "moonshot" /* MOONSHOT */,
859
+ maxOutputTokens: 64e3,
860
+ contextWindow: 262144,
861
+ inputPrice: 0.56,
862
+ outputPrice: 2.22,
863
+ capabilities: {
864
+ ...MOONSHOT_DEFAULT_CAPABILITIES,
865
+ supportsVision: false,
866
+ supportsReasoning: true,
867
+ supportsInterleavedThinking: true,
868
+ supportsAutoPromptCaching: true,
869
+ cacheDiscountFactor: 0.25,
870
+ reasoningEffort: "high" /* HIGH */
871
+ },
872
+ openRouterOnly: false
873
+ },
874
+ "kimi2T+": {
875
+ name: "kimi2T+",
876
+ fullName: "kimi-k2-thinking-turbo",
877
+ openrouterFullName: "moonshotai/kimi-k2-thinking-turbo",
878
+ provider: "moonshot" /* MOONSHOT */,
879
+ maxOutputTokens: 64e3,
880
+ contextWindow: 262144,
881
+ inputPrice: 0.56 * 4,
882
+ outputPrice: 2.22 * 4,
883
+ capabilities: {
884
+ ...MOONSHOT_DEFAULT_CAPABILITIES,
885
+ supportsVision: false,
886
+ supportsReasoning: true,
887
+ supportsInterleavedThinking: true,
888
+ supportsAutoPromptCaching: true,
889
+ cacheDiscountFactor: 0.25,
890
+ reasoningEffort: "high" /* HIGH */
891
+ },
892
+ openRouterOnly: false
893
+ }
894
+ };
895
+
896
+ // src/providers/openaiDeepResearchModels.ts
897
+ var OPENAI_DEEP_RESEARCH_DEFAULT_CAPABILITIES = {
898
+ ...DEFAULT_MODEL_CAPABILITIES,
899
+ supportsFunctionCalling: false,
900
+ supportsAutoPromptCaching: true,
901
+ cacheDiscountFactor: 0.25,
902
+ supportsReasoning: true,
903
+ supportsIntermDevMsgs: false,
904
+ supportsVision: true,
905
+ supportsNativeWebSearch: true,
906
+ supportsNativeMCPServer: true,
907
+ supportsNativeCodeExecution: true,
908
+ supportsNativePdf: true
909
+ };
910
+ var OPENAI_DEEP_RESEARCH_MODELS = {
911
+ "o3-deep-research": {
912
+ name: "o3-deep-research",
913
+ fullName: "o3-deep-research",
914
+ openrouterFullName: "openai/o3-deep-research",
915
+ provider: "openai" /* OPENAI */,
916
+ maxOutputTokens: 1e5,
917
+ contextWindow: 2e5,
918
+ inputPrice: 10,
919
+ outputPrice: 40,
920
+ capabilities: {
921
+ ...OPENAI_DEEP_RESEARCH_DEFAULT_CAPABILITIES
922
+ },
923
+ openRouterOnly: false,
924
+ requiresResponsesAPI: true
925
+ },
926
+ "o4-mini-deep-research": {
927
+ name: "o4-mini-deep-research",
928
+ fullName: "o4-mini-deep-research",
929
+ openrouterFullName: "openai/o4-mini-deep-research",
930
+ provider: "openai" /* OPENAI */,
931
+ maxOutputTokens: 1e5,
932
+ contextWindow: 2e5,
933
+ inputPrice: 2,
934
+ outputPrice: 8,
935
+ capabilities: {
936
+ ...OPENAI_DEEP_RESEARCH_DEFAULT_CAPABILITIES
937
+ },
938
+ openRouterOnly: false,
939
+ requiresResponsesAPI: true
940
+ }
941
+ };
942
+
943
+ // src/providers/openaiModels.ts
944
+ var OPENAI_DEFAULT_CAPABILITIES = {
945
+ ...DEFAULT_MODEL_CAPABILITIES,
946
+ supportsAutoPromptCaching: true,
947
+ cacheDiscountFactor: 0.5,
948
+ supportsIntermDevMsgs: true,
949
+ supportsVision: true,
950
+ supportsNativePdf: true,
951
+ supportsNativeMCPServer: false,
952
+ supportsNativeWebSearch: false,
953
+ supportsNativeCodeExecution: false
954
+ };
955
+ var OPENAI_MODELS = {
956
+ gpt41: {
957
+ name: "gpt41",
958
+ fullName: "gpt-4.1-2025-04-14",
959
+ openrouterFullName: "openai/gpt-4.1",
960
+ provider: "openai" /* OPENAI */,
961
+ maxOutputTokens: 32768,
962
+ contextWindow: 1e6,
963
+ inputPrice: 2,
964
+ outputPrice: 8,
965
+ capabilities: {
966
+ ...OPENAI_DEFAULT_CAPABILITIES,
967
+ cacheDiscountFactor: 0.25,
968
+ supportsNativeMCPServer: true,
969
+ supportsNativeWebSearch: true,
970
+ supportsNativeCodeExecution: true,
971
+ supportsPredictiveOutput: true
972
+ },
973
+ openRouterOnly: false
974
+ },
975
+ "gpt41-": {
976
+ name: "gpt41-",
977
+ fullName: "gpt-4.1-mini-2025-04-14",
978
+ openrouterFullName: "openai/gpt-4.1-mini",
979
+ provider: "openai" /* OPENAI */,
980
+ maxOutputTokens: 32768,
981
+ contextWindow: 1e6,
982
+ inputPrice: 0.4,
983
+ outputPrice: 1.6,
984
+ capabilities: {
985
+ ...OPENAI_DEFAULT_CAPABILITIES,
986
+ cacheDiscountFactor: 0.25,
987
+ supportsNativeMCPServer: true,
988
+ supportsNativeWebSearch: true,
989
+ supportsNativeCodeExecution: true,
990
+ supportsPredictiveOutput: true
991
+ },
992
+ openRouterOnly: false
993
+ },
994
+ "gpt41--": {
995
+ name: "gpt41--",
996
+ fullName: "gpt-4.1-nano-2025-04-14",
997
+ openrouterFullName: "openai/gpt-4.1-nano",
998
+ provider: "openai" /* OPENAI */,
999
+ maxOutputTokens: 32768,
1000
+ contextWindow: 1e6,
1001
+ inputPrice: 0.1,
1002
+ outputPrice: 0.4,
1003
+ capabilities: {
1004
+ ...OPENAI_DEFAULT_CAPABILITIES,
1005
+ cacheDiscountFactor: 0.25,
1006
+ supportsNativeMCPServer: true,
1007
+ supportsNativeWebSearch: true,
1008
+ supportsNativeCodeExecution: true,
1009
+ supportsPredictiveOutput: true
1010
+ },
1011
+ openRouterOnly: false
1012
+ },
1013
+ gpt45: {
1014
+ name: "gpt45",
1015
+ fullName: "gpt-4.5-preview",
1016
+ openrouterFullName: "openai/gpt-4.5-preview",
1017
+ provider: "openai" /* OPENAI */,
1018
+ maxOutputTokens: 16384,
1019
+ contextWindow: 128e3,
1020
+ inputPrice: 75,
1021
+ outputPrice: 150,
1022
+ capabilities: {
1023
+ ...OPENAI_DEFAULT_CAPABILITIES,
1024
+ supportsPredictiveOutput: false
1025
+ },
1026
+ openRouterOnly: false
1027
+ },
1028
+ gpt4o: {
1029
+ name: "gpt4o",
1030
+ fullName: "gpt-4o-2024-11-20",
1031
+ openrouterFullName: "openai/gpt-4o-2024-11-20",
1032
+ provider: "openai" /* OPENAI */,
1033
+ maxOutputTokens: 16384,
1034
+ contextWindow: 128e3,
1035
+ inputPrice: 2.5,
1036
+ outputPrice: 10,
1037
+ capabilities: {
1038
+ ...OPENAI_DEFAULT_CAPABILITIES,
1039
+ supportsNativeMCPServer: true,
1040
+ supportsNativeWebSearch: true,
1041
+ supportsNativeCodeExecution: true,
1042
+ supportsPredictiveOutput: true
1043
+ },
1044
+ openRouterOnly: false
1045
+ },
1046
+ gpt4t: {
1047
+ name: "gpt4t",
1048
+ fullName: "gpt-4-turbo-2024-04-09",
1049
+ openrouterFullName: "openai/gpt-4-turbo-2024-04-09",
1050
+ provider: "openai" /* OPENAI */,
1051
+ maxOutputTokens: 4096,
1052
+ contextWindow: 128e3,
1053
+ inputPrice: 10,
1054
+ outputPrice: 30,
1055
+ capabilities: {
1056
+ ...OPENAI_DEFAULT_CAPABILITIES,
1057
+ supportsAutoPromptCaching: false,
1058
+ supportsReasoning: false
1059
+ },
1060
+ openRouterOnly: false
1061
+ },
1062
+ "gpt4o-": {
1063
+ name: "gpt4o-",
1064
+ fullName: "gpt-4o-mini-2024-07-18",
1065
+ openrouterFullName: "openai/gpt-4o-mini-2024-07-18",
1066
+ provider: "openai" /* OPENAI */,
1067
+ maxOutputTokens: 16384,
1068
+ contextWindow: 128e3,
1069
+ inputPrice: 0.15,
1070
+ outputPrice: 0.6,
1071
+ capabilities: {
1072
+ ...OPENAI_DEFAULT_CAPABILITIES,
1073
+ supportsPredictiveOutput: true
1074
+ },
1075
+ openRouterOnly: false
1076
+ },
1077
+ gpt4ol: {
1078
+ name: "gpt4ol",
1079
+ fullName: "chatgpt-4o-latest",
1080
+ openrouterFullName: "openai/chatgpt-4o-latest",
1081
+ provider: "openai" /* OPENAI */,
1082
+ maxOutputTokens: 16384,
1083
+ contextWindow: 128e3,
1084
+ inputPrice: 5,
1085
+ outputPrice: 15,
1086
+ capabilities: {
1087
+ ...OPENAI_DEFAULT_CAPABILITIES,
1088
+ supportsReasoning: true
1089
+ },
1090
+ openRouterOnly: false
1091
+ }
1092
+ };
1093
+
1094
+ // src/providers/openaiReasoningModels.ts
1095
+ var OPENAI_REASONING_DEFAULT_CAPABILITIES = {
1096
+ ...DEFAULT_MODEL_CAPABILITIES,
1097
+ supportsAutoPromptCaching: true,
1098
+ cacheDiscountFactor: 0.5,
1099
+ supportsReasoning: true,
1100
+ supportsIntermDevMsgs: true,
1101
+ reasoningEffort: "high" /* HIGH */,
1102
+ supportsReasoningEffort: true
1103
+ };
1104
+ var OPENAI_REASONING_MODELS = {
1105
+ "o4-": {
1106
+ name: "o4-",
1107
+ fullName: "o4-mini-2025-04-16",
1108
+ openrouterFullName: "openai/o4-mini-high",
1109
+ provider: "openai" /* OPENAI */,
1110
+ maxOutputTokens: 1e5,
1111
+ contextWindow: 2e5,
1112
+ inputPrice: 1,
1113
+ outputPrice: 4.4,
1114
+ capabilities: {
1115
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1116
+ cacheDiscountFactor: 0.25,
1117
+ supportsNativeWebSearch: true,
1118
+ supportsNativeMCPServer: true,
1119
+ supportsNativeCodeExecution: true,
1120
+ supportsNativePdf: true,
1121
+ supportsVision: true
1122
+ },
1123
+ openRouterOnly: false
1124
+ },
1125
+ o3pro: {
1126
+ name: "o3pro",
1127
+ fullName: "o3-pro-2025-06-10",
1128
+ openrouterFullName: "openai/o3-pro",
1129
+ provider: "openai" /* OPENAI */,
1130
+ maxOutputTokens: 1e5,
1131
+ contextWindow: 2e5,
1132
+ inputPrice: 20,
1133
+ outputPrice: 80,
1134
+ capabilities: {
1135
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1136
+ supportsNativeWebSearch: true,
1137
+ supportsNativeMCPServer: true,
1138
+ supportsAutoPromptCaching: false,
1139
+ supportsNativePdf: true,
1140
+ supportsVision: true
1141
+ },
1142
+ openRouterOnly: false
1143
+ },
1144
+ o3: {
1145
+ name: "o3",
1146
+ fullName: "o3-2025-04-16",
1147
+ openrouterFullName: "openai/o3",
1148
+ provider: "openai" /* OPENAI */,
1149
+ maxOutputTokens: 1e5,
1150
+ contextWindow: 2e5,
1151
+ inputPrice: 2,
1152
+ outputPrice: 8,
1153
+ capabilities: {
1154
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1155
+ cacheDiscountFactor: 0.25,
1156
+ supportsNativeWebSearch: true,
1157
+ supportsNativeMCPServer: true,
1158
+ supportsNativeCodeExecution: true,
1159
+ supportsNativePdf: true,
1160
+ supportsVision: true
1161
+ },
1162
+ openRouterOnly: false
1163
+ },
1164
+ "o3-": {
1165
+ name: "o3-",
1166
+ fullName: "o3-mini-2025-01-31",
1167
+ openrouterFullName: "openai/o3-mini-2025-01-31",
1168
+ provider: "openai" /* OPENAI */,
1169
+ maxOutputTokens: 1e5,
1170
+ contextWindow: 2e5,
1171
+ inputPrice: 1.1,
1172
+ outputPrice: 4.4,
1173
+ capabilities: {
1174
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1175
+ supportsNativeMCPServer: true,
1176
+ supportsNativeCodeExecution: true,
1177
+ supportsVision: false
1178
+ },
1179
+ openRouterOnly: false
1180
+ },
1181
+ o1pro: {
1182
+ name: "o1pro",
1183
+ fullName: "o1-pro-2025-03-19",
1184
+ openrouterFullName: "openai/o1-pro-2025-03-19",
1185
+ provider: "openai" /* OPENAI */,
1186
+ maxOutputTokens: 1e5,
1187
+ contextWindow: 2e5,
1188
+ inputPrice: 150,
1189
+ outputPrice: 600,
1190
+ capabilities: {
1191
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1192
+ supportsNativeMCPServer: true,
1193
+ supportsVision: true
1194
+ },
1195
+ openRouterOnly: false
1196
+ },
1197
+ o1: {
1198
+ name: "o1",
1199
+ fullName: "o1-2024-12-17",
1200
+ openrouterFullName: "openai/o1-2024-12-17",
1201
+ provider: "openai" /* OPENAI */,
1202
+ maxOutputTokens: 1e5,
1203
+ contextWindow: 2e5,
1204
+ inputPrice: 15,
1205
+ outputPrice: 60,
1206
+ capabilities: {
1207
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1208
+ supportsNativeMCPServer: true,
1209
+ supportsVision: true,
1210
+ supportsNativePdf: true
1211
+ },
1212
+ openRouterOnly: false
1213
+ },
1214
+ o1preview: {
1215
+ name: "o1preview",
1216
+ fullName: "o1-preview-2024-09-12",
1217
+ openrouterFullName: "openai/o1-preview-2024-09-12",
1218
+ provider: "openai" /* OPENAI */,
1219
+ maxOutputTokens: 32768,
1220
+ contextWindow: 128e3,
1221
+ inputPrice: 15,
1222
+ outputPrice: 60,
1223
+ capabilities: {
1224
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1225
+ supportsVision: false,
1226
+ supportsSystemPrompt: false
1227
+ },
1228
+ openRouterOnly: false
1229
+ },
1230
+ "o1-": {
1231
+ name: "o1-",
1232
+ fullName: "o1-mini-2024-09-12",
1233
+ openrouterFullName: "openai/o1-mini-2024-09-12",
1234
+ provider: "openai" /* OPENAI */,
1235
+ maxOutputTokens: 65536,
1236
+ contextWindow: 128e3,
1237
+ inputPrice: 1.1,
1238
+ outputPrice: 4.4,
1239
+ capabilities: {
1240
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1241
+ supportsVision: false,
1242
+ supportsSystemPrompt: false
1243
+ },
1244
+ openRouterOnly: false
1245
+ },
1246
+ gptoss: {
1247
+ name: "gptoss",
1248
+ fullName: "gpt-oss-120b",
1249
+ openrouterFullName: "openai/gpt-oss-120b",
1250
+ provider: "openai" /* OPENAI */,
1251
+ maxOutputTokens: 33e3,
1252
+ contextWindow: 131072,
1253
+ inputPrice: 0.15,
1254
+ outputPrice: 0.6,
1255
+ capabilities: {
1256
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1257
+ supportsVision: false
1258
+ },
1259
+ openRouterOnly: true
1260
+ },
1261
+ "gptoss-": {
1262
+ name: "gptoss-",
1263
+ fullName: "gpt-oss-20b",
1264
+ openrouterFullName: "openai/gpt-oss-20b",
1265
+ provider: "openai" /* OPENAI */,
1266
+ maxOutputTokens: 33e3,
1267
+ contextWindow: 131072,
1268
+ inputPrice: 0.05,
1269
+ outputPrice: 0.2,
1270
+ capabilities: {
1271
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1272
+ supportsVision: false
1273
+ },
1274
+ openRouterOnly: true
1275
+ },
1276
+ gpt5pro: {
1277
+ name: "gpt5pro",
1278
+ fullName: "gpt-5-pro-2025-10-06",
1279
+ openrouterFullName: "openai/gpt-5-pro-2025-10-06",
1280
+ provider: "openai" /* OPENAI */,
1281
+ maxOutputTokens: 272e3,
1282
+ contextWindow: 4e5,
1283
+ inputPrice: 15,
1284
+ outputPrice: 120,
1285
+ capabilities: {
1286
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1287
+ supportsAutoPromptCaching: false,
1288
+ supportsNativeMCPServer: true,
1289
+ supportsNativeWebSearch: true,
1290
+ supportsNativeCodeExecution: true,
1291
+ supportsPredictiveOutput: true,
1292
+ supportsVision: true,
1293
+ supportsNativePdf: true
1294
+ },
1295
+ openRouterOnly: false
1296
+ },
1297
+ gpt5: {
1298
+ name: "gpt5",
1299
+ fullName: "gpt-5-2025-08-07",
1300
+ openrouterFullName: "openai/gpt-5-2025-08-07",
1301
+ provider: "openai" /* OPENAI */,
1302
+ maxOutputTokens: 128e3,
1303
+ contextWindow: 4e5,
1304
+ inputPrice: 1.25,
1305
+ outputPrice: 10,
1306
+ capabilities: {
1307
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1308
+ cacheDiscountFactor: 0.1,
1309
+ supportsNativeMCPServer: true,
1310
+ supportsNativeWebSearch: true,
1311
+ supportsNativeCodeExecution: true,
1312
+ supportsPredictiveOutput: true,
1313
+ supportsVision: true,
1314
+ supportsNativePdf: true
1315
+ },
1316
+ openRouterOnly: false
1317
+ },
1318
+ gpt51: {
1319
+ name: "gpt51",
1320
+ fullName: "gpt-5.1-2025-11-13",
1321
+ openrouterFullName: "openai/gpt-5.1-2025-11-13",
1322
+ provider: "openai" /* OPENAI */,
1323
+ maxOutputTokens: 128e3,
1324
+ contextWindow: 4e5,
1325
+ inputPrice: 1.25,
1326
+ outputPrice: 10,
1327
+ capabilities: {
1328
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1329
+ cacheDiscountFactor: 0.1,
1330
+ reasoningEffort: "high" /* HIGH */,
1331
+ supportsNativeMCPServer: true,
1332
+ supportsNativeWebSearch: true,
1333
+ supportsNativeCodeExecution: true,
1334
+ supportsPredictiveOutput: true,
1335
+ supportsVision: true,
1336
+ supportsNativePdf: true
1337
+ },
1338
+ openRouterOnly: false
1339
+ },
1340
+ gpt52pro: {
1341
+ name: "gpt52pro",
1342
+ fullName: "gpt-5.2-pro-2025-12-11",
1343
+ openrouterFullName: "openai/gpt-5.2-pro",
1344
+ provider: "openai" /* OPENAI */,
1345
+ maxOutputTokens: 128e3,
1346
+ contextWindow: 4e5,
1347
+ inputPrice: 21,
1348
+ outputPrice: 168,
1349
+ capabilities: {
1350
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1351
+ supportsAutoPromptCaching: false,
1352
+ supportsNativeMCPServer: true,
1353
+ supportsNativeWebSearch: true,
1354
+ supportsNativeCodeExecution: true,
1355
+ supportsVision: true,
1356
+ supportsNativePdf: true,
1357
+ reasoningEffort: "xhigh" /* XHIGH */
1358
+ },
1359
+ requiresResponsesAPI: true,
1360
+ openRouterOnly: false
1361
+ },
1362
+ gpt52: {
1363
+ name: "gpt52",
1364
+ fullName: "gpt-5.2-2025-12-11",
1365
+ openrouterFullName: "openai/gpt-5.2",
1366
+ provider: "openai" /* OPENAI */,
1367
+ maxOutputTokens: 128e3,
1368
+ contextWindow: 4e5,
1369
+ inputPrice: 1.75,
1370
+ outputPrice: 14,
1371
+ capabilities: {
1372
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1373
+ cacheDiscountFactor: 0.1,
1374
+ reasoningEffort: "xhigh" /* XHIGH */,
1375
+ supportsNativeMCPServer: true,
1376
+ supportsNativeWebSearch: true,
1377
+ supportsNativeCodeExecution: true,
1378
+ supportsVision: true,
1379
+ supportsNativePdf: true
1380
+ },
1381
+ openRouterOnly: false
1382
+ },
1383
+ "gpt5-": {
1384
+ name: "gpt5-",
1385
+ fullName: "gpt-5-mini-2025-08-07",
1386
+ openrouterFullName: "openai/gpt-5-mini-2025-08-07",
1387
+ provider: "openai" /* OPENAI */,
1388
+ maxOutputTokens: 128e3,
1389
+ contextWindow: 4e5,
1390
+ inputPrice: 0.25,
1391
+ outputPrice: 2,
1392
+ capabilities: {
1393
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1394
+ cacheDiscountFactor: 0.1,
1395
+ supportsNativeMCPServer: true,
1396
+ supportsNativeWebSearch: true,
1397
+ supportsNativeCodeExecution: true,
1398
+ supportsPredictiveOutput: true,
1399
+ supportsVision: true,
1400
+ supportsNativePdf: true
1401
+ },
1402
+ openRouterOnly: false
1403
+ },
1404
+ "gpt5--": {
1405
+ name: "gpt5--",
1406
+ fullName: "gpt-5-nano-2025-08-07",
1407
+ openrouterFullName: "openai/gpt-5-nano-2025-08-07",
1408
+ provider: "openai" /* OPENAI */,
1409
+ maxOutputTokens: 128e3,
1410
+ contextWindow: 4e5,
1411
+ inputPrice: 0.05,
1412
+ outputPrice: 0.4,
1413
+ capabilities: {
1414
+ ...OPENAI_REASONING_DEFAULT_CAPABILITIES,
1415
+ cacheDiscountFactor: 0.1,
1416
+ supportsNativeMCPServer: true,
1417
+ supportsNativeWebSearch: true,
1418
+ supportsNativeCodeExecution: true,
1419
+ supportsPredictiveOutput: true,
1420
+ supportsVision: true,
1421
+ supportsNativePdf: true
1422
+ },
1423
+ openRouterOnly: false
1424
+ }
1425
+ };
1426
+
1427
+ // src/providers/otherModels.ts
1428
+ var OTHER_DEFAULT_CAPABILITIES = {
1429
+ ...DEFAULT_MODEL_CAPABILITIES
1430
+ };
1431
+ var OTHER_MODELS = {
1432
+ llama31: {
1433
+ name: "llama31",
1434
+ fullName: "meta-llama/llama-3.1-405b-instruct",
1435
+ openrouterFullName: "meta-llama/llama-3.1-405b-instruct",
1436
+ provider: "others" /* OTHERS */,
1437
+ maxOutputTokens: 131072,
1438
+ contextWindow: 131072,
1439
+ inputPrice: 3,
1440
+ outputPrice: 3,
1441
+ capabilities: OTHER_DEFAULT_CAPABILITIES,
1442
+ openRouterOnly: true
1443
+ },
1444
+ "qvq-72b": {
1445
+ name: "qvq-72b",
1446
+ fullName: "qwen/qvq-72b-preview",
1447
+ openrouterFullName: "qwen/qvq-72b-preview",
1448
+ provider: "others" /* OTHERS */,
1449
+ maxOutputTokens: 4096,
1450
+ contextWindow: 128e3,
1451
+ inputPrice: 0.25,
1452
+ outputPrice: 0.5,
1453
+ capabilities: {
1454
+ ...OTHER_DEFAULT_CAPABILITIES
1455
+ },
1456
+ openRouterOnly: true
1457
+ }
1458
+ };
1459
+
1460
+ // src/providers/xaiModels.ts
1461
+ var XAI_DEFAULT_CAPABILITIES = {
1462
+ ...DEFAULT_MODEL_CAPABILITIES,
1463
+ supportsVision: false
1464
+ };
1465
+ var XAI_MODELS = {
1466
+ grok4: {
1467
+ name: "grok4",
1468
+ fullName: "grok-4-0709",
1469
+ openrouterFullName: "x-ai/grok-4-0709",
1470
+ provider: "xai" /* XAI */,
1471
+ maxOutputTokens: 128e3,
1472
+ contextWindow: 256e3,
1473
+ inputPrice: 3,
1474
+ outputPrice: 15,
1475
+ capabilities: {
1476
+ ...XAI_DEFAULT_CAPABILITIES,
1477
+ supportsReasoning: true,
1478
+ supportsReasoningEffort: false
1479
+ },
1480
+ openRouterOnly: false
1481
+ },
1482
+ grok3: {
1483
+ name: "grok3",
1484
+ fullName: "grok-3-beta",
1485
+ openrouterFullName: "x-ai/grok-3",
1486
+ provider: "xai" /* XAI */,
1487
+ maxOutputTokens: 131072,
1488
+ contextWindow: 131072,
1489
+ inputPrice: 3,
1490
+ outputPrice: 15,
1491
+ capabilities: {
1492
+ ...XAI_DEFAULT_CAPABILITIES,
1493
+ supportsReasoning: false,
1494
+ supportsReasoningEffort: false
1495
+ },
1496
+ openRouterOnly: false
1497
+ },
1498
+ "grok3-": {
1499
+ name: "grok3-",
1500
+ fullName: "grok-3-mini-beta",
1501
+ openrouterFullName: "x-ai/grok-3-mini-beta",
1502
+ provider: "xai" /* XAI */,
1503
+ maxOutputTokens: 131072,
1504
+ contextWindow: 131072,
1505
+ inputPrice: 0.3,
1506
+ outputPrice: 0.5,
1507
+ capabilities: {
1508
+ ...XAI_DEFAULT_CAPABILITIES,
1509
+ supportsReasoning: true,
1510
+ supportsReasoningEffort: true,
1511
+ reasoningEffort: "low" /* LOW */
1512
+ },
1513
+ openRouterOnly: false
1514
+ },
1515
+ grok2: {
1516
+ name: "grok2",
1517
+ fullName: "grok-2-1212",
1518
+ openrouterFullName: "grok-ai/grok-2-1212",
1519
+ provider: "xai" /* XAI */,
1520
+ maxOutputTokens: 131072,
1521
+ contextWindow: 131072,
1522
+ inputPrice: 2,
1523
+ outputPrice: 10,
1524
+ capabilities: XAI_DEFAULT_CAPABILITIES,
1525
+ openRouterOnly: false
1526
+ },
1527
+ grok2v: {
1528
+ name: "grok2v",
1529
+ fullName: "grok-2-1212-vision",
1530
+ openrouterFullName: "grok-ai/grok-2-1212-vision",
1531
+ provider: "xai" /* XAI */,
1532
+ maxOutputTokens: 32768,
1533
+ contextWindow: 32768,
1534
+ inputPrice: 2,
1535
+ outputPrice: 10,
1536
+ capabilities: {
1537
+ ...XAI_DEFAULT_CAPABILITIES,
1538
+ supportsVision: true
1539
+ },
1540
+ openRouterOnly: false
1541
+ }
1542
+ };
1543
+
1544
+ // src/ModelRegistry.ts
1545
+ var MODEL_CONFIGS = {
1546
+ ...ANTHROPIC_MODELS,
1547
+ ...OPENAI_DEEP_RESEARCH_MODELS,
1548
+ ...OPENAI_REASONING_MODELS,
1549
+ ...OPENAI_MODELS,
1550
+ ...GOOGLE_MODELS,
1551
+ ...XAI_MODELS,
1552
+ ...OTHER_MODELS,
1553
+ ...DEEPSEEK_MODELS,
1554
+ ...MOONSHOT_MODELS,
1555
+ ...DASHSCOPE_MODELS,
1556
+ ...COPILOT_MODELS
1557
+ };
1558
+ var MODELS = Object.keys(MODEL_CONFIGS);
1559
+
1560
+ // src/utils.ts
1561
+ function lookup(name) {
1562
+ return MODEL_CONFIGS[name];
1563
+ }
1564
+ function resolve(fullName) {
1565
+ return Object.values(MODEL_CONFIGS).find((m) => m.fullName === fullName);
1566
+ }
1567
+ function exists(name) {
1568
+ return name in MODEL_CONFIGS;
1569
+ }
1570
+ function from(provider) {
1571
+ return Object.values(MODEL_CONFIGS).filter((m) => m.provider === provider);
1572
+ }
1573
+ function where(predicate) {
1574
+ return Object.values(MODEL_CONFIGS).filter((m) => predicate(m.capabilities));
1575
+ }
1576
+ function supporting(capability) {
1577
+ return Object.values(MODEL_CONFIGS).filter((m) => {
1578
+ const value = m.capabilities[capability];
1579
+ return typeof value === "boolean" ? value : value !== void 0;
1580
+ });
1581
+ }
1582
+ function withContext(minTokens) {
1583
+ return Object.values(MODEL_CONFIGS).filter(
1584
+ (m) => m.contextWindow >= minTokens
1585
+ );
1586
+ }
1587
+ function directAccess() {
1588
+ return Object.values(MODEL_CONFIGS).filter((m) => !m.openRouterOnly);
1589
+ }
1590
+ function openRouterOnly() {
1591
+ return Object.values(MODEL_CONFIGS).filter((m) => m.openRouterOnly);
1592
+ }
1593
+ function cost(model, tokens) {
1594
+ const config = typeof model === "string" ? lookup(model) : model;
1595
+ if (!config) {
1596
+ throw new Error(`Unknown model: ${model}`);
1597
+ }
1598
+ const { input, output, cached = 0 } = tokens;
1599
+ const uncached = input - cached;
1600
+ const inputCost = uncached / 1e6 * config.inputPrice;
1601
+ const cacheCost = cached / 1e6 * config.inputPrice * config.capabilities.cacheDiscountFactor;
1602
+ const outputCost = output / 1e6 * config.outputPrice;
1603
+ return inputCost + cacheCost + outputCost;
1604
+ }
1605
+ function maxCost(model, inputTokens) {
1606
+ const config = typeof model === "string" ? lookup(model) : model;
1607
+ if (!config) {
1608
+ throw new Error(`Unknown model: ${model}`);
1609
+ }
1610
+ return cost(config, { input: inputTokens, output: config.maxOutputTokens });
1611
+ }
1612
+ function compareCosts(models, tokens) {
1613
+ return models.map((m) => {
1614
+ const config = typeof m === "string" ? lookup(m) : m;
1615
+ if (!config) throw new Error(`Unknown model: ${m}`);
1616
+ return { model: config, cost: cost(config, tokens) };
1617
+ }).sort((a, b) => a.cost - b.cost);
1618
+ }
1619
+ function cheapest(capabilities, options) {
1620
+ const candidates = Object.values(MODEL_CONFIGS).filter((m) => {
1621
+ if (options?.minContext && m.contextWindow < options.minContext) {
1622
+ return false;
1623
+ }
1624
+ if (options?.provider && m.provider !== options.provider) {
1625
+ return false;
1626
+ }
1627
+ for (const [key, value] of Object.entries(capabilities)) {
1628
+ if (m.capabilities[key] !== value) {
1629
+ return false;
1630
+ }
1631
+ }
1632
+ return true;
1633
+ });
1634
+ if (candidates.length === 0) return void 0;
1635
+ return candidates.sort(
1636
+ (a, b) => a.inputPrice + a.outputPrice - (b.inputPrice + b.outputPrice)
1637
+ )[0];
1638
+ }
1639
+ function smartpick(maxPricePerMillion, capabilities) {
1640
+ let candidates = Object.values(MODEL_CONFIGS).filter(
1641
+ (m) => m.inputPrice + m.outputPrice <= maxPricePerMillion
1642
+ );
1643
+ if (capabilities) {
1644
+ candidates = candidates.filter((m) => {
1645
+ for (const [key, value] of Object.entries(capabilities)) {
1646
+ if (m.capabilities[key] !== value) {
1647
+ return false;
1648
+ }
1649
+ }
1650
+ return true;
1651
+ });
1652
+ }
1653
+ if (candidates.length === 0) return void 0;
1654
+ return candidates.sort(
1655
+ (a, b) => b.inputPrice + b.outputPrice - (a.inputPrice + a.outputPrice)
1656
+ )[0];
1657
+ }
1658
+ function ranked(by, order = "asc") {
1659
+ const getValue = (m) => {
1660
+ switch (by) {
1661
+ case "price":
1662
+ return m.inputPrice + m.outputPrice;
1663
+ case "context":
1664
+ return m.contextWindow;
1665
+ case "output":
1666
+ return m.maxOutputTokens;
1667
+ }
1668
+ };
1669
+ return Object.values(MODEL_CONFIGS).sort((a, b) => {
1670
+ const diff = getValue(a) - getValue(b);
1671
+ return order === "asc" ? diff : -diff;
1672
+ });
1673
+ }
1674
+ function insights() {
1675
+ const models = Object.values(MODEL_CONFIGS);
1676
+ const providers = {};
1677
+ for (const provider of Object.values(ModelProvider)) {
1678
+ providers[provider] = models.filter((m) => m.provider === provider).length;
1679
+ }
1680
+ const capabilityKeys = [
1681
+ "supportsFunctionCalling",
1682
+ "supportsReasoning",
1683
+ "supportsVision",
1684
+ "supportsNativeCodeExecution",
1685
+ "supportsNativeWebSearch",
1686
+ "supportsPromptCaching",
1687
+ "supportsNativePdf",
1688
+ "supportsNativeAudio"
1689
+ ];
1690
+ const capabilities = {};
1691
+ for (const key of capabilityKeys) {
1692
+ const shortKey = key.replace("supports", "").replace("Native", "");
1693
+ capabilities[shortKey] = models.filter(
1694
+ (m) => m.capabilities[key]
1695
+ ).length;
1696
+ }
1697
+ const byPrice = [...models].sort(
1698
+ (a, b) => a.inputPrice + a.outputPrice - (b.inputPrice + b.outputPrice)
1699
+ );
1700
+ const byContext = [...models].sort((a, b) => a.contextWindow - b.contextWindow);
1701
+ return {
1702
+ totalModels: models.length,
1703
+ providers,
1704
+ capabilities,
1705
+ pricing: {
1706
+ cheapest: byPrice[0],
1707
+ mostExpensive: byPrice[byPrice.length - 1]
1708
+ },
1709
+ context: {
1710
+ smallest: byContext[0],
1711
+ largest: byContext[byContext.length - 1]
1712
+ }
1713
+ };
1714
+ }
1715
+ var getModel = lookup;
1716
+ var getModelByFullName = resolve;
1717
+ var hasModel = exists;
1718
+ var getModelsByProvider = from;
1719
+ var filterByCapability = where;
1720
+ var getModelsWithCapability = supporting;
1721
+ function calculateCost(model, inputTokens, outputTokens, cachedInputTokens = 0) {
1722
+ return cost(model, { input: inputTokens, output: outputTokens, cached: cachedInputTokens });
1723
+ }
1724
+ var estimateMaxCost = maxCost;
1725
+ function sortModelsByMetric(metric, ascending = true) {
1726
+ return ranked(metric, ascending ? "asc" : "desc");
1727
+ }
1728
+ function findCheapestModel(requirements, minContextWindow) {
1729
+ return cheapest(requirements, minContextWindow !== void 0 ? { minContext: minContextWindow } : {});
1730
+ }
1731
+ var getRegistryStats = insights;
1732
+
1733
+ exports.ANTHROPIC_MODELS = ANTHROPIC_MODELS;
1734
+ exports.COPILOT_MODELS = COPILOT_MODELS;
1735
+ exports.DASHSCOPE_MODELS = DASHSCOPE_MODELS;
1736
+ exports.DEEPSEEK_MODELS = DEEPSEEK_MODELS;
1737
+ exports.DEFAULT_CONTEXT_WINDOW = DEFAULT_CONTEXT_WINDOW;
1738
+ exports.DEFAULT_MODEL_CAPABILITIES = DEFAULT_MODEL_CAPABILITIES;
1739
+ exports.GOOGLE_MODELS = GOOGLE_MODELS;
1740
+ exports.MODELS = MODELS;
1741
+ exports.MODEL_CONFIGS = MODEL_CONFIGS;
1742
+ exports.MOONSHOT_MODELS = MOONSHOT_MODELS;
1743
+ exports.ModelProvider = ModelProvider;
1744
+ exports.OPENAI_DEEP_RESEARCH_MODELS = OPENAI_DEEP_RESEARCH_MODELS;
1745
+ exports.OPENAI_MODELS = OPENAI_MODELS;
1746
+ exports.OPENAI_REASONING_MODELS = OPENAI_REASONING_MODELS;
1747
+ exports.OTHER_MODELS = OTHER_MODELS;
1748
+ exports.ReasoningEffort = ReasoningEffort;
1749
+ exports.XAI_MODELS = XAI_MODELS;
1750
+ exports.calculateCost = calculateCost;
1751
+ exports.cheapest = cheapest;
1752
+ exports.compareCosts = compareCosts;
1753
+ exports.cost = cost;
1754
+ exports.directAccess = directAccess;
1755
+ exports.estimateMaxCost = estimateMaxCost;
1756
+ exports.exists = exists;
1757
+ exports.filterByCapability = filterByCapability;
1758
+ exports.findCheapestModel = findCheapestModel;
1759
+ exports.from = from;
1760
+ exports.getModel = getModel;
1761
+ exports.getModelByFullName = getModelByFullName;
1762
+ exports.getModelsByProvider = getModelsByProvider;
1763
+ exports.getModelsWithCapability = getModelsWithCapability;
1764
+ exports.getRegistryStats = getRegistryStats;
1765
+ exports.hasModel = hasModel;
1766
+ exports.insights = insights;
1767
+ exports.lookup = lookup;
1768
+ exports.maxCost = maxCost;
1769
+ exports.openRouterOnly = openRouterOnly;
1770
+ exports.ranked = ranked;
1771
+ exports.resolve = resolve;
1772
+ exports.smartpick = smartpick;
1773
+ exports.sortModelsByMetric = sortModelsByMetric;
1774
+ exports.supporting = supporting;
1775
+ exports.where = where;
1776
+ exports.withContext = withContext;
1777
+ //# sourceMappingURL=index.cjs.map
1778
+ //# sourceMappingURL=index.cjs.map