@ai-sdk/amazon-bedrock 4.0.0-beta.99 → 4.0.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/CHANGELOG.md +299 -0
- package/dist/index.d.mts +14 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +229 -90
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +230 -90
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -107,45 +107,6 @@ 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
|
-
|
|
149
110
|
// src/bedrock-event-stream-response-handler.ts
|
|
150
111
|
var import_provider = require("@ai-sdk/provider");
|
|
151
112
|
var import_provider_utils = require("@ai-sdk/provider-utils");
|
|
@@ -355,6 +316,45 @@ async function prepareTools({
|
|
|
355
316
|
};
|
|
356
317
|
}
|
|
357
318
|
|
|
319
|
+
// src/convert-bedrock-usage.ts
|
|
320
|
+
function convertBedrockUsage(usage) {
|
|
321
|
+
var _a, _b;
|
|
322
|
+
if (usage == null) {
|
|
323
|
+
return {
|
|
324
|
+
inputTokens: {
|
|
325
|
+
total: void 0,
|
|
326
|
+
noCache: void 0,
|
|
327
|
+
cacheRead: void 0,
|
|
328
|
+
cacheWrite: void 0
|
|
329
|
+
},
|
|
330
|
+
outputTokens: {
|
|
331
|
+
total: void 0,
|
|
332
|
+
text: void 0,
|
|
333
|
+
reasoning: void 0
|
|
334
|
+
},
|
|
335
|
+
raw: void 0
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
const inputTokens = usage.inputTokens;
|
|
339
|
+
const outputTokens = usage.outputTokens;
|
|
340
|
+
const cacheReadTokens = (_a = usage.cacheReadInputTokens) != null ? _a : 0;
|
|
341
|
+
const cacheWriteTokens = (_b = usage.cacheWriteInputTokens) != null ? _b : 0;
|
|
342
|
+
return {
|
|
343
|
+
inputTokens: {
|
|
344
|
+
total: inputTokens,
|
|
345
|
+
noCache: inputTokens - cacheReadTokens,
|
|
346
|
+
cacheRead: cacheReadTokens,
|
|
347
|
+
cacheWrite: cacheWriteTokens
|
|
348
|
+
},
|
|
349
|
+
outputTokens: {
|
|
350
|
+
total: outputTokens,
|
|
351
|
+
text: outputTokens,
|
|
352
|
+
reasoning: void 0
|
|
353
|
+
},
|
|
354
|
+
raw: usage
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
|
|
358
358
|
// src/convert-to-bedrock-chat-messages.ts
|
|
359
359
|
var import_provider3 = require("@ai-sdk/provider");
|
|
360
360
|
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
|
@@ -454,6 +454,9 @@ async function convertToBedrockChatMessages(prompt) {
|
|
|
454
454
|
}
|
|
455
455
|
case "tool": {
|
|
456
456
|
for (const part of content) {
|
|
457
|
+
if (part.type === "tool-approval-response") {
|
|
458
|
+
continue;
|
|
459
|
+
}
|
|
457
460
|
let toolResultContent;
|
|
458
461
|
const output = part.output;
|
|
459
462
|
switch (output.type) {
|
|
@@ -706,7 +709,7 @@ function mapBedrockFinishReason(finishReason, isJsonResponseFromTool) {
|
|
|
706
709
|
case "tool_use":
|
|
707
710
|
return isJsonResponseFromTool ? "stop" : "tool-calls";
|
|
708
711
|
default:
|
|
709
|
-
return "
|
|
712
|
+
return "other";
|
|
710
713
|
}
|
|
711
714
|
}
|
|
712
715
|
|
|
@@ -919,6 +922,7 @@ var BedrockChatLanguageModel = class {
|
|
|
919
922
|
system,
|
|
920
923
|
messages,
|
|
921
924
|
additionalModelRequestFields: bedrockOptions.additionalModelRequestFields,
|
|
925
|
+
additionalModelResponseFieldPaths: ["/stop_sequence"],
|
|
922
926
|
...Object.keys(inferenceConfig).length > 0 && {
|
|
923
927
|
inferenceConfig
|
|
924
928
|
},
|
|
@@ -936,7 +940,7 @@ var BedrockChatLanguageModel = class {
|
|
|
936
940
|
return (0, import_provider_utils4.combineHeaders)(await (0, import_provider_utils4.resolve)(this.config.headers), headers);
|
|
937
941
|
}
|
|
938
942
|
async doGenerate(options) {
|
|
939
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
943
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
|
|
940
944
|
const {
|
|
941
945
|
command: args,
|
|
942
946
|
warnings,
|
|
@@ -1010,23 +1014,28 @@ var BedrockChatLanguageModel = class {
|
|
|
1010
1014
|
}
|
|
1011
1015
|
}
|
|
1012
1016
|
}
|
|
1013
|
-
const
|
|
1017
|
+
const stopSequence = (_i = (_h = response.additionalModelResponseFields) == null ? void 0 : _h.stop_sequence) != null ? _i : null;
|
|
1018
|
+
const providerMetadata = response.trace || response.usage || isJsonResponseFromTool || stopSequence ? {
|
|
1014
1019
|
bedrock: {
|
|
1015
1020
|
...response.trace && typeof response.trace === "object" ? { trace: response.trace } : {},
|
|
1016
|
-
...((
|
|
1021
|
+
...((_j = response.usage) == null ? void 0 : _j.cacheWriteInputTokens) != null && {
|
|
1017
1022
|
usage: {
|
|
1018
1023
|
cacheWriteInputTokens: response.usage.cacheWriteInputTokens
|
|
1019
1024
|
}
|
|
1020
1025
|
},
|
|
1021
|
-
...isJsonResponseFromTool && { isJsonResponseFromTool: true }
|
|
1026
|
+
...isJsonResponseFromTool && { isJsonResponseFromTool: true },
|
|
1027
|
+
stopSequence
|
|
1022
1028
|
}
|
|
1023
1029
|
} : void 0;
|
|
1024
1030
|
return {
|
|
1025
1031
|
content,
|
|
1026
|
-
finishReason:
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1032
|
+
finishReason: {
|
|
1033
|
+
unified: mapBedrockFinishReason(
|
|
1034
|
+
response.stopReason,
|
|
1035
|
+
isJsonResponseFromTool
|
|
1036
|
+
),
|
|
1037
|
+
raw: (_k = response.stopReason) != null ? _k : void 0
|
|
1038
|
+
},
|
|
1030
1039
|
usage: convertBedrockUsage(response.usage),
|
|
1031
1040
|
response: {
|
|
1032
1041
|
// TODO add id, timestamp, etc
|
|
@@ -1055,10 +1064,14 @@ var BedrockChatLanguageModel = class {
|
|
|
1055
1064
|
abortSignal: options.abortSignal,
|
|
1056
1065
|
fetch: this.config.fetch
|
|
1057
1066
|
});
|
|
1058
|
-
let finishReason =
|
|
1067
|
+
let finishReason = {
|
|
1068
|
+
unified: "other",
|
|
1069
|
+
raw: void 0
|
|
1070
|
+
};
|
|
1059
1071
|
let usage = void 0;
|
|
1060
1072
|
let providerMetadata = void 0;
|
|
1061
1073
|
let isJsonResponseFromTool = false;
|
|
1074
|
+
let stopSequence = null;
|
|
1062
1075
|
const contentBlocks = {};
|
|
1063
1076
|
return {
|
|
1064
1077
|
stream: response.pipeThrough(
|
|
@@ -1067,9 +1080,9 @@ var BedrockChatLanguageModel = class {
|
|
|
1067
1080
|
controller.enqueue({ type: "stream-start", warnings });
|
|
1068
1081
|
},
|
|
1069
1082
|
transform(chunk, controller) {
|
|
1070
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
1083
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
1071
1084
|
function enqueueError(bedrockError) {
|
|
1072
|
-
finishReason = "error";
|
|
1085
|
+
finishReason = { unified: "error", raw: void 0 };
|
|
1073
1086
|
controller.enqueue({ type: "error", error: bedrockError });
|
|
1074
1087
|
}
|
|
1075
1088
|
if (options.includeRawChunks) {
|
|
@@ -1097,16 +1110,20 @@ var BedrockChatLanguageModel = class {
|
|
|
1097
1110
|
return;
|
|
1098
1111
|
}
|
|
1099
1112
|
if (value.messageStop) {
|
|
1100
|
-
finishReason =
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1113
|
+
finishReason = {
|
|
1114
|
+
unified: mapBedrockFinishReason(
|
|
1115
|
+
value.messageStop.stopReason,
|
|
1116
|
+
isJsonResponseFromTool
|
|
1117
|
+
),
|
|
1118
|
+
raw: (_a = value.messageStop.stopReason) != null ? _a : void 0
|
|
1119
|
+
};
|
|
1120
|
+
stopSequence = (_c = (_b = value.messageStop.additionalModelResponseFields) == null ? void 0 : _b.stop_sequence) != null ? _c : null;
|
|
1104
1121
|
}
|
|
1105
1122
|
if (value.metadata) {
|
|
1106
1123
|
if (value.metadata.usage) {
|
|
1107
1124
|
usage = value.metadata.usage;
|
|
1108
1125
|
}
|
|
1109
|
-
const cacheUsage = ((
|
|
1126
|
+
const cacheUsage = ((_d = value.metadata.usage) == null ? void 0 : _d.cacheWriteInputTokens) != null ? {
|
|
1110
1127
|
usage: {
|
|
1111
1128
|
cacheWriteInputTokens: value.metadata.usage.cacheWriteInputTokens
|
|
1112
1129
|
}
|
|
@@ -1123,7 +1140,7 @@ var BedrockChatLanguageModel = class {
|
|
|
1123
1140
|
};
|
|
1124
1141
|
}
|
|
1125
1142
|
}
|
|
1126
|
-
if (((
|
|
1143
|
+
if (((_e = value.contentBlockStart) == null ? void 0 : _e.contentBlockIndex) != null && !((_g = (_f = value.contentBlockStart) == null ? void 0 : _f.start) == null ? void 0 : _g.toolUse)) {
|
|
1127
1144
|
const blockIndex = value.contentBlockStart.contentBlockIndex;
|
|
1128
1145
|
contentBlocks[blockIndex] = { type: "text" };
|
|
1129
1146
|
controller.enqueue({
|
|
@@ -1131,7 +1148,7 @@ var BedrockChatLanguageModel = class {
|
|
|
1131
1148
|
id: String(blockIndex)
|
|
1132
1149
|
});
|
|
1133
1150
|
}
|
|
1134
|
-
if (((
|
|
1151
|
+
if (((_h = value.contentBlockDelta) == null ? void 0 : _h.delta) && "text" in value.contentBlockDelta.delta && value.contentBlockDelta.delta.text) {
|
|
1135
1152
|
const blockIndex = value.contentBlockDelta.contentBlockIndex || 0;
|
|
1136
1153
|
if (contentBlocks[blockIndex] == null) {
|
|
1137
1154
|
contentBlocks[blockIndex] = { type: "text" };
|
|
@@ -1146,7 +1163,7 @@ var BedrockChatLanguageModel = class {
|
|
|
1146
1163
|
delta: value.contentBlockDelta.delta.text
|
|
1147
1164
|
});
|
|
1148
1165
|
}
|
|
1149
|
-
if (((
|
|
1166
|
+
if (((_i = value.contentBlockStop) == null ? void 0 : _i.contentBlockIndex) != null) {
|
|
1150
1167
|
const blockIndex = value.contentBlockStop.contentBlockIndex;
|
|
1151
1168
|
const contentBlock = contentBlocks[blockIndex];
|
|
1152
1169
|
if (contentBlock != null) {
|
|
@@ -1192,7 +1209,7 @@ var BedrockChatLanguageModel = class {
|
|
|
1192
1209
|
delete contentBlocks[blockIndex];
|
|
1193
1210
|
}
|
|
1194
1211
|
}
|
|
1195
|
-
if (((
|
|
1212
|
+
if (((_j = value.contentBlockDelta) == null ? void 0 : _j.delta) && "reasoningContent" in value.contentBlockDelta.delta && value.contentBlockDelta.delta.reasoningContent) {
|
|
1196
1213
|
const blockIndex = value.contentBlockDelta.contentBlockIndex || 0;
|
|
1197
1214
|
const reasoningContent = value.contentBlockDelta.delta.reasoningContent;
|
|
1198
1215
|
if ("text" in reasoningContent && reasoningContent.text) {
|
|
@@ -1233,7 +1250,7 @@ var BedrockChatLanguageModel = class {
|
|
|
1233
1250
|
}
|
|
1234
1251
|
}
|
|
1235
1252
|
const contentBlockStart = value.contentBlockStart;
|
|
1236
|
-
if (((
|
|
1253
|
+
if (((_k = contentBlockStart == null ? void 0 : contentBlockStart.start) == null ? void 0 : _k.toolUse) != null) {
|
|
1237
1254
|
const toolUse = contentBlockStart.start.toolUse;
|
|
1238
1255
|
const blockIndex = contentBlockStart.contentBlockIndex;
|
|
1239
1256
|
const isJsonResponseTool = usesJsonResponseTool && toolUse.name === "json";
|
|
@@ -1257,7 +1274,7 @@ var BedrockChatLanguageModel = class {
|
|
|
1257
1274
|
const blockIndex = contentBlockDelta.contentBlockIndex;
|
|
1258
1275
|
const contentBlock = contentBlocks[blockIndex];
|
|
1259
1276
|
if ((contentBlock == null ? void 0 : contentBlock.type) === "tool-call") {
|
|
1260
|
-
const delta = (
|
|
1277
|
+
const delta = (_l = contentBlockDelta.delta.toolUse.input) != null ? _l : "";
|
|
1261
1278
|
if (!contentBlock.isJsonResponseTool) {
|
|
1262
1279
|
controller.enqueue({
|
|
1263
1280
|
type: "tool-input-delta",
|
|
@@ -1270,16 +1287,22 @@ var BedrockChatLanguageModel = class {
|
|
|
1270
1287
|
}
|
|
1271
1288
|
},
|
|
1272
1289
|
flush(controller) {
|
|
1273
|
-
if (isJsonResponseFromTool) {
|
|
1290
|
+
if (isJsonResponseFromTool || stopSequence != null) {
|
|
1274
1291
|
if (providerMetadata) {
|
|
1275
1292
|
providerMetadata.bedrock = {
|
|
1276
1293
|
...providerMetadata.bedrock,
|
|
1277
|
-
isJsonResponseFromTool
|
|
1294
|
+
...isJsonResponseFromTool && {
|
|
1295
|
+
isJsonResponseFromTool: true
|
|
1296
|
+
},
|
|
1297
|
+
stopSequence
|
|
1278
1298
|
};
|
|
1279
1299
|
} else {
|
|
1280
1300
|
providerMetadata = {
|
|
1281
1301
|
bedrock: {
|
|
1282
|
-
isJsonResponseFromTool
|
|
1302
|
+
...isJsonResponseFromTool && {
|
|
1303
|
+
isJsonResponseFromTool: true
|
|
1304
|
+
},
|
|
1305
|
+
stopSequence
|
|
1283
1306
|
}
|
|
1284
1307
|
};
|
|
1285
1308
|
}
|
|
@@ -1306,6 +1329,9 @@ var BedrockStopReasonSchema = import_v43.z.union([
|
|
|
1306
1329
|
import_v43.z.enum(BEDROCK_STOP_REASONS),
|
|
1307
1330
|
import_v43.z.string()
|
|
1308
1331
|
]);
|
|
1332
|
+
var BedrockAdditionalModelResponseFieldsSchema = import_v43.z.object({
|
|
1333
|
+
stop_sequence: import_v43.z.string().optional()
|
|
1334
|
+
}).catchall(import_v43.z.unknown());
|
|
1309
1335
|
var BedrockToolUseSchema = import_v43.z.object({
|
|
1310
1336
|
toolUseId: import_v43.z.string(),
|
|
1311
1337
|
name: import_v43.z.string(),
|
|
@@ -1342,6 +1368,7 @@ var BedrockResponseSchema = import_v43.z.object({
|
|
|
1342
1368
|
})
|
|
1343
1369
|
}),
|
|
1344
1370
|
stopReason: BedrockStopReasonSchema,
|
|
1371
|
+
additionalModelResponseFields: BedrockAdditionalModelResponseFieldsSchema.nullish(),
|
|
1345
1372
|
trace: import_v43.z.unknown().nullish(),
|
|
1346
1373
|
usage: import_v43.z.object({
|
|
1347
1374
|
inputTokens: import_v43.z.number(),
|
|
@@ -1381,7 +1408,7 @@ var BedrockStreamSchema = import_v43.z.object({
|
|
|
1381
1408
|
}).nullish(),
|
|
1382
1409
|
internalServerException: import_v43.z.record(import_v43.z.string(), import_v43.z.unknown()).nullish(),
|
|
1383
1410
|
messageStop: import_v43.z.object({
|
|
1384
|
-
additionalModelResponseFields:
|
|
1411
|
+
additionalModelResponseFields: BedrockAdditionalModelResponseFieldsSchema.nullish(),
|
|
1385
1412
|
stopReason: BedrockStopReasonSchema
|
|
1386
1413
|
}).nullish(),
|
|
1387
1414
|
metadata: import_v43.z.object({
|
|
@@ -1523,31 +1550,110 @@ var BedrockImageModel = class {
|
|
|
1523
1550
|
seed,
|
|
1524
1551
|
providerOptions,
|
|
1525
1552
|
headers,
|
|
1526
|
-
abortSignal
|
|
1553
|
+
abortSignal,
|
|
1554
|
+
files,
|
|
1555
|
+
mask
|
|
1527
1556
|
}) {
|
|
1528
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
1557
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
|
|
1529
1558
|
const warnings = [];
|
|
1530
1559
|
const [width, height] = size ? size.split("x").map(Number) : [];
|
|
1531
|
-
const
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
style: providerOptions.bedrock.style
|
|
1540
|
-
} : {}
|
|
1541
|
-
},
|
|
1542
|
-
imageGenerationConfig: {
|
|
1543
|
-
...width ? { width } : {},
|
|
1544
|
-
...height ? { height } : {},
|
|
1545
|
-
...seed ? { seed } : {},
|
|
1546
|
-
...n ? { numberOfImages: n } : {},
|
|
1547
|
-
...((_c = providerOptions == null ? void 0 : providerOptions.bedrock) == null ? void 0 : _c.quality) ? { quality: providerOptions.bedrock.quality } : {},
|
|
1548
|
-
...((_d = providerOptions == null ? void 0 : providerOptions.bedrock) == null ? void 0 : _d.cfgScale) ? { cfgScale: providerOptions.bedrock.cfgScale } : {}
|
|
1549
|
-
}
|
|
1560
|
+
const hasFiles = files != null && files.length > 0;
|
|
1561
|
+
const imageGenerationConfig = {
|
|
1562
|
+
...width ? { width } : {},
|
|
1563
|
+
...height ? { height } : {},
|
|
1564
|
+
...seed ? { seed } : {},
|
|
1565
|
+
...n ? { numberOfImages: n } : {},
|
|
1566
|
+
...((_a = providerOptions == null ? void 0 : providerOptions.bedrock) == null ? void 0 : _a.quality) ? { quality: providerOptions.bedrock.quality } : {},
|
|
1567
|
+
...((_b = providerOptions == null ? void 0 : providerOptions.bedrock) == null ? void 0 : _b.cfgScale) ? { cfgScale: providerOptions.bedrock.cfgScale } : {}
|
|
1550
1568
|
};
|
|
1569
|
+
let args;
|
|
1570
|
+
if (hasFiles) {
|
|
1571
|
+
const hasMask = (mask == null ? void 0 : mask.type) != null;
|
|
1572
|
+
const hasMaskPrompt = ((_c = providerOptions == null ? void 0 : providerOptions.bedrock) == null ? void 0 : _c.maskPrompt) != null;
|
|
1573
|
+
const taskType = (_e = (_d = providerOptions == null ? void 0 : providerOptions.bedrock) == null ? void 0 : _d.taskType) != null ? _e : hasMask || hasMaskPrompt ? "INPAINTING" : "IMAGE_VARIATION";
|
|
1574
|
+
const sourceImageBase64 = getBase64Data(files[0]);
|
|
1575
|
+
switch (taskType) {
|
|
1576
|
+
case "INPAINTING": {
|
|
1577
|
+
const inPaintingParams = {
|
|
1578
|
+
image: sourceImageBase64,
|
|
1579
|
+
...prompt ? { text: prompt } : {},
|
|
1580
|
+
...((_f = providerOptions == null ? void 0 : providerOptions.bedrock) == null ? void 0 : _f.negativeText) ? { negativeText: providerOptions.bedrock.negativeText } : {}
|
|
1581
|
+
};
|
|
1582
|
+
if (hasMask) {
|
|
1583
|
+
inPaintingParams.maskImage = getBase64Data(mask);
|
|
1584
|
+
} else if (hasMaskPrompt) {
|
|
1585
|
+
inPaintingParams.maskPrompt = providerOptions.bedrock.maskPrompt;
|
|
1586
|
+
}
|
|
1587
|
+
args = {
|
|
1588
|
+
taskType: "INPAINTING",
|
|
1589
|
+
inPaintingParams,
|
|
1590
|
+
imageGenerationConfig
|
|
1591
|
+
};
|
|
1592
|
+
break;
|
|
1593
|
+
}
|
|
1594
|
+
case "OUTPAINTING": {
|
|
1595
|
+
const outPaintingParams = {
|
|
1596
|
+
image: sourceImageBase64,
|
|
1597
|
+
...prompt ? { text: prompt } : {},
|
|
1598
|
+
...((_g = providerOptions == null ? void 0 : providerOptions.bedrock) == null ? void 0 : _g.negativeText) ? { negativeText: providerOptions.bedrock.negativeText } : {},
|
|
1599
|
+
...((_h = providerOptions == null ? void 0 : providerOptions.bedrock) == null ? void 0 : _h.outPaintingMode) ? { outPaintingMode: providerOptions.bedrock.outPaintingMode } : {}
|
|
1600
|
+
};
|
|
1601
|
+
if (hasMask) {
|
|
1602
|
+
outPaintingParams.maskImage = getBase64Data(mask);
|
|
1603
|
+
} else if (hasMaskPrompt) {
|
|
1604
|
+
outPaintingParams.maskPrompt = providerOptions.bedrock.maskPrompt;
|
|
1605
|
+
}
|
|
1606
|
+
args = {
|
|
1607
|
+
taskType: "OUTPAINTING",
|
|
1608
|
+
outPaintingParams,
|
|
1609
|
+
imageGenerationConfig
|
|
1610
|
+
};
|
|
1611
|
+
break;
|
|
1612
|
+
}
|
|
1613
|
+
case "BACKGROUND_REMOVAL": {
|
|
1614
|
+
args = {
|
|
1615
|
+
taskType: "BACKGROUND_REMOVAL",
|
|
1616
|
+
backgroundRemovalParams: {
|
|
1617
|
+
image: sourceImageBase64
|
|
1618
|
+
}
|
|
1619
|
+
};
|
|
1620
|
+
break;
|
|
1621
|
+
}
|
|
1622
|
+
case "IMAGE_VARIATION": {
|
|
1623
|
+
const images = files.map((file) => getBase64Data(file));
|
|
1624
|
+
const imageVariationParams = {
|
|
1625
|
+
images,
|
|
1626
|
+
...prompt ? { text: prompt } : {},
|
|
1627
|
+
...((_i = providerOptions == null ? void 0 : providerOptions.bedrock) == null ? void 0 : _i.negativeText) ? { negativeText: providerOptions.bedrock.negativeText } : {},
|
|
1628
|
+
...((_j = providerOptions == null ? void 0 : providerOptions.bedrock) == null ? void 0 : _j.similarityStrength) != null ? {
|
|
1629
|
+
similarityStrength: providerOptions.bedrock.similarityStrength
|
|
1630
|
+
} : {}
|
|
1631
|
+
};
|
|
1632
|
+
args = {
|
|
1633
|
+
taskType: "IMAGE_VARIATION",
|
|
1634
|
+
imageVariationParams,
|
|
1635
|
+
imageGenerationConfig
|
|
1636
|
+
};
|
|
1637
|
+
break;
|
|
1638
|
+
}
|
|
1639
|
+
default:
|
|
1640
|
+
throw new Error(`Unsupported task type: ${taskType}`);
|
|
1641
|
+
}
|
|
1642
|
+
} else {
|
|
1643
|
+
args = {
|
|
1644
|
+
taskType: "TEXT_IMAGE",
|
|
1645
|
+
textToImageParams: {
|
|
1646
|
+
text: prompt,
|
|
1647
|
+
...((_k = providerOptions == null ? void 0 : providerOptions.bedrock) == null ? void 0 : _k.negativeText) ? {
|
|
1648
|
+
negativeText: providerOptions.bedrock.negativeText
|
|
1649
|
+
} : {},
|
|
1650
|
+
...((_l = providerOptions == null ? void 0 : providerOptions.bedrock) == null ? void 0 : _l.style) ? {
|
|
1651
|
+
style: providerOptions.bedrock.style
|
|
1652
|
+
} : {}
|
|
1653
|
+
},
|
|
1654
|
+
imageGenerationConfig
|
|
1655
|
+
};
|
|
1656
|
+
}
|
|
1551
1657
|
if (aspectRatio != void 0) {
|
|
1552
1658
|
warnings.push({
|
|
1553
1659
|
type: "unsupported",
|
|
@@ -1555,7 +1661,7 @@ var BedrockImageModel = class {
|
|
|
1555
1661
|
details: "This model does not support aspect ratio. Use `size` instead."
|
|
1556
1662
|
});
|
|
1557
1663
|
}
|
|
1558
|
-
const currentDate = (
|
|
1664
|
+
const currentDate = (_o = (_n = (_m = this.config._internal) == null ? void 0 : _m.currentDate) == null ? void 0 : _n.call(_m)) != null ? _o : /* @__PURE__ */ new Date();
|
|
1559
1665
|
const { value: response, responseHeaders } = await (0, import_provider_utils6.postJsonToApi)({
|
|
1560
1666
|
url: this.getUrl(this.modelId),
|
|
1561
1667
|
headers: await (0, import_provider_utils6.resolve)(
|
|
@@ -1572,6 +1678,18 @@ var BedrockImageModel = class {
|
|
|
1572
1678
|
abortSignal,
|
|
1573
1679
|
fetch: this.config.fetch
|
|
1574
1680
|
});
|
|
1681
|
+
if (response.status === "Request Moderated") {
|
|
1682
|
+
const moderationReasons = (_p = response.details) == null ? void 0 : _p["Moderation Reasons"];
|
|
1683
|
+
const reasons = Array.isArray(moderationReasons) ? moderationReasons : ["Unknown"];
|
|
1684
|
+
throw new Error(
|
|
1685
|
+
`Amazon Bedrock request was moderated: ${reasons.join(", ")}`
|
|
1686
|
+
);
|
|
1687
|
+
}
|
|
1688
|
+
if (!response.images || response.images.length === 0) {
|
|
1689
|
+
throw new Error(
|
|
1690
|
+
"Amazon Bedrock returned no images. " + (response.status ? `Status: ${response.status}` : "")
|
|
1691
|
+
);
|
|
1692
|
+
}
|
|
1575
1693
|
return {
|
|
1576
1694
|
images: response.images,
|
|
1577
1695
|
warnings,
|
|
@@ -1583,8 +1701,27 @@ var BedrockImageModel = class {
|
|
|
1583
1701
|
};
|
|
1584
1702
|
}
|
|
1585
1703
|
};
|
|
1704
|
+
function getBase64Data(file) {
|
|
1705
|
+
if (file.type === "url") {
|
|
1706
|
+
throw new Error(
|
|
1707
|
+
"URL-based images are not supported for Amazon Bedrock image editing. Please provide the image data directly."
|
|
1708
|
+
);
|
|
1709
|
+
}
|
|
1710
|
+
if (file.data instanceof Uint8Array) {
|
|
1711
|
+
return (0, import_provider_utils6.convertUint8ArrayToBase64)(file.data);
|
|
1712
|
+
}
|
|
1713
|
+
return file.data;
|
|
1714
|
+
}
|
|
1586
1715
|
var bedrockImageResponseSchema = import_v46.z.object({
|
|
1587
|
-
|
|
1716
|
+
// Normal successful response
|
|
1717
|
+
images: import_v46.z.array(import_v46.z.string()).optional(),
|
|
1718
|
+
// Moderation response fields
|
|
1719
|
+
id: import_v46.z.string().optional(),
|
|
1720
|
+
status: import_v46.z.string().optional(),
|
|
1721
|
+
result: import_v46.z.unknown().optional(),
|
|
1722
|
+
progress: import_v46.z.unknown().optional(),
|
|
1723
|
+
details: import_v46.z.record(import_v46.z.string(), import_v46.z.unknown()).optional(),
|
|
1724
|
+
preview: import_v46.z.unknown().optional()
|
|
1588
1725
|
});
|
|
1589
1726
|
|
|
1590
1727
|
// src/bedrock-sigv4-fetch.ts
|
|
@@ -1592,7 +1729,7 @@ var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
|
|
1592
1729
|
var import_aws4fetch = require("aws4fetch");
|
|
1593
1730
|
|
|
1594
1731
|
// src/version.ts
|
|
1595
|
-
var VERSION = true ? "4.0.0
|
|
1732
|
+
var VERSION = true ? "4.0.0" : "0.0.0-test";
|
|
1596
1733
|
|
|
1597
1734
|
// src/bedrock-sigv4-fetch.ts
|
|
1598
1735
|
function createSigV4FetchFunction(getCredentials, fetch = globalThis.fetch) {
|
|
@@ -1926,6 +2063,8 @@ Original error: ${errorMessage}`
|
|
|
1926
2063
|
provider.languageModel = createChatModel;
|
|
1927
2064
|
provider.embedding = createEmbeddingModel;
|
|
1928
2065
|
provider.embeddingModel = createEmbeddingModel;
|
|
2066
|
+
provider.textEmbedding = createEmbeddingModel;
|
|
2067
|
+
provider.textEmbeddingModel = createEmbeddingModel;
|
|
1929
2068
|
provider.image = createImageModel;
|
|
1930
2069
|
provider.imageModel = createImageModel;
|
|
1931
2070
|
provider.reranking = createRerankingModel;
|