@oh-my-pi/pi-ai 10.3.2 → 10.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oh-my-pi/pi-ai",
3
- "version": "10.3.2",
3
+ "version": "10.5.0",
4
4
  "description": "Unified LLM API with automatic model discovery and provider configuration",
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
@@ -56,23 +56,21 @@
56
56
  "test": "bun test"
57
57
  },
58
58
  "dependencies": {
59
- "@anthropic-ai/sdk": "^0.71.2",
60
- "@aws-sdk/client-bedrock-runtime": "^3.975.0",
59
+ "@anthropic-ai/sdk": "^0.72.1",
60
+ "@aws-sdk/client-bedrock-runtime": "^3.982.0",
61
61
  "@bufbuild/protobuf": "^2.11.0",
62
62
  "@connectrpc/connect": "^2.1.1",
63
63
  "@connectrpc/connect-node": "^2.1.1",
64
- "@google/genai": "^1.38.0",
64
+ "@google/genai": "^1.39.0",
65
65
  "@mistralai/mistralai": "^1.13.0",
66
- "@oh-my-pi/pi-utils": "10.3.2",
66
+ "@oh-my-pi/pi-utils": "10.5.0",
67
67
  "@sinclair/typebox": "^0.34.48",
68
- "@smithy/node-http-handler": "^4.4.8",
68
+ "@smithy/node-http-handler": "^4.4.9",
69
69
  "ajv": "^8.17.1",
70
70
  "ajv-formats": "^3.0.1",
71
71
  "chalk": "^5.6.2",
72
- "openai": "^6.16.0",
72
+ "openai": "^6.17.0",
73
73
  "partial-json": "^0.1.7",
74
- "proxy-agent": "^6.5.0",
75
- "undici": "^7.19.2",
76
74
  "zod-to-json-schema": "^3.25.1"
77
75
  },
78
76
  "keywords": [
@@ -95,6 +93,6 @@
95
93
  "bun": ">=1.3.7"
96
94
  },
97
95
  "devDependencies": {
98
- "@types/node": "^25.0.10"
96
+ "@types/node": "^25.2.0"
99
97
  }
100
98
  }
@@ -107,6 +107,91 @@ export const MODELS = {
107
107
  contextWindow: 200000,
108
108
  maxTokens: 4096,
109
109
  } satisfies Model<"bedrock-converse-stream">,
