@ai-sdk/amazon-bedrock 4.0.0-beta.88 → 4.0.0-beta.90

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/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @ai-sdk/amazon-bedrock
2
2
 
3
+ ## 4.0.0-beta.90
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [05d5b9a]
8
+ - @ai-sdk/anthropic@3.0.0-beta.80
9
+
10
+ ## 4.0.0-beta.89
11
+
12
+ ### Patch Changes
13
+
14
+ - 3bd2689: feat: extended token usage
15
+ - Updated dependencies [3bd2689]
16
+ - @ai-sdk/anthropic@3.0.0-beta.79
17
+ - @ai-sdk/provider@3.0.0-beta.26
18
+ - @ai-sdk/provider-utils@4.0.0-beta.45
19
+
3
20
  ## 4.0.0-beta.88
4
21
 
5
22
  ### Patch Changes
package/dist/index.js CHANGED
@@ -107,6 +107,45 @@ var BedrockErrorSchema = import_v42.z.object({
107
107
  type: import_v42.z.string().nullish()
108
108
  });
109
109
 
110
+ // src/convert-bedrock-usage.ts
111
+ function convertBedrockUsage(usage) {
112
+ var _a, _b;
113
+ if (usage == null) {
114
+ return {
115
+ inputTokens: {
116
+ total: void 0,
117
+ noCache: void 0,
118
+ cacheRead: void 0,
119
+ cacheWrite: void 0
120
+ },
121
+ outputTokens: {
122
+ total: void 0,
123
+ text: void 0,
124
+ reasoning: void 0
125
+ },
126
+ raw: void 0
127
+ };
128
+ }
129
+ const inputTokens = usage.inputTokens;
130
+ const outputTokens = usage.outputTokens;
131
+ const cacheReadTokens = (_a = usage.cacheReadInputTokens) != null ? _a : 0;
132
+ const cacheWriteTokens = (_b = usage.cacheWriteInputTokens) != null ? _b : 0;
133
+ return {
134
+ inputTokens: {
135
+ total: inputTokens,
136
+ noCache: inputTokens - cacheReadTokens,
137
+ cacheRead: cacheReadTokens,
138
+ cacheWrite: cacheWriteTokens
139
+ },
140
+ outputTokens: {
141
+ total: outputTokens,
142
+ text: outputTokens,
143
+ reasoning: void 0
144
+ },
145
+ raw: usage
146
+ };
147
+ }
148
+
110
149
  // src/bedrock-event-stream-response-handler.ts
111
150
  var import_provider = require("@ai-sdk/provider");
112
151
  var import_provider_utils = require("@ai-sdk/provider-utils");
@@ -897,7 +936,7 @@ var BedrockChatLanguageModel = class {
897
936
  return (0, import_provider_utils4.combineHeaders)(await (0, import_provider_utils4.resolve)(this.config.headers), headers);
898
937
  }
