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