@ai-sdk/amazon-bedrock 3.0.131 → 3.0.132

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/dist/index.js CHANGED
@@ -27,17 +27,17 @@ __export(index_exports, {
27
27
  module.exports = __toCommonJS(index_exports);
28
28
 
29
29
  // src/bedrock-provider.ts
30
- var import_provider_utils9 = require("@ai-sdk/provider-utils");
30
+ var import_provider_utils10 = require("@ai-sdk/provider-utils");
31
31
 
32
32
  // src/version.ts
33
- var VERSION = true ? "3.0.131" : "0.0.0-test";
33
+ var VERSION = true ? "3.0.132" : "0.0.0-test";
34
34
 
35
35
  // src/bedrock-provider.ts
36
36
  var import_internal3 = require("@ai-sdk/anthropic/internal");
37
37
 
38
38
  // src/bedrock-chat-language-model.ts
39
39
  var import_internal2 = require("@ai-sdk/anthropic/internal");
40
- var import_provider_utils4 = require("@ai-sdk/provider-utils");
40
+ var import_provider_utils5 = require("@ai-sdk/provider-utils");
41
41
  var import_v44 = require("zod/v4");
42
42
 
43
43
  // src/bedrock-api-types.ts
@@ -129,16 +129,30 @@ var bedrockProviderOptions = import_v4.z.object({
129
129
  serviceTier: import_v4.z.enum(["reserved", "priority", "default", "flex"]).optional()
130
130
  });
131
131
 
132
+ // src/bedrock-anthropic-model-support.ts
133
+ function isAnthropicModel({
134
+ modelId,
135
+ modelFamily,
136
+ reasoningBudgetTokens
137
+ }) {
138
+ return modelFamily === "anthropic" || modelId.includes("anthropic") || modelId.includes(":application-inference-profile/") && reasoningBudgetTokens != null;
139
+ }
140
+
132
141
  // src/bedrock-error.ts
142
+ var import_provider_utils = require("@ai-sdk/provider-utils");
133
143
  var import_v42 = require("zod/v4");
134
144
  var BedrockErrorSchema = import_v42.z.object({
135
145
  message: import_v42.z.string(),
136
146
  type: import_v42.z.string().nullish()
137
147
  });
148
+ var bedrockFailedResponseHandler = (0, import_provider_utils.createJsonErrorResponseHandler)({
149
+ errorSchema: BedrockErrorSchema,
150
+ errorToMessage: (error) => error.type == null ? error.message : `${error.type}: ${error.message}`
151
+ });
138
152
 
139
153
  // src/bedrock-event-stream-response-handler.ts
140
154
  var import_provider = require("@ai-sdk/provider");
141
- var import_provider_utils = require("@ai-sdk/provider-utils");
155
+ var import_provider_utils2 = require("@ai-sdk/provider-utils");
142
156
 
143
157
  // src/bedrock-event-stream-decoder.ts
144
158
  var import_eventstream_codec = require("@smithy/eventstream-codec");
@@ -190,7 +204,7 @@ function createBedrockEventStreamDecoder(body, processEvent) {
190
204
 
191
205
  // src/bedrock-event-stream-response-handler.ts
192
206
  var createBedrockEventStreamResponseHandler = (chunkSchema) => async ({ response }) => {
193
- const responseHeaders = (0, import_provider_utils.extractResponseHeaders)(response);
207
+ const responseHeaders = (0, import_provider_utils2.extractResponseHeaders)(response);
194
208
  if (response.body == null) {
195
209
  throw new import_provider.EmptyResponseBodyError({});
196
210
  }
@@ -203,7 +217,7 @@ var createBedrockEventStreamResponseHandler = (chunkSchema) => async ({ response
203
217
  if (payloadType == null) {
204
218
  return;
205
219
  }
206
- const parsedDataResult = await (0, import_provider_utils.safeParseJSON)({ text: event.data });
220
+ const parsedDataResult = await (0, import_provider_utils2.safeParseJSON)({ text: event.data });
207
221
  if (!parsedDataResult.success) {
208
222
  controller.enqueue(parsedDataResult);
209
223
  return;
@@ -212,7 +226,7 @@ var createBedrockEventStreamResponseHandler = (chunkSchema) => async ({ response
212
226
  const wrappedData = {
213
227
  [payloadType]: parsedDataResult.value
214
228
  };
215
- const validatedWrappedData = await (0, import_provider_utils.safeValidateTypes)({
229
+ const validatedWrappedData = await (0, import_provider_utils2.safeValidateTypes)({
216
230
  value: wrappedData,
217
231
  schema: chunkSchema
218
232
  });
@@ -232,12 +246,14 @@ var createBedrockEventStreamResponseHandler = (chunkSchema) => async ({ response
232
246
 
233
247
  // src/bedrock-prepare-tools.ts
234
248
  var import_provider2 = require("@ai-sdk/provider");
235
- var import_provider_utils2 = require("@ai-sdk/provider-utils");
249
+ var import_provider_utils3 = require("@ai-sdk/provider-utils");
236
250
  var import_internal = require("@ai-sdk/anthropic/internal");
237
251
  async function prepareTools({
238
252
  tools,
239
253
  toolChoice,
240
254
  modelId,
255
+ modelFamily,
256
+ reasoningBudgetTokens,
241
257
  disableParallelToolUse
242
258
  }) {
243
259
  var _a;
@@ -270,14 +286,18 @@ async function prepareTools({
270
286
  toolWarnings
271
287
  };
272
288
  }
273
- const isAnthropicModel = modelId.includes("anthropic.");
274
289
  const providerDefinedTools = supportedTools.filter(
275
290
  (t) => t.type === "provider-defined"
276
291
  );
292
+ const isAnthropicModel2 = isAnthropicModel({
293
+ modelId,
294
+ modelFamily,
295
+ reasoningBudgetTokens
296
+ });
277
297
  const functionTools = supportedTools.filter((t) => t.type === "function");
278
298
  let additionalTools = void 0;
279
299
  const bedrockTools = [];
280
- const usingAnthropicTools = isAnthropicModel && providerDefinedTools.length > 0;
300
+ const usingAnthropicTools = isAnthropicModel2 && providerDefinedTools.length > 0;
281
301
  if (usingAnthropicTools) {
282
302
  if (functionTools.length > 0) {
283
303
  toolWarnings.push({
@@ -313,7 +333,7 @@ async function prepareTools({
313
333
  toolSpec: {
314
334
  name: tool.name,
315
335
  inputSchema: {
316
- json: (0, import_provider_utils2.asSchema)(fullToolDefinition.inputSchema).jsonSchema
336
+ json: (0, import_provider_utils3.asSchema)(fullToolDefinition.inputSchema).jsonSchema
317
337
  }
318
338
  }
319
339
  });
@@ -337,7 +357,7 @@ async function prepareTools({
337
357
  }
338
358
  });
339
359
  }
340
- if (isAnthropicModel && !usingAnthropicTools && disableParallelToolUse && bedrockTools.length > 0 && (toolChoice == null ? void 0 : toolChoice.type) !== "none") {
360
+ if (isAnthropicModel2 && !usingAnthropicTools && disableParallelToolUse && bedrockTools.length > 0 && (toolChoice == null ? void 0 : toolChoice.type) !== "none") {
341
361
  additionalTools = {
342
362
  tool_choice: (toolChoice == null ? void 0 : toolChoice.type) === "required" ? { type: "any", disable_parallel_tool_use: true } : (toolChoice == null ? void 0 : toolChoice.type) === "tool" ? {
343
363
  type: "tool",
@@ -382,7 +402,7 @@ async function prepareTools({
382
402
 
383
403
  // src/convert-to-bedrock-chat-messages.ts
384
404
  var import_provider3 = require("@ai-sdk/provider");
385
- var import_provider_utils3 = require("@ai-sdk/provider-utils");
405
+ var import_provider_utils4 = require("@ai-sdk/provider-utils");
386
406
 
387
407
  // src/bedrock-reasoning-metadata.ts
388
408
  var import_v43 = require("zod/v4");
@@ -399,7 +419,7 @@ function getCachePoint(providerMetadata) {
399
419
  }
400
420
  async function shouldEnableCitations(providerMetadata) {
401
421
  var _a, _b;
402
- const bedrockOptions = await (0, import_provider_utils3.parseProviderOptions)({
422
+ const bedrockOptions = await (0, import_provider_utils4.parseProviderOptions)({
403
423
  provider: "bedrock",
404
424
  providerOptions: providerMetadata,
405
425
  schema: bedrockFilePartProviderOptions
@@ -473,7 +493,7 @@ async function convertToBedrockChatMessages(prompt) {
473
493
  bedrockContent.push({
474
494
  image: {
475
495
  format: getBedrockImageFormat(part.mediaType),
476
- source: { bytes: (0, import_provider_utils3.convertToBase64)(part.data) }
496
+ source: { bytes: (0, import_provider_utils4.convertToBase64)(part.data) }
477
497
  }
478
498
  });
479
499
  } else {
@@ -490,7 +510,7 @@ async function convertToBedrockChatMessages(prompt) {
490
510
  document: {
491
511
  format: getBedrockDocumentFormat(part.mediaType),
492
512
  name: (_a = part.filename) != null ? _a : generateDocumentName(),
493
- source: { bytes: (0, import_provider_utils3.convertToBase64)(part.data) },
513
+ source: { bytes: (0, import_provider_utils4.convertToBase64)(part.data) },
494
514
  ...enableCitations && {
495
515
  citations: { enabled: true }
496
516
  }
@@ -600,7 +620,7 @@ async function convertToBedrockChatMessages(prompt) {
600
620
  break;
601
621
  }
602
622
  case "reasoning": {
603
- const reasoningMetadata = await (0, import_provider_utils3.parseProviderOptions)({
623
+ const reasoningMetadata = await (0, import_provider_utils4.parseProviderOptions)({
604
624
  provider: "bedrock",
605
625
  providerOptions: part.providerOptions,
606
626
  schema: bedrockReasoningMetadataSchema
@@ -797,13 +817,13 @@ var BedrockChatLanguageModel = class {
797
817
  toolChoice,
798
818
  providerOptions
799
819
  }) {
800
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
801
- const bedrockOptions = (_a = await (0, import_provider_utils4.parseProviderOptions)({
820
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u;
821
+ const bedrockOptions = (_a = await (0, import_provider_utils5.parseProviderOptions)({
802
822
  provider: "bedrock",
803
823
  providerOptions,
804
824
  schema: bedrockProviderOptions
805
825
  })) != null ? _a : {};
806
- const anthropicOptions = await (0, import_provider_utils4.parseProviderOptions)({
826
+ const anthropicOptions = await (0, import_provider_utils5.parseProviderOptions)({
807
827
  provider: "anthropic",
808
828
  providerOptions,
809
829
  schema: anthropicProviderOptions
@@ -849,12 +869,16 @@ var BedrockChatLanguageModel = class {
849
869
  details: "Only text and json response formats are supported."
850
870
  });
851
871
  }
852
- const isAnthropicModel = this.modelId.includes("anthropic");
853
- const openAIModelId = (_b = /^(?:[^.]+\.)?(openai\..+)$/.exec(this.modelId)) == null ? void 0 : _b[1];
872
+ const isAnthropicModel2 = isAnthropicModel({
873
+ modelId: this.modelId,
874
+ modelFamily: this.config.modelFamily,
875
+ reasoningBudgetTokens: (_b = bedrockOptions.reasoningConfig) == null ? void 0 : _b.budgetTokens
876
+ });
877
+ const openAIModelId = (_c = /^(?:[^.]+\.)?(openai\..+)$/.exec(this.modelId)) == null ? void 0 : _c[1];
854
878
  const isOpenAIModel = openAIModelId != null;
855
- const isOpenAIGptOssModel = (_c = openAIModelId == null ? void 0 : openAIModelId.startsWith("openai.gpt-oss-")) != null ? _c : false;
856
- const isThinkingRequested = ((_d = bedrockOptions.reasoningConfig) == null ? void 0 : _d.type) === "enabled" || ((_e = bedrockOptions.reasoningConfig) == null ? void 0 : _e.type) === "adaptive";
857
- const structuredOutputMode = (_g = (_f = bedrockOptions.structuredOutputMode) != null ? _f : anthropicOptions == null ? void 0 : anthropicOptions.structuredOutputMode) != null ? _g : "auto";
879
+ const isOpenAIGptOssModel = (_d = openAIModelId == null ? void 0 : openAIModelId.startsWith("openai.gpt-oss-")) != null ? _d : false;
880
+ const isThinkingRequested = ((_e = bedrockOptions.reasoningConfig) == null ? void 0 : _e.type) === "enabled" || ((_f = bedrockOptions.reasoningConfig) == null ? void 0 : _f.type) === "adaptive";
881
+ const structuredOutputMode = (_h = (_g = bedrockOptions.structuredOutputMode) != null ? _g : anthropicOptions == null ? void 0 : anthropicOptions.structuredOutputMode) != null ? _h : "auto";
858
882
  if (structuredOutputMode === "jsonTool") {
859
883
  const additionalModelRequestFields = {
860
884
  ...bedrockOptions.additionalModelRequestFields
@@ -871,7 +895,8 @@ var BedrockChatLanguageModel = class {
871
895
  bedrockOptions.additionalModelRequestFields = additionalModelRequestFields;
872
896
  }
873
897
  }
874
- const useNativeStructuredOutput = isAnthropicModel && (responseFormat == null ? void 0 : responseFormat.type) === "json" && responseFormat.schema != null && (structuredOutputMode === "outputFormat" || structuredOutputMode === "auto" && supportsNativeStructuredOutput(this.modelId) && isThinkingRequested);
898
+ const modelSupportsNativeStructuredOutput = this.config.modelFamily === "anthropic" || supportsNativeStructuredOutput(this.modelId) && isThinkingRequested;
899
+ const useNativeStructuredOutput = isAnthropicModel2 && (responseFormat == null ? void 0 : responseFormat.type) === "json" && responseFormat.schema != null && (structuredOutputMode === "outputFormat" || structuredOutputMode === "auto" && modelSupportsNativeStructuredOutput);
875
900
  const jsonResponseTool = (responseFormat == null ? void 0 : responseFormat.type) === "json" && responseFormat.schema != null && !useNativeStructuredOutput ? {
876
901
  type: "function",
877
902
  name: "json",
@@ -882,6 +907,8 @@ var BedrockChatLanguageModel = class {
882
907
  tools: jsonResponseTool ? [...tools != null ? tools : [], jsonResponseTool] : tools,
883
908
  toolChoice: jsonResponseTool != null ? { type: "required" } : toolChoice,
884
909
  modelId: this.modelId,
910
+ modelFamily: this.config.modelFamily,
911
+ reasoningBudgetTokens: (_i = bedrockOptions.reasoningConfig) == null ? void 0 : _i.budgetTokens,
885
912
  disableParallelToolUse: anthropicOptions == null ? void 0 : anthropicOptions.disableParallelToolUse
886
913
  });
887
914
  warnings.push(...toolWarnings);
@@ -892,17 +919,17 @@ var BedrockChatLanguageModel = class {
892
919
  };
893
920
  }
894
921
  if (betas.size > 0 || bedrockOptions.anthropicBeta) {
895
- const existingBetas = (_h = bedrockOptions.anthropicBeta) != null ? _h : [];
922
+ const existingBetas = (_j = bedrockOptions.anthropicBeta) != null ? _j : [];
896
923
  const mergedBetas = betas.size > 0 ? [...existingBetas, ...Array.from(betas)] : existingBetas;
897
924
  bedrockOptions.additionalModelRequestFields = {
898
925
  ...bedrockOptions.additionalModelRequestFields,
899
926
  anthropic_beta: mergedBetas
900
927
  };
901
928
  }
902
- const thinkingType = (_i = bedrockOptions.reasoningConfig) == null ? void 0 : _i.type;
903
- const thinkingBudget = thinkingType === "enabled" ? (_j = bedrockOptions.reasoningConfig) == null ? void 0 : _j.budgetTokens : void 0;
904
- const thinkingDisplay = thinkingType === "adaptive" ? (_k = bedrockOptions.reasoningConfig) == null ? void 0 : _k.display : void 0;
905
- const isAnthropicThinkingEnabled = isAnthropicModel && isThinkingRequested;
929
+ const thinkingType = (_k = bedrockOptions.reasoningConfig) == null ? void 0 : _k.type;
930
+ const thinkingBudget = thinkingType === "enabled" ? (_l = bedrockOptions.reasoningConfig) == null ? void 0 : _l.budgetTokens : void 0;
931
+ const thinkingDisplay = thinkingType === "adaptive" ? (_m = bedrockOptions.reasoningConfig) == null ? void 0 : _m.display : void 0;
932
+ const isAnthropicThinkingEnabled = isAnthropicModel2 && isThinkingRequested;
906
933
  const inferenceConfig = {
907
934
  ...maxOutputTokens != null && { maxTokens: maxOutputTokens },
908
935
  ...temperature != null && { temperature },
@@ -933,8 +960,8 @@ var BedrockChatLanguageModel = class {
933
960
  }
934
961
  };
935
962
  }
936
- } else if (!isAnthropicModel) {
937
- if (((_l = bedrockOptions.reasoningConfig) == null ? void 0 : _l.budgetTokens) != null) {
963
+ } else if (!isAnthropicModel2) {
964
+ if (((_n = bedrockOptions.reasoningConfig) == null ? void 0 : _n.budgetTokens) != null) {
938
965
  warnings.push({
939
966
  type: "unsupported-setting",
940
967
  setting: "budgetTokens",
@@ -949,13 +976,13 @@ var BedrockChatLanguageModel = class {
949
976
  });
950
977
  }
951
978
  }
952
- const maxReasoningEffort = (_m = bedrockOptions.reasoningConfig) == null ? void 0 : _m.maxReasoningEffort;
979
+ const maxReasoningEffort = (_o = bedrockOptions.reasoningConfig) == null ? void 0 : _o.maxReasoningEffort;
953
980
  if (maxReasoningEffort != null) {
954
- if (isAnthropicModel) {
981
+ if (isAnthropicModel2) {
955
982
  bedrockOptions.additionalModelRequestFields = {
956
983
  ...bedrockOptions.additionalModelRequestFields,
957
984
  output_config: {
958
- ...(_n = bedrockOptions.additionalModelRequestFields) == null ? void 0 : _n.output_config,
985
+ ...(_p = bedrockOptions.additionalModelRequestFields) == null ? void 0 : _p.output_config,
959
986
  effort: maxReasoningEffort
960
987
  }
961
988
  };
@@ -966,7 +993,7 @@ var BedrockChatLanguageModel = class {
966
993
  } : {
967
994
  ...bedrockOptions.additionalModelRequestFields,
968
995
  reasoning: {
969
- ...(_o = bedrockOptions.additionalModelRequestFields) == null ? void 0 : _o.reasoning,
996
+ ...(_q = bedrockOptions.additionalModelRequestFields) == null ? void 0 : _q.reasoning,
970
997
  effort: maxReasoningEffort
971
998
  }
972
999
  };
@@ -974,7 +1001,7 @@ var BedrockChatLanguageModel = class {
974
1001
  bedrockOptions.additionalModelRequestFields = {
975
1002
  ...bedrockOptions.additionalModelRequestFields,
976
1003
  reasoningConfig: {
977
- ...((_p = bedrockOptions.reasoningConfig) == null ? void 0 : _p.type) != null && {
1004
+ ...((_r = bedrockOptions.reasoningConfig) == null ? void 0 : _r.type) != null && {
978
1005
  type: bedrockOptions.reasoningConfig.type
979
1006
  },
980
1007
  maxReasoningEffort
@@ -986,7 +1013,7 @@ var BedrockChatLanguageModel = class {
986
1013
  bedrockOptions.additionalModelRequestFields = {
987
1014
  ...bedrockOptions.additionalModelRequestFields,
988
1015
  output_config: {
989
- ...(_q = bedrockOptions.additionalModelRequestFields) == null ? void 0 : _q.output_config,
1016
+ ...(_s = bedrockOptions.additionalModelRequestFields) == null ? void 0 : _s.output_config,
990
1017
  format: {
991
1018
  type: "json_schema",
992
1019
  schema: (0, import_internal2.sanitizeJsonSchema)(responseFormat.schema)
@@ -1018,7 +1045,7 @@ var BedrockChatLanguageModel = class {
1018
1045
  details: "topK is not supported when thinking is enabled"
1019
1046
  });
1020
1047
  }
1021
- const hasAnyTools = ((_s = (_r = toolConfig.tools) == null ? void 0 : _r.length) != null ? _s : 0) > 0 || additionalTools;
1048
+ const hasAnyTools = ((_u = (_t = toolConfig.tools) == null ? void 0 : _t.length) != null ? _u : 0) > 0 || additionalTools;
1022
1049
  let filteredPrompt = prompt;
1023
1050
  if (!hasAnyTools) {
1024
1051
  const hasToolContent = prompt.some(
@@ -1052,7 +1079,7 @@ var BedrockChatLanguageModel = class {
1052
1079
  structuredOutputMode: ____,
1053
1080
  ...filteredBedrockOptions
1054
1081
  } = (providerOptions == null ? void 0 : providerOptions.bedrock) || {};
1055
- const additionalModelResponseFieldPaths = isAnthropicModel ? ["/delta/stop_sequence"] : void 0;
1082
+ const additionalModelResponseFieldPaths = isAnthropicModel2 ? ["/delta/stop_sequence"] : void 0;
1056
1083
  return {
1057
1084
  command: {
1058
1085
  system,
@@ -1080,7 +1107,7 @@ var BedrockChatLanguageModel = class {
1080
1107
  async getHeaders({
1081
1108
  headers
1082
1109
  }) {
1083
- return (0, import_provider_utils4.combineHeaders)(await (0, import_provider_utils4.resolve)(this.config.headers), headers);
1110
+ return (0, import_provider_utils5.combineHeaders)(await (0, import_provider_utils5.resolve)(this.config.headers), headers);
1084
1111
  }
1085
1112
  async doGenerate(options) {
1086
1113
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
@@ -1090,18 +1117,18 @@ var BedrockChatLanguageModel = class {
1090
1117
  usesJsonResponseTool
1091
1118
  } = await this.getArgs(options);
1092
1119
  const url = `${this.getUrl(this.modelId)}/converse`;
1093
- const { value: response, responseHeaders } = await (0, import_provider_utils4.postJsonToApi)({
1120
+ const { value: response, responseHeaders } = await (0, import_provider_utils5.postJsonToApi)({
1094
1121
  url,
1095
1122
  headers: await this.getHeaders({ headers: options.headers }),
1096
1123
  body: args,
1097
- failedResponseHandler: (0, import_provider_utils4.createJsonErrorResponseHandler)({
1124
+ failedResponseHandler: (0, import_provider_utils5.createJsonErrorResponseHandler)({
1098
1125
  errorSchema: BedrockErrorSchema,
1099
1126
  errorToMessage: (error) => {
1100
1127
  var _a2;
1101
1128
  return `${(_a2 = error.message) != null ? _a2 : "Unknown error"}`;
1102
1129
  }
1103
1130
  }),
1104
- successfulResponseHandler: (0, import_provider_utils4.createJsonResponseHandler)(
1131
+ successfulResponseHandler: (0, import_provider_utils5.createJsonResponseHandler)(
1105
1132
  BedrockResponseSchema
1106
1133
  ),
1107
1134
  abortSignal: options.abortSignal,
@@ -1213,14 +1240,11 @@ var BedrockChatLanguageModel = class {
1213
1240
  usesJsonResponseTool
1214
1241
  } = await this.getArgs(options);
1215
1242
  const url = `${this.getUrl(this.modelId)}/converse-stream`;
1216
- const { value: response, responseHeaders } = await (0, import_provider_utils4.postJsonToApi)({
1243
+ const { value: response, responseHeaders } = await (0, import_provider_utils5.postJsonToApi)({
1217
1244
  url,
1218
1245
  headers: await this.getHeaders({ headers: options.headers }),
1219
1246
  body: args,
1220
- failedResponseHandler: (0, import_provider_utils4.createJsonErrorResponseHandler)({
1221
- errorSchema: BedrockErrorSchema,
1222
- errorToMessage: (error) => `${error.type}: ${error.message}`
1223
- }),
1247
+ failedResponseHandler: bedrockFailedResponseHandler,
1224
1248
  successfulResponseHandler: createBedrockEventStreamResponseHandler(BedrockStreamSchema),
1225
1249
  abortSignal: options.abortSignal,
1226
1250
  fetch: this.config.fetch
@@ -1663,7 +1687,7 @@ var BedrockStreamSchema = import_v44.z.object({
1663
1687
 
1664
1688
  // src/bedrock-embedding-model.ts
1665
1689
  var import_provider4 = require("@ai-sdk/provider");
1666
- var import_provider_utils5 = require("@ai-sdk/provider-utils");
1690
+ var import_provider_utils6 = require("@ai-sdk/provider-utils");
1667
1691
 
1668
1692
  // src/bedrock-embedding-options.ts
1669
1693
  var import_v45 = require("zod/v4");
@@ -1710,7 +1734,7 @@ var BedrockEmbeddingModel = class {
1710
1734
  values
1711
1735
  });
1712
1736
  }
1713
- const bedrockOptions = (_a = await (0, import_provider_utils5.parseProviderOptions)({
1737
+ const bedrockOptions = (_a = await (0, import_provider_utils6.parseProviderOptions)({
1714
1738
  provider: "bedrock",
1715
1739
  providerOptions,
1716
1740
  schema: bedrockEmbeddingProviderOptions
@@ -1721,17 +1745,14 @@ var BedrockEmbeddingModel = class {
1721
1745
  normalize: bedrockOptions.normalize
1722
1746
  };
1723
1747
  const url = this.getUrl(this.modelId);
1724
- const { value: response } = await (0, import_provider_utils5.postJsonToApi)({
1748
+ const { value: response } = await (0, import_provider_utils6.postJsonToApi)({
1725
1749
  url,
1726
- headers: await (0, import_provider_utils5.resolve)(
1727
- (0, import_provider_utils5.combineHeaders)(await (0, import_provider_utils5.resolve)(this.config.headers), headers)
1750
+ headers: await (0, import_provider_utils6.resolve)(
1751
+ (0, import_provider_utils6.combineHeaders)(await (0, import_provider_utils6.resolve)(this.config.headers), headers)
1728
1752
  ),
1729
1753
  body: args,
1730
- failedResponseHandler: (0, import_provider_utils5.createJsonErrorResponseHandler)({
1731
- errorSchema: BedrockErrorSchema,
1732
- errorToMessage: (error) => `${error.type}: ${error.message}`
1733
- }),
1734
- successfulResponseHandler: (0, import_provider_utils5.createJsonResponseHandler)(
1754
+ failedResponseHandler: bedrockFailedResponseHandler,
1755
+ successfulResponseHandler: (0, import_provider_utils6.createJsonResponseHandler)(
1735
1756
  BedrockEmbeddingResponseSchema
1736
1757
  ),
1737
1758
  fetch: this.config.fetch,
@@ -1749,7 +1770,7 @@ var BedrockEmbeddingResponseSchema = import_v46.z.object({
1749
1770
  });
1750
1771
 
1751
1772
  // src/bedrock-image-model.ts
1752
- var import_provider_utils6 = require("@ai-sdk/provider-utils");
1773
+ var import_provider_utils7 = require("@ai-sdk/provider-utils");
1753
1774
 
1754
1775
  // src/bedrock-image-settings.ts
1755
1776
  var modelMaxImagesPerCall = {
@@ -1814,17 +1835,14 @@ var BedrockImageModel = class {
1814
1835
  });
1815
1836
  }
1816
1837
  const currentDate = (_g = (_f = (_e = this.config._internal) == null ? void 0 : _e.currentDate) == null ? void 0 : _f.call(_e)) != null ? _g : /* @__PURE__ */ new Date();
1817
- const { value: response, responseHeaders } = await (0, import_provider_utils6.postJsonToApi)({
1838
+ const { value: response, responseHeaders } = await (0, import_provider_utils7.postJsonToApi)({
1818
1839
  url: this.getUrl(this.modelId),
1819
- headers: await (0, import_provider_utils6.resolve)(
1820
- (0, import_provider_utils6.combineHeaders)(await (0, import_provider_utils6.resolve)(this.config.headers), headers)
1840
+ headers: await (0, import_provider_utils7.resolve)(
1841
+ (0, import_provider_utils7.combineHeaders)(await (0, import_provider_utils7.resolve)(this.config.headers), headers)
1821
1842
  ),
1822
1843
  body: args,
1823
- failedResponseHandler: (0, import_provider_utils6.createJsonErrorResponseHandler)({
1824
- errorSchema: BedrockErrorSchema,
1825
- errorToMessage: (error) => `${error.type}: ${error.message}`
1826
- }),
1827
- successfulResponseHandler: (0, import_provider_utils6.createJsonResponseHandler)(
1844
+ failedResponseHandler: bedrockFailedResponseHandler,
1845
+ successfulResponseHandler: (0, import_provider_utils7.createJsonResponseHandler)(
1828
1846
  bedrockImageResponseSchema
1829
1847
  ),
1830
1848
  abortSignal,
@@ -1846,20 +1864,20 @@ var bedrockImageResponseSchema = import_v47.z.object({
1846
1864
  });
1847
1865
 
1848
1866
  // src/bedrock-sigv4-fetch.ts
1849
- var import_provider_utils7 = require("@ai-sdk/provider-utils");
1867
+ var import_provider_utils8 = require("@ai-sdk/provider-utils");
1850
1868
  var import_aws4fetch = require("aws4fetch");
1851
1869
  function createSigV4FetchFunction(getCredentials, fetch = globalThis.fetch) {
1852
1870
  return async (input, init) => {
1853
1871
  var _a, _b;
1854
1872
  const request = input instanceof Request ? input : void 0;
1855
- const originalHeaders = (0, import_provider_utils7.combineHeaders)(
1856
- (0, import_provider_utils7.normalizeHeaders)(request == null ? void 0 : request.headers),
1857
- (0, import_provider_utils7.normalizeHeaders)(init == null ? void 0 : init.headers)
1873
+ const originalHeaders = (0, import_provider_utils8.combineHeaders)(
1874
+ (0, import_provider_utils8.normalizeHeaders)(request == null ? void 0 : request.headers),
1875
+ (0, import_provider_utils8.normalizeHeaders)(init == null ? void 0 : init.headers)
1858
1876
  );
1859
- const headersWithUserAgent = (0, import_provider_utils7.withUserAgentSuffix)(
1877
+ const headersWithUserAgent = (0, import_provider_utils8.withUserAgentSuffix)(
1860
1878
  originalHeaders,
1861
1879
  `ai-sdk/amazon-bedrock/${VERSION}`,
1862
- (0, import_provider_utils7.getRuntimeEnvironmentUserAgent)()
1880
+ (0, import_provider_utils8.getRuntimeEnvironmentUserAgent)()
1863
1881
  );
1864
1882
  let effectiveBody = (_a = init == null ? void 0 : init.body) != null ? _a : void 0;
1865
1883
  if (effectiveBody === void 0 && request && request.body !== null) {
@@ -1890,8 +1908,8 @@ function createSigV4FetchFunction(getCredentials, fetch = globalThis.fetch) {
1890
1908
  service: "bedrock"
1891
1909
  });
1892
1910
  const signingResult = await signer.sign();
1893
- const signedHeaders = (0, import_provider_utils7.normalizeHeaders)(signingResult.headers);
1894
- const combinedHeaders = (0, import_provider_utils7.combineHeaders)(headersWithUserAgent, signedHeaders);
1911
+ const signedHeaders = (0, import_provider_utils8.normalizeHeaders)(signingResult.headers);
1912
+ const combinedHeaders = (0, import_provider_utils8.combineHeaders)(headersWithUserAgent, signedHeaders);
1895
1913
  return fetch(input, {
1896
1914
  ...init,
1897
1915
  body,
@@ -1912,13 +1930,13 @@ function prepareBodyString(body) {
1912
1930
  }
1913
1931
  function createApiKeyFetchFunction(apiKey, fetch = globalThis.fetch) {
1914
1932
  return async (input, init) => {
1915
- const originalHeaders = (0, import_provider_utils7.normalizeHeaders)(init == null ? void 0 : init.headers);
1916
- const headersWithUserAgent = (0, import_provider_utils7.withUserAgentSuffix)(
1933
+ const originalHeaders = (0, import_provider_utils8.normalizeHeaders)(init == null ? void 0 : init.headers);
1934
+ const headersWithUserAgent = (0, import_provider_utils8.withUserAgentSuffix)(
1917
1935
  originalHeaders,
1918
1936
  `ai-sdk/amazon-bedrock/${VERSION}`,
1919
- (0, import_provider_utils7.getRuntimeEnvironmentUserAgent)()
1937
+ (0, import_provider_utils8.getRuntimeEnvironmentUserAgent)()
1920
1938
  );
1921
- const finalHeaders = (0, import_provider_utils7.combineHeaders)(headersWithUserAgent, {
1939
+ const finalHeaders = (0, import_provider_utils8.combineHeaders)(headersWithUserAgent, {
1922
1940
  Authorization: `Bearer ${apiKey}`
1923
1941
  });
1924
1942
  return fetch(input, {
@@ -1929,7 +1947,7 @@ function createApiKeyFetchFunction(apiKey, fetch = globalThis.fetch) {
1929
1947
  }
1930
1948
 
1931
1949
  // src/resolve-bedrock-base-url.ts
1932
- var import_provider_utils8 = require("@ai-sdk/provider-utils");
1950
+ var import_provider_utils9 = require("@ai-sdk/provider-utils");
1933
1951
  var AWS_PARTITION_DNS_SUFFIXES = [
1934
1952
  { regionPrefix: "cn-", dnsSuffix: "amazonaws.com.cn" },
1935
1953
  { regionPrefix: "us-iso-", dnsSuffix: "c2s.ic.gov" },
@@ -1945,33 +1963,33 @@ function resolveBedrockBaseURL({
1945
1963
  serviceEndpointUrlEnvironmentVariableName
1946
1964
  }) {
1947
1965
  var _a, _b, _c, _d, _e;
1948
- const resolvedBaseURL = (_a = baseURL != null ? baseURL : (0, import_provider_utils8.loadOptionalSetting)({
1966
+ const resolvedBaseURL = (_a = baseURL != null ? baseURL : (0, import_provider_utils9.loadOptionalSetting)({
1949
1967
  settingValue: void 0,
1950
1968
  environmentVariableName: serviceEndpointUrlEnvironmentVariableName
1951
- })) != null ? _a : (0, import_provider_utils8.loadOptionalSetting)({
1969
+ })) != null ? _a : (0, import_provider_utils9.loadOptionalSetting)({
1952
1970
  settingValue: void 0,
1953
1971
  environmentVariableName: "AWS_ENDPOINT_URL"
1954
1972
  });
1955
1973
  if (resolvedBaseURL != null) {
1956
- return (_b = (0, import_provider_utils8.withoutTrailingSlash)(resolvedBaseURL)) != null ? _b : resolvedBaseURL;
1974
+ return (_b = (0, import_provider_utils9.withoutTrailingSlash)(resolvedBaseURL)) != null ? _b : resolvedBaseURL;
1957
1975
  }
1958
1976
  const region = getRegion();
1959
1977
  const dnsSuffix = (_d = (_c = AWS_PARTITION_DNS_SUFFIXES.find(
1960
1978
  ({ regionPrefix }) => region.startsWith(regionPrefix)
1961
1979
  )) == null ? void 0 : _c.dnsSuffix) != null ? _d : "amazonaws.com";
1962
1980
  const generatedBaseURL = `https://${service}.${region}.${dnsSuffix}`;
1963
- return (_e = (0, import_provider_utils8.withoutTrailingSlash)(generatedBaseURL)) != null ? _e : generatedBaseURL;
1981
+ return (_e = (0, import_provider_utils9.withoutTrailingSlash)(generatedBaseURL)) != null ? _e : generatedBaseURL;
1964
1982
  }
1965
1983
 
1966
1984
  // src/bedrock-provider.ts
1967
1985
  function createAmazonBedrock(options = {}) {
1968
- const rawApiKey = (0, import_provider_utils9.loadOptionalSetting)({
1986
+ const rawApiKey = (0, import_provider_utils10.loadOptionalSetting)({
1969
1987
  settingValue: options.apiKey,
1970
1988
  environmentVariableName: "AWS_BEARER_TOKEN_BEDROCK"
1971
1989
  });
1972
1990
  const apiKey = rawApiKey && rawApiKey.trim().length > 0 ? rawApiKey.trim() : void 0;
1973
1991
  const fetchFunction = apiKey ? createApiKeyFetchFunction(apiKey, options.fetch) : createSigV4FetchFunction(async () => {
1974
- const region = (0, import_provider_utils9.loadSetting)({
1992
+ const region = (0, import_provider_utils10.loadSetting)({
1975
1993
  settingValue: options.region,
1976
1994
  settingName: "region",
1977
1995
  environmentVariableName: "AWS_REGION",
@@ -1993,19 +2011,19 @@ function createAmazonBedrock(options = {}) {
1993
2011
  try {
1994
2012
  return {
1995
2013
  region,
1996
- accessKeyId: (0, import_provider_utils9.loadSetting)({
2014
+ accessKeyId: (0, import_provider_utils10.loadSetting)({
1997
2015
  settingValue: options.accessKeyId,
1998
2016
  settingName: "accessKeyId",
1999
2017
  environmentVariableName: "AWS_ACCESS_KEY_ID",
2000
2018
  description: "AWS access key ID"
2001
2019
  }),
2002
- secretAccessKey: (0, import_provider_utils9.loadSetting)({
2020
+ secretAccessKey: (0, import_provider_utils10.loadSetting)({
2003
2021
  settingValue: options.secretAccessKey,
2004
2022
  settingName: "secretAccessKey",
2005
2023
  environmentVariableName: "AWS_SECRET_ACCESS_KEY",
2006
2024
  description: "AWS secret access key"
2007
2025
  }),
2008
- sessionToken: (0, import_provider_utils9.loadOptionalSetting)({
2026
+ sessionToken: (0, import_provider_utils10.loadOptionalSetting)({
2009
2027
  settingValue: options.sessionToken,
2010
2028
  environmentVariableName: "AWS_SESSION_TOKEN"
2011
2029
  })
@@ -2033,7 +2051,7 @@ Original error: ${errorMessage}`
2033
2051
  }, options.fetch);
2034
2052
  const getBaseUrl = () => resolveBedrockBaseURL({
2035
2053
  baseURL: options.baseURL,
2036
- getRegion: () => (0, import_provider_utils9.loadSetting)({
2054
+ getRegion: () => (0, import_provider_utils10.loadSetting)({
2037
2055
  settingValue: options.region,
2038
2056
  settingName: "region",
2039
2057
  environmentVariableName: "AWS_REGION",
@@ -2045,21 +2063,22 @@ Original error: ${errorMessage}`
2045
2063
  const getHeaders = () => {
2046
2064
  var _a;
2047
2065
  const baseHeaders = (_a = options.headers) != null ? _a : {};
2048
- return (0, import_provider_utils9.withUserAgentSuffix)(baseHeaders, `ai-sdk/amazon-bedrock/${VERSION}`);
2066
+ return (0, import_provider_utils10.withUserAgentSuffix)(baseHeaders, `ai-sdk/amazon-bedrock/${VERSION}`);
2049
2067
  };
2050
- const createChatModel = (modelId) => new BedrockChatLanguageModel(modelId, {
2068
+ const createChatModel = (modelId, settings = {}) => new BedrockChatLanguageModel(modelId, {
2051
2069
  baseUrl: getBaseUrl,
2052
2070
  headers: getHeaders,
2053
2071
  fetch: fetchFunction,
2054
- generateId: import_provider_utils9.generateId
2072
+ generateId: import_provider_utils10.generateId,
2073
+ modelFamily: settings.modelFamily
2055
2074
  });
2056
- const provider = function(modelId) {
2075
+ const provider = function(modelId, settings) {
2057
2076
  if (new.target) {
2058
2077
  throw new Error(
2059
2078
  "The Amazon Bedrock model function cannot be called with the new keyword."
2060
2079
  );
2061
2080
  }
2062
- return createChatModel(modelId);
2081
+ return createChatModel(modelId, settings);
2063
2082
  };
2064
2083
  const createEmbeddingModel = (modelId) => new BedrockEmbeddingModel(modelId, {
2065
2084
  baseUrl: getBaseUrl,