@mariozechner/pi-ai 0.56.1 → 0.56.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +4 -3
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/models.d.ts +1 -1
  7. package/dist/models.d.ts.map +1 -1
  8. package/dist/models.generated.d.ts +194 -35
  9. package/dist/models.generated.d.ts.map +1 -1
  10. package/dist/models.generated.js +233 -79
  11. package/dist/models.generated.js.map +1 -1
  12. package/dist/models.js +2 -2
  13. package/dist/models.js.map +1 -1
  14. package/dist/providers/google-gemini-cli.d.ts.map +1 -1
  15. package/dist/providers/google-gemini-cli.js +21 -10
  16. package/dist/providers/google-gemini-cli.js.map +1 -1
  17. package/dist/providers/google-shared.d.ts.map +1 -1
  18. package/dist/providers/google-shared.js +16 -22
  19. package/dist/providers/google-shared.js.map +1 -1
  20. package/dist/providers/mistral.d.ts +22 -0
  21. package/dist/providers/mistral.d.ts.map +1 -0
  22. package/dist/providers/mistral.js +495 -0
  23. package/dist/providers/mistral.js.map +1 -0
  24. package/dist/providers/openai-codex-responses.d.ts.map +1 -1
  25. package/dist/providers/openai-codex-responses.js +1 -1
  26. package/dist/providers/openai-codex-responses.js.map +1 -1
  27. package/dist/providers/openai-completions.d.ts.map +1 -1
  28. package/dist/providers/openai-completions.js +8 -33
  29. package/dist/providers/openai-completions.js.map +1 -1
  30. package/dist/providers/openai-responses-shared.d.ts.map +1 -1
  31. package/dist/providers/openai-responses-shared.js +30 -13
  32. package/dist/providers/openai-responses-shared.js.map +1 -1
  33. package/dist/providers/register-builtins.d.ts.map +1 -1
  34. package/dist/providers/register-builtins.js +6 -0
  35. package/dist/providers/register-builtins.js.map +1 -1
  36. package/dist/types.d.ts +6 -3
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/types.js.map +1 -1
  39. package/dist/utils/hash.d.ts +3 -0
  40. package/dist/utils/hash.d.ts.map +1 -0
  41. package/dist/utils/hash.js +14 -0
  42. package/dist/utils/hash.js.map +1 -0
  43. package/dist/utils/overflow.d.ts +1 -1
  44. package/dist/utils/overflow.d.ts.map +1 -1
  45. package/dist/utils/overflow.js +4 -3
  46. package/dist/utils/overflow.js.map +1 -1
  47. package/package.json +5 -7
  48. package/oauth.d.ts +0 -1
  49. package/oauth.js +0 -1
@@ -2284,6 +2284,23 @@ export const MODELS = {
2284
2284
  contextWindow: 128000,
2285
2285
  maxTokens: 32000,
2286
2286
  },
