@oh-my-pi/pi-ai 3.20.0 → 3.34.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/README.md +69 -12
- package/package.json +3 -10
- package/src/cli.ts +89 -89
- package/src/index.ts +2 -2
- package/src/models.generated.ts +871 -151
- package/src/models.ts +11 -17
- package/src/providers/anthropic.ts +92 -28
- package/src/providers/google-gemini-cli.ts +268 -133
- package/src/providers/google-shared.ts +48 -5
- package/src/providers/google-vertex.ts +13 -3
- package/src/providers/google.ts +13 -3
- package/src/providers/openai-codex/index.ts +7 -0
- package/src/providers/openai-codex/prompts/codex.ts +26 -59
- package/src/providers/openai-codex/prompts/pi-codex-bridge.ts +38 -31
- package/src/providers/openai-codex/prompts/system-prompt.ts +26 -0
- package/src/providers/openai-codex/request-transformer.ts +38 -203
- package/src/providers/openai-codex-responses.ts +91 -24
- package/src/providers/openai-completions.ts +33 -26
- package/src/providers/openai-responses.ts +1 -1
- package/src/providers/transorm-messages.ts +4 -3
- package/src/stream.ts +34 -25
- package/src/types.ts +21 -4
- package/src/utils/oauth/github-copilot.ts +38 -3
- package/src/utils/oauth/google-antigravity.ts +146 -55
- package/src/utils/oauth/google-gemini-cli.ts +146 -55
- package/src/utils/oauth/index.ts +5 -5
- package/src/utils/oauth/openai-codex.ts +129 -54
- package/src/utils/overflow.ts +1 -1
- package/src/bun-imports.d.ts +0 -14
package/src/models.generated.ts
CHANGED
|
@@ -415,6 +415,23 @@ export const MODELS = {
|
|
|
415
415
|
contextWindow: 131072,
|
|
416
416
|
maxTokens: 40960,
|
|
417
417
|
} satisfies Model<"openai-completions">,
|
|
418
|
+
"zai-glm-4.7": {
|
|
419
|
+
id: "zai-glm-4.7",
|
|
420
|
+
name: "Z.AI GLM-4.7",
|
|
421
|
+
api: "openai-completions",
|
|
422
|
+
provider: "cerebras",
|
|
423
|
+
baseUrl: "https://api.cerebras.ai/v1",
|
|
424
|
+
reasoning: false,
|
|
425
|
+
input: ["text"],
|
|
426
|
+
cost: {
|
|
427
|
+
input: 0,
|
|
428
|
+
output: 0,
|
|
429
|
+
cacheRead: 0,
|
|
430
|
+
cacheWrite: 0,
|
|
431
|
+
},
|
|
432
|
+
contextWindow: 131072,
|
|
433
|
+
maxTokens: 40000,
|
|
434
|
+
} satisfies Model<"openai-completions">,
|
|
418
435
|
},
|
|
419
436
|
"github-copilot": {
|
|
420
437
|
"claude-haiku-4.5": {
|
|
@@ -1337,6 +1354,195 @@ export const MODELS = {
|
|
|
1337
1354
|
maxTokens: 65535,
|
|
1338
1355
|
} satisfies Model<"google-gemini-cli">,
|
|
1339
1356
|
},
|
|
1357
|
+
"google-vertex": {
|
|
1358
|
+
"gemini-1.5-flash": {
|
|
1359
|
+
id: "gemini-1.5-flash",
|
|
1360
|
+
name: "Gemini 1.5 Flash (Vertex)",
|
|
1361
|
+
api: "google-vertex",
|
|
1362
|
+
provider: "google-vertex",
|
|
1363
|
+
baseUrl: "https://{location}-aiplatform.googleapis.com",
|
|
1364
|
+
reasoning: false,
|
|
1365
|
+
input: ["text", "image"],
|
|
1366
|
+
cost: {
|
|
1367
|
+
input: 0.075,
|
|
1368
|
+
output: 0.3,
|
|
1369
|
+
cacheRead: 0.01875,
|
|
1370
|
+
cacheWrite: 0,
|
|
1371
|
+
},
|
|
1372
|
+
contextWindow: 1000000,
|
|
1373
|
+
maxTokens: 8192,
|
|
1374
|
+
} satisfies Model<"google-vertex">,
|
|
1375
|
+
"gemini-1.5-flash-8b": {
|
|
1376
|
+
id: "gemini-1.5-flash-8b",
|
|
1377
|
+
name: "Gemini 1.5 Flash-8B (Vertex)",
|
|
1378
|
+
api: "google-vertex",
|
|
1379
|
+
provider: "google-vertex",
|
|
1380
|
+
baseUrl: "https://{location}-aiplatform.googleapis.com",
|
|
1381
|
+
reasoning: false,
|
|
1382
|
+
input: ["text", "image"],
|
|
1383
|
+
cost: {
|
|
1384
|
+
input: 0.0375,
|
|
1385
|
+
output: 0.15,
|
|
1386
|
+
cacheRead: 0.01,
|
|
1387
|
+
cacheWrite: 0,
|
|
1388
|
+
},
|
|
1389
|
+
contextWindow: 1000000,
|
|
1390
|
+
maxTokens: 8192,
|
|
1391
|
+
} satisfies Model<"google-vertex">,
|
|
1392
|
+
"gemini-1.5-pro": {
|
|
1393
|
+
id: "gemini-1.5-pro",
|
|
1394
|
+
name: "Gemini 1.5 Pro (Vertex)",
|
|
1395
|
+
api: "google-vertex",
|
|
1396
|
+
provider: "google-vertex",
|
|
1397
|
+
baseUrl: "https://{location}-aiplatform.googleapis.com",
|
|
1398
|
+
reasoning: false,
|
|
1399
|
+
input: ["text", "image"],
|
|
1400
|
+
cost: {
|
|
1401
|
+
input: 1.25,
|
|
1402
|
+
output: 5,
|
|
1403
|
+
cacheRead: 0.3125,
|
|
1404
|
+
cacheWrite: 0,
|
|
1405
|
+
},
|
|
1406
|
+
contextWindow: 1000000,
|
|
1407
|
+
maxTokens: 8192,
|
|
1408
|
+
} satisfies Model<"google-vertex">,
|
|
1409
|
+
"gemini-2.0-flash": {
|
|
1410
|
+
id: "gemini-2.0-flash",
|
|
1411
|
+
name: "Gemini 2.0 Flash (Vertex)",
|
|
1412
|
+
api: "google-vertex",
|
|
1413
|
+
provider: "google-vertex",
|
|
1414
|
+
baseUrl: "https://{location}-aiplatform.googleapis.com",
|
|
1415
|
+
reasoning: false,
|
|
1416
|
+
input: ["text", "image"],
|
|
1417
|
+
cost: {
|
|
1418
|
+
input: 0.15,
|
|
1419
|
+
output: 0.6,
|
|
1420
|
+
cacheRead: 0.0375,
|
|
1421
|
+
cacheWrite: 0,
|
|
1422
|
+
},
|
|
1423
|
+
contextWindow: 1048576,
|
|
1424
|
+
maxTokens: 8192,
|
|
1425
|
+
} satisfies Model<"google-vertex">,
|
|
1426
|
+
"gemini-2.0-flash-lite": {
|
|
1427
|
+
id: "gemini-2.0-flash-lite",
|
|
1428
|
+
name: "Gemini 2.0 Flash Lite (Vertex)",
|
|
1429
|
+
api: "google-vertex",
|
|
1430
|
+
provider: "google-vertex",
|
|
1431
|
+
baseUrl: "https://{location}-aiplatform.googleapis.com",
|
|
1432
|
+
reasoning: true,
|
|
1433
|
+
input: ["text", "image"],
|
|
1434
|
+
cost: {
|
|
1435
|
+
input: 0.075,
|
|
1436
|
+
output: 0.3,
|
|
1437
|
+
cacheRead: 0.01875,
|
|
1438
|
+
cacheWrite: 0,
|
|
1439
|
+
},
|
|
1440
|
+
contextWindow: 1048576,
|
|
1441
|
+
maxTokens: 65536,
|
|
1442
|
+
} satisfies Model<"google-vertex">,
|
|
1443
|
+
"gemini-2.5-flash": {
|
|
1444
|
+
id: "gemini-2.5-flash",
|
|
1445
|
+
name: "Gemini 2.5 Flash (Vertex)",
|
|
1446
|
+
api: "google-vertex",
|
|
1447
|
+
provider: "google-vertex",
|
|
1448
|
+
baseUrl: "https://{location}-aiplatform.googleapis.com",
|
|
1449
|
+
reasoning: true,
|
|
1450
|
+
input: ["text", "image"],
|
|
1451
|
+
cost: {
|
|
1452
|
+
input: 0.3,
|
|
1453
|
+
output: 2.5,
|
|
1454
|
+
cacheRead: 0.03,
|
|
1455
|
+
cacheWrite: 0,
|
|
1456
|
+
},
|
|
1457
|
+
contextWindow: 1048576,
|
|
1458
|
+
maxTokens: 65536,
|
|
1459
|
+
} satisfies Model<"google-vertex">,
|
|
1460
|
+
"gemini-2.5-flash-lite": {
|
|
1461
|
+
id: "gemini-2.5-flash-lite",
|
|
1462
|
+
name: "Gemini 2.5 Flash Lite (Vertex)",
|
|
1463
|
+
api: "google-vertex",
|
|
1464
|
+
provider: "google-vertex",
|
|
1465
|
+
baseUrl: "https://{location}-aiplatform.googleapis.com",
|
|
1466
|
+
reasoning: true,
|
|
1467
|
+
input: ["text", "image"],
|
|
1468
|
+
cost: {
|
|
1469
|
+
input: 0.1,
|
|
1470
|
+
output: 0.4,
|
|
1471
|
+
cacheRead: 0.01,
|
|
1472
|
+
cacheWrite: 0,
|
|
1473
|
+
},
|
|
1474
|
+
contextWindow: 1048576,
|
|
1475
|
+
maxTokens: 65536,
|
|
1476
|
+
} satisfies Model<"google-vertex">,
|
|
1477
|
+
"gemini-2.5-flash-lite-preview-09-2025": {
|
|
1478
|
+
id: "gemini-2.5-flash-lite-preview-09-2025",
|
|
1479
|
+
name: "Gemini 2.5 Flash Lite Preview 09-25 (Vertex)",
|
|
1480
|
+
api: "google-vertex",
|
|
1481
|
+
provider: "google-vertex",
|
|
1482
|
+
baseUrl: "https://{location}-aiplatform.googleapis.com",
|
|
1483
|
+
reasoning: true,
|
|
1484
|
+
input: ["text", "image"],
|
|
1485
|
+
cost: {
|
|
1486
|
+
input: 0.1,
|
|
1487
|
+
output: 0.4,
|
|
1488
|
+
cacheRead: 0.01,
|
|
1489
|
+
cacheWrite: 0,
|
|
1490
|
+
},
|
|
1491
|
+
contextWindow: 1048576,
|
|
1492
|
+
maxTokens: 65536,
|
|
1493
|
+
} satisfies Model<"google-vertex">,
|
|
1494
|
+
"gemini-2.5-pro": {
|
|
1495
|
+
id: "gemini-2.5-pro",
|
|
1496
|
+
name: "Gemini 2.5 Pro (Vertex)",
|
|
1497
|
+
api: "google-vertex",
|
|
1498
|
+
provider: "google-vertex",
|
|
1499
|
+
baseUrl: "https://{location}-aiplatform.googleapis.com",
|
|
1500
|
+
reasoning: true,
|
|
1501
|
+
input: ["text", "image"],
|
|
1502
|
+
cost: {
|
|
1503
|
+
input: 1.25,
|
|
1504
|
+
output: 10,
|
|
1505
|
+
cacheRead: 0.125,
|
|
1506
|
+
cacheWrite: 0,
|
|
1507
|
+
},
|
|
1508
|
+
contextWindow: 1048576,
|
|
1509
|
+
maxTokens: 65536,
|
|
1510
|
+
} satisfies Model<"google-vertex">,
|
|
1511
|
+
"gemini-3-flash-preview": {
|
|
1512
|
+
id: "gemini-3-flash-preview",
|
|
1513
|
+
name: "Gemini 3 Flash Preview (Vertex)",
|
|
1514
|
+
api: "google-vertex",
|
|
1515
|
+
provider: "google-vertex",
|
|
1516
|
+
baseUrl: "https://{location}-aiplatform.googleapis.com",
|
|
1517
|
+
reasoning: true,
|
|
1518
|
+
input: ["text", "image"],
|
|
1519
|
+
cost: {
|
|
1520
|
+
input: 0.5,
|
|
1521
|
+
output: 3,
|
|
1522
|
+
cacheRead: 0.05,
|
|
1523
|
+
cacheWrite: 0,
|
|
1524
|
+
},
|
|
1525
|
+
contextWindow: 1048576,
|
|
1526
|
+
maxTokens: 65536,
|
|
1527
|
+
} satisfies Model<"google-vertex">,
|
|
1528
|
+
"gemini-3-pro-preview": {
|
|
1529
|
+
id: "gemini-3-pro-preview",
|
|
1530
|
+
name: "Gemini 3 Pro Preview (Vertex)",
|
|
1531
|
+
api: "google-vertex",
|
|
1532
|
+
provider: "google-vertex",
|
|
1533
|
+
baseUrl: "https://{location}-aiplatform.googleapis.com",
|
|
1534
|
+
reasoning: true,
|
|
1535
|
+
input: ["text", "image"],
|
|
1536
|
+
cost: {
|
|
1537
|
+
input: 2,
|
|
1538
|
+
output: 12,
|
|
1539
|
+
cacheRead: 0.2,
|
|
1540
|
+
cacheWrite: 0,
|
|
1541
|
+
},
|
|
1542
|
+
contextWindow: 1000000,
|
|
1543
|
+
maxTokens: 64000,
|
|
1544
|
+
} satisfies Model<"google-vertex">,
|
|
1545
|
+
},
|
|
1340
1546
|
"groq": {
|
|
1341
1547
|
"deepseek-r1-distill-llama-70b": {
|
|
1342
1548
|
id: "deepseek-r1-distill-llama-70b",
|
|
@@ -2468,121 +2674,652 @@ export const MODELS = {
|
|
|
2468
2674
|
id: "o1-pro",
|
|
2469
2675
|
name: "o1-pro",
|
|
2470
2676
|
api: "openai-responses",
|
|
2471
|
-
provider: "openai",
|
|
2472
|
-
baseUrl: "https://api.openai.com/v1",
|
|
2677
|
+
provider: "openai",
|
|
2678
|
+
baseUrl: "https://api.openai.com/v1",
|
|
2679
|
+
reasoning: true,
|
|
2680
|
+
input: ["text", "image"],
|
|
2681
|
+
cost: {
|
|
2682
|
+
input: 150,
|
|
2683
|
+
output: 600,
|
|
2684
|
+
cacheRead: 0,
|
|
2685
|
+
cacheWrite: 0,
|
|
2686
|
+
},
|
|
2687
|
+
contextWindow: 200000,
|
|
2688
|
+
maxTokens: 100000,
|
|
2689
|
+
} satisfies Model<"openai-responses">,
|
|
2690
|
+
"o3": {
|
|
2691
|
+
id: "o3",
|
|
2692
|
+
name: "o3",
|
|
2693
|
+
api: "openai-responses",
|
|
2694
|
+
provider: "openai",
|
|
2695
|
+
baseUrl: "https://api.openai.com/v1",
|
|
2696
|
+
reasoning: true,
|
|
2697
|
+
input: ["text", "image"],
|
|
2698
|
+
cost: {
|
|
2699
|
+
input: 2,
|
|
2700
|
+
output: 8,
|
|
2701
|
+
cacheRead: 0.5,
|
|
2702
|
+
cacheWrite: 0,
|
|
2703
|
+
},
|
|
2704
|
+
contextWindow: 200000,
|
|
2705
|
+
maxTokens: 100000,
|
|
2706
|
+
} satisfies Model<"openai-responses">,
|
|
2707
|
+
"o3-deep-research": {
|
|
2708
|
+
id: "o3-deep-research",
|
|
2709
|
+
name: "o3-deep-research",
|
|
2710
|
+
api: "openai-responses",
|
|
2711
|
+
provider: "openai",
|
|
2712
|
+
baseUrl: "https://api.openai.com/v1",
|
|
2713
|
+
reasoning: true,
|
|
2714
|
+
input: ["text", "image"],
|
|
2715
|
+
cost: {
|
|
2716
|
+
input: 10,
|
|
2717
|
+
output: 40,
|
|
2718
|
+
cacheRead: 2.5,
|
|
2719
|
+
cacheWrite: 0,
|
|
2720
|
+
},
|
|
2721
|
+
contextWindow: 200000,
|
|
2722
|
+
maxTokens: 100000,
|
|
2723
|
+
} satisfies Model<"openai-responses">,
|
|
2724
|
+
"o3-mini": {
|
|
2725
|
+
id: "o3-mini",
|
|
2726
|
+
name: "o3-mini",
|
|
2727
|
+
api: "openai-responses",
|
|
2728
|
+
provider: "openai",
|
|
2729
|
+
baseUrl: "https://api.openai.com/v1",
|
|
2730
|
+
reasoning: true,
|
|
2731
|
+
input: ["text"],
|
|
2732
|
+
cost: {
|
|
2733
|
+
input: 1.1,
|
|
2734
|
+
output: 4.4,
|
|
2735
|
+
cacheRead: 0.55,
|
|
2736
|
+
cacheWrite: 0,
|
|
2737
|
+
},
|
|
2738
|
+
contextWindow: 200000,
|
|
2739
|
+
maxTokens: 100000,
|
|
2740
|
+
} satisfies Model<"openai-responses">,
|
|
2741
|
+
"o3-pro": {
|
|
2742
|
+
id: "o3-pro",
|
|
2743
|
+
name: "o3-pro",
|
|
2744
|
+
api: "openai-responses",
|
|
2745
|
+
provider: "openai",
|
|
2746
|
+
baseUrl: "https://api.openai.com/v1",
|
|
2747
|
+
reasoning: true,
|
|
2748
|
+
input: ["text", "image"],
|
|
2749
|
+
cost: {
|
|
2750
|
+
input: 20,
|
|
2751
|
+
output: 80,
|
|
2752
|
+
cacheRead: 0,
|
|
2753
|
+
cacheWrite: 0,
|
|
2754
|
+
},
|
|
2755
|
+
contextWindow: 200000,
|
|
2756
|
+
maxTokens: 100000,
|
|
2757
|
+
} satisfies Model<"openai-responses">,
|
|
2758
|
+
"o4-mini": {
|
|
2759
|
+
id: "o4-mini",
|
|
2760
|
+
name: "o4-mini",
|
|
2761
|
+
api: "openai-responses",
|
|
2762
|
+
provider: "openai",
|
|
2763
|
+
baseUrl: "https://api.openai.com/v1",
|
|
2764
|
+
reasoning: true,
|
|
2765
|
+
input: ["text", "image"],
|
|
2766
|
+
cost: {
|
|
2767
|
+
input: 1.1,
|
|
2768
|
+
output: 4.4,
|
|
2769
|
+
cacheRead: 0.28,
|
|
2770
|
+
cacheWrite: 0,
|
|
2771
|
+
},
|
|
2772
|
+
contextWindow: 200000,
|
|
2773
|
+
maxTokens: 100000,
|
|
2774
|
+
} satisfies Model<"openai-responses">,
|
|
2775
|
+
"o4-mini-deep-research": {
|
|
2776
|
+
id: "o4-mini-deep-research",
|
|
2777
|
+
name: "o4-mini-deep-research",
|
|
2778
|
+
api: "openai-responses",
|
|
2779
|
+
provider: "openai",
|
|
2780
|
+
baseUrl: "https://api.openai.com/v1",
|
|
2781
|
+
reasoning: true,
|
|
2782
|
+
input: ["text", "image"],
|
|
2783
|
+
cost: {
|
|
2784
|
+
input: 2,
|
|
2785
|
+
output: 8,
|
|
2786
|
+
cacheRead: 0.5,
|
|
2787
|
+
cacheWrite: 0,
|
|
2788
|
+
},
|
|
2789
|
+
contextWindow: 200000,
|
|
2790
|
+
maxTokens: 100000,
|
|
2791
|
+
} satisfies Model<"openai-responses">,
|
|
2792
|
+
},
|
|
2793
|
+
"openai-codex": {
|
|
2794
|
+
"gpt-5.1": {
|
|
2795
|
+
id: "gpt-5.1",
|
|
2796
|
+
name: "GPT-5.1",
|
|
2797
|
+
api: "openai-codex-responses",
|
|
2798
|
+
provider: "openai-codex",
|
|
2799
|
+
baseUrl: "https://chatgpt.com/backend-api",
|
|
2800
|
+
reasoning: true,
|
|
2801
|
+
input: ["text", "image"],
|
|
2802
|
+
cost: {
|
|
2803
|
+
input: 1.25,
|
|
2804
|
+
output: 10,
|
|
2805
|
+
cacheRead: 0.125,
|
|
2806
|
+
cacheWrite: 0,
|
|
2807
|
+
},
|
|
2808
|
+
contextWindow: 272000,
|
|
2809
|
+
maxTokens: 128000,
|
|
2810
|
+
} satisfies Model<"openai-codex-responses">,
|
|
2811
|
+
"gpt-5.1-codex-max": {
|
|
2812
|
+
id: "gpt-5.1-codex-max",
|
|
2813
|
+
name: "GPT-5.1 Codex Max",
|
|
2814
|
+
api: "openai-codex-responses",
|
|
2815
|
+
provider: "openai-codex",
|
|
2816
|
+
baseUrl: "https://chatgpt.com/backend-api",
|
|
2817
|
+
reasoning: true,
|
|
2818
|
+
input: ["text", "image"],
|
|
2819
|
+
cost: {
|
|
2820
|
+
input: 1.25,
|
|
2821
|
+
output: 10,
|
|
2822
|
+
cacheRead: 0.125,
|
|
2823
|
+
cacheWrite: 0,
|
|
2824
|
+
},
|
|
2825
|
+
contextWindow: 272000,
|
|
2826
|
+
maxTokens: 128000,
|
|
2827
|
+
} satisfies Model<"openai-codex-responses">,
|
|
2828
|
+
"gpt-5.1-codex-mini": {
|
|
2829
|
+
id: "gpt-5.1-codex-mini",
|
|
2830
|
+
name: "GPT-5.1 Codex Mini",
|
|
2831
|
+
api: "openai-codex-responses",
|
|
2832
|
+
provider: "openai-codex",
|
|
2833
|
+
baseUrl: "https://chatgpt.com/backend-api",
|
|
2834
|
+
reasoning: true,
|
|
2835
|
+
input: ["text", "image"],
|
|
2836
|
+
cost: {
|
|
2837
|
+
input: 0.25,
|
|
2838
|
+
output: 2,
|
|
2839
|
+
cacheRead: 0.025,
|
|
2840
|
+
cacheWrite: 0,
|
|
2841
|
+
},
|
|
2842
|
+
contextWindow: 272000,
|
|
2843
|
+
maxTokens: 128000,
|
|
2844
|
+
} satisfies Model<"openai-codex-responses">,
|
|
2845
|
+
"gpt-5.2": {
|
|
2846
|
+
id: "gpt-5.2",
|
|
2847
|
+
name: "GPT-5.2",
|
|
2848
|
+
api: "openai-codex-responses",
|
|
2849
|
+
provider: "openai-codex",
|
|
2850
|
+
baseUrl: "https://chatgpt.com/backend-api",
|
|
2851
|
+
reasoning: true,
|
|
2852
|
+
input: ["text", "image"],
|
|
2853
|
+
cost: {
|
|
2854
|
+
input: 1.75,
|
|
2855
|
+
output: 14,
|
|
2856
|
+
cacheRead: 0.175,
|
|
2857
|
+
cacheWrite: 0,
|
|
2858
|
+
},
|
|
2859
|
+
contextWindow: 272000,
|
|
2860
|
+
maxTokens: 128000,
|
|
2861
|
+
} satisfies Model<"openai-codex-responses">,
|
|
2862
|
+
"gpt-5.2-codex": {
|
|
2863
|
+
id: "gpt-5.2-codex",
|
|
2864
|
+
name: "GPT-5.2 Codex",
|
|
2865
|
+
api: "openai-codex-responses",
|
|
2866
|
+
provider: "openai-codex",
|
|
2867
|
+
baseUrl: "https://chatgpt.com/backend-api",
|
|
2868
|
+
reasoning: true,
|
|
2869
|
+
input: ["text", "image"],
|
|
2870
|
+
cost: {
|
|
2871
|
+
input: 1.75,
|
|
2872
|
+
output: 14,
|
|
2873
|
+
cacheRead: 0.175,
|
|
2874
|
+
cacheWrite: 0,
|
|
2875
|
+
},
|
|
2876
|
+
contextWindow: 272000,
|
|
2877
|
+
maxTokens: 128000,
|
|
2878
|
+
} satisfies Model<"openai-codex-responses">,
|
|
2879
|
+
},
|
|
2880
|
+
"opencode": {
|
|
2881
|
+
"alpha-gd4": {
|
|
2882
|
+
id: "alpha-gd4",
|
|
2883
|
+
name: "Alpha GD4",
|
|
2884
|
+
api: "anthropic-messages",
|
|
2885
|
+
provider: "opencode",
|
|
2886
|
+
baseUrl: "https://opencode.ai/zen",
|
|
2887
|
+
reasoning: true,
|
|
2888
|
+
input: ["text"],
|
|
2889
|
+
cost: {
|
|
2890
|
+
input: 0.5,
|
|
2891
|
+
output: 2,
|
|
2892
|
+
cacheRead: 0.15,
|
|
2893
|
+
cacheWrite: 0,
|
|
2894
|
+
},
|
|
2895
|
+
contextWindow: 262144,
|
|
2896
|
+
maxTokens: 32768,
|
|
2897
|
+
} satisfies Model<"anthropic-messages">,
|
|
2898
|
+
"alpha-glm-4.7": {
|
|
2899
|
+
id: "alpha-glm-4.7",
|
|
2900
|
+
name: "Alpha GLM-4.7",
|
|
2901
|
+
api: "openai-completions",
|
|
2902
|
+
provider: "opencode",
|
|
2903
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
2904
|
+
reasoning: true,
|
|
2905
|
+
input: ["text"],
|
|
2906
|
+
cost: {
|
|
2907
|
+
input: 0.6,
|
|
2908
|
+
output: 2.2,
|
|
2909
|
+
cacheRead: 0.6,
|
|
2910
|
+
cacheWrite: 0,
|
|
2911
|
+
},
|
|
2912
|
+
contextWindow: 204800,
|
|
2913
|
+
maxTokens: 131072,
|
|
2914
|
+
} satisfies Model<"openai-completions">,
|
|
2915
|
+
"big-pickle": {
|
|
2916
|
+
id: "big-pickle",
|
|
2917
|
+
name: "Big Pickle",
|
|
2918
|
+
api: "openai-completions",
|
|
2919
|
+
provider: "opencode",
|
|
2920
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
2921
|
+
reasoning: true,
|
|
2922
|
+
input: ["text"],
|
|
2923
|
+
cost: {
|
|
2924
|
+
input: 0,
|
|
2925
|
+
output: 0,
|
|
2926
|
+
cacheRead: 0,
|
|
2927
|
+
cacheWrite: 0,
|
|
2928
|
+
},
|
|
2929
|
+
contextWindow: 200000,
|
|
2930
|
+
maxTokens: 128000,
|
|
2931
|
+
} satisfies Model<"openai-completions">,
|
|
2932
|
+
"claude-3-5-haiku": {
|
|
2933
|
+
id: "claude-3-5-haiku",
|
|
2934
|
+
name: "Claude Haiku 3.5",
|
|
2935
|
+
api: "anthropic-messages",
|
|
2936
|
+
provider: "opencode",
|
|
2937
|
+
baseUrl: "https://opencode.ai/zen",
|
|
2938
|
+
reasoning: false,
|
|
2939
|
+
input: ["text", "image"],
|
|
2940
|
+
cost: {
|
|
2941
|
+
input: 0.8,
|
|
2942
|
+
output: 4,
|
|
2943
|
+
cacheRead: 0.08,
|
|
2944
|
+
cacheWrite: 1,
|
|
2945
|
+
},
|
|
2946
|
+
contextWindow: 200000,
|
|
2947
|
+
maxTokens: 8192,
|
|
2948
|
+
} satisfies Model<"anthropic-messages">,
|
|
2949
|
+
"claude-haiku-4-5": {
|
|
2950
|
+
id: "claude-haiku-4-5",
|
|
2951
|
+
name: "Claude Haiku 4.5",
|
|
2952
|
+
api: "anthropic-messages",
|
|
2953
|
+
provider: "opencode",
|
|
2954
|
+
baseUrl: "https://opencode.ai/zen",
|
|
2955
|
+
reasoning: true,
|
|
2956
|
+
input: ["text", "image"],
|
|
2957
|
+
cost: {
|
|
2958
|
+
input: 1,
|
|
2959
|
+
output: 5,
|
|
2960
|
+
cacheRead: 0.1,
|
|
2961
|
+
cacheWrite: 1.25,
|
|
2962
|
+
},
|
|
2963
|
+
contextWindow: 200000,
|
|
2964
|
+
maxTokens: 64000,
|
|
2965
|
+
} satisfies Model<"anthropic-messages">,
|
|
2966
|
+
"claude-opus-4-1": {
|
|
2967
|
+
id: "claude-opus-4-1",
|
|
2968
|
+
name: "Claude Opus 4.1",
|
|
2969
|
+
api: "anthropic-messages",
|
|
2970
|
+
provider: "opencode",
|
|
2971
|
+
baseUrl: "https://opencode.ai/zen",
|
|
2972
|
+
reasoning: true,
|
|
2973
|
+
input: ["text", "image"],
|
|
2974
|
+
cost: {
|
|
2975
|
+
input: 15,
|
|
2976
|
+
output: 75,
|
|
2977
|
+
cacheRead: 1.5,
|
|
2978
|
+
cacheWrite: 18.75,
|
|
2979
|
+
},
|
|
2980
|
+
contextWindow: 200000,
|
|
2981
|
+
maxTokens: 32000,
|
|
2982
|
+
} satisfies Model<"anthropic-messages">,
|
|
2983
|
+
"claude-opus-4-5": {
|
|
2984
|
+
id: "claude-opus-4-5",
|
|
2985
|
+
name: "Claude Opus 4.5",
|
|
2986
|
+
api: "anthropic-messages",
|
|
2987
|
+
provider: "opencode",
|
|
2988
|
+
baseUrl: "https://opencode.ai/zen",
|
|
2989
|
+
reasoning: true,
|
|
2990
|
+
input: ["text", "image"],
|
|
2991
|
+
cost: {
|
|
2992
|
+
input: 5,
|
|
2993
|
+
output: 25,
|
|
2994
|
+
cacheRead: 0.5,
|
|
2995
|
+
cacheWrite: 6.25,
|
|
2996
|
+
},
|
|
2997
|
+
contextWindow: 200000,
|
|
2998
|
+
maxTokens: 64000,
|
|
2999
|
+
} satisfies Model<"anthropic-messages">,
|
|
3000
|
+
"claude-sonnet-4": {
|
|
3001
|
+
id: "claude-sonnet-4",
|
|
3002
|
+
name: "Claude Sonnet 4",
|
|
3003
|
+
api: "anthropic-messages",
|
|
3004
|
+
provider: "opencode",
|
|
3005
|
+
baseUrl: "https://opencode.ai/zen",
|
|
3006
|
+
reasoning: true,
|
|
3007
|
+
input: ["text", "image"],
|
|
3008
|
+
cost: {
|
|
3009
|
+
input: 3,
|
|
3010
|
+
output: 15,
|
|
3011
|
+
cacheRead: 0.3,
|
|
3012
|
+
cacheWrite: 3.75,
|
|
3013
|
+
},
|
|
3014
|
+
contextWindow: 1000000,
|
|
3015
|
+
maxTokens: 64000,
|
|
3016
|
+
} satisfies Model<"anthropic-messages">,
|
|
3017
|
+
"claude-sonnet-4-5": {
|
|
3018
|
+
id: "claude-sonnet-4-5",
|
|
3019
|
+
name: "Claude Sonnet 4.5",
|
|
3020
|
+
api: "anthropic-messages",
|
|
3021
|
+
provider: "opencode",
|
|
3022
|
+
baseUrl: "https://opencode.ai/zen",
|
|
3023
|
+
reasoning: true,
|
|
3024
|
+
input: ["text", "image"],
|
|
3025
|
+
cost: {
|
|
3026
|
+
input: 3,
|
|
3027
|
+
output: 15,
|
|
3028
|
+
cacheRead: 0.3,
|
|
3029
|
+
cacheWrite: 3.75,
|
|
3030
|
+
},
|
|
3031
|
+
contextWindow: 1000000,
|
|
3032
|
+
maxTokens: 64000,
|
|
3033
|
+
} satisfies Model<"anthropic-messages">,
|
|
3034
|
+
"gemini-3-flash": {
|
|
3035
|
+
id: "gemini-3-flash",
|
|
3036
|
+
name: "Gemini 3 Flash",
|
|
3037
|
+
api: "google-generative-ai",
|
|
3038
|
+
provider: "opencode",
|
|
3039
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
3040
|
+
reasoning: true,
|
|
3041
|
+
input: ["text", "image"],
|
|
3042
|
+
cost: {
|
|
3043
|
+
input: 0.5,
|
|
3044
|
+
output: 3,
|
|
3045
|
+
cacheRead: 0.05,
|
|
3046
|
+
cacheWrite: 0,
|
|
3047
|
+
},
|
|
3048
|
+
contextWindow: 1048576,
|
|
3049
|
+
maxTokens: 65536,
|
|
3050
|
+
} satisfies Model<"google-generative-ai">,
|
|
3051
|
+
"gemini-3-pro": {
|
|
3052
|
+
id: "gemini-3-pro",
|
|
3053
|
+
name: "Gemini 3 Pro",
|
|
3054
|
+
api: "google-generative-ai",
|
|
3055
|
+
provider: "opencode",
|
|
3056
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
3057
|
+
reasoning: true,
|
|
3058
|
+
input: ["text", "image"],
|
|
3059
|
+
cost: {
|
|
3060
|
+
input: 2,
|
|
3061
|
+
output: 12,
|
|
3062
|
+
cacheRead: 0.2,
|
|
3063
|
+
cacheWrite: 0,
|
|
3064
|
+
},
|
|
3065
|
+
contextWindow: 1048576,
|
|
3066
|
+
maxTokens: 65536,
|
|
3067
|
+
} satisfies Model<"google-generative-ai">,
|
|
3068
|
+
"glm-4.6": {
|
|
3069
|
+
id: "glm-4.6",
|
|
3070
|
+
name: "GLM-4.6",
|
|
3071
|
+
api: "openai-completions",
|
|
3072
|
+
provider: "opencode",
|
|
3073
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
3074
|
+
reasoning: true,
|
|
3075
|
+
input: ["text"],
|
|
3076
|
+
cost: {
|
|
3077
|
+
input: 0.6,
|
|
3078
|
+
output: 2.2,
|
|
3079
|
+
cacheRead: 0.1,
|
|
3080
|
+
cacheWrite: 0,
|
|
3081
|
+
},
|
|
3082
|
+
contextWindow: 204800,
|
|
3083
|
+
maxTokens: 131072,
|
|
3084
|
+
} satisfies Model<"openai-completions">,
|
|
3085
|
+
"glm-4.7-free": {
|
|
3086
|
+
id: "glm-4.7-free",
|
|
3087
|
+
name: "GLM-4.7",
|
|
3088
|
+
api: "openai-completions",
|
|
3089
|
+
provider: "opencode",
|
|
3090
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
3091
|
+
reasoning: true,
|
|
3092
|
+
input: ["text"],
|
|
3093
|
+
cost: {
|
|
3094
|
+
input: 0,
|
|
3095
|
+
output: 0,
|
|
3096
|
+
cacheRead: 0,
|
|
3097
|
+
cacheWrite: 0,
|
|
3098
|
+
},
|
|
3099
|
+
contextWindow: 204800,
|
|
3100
|
+
maxTokens: 131072,
|
|
3101
|
+
} satisfies Model<"openai-completions">,
|
|
3102
|
+
"gpt-5": {
|
|
3103
|
+
id: "gpt-5",
|
|
3104
|
+
name: "GPT-5",
|
|
3105
|
+
api: "openai-responses",
|
|
3106
|
+
provider: "opencode",
|
|
3107
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
3108
|
+
reasoning: true,
|
|
3109
|
+
input: ["text", "image"],
|
|
3110
|
+
cost: {
|
|
3111
|
+
input: 1.07,
|
|
3112
|
+
output: 8.5,
|
|
3113
|
+
cacheRead: 0.107,
|
|
3114
|
+
cacheWrite: 0,
|
|
3115
|
+
},
|
|
3116
|
+
contextWindow: 400000,
|
|
3117
|
+
maxTokens: 128000,
|
|
3118
|
+
} satisfies Model<"openai-responses">,
|
|
3119
|
+
"gpt-5-codex": {
|
|
3120
|
+
id: "gpt-5-codex",
|
|
3121
|
+
name: "GPT-5 Codex",
|
|
3122
|
+
api: "openai-responses",
|
|
3123
|
+
provider: "opencode",
|
|
3124
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
3125
|
+
reasoning: true,
|
|
3126
|
+
input: ["text", "image"],
|
|
3127
|
+
cost: {
|
|
3128
|
+
input: 1.07,
|
|
3129
|
+
output: 8.5,
|
|
3130
|
+
cacheRead: 0.107,
|
|
3131
|
+
cacheWrite: 0,
|
|
3132
|
+
},
|
|
3133
|
+
contextWindow: 400000,
|
|
3134
|
+
maxTokens: 128000,
|
|
3135
|
+
} satisfies Model<"openai-responses">,
|
|
3136
|
+
"gpt-5-nano": {
|
|
3137
|
+
id: "gpt-5-nano",
|
|
3138
|
+
name: "GPT-5 Nano",
|
|
3139
|
+
api: "openai-responses",
|
|
3140
|
+
provider: "opencode",
|
|
3141
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
3142
|
+
reasoning: true,
|
|
3143
|
+
input: ["text", "image"],
|
|
3144
|
+
cost: {
|
|
3145
|
+
input: 0,
|
|
3146
|
+
output: 0,
|
|
3147
|
+
cacheRead: 0,
|
|
3148
|
+
cacheWrite: 0,
|
|
3149
|
+
},
|
|
3150
|
+
contextWindow: 400000,
|
|
3151
|
+
maxTokens: 128000,
|
|
3152
|
+
} satisfies Model<"openai-responses">,
|
|
3153
|
+
"gpt-5.1": {
|
|
3154
|
+
id: "gpt-5.1",
|
|
3155
|
+
name: "GPT-5.1",
|
|
3156
|
+
api: "openai-responses",
|
|
3157
|
+
provider: "opencode",
|
|
3158
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
3159
|
+
reasoning: true,
|
|
3160
|
+
input: ["text", "image"],
|
|
3161
|
+
cost: {
|
|
3162
|
+
input: 1.07,
|
|
3163
|
+
output: 8.5,
|
|
3164
|
+
cacheRead: 0.107,
|
|
3165
|
+
cacheWrite: 0,
|
|
3166
|
+
},
|
|
3167
|
+
contextWindow: 400000,
|
|
3168
|
+
maxTokens: 128000,
|
|
3169
|
+
} satisfies Model<"openai-responses">,
|
|
3170
|
+
"gpt-5.1-codex": {
|
|
3171
|
+
id: "gpt-5.1-codex",
|
|
3172
|
+
name: "GPT-5.1 Codex",
|
|
3173
|
+
api: "openai-responses",
|
|
3174
|
+
provider: "opencode",
|
|
3175
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
2473
3176
|
reasoning: true,
|
|
2474
3177
|
input: ["text", "image"],
|
|
2475
3178
|
cost: {
|
|
2476
|
-
input:
|
|
2477
|
-
output:
|
|
2478
|
-
cacheRead: 0,
|
|
3179
|
+
input: 1.07,
|
|
3180
|
+
output: 8.5,
|
|
3181
|
+
cacheRead: 0.107,
|
|
2479
3182
|
cacheWrite: 0,
|
|
2480
3183
|
},
|
|
2481
|
-
contextWindow:
|
|
2482
|
-
maxTokens:
|
|
3184
|
+
contextWindow: 400000,
|
|
3185
|
+
maxTokens: 128000,
|
|
2483
3186
|
} satisfies Model<"openai-responses">,
|
|
2484
|
-
"
|
|
2485
|
-
id: "
|
|
2486
|
-
name: "
|
|
3187
|
+
"gpt-5.1-codex-max": {
|
|
3188
|
+
id: "gpt-5.1-codex-max",
|
|
3189
|
+
name: "GPT-5.1 Codex Max",
|
|
2487
3190
|
api: "openai-responses",
|
|
2488
|
-
provider: "
|
|
2489
|
-
baseUrl: "https://
|
|
3191
|
+
provider: "opencode",
|
|
3192
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
2490
3193
|
reasoning: true,
|
|
2491
3194
|
input: ["text", "image"],
|
|
2492
3195
|
cost: {
|
|
2493
|
-
input:
|
|
2494
|
-
output:
|
|
2495
|
-
cacheRead: 0.
|
|
3196
|
+
input: 1.25,
|
|
3197
|
+
output: 10,
|
|
3198
|
+
cacheRead: 0.125,
|
|
2496
3199
|
cacheWrite: 0,
|
|
2497
3200
|
},
|
|
2498
|
-
contextWindow:
|
|
2499
|
-
maxTokens:
|
|
3201
|
+
contextWindow: 400000,
|
|
3202
|
+
maxTokens: 128000,
|
|
2500
3203
|
} satisfies Model<"openai-responses">,
|
|
2501
|
-
"
|
|
2502
|
-
id: "
|
|
2503
|
-
name: "
|
|
3204
|
+
"gpt-5.1-codex-mini": {
|
|
3205
|
+
id: "gpt-5.1-codex-mini",
|
|
3206
|
+
name: "GPT-5.1 Codex Mini",
|
|
2504
3207
|
api: "openai-responses",
|
|
2505
|
-
provider: "
|
|
2506
|
-
baseUrl: "https://
|
|
3208
|
+
provider: "opencode",
|
|
3209
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
2507
3210
|
reasoning: true,
|
|
2508
3211
|
input: ["text", "image"],
|
|
2509
3212
|
cost: {
|
|
2510
|
-
input:
|
|
2511
|
-
output:
|
|
2512
|
-
cacheRead:
|
|
3213
|
+
input: 0.25,
|
|
3214
|
+
output: 2,
|
|
3215
|
+
cacheRead: 0.025,
|
|
2513
3216
|
cacheWrite: 0,
|
|
2514
3217
|
},
|
|
2515
|
-
contextWindow:
|
|
2516
|
-
maxTokens:
|
|
3218
|
+
contextWindow: 400000,
|
|
3219
|
+
maxTokens: 128000,
|
|
2517
3220
|
} satisfies Model<"openai-responses">,
|
|
2518
|
-
"
|
|
2519
|
-
id: "
|
|
2520
|
-
name: "
|
|
3221
|
+
"gpt-5.2": {
|
|
3222
|
+
id: "gpt-5.2",
|
|
3223
|
+
name: "GPT-5.2",
|
|
2521
3224
|
api: "openai-responses",
|
|
2522
|
-
provider: "
|
|
2523
|
-
baseUrl: "https://
|
|
3225
|
+
provider: "opencode",
|
|
3226
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
2524
3227
|
reasoning: true,
|
|
2525
|
-
input: ["text"],
|
|
3228
|
+
input: ["text", "image"],
|
|
2526
3229
|
cost: {
|
|
2527
|
-
input: 1.
|
|
2528
|
-
output:
|
|
2529
|
-
cacheRead: 0.
|
|
3230
|
+
input: 1.75,
|
|
3231
|
+
output: 14,
|
|
3232
|
+
cacheRead: 0.175,
|
|
2530
3233
|
cacheWrite: 0,
|
|
2531
3234
|
},
|
|
2532
|
-
contextWindow:
|
|
2533
|
-
maxTokens:
|
|
3235
|
+
contextWindow: 400000,
|
|
3236
|
+
maxTokens: 128000,
|
|
2534
3237
|
} satisfies Model<"openai-responses">,
|
|
2535
|
-
"
|
|
2536
|
-
id: "
|
|
2537
|
-
name: "
|
|
2538
|
-
api: "openai-
|
|
2539
|
-
provider: "
|
|
2540
|
-
baseUrl: "https://
|
|
3238
|
+
"grok-code": {
|
|
3239
|
+
id: "grok-code",
|
|
3240
|
+
name: "Grok Code Fast 1",
|
|
3241
|
+
api: "openai-completions",
|
|
3242
|
+
provider: "opencode",
|
|
3243
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
2541
3244
|
reasoning: true,
|
|
2542
|
-
input: ["text"
|
|
3245
|
+
input: ["text"],
|
|
2543
3246
|
cost: {
|
|
2544
|
-
input:
|
|
2545
|
-
output:
|
|
3247
|
+
input: 0,
|
|
3248
|
+
output: 0,
|
|
2546
3249
|
cacheRead: 0,
|
|
2547
3250
|
cacheWrite: 0,
|
|
2548
3251
|
},
|
|
2549
|
-
contextWindow:
|
|
2550
|
-
maxTokens:
|
|
2551
|
-
} satisfies Model<"openai-
|
|
2552
|
-
"
|
|
2553
|
-
id: "
|
|
2554
|
-
name: "
|
|
2555
|
-
api: "openai-
|
|
2556
|
-
provider: "
|
|
2557
|
-
baseUrl: "https://
|
|
3252
|
+
contextWindow: 256000,
|
|
3253
|
+
maxTokens: 256000,
|
|
3254
|
+
} satisfies Model<"openai-completions">,
|
|
3255
|
+
"kimi-k2": {
|
|
3256
|
+
id: "kimi-k2",
|
|
3257
|
+
name: "Kimi K2",
|
|
3258
|
+
api: "openai-completions",
|
|
3259
|
+
provider: "opencode",
|
|
3260
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
3261
|
+
reasoning: false,
|
|
3262
|
+
input: ["text"],
|
|
3263
|
+
cost: {
|
|
3264
|
+
input: 0.4,
|
|
3265
|
+
output: 2.5,
|
|
3266
|
+
cacheRead: 0.4,
|
|
3267
|
+
cacheWrite: 0,
|
|
3268
|
+
},
|
|
3269
|
+
contextWindow: 262144,
|
|
3270
|
+
maxTokens: 262144,
|
|
3271
|
+
} satisfies Model<"openai-completions">,
|
|
3272
|
+
"kimi-k2-thinking": {
|
|
3273
|
+
id: "kimi-k2-thinking",
|
|
3274
|
+
name: "Kimi K2 Thinking",
|
|
3275
|
+
api: "openai-completions",
|
|
3276
|
+
provider: "opencode",
|
|
3277
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
2558
3278
|
reasoning: true,
|
|
2559
|
-
input: ["text"
|
|
3279
|
+
input: ["text"],
|
|
2560
3280
|
cost: {
|
|
2561
|
-
input:
|
|
2562
|
-
output:
|
|
2563
|
-
cacheRead: 0.
|
|
3281
|
+
input: 0.4,
|
|
3282
|
+
output: 2.5,
|
|
3283
|
+
cacheRead: 0.4,
|
|
2564
3284
|
cacheWrite: 0,
|
|
2565
3285
|
},
|
|
2566
|
-
contextWindow:
|
|
2567
|
-
maxTokens:
|
|
2568
|
-
} satisfies Model<"openai-
|
|
2569
|
-
"
|
|
2570
|
-
id: "
|
|
2571
|
-
name: "
|
|
2572
|
-
api: "
|
|
2573
|
-
provider: "
|
|
2574
|
-
baseUrl: "https://
|
|
3286
|
+
contextWindow: 262144,
|
|
3287
|
+
maxTokens: 262144,
|
|
3288
|
+
} satisfies Model<"openai-completions">,
|
|
3289
|
+
"minimax-m2.1-free": {
|
|
3290
|
+
id: "minimax-m2.1-free",
|
|
3291
|
+
name: "MiniMax M2.1",
|
|
3292
|
+
api: "anthropic-messages",
|
|
3293
|
+
provider: "opencode",
|
|
3294
|
+
baseUrl: "https://opencode.ai/zen",
|
|
2575
3295
|
reasoning: true,
|
|
2576
|
-
input: ["text"
|
|
3296
|
+
input: ["text"],
|
|
2577
3297
|
cost: {
|
|
2578
|
-
input:
|
|
2579
|
-
output:
|
|
2580
|
-
cacheRead: 0
|
|
3298
|
+
input: 0,
|
|
3299
|
+
output: 0,
|
|
3300
|
+
cacheRead: 0,
|
|
2581
3301
|
cacheWrite: 0,
|
|
2582
3302
|
},
|
|
2583
|
-
contextWindow:
|
|
2584
|
-
maxTokens:
|
|
2585
|
-
} satisfies Model<"
|
|
3303
|
+
contextWindow: 204800,
|
|
3304
|
+
maxTokens: 131072,
|
|
3305
|
+
} satisfies Model<"anthropic-messages">,
|
|
3306
|
+
"qwen3-coder": {
|
|
3307
|
+
id: "qwen3-coder",
|
|
3308
|
+
name: "Qwen3 Coder",
|
|
3309
|
+
api: "openai-completions",
|
|
3310
|
+
provider: "opencode",
|
|
3311
|
+
baseUrl: "https://opencode.ai/zen/v1",
|
|
3312
|
+
reasoning: false,
|
|
3313
|
+
input: ["text"],
|
|
3314
|
+
cost: {
|
|
3315
|
+
input: 0.45,
|
|
3316
|
+
output: 1.8,
|
|
3317
|
+
cacheRead: 0,
|
|
3318
|
+
cacheWrite: 0,
|
|
3319
|
+
},
|
|
3320
|
+
contextWindow: 262144,
|
|
3321
|
+
maxTokens: 65536,
|
|
3322
|
+
} satisfies Model<"openai-completions">,
|
|
2586
3323
|
},
|
|
2587
3324
|
"openrouter": {
|
|
2588
3325
|
"ai21/jamba-large-1.7": {
|
|
@@ -2653,6 +3390,23 @@ export const MODELS = {
|
|
|
2653
3390
|
contextWindow: 65536,
|
|
2654
3391
|
maxTokens: 65536,
|
|
2655
3392
|
} satisfies Model<"openai-completions">,
|
|
3393
|
+
"allenai/olmo-3.1-32b-instruct": {
|
|
3394
|
+
id: "allenai/olmo-3.1-32b-instruct",
|
|
3395
|
+
name: "AllenAI: Olmo 3.1 32B Instruct",
|
|
3396
|
+
api: "openai-completions",
|
|
3397
|
+
provider: "openrouter",
|
|
3398
|
+
baseUrl: "https://openrouter.ai/api/v1",
|
|
3399
|
+
reasoning: false,
|
|
3400
|
+
input: ["text"],
|
|
3401
|
+
cost: {
|
|
3402
|
+
input: 0.19999999999999998,
|
|
3403
|
+
output: 0.6,
|
|
3404
|
+
cacheRead: 0,
|
|
3405
|
+
cacheWrite: 0,
|
|
3406
|
+
},
|
|
3407
|
+
contextWindow: 65536,
|
|
3408
|
+
maxTokens: 4096,
|
|
3409
|
+
} satisfies Model<"openai-completions">,
|
|
2656
3410
|
"amazon/nova-2-lite-v1": {
|
|
2657
3411
|
id: "amazon/nova-2-lite-v1",
|
|
2658
3412
|
name: "Amazon: Nova 2 Lite",
|
|
@@ -3529,13 +4283,13 @@ export const MODELS = {
|
|
|
3529
4283
|
reasoning: false,
|
|
3530
4284
|
input: ["text", "image"],
|
|
3531
4285
|
cost: {
|
|
3532
|
-
input: 0.
|
|
3533
|
-
output: 0.
|
|
4286
|
+
input: 0.04,
|
|
4287
|
+
output: 0.15,
|
|
3534
4288
|
cacheRead: 0,
|
|
3535
4289
|
cacheWrite: 0,
|
|
3536
4290
|
},
|
|
3537
|
-
contextWindow:
|
|
3538
|
-
maxTokens:
|
|
4291
|
+
contextWindow: 96000,
|
|
4292
|
+
maxTokens: 96000,
|
|
3539
4293
|
} satisfies Model<"openai-completions">,
|
|
3540
4294
|
"google/gemma-3-27b-it:free": {
|
|
3541
4295
|
id: "google/gemma-3-27b-it:free",
|
|
@@ -3792,57 +4546,6 @@ export const MODELS = {
|
|
|
3792
4546
|
contextWindow: 327680,
|
|
3793
4547
|
maxTokens: 16384,
|
|
3794
4548
|
} satisfies Model<"openai-completions">,
|
|
3795
|
-
"microsoft/phi-3-medium-128k-instruct": {
|
|
3796
|
-
id: "microsoft/phi-3-medium-128k-instruct",
|
|
3797
|
-
name: "Microsoft: Phi-3 Medium 128K Instruct",
|
|
3798
|
-
api: "openai-completions",
|
|
3799
|
-
provider: "openrouter",
|
|
3800
|
-
baseUrl: "https://openrouter.ai/api/v1",
|
|
3801
|
-
reasoning: false,
|
|
3802
|
-
input: ["text"],
|
|
3803
|
-
cost: {
|
|
3804
|
-
input: 1,
|
|
3805
|
-
output: 1,
|
|
3806
|
-
cacheRead: 0,
|
|
3807
|
-
cacheWrite: 0,
|
|
3808
|
-
},
|
|
3809
|
-
contextWindow: 128000,
|
|
3810
|
-
maxTokens: 4096,
|
|
3811
|
-
} satisfies Model<"openai-completions">,
|
|
3812
|
-
"microsoft/phi-3-mini-128k-instruct": {
|
|
3813
|
-
id: "microsoft/phi-3-mini-128k-instruct",
|
|
3814
|
-
name: "Microsoft: Phi-3 Mini 128K Instruct",
|
|
3815
|
-
api: "openai-completions",
|
|
3816
|
-
provider: "openrouter",
|
|
3817
|
-
baseUrl: "https://openrouter.ai/api/v1",
|
|
3818
|
-
reasoning: false,
|
|
3819
|
-
input: ["text"],
|
|
3820
|
-
cost: {
|
|
3821
|
-
input: 0.09999999999999999,
|
|
3822
|
-
output: 0.09999999999999999,
|
|
3823
|
-
cacheRead: 0,
|
|
3824
|
-
cacheWrite: 0,
|
|
3825
|
-
},
|
|
3826
|
-
contextWindow: 128000,
|
|
3827
|
-
maxTokens: 4096,
|
|
3828
|
-
} satisfies Model<"openai-completions">,
|
|
3829
|
-
"microsoft/phi-3.5-mini-128k-instruct": {
|
|
3830
|
-
id: "microsoft/phi-3.5-mini-128k-instruct",
|
|
3831
|
-
name: "Microsoft: Phi-3.5 Mini 128K Instruct",
|
|
3832
|
-
api: "openai-completions",
|
|
3833
|
-
provider: "openrouter",
|
|
3834
|
-
baseUrl: "https://openrouter.ai/api/v1",
|
|
3835
|
-
reasoning: false,
|
|
3836
|
-
input: ["text"],
|
|
3837
|
-
cost: {
|
|
3838
|
-
input: 0.09999999999999999,
|
|
3839
|
-
output: 0.09999999999999999,
|
|
3840
|
-
cacheRead: 0,
|
|
3841
|
-
cacheWrite: 0,
|
|
3842
|
-
},
|
|
3843
|
-
contextWindow: 128000,
|
|
3844
|
-
maxTokens: 4096,
|
|
3845
|
-
} satisfies Model<"openai-completions">,
|
|
3846
4549
|
"minimax/minimax-m1": {
|
|
3847
4550
|
id: "minimax/minimax-m1",
|
|
3848
4551
|
name: "MiniMax: MiniMax M1",
|
|
@@ -3886,9 +4589,9 @@ export const MODELS = {
|
|
|
3886
4589
|
reasoning: true,
|
|
3887
4590
|
input: ["text"],
|
|
3888
4591
|
cost: {
|
|
3889
|
-
input: 0.
|
|
3890
|
-
output:
|
|
3891
|
-
cacheRead: 0,
|
|
4592
|
+
input: 0.28,
|
|
4593
|
+
output: 1.2,
|
|
4594
|
+
cacheRead: 0.14,
|
|
3892
4595
|
cacheWrite: 0,
|
|
3893
4596
|
},
|
|
3894
4597
|
contextWindow: 196608,
|
|
@@ -4481,13 +5184,13 @@ export const MODELS = {
|
|
|
4481
5184
|
reasoning: true,
|
|
4482
5185
|
input: ["text"],
|
|
4483
5186
|
cost: {
|
|
4484
|
-
input: 0.
|
|
4485
|
-
output:
|
|
5187
|
+
input: 0.39999999999999997,
|
|
5188
|
+
output: 1.75,
|
|
4486
5189
|
cacheRead: 0,
|
|
4487
5190
|
cacheWrite: 0,
|
|
4488
5191
|
},
|
|
4489
5192
|
contextWindow: 262144,
|
|
4490
|
-
maxTokens:
|
|
5193
|
+
maxTokens: 65535,
|
|
4491
5194
|
} satisfies Model<"openai-completions">,
|
|
4492
5195
|
"nex-agi/deepseek-v3.1-nex-n1:free": {
|
|
4493
5196
|
id: "nex-agi/deepseek-v3.1-nex-n1:free",
|
|
@@ -5263,8 +5966,8 @@ export const MODELS = {
|
|
|
5263
5966
|
reasoning: true,
|
|
5264
5967
|
input: ["text"],
|
|
5265
5968
|
cost: {
|
|
5266
|
-
input: 0.
|
|
5267
|
-
output: 0.
|
|
5969
|
+
input: 0.039,
|
|
5970
|
+
output: 0.19,
|
|
5268
5971
|
cacheRead: 0,
|
|
5269
5972
|
cacheWrite: 0,
|
|
5270
5973
|
},
|
|
@@ -5314,13 +6017,13 @@ export const MODELS = {
|
|
|
5314
6017
|
reasoning: true,
|
|
5315
6018
|
input: ["text"],
|
|
5316
6019
|
cost: {
|
|
5317
|
-
input: 0.
|
|
5318
|
-
output: 0.
|
|
6020
|
+
input: 0.02,
|
|
6021
|
+
output: 0.09999999999999999,
|
|
5319
6022
|
cacheRead: 0,
|
|
5320
6023
|
cacheWrite: 0,
|
|
5321
6024
|
},
|
|
5322
6025
|
contextWindow: 131072,
|
|
5323
|
-
maxTokens:
|
|
6026
|
+
maxTokens: 131072,
|
|
5324
6027
|
} satisfies Model<"openai-completions">,
|
|
5325
6028
|
"openai/gpt-oss-20b:free": {
|
|
5326
6029
|
id: "openai/gpt-oss-20b:free",
|
|
@@ -5560,6 +6263,23 @@ export const MODELS = {
|
|
|
5560
6263
|
contextWindow: 32768,
|
|
5561
6264
|
maxTokens: 16384,
|
|
5562
6265
|
} satisfies Model<"openai-completions">,
|
|
6266
|
+
"qwen/qwen-2.5-7b-instruct": {
|
|
6267
|
+
id: "qwen/qwen-2.5-7b-instruct",
|
|
6268
|
+
name: "Qwen: Qwen2.5 7B Instruct",
|
|
6269
|
+
api: "openai-completions",
|
|
6270
|
+
provider: "openrouter",
|
|
6271
|
+
baseUrl: "https://openrouter.ai/api/v1",
|
|
6272
|
+
reasoning: false,
|
|
6273
|
+
input: ["text"],
|
|
6274
|
+
cost: {
|
|
6275
|
+
input: 0.04,
|
|
6276
|
+
output: 0.09999999999999999,
|
|
6277
|
+
cacheRead: 0,
|
|
6278
|
+
cacheWrite: 0,
|
|
6279
|
+
},
|
|
6280
|
+
contextWindow: 32768,
|
|
6281
|
+
maxTokens: 4096,
|
|
6282
|
+
} satisfies Model<"openai-completions">,
|
|
5563
6283
|
"qwen/qwen-max": {
|
|
5564
6284
|
id: "qwen/qwen-max",
|
|
5565
6285
|
name: "Qwen: Qwen-Max ",
|
|
@@ -5960,8 +6680,8 @@ export const MODELS = {
|
|
|
5960
6680
|
reasoning: false,
|
|
5961
6681
|
input: ["text"],
|
|
5962
6682
|
cost: {
|
|
5963
|
-
input: 0.
|
|
5964
|
-
output:
|
|
6683
|
+
input: 0.09,
|
|
6684
|
+
output: 1.1,
|
|
5965
6685
|
cacheRead: 0,
|
|
5966
6686
|
cacheWrite: 0,
|
|
5967
6687
|
},
|
|
@@ -5994,8 +6714,8 @@ export const MODELS = {
|
|
|
5994
6714
|
reasoning: false,
|
|
5995
6715
|
input: ["text", "image"],
|
|
5996
6716
|
cost: {
|
|
5997
|
-
input: 0.
|
|
5998
|
-
output:
|
|
6717
|
+
input: 0.19999999999999998,
|
|
6718
|
+
output: 1.2,
|
|
5999
6719
|
cacheRead: 0,
|
|
6000
6720
|
cacheWrite: 0,
|
|
6001
6721
|
},
|
|
@@ -6540,11 +7260,11 @@ export const MODELS = {
|
|
|
6540
7260
|
cost: {
|
|
6541
7261
|
input: 0.3,
|
|
6542
7262
|
output: 0.8999999999999999,
|
|
6543
|
-
cacheRead: 0
|
|
7263
|
+
cacheRead: 0,
|
|
6544
7264
|
cacheWrite: 0,
|
|
6545
7265
|
},
|
|
6546
7266
|
contextWindow: 131072,
|
|
6547
|
-
maxTokens:
|
|
7267
|
+
maxTokens: 131072,
|
|
6548
7268
|
} satisfies Model<"openai-completions">,
|
|
6549
7269
|
"z-ai/glm-4.7": {
|
|
6550
7270
|
id: "z-ai/glm-4.7",
|
|
@@ -6555,13 +7275,13 @@ export const MODELS = {
|
|
|
6555
7275
|
reasoning: true,
|
|
6556
7276
|
input: ["text"],
|
|
6557
7277
|
cost: {
|
|
6558
|
-
input: 0.
|
|
6559
|
-
output:
|
|
7278
|
+
input: 0.39999999999999997,
|
|
7279
|
+
output: 1.5,
|
|
6560
7280
|
cacheRead: 0,
|
|
6561
7281
|
cacheWrite: 0,
|
|
6562
7282
|
},
|
|
6563
7283
|
contextWindow: 202752,
|
|
6564
|
-
maxTokens:
|
|
7284
|
+
maxTokens: 65535,
|
|
6565
7285
|
} satisfies Model<"openai-completions">,
|
|
6566
7286
|
},
|
|
6567
7287
|
"xai": {
|