@draht/ai 2026.3.5 → 2026.3.11-1

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 (74) hide show
  1. package/README.md +14 -10
  2. package/dist/env-api-keys.d.ts.map +1 -1
  3. package/dist/env-api-keys.js +5 -2
  4. package/dist/env-api-keys.js.map +1 -1
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/models.d.ts +1 -1
  10. package/dist/models.d.ts.map +1 -1
  11. package/dist/models.generated.d.ts +357 -124
  12. package/dist/models.generated.d.ts.map +1 -1
  13. package/dist/models.generated.js +417 -194
  14. package/dist/models.generated.js.map +1 -1
  15. package/dist/models.js +2 -2
  16. package/dist/models.js.map +1 -1
  17. package/dist/providers/amazon-bedrock.d.ts.map +1 -1
  18. package/dist/providers/amazon-bedrock.js +5 -2
  19. package/dist/providers/amazon-bedrock.js.map +1 -1
  20. package/dist/providers/anthropic.d.ts.map +1 -1
  21. package/dist/providers/anthropic.js +5 -2
  22. package/dist/providers/anthropic.js.map +1 -1
  23. package/dist/providers/azure-openai-responses.d.ts.map +1 -1
  24. package/dist/providers/azure-openai-responses.js +5 -2
  25. package/dist/providers/azure-openai-responses.js.map +1 -1
  26. package/dist/providers/google-gemini-cli.d.ts.map +1 -1
  27. package/dist/providers/google-gemini-cli.js +30 -17
  28. package/dist/providers/google-gemini-cli.js.map +1 -1
  29. package/dist/providers/google-shared.d.ts.map +1 -1
  30. package/dist/providers/google-shared.js +16 -22
  31. package/dist/providers/google-shared.js.map +1 -1
  32. package/dist/providers/google-vertex.d.ts.map +1 -1
  33. package/dist/providers/google-vertex.js +26 -5
  34. package/dist/providers/google-vertex.js.map +1 -1
  35. package/dist/providers/google.d.ts.map +1 -1
  36. package/dist/providers/google.js +5 -2
  37. package/dist/providers/google.js.map +1 -1
  38. package/dist/providers/mistral.d.ts +22 -0
  39. package/dist/providers/mistral.d.ts.map +1 -0
  40. package/dist/providers/mistral.js +498 -0
  41. package/dist/providers/mistral.js.map +1 -0
  42. package/dist/providers/openai-codex-responses.d.ts.map +1 -1
  43. package/dist/providers/openai-codex-responses.js +6 -3
  44. package/dist/providers/openai-codex-responses.js.map +1 -1
  45. package/dist/providers/openai-completions.d.ts.map +1 -1
  46. package/dist/providers/openai-completions.js +44 -67
  47. package/dist/providers/openai-completions.js.map +1 -1
  48. package/dist/providers/openai-responses-shared.d.ts.map +1 -1
  49. package/dist/providers/openai-responses-shared.js +36 -14
  50. package/dist/providers/openai-responses-shared.js.map +1 -1
  51. package/dist/providers/openai-responses.d.ts.map +1 -1
  52. package/dist/providers/openai-responses.js +5 -2
  53. package/dist/providers/openai-responses.js.map +1 -1
  54. package/dist/providers/register-builtins.d.ts +3 -2
  55. package/dist/providers/register-builtins.d.ts.map +1 -1
  56. package/dist/providers/register-builtins.js +6 -0
  57. package/dist/providers/register-builtins.js.map +1 -1
  58. package/dist/types.d.ts +9 -5
  59. package/dist/types.d.ts.map +1 -1
  60. package/dist/types.js.map +1 -1
  61. package/dist/utils/hash.d.ts +3 -0
  62. package/dist/utils/hash.d.ts.map +1 -0
  63. package/dist/utils/hash.js +14 -0
  64. package/dist/utils/hash.js.map +1 -0
  65. package/dist/utils/oauth/github-copilot.d.ts.map +1 -1
  66. package/dist/utils/oauth/github-copilot.js +23 -12
  67. package/dist/utils/oauth/github-copilot.js.map +1 -1
  68. package/dist/utils/overflow.d.ts +1 -1
  69. package/dist/utils/overflow.d.ts.map +1 -1
  70. package/dist/utils/overflow.js +5 -3
  71. package/dist/utils/overflow.js.map +1 -1
  72. package/package.json +7 -8
  73. package/oauth.d.ts +0 -1
  74. package/oauth.js +0 -1
@@ -886,6 +886,23 @@ export const MODELS = {
886
886
  contextWindow: 204800,
887
887
  maxTokens: 131072,
888
888
  },