110
+ "apac.amazon.nova-lite-v1:0": {
111
+ id: "apac.amazon.nova-lite-v1:0",
112
+ name: "Nova Lite (APAC)",
113
+ api: "bedrock-converse-stream",
114
+ provider: "amazon-bedrock",
115
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
116
+ reasoning: false,
117
+ input: ["text", "image"],
118
+ cost: {
119
+ input: 0.06,
120
+ output: 0.24,
121
+ cacheRead: 0.015,
122
+ cacheWrite: 0,
123
+ },
124
+ contextWindow: 300000,
125
+ maxTokens: 8192,
126
+ } satisfies Model<"bedrock-converse-stream">,
127
+ "apac.amazon.nova-micro-v1:0": {
128
+ id: "apac.amazon.nova-micro-v1:0",
129
+ name: "Nova Micro (APAC)",
130
+ api: "bedrock-converse-stream",
131
+ provider: "amazon-bedrock",
132
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
133
+ reasoning: false,
134
+ input: ["text"],
135
+ cost: {
136
+ input: 0.035,
137
+ output: 0.14,
138
+ cacheRead: 0.00875,
139
+ cacheWrite: 0,
140
+ },
141
+ contextWindow: 128000,
142
+ maxTokens: 8192,
143
+ } satisfies Model<"bedrock-converse-stream">,
144
+ "apac.amazon.nova-pro-v1:0": {
145
+ id: "apac.amazon.nova-pro-v1:0",
146
+ name: "Nova Pro (APAC)",
147
+ api: "bedrock-converse-stream",
148
+ provider: "amazon-bedrock",
149
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
150
+ reasoning: false,
151
+ input: ["text", "image"],
152
+ cost: {
153
+ input: 0.8,
154
+ output: 3.2,
155
+ cacheRead: 0.2,
156
+ cacheWrite: 0,
157
+ },
158
+ contextWindow: 300000,
159
+ maxTokens: 8192,
160
+ } satisfies Model<"bedrock-converse-stream">,
161
+ "apac.anthropic.claude-3-7-sonnet-20250219-v1:0": {
162
+ id: "apac.anthropic.claude-3-7-sonnet-20250219-v1:0",
163
+ name: "Claude Sonnet 3.7 (APAC)",
164
+ api: "bedrock-converse-stream",
165
+ provider: "amazon-bedrock",
166
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
167
+ reasoning: false,
168
+ input: ["text", "image"],
169
+ cost: {
170
+ input: 3,
171
+ output: 15,
172
+ cacheRead: 0.3,
173
+ cacheWrite: 3.75,
174
+ },
175
+ contextWindow: 200000,
176
+ maxTokens: 8192,
177
+ } satisfies Model<"bedrock-converse-stream">,
178
+ "apac.anthropic.claude-sonnet-4-20250514-v1:0": {
179
+ id: "apac.anthropic.claude-sonnet-4-20250514-v1:0",
180
+ name: "Claude Sonnet 4 (APAC)",
181
+ api: "bedrock-converse-stream",
182
+ provider: "amazon-bedrock",
183
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
184
+ reasoning: true,
185
+ input: ["text", "image"],
186
+ cost: {
187
+ input: 3,
188
+ output: 15,
189
+ cacheRead: 0.3,
190
+ cacheWrite: 3.75,
191
+ },
192
+ contextWindow: 200000,
193
+ maxTokens: 64000,
194
+ } satisfies Model<"bedrock-converse-stream">,
110
195
  "cohere.command-r-plus-v1:0": {
111
196
  id: "cohere.command-r-plus-v1:0",
112
197
  name: "Command R+",
@@ -158,6 +243,74 @@ export const MODELS = {
158
243
  contextWindow: 163840,
159
244
  maxTokens: 81920,
160
245
  } satisfies Model<"bedrock-converse-stream">,
246
+ "eu.amazon.nova-2-lite-v1:0": {
247
+ id: "eu.amazon.nova-2-lite-v1:0",
248
+ name: "Nova 2 Lite (EU)",
249
+ api: "bedrock-converse-stream",
250
+ provider: "amazon-bedrock",
251
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
252
+ reasoning: false,
253
+ input: ["text", "image"],
254
+ cost: {
255
+ input: 0.33,
256
+ output: 2.75,
257
+ cacheRead: 0,
258
+ cacheWrite: 0,
259
+ },
260
+ contextWindow: 128000,
261
+ maxTokens: 4096,
262
+ } satisfies Model<"bedrock-converse-stream">,
263
+ "eu.amazon.nova-lite-v1:0": {
264
+ id: "eu.amazon.nova-lite-v1:0",
265
+ name: "Nova Lite (EU)",
266
+ api: "bedrock-converse-stream",
267
+ provider: "amazon-bedrock",
268
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
269
+ reasoning: false,
270
+ input: ["text", "image"],
271
+ cost: {
272
+ input: 0.06,
273
+ output: 0.24,
274
+ cacheRead: 0.015,
275
+ cacheWrite: 0,
276
+ },
277
+ contextWindow: 300000,
278
+ maxTokens: 8192,
279
+ } satisfies Model<"bedrock-converse-stream">,
280
+ "eu.amazon.nova-micro-v1:0": {
281
+ id: "eu.amazon.nova-micro-v1:0",
282
+ name: "Nova Micro (EU)",
283
+ api: "bedrock-converse-stream",
284
+ provider: "amazon-bedrock",
285
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
286
+ reasoning: false,
287
+ input: ["text"],
288
+ cost: {
289
+ input: 0.035,
290
+ output: 0.14,
291
+ cacheRead: 0.00875,
292
+ cacheWrite: 0,
293
+ },
294
+ contextWindow: 128000,
295
+ maxTokens: 8192,
296
+ } satisfies Model<"bedrock-converse-stream">,
297
+ "eu.amazon.nova-pro-v1:0": {
298
+ id: "eu.amazon.nova-pro-v1:0",
299
+ name: "Nova Pro (EU)",
300
+ api: "bedrock-converse-stream",
301
+ provider: "amazon-bedrock",
302
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
303
+ reasoning: false,
304
+ input: ["text", "image"],
305
+ cost: {
306
+ input: 0.8,
307
+ output: 3.2,
308
+ cacheRead: 0.2,
309
+ cacheWrite: 0,
310
+ },
311
+ contextWindow: 300000,
312
+ maxTokens: 8192,
313
+ } satisfies Model<"bedrock-converse-stream">,
161
314
  "eu.anthropic.claude-haiku-4-5-20251001-v1:0": {
162
315
  id: "eu.anthropic.claude-haiku-4-5-20251001-v1:0",
163
316
  name: "Claude Haiku 4.5 (EU)",
@@ -186,8 +339,25 @@ export const MODELS = {
186
339
  cost: {
187
340
  input: 5,
188
341
  output: 25,
189
- cacheRead: 0.5,
190
- cacheWrite: 6.25,
342
+ cacheRead: 1.5,
343
+ cacheWrite: 18.75,
344
+ },
345
+ contextWindow: 200000,
346
+ maxTokens: 64000,
347
+ } satisfies Model<"bedrock-converse-stream">,
348
+ "eu.anthropic.claude-sonnet-4-20250514-v1:0": {
349
+ id: "eu.anthropic.claude-sonnet-4-20250514-v1:0",
350
+ name: "Claude Sonnet 4 (EU)",
351
+ api: "bedrock-converse-stream",
352
+ provider: "amazon-bedrock",
353
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
354
+ reasoning: true,
355
+ input: ["text", "image"],
356
+ cost: {
357
+ input: 3,
358
+ output: 15,
359
+ cacheRead: 0.3,
360
+ cacheWrite: 3.75,
191
361
  },
192
362
  contextWindow: 200000,
193
363
  maxTokens: 64000,
@@ -209,9 +379,43 @@ export const MODELS = {
209
379
  contextWindow: 200000,
210
380
  maxTokens: 64000,
211
381
  } satisfies Model<"bedrock-converse-stream">,
382
+ "eu.meta.llama3-2-1b-instruct-v1:0": {
383
+ id: "eu.meta.llama3-2-1b-instruct-v1:0",
384
+ name: "Llama 3.2 1B Instruct (EU)",
385
+ api: "bedrock-converse-stream",
386
+ provider: "amazon-bedrock",
387
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
388
+ reasoning: false,
389
+ input: ["text"],
390
+ cost: {
391
+ input: 0.1,
392
+ output: 0.1,
393
+ cacheRead: 0,
394
+ cacheWrite: 0,
395
+ },
396
+ contextWindow: 131000,
397
+ maxTokens: 4096,
398
+ } satisfies Model<"bedrock-converse-stream">,
399
+ "eu.meta.llama3-2-3b-instruct-v1:0": {
400
+ id: "eu.meta.llama3-2-3b-instruct-v1:0",
401
+ name: "Llama 3.2 3B Instruct (EU)",
402
+ api: "bedrock-converse-stream",
403
+ provider: "amazon-bedrock",
404
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
405
+ reasoning: false,
406
+ input: ["text"],
407
+ cost: {
408
+ input: 0.15,
409
+ output: 0.15,
410
+ cacheRead: 0,
411
+ cacheWrite: 0,
412
+ },
413
+ contextWindow: 131000,
414
+ maxTokens: 4096,
415
+ } satisfies Model<"bedrock-converse-stream">,
212
416
  "global.amazon.nova-2-lite-v1:0": {
213
417
  id: "global.amazon.nova-2-lite-v1:0",
214
- name: "Nova 2 Lite",
418
+ name: "Nova 2 Lite (Global)",
215
419
  api: "bedrock-converse-stream",
216
420
  provider: "amazon-bedrock",
217
421
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -228,7 +432,7 @@ export const MODELS = {
228
432
  } satisfies Model<"bedrock-converse-stream">,
229
433
  "global.anthropic.claude-haiku-4-5-20251001-v1:0": {
230
434
  id: "global.anthropic.claude-haiku-4-5-20251001-v1:0",
231
- name: "Claude Haiku 4.5",
435
+ name: "Claude Haiku 4.5 (Global)",
232
436
  api: "bedrock-converse-stream",
233
437
  provider: "amazon-bedrock",
234
438
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -245,7 +449,7 @@ export const MODELS = {
245
449
  } satisfies Model<"bedrock-converse-stream">,
246
450
  "global.anthropic.claude-opus-4-5-20251101-v1:0": {
247
451
  id: "global.anthropic.claude-opus-4-5-20251101-v1:0",
248
- name: "Claude Opus 4.5",
452
+ name: "Claude Opus 4.5 (Global)",
249
453
  api: "bedrock-converse-stream",
250
454
  provider: "amazon-bedrock",
251
455
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -262,7 +466,7 @@ export const MODELS = {
262
466
  } satisfies Model<"bedrock-converse-stream">,
263
467
  "global.anthropic.claude-sonnet-4-20250514-v1:0": {
264
468
  id: "global.anthropic.claude-sonnet-4-20250514-v1:0",
265
- name: "Claude Sonnet 4",
469
+ name: "Claude Sonnet 4 (Global)",
266
470
  api: "bedrock-converse-stream",
267
471
  provider: "amazon-bedrock",
268
472
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -279,7 +483,7 @@ export const MODELS = {
279
483
  } satisfies Model<"bedrock-converse-stream">,
280
484
  "global.anthropic.claude-sonnet-4-5-20250929-v1:0": {
281
485
  id: "global.anthropic.claude-sonnet-4-5-20250929-v1:0",
282
- name: "Claude Sonnet 4.5",
486
+ name: "Claude Sonnet 4.5 (Global)",
283
487
  api: "bedrock-converse-stream",
284
488
  provider: "amazon-bedrock",
285
489
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -685,9 +889,77 @@ export const MODELS = {
685
889
  contextWindow: 262000,
686
890
  maxTokens: 262000,
687
891
  } satisfies Model<"bedrock-converse-stream">,
892
+ "us-gov.anthropic.claude-3-5-sonnet-20240620-v1:0": {
893
+ id: "us-gov.anthropic.claude-3-5-sonnet-20240620-v1:0",
894
+ name: "Claude Sonnet 3.5 (US Gov)",
895
+ api: "bedrock-converse-stream",
896
+ provider: "amazon-bedrock",
897
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
898
+ reasoning: false,
899
+ input: ["text", "image"],
900
+ cost: {
901
+ input: 3,
902
+ output: 15,
903
+ cacheRead: 0.3,
904
+ cacheWrite: 3.75,
905
+ },
906
+ contextWindow: 200000,
907
+ maxTokens: 8192,
908
+ } satisfies Model<"bedrock-converse-stream">,
909
+ "us-gov.anthropic.claude-3-7-sonnet-20250219-v1:0": {
910
+ id: "us-gov.anthropic.claude-3-7-sonnet-20250219-v1:0",
911
+ name: "Claude Sonnet 3.7 (US Gov)",
912
+ api: "bedrock-converse-stream",
913
+ provider: "amazon-bedrock",
914
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
915
+ reasoning: false,
916
+ input: ["text", "image"],
917
+ cost: {
918
+ input: 3,
919
+ output: 15,
920
+ cacheRead: 0.3,
921
+ cacheWrite: 3.75,
922
+ },
923
+ contextWindow: 200000,
924
+ maxTokens: 8192,
925
+ } satisfies Model<"bedrock-converse-stream">,
926
+ "us-gov.anthropic.claude-sonnet-4-5-20250929-v1:0": {
927
+ id: "us-gov.anthropic.claude-sonnet-4-5-20250929-v1:0",
928
+ name: "Claude Sonnet 4.5 (US Gov)",
929
+ api: "bedrock-converse-stream",
930
+ provider: "amazon-bedrock",
931
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
932
+ reasoning: true,
933
+ input: ["text", "image"],
934
+ cost: {
935
+ input: 3,
936
+ output: 15,
937
+ cacheRead: 0.3,
938
+ cacheWrite: 3.75,
939
+ },
940
+ contextWindow: 200000,
941
+ maxTokens: 64000,
942
+ } satisfies Model<"bedrock-converse-stream">,
943
+ "us.amazon.nova-2-lite-v1:0": {
944
+ id: "us.amazon.nova-2-lite-v1:0",
945
+ name: "Nova 2 Lite (US)",
946
+ api: "bedrock-converse-stream",
947
+ provider: "amazon-bedrock",
948
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
949
+ reasoning: false,
950
+ input: ["text", "image"],
951
+ cost: {
952
+ input: 0.33,
953
+ output: 2.75,
954
+ cacheRead: 0,
955
+ cacheWrite: 0,
956
+ },
957
+ contextWindow: 128000,
958
+ maxTokens: 4096,
959
+ } satisfies Model<"bedrock-converse-stream">,
688
960
  "us.amazon.nova-lite-v1:0": {
689
961
  id: "us.amazon.nova-lite-v1:0",
690
- name: "Nova Lite",
962
+ name: "Nova Lite (US)",
691
963
  api: "bedrock-converse-stream",
692
964
  provider: "amazon-bedrock",
693
965
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -704,7 +976,7 @@ export const MODELS = {
704
976
  } satisfies Model<"bedrock-converse-stream">,
705
977
  "us.amazon.nova-micro-v1:0": {
706
978
  id: "us.amazon.nova-micro-v1:0",
707
- name: "Nova Micro",
979
+ name: "Nova Micro (US)",
708
980
  api: "bedrock-converse-stream",
709
981
  provider: "amazon-bedrock",
710
982
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -721,7 +993,7 @@ export const MODELS = {
721
993
  } satisfies Model<"bedrock-converse-stream">,
722
994
  "us.amazon.nova-premier-v1:0": {
723
995
  id: "us.amazon.nova-premier-v1:0",
724
- name: "Nova Premier",
996
+ name: "Nova Premier (US)",
725
997
  api: "bedrock-converse-stream",
726
998
  provider: "amazon-bedrock",
727
999
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -755,7 +1027,7 @@ export const MODELS = {
755
1027
  } satisfies Model<"bedrock-converse-stream">,
756
1028
  "us.anthropic.claude-3-7-sonnet-20250219-v1:0": {
757
1029
  id: "us.anthropic.claude-3-7-sonnet-20250219-v1:0",
758
- name: "Claude Sonnet 3.7",
1030
+ name: "Claude Sonnet 3.7 (US)",
759
1031
  api: "bedrock-converse-stream",
760
1032
  provider: "amazon-bedrock",
761
1033
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -770,9 +1042,26 @@ export const MODELS = {
770
1042
  contextWindow: 200000,
771
1043
  maxTokens: 8192,
772
1044
  } satisfies Model<"bedrock-converse-stream">,
1045
+ "us.anthropic.claude-haiku-4-5-20251001-v1:0": {
1046
+ id: "us.anthropic.claude-haiku-4-5-20251001-v1:0",
1047
+ name: "Claude Haiku 4.5 (US)",
1048
+ api: "bedrock-converse-stream",
1049
+ provider: "amazon-bedrock",
1050
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
1051
+ reasoning: true,
1052
+ input: ["text", "image"],
1053
+ cost: {
1054
+ input: 1,
1055
+ output: 5,
1056
+ cacheRead: 0.1,
1057
+ cacheWrite: 1.25,
1058
+ },
1059
+ contextWindow: 200000,
1060
+ maxTokens: 64000,
1061
+ } satisfies Model<"bedrock-converse-stream">,
773
1062
  "us.anthropic.claude-opus-4-1-20250805-v1:0": {
774
1063
  id: "us.anthropic.claude-opus-4-1-20250805-v1:0",
775
- name: "Claude Opus 4.1",
1064
+ name: "Claude Opus 4.1 (US)",
776
1065
  api: "bedrock-converse-stream",
777
1066
  provider: "amazon-bedrock",
778
1067
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -789,7 +1078,7 @@ export const MODELS = {
789
1078
  } satisfies Model<"bedrock-converse-stream">,
790
1079
  "us.anthropic.claude-opus-4-20250514-v1:0": {
791
1080
  id: "us.anthropic.claude-opus-4-20250514-v1:0",
792
- name: "Claude Opus 4",
1081
+ name: "Claude Opus 4 (US)",
793
1082
  api: "bedrock-converse-stream",
794
1083
  provider: "amazon-bedrock",
795
1084
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -804,9 +1093,60 @@ export const MODELS = {
804
1093
  contextWindow: 200000,
805
1094
  maxTokens: 32000,
806
1095
  } satisfies Model<"bedrock-converse-stream">,
1096
+ "us.anthropic.claude-opus-4-5-20251101-v1:0": {
1097
+ id: "us.anthropic.claude-opus-4-5-20251101-v1:0",
1098
+ name: "Claude Opus 4.5 (US)",
1099
+ api: "bedrock-converse-stream",
1100
+ provider: "amazon-bedrock",
1101
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
1102
+ reasoning: true,
1103
+ input: ["text", "image"],
1104
+ cost: {
1105
+ input: 5,
1106
+ output: 25,
1107
+ cacheRead: 1.5,
1108
+ cacheWrite: 18.75,
1109
+ },
1110
+ contextWindow: 200000,
1111
+ maxTokens: 64000,
1112
+ } satisfies Model<"bedrock-converse-stream">,
1113
+ "us.anthropic.claude-sonnet-4-20250514-v1:0": {
1114
+ id: "us.anthropic.claude-sonnet-4-20250514-v1:0",
1115
+ name: "Claude Sonnet 4 (US)",
1116
+ api: "bedrock-converse-stream",
1117
+ provider: "amazon-bedrock",
1118
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
1119
+ reasoning: true,
1120
+ input: ["text", "image"],
1121
+ cost: {
1122
+ input: 3,
1123
+ output: 15,
1124
+ cacheRead: 0.3,
1125
+ cacheWrite: 3.75,
1126
+ },
1127
+ contextWindow: 200000,
1128
+ maxTokens: 64000,
1129
+ } satisfies Model<"bedrock-converse-stream">,
1130
+ "us.anthropic.claude-sonnet-4-5-20250929-v1:0": {
1131
+ id: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
1132
+ name: "Claude Sonnet 4.5 (US)",
1133
+ api: "bedrock-converse-stream",
1134
+ provider: "amazon-bedrock",
1135
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
1136
+ reasoning: true,
1137
+ input: ["text", "image"],
1138
+ cost: {
1139
+ input: 3,
1140
+ output: 15,
1141
+ cacheRead: 0.3,
1142
+ cacheWrite: 3.75,
1143
+ },
1144
+ contextWindow: 200000,
1145
+ maxTokens: 64000,
1146
+ } satisfies Model<"bedrock-converse-stream">,
807
1147
  "us.deepseek.r1-v1:0": {
808
1148
  id: "us.deepseek.r1-v1:0",
809
- name: "DeepSeek-R1",
1149
+ name: "DeepSeek-R1 (US)",
810
1150
  api: "bedrock-converse-stream",
811
1151
  provider: "amazon-bedrock",
812
1152
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -821,9 +1161,43 @@ export const MODELS = {
821
1161
  contextWindow: 128000,
822
1162
  maxTokens: 32768,
823
1163
  } satisfies Model<"bedrock-converse-stream">,
1164
+ "us.meta.llama3-1-70b-instruct-v1:0": {
1165
+ id: "us.meta.llama3-1-70b-instruct-v1:0",
1166
+ name: "Llama 3.1 70B Instruct (US)",
1167
+ api: "bedrock-converse-stream",
1168
+ provider: "amazon-bedrock",
1169
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
1170
+ reasoning: false,
1171
+ input: ["text"],
1172
+ cost: {
1173
+ input: 0.72,
1174
+ output: 0.72,
1175
+ cacheRead: 0,
1176
+ cacheWrite: 0,
1177
+ },
1178
+ contextWindow: 128000,
1179
+ maxTokens: 4096,
1180
+ } satisfies Model<"bedrock-converse-stream">,
1181
+ "us.meta.llama3-1-8b-instruct-v1:0": {
1182
+ id: "us.meta.llama3-1-8b-instruct-v1:0",
1183
+ name: "Llama 3.1 8B Instruct (US)",
1184
+ api: "bedrock-converse-stream",
1185
+ provider: "amazon-bedrock",
1186
+ baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
1187
+ reasoning: false,
1188
+ input: ["text"],
1189
+ cost: {
1190
+ input: 0.22,
1191
+ output: 0.22,
1192
+ cacheRead: 0,
1193
+ cacheWrite: 0,
1194
+ },
1195
+ contextWindow: 128000,
1196
+ maxTokens: 4096,
1197
+ } satisfies Model<"bedrock-converse-stream">,
824
1198
  "us.meta.llama3-2-11b-instruct-v1:0": {
825
1199
  id: "us.meta.llama3-2-11b-instruct-v1:0",
826
- name: "Llama 3.2 11B Instruct",
1200
+ name: "Llama 3.2 11B Instruct (US)",
827
1201
  api: "bedrock-converse-stream",
828
1202
  provider: "amazon-bedrock",
829
1203
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -840,7 +1214,7 @@ export const MODELS = {
840
1214
  } satisfies Model<"bedrock-converse-stream">,
841
1215
  "us.meta.llama3-2-1b-instruct-v1:0": {
842
1216
  id: "us.meta.llama3-2-1b-instruct-v1:0",
843
- name: "Llama 3.2 1B Instruct",
1217
+ name: "Llama 3.2 1B Instruct (US)",
844
1218
  api: "bedrock-converse-stream",
845
1219
  provider: "amazon-bedrock",
846
1220
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -857,7 +1231,7 @@ export const MODELS = {
857
1231
  } satisfies Model<"bedrock-converse-stream">,
858
1232
  "us.meta.llama3-2-3b-instruct-v1:0": {
859
1233
  id: "us.meta.llama3-2-3b-instruct-v1:0",
860
- name: "Llama 3.2 3B Instruct",
1234
+ name: "Llama 3.2 3B Instruct (US)",
861
1235
  api: "bedrock-converse-stream",
862
1236
  provider: "amazon-bedrock",
863
1237
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -874,7 +1248,7 @@ export const MODELS = {
874
1248
  } satisfies Model<"bedrock-converse-stream">,
875
1249
  "us.meta.llama3-2-90b-instruct-v1:0": {
876
1250
  id: "us.meta.llama3-2-90b-instruct-v1:0",
877
- name: "Llama 3.2 90B Instruct",
1251
+ name: "Llama 3.2 90B Instruct (US)",
878
1252
  api: "bedrock-converse-stream",
879
1253
  provider: "amazon-bedrock",
880
1254
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -891,7 +1265,7 @@ export const MODELS = {
891
1265
  } satisfies Model<"bedrock-converse-stream">,
892
1266
  "us.meta.llama3-3-70b-instruct-v1:0": {
893
1267
  id: "us.meta.llama3-3-70b-instruct-v1:0",
894
- name: "Llama 3.3 70B Instruct",
1268
+ name: "Llama 3.3 70B Instruct (US)",
895
1269
  api: "bedrock-converse-stream",
896
1270
  provider: "amazon-bedrock",
897
1271
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -908,7 +1282,7 @@ export const MODELS = {
908
1282
  } satisfies Model<"bedrock-converse-stream">,
909
1283
  "us.meta.llama4-maverick-17b-instruct-v1:0": {
910
1284
  id: "us.meta.llama4-maverick-17b-instruct-v1:0",
911
- name: "Llama 4 Maverick 17B Instruct",
1285
+ name: "Llama 4 Maverick 17B Instruct (US)",
912
1286
  api: "bedrock-converse-stream",
913
1287
  provider: "amazon-bedrock",
914
1288
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -925,7 +1299,7 @@ export const MODELS = {
925
1299
  } satisfies Model<"bedrock-converse-stream">,
926
1300
  "us.meta.llama4-scout-17b-instruct-v1:0": {
927
1301
  id: "us.meta.llama4-scout-17b-instruct-v1:0",
928
- name: "Llama 4 Scout 17B Instruct",
1302
+ name: "Llama 4 Scout 17B Instruct (US)",
929
1303
  api: "bedrock-converse-stream",
930
1304
  provider: "amazon-bedrock",
931
1305
  baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
@@ -1726,7 +2100,7 @@ export const MODELS = {
1726
2100
  cacheRead: 0,
1727
2101
  cacheWrite: 0,
1728
2102
  },
1729
- contextWindow: 64000,
2103
+ contextWindow: 128000,
1730
2104
  maxTokens: 16384,
1731
2105
  } satisfies Model<"openai-completions">,
1732
2106
  "gpt-4o": {
@@ -5316,23 +5690,6 @@ export const MODELS = {
5316
5690
  contextWindow: 163840,
5317
5691
  maxTokens: 65536,
5318
5692
  } satisfies Model<"openai-completions">,
5319
- "deepseek/deepseek-r1-distill-llama-70b": {
5320
- id: "deepseek/deepseek-r1-distill-llama-70b",
5321
- name: "DeepSeek: R1 Distill Llama 70B",
5322
- api: "openai-completions",
5323
- provider: "openrouter",
5324
- baseUrl: "https://openrouter.ai/api/v1",
5325
- reasoning: true,
5326
- input: ["text"],
5327
- cost: {
5328
- input: 0.03,
5329
- output: 0.11,
5330
- cacheRead: 0,
5331
- cacheWrite: 0,
5332
- },
5333
- contextWindow: 131072,
5334
- maxTokens: 131072,
5335
- } satisfies Model<"openai-completions">,
5336
5693
  "deepseek/deepseek-v3.1-terminus": {
5337
5694
  id: "deepseek/deepseek-v3.1-terminus",
5338
5695
  name: "DeepSeek: DeepSeek V3.1 Terminus",
@@ -5393,9 +5750,9 @@ export const MODELS = {
5393
5750
  reasoning: true,
5394
5751
  input: ["text"],
5395
5752
  cost: {
5396
- input: 0.21,
5397
- output: 0.32,
5398
- cacheRead: 0.21,
5753
+ input: 0.27,
5754
+ output: 0.41,
5755
+ cacheRead: 0,
5399
5756
  cacheWrite: 0,
5400
5757
  },
5401
5758
  contextWindow: 163840,
@@ -5620,7 +5977,7 @@ export const MODELS = {
5620
5977
  cacheWrite: 0,
5621
5978
  },
5622
5979
  contextWindow: 131072,
5623
- maxTokens: 4096,
5980
+ maxTokens: 8192,
5624
5981
  } satisfies Model<"openai-completions">,
5625
5982
  "inception/mercury": {
5626
5983
  id: "inception/mercury",
@@ -5683,7 +6040,7 @@ export const MODELS = {
5683
6040
  input: ["text"],
5684
6041
  cost: {
5685
6042
  input: 0.03,
5686
- output: 0.06,
6043
+ output: 0.04,
5687
6044
  cacheRead: 0,
5688
6045
  cacheWrite: 0,
5689
6046
  },
@@ -5772,8 +6129,8 @@ export const MODELS = {
5772
6129
  cacheRead: 0,
5773
6130
  cacheWrite: 0,
5774
6131
  },
5775
- contextWindow: 131072,
5776
- maxTokens: 4096,
6132
+ contextWindow: 128000,
6133
+ maxTokens: 128000,
5777
6134
  } satisfies Model<"openai-completions">,
5778
6135
  "meta-llama/llama-4-maverick": {
5779
6136
  id: "meta-llama/llama-4-maverick",
@@ -5835,7 +6192,7 @@ export const MODELS = {
5835
6192
  reasoning: true,
5836
6193
  input: ["text"],
5837
6194
  cost: {
5838
- input: 0.19999999999999998,
6195
+ input: 0.255,
5839
6196
  output: 1,
5840
6197
  cacheRead: 0.03,
5841
6198
  cacheWrite: 0,
@@ -6413,13 +6770,13 @@ export const MODELS = {
6413
6770
  reasoning: true,
6414
6771
  input: ["text", "image"],
6415
6772
  cost: {
6416
- input: 0.5,
6417
- output: 2.8,
6773
+ input: 0.44999999999999996,
6774
+ output: 2.5,
6418
6775
  cacheRead: 0,
6419
6776
  cacheWrite: 0,
6420
6777
  },
6421
6778
  contextWindow: 262144,
6422
- maxTokens: 4096,
6779
+ maxTokens: 65535,
6423
6780
  } satisfies Model<"openai-completions">,
6424
6781
  "nex-agi/deepseek-v3.1-nex-n1": {
6425
6782
  id: "nex-agi/deepseek-v3.1-nex-n1",
@@ -7235,7 +7592,7 @@ export const MODELS = {
7235
7592
  cacheWrite: 0,
7236
7593
  },
7237
7594
  contextWindow: 131072,
7238
- maxTokens: 4096,
7595
+ maxTokens: 131072,
7239
7596
  } satisfies Model<"openai-completions">,
7240
7597
  "openai/gpt-oss-20b": {
7241
7598
  id: "openai/gpt-oss-20b",
@@ -7269,7 +7626,7 @@ export const MODELS = {
7269
7626
  cacheWrite: 0,
7270
7627
  },
7271
7628
  contextWindow: 131072,
7272
- maxTokens: 4096,
7629
+ maxTokens: 131072,
7273
7630
  } satisfies Model<"openai-completions">,
7274
7631
  "openai/gpt-oss-safeguard-20b": {
7275
7632
  id: "openai/gpt-oss-safeguard-20b",
@@ -7443,7 +7800,24 @@ export const MODELS = {
7443
7800
  } satisfies Model<"openai-completions">,
7444
7801
  "openrouter/auto": {
7445
7802
  id: "openrouter/auto",
7446
- name: "OpenRouter: Auto Router",
7803
+ name: "Auto Router",
7804
+ api: "openai-completions",
7805
+ provider: "openrouter",
7806
+ baseUrl: "https://openrouter.ai/api/v1",
7807
+ reasoning: true,
7808
+ input: ["text", "image"],
7809
+ cost: {
7810
+ input: -1000000,
7811
+ output: -1000000,
7812
+ cacheRead: 0,
7813
+ cacheWrite: 0,
7814
+ },
7815
+ contextWindow: 2000000,
7816
+ maxTokens: 4096,
7817
+ } satisfies Model<"openai-completions">,
7818
+ "openrouter/free": {
7819
+ id: "openrouter/free",
7820
+ name: "Free Models Router",
7447
7821
  api: "openai-completions",
7448
7822
  provider: "openrouter",
7449
7823
  baseUrl: "https://openrouter.ai/api/v1",
@@ -7455,8 +7829,8 @@ export const MODELS = {
7455
7829
  cacheRead: 0,
7456
7830
  cacheWrite: 0,
7457
7831
  },
7458
- contextWindow: 2000000,
7459
- maxTokens: 30000,
7832
+ contextWindow: 200000,
7833
+ maxTokens: 4096,
7460
7834
  } satisfies Model<"openai-completions">,
7461
7835
  "prime-intellect/intellect-3": {
7462
7836
  id: "prime-intellect/intellect-3",
@@ -7774,7 +8148,7 @@ export const MODELS = {
7774
8148
  input: ["text"],
7775
8149
  cost: {
7776
8150
  input: 0.049999999999999996,
7777
- output: 0.25,
8151
+ output: 0.39999999999999997,
7778
8152
  cacheRead: 0.049999999999999996,
7779
8153
  cacheWrite: 0,
7780
8154
  },
@@ -7832,6 +8206,23 @@ export const MODELS = {
7832
8206
  contextWindow: 128000,
7833
8207
  maxTokens: 65536,
7834
8208
  } satisfies Model<"openai-completions">,
8209
+ "qwen/qwen3-coder-next": {
8210
+ id: "qwen/qwen3-coder-next",
8211
+ name: "Qwen: Qwen3 Coder Next",
8212
+ api: "openai-completions",
8213
+ provider: "openrouter",
8214
+ baseUrl: "https://openrouter.ai/api/v1",
8215
+ reasoning: false,
8216
+ input: ["text"],
8217
+ cost: {
8218
+ input: 0.19999999999999998,
8219
+ output: 1.5,
8220
+ cacheRead: 0,
8221
+ cacheWrite: 0,
8222
+ },
8223
+ contextWindow: 262144,
8224
+ maxTokens: 65536,
8225
+ } satisfies Model<"openai-completions">,
7835
8226
  "qwen/qwen3-coder-plus": {
7836
8227
  id: "qwen/qwen3-coder-plus",
7837
8228
  name: "Qwen: Qwen3 Coder Plus",
@@ -8068,7 +8459,7 @@ export const MODELS = {
8068
8459
  cacheWrite: 0,
8069
8460
  },
8070
8461
  contextWindow: 32768,
8071
- maxTokens: 4096,
8462
+ maxTokens: 32768,
8072
8463
  } satisfies Model<"openai-completions">,
8073
8464
  "relace/relace-search": {
8074
8465
  id: "relace/relace-search",
@@ -8119,7 +8510,7 @@ export const MODELS = {
8119
8510
  cacheWrite: 0,
8120
8511
  },
8121
8512
  contextWindow: 32768,
8122
- maxTokens: 4096,
8513
+ maxTokens: 32768,
8123
8514
  } satisfies Model<"openai-completions">,
8124
8515
  "stepfun-ai/step3": {
8125
8516
  id: "stepfun-ai/step3",
@@ -8138,6 +8529,24 @@ export const MODELS = {
8138
8529
  contextWindow: 65536,
8139
8530
  maxTokens: 65536,
8140
8531
  } satisfies Model<"openai-completions">,
8532
+ "stepfun/step-3.5-flash:free": {
8533
+ id: "stepfun/step-3.5-flash:free",
8534
+ name: "StepFun: Step 3.5 Flash (free)",
8535
+ api: "openai-completions",
8536
+ provider: "openrouter",
8537
+ baseUrl: "https://openrouter.ai/api/v1",
8538
+ compat: {"supportsToolChoice":false},
8539
+ reasoning: true,
8540
+ input: ["text"],
8541
+ cost: {
8542
+ input: 0,
8543
+ output: 0,
8544
+ cacheRead: 0,
8545
+ cacheWrite: 0,
8546
+ },
8547
+ contextWindow: 256000,
8548
+ maxTokens: 256000,
8549
+ } satisfies Model<"openai-completions">,
8141
8550
  "thedrummer/rocinante-12b": {
8142
8551
  id: "thedrummer/rocinante-12b",
8143
8552
  name: "TheDrummer: Rocinante 12B",
@@ -8153,7 +8562,7 @@ export const MODELS = {
8153
8562
  cacheWrite: 0,
8154
8563
  },
8155
8564
  contextWindow: 32768,
8156
- maxTokens: 4096,
8565
+ maxTokens: 32768,
8157
8566
  } satisfies Model<"openai-completions">,
8158
8567
  "thedrummer/unslopnemo-12b": {
8159
8568
  id: "thedrummer/unslopnemo-12b",
@@ -8170,7 +8579,7 @@ export const MODELS = {
8170
8579
  cacheWrite: 0,
8171
8580
  },
8172
8581
  contextWindow: 32768,
8173
- maxTokens: 4096,
8582
+ maxTokens: 32768,
8174
8583
  } satisfies Model<"openai-completions">,
8175
8584
  "tngtech/deepseek-r1t2-chimera": {
8176
8585
  id: "tngtech/deepseek-r1t2-chimera",
@@ -8618,7 +9027,7 @@ export const MODELS = {
8618
9027
  } satisfies Model<"anthropic-messages">,
8619
9028
  "alibaba/qwen-3-32b": {
8620
9029
  id: "alibaba/qwen-3-32b",
8621
- name: "Qwen 3.32B",
9030
+ name: "Qwen 3 32B",
8622
9031
  api: "anthropic-messages",
8623
9032
  provider: "vercel-ai-gateway",
8624
9033
  baseUrl: "https://ai-gateway.vercel.sh",
@@ -8701,23 +9110,6 @@ export const MODELS = {
8701
9110
  contextWindow: 1000000,
8702
9111
  maxTokens: 65536,
8703
9112
  } satisfies Model<"anthropic-messages">,
8704
- "alibaba/qwen3-max": {
8705
- id: "alibaba/qwen3-max",
8706
- name: "Qwen3 Max",
8707
- api: "anthropic-messages",
8708
- provider: "vercel-ai-gateway",
8709
- baseUrl: "https://ai-gateway.vercel.sh",
8710
- reasoning: false,
8711
- input: ["text"],
8712
- cost: {
8713
- input: 1.2,
8714
- output: 6,
8715
- cacheRead: 0.24,
8716
- cacheWrite: 0,
8717
- },
8718
- contextWindow: 262144,
8719
- maxTokens: 32768,
8720
- } satisfies Model<"anthropic-messages">,
8721
9113
  "alibaba/qwen3-max-preview": {
8722
9114
  id: "alibaba/qwen3-max-preview",
8723
9115
  name: "Qwen3 Max Preview",
@@ -8752,6 +9144,23 @@ export const MODELS = {
8752
9144
  contextWindow: 256000,
8753
9145
  maxTokens: 65536,
8754
9146
  } satisfies Model<"anthropic-messages">,
9147
+ "alibaba/qwen3-vl-thinking": {
9148
+ id: "alibaba/qwen3-vl-thinking",
9149
+ name: "Qwen3 VL 235B A22B Thinking",
9150
+ api: "anthropic-messages",
9151
+ provider: "vercel-ai-gateway",
9152
+ baseUrl: "https://ai-gateway.vercel.sh",
9153
+ reasoning: true,
9154
+ input: ["text", "image"],
9155
+ cost: {
9156
+ input: 0.22,
9157
+ output: 0.88,
9158
+ cacheRead: 0,
9159
+ cacheWrite: 0,
9160
+ },
9161
+ contextWindow: 256000,
9162
+ maxTokens: 256000,
9163
+ } satisfies Model<"anthropic-messages">,
8755
9164
  "anthropic/claude-3-haiku": {
8756
9165
  id: "anthropic/claude-3-haiku",
8757
9166
  name: "Claude 3 Haiku",
@@ -9662,13 +10071,13 @@ export const MODELS = {
9662
10071
  reasoning: true,
9663
10072
  input: ["text", "image"],
9664
10073
  cost: {
9665
- input: 0.6,
9666
- output: 3,
9667
- cacheRead: 0.09999999999999999,
10074
+ input: 0.44999999999999996,
10075
+ output: 2.8,
10076
+ cacheRead: 0,
9668
10077
  cacheWrite: 0,
9669
10078
  },
9670
- contextWindow: 256000,
9671
- maxTokens: 256000,
10079
+ contextWindow: 262144,
10080
+ maxTokens: 252144,
9672
10081
  } satisfies Model<"anthropic-messages">,
9673
10082
  "nvidia/nemotron-nano-12b-v2-vl": {
9674
10083
  id: "nvidia/nemotron-nano-12b-v2-vl",
@@ -98,28 +98,6 @@ export const streamBedrock: StreamFunction<"bedrock-converse-stream"> = (
98
98
  // in Node.js/Bun environment only
99
99
  if (typeof process !== "undefined" && (process.versions?.node || process.versions?.bun)) {
100
100
  config.region = config.region || process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION;
101
-
102
- if (
103
- process.env.HTTP_PROXY ||
104
- process.env.HTTPS_PROXY ||
105
- process.env.NO_PROXY ||
106
- process.env.http_proxy ||
107
- process.env.https_proxy ||
108
- process.env.no_proxy
109
- ) {
110
- const nodeHttpHandler = await import("@smithy/node-http-handler");
111
- const proxyAgent = await import("proxy-agent");
112
-
113
- const agent = new proxyAgent.ProxyAgent();
114
-
115
- // Bedrock runtime uses NodeHttp2Handler by default since v3.798.0, which is based
116
- // on `http2` module and has no support for http agent.
117
- // Use NodeHttpHandler to support http agent.
118
- config.requestHandler = new nodeHttpHandler.NodeHttpHandler({
119
- httpAgent: agent,
120
- httpsAgent: agent,
121
- });
122
- }
123
101
  }
124
102
 
125
103
  config.region = config.region || "us-east-1";
package/src/stream.ts CHANGED
@@ -30,15 +30,6 @@ import type {
30
30
  ToolChoice,
31
31
  } from "./types";
32
32
 
33
- // Set up http proxy according to env variables for `fetch` based SDKs in Node.js.
34
- // Bun has builtin support for this.
35
- if (typeof process !== "undefined" && process.versions?.node) {
36
- import("undici").then(m => {
37
- const { EnvHttpProxyAgent, setGlobalDispatcher } = m;
38
- setGlobalDispatcher(new EnvHttpProxyAgent());
39
- });
40
- }
41
-
42
33
  let cachedVertexAdcCredentialsExists: boolean | null = null;
43
34
 
44
35
  // Cached .env file contents (parsed once per process)