899
938
  async doGenerate(options) {
900
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
939
+ var _a, _b, _c, _d, _e, _f, _g, _h;
901
940
  const {
902
941
  command: args,
903
942
  warnings,
@@ -988,12 +1027,7 @@ var BedrockChatLanguageModel = class {
988
1027
  response.stopReason,
989
1028
  isJsonResponseFromTool
990
1029
  ),
991
- usage: {
992
- inputTokens: (_i = response.usage) == null ? void 0 : _i.inputTokens,
993
- outputTokens: (_j = response.usage) == null ? void 0 : _j.outputTokens,
994
- totalTokens: ((_k = response.usage) == null ? void 0 : _k.inputTokens) + ((_l = response.usage) == null ? void 0 : _l.outputTokens),
995
- cachedInputTokens: (_n = (_m = response.usage) == null ? void 0 : _m.cacheReadInputTokens) != null ? _n : void 0
996
- },
1030
+ usage: convertBedrockUsage(response.usage),
997
1031
  response: {
998
1032
  // TODO add id, timestamp, etc
999
1033
  headers: responseHeaders
@@ -1022,11 +1056,7 @@ var BedrockChatLanguageModel = class {
1022
1056
  fetch: this.config.fetch
1023
1057
  });
1024
1058
  let finishReason = "unknown";
1025
- const usage = {
1026
- inputTokens: void 0,
1027
- outputTokens: void 0,
1028
- totalTokens: void 0
1029
- };
1059
+ let usage = void 0;
1030
1060
  let providerMetadata = void 0;
1031
1061
  let isJsonResponseFromTool = false;
1032
1062
  const contentBlocks = {};
@@ -1037,7 +1067,7 @@ var BedrockChatLanguageModel = class {
1037
1067
  controller.enqueue({ type: "stream-start", warnings });
1038
1068
  },
1039
1069
  transform(chunk, controller) {
1040
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;
1070
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i;
1041
1071
  function enqueueError(bedrockError) {
1042
1072
  finishReason = "error";
1043
1073
  controller.enqueue({ type: "error", error: bedrockError });
@@ -1073,11 +1103,10 @@ var BedrockChatLanguageModel = class {
1073
1103
  );
1074
1104
  }
1075
1105
  if (value.metadata) {
1076
- usage.inputTokens = (_b = (_a = value.metadata.usage) == null ? void 0 : _a.inputTokens) != null ? _b : usage.inputTokens;
1077
- usage.outputTokens = (_d = (_c = value.metadata.usage) == null ? void 0 : _c.outputTokens) != null ? _d : usage.outputTokens;
1078
- usage.totalTokens = ((_e = usage.inputTokens) != null ? _e : 0) + ((_f = usage.outputTokens) != null ? _f : 0);
1079
- usage.cachedInputTokens = (_h = (_g = value.metadata.usage) == null ? void 0 : _g.cacheReadInputTokens) != null ? _h : usage.cachedInputTokens;
1080
- const cacheUsage = ((_i = value.metadata.usage) == null ? void 0 : _i.cacheWriteInputTokens) != null ? {
1106
+ if (value.metadata.usage) {
1107
+ usage = value.metadata.usage;
1108
+ }
1109
+ const cacheUsage = ((_a = value.metadata.usage) == null ? void 0 : _a.cacheWriteInputTokens) != null ? {
1081
1110
  usage: {
1082
1111
  cacheWriteInputTokens: value.metadata.usage.cacheWriteInputTokens
1083
1112
  }
@@ -1094,7 +1123,7 @@ var BedrockChatLanguageModel = class {
1094
1123
  };
1095
1124
  }
1096
1125
  }
1097
- if (((_j = value.contentBlockStart) == null ? void 0 : _j.contentBlockIndex) != null && !((_l = (_k = value.contentBlockStart) == null ? void 0 : _k.start) == null ? void 0 : _l.toolUse)) {
1126
+ if (((_b = value.contentBlockStart) == null ? void 0 : _b.contentBlockIndex) != null && !((_d = (_c = value.contentBlockStart) == null ? void 0 : _c.start) == null ? void 0 : _d.toolUse)) {
1098
1127
  const blockIndex = value.contentBlockStart.contentBlockIndex;
1099
1128
  contentBlocks[blockIndex] = { type: "text" };
1100
1129
  controller.enqueue({
@@ -1102,7 +1131,7 @@ var BedrockChatLanguageModel = class {
1102
1131
  id: String(blockIndex)
1103
1132
  });
1104
1133
  }
1105
- if (((_m = value.contentBlockDelta) == null ? void 0 : _m.delta) && "text" in value.contentBlockDelta.delta && value.contentBlockDelta.delta.text) {
1134
+ if (((_e = value.contentBlockDelta) == null ? void 0 : _e.delta) && "text" in value.contentBlockDelta.delta && value.contentBlockDelta.delta.text) {
1106
1135
  const blockIndex = value.contentBlockDelta.contentBlockIndex || 0;
1107
1136
  if (contentBlocks[blockIndex] == null) {
1108
1137
  contentBlocks[blockIndex] = { type: "text" };
@@ -1117,7 +1146,7 @@ var BedrockChatLanguageModel = class {
1117
1146
  delta: value.contentBlockDelta.delta.text
1118
1147
  });
1119
1148
  }
1120
- if (((_n = value.contentBlockStop) == null ? void 0 : _n.contentBlockIndex) != null) {
1149
+ if (((_f = value.contentBlockStop) == null ? void 0 : _f.contentBlockIndex) != null) {
1121
1150
  const blockIndex = value.contentBlockStop.contentBlockIndex;
1122
1151
  const contentBlock = contentBlocks[blockIndex];
1123
1152
  if (contentBlock != null) {
@@ -1163,7 +1192,7 @@ var BedrockChatLanguageModel = class {
1163
1192
  delete contentBlocks[blockIndex];
1164
1193
  }
1165
1194
  }
1166
- if (((_o = value.contentBlockDelta) == null ? void 0 : _o.delta) && "reasoningContent" in value.contentBlockDelta.delta && value.contentBlockDelta.delta.reasoningContent) {
1195
+ if (((_g = value.contentBlockDelta) == null ? void 0 : _g.delta) && "reasoningContent" in value.contentBlockDelta.delta && value.contentBlockDelta.delta.reasoningContent) {
1167
1196
  const blockIndex = value.contentBlockDelta.contentBlockIndex || 0;
1168
1197
  const reasoningContent = value.contentBlockDelta.delta.reasoningContent;
1169
1198
  if ("text" in reasoningContent && reasoningContent.text) {
@@ -1204,7 +1233,7 @@ var BedrockChatLanguageModel = class {
1204
1233
  }
1205
1234
  }
1206
1235
  const contentBlockStart = value.contentBlockStart;
1207
- if (((_p = contentBlockStart == null ? void 0 : contentBlockStart.start) == null ? void 0 : _p.toolUse) != null) {
1236
+ if (((_h = contentBlockStart == null ? void 0 : contentBlockStart.start) == null ? void 0 : _h.toolUse) != null) {
1208
1237
  const toolUse = contentBlockStart.start.toolUse;
1209
1238
  const blockIndex = contentBlockStart.contentBlockIndex;
1210
1239
  const isJsonResponseTool = usesJsonResponseTool && toolUse.name === "json";
@@ -1228,7 +1257,7 @@ var BedrockChatLanguageModel = class {
1228
1257
  const blockIndex = contentBlockDelta.contentBlockIndex;
1229
1258
  const contentBlock = contentBlocks[blockIndex];
1230
1259
  if ((contentBlock == null ? void 0 : contentBlock.type) === "tool-call") {
1231
- const delta = (_q = contentBlockDelta.delta.toolUse.input) != null ? _q : "";
1260
+ const delta = (_i = contentBlockDelta.delta.toolUse.input) != null ? _i : "";
1232
1261
  if (!contentBlock.isJsonResponseTool) {
1233
1262
  controller.enqueue({
1234
1263
  type: "tool-input-delta",
@@ -1258,7 +1287,7 @@ var BedrockChatLanguageModel = class {
1258
1287
  controller.enqueue({
1259
1288
  type: "finish",
1260
1289
  finishReason,
1261
- usage,
1290
+ usage: convertBedrockUsage(usage),
1262
1291
  ...providerMetadata && { providerMetadata }
1263
1292
  });
1264
1293
  }
@@ -1563,7 +1592,7 @@ var import_provider_utils7 = require("@ai-sdk/provider-utils");
1563
1592
  var import_aws4fetch = require("aws4fetch");
1564
1593
 
1565
1594
  // src/version.ts
1566
- var VERSION = true ? "4.0.0-beta.88" : "0.0.0-test";
1595
+ var VERSION = true ? "4.0.0-beta.90" : "0.0.0-test";
1567
1596
 
1568
1597
  // src/bedrock-sigv4-fetch.ts
1569
1598
  function createSigV4FetchFunction(getCredentials, fetch = globalThis.fetch) {