2287
+ "gpt-5.4": {
2288
+ id: "gpt-5.4",
2289
+ name: "GPT-5.4",
2290
+ api: "azure-openai-responses",
2291
+ provider: "azure-openai-responses",
2292
+ baseUrl: "",
2293
+ reasoning: true,
2294
+ input: ["text", "image"],
2295
+ cost: {
2296
+ input: 2.5,
2297
+ output: 15,
2298
+ cacheRead: 0.25,
2299
+ cacheWrite: 0,
2300
+ },
2301
+ contextWindow: 272000,
2302
+ maxTokens: 128000,
2303
+ },
2287
2304
  "o1": {
2288
2305
  id: "o1",
2289
2306
  name: "o1",
@@ -2858,6 +2875,24 @@ export const MODELS = {
2858
2875
  contextWindow: 272000,
2859
2876
  maxTokens: 128000,
2860
2877
  },
2878
+ "gpt-5.3-codex": {
2879
+ id: "gpt-5.3-codex",
2880
+ name: "GPT-5.3 Codex",
2881
+ api: "openai-responses",
2882
+ provider: "github-copilot",
2883
+ baseUrl: "https://api.individual.githubcopilot.com",
2884
+ headers: { "User-Agent": "GitHubCopilotChat/0.35.0", "Editor-Version": "vscode/1.107.0", "Editor-Plugin-Version": "copilot-chat/0.35.0", "Copilot-Integration-Id": "vscode-chat" },
2885
+ reasoning: true,
2886
+ input: ["text", "image"],
2887
+ cost: {
2888
+ input: 0,
2889
+ output: 0,
2890
+ cacheRead: 0,
2891
+ cacheWrite: 0,
2892
+ },
2893
+ contextWindow: 272000,
2894
+ maxTokens: 128000,
2895
+ },
2861
2896
  "grok-code-fast-1": {
2862
2897
  id: "grok-code-fast-1",
2863
2898
  name: "Grok Code Fast 1",
@@ -4499,9 +4534,9 @@ export const MODELS = {
4499
4534
  "codestral-latest": {
4500
4535
  id: "codestral-latest",
4501
4536
  name: "Codestral",
4502
- api: "openai-completions",
4537
+ api: "mistral-conversations",
4503
4538
  provider: "mistral",
4504
- baseUrl: "https://api.mistral.ai/v1",
4539
+ baseUrl: "https://api.mistral.ai",
4505
4540
  reasoning: false,
4506
4541
  input: ["text"],
4507
4542
  cost: {
@@ -4516,9 +4551,9 @@ export const MODELS = {
4516
4551
  "devstral-2512": {
4517
4552
  id: "devstral-2512",
4518
4553
  name: "Devstral 2",
4519
- api: "openai-completions",
4554
+ api: "mistral-conversations",
4520
4555
  provider: "mistral",
4521
- baseUrl: "https://api.mistral.ai/v1",
4556
+ baseUrl: "https://api.mistral.ai",
4522
4557
  reasoning: false,
4523
4558
  input: ["text"],
4524
4559
  cost: {
@@ -4533,9 +4568,9 @@ export const MODELS = {
4533
4568
  "devstral-medium-2507": {
4534
4569
  id: "devstral-medium-2507",
4535
4570
  name: "Devstral Medium",
4536
- api: "openai-completions",
4571
+ api: "mistral-conversations",
4537
4572
  provider: "mistral",
4538
- baseUrl: "https://api.mistral.ai/v1",
4573
+ baseUrl: "https://api.mistral.ai",
4539
4574
  reasoning: false,
4540
4575
  input: ["text"],
4541
4576
  cost: {
@@ -4550,9 +4585,9 @@ export const MODELS = {
4550
4585
  "devstral-medium-latest": {
4551
4586
  id: "devstral-medium-latest",
4552
4587
  name: "Devstral 2",
4553
- api: "openai-completions",
4588
+ api: "mistral-conversations",
4554
4589
  provider: "mistral",
4555
- baseUrl: "https://api.mistral.ai/v1",
4590
+ baseUrl: "https://api.mistral.ai",
4556
4591
  reasoning: false,
4557
4592
  input: ["text"],
4558
4593
  cost: {
@@ -4567,9 +4602,9 @@ export const MODELS = {
4567
4602
  "devstral-small-2505": {
4568
4603
  id: "devstral-small-2505",
4569
4604
  name: "Devstral Small 2505",
4570
- api: "openai-completions",
4605
+ api: "mistral-conversations",
4571
4606
  provider: "mistral",
4572
- baseUrl: "https://api.mistral.ai/v1",
4607
+ baseUrl: "https://api.mistral.ai",
4573
4608
  reasoning: false,
4574
4609
  input: ["text"],
4575
4610
  cost: {
@@ -4584,9 +4619,9 @@ export const MODELS = {
4584
4619
  "devstral-small-2507": {
4585
4620
  id: "devstral-small-2507",
4586
4621
  name: "Devstral Small",
4587
- api: "openai-completions",
4622
+ api: "mistral-conversations",
4588
4623
  provider: "mistral",
4589
- baseUrl: "https://api.mistral.ai/v1",
4624
+ baseUrl: "https://api.mistral.ai",
4590
4625
  reasoning: false,
4591
4626
  input: ["text"],
4592
4627
  cost: {
@@ -4601,9 +4636,9 @@ export const MODELS = {
4601
4636
  "labs-devstral-small-2512": {
4602
4637
  id: "labs-devstral-small-2512",
4603
4638
  name: "Devstral Small 2",
4604
- api: "openai-completions",
4639
+ api: "mistral-conversations",
4605
4640
  provider: "mistral",
4606
- baseUrl: "https://api.mistral.ai/v1",
4641
+ baseUrl: "https://api.mistral.ai",
4607
4642
  reasoning: false,
4608
4643
  input: ["text", "image"],
4609
4644
  cost: {
@@ -4618,9 +4653,9 @@ export const MODELS = {
4618
4653
  "magistral-medium-latest": {
4619
4654
  id: "magistral-medium-latest",
4620
4655
  name: "Magistral Medium",
4621
- api: "openai-completions",
4656
+ api: "mistral-conversations",
4622
4657
  provider: "mistral",
4623
- baseUrl: "https://api.mistral.ai/v1",
4658
+ baseUrl: "https://api.mistral.ai",
4624
4659
  reasoning: true,
4625
4660
  input: ["text"],
4626
4661
  cost: {
@@ -4635,9 +4670,9 @@ export const MODELS = {
4635
4670
  "magistral-small": {
4636
4671
  id: "magistral-small",
4637
4672
  name: "Magistral Small",
4638
- api: "openai-completions",
4673
+ api: "mistral-conversations",
4639
4674
  provider: "mistral",
4640
- baseUrl: "https://api.mistral.ai/v1",
4675
+ baseUrl: "https://api.mistral.ai",
4641
4676
  reasoning: true,
4642
4677
  input: ["text"],
4643
4678
  cost: {
@@ -4652,9 +4687,9 @@ export const MODELS = {
4652
4687
  "ministral-3b-latest": {
4653
4688
  id: "ministral-3b-latest",
4654
4689
  name: "Ministral 3B",
4655
- api: "openai-completions",
4690
+ api: "mistral-conversations",
4656
4691
  provider: "mistral",
4657
- baseUrl: "https://api.mistral.ai/v1",
4692
+ baseUrl: "https://api.mistral.ai",
4658
4693
  reasoning: false,
4659
4694
  input: ["text"],
4660
4695
  cost: {
@@ -4669,9 +4704,9 @@ export const MODELS = {
4669
4704
  "ministral-8b-latest": {
4670
4705
  id: "ministral-8b-latest",
4671
4706
  name: "Ministral 8B",
4672
- api: "openai-completions",
4707
+ api: "mistral-conversations",
4673
4708
  provider: "mistral",
4674
- baseUrl: "https://api.mistral.ai/v1",
4709
+ baseUrl: "https://api.mistral.ai",
4675
4710
  reasoning: false,
4676
4711
  input: ["text"],
4677
4712
  cost: {
@@ -4686,9 +4721,9 @@ export const MODELS = {
4686
4721
  "mistral-large-2411": {
4687
4722
  id: "mistral-large-2411",
4688
4723
  name: "Mistral Large 2.1",
4689
- api: "openai-completions",
4724
+ api: "mistral-conversations",
4690
4725
  provider: "mistral",
4691
- baseUrl: "https://api.mistral.ai/v1",
4726
+ baseUrl: "https://api.mistral.ai",
4692
4727
  reasoning: false,
4693
4728
  input: ["text"],
4694
4729
  cost: {
@@ -4703,9 +4738,9 @@ export const MODELS = {
4703
4738
  "mistral-large-2512": {
4704
4739
  id: "mistral-large-2512",
4705
4740
  name: "Mistral Large 3",
4706
- api: "openai-completions",
4741
+ api: "mistral-conversations",
4707
4742
  provider: "mistral",
4708
- baseUrl: "https://api.mistral.ai/v1",
4743
+ baseUrl: "https://api.mistral.ai",
4709
4744
  reasoning: false,
4710
4745
  input: ["text", "image"],
4711
4746
  cost: {
@@ -4720,9 +4755,9 @@ export const MODELS = {
4720
4755
  "mistral-large-latest": {
4721
4756
  id: "mistral-large-latest",
4722
4757
  name: "Mistral Large",
4723
- api: "openai-completions",
4758
+ api: "mistral-conversations",
4724
4759
  provider: "mistral",
4725
- baseUrl: "https://api.mistral.ai/v1",
4760
+ baseUrl: "https://api.mistral.ai",
4726
4761
  reasoning: false,
4727
4762
  input: ["text", "image"],
4728
4763
  cost: {
@@ -4737,9 +4772,9 @@ export const MODELS = {
4737
4772
  "mistral-medium-2505": {
4738
4773
  id: "mistral-medium-2505",
4739
4774
  name: "Mistral Medium 3",
4740
- api: "openai-completions",
4775
+ api: "mistral-conversations",
4741
4776
  provider: "mistral",
4742
- baseUrl: "https://api.mistral.ai/v1",
4777
+ baseUrl: "https://api.mistral.ai",
4743
4778
  reasoning: false,
4744
4779
  input: ["text", "image"],
4745
4780
  cost: {
@@ -4754,9 +4789,9 @@ export const MODELS = {
4754
4789
  "mistral-medium-2508": {
4755
4790
  id: "mistral-medium-2508",
4756
4791
  name: "Mistral Medium 3.1",
4757
- api: "openai-completions",
4792
+ api: "mistral-conversations",
4758
4793
  provider: "mistral",
4759
- baseUrl: "https://api.mistral.ai/v1",
4794
+ baseUrl: "https://api.mistral.ai",
4760
4795
  reasoning: false,
4761
4796
  input: ["text", "image"],
4762
4797
  cost: {
@@ -4771,9 +4806,9 @@ export const MODELS = {
4771
4806
  "mistral-medium-latest": {
4772
4807
  id: "mistral-medium-latest",
4773
4808
  name: "Mistral Medium",
4774
- api: "openai-completions",
4809
+ api: "mistral-conversations",
4775
4810
  provider: "mistral",
4776
- baseUrl: "https://api.mistral.ai/v1",
4811
+ baseUrl: "https://api.mistral.ai",
4777
4812
  reasoning: false,
4778
4813
  input: ["text", "image"],
4779
4814
  cost: {
@@ -4788,9 +4823,9 @@ export const MODELS = {
4788
4823
  "mistral-nemo": {
4789
4824
  id: "mistral-nemo",
4790
4825
  name: "Mistral Nemo",
4791
- api: "openai-completions",
4826
+ api: "mistral-conversations",
4792
4827
  provider: "mistral",
4793
- baseUrl: "https://api.mistral.ai/v1",
4828
+ baseUrl: "https://api.mistral.ai",
4794
4829
  reasoning: false,
4795
4830
  input: ["text"],
4796
4831
  cost: {
@@ -4805,9 +4840,9 @@ export const MODELS = {
4805
4840
  "mistral-small-2506": {
4806
4841
  id: "mistral-small-2506",
4807
4842
  name: "Mistral Small 3.2",
4808
- api: "openai-completions",
4843
+ api: "mistral-conversations",
4809
4844
  provider: "mistral",
4810
- baseUrl: "https://api.mistral.ai/v1",
4845
+ baseUrl: "https://api.mistral.ai",
4811
4846
  reasoning: false,
4812
4847
  input: ["text", "image"],
4813
4848
  cost: {
@@ -4822,9 +4857,9 @@ export const MODELS = {
4822
4857
  "mistral-small-latest": {
4823
4858
  id: "mistral-small-latest",
4824
4859
  name: "Mistral Small",
4825
- api: "openai-completions",
4860
+ api: "mistral-conversations",
4826
4861
  provider: "mistral",
4827
- baseUrl: "https://api.mistral.ai/v1",
4862
+ baseUrl: "https://api.mistral.ai",
4828
4863
  reasoning: false,
4829
4864
  input: ["text", "image"],
4830
4865
  cost: {
@@ -4839,9 +4874,9 @@ export const MODELS = {
4839
4874
  "open-mistral-7b": {
4840
4875
  id: "open-mistral-7b",
4841
4876
  name: "Mistral 7B",
4842
- api: "openai-completions",
4877
+ api: "mistral-conversations",
4843
4878
  provider: "mistral",
4844
- baseUrl: "https://api.mistral.ai/v1",
4879
+ baseUrl: "https://api.mistral.ai",
4845
4880
  reasoning: false,
4846
4881
  input: ["text"],
4847
4882
  cost: {
@@ -4856,9 +4891,9 @@ export const MODELS = {
4856
4891
  "open-mixtral-8x22b": {
4857
4892
  id: "open-mixtral-8x22b",
4858
4893
  name: "Mixtral 8x22B",
4859
- api: "openai-completions",
4894
+ api: "mistral-conversations",
4860
4895
  provider: "mistral",
4861
- baseUrl: "https://api.mistral.ai/v1",
4896
+ baseUrl: "https://api.mistral.ai",
4862
4897
  reasoning: false,
4863
4898
  input: ["text"],
4864
4899
  cost: {
@@ -4873,9 +4908,9 @@ export const MODELS = {
4873
4908
  "open-mixtral-8x7b": {
4874
4909
  id: "open-mixtral-8x7b",
4875
4910
  name: "Mixtral 8x7B",
4876
- api: "openai-completions",
4911
+ api: "mistral-conversations",
4877
4912
  provider: "mistral",
4878
- baseUrl: "https://api.mistral.ai/v1",
4913
+ baseUrl: "https://api.mistral.ai",
4879
4914
  reasoning: false,
4880
4915
  input: ["text"],
4881
4916
  cost: {
@@ -4890,9 +4925,9 @@ export const MODELS = {
4890
4925
  "pixtral-12b": {
4891
4926
  id: "pixtral-12b",
4892
4927
  name: "Pixtral 12B",
4893
- api: "openai-completions",
4928
+ api: "mistral-conversations",
4894
4929
  provider: "mistral",
4895
- baseUrl: "https://api.mistral.ai/v1",
4930
+ baseUrl: "https://api.mistral.ai",
4896
4931
  reasoning: false,
4897
4932
  input: ["text", "image"],
4898
4933
  cost: {
@@ -4907,9 +4942,9 @@ export const MODELS = {
4907
4942
  "pixtral-large-latest": {
4908
4943
  id: "pixtral-large-latest",
4909
4944
  name: "Pixtral Large",
4910
- api: "openai-completions",
4945
+ api: "mistral-conversations",
4911
4946
  provider: "mistral",
4912
- baseUrl: "https://api.mistral.ai/v1",
4947
+ baseUrl: "https://api.mistral.ai",
4913
4948
  reasoning: false,
4914
4949
  input: ["text", "image"],
4915
4950
  cost: {
@@ -5399,6 +5434,23 @@ export const MODELS = {
5399
5434
  contextWindow: 128000,
5400
5435
  maxTokens: 32000,
5401
5436
  },
5437
+ "gpt-5.4": {
5438
+ id: "gpt-5.4",
5439
+ name: "GPT-5.4",
5440
+ api: "openai-responses",
5441
+ provider: "openai",
5442
+ baseUrl: "https://api.openai.com/v1",
5443
+ reasoning: true,
5444
+ input: ["text", "image"],
5445
+ cost: {
5446
+ input: 2.5,
5447
+ output: 15,
5448
+ cacheRead: 0.25,
5449
+ cacheWrite: 0,
5450
+ },
5451
+ contextWindow: 272000,
5452
+ maxTokens: 128000,
5453
+ },
5402
5454
  "o1": {
5403
5455
  id: "o1",
5404
5456
  name: "o1",
@@ -5656,6 +5708,23 @@ export const MODELS = {
5656
5708
  contextWindow: 128000,
5657
5709
  maxTokens: 128000,
5658
5710
  },
5711
+ "gpt-5.4": {
5712
+ id: "gpt-5.4",
5713
+ name: "GPT-5.4",
5714
+ api: "openai-codex-responses",
5715
+ provider: "openai-codex",
5716
+ baseUrl: "https://chatgpt.com/backend-api",
5717
+ reasoning: true,
5718
+ input: ["text", "image"],
5719
+ cost: {
5720
+ input: 2.5,
5721
+ output: 15,
5722
+ cacheRead: 0.25,
5723
+ cacheWrite: 0,
5724
+ },
5725
+ contextWindow: 272000,
5726
+ maxTokens: 128000,
5727
+ },
5659
5728
  },
5660
5729
  "opencode": {
5661
5730
  "big-pickle": {
@@ -6083,6 +6152,23 @@ export const MODELS = {
6083
6152
  contextWindow: 400000,
6084
6153
  maxTokens: 128000,
6085
6154
  },
6155
+ "gpt-5.4": {
6156
+ id: "gpt-5.4",
6157
+ name: "GPT-5.4",
6158
+ api: "openai-responses",
6159
+ provider: "opencode",
6160
+ baseUrl: "https://opencode.ai/zen/v1",
6161
+ reasoning: true,
6162
+ input: ["text", "image"],
6163
+ cost: {
6164
+ input: 2.5,
6165
+ output: 15,
6166
+ cacheRead: 0.25,
6167
+ cacheWrite: 0,
6168
+ },
6169
+ contextWindow: 272000,
6170
+ maxTokens: 128000,
6171
+ },
6086
6172
  "kimi-k2.5": {
6087
6173
  id: "kimi-k2.5",
6088
6174
  name: "Kimi K2.5",
@@ -6151,23 +6237,6 @@ export const MODELS = {
6151
6237
  contextWindow: 204800,
6152
6238
  maxTokens: 131072,
6153
6239
  },
6154
- "trinity-large-preview-free": {
6155
- id: "trinity-large-preview-free",
6156
- name: "Trinity Large Preview",
6157
- api: "openai-completions",
6158
- provider: "opencode",
6159
- baseUrl: "https://opencode.ai/zen/v1",
6160
- reasoning: false,
6161
- input: ["text"],
6162
- cost: {
6163
- input: 0,
6164
- output: 0,
6165
- cacheRead: 0,
6166
- cacheWrite: 0,
6167
- },
6168
- contextWindow: 131072,
6169
- maxTokens: 131072,
6170
- },
6171
6240
  },
6172
6241
  "opencode-go": {
6173
6242
  "glm-5": {
@@ -6543,7 +6612,7 @@ export const MODELS = {
6543
6612
  cacheRead: 0.3,
6544
6613
  cacheWrite: 3.75,
6545
6614
  },
6546
- contextWindow: 1000000,
6615
+ contextWindow: 200000,
6547
6616
  maxTokens: 64000,
6548
6617
  },
6549
6618
  "anthropic/claude-sonnet-4.5": {
@@ -6812,11 +6881,11 @@ export const MODELS = {
6812
6881
  cost: {
6813
6882
  input: 0.19999999999999998,
6814
6883
  output: 0.77,
6815
- cacheRead: 0.135,
6884
+ cacheRead: 0.13,
6816
6885
  cacheWrite: 0,
6817
6886
  },
6818
6887
  contextWindow: 163840,
6819
- maxTokens: 4096,
6888
+ maxTokens: 163840,
6820
6889
  },
6821
6890
  "deepseek/deepseek-chat-v3.1": {
6822
6891
  id: "deepseek/deepseek-chat-v3.1",
@@ -7224,7 +7293,24 @@ export const MODELS = {
7224
7293
  cacheWrite: 0,
7225
7294
  },
7226
7295
  contextWindow: 128000,
7227
- maxTokens: 16384,
7296
+ maxTokens: 32000,
7297
+ },
7298
+ "inception/mercury-2": {
7299
+ id: "inception/mercury-2",
7300
+ name: "Inception: Mercury 2",
7301
+ api: "openai-completions",
7302
+ provider: "openrouter",
7303
+ baseUrl: "https://openrouter.ai/api/v1",
7304
+ reasoning: true,
7305
+ input: ["text"],
7306
+ cost: {
7307
+ input: 0.25,
7308
+ output: 0.75,
7309
+ cacheRead: 0.024999999999999998,
7310
+ cacheWrite: 0,
7311
+ },
7312
+ contextWindow: 128000,
7313
+ maxTokens: 50000,
7228
7314
  },
7229
7315
  "inception/mercury-coder": {
7230
7316
  id: "inception/mercury-coder",
@@ -7241,7 +7327,7 @@ export const MODELS = {
7241
7327
  cacheWrite: 0,
7242
7328
  },
7243
7329
  contextWindow: 128000,
7244
- maxTokens: 16384,
7330
+ maxTokens: 32000,
7245
7331
  },
7246
7332
  "kwaipilot/kat-coder-pro": {
7247
7333
  id: "kwaipilot/kat-coder-pro",
@@ -7949,13 +8035,13 @@ export const MODELS = {
7949
8035
  reasoning: true,
7950
8036
  input: ["text", "image"],
7951
8037
  cost: {
7952
- input: 0.44999999999999996,
7953
- output: 2.2,
7954
- cacheRead: 0.22499999999999998,
8038
+ input: 0.41,
8039
+ output: 2.06,
8040
+ cacheRead: 0.07,
7955
8041
  cacheWrite: 0,
7956
8042
  },
7957
8043
  contextWindow: 262144,
7958
- maxTokens: 65535,
8044
+ maxTokens: 4096,
7959
8045
  },
7960
8046
  "nex-agi/deepseek-v3.1-nex-n1": {
7961
8047
  id: "nex-agi/deepseek-v3.1-nex-n1",
@@ -8722,6 +8808,40 @@ export const MODELS = {
8722
8808
  contextWindow: 400000,
8723
8809
  maxTokens: 128000,
8724
8810
  },
8811
+ "openai/gpt-5.4": {
8812
+ id: "openai/gpt-5.4",
8813
+ name: "OpenAI: GPT-5.4",
8814
+ api: "openai-completions",
8815
+ provider: "openrouter",
8816
+ baseUrl: "https://openrouter.ai/api/v1",
8817
+ reasoning: true,
8818
+ input: ["text", "image"],
8819
+ cost: {
8820
+ input: 2.5,
8821
+ output: 15,
8822
+ cacheRead: 0.25,
8823
+ cacheWrite: 0,
8824
+ },
8825
+ contextWindow: 1050000,
8826
+ maxTokens: 128000,
8827
+ },
8828
+ "openai/gpt-5.4-pro": {
8829
+ id: "openai/gpt-5.4-pro",
8830
+ name: "OpenAI: GPT-5.4 Pro",
8831
+ api: "openai-completions",
8832
+ provider: "openrouter",
8833
+ baseUrl: "https://openrouter.ai/api/v1",
8834
+ reasoning: true,
8835
+ input: ["text", "image"],
8836
+ cost: {
8837
+ input: 30,
8838
+ output: 180,
8839
+ cacheRead: 0,
8840
+ cacheWrite: 0,
8841
+ },
8842
+ contextWindow: 1050000,
8843
+ maxTokens: 128000,
8844
+ },
8725
8845
  "openai/gpt-oss-120b": {
8726
8846
  id: "openai/gpt-oss-120b",
8727
8847
  name: "OpenAI: gpt-oss-120b",
@@ -10261,9 +10381,9 @@ export const MODELS = {
10261
10381
  reasoning: true,
10262
10382
  input: ["text"],
10263
10383
  cost: {
10264
- input: 0.7999999999999999,
10265
- output: 2.56,
10266
- cacheRead: 0.16,
10384
+ input: 0.6,
10385
+ output: 1.9,
10386
+ cacheRead: 0.119,
10267
10387
  cacheWrite: 0,
10268
10388
  },
10269
10389
  contextWindow: 202752,
@@ -11971,6 +12091,40 @@ export const MODELS = {
11971
12091
  contextWindow: 400000,
11972
12092
  maxTokens: 128000,
11973
12093
  },
12094
+ "openai/gpt-5.4": {
12095
+ id: "openai/gpt-5.4",
12096
+ name: "GPT 5.4",
12097
+ api: "anthropic-messages",
12098
+ provider: "vercel-ai-gateway",
12099
+ baseUrl: "https://ai-gateway.vercel.sh",
12100
+ reasoning: true,
12101
+ input: ["text", "image"],
12102
+ cost: {
12103
+ input: 2.5,
12104
+ output: 15,
12105
+ cacheRead: 0.25,
12106
+ cacheWrite: 0,
12107
+ },
12108
+ contextWindow: 1050000,
12109
+ maxTokens: 128000,
12110
+ },
12111
+ "openai/gpt-5.4-pro": {
12112
+ id: "openai/gpt-5.4-pro",
12113
+ name: "GPT 5.4 Pro",
12114
+ api: "anthropic-messages",
12115
+ provider: "vercel-ai-gateway",
12116
+ baseUrl: "https://ai-gateway.vercel.sh",
12117
+ reasoning: true,
12118
+ input: ["text", "image"],
12119
+ cost: {
12120
+ input: 30,
12121
+ output: 180,
12122
+ cacheRead: 0,
12123
+ cacheWrite: 0,
12124
+ },
12125
+ contextWindow: 1050000,
12126
+ maxTokens: 128000,
12127
+ },
11974
12128
  "openai/gpt-oss-120b": {
11975
12129
  id: "openai/gpt-oss-120b",
11976
12130
  name: "gpt-oss-120b",