@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.
@@ -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: 150,
2477
- output: 600,
2478
- cacheRead: 0,
3179
+ input: 1.07,
3180
+ output: 8.5,
3181
+ cacheRead: 0.107,
2479
3182
  cacheWrite: 0,
2480
3183
  },
2481
- contextWindow: 200000,
2482
- maxTokens: 100000,
3184
+ contextWindow: 400000,
3185
+ maxTokens: 128000,
2483
3186
  } satisfies Model<"openai-responses">,
2484
- "o3": {
2485
- id: "o3",
2486
- name: "o3",
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: "openai",
2489
- baseUrl: "https://api.openai.com/v1",
3191
+ provider: "opencode",
3192
+ baseUrl: "https://opencode.ai/zen/v1",
2490
3193
  reasoning: true,
2491
3194
  input: ["text", "image"],
2492
3195
  cost: {
2493
- input: 2,
2494
- output: 8,
2495
- cacheRead: 0.5,
3196
+ input: 1.25,
3197
+ output: 10,
3198
+ cacheRead: 0.125,
2496
3199
  cacheWrite: 0,
2497
3200
  },
2498
- contextWindow: 200000,
2499
- maxTokens: 100000,
3201
+ contextWindow: 400000,
3202
+ maxTokens: 128000,
2500
3203
  } satisfies Model<"openai-responses">,
2501
- "o3-deep-research": {
2502
- id: "o3-deep-research",
2503
- name: "o3-deep-research",
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: "openai",
2506
- baseUrl: "https://api.openai.com/v1",
3208
+ provider: "opencode",
3209
+ baseUrl: "https://opencode.ai/zen/v1",
2507
3210
  reasoning: true,
2508
3211
  input: ["text", "image"],
2509
3212
  cost: {
2510
- input: 10,
2511
- output: 40,
2512
- cacheRead: 2.5,
3213
+ input: 0.25,
3214
+ output: 2,
3215
+ cacheRead: 0.025,
2513
3216
  cacheWrite: 0,
2514
3217
  },
2515
- contextWindow: 200000,
2516
- maxTokens: 100000,
3218
+ contextWindow: 400000,
3219
+ maxTokens: 128000,
2517
3220
  } satisfies Model<"openai-responses">,
2518
- "o3-mini": {
2519
- id: "o3-mini",
2520
- name: "o3-mini",
3221
+ "gpt-5.2": {
3222
+ id: "gpt-5.2",
3223
+ name: "GPT-5.2",
2521
3224
  api: "openai-responses",
2522
- provider: "openai",
2523
- baseUrl: "https://api.openai.com/v1",
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.1,
2528
- output: 4.4,
2529
- cacheRead: 0.55,
3230
+ input: 1.75,
3231
+ output: 14,
3232
+ cacheRead: 0.175,
2530
3233
  cacheWrite: 0,
2531
3234
  },
2532
- contextWindow: 200000,
2533
- maxTokens: 100000,
3235
+ contextWindow: 400000,
3236
+ maxTokens: 128000,
2534
3237
  } satisfies Model<"openai-responses">,
2535
- "o3-pro": {
2536
- id: "o3-pro",
2537
- name: "o3-pro",
2538
- api: "openai-responses",
2539
- provider: "openai",
2540
- baseUrl: "https://api.openai.com/v1",
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", "image"],
3245
+ input: ["text"],
2543
3246
  cost: {
2544
- input: 20,
2545
- output: 80,
3247
+ input: 0,
3248
+ output: 0,
2546
3249
  cacheRead: 0,
2547
3250
  cacheWrite: 0,
2548
3251
  },
2549
- contextWindow: 200000,
2550
- maxTokens: 100000,
2551
- } satisfies Model<"openai-responses">,
2552
- "o4-mini": {
2553
- id: "o4-mini",
2554
- name: "o4-mini",
2555
- api: "openai-responses",
2556
- provider: "openai",
2557
- baseUrl: "https://api.openai.com/v1",
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", "image"],
3279
+ input: ["text"],
2560
3280
  cost: {
2561
- input: 1.1,
2562
- output: 4.4,
2563
- cacheRead: 0.28,
3281
+ input: 0.4,
3282
+ output: 2.5,
3283
+ cacheRead: 0.4,
2564
3284
  cacheWrite: 0,
2565
3285
  },
2566
- contextWindow: 200000,
2567
- maxTokens: 100000,
2568
- } satisfies Model<"openai-responses">,
2569
- "o4-mini-deep-research": {
2570
- id: "o4-mini-deep-research",
2571
- name: "o4-mini-deep-research",
2572
- api: "openai-responses",
2573
- provider: "openai",
2574
- baseUrl: "https://api.openai.com/v1",
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", "image"],
3296
+ input: ["text"],
2577
3297
  cost: {
2578
- input: 2,
2579
- output: 8,
2580
- cacheRead: 0.5,
3298
+ input: 0,
3299
+ output: 0,
3300
+ cacheRead: 0,
2581
3301
  cacheWrite: 0,
2582
3302
  },
2583
- contextWindow: 200000,
2584
- maxTokens: 100000,
2585
- } satisfies Model<"openai-responses">,
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.036,
3533
- output: 0.064,
4286
+ input: 0.04,
4287
+ output: 0.15,
3534
4288
  cacheRead: 0,
3535
4289
  cacheWrite: 0,
3536
4290
  },
3537
- contextWindow: 131072,
3538
- maxTokens: 4096,
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.12,
3890
- output: 0.48,
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.32,
4485
- output: 0.48,
5187
+ input: 0.39999999999999997,
5188
+ output: 1.75,
4486
5189
  cacheRead: 0,
4487
5190
  cacheWrite: 0,
4488
5191
  },
4489
5192
  contextWindow: 262144,
4490
- maxTokens: 4096,
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.02,
5267
- output: 0.09999999999999999,
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.016,
5318
- output: 0.06,
6020
+ input: 0.02,
6021
+ output: 0.09999999999999999,
5319
6022
  cacheRead: 0,
5320
6023
  cacheWrite: 0,
5321
6024
  },
5322
6025
  contextWindow: 131072,
5323
- maxTokens: 4096,
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.06,
5964
- output: 0.6,
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.12,
5998
- output: 0.56,
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.049999999999999996,
7263
+ cacheRead: 0,
6544
7264
  cacheWrite: 0,
6545
7265
  },
6546
7266
  contextWindow: 131072,
6547
- maxTokens: 24000,
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.16,
6559
- output: 0.7999999999999999,
7278
+ input: 0.39999999999999997,
7279
+ output: 1.5,
6560
7280
  cacheRead: 0,
6561
7281
  cacheWrite: 0,
6562
7282
  },
6563
7283
  contextWindow: 202752,
6564
- maxTokens: 4096,
7284
+ maxTokens: 65535,
6565
7285
  } satisfies Model<"openai-completions">,
6566
7286
  },
6567
7287
  "xai": {