889
+ "mistral.devstral-2-123b": {
890
+ id: "mistral.devstral-2-123b",
891
+ name: "Devstral 2 135B",
892
+ api: "bedrock-converse-stream",
893
+ provider: "amazon-bedrock",
894
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
895
+ reasoning: false,
896
+ input: ["text"],
897
+ cost: {
898
+ input: 0.4,
899
+ output: 2,
900
+ cacheRead: 0,
901
+ cacheWrite: 0,
902
+ },
903
+ contextWindow: 256000,
904
+ maxTokens: 8192,
905
+ },
889
906
  "mistral.ministral-3-14b-instruct": {
890
907
  id: "mistral.ministral-3-14b-instruct",
891
908
  name: "Ministral 14B 3.0",
@@ -2284,6 +2301,40 @@ export const MODELS = {
2284
2301
  contextWindow: 128000,
2285
2302
  maxTokens: 32000,
2286
2303
  },
2304
+ "gpt-5.4": {
2305
+ id: "gpt-5.4",
2306
+ name: "GPT-5.4",
2307
+ api: "azure-openai-responses",
2308
+ provider: "azure-openai-responses",
2309
+ baseUrl: "",
2310
+ reasoning: true,
2311
+ input: ["text", "image"],
2312
+ cost: {
2313
+ input: 2.5,
2314
+ output: 15,
2315
+ cacheRead: 0.25,
2316
+ cacheWrite: 0,
2317
+ },
2318
+ contextWindow: 272000,
2319
+ maxTokens: 128000,
2320
+ },
2321
+ "gpt-5.4-pro": {
2322
+ id: "gpt-5.4-pro",
2323
+ name: "GPT-5.4 Pro",
2324
+ api: "azure-openai-responses",
2325
+ provider: "azure-openai-responses",
2326
+ baseUrl: "",
2327
+ reasoning: true,
2328
+ input: ["text", "image"],
2329
+ cost: {
2330
+ input: 30,
2331
+ output: 180,
2332
+ cacheRead: 0,
2333
+ cacheWrite: 0,
2334
+ },
2335
+ contextWindow: 1050000,
2336
+ maxTokens: 128000,
2337
+ },
2287
2338
  "o1": {
2288
2339
  id: "o1",
2289
2340
  name: "o1",
@@ -2858,6 +2909,42 @@ export const MODELS = {
2858
2909
  contextWindow: 272000,
2859
2910
  maxTokens: 128000,
2860
2911
  },
2912
+ "gpt-5.3-codex": {
2913
+ id: "gpt-5.3-codex",
2914
+ name: "GPT-5.3-Codex",
2915
+ api: "openai-responses",
2916
+ provider: "github-copilot",
2917
+ baseUrl: "https://api.individual.githubcopilot.com",
2918
+ 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" },
2919
+ reasoning: true,
2920
+ input: ["text", "image"],
2921
+ cost: {
2922
+ input: 0,
2923
+ output: 0,
2924
+ cacheRead: 0,
2925
+ cacheWrite: 0,
2926
+ },
2927
+ contextWindow: 400000,
2928
+ maxTokens: 128000,
2929
+ },
2930
+ "gpt-5.4": {
2931
+ id: "gpt-5.4",
2932
+ name: "GPT-5.4",
2933
+ api: "openai-responses",
2934
+ provider: "github-copilot",
2935
+ baseUrl: "https://api.individual.githubcopilot.com",
2936
+ 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" },
2937
+ reasoning: true,
2938
+ input: ["text", "image"],
2939
+ cost: {
2940
+ input: 0,
2941
+ output: 0,
2942
+ cacheRead: 0,
2943
+ cacheWrite: 0,
2944
+ },
2945
+ contextWindow: 400000,
2946
+ maxTokens: 128000,
2947
+ },
2861
2948
  "grok-code-fast-1": {
2862
2949
  id: "grok-code-fast-1",
2863
2950
  name: "Grok Code Fast 1",
@@ -3177,9 +3264,9 @@ export const MODELS = {
3177
3264
  reasoning: true,
3178
3265
  input: ["text", "image"],
3179
3266
  cost: {
3180
- input: 0,
3181
- output: 0,
3182
- cacheRead: 0,
3267
+ input: 0.5,
3268
+ output: 3,
3269
+ cacheRead: 0.05,
3183
3270
  cacheWrite: 0,
3184
3271
  },
3185
3272
  contextWindow: 1048576,
@@ -3357,6 +3444,23 @@ export const MODELS = {
3357
3444
  contextWindow: 200000,
3358
3445
  maxTokens: 64000,
3359
3446
  },
3447
+ "claude-sonnet-4-6": {
3448
+ id: "claude-sonnet-4-6",
3449
+ name: "Claude Sonnet 4.6 (Antigravity)",
3450
+ api: "google-gemini-cli",
3451
+ provider: "google-antigravity",
3452
+ baseUrl: "https://daily-cloudcode-pa.sandbox.googleapis.com",
3453
+ reasoning: true,
3454
+ input: ["text", "image"],
3455
+ cost: {
3456
+ input: 3,
3457
+ output: 15,
3458
+ cacheRead: 0.3,
3459
+ cacheWrite: 3.75,
3460
+ },
3461
+ contextWindow: 200000,
3462
+ maxTokens: 64000,
3463
+ },
3360
3464
  "gemini-3-flash": {
3361
3465
  id: "gemini-3-flash",
3362
3466
  name: "Gemini 3 Flash (Antigravity)",
@@ -4498,10 +4602,10 @@ export const MODELS = {
4498
4602
  "mistral": {
4499
4603
  "codestral-latest": {
4500
4604
  id: "codestral-latest",
4501
- name: "Codestral",
4502
- api: "openai-completions",
4605
+ name: "Codestral (latest)",
4606
+ api: "mistral-conversations",
4503
4607
  provider: "mistral",
4504
- baseUrl: "https://api.mistral.ai/v1",
4608
+ baseUrl: "https://api.mistral.ai",
4505
4609
  reasoning: false,
4506
4610
  input: ["text"],
4507
4611
  cost: {
@@ -4516,9 +4620,9 @@ export const MODELS = {
4516
4620
  "devstral-2512": {
4517
4621
  id: "devstral-2512",
4518
4622
  name: "Devstral 2",
4519
- api: "openai-completions",
4623
+ api: "mistral-conversations",
4520
4624
  provider: "mistral",
4521
- baseUrl: "https://api.mistral.ai/v1",
4625
+ baseUrl: "https://api.mistral.ai",
4522
4626
  reasoning: false,
4523
4627
  input: ["text"],
4524
4628
  cost: {
@@ -4533,9 +4637,9 @@ export const MODELS = {
4533
4637
  "devstral-medium-2507": {
4534
4638
  id: "devstral-medium-2507",
4535
4639
  name: "Devstral Medium",
4536
- api: "openai-completions",
4640
+ api: "mistral-conversations",
4537
4641
  provider: "mistral",
4538
- baseUrl: "https://api.mistral.ai/v1",
4642
+ baseUrl: "https://api.mistral.ai",
4539
4643
  reasoning: false,
4540
4644
  input: ["text"],
4541
4645
  cost: {
@@ -4549,10 +4653,10 @@ export const MODELS = {
4549
4653
  },
4550
4654
  "devstral-medium-latest": {
4551
4655
  id: "devstral-medium-latest",
4552
- name: "Devstral 2",
4553
- api: "openai-completions",
4656
+ name: "Devstral 2 (latest)",
4657
+ api: "mistral-conversations",
4554
4658
  provider: "mistral",
4555
- baseUrl: "https://api.mistral.ai/v1",
4659
+ baseUrl: "https://api.mistral.ai",
4556
4660
  reasoning: false,
4557
4661
  input: ["text"],
4558
4662
  cost: {
@@ -4567,9 +4671,9 @@ export const MODELS = {
4567
4671
  "devstral-small-2505": {
4568
4672
  id: "devstral-small-2505",
4569
4673
  name: "Devstral Small 2505",
4570
- api: "openai-completions",
4674
+ api: "mistral-conversations",
4571
4675
  provider: "mistral",
4572
- baseUrl: "https://api.mistral.ai/v1",
4676
+ baseUrl: "https://api.mistral.ai",
4573
4677
  reasoning: false,
4574
4678
  input: ["text"],
4575
4679
  cost: {
@@ -4584,9 +4688,9 @@ export const MODELS = {
4584
4688
  "devstral-small-2507": {
4585
4689
  id: "devstral-small-2507",
4586
4690
  name: "Devstral Small",
4587
- api: "openai-completions",
4691
+ api: "mistral-conversations",
4588
4692
  provider: "mistral",
4589
- baseUrl: "https://api.mistral.ai/v1",
4693
+ baseUrl: "https://api.mistral.ai",
4590
4694
  reasoning: false,
4591
4695
  input: ["text"],
4592
4696
  cost: {
@@ -4601,9 +4705,9 @@ export const MODELS = {
4601
4705
  "labs-devstral-small-2512": {
4602
4706
  id: "labs-devstral-small-2512",
4603
4707
  name: "Devstral Small 2",
4604
- api: "openai-completions",
4708
+ api: "mistral-conversations",
4605
4709
  provider: "mistral",
4606
- baseUrl: "https://api.mistral.ai/v1",
4710
+ baseUrl: "https://api.mistral.ai",
4607
4711
  reasoning: false,
4608
4712
  input: ["text", "image"],
4609
4713
  cost: {
@@ -4617,10 +4721,10 @@ export const MODELS = {
4617
4721
  },
4618
4722
  "magistral-medium-latest": {
4619
4723
  id: "magistral-medium-latest",
4620
- name: "Magistral Medium",
4621
- api: "openai-completions",
4724
+ name: "Magistral Medium (latest)",
4725
+ api: "mistral-conversations",
4622
4726
  provider: "mistral",
4623
- baseUrl: "https://api.mistral.ai/v1",
4727
+ baseUrl: "https://api.mistral.ai",
4624
4728
  reasoning: true,
4625
4729
  input: ["text"],
4626
4730
  cost: {
@@ -4635,9 +4739,9 @@ export const MODELS = {
4635
4739
  "magistral-small": {
4636
4740
  id: "magistral-small",
4637
4741
  name: "Magistral Small",
4638
- api: "openai-completions",
4742
+ api: "mistral-conversations",
4639
4743
  provider: "mistral",
4640
- baseUrl: "https://api.mistral.ai/v1",
4744
+ baseUrl: "https://api.mistral.ai",
4641
4745
  reasoning: true,
4642
4746
  input: ["text"],
4643
4747
  cost: {
@@ -4651,10 +4755,10 @@ export const MODELS = {
4651
4755
  },
4652
4756
  "ministral-3b-latest": {
4653
4757
  id: "ministral-3b-latest",
4654
- name: "Ministral 3B",
4655
- api: "openai-completions",
4758
+ name: "Ministral 3B (latest)",
4759
+ api: "mistral-conversations",
4656
4760
  provider: "mistral",
4657
- baseUrl: "https://api.mistral.ai/v1",
4761
+ baseUrl: "https://api.mistral.ai",
4658
4762
  reasoning: false,
4659
4763
  input: ["text"],
4660
4764
  cost: {
@@ -4668,10 +4772,10 @@ export const MODELS = {
4668
4772
  },
4669
4773
  "ministral-8b-latest": {
4670
4774
  id: "ministral-8b-latest",
4671
- name: "Ministral 8B",
4672
- api: "openai-completions",
4775
+ name: "Ministral 8B (latest)",
4776
+ api: "mistral-conversations",
4673
4777
  provider: "mistral",
4674
- baseUrl: "https://api.mistral.ai/v1",
4778
+ baseUrl: "https://api.mistral.ai",
4675
4779
  reasoning: false,
4676
4780
  input: ["text"],
4677
4781
  cost: {
@@ -4686,9 +4790,9 @@ export const MODELS = {
4686
4790
  "mistral-large-2411": {
4687
4791
  id: "mistral-large-2411",
4688
4792
  name: "Mistral Large 2.1",
4689
- api: "openai-completions",
4793
+ api: "mistral-conversations",
4690
4794
  provider: "mistral",
4691
- baseUrl: "https://api.mistral.ai/v1",
4795
+ baseUrl: "https://api.mistral.ai",
4692
4796
  reasoning: false,
4693
4797
  input: ["text"],
4694
4798
  cost: {
@@ -4703,9 +4807,9 @@ export const MODELS = {
4703
4807
  "mistral-large-2512": {
4704
4808
  id: "mistral-large-2512",
4705
4809
  name: "Mistral Large 3",
4706
- api: "openai-completions",
4810
+ api: "mistral-conversations",
4707
4811
  provider: "mistral",
4708
- baseUrl: "https://api.mistral.ai/v1",
4812
+ baseUrl: "https://api.mistral.ai",
4709
4813
  reasoning: false,
4710
4814
  input: ["text", "image"],
4711
4815
  cost: {
@@ -4719,10 +4823,10 @@ export const MODELS = {
4719
4823
  },
4720
4824
  "mistral-large-latest": {
4721
4825
  id: "mistral-large-latest",
4722
- name: "Mistral Large",
4723
- api: "openai-completions",
4826
+ name: "Mistral Large (latest)",
4827
+ api: "mistral-conversations",
4724
4828
  provider: "mistral",
4725
- baseUrl: "https://api.mistral.ai/v1",
4829
+ baseUrl: "https://api.mistral.ai",
4726
4830
  reasoning: false,
4727
4831
  input: ["text", "image"],
4728
4832
  cost: {
@@ -4737,9 +4841,9 @@ export const MODELS = {
4737
4841
  "mistral-medium-2505": {
4738
4842
  id: "mistral-medium-2505",
4739
4843
  name: "Mistral Medium 3",
4740
- api: "openai-completions",
4844
+ api: "mistral-conversations",
4741
4845
  provider: "mistral",
4742
- baseUrl: "https://api.mistral.ai/v1",
4846
+ baseUrl: "https://api.mistral.ai",
4743
4847
  reasoning: false,
4744
4848
  input: ["text", "image"],
4745
4849
  cost: {
@@ -4754,9 +4858,9 @@ export const MODELS = {
4754
4858
  "mistral-medium-2508": {
4755
4859
  id: "mistral-medium-2508",
4756
4860
  name: "Mistral Medium 3.1",
4757
- api: "openai-completions",
4861
+ api: "mistral-conversations",
4758
4862
  provider: "mistral",
4759
- baseUrl: "https://api.mistral.ai/v1",
4863
+ baseUrl: "https://api.mistral.ai",
4760
4864
  reasoning: false,
4761
4865
  input: ["text", "image"],
4762
4866
  cost: {
@@ -4770,10 +4874,10 @@ export const MODELS = {
4770
4874
  },
4771
4875
  "mistral-medium-latest": {
4772
4876
  id: "mistral-medium-latest",
4773
- name: "Mistral Medium",
4774
- api: "openai-completions",
4877
+ name: "Mistral Medium (latest)",
4878
+ api: "mistral-conversations",
4775
4879
  provider: "mistral",
4776
- baseUrl: "https://api.mistral.ai/v1",
4880
+ baseUrl: "https://api.mistral.ai",
4777
4881
  reasoning: false,
4778
4882
  input: ["text", "image"],
4779
4883
  cost: {
@@ -4788,9 +4892,9 @@ export const MODELS = {
4788
4892
  "mistral-nemo": {
4789
4893
  id: "mistral-nemo",
4790
4894
  name: "Mistral Nemo",
4791
- api: "openai-completions",
4895
+ api: "mistral-conversations",
4792
4896
  provider: "mistral",
4793
- baseUrl: "https://api.mistral.ai/v1",
4897
+ baseUrl: "https://api.mistral.ai",
4794
4898
  reasoning: false,
4795
4899
  input: ["text"],
4796
4900
  cost: {
@@ -4805,9 +4909,9 @@ export const MODELS = {
4805
4909
  "mistral-small-2506": {
4806
4910
  id: "mistral-small-2506",
4807
4911
  name: "Mistral Small 3.2",
4808
- api: "openai-completions",
4912
+ api: "mistral-conversations",
4809
4913
  provider: "mistral",
4810
- baseUrl: "https://api.mistral.ai/v1",
4914
+ baseUrl: "https://api.mistral.ai",
4811
4915
  reasoning: false,
4812
4916
  input: ["text", "image"],
4813
4917
  cost: {
@@ -4821,10 +4925,10 @@ export const MODELS = {
4821
4925
  },
4822
4926
  "mistral-small-latest": {
4823
4927
  id: "mistral-small-latest",
4824
- name: "Mistral Small",
4825
- api: "openai-completions",
4928
+ name: "Mistral Small (latest)",
4929
+ api: "mistral-conversations",
4826
4930
  provider: "mistral",
4827
- baseUrl: "https://api.mistral.ai/v1",
4931
+ baseUrl: "https://api.mistral.ai",
4828
4932
  reasoning: false,
4829
4933
  input: ["text", "image"],
4830
4934
  cost: {
@@ -4839,9 +4943,9 @@ export const MODELS = {
4839
4943
  "open-mistral-7b": {
4840
4944
  id: "open-mistral-7b",
4841
4945
  name: "Mistral 7B",
4842
- api: "openai-completions",
4946
+ api: "mistral-conversations",
4843
4947
  provider: "mistral",
4844
- baseUrl: "https://api.mistral.ai/v1",
4948
+ baseUrl: "https://api.mistral.ai",
4845
4949
  reasoning: false,
4846
4950
  input: ["text"],
4847
4951
  cost: {
@@ -4856,9 +4960,9 @@ export const MODELS = {
4856
4960
  "open-mixtral-8x22b": {
4857
4961
  id: "open-mixtral-8x22b",
4858
4962
  name: "Mixtral 8x22B",
4859
- api: "openai-completions",
4963
+ api: "mistral-conversations",
4860
4964
  provider: "mistral",
4861
- baseUrl: "https://api.mistral.ai/v1",
4965
+ baseUrl: "https://api.mistral.ai",
4862
4966
  reasoning: false,
4863
4967
  input: ["text"],
4864
4968
  cost: {
@@ -4873,9 +4977,9 @@ export const MODELS = {
4873
4977
  "open-mixtral-8x7b": {
4874
4978
  id: "open-mixtral-8x7b",
4875
4979
  name: "Mixtral 8x7B",
4876
- api: "openai-completions",
4980
+ api: "mistral-conversations",
4877
4981
  provider: "mistral",
4878
- baseUrl: "https://api.mistral.ai/v1",
4982
+ baseUrl: "https://api.mistral.ai",
4879
4983
  reasoning: false,
4880
4984
  input: ["text"],
4881
4985
  cost: {
@@ -4890,9 +4994,9 @@ export const MODELS = {
4890
4994
  "pixtral-12b": {
4891
4995
  id: "pixtral-12b",
4892
4996
  name: "Pixtral 12B",
4893
- api: "openai-completions",
4997
+ api: "mistral-conversations",
4894
4998
  provider: "mistral",
4895
- baseUrl: "https://api.mistral.ai/v1",
4999
+ baseUrl: "https://api.mistral.ai",
4896
5000
  reasoning: false,
4897
5001
  input: ["text", "image"],
4898
5002
  cost: {
@@ -4906,10 +5010,10 @@ export const MODELS = {
4906
5010
  },
4907
5011
  "pixtral-large-latest": {
4908
5012
  id: "pixtral-large-latest",
4909
- name: "Pixtral Large",
4910
- api: "openai-completions",
5013
+ name: "Pixtral Large (latest)",
5014
+ api: "mistral-conversations",
4911
5015
  provider: "mistral",
4912
- baseUrl: "https://api.mistral.ai/v1",
5016
+ baseUrl: "https://api.mistral.ai",
4913
5017
  reasoning: false,
4914
5018
  input: ["text", "image"],
4915
5019
  cost: {
@@ -5399,6 +5503,40 @@ export const MODELS = {
5399
5503
  contextWindow: 128000,
5400
5504
  maxTokens: 32000,
5401
5505
  },
5506
+ "gpt-5.4": {
5507
+ id: "gpt-5.4",
5508
+ name: "GPT-5.4",
5509
+ api: "openai-responses",
5510
+ provider: "openai",
5511
+ baseUrl: "https://api.openai.com/v1",
5512
+ reasoning: true,
5513
+ input: ["text", "image"],
5514
+ cost: {
5515
+ input: 2.5,
5516
+ output: 15,
5517
+ cacheRead: 0.25,
5518
+ cacheWrite: 0,
5519
+ },
5520
+ contextWindow: 272000,
5521
+ maxTokens: 128000,
5522
+ },
5523
+ "gpt-5.4-pro": {
5524
+ id: "gpt-5.4-pro",
5525
+ name: "GPT-5.4 Pro",
5526
+ api: "openai-responses",
5527
+ provider: "openai",
5528
+ baseUrl: "https://api.openai.com/v1",
5529
+ reasoning: true,
5530
+ input: ["text", "image"],
5531
+ cost: {
5532
+ input: 30,
5533
+ output: 180,
5534
+ cacheRead: 0,
5535
+ cacheWrite: 0,
5536
+ },
5537
+ contextWindow: 1050000,
5538
+ maxTokens: 128000,
5539
+ },
5402
5540
  "o1": {
5403
5541
  id: "o1",
5404
5542
  name: "o1",
@@ -5656,6 +5794,23 @@ export const MODELS = {
5656
5794
  contextWindow: 128000,
5657
5795
  maxTokens: 128000,
5658
5796
  },
5797
+ "gpt-5.4": {
5798
+ id: "gpt-5.4",
5799
+ name: "GPT-5.4",
5800
+ api: "openai-codex-responses",
5801
+ provider: "openai-codex",
5802
+ baseUrl: "https://chatgpt.com/backend-api",
5803
+ reasoning: true,
5804
+ input: ["text", "image"],
5805
+ cost: {
5806
+ input: 2.5,
5807
+ output: 15,
5808
+ cacheRead: 0.25,
5809
+ cacheWrite: 0,
5810
+ },
5811
+ contextWindow: 272000,
5812
+ maxTokens: 128000,
5813
+ },
5659
5814
  },
5660
5815
  "opencode": {
5661
5816
  "big-pickle": {
@@ -6097,6 +6252,23 @@ export const MODELS = {
6097
6252
  cacheRead: 0.25,
6098
6253
  cacheWrite: 0,
6099
6254
  },
6255
+ contextWindow: 272000,
6256
+ maxTokens: 128000,
6257
+ },
6258
+ "gpt-5.4-pro": {
6259
+ id: "gpt-5.4-pro",
6260
+ name: "GPT-5.4 Pro",
6261
+ api: "openai-responses",
6262
+ provider: "opencode",
6263
+ baseUrl: "https://opencode.ai/zen/v1",
6264
+ reasoning: true,
6265
+ input: ["text", "image"],
6266
+ cost: {
6267
+ input: 30,
6268
+ output: 180,
6269
+ cacheRead: 30,
6270
+ cacheWrite: 0,
6271
+ },
6100
6272
  contextWindow: 1050000,
6101
6273
  maxTokens: 128000,
6102
6274
  },
@@ -6117,6 +6289,23 @@ export const MODELS = {
6117
6289
  contextWindow: 262144,
6118
6290
  maxTokens: 65536,
6119
6291
  },
6292
+ "mimo-v2-flash-free": {
6293
+ id: "mimo-v2-flash-free",
6294
+ name: "MiMo V2 Flash Free",
6295
+ api: "openai-completions",
6296
+ provider: "opencode",
6297
+ baseUrl: "https://opencode.ai/zen/v1",
6298
+ reasoning: true,
6299
+ input: ["text"],
6300
+ cost: {
6301
+ input: 0,
6302
+ output: 0,
6303
+ cacheRead: 0,
6304
+ cacheWrite: 0,
6305
+ },
6306
+ contextWindow: 262144,
6307
+ maxTokens: 65536,
6308
+ },
6120
6309
  "minimax-m2.1": {
6121
6310
  id: "minimax-m2.1",
6122
6311
  name: "MiniMax M2.1",
@@ -6543,7 +6732,7 @@ export const MODELS = {
6543
6732
  cacheRead: 0.3,
6544
6733
  cacheWrite: 3.75,
6545
6734
  },
6546
- contextWindow: 1000000,
6735
+ contextWindow: 200000,
6547
6736
  maxTokens: 64000,
6548
6737
  },
6549
6738
  "anthropic/claude-sonnet-4.5": {
@@ -6733,6 +6922,23 @@ export const MODELS = {
6733
6922
  contextWindow: 262144,
6734
6923
  maxTokens: 32768,
6735
6924
  },
6925
+ "bytedance-seed/seed-2.0-lite": {
6926
+ id: "bytedance-seed/seed-2.0-lite",
6927
+ name: "ByteDance Seed: Seed-2.0-Lite",
6928
+ api: "openai-completions",
6929
+ provider: "openrouter",
6930
+ baseUrl: "https://openrouter.ai/api/v1",
6931
+ reasoning: true,
6932
+ input: ["text", "image"],
6933
+ cost: {
6934
+ input: 0.25,
6935
+ output: 2,
6936
+ cacheRead: 0,
6937
+ cacheWrite: 0,
6938
+ },
6939
+ contextWindow: 262144,
6940
+ maxTokens: 131072,
6941
+ },
6736
6942
  "bytedance-seed/seed-2.0-mini": {
6737
6943
  id: "bytedance-seed/seed-2.0-mini",
6738
6944
  name: "ByteDance Seed: Seed-2.0-Mini",
@@ -6886,23 +7092,6 @@ export const MODELS = {
6886
7092
  contextWindow: 163840,
6887
7093
  maxTokens: 4096,
6888
7094
  },
6889
- "deepseek/deepseek-v3.1-terminus:exacto": {
6890
- id: "deepseek/deepseek-v3.1-terminus:exacto",
6891
- name: "DeepSeek: DeepSeek V3.1 Terminus (exacto)",
6892
- api: "openai-completions",
6893
- provider: "openrouter",
6894
- baseUrl: "https://openrouter.ai/api/v1",
6895
- reasoning: true,
6896
- input: ["text"],
6897
- cost: {
6898
- input: 0.21,
6899
- output: 0.7899999999999999,
6900
- cacheRead: 0.16799999999999998,
6901
- cacheWrite: 0,
6902
- },
6903
- contextWindow: 163840,
6904
- maxTokens: 4096,
6905
- },
6906
7095
  "deepseek/deepseek-v3.2": {
6907
7096
  id: "deepseek/deepseek-v3.2",
6908
7097
  name: "DeepSeek: DeepSeek V3.2",
@@ -7184,9 +7373,9 @@ export const MODELS = {
7184
7373
  reasoning: false,
7185
7374
  input: ["text", "image"],
7186
7375
  cost: {
7187
- input: 0.04,
7188
- output: 0.15,
7189
- cacheRead: 0.02,
7376
+ input: 0.03,
7377
+ output: 0.11,
7378
+ cacheRead: 0.015,
7190
7379
  cacheWrite: 0,
7191
7380
  },
7192
7381
  contextWindow: 128000,
@@ -7475,7 +7664,7 @@ export const MODELS = {
7475
7664
  cost: {
7476
7665
  input: 0.27,
7477
7666
  output: 0.95,
7478
- cacheRead: 0.0299999997,
7667
+ cacheRead: 0.0290000007,
7479
7668
  cacheWrite: 0,
7480
7669
  },
7481
7670
  contextWindow: 196608,
@@ -7490,13 +7679,13 @@ export const MODELS = {
7490
7679
  reasoning: true,
7491
7680
  input: ["text"],
7492
7681
  cost: {
7493
- input: 0.295,
7494
- output: 1.2,
7495
- cacheRead: 0.03,
7682
+ input: 0.27,
7683
+ output: 0.95,
7684
+ cacheRead: 0.0299999997,
7496
7685
  cacheWrite: 0,
7497
7686
  },
7498
7687
  contextWindow: 196608,
7499
- maxTokens: 196608,
7688
+ maxTokens: 4096,
7500
7689
  },
7501
7690
  "mistralai/codestral-2508": {
7502
7691
  id: "mistralai/codestral-2508",
@@ -7923,23 +8112,6 @@ export const MODELS = {
7923
8112
  contextWindow: 131072,
7924
8113
  maxTokens: 4096,
7925
8114
  },
7926
- "moonshotai/kimi-k2-0905:exacto": {
7927
- id: "moonshotai/kimi-k2-0905:exacto",
7928
- name: "MoonshotAI: Kimi K2 0905 (exacto)",
7929
- api: "openai-completions",
7930
- provider: "openrouter",
7931
- baseUrl: "https://openrouter.ai/api/v1",
7932
- reasoning: false,
7933
- input: ["text"],
7934
- cost: {
7935
- input: 0.6,
7936
- output: 2.5,
7937
- cacheRead: 0,
7938
- cacheWrite: 0,
7939
- },
7940
- contextWindow: 262144,
7941
- maxTokens: 4096,
7942
- },
7943
8115
  "moonshotai/kimi-k2-thinking": {
7944
8116
  id: "moonshotai/kimi-k2-thinking",
7945
8117
  name: "MoonshotAI: Kimi K2 Thinking",
@@ -8790,23 +8962,6 @@ export const MODELS = {
8790
8962
  contextWindow: 131072,
8791
8963
  maxTokens: 4096,
8792
8964
  },
8793
- "openai/gpt-oss-120b:exacto": {
8794
- id: "openai/gpt-oss-120b:exacto",
8795
- name: "OpenAI: gpt-oss-120b (exacto)",
8796
- api: "openai-completions",
8797
- provider: "openrouter",
8798
- baseUrl: "https://openrouter.ai/api/v1",
8799
- reasoning: true,
8800
- input: ["text"],
8801
- cost: {
8802
- input: 0.039,
8803
- output: 0.19,
8804
- cacheRead: 0,
8805
- cacheWrite: 0,
8806
- },
8807
- contextWindow: 131072,
8808
- maxTokens: 4096,
8809
- },
8810
8965
  "openai/gpt-oss-120b:free": {
8811
8966
  id: "openai/gpt-oss-120b:free",
8812
8967
  name: "OpenAI: gpt-oss-120b (free)",
@@ -9275,13 +9430,13 @@ export const MODELS = {
9275
9430
  reasoning: true,
9276
9431
  input: ["text"],
9277
9432
  cost: {
9278
- input: 0,
9279
- output: 0,
9280
- cacheRead: 0,
9433
+ input: 0.11,
9434
+ output: 0.6,
9435
+ cacheRead: 0.055,
9281
9436
  cacheWrite: 0,
9282
9437
  },
9283
- contextWindow: 131072,
9284
- maxTokens: 4096,
9438
+ contextWindow: 262144,
9439
+ maxTokens: 262144,
9285
9440
  },
9286
9441
  "qwen/qwen3-30b-a3b": {
9287
9442
  id: "qwen/qwen3-30b-a3b",
@@ -9470,23 +9625,6 @@ export const MODELS = {
9470
9625
  contextWindow: 1000000,
9471
9626
  maxTokens: 65536,
9472
9627
  },
9473
- "qwen/qwen3-coder:exacto": {
9474
- id: "qwen/qwen3-coder:exacto",
9475
- name: "Qwen: Qwen3 Coder 480B A35B (exacto)",
9476
- api: "openai-completions",
9477
- provider: "openrouter",
9478
- baseUrl: "https://openrouter.ai/api/v1",
9479
- reasoning: false,
9480
- input: ["text"],
9481
- cost: {
9482
- input: 0.22,
9483
- output: 1.7999999999999998,
9484
- cacheRead: 0.022,
9485
- cacheWrite: 0,
9486
- },
9487
- contextWindow: 262144,
9488
- maxTokens: 65536,
9489
- },
9490
9628
  "qwen/qwen3-coder:free": {
9491
9629
  id: "qwen/qwen3-coder:free",
9492
9630
  name: "Qwen: Qwen3 Coder 480B A35B (free)",
@@ -9552,7 +9690,7 @@ export const MODELS = {
9552
9690
  cacheRead: 0,
9553
9691
  cacheWrite: 0,
9554
9692
  },
9555
- contextWindow: 262144,
9693
+ contextWindow: 131072,
9556
9694
  maxTokens: 4096,
9557
9695
  },
9558
9696
  "qwen/qwen3-next-80b-a3b-instruct:free": {
@@ -9776,6 +9914,23 @@ export const MODELS = {
9776
9914
  contextWindow: 262144,
9777
9915
  maxTokens: 65536,
9778
9916
  },
9917
+ "qwen/qwen3.5-9b": {
9918
+ id: "qwen/qwen3.5-9b",
9919
+ name: "Qwen: Qwen3.5-9B",
9920
+ api: "openai-completions",
9921
+ provider: "openrouter",
9922
+ baseUrl: "https://openrouter.ai/api/v1",
9923
+ reasoning: true,
9924
+ input: ["text", "image"],
9925
+ cost: {
9926
+ input: 0.09999999999999999,
9927
+ output: 0.15,
9928
+ cacheRead: 0,
9929
+ cacheWrite: 0,
9930
+ },
9931
+ contextWindow: 262144,
9932
+ maxTokens: 4096,
9933
+ },
9779
9934
  "qwen/qwen3.5-flash-02-23": {
9780
9935
  id: "qwen/qwen3.5-flash-02-23",
9781
9936
  name: "Qwen: Qwen3.5-Flash",
@@ -9870,13 +10025,13 @@ export const MODELS = {
9870
10025
  reasoning: false,
9871
10026
  input: ["text"],
9872
10027
  cost: {
9873
- input: 0.65,
9874
- output: 0.75,
10028
+ input: 0.85,
10029
+ output: 0.85,
9875
10030
  cacheRead: 0,
9876
10031
  cacheWrite: 0,
9877
10032
  },
9878
- contextWindow: 32768,
9879
- maxTokens: 32768,
10033
+ contextWindow: 131072,
10034
+ maxTokens: 16384,
9880
10035
  },
9881
10036
  "stepfun/step-3.5-flash": {
9882
10037
  id: "stepfun/step-3.5-flash",
@@ -10235,23 +10390,6 @@ export const MODELS = {
10235
10390
  contextWindow: 204800,
10236
10391
  maxTokens: 204800,
10237
10392
  },
10238
- "z-ai/glm-4.6:exacto": {
10239
- id: "z-ai/glm-4.6:exacto",
10240
- name: "Z.ai: GLM 4.6 (exacto)",
10241
- api: "openai-completions",
10242
- provider: "openrouter",
10243
- baseUrl: "https://openrouter.ai/api/v1",
10244
- reasoning: true,
10245
- input: ["text"],
10246
- cost: {
10247
- input: 0.44,
10248
- output: 1.76,
10249
- cacheRead: 0.11,
10250
- cacheWrite: 0,
10251
- },
10252
- contextWindow: 204800,
10253
- maxTokens: 131072,
10254
- },
10255
10393
  "z-ai/glm-4.6v": {
10256
10394
  id: "z-ai/glm-4.6v",
10257
10395
  name: "Z.ai: GLM 4.6V",
@@ -10278,9 +10416,9 @@ export const MODELS = {
10278
10416
  reasoning: true,
10279
10417
  input: ["text"],
10280
10418
  cost: {
10281
- input: 0.3,
10282
- output: 1.4,
10283
- cacheRead: 0.15,
10419
+ input: 0.38,
10420
+ output: 1.9800000000000002,
10421
+ cacheRead: 0.19,
10284
10422
  cacheWrite: 0,
10285
10423
  },
10286
10424
  contextWindow: 202752,
@@ -10318,7 +10456,7 @@ export const MODELS = {
10318
10456
  cacheWrite: 0,
10319
10457
  },
10320
10458
  contextWindow: 202752,
10321
- maxTokens: 4096,
10459
+ maxTokens: 131072,
10322
10460
  },
10323
10461
  },
10324
10462
  "vercel-ai-gateway": {
@@ -10447,7 +10585,7 @@ export const MODELS = {
10447
10585
  api: "anthropic-messages",
10448
10586
  provider: "vercel-ai-gateway",
10449
10587
  baseUrl: "https://ai-gateway.vercel.sh",
10450
- reasoning: true,
10588
+ reasoning: false,
10451
10589
  input: ["text"],
10452
10590
  cost: {
10453
10591
  input: 0.5,
@@ -11325,6 +11463,23 @@ export const MODELS = {
11325
11463
  contextWindow: 204800,
11326
11464
  maxTokens: 131000,
11327
11465
  },
11466
+ "minimax/minimax-m2.5-highspeed": {
11467
+ id: "minimax/minimax-m2.5-highspeed",
11468
+ name: "MiniMax M2.5 High Speed",
11469
+ api: "anthropic-messages",
11470
+ provider: "vercel-ai-gateway",
11471
+ baseUrl: "https://ai-gateway.vercel.sh",
11472
+ reasoning: true,
11473
+ input: ["text"],
11474
+ cost: {
11475
+ input: 0.6,
11476
+ output: 2.4,
11477
+ cacheRead: 0.03,
11478
+ cacheWrite: 0.375,
11479
+ },
11480
+ contextWindow: 4096,
11481
+ maxTokens: 4096,
11482
+ },
11328
11483
  "mistral/codestral": {
11329
11484
  id: "mistral/codestral",
11330
11485
  name: "Mistral Codestral",
@@ -11614,23 +11769,6 @@ export const MODELS = {
11614
11769
  contextWindow: 131072,
11615
11770
  maxTokens: 131072,
11616
11771
  },
11617
- "openai/codex-mini": {
11618
- id: "openai/codex-mini",
11619
- name: "Codex Mini",
11620
- api: "anthropic-messages",
11621
- provider: "vercel-ai-gateway",
11622
- baseUrl: "https://ai-gateway.vercel.sh",
11623
- reasoning: true,
11624
- input: ["text", "image"],
11625
- cost: {
11626
- input: 1.5,
11627
- output: 6,
11628
- cacheRead: 0.375,
11629
- cacheWrite: 0,
11630
- },
11631
- contextWindow: 200000,
11632
- maxTokens: 100000,
11633
- },
11634
11772
  "openai/gpt-4-turbo": {
11635
11773
  id: "openai/gpt-4-turbo",
11636
11774
  name: "GPT-4 Turbo",
@@ -12036,7 +12174,24 @@ export const MODELS = {
12036
12174
  cacheRead: 0.25,
12037
12175
  cacheWrite: 0,
12038
12176
  },
12039
- contextWindow: 400000,
12177
+ contextWindow: 200000,
12178
+ maxTokens: 128000,
12179
+ },
12180
+ "openai/gpt-5.4-pro": {
12181
+ id: "openai/gpt-5.4-pro",
12182
+ name: "GPT 5.4 Pro",
12183
+ api: "anthropic-messages",
12184
+ provider: "vercel-ai-gateway",
12185
+ baseUrl: "https://ai-gateway.vercel.sh",
12186
+ reasoning: true,
12187
+ input: ["text", "image"],
12188
+ cost: {
12189
+ input: 30,
12190
+ output: 180,
12191
+ cacheRead: 0,
12192
+ cacheWrite: 0,
12193
+ },
12194
+ contextWindow: 200000,
12040
12195
  maxTokens: 128000,
12041
12196
  },
12042
12197
  "openai/gpt-oss-120b": {
@@ -12600,6 +12755,23 @@ export const MODELS = {
12600
12755
  contextWindow: 202752,
12601
12756
  maxTokens: 120000,
12602
12757
  },
12758
+ "zai/glm-4.7-flash": {
12759
+ id: "zai/glm-4.7-flash",
12760
+ name: "GLM 4.7 Flash",
12761
+ api: "anthropic-messages",
12762
+ provider: "vercel-ai-gateway",
12763
+ baseUrl: "https://ai-gateway.vercel.sh",
12764
+ reasoning: true,
12765
+ input: ["text"],
12766
+ cost: {
12767
+ input: 0.07,
12768
+ output: 0.39999999999999997,
12769
+ cacheRead: 0,
12770
+ cacheWrite: 0,
12771
+ },
12772
+ contextWindow: 200000,
12773
+ maxTokens: 131000,
12774
+ },
12603
12775
  "zai/glm-4.7-flashx": {
12604
12776
  id: "zai/glm-4.7-flashx",
12605
12777
  name: "GLM 4.7 FlashX",
@@ -12619,20 +12791,20 @@ export const MODELS = {
12619
12791
  },
12620
12792
  "zai/glm-5": {
12621
12793
  id: "zai/glm-5",
12622
- name: "GLM-5",
12794
+ name: "GLM 5",
12623
12795
  api: "anthropic-messages",
12624
12796
  provider: "vercel-ai-gateway",
12625
12797
  baseUrl: "https://ai-gateway.vercel.sh",
12626
12798
  reasoning: true,
12627
12799
  input: ["text"],
12628
12800
  cost: {
12629
- input: 1,
12630
- output: 3.1999999999999997,
12631
- cacheRead: 0.19999999999999998,
12801
+ input: 0.7999999999999999,
12802
+ output: 2.56,
12803
+ cacheRead: 0.16,
12632
12804
  cacheWrite: 0,
12633
12805
  },
12634
12806
  contextWindow: 202800,
12635
- maxTokens: 131072,
12807
+ maxTokens: 131100,
12636
12808
  },
12637
12809
  },
12638
12810
  "xai": {
@@ -12959,6 +13131,57 @@ export const MODELS = {
12959
13131
  contextWindow: 2000000,
12960
13132
  maxTokens: 30000,
12961
13133
  },
13134
+ "grok-4.20-experimental-beta-0304-non-reasoning": {
13135
+ id: "grok-4.20-experimental-beta-0304-non-reasoning",
13136
+ name: "Grok 4.20 (Experimental, Non-Reasoning)",
13137
+ api: "openai-completions",
13138
+ provider: "xai",
13139
+ baseUrl: "https://api.x.ai/v1",
13140
+ reasoning: false,
13141
+ input: ["text", "image"],
13142
+ cost: {
13143
+ input: 2,
13144
+ output: 6,
13145
+ cacheRead: 0.2,
13146
+ cacheWrite: 0,
13147
+ },
13148
+ contextWindow: 2000000,
13149
+ maxTokens: 30000,
13150
+ },
13151
+ "grok-4.20-experimental-beta-0304-reasoning": {
13152
+ id: "grok-4.20-experimental-beta-0304-reasoning",
13153
+ name: "Grok 4.20 (Experimental, Reasoning)",
13154
+ api: "openai-completions",
13155
+ provider: "xai",
13156
+ baseUrl: "https://api.x.ai/v1",
13157
+ reasoning: true,
13158
+ input: ["text", "image"],
13159
+ cost: {
13160
+ input: 2,
13161
+ output: 6,
13162
+ cacheRead: 0.2,
13163
+ cacheWrite: 0,
13164
+ },
13165
+ contextWindow: 2000000,
13166
+ maxTokens: 30000,
13167
+ },
13168
+ "grok-4.20-multi-agent-experimental-beta-0304": {
13169
+ id: "grok-4.20-multi-agent-experimental-beta-0304",
13170
+ name: "Grok 4.20 Multi-Agent (Experimental)",
13171
+ api: "openai-completions",
13172
+ provider: "xai",
13173
+ baseUrl: "https://api.x.ai/v1",
13174
+ reasoning: true,
13175
+ input: ["text", "image"],
13176
+ cost: {
13177
+ input: 2,
13178
+ output: 6,
13179
+ cacheRead: 0.2,
13180
+ cacheWrite: 0,
13181
+ },
13182
+ contextWindow: 2000000,
13183
+ maxTokens: 30000,
13184
+ },
12962
13185
  "grok-beta": {
12963
13186
  id: "grok-beta",
12964
13187
  name: "Grok Beta",