@ai-sdk/amazon-bedrock 3.0.73 → 3.0.74
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 +12 -2
- package/anthropic/index.d.ts +1 -0
- package/dist/anthropic/index.d.mts +91 -0
- package/dist/anthropic/index.d.ts +91 -0
- package/dist/anthropic/index.js +402 -0
- package/dist/anthropic/index.js.map +1 -0
- package/dist/anthropic/index.mjs +390 -0
- package/dist/anthropic/index.mjs.map +1 -0
- package/dist/index.js +68 -54
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +68 -54
- package/dist/index.mjs.map +1 -1
- package/package.json +9 -3
package/dist/index.mjs
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "@ai-sdk/provider-utils";
|
|
9
9
|
|
|
10
10
|
// src/version.ts
|
|
11
|
-
var VERSION = true ? "3.0.
|
|
11
|
+
var VERSION = true ? "3.0.74" : "0.0.0-test";
|
|
12
12
|
|
|
13
13
|
// src/bedrock-provider.ts
|
|
14
14
|
import { anthropicTools as anthropicTools2 } from "@ai-sdk/anthropic/internal";
|
|
@@ -104,70 +104,84 @@ import {
|
|
|
104
104
|
extractResponseHeaders,
|
|
105
105
|
safeValidateTypes
|
|
106
106
|
} from "@ai-sdk/provider-utils";
|
|
107
|
+
|
|
108
|
+
// src/bedrock-event-stream-decoder.ts
|
|
107
109
|
import { EventStreamCodec } from "@smithy/eventstream-codec";
|
|
108
110
|
import { toUtf8, fromUtf8 } from "@smithy/util-utf8";
|
|
111
|
+
function createBedrockEventStreamDecoder(body, processEvent) {
|
|
112
|
+
const codec = new EventStreamCodec(toUtf8, fromUtf8);
|
|
113
|
+
let buffer = new Uint8Array(0);
|
|
114
|
+
const textDecoder = new TextDecoder();
|
|
115
|
+
return body.pipeThrough(
|
|
116
|
+
new TransformStream({
|
|
117
|
+
async transform(chunk, controller) {
|
|
118
|
+
var _a, _b;
|
|
119
|
+
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
120
|
+
newBuffer.set(buffer);
|
|
121
|
+
newBuffer.set(chunk, buffer.length);
|
|
122
|
+
buffer = newBuffer;
|
|
123
|
+
while (buffer.length >= 4) {
|
|
124
|
+
const totalLength = new DataView(
|
|
125
|
+
buffer.buffer,
|
|
126
|
+
buffer.byteOffset,
|
|
127
|
+
buffer.byteLength
|
|
128
|
+
).getUint32(0, false);
|
|
129
|
+
if (buffer.length < totalLength) {
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
try {
|
|
133
|
+
const subView = buffer.subarray(0, totalLength);
|
|
134
|
+
const decoded = codec.decode(subView);
|
|
135
|
+
buffer = buffer.slice(totalLength);
|
|
136
|
+
const messageType = (_a = decoded.headers[":message-type"]) == null ? void 0 : _a.value;
|
|
137
|
+
const eventType = (_b = decoded.headers[":event-type"]) == null ? void 0 : _b.value;
|
|
138
|
+
const data = textDecoder.decode(decoded.body);
|
|
139
|
+
await processEvent({ messageType, eventType, data }, controller);
|
|
140
|
+
} catch (e) {
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
})
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// src/bedrock-event-stream-response-handler.ts
|
|
109
150
|
var createBedrockEventStreamResponseHandler = (chunkSchema) => async ({ response }) => {
|
|
110
151
|
const responseHeaders = extractResponseHeaders(response);
|
|
111
152
|
if (response.body == null) {
|
|
112
153
|
throw new EmptyResponseBodyError({});
|
|
113
154
|
}
|
|
114
|
-
const codec = new EventStreamCodec(toUtf8, fromUtf8);
|
|
115
|
-
let buffer = new Uint8Array(0);
|
|
116
|
-
const textDecoder = new TextDecoder();
|
|
117
155
|
return {
|
|
118
156
|
responseHeaders,
|
|
119
|
-
value:
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
controller.enqueue(parsedDataResult);
|
|
145
|
-
break;
|
|
146
|
-
}
|
|
147
|
-
delete parsedDataResult.value.p;
|
|
148
|
-
let wrappedData = {
|
|
149
|
-
[(_b = decoded.headers[":event-type"]) == null ? void 0 : _b.value]: parsedDataResult.value
|
|
150
|
-
};
|
|
151
|
-
const validatedWrappedData = await safeValidateTypes({
|
|
152
|
-
value: wrappedData,
|
|
153
|
-
schema: chunkSchema
|
|
154
|
-
});
|
|
155
|
-
if (!validatedWrappedData.success) {
|
|
156
|
-
controller.enqueue(validatedWrappedData);
|
|
157
|
-
} else {
|
|
158
|
-
controller.enqueue({
|
|
159
|
-
success: true,
|
|
160
|
-
value: validatedWrappedData.value,
|
|
161
|
-
rawValue: wrappedData
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
} catch (e) {
|
|
166
|
-
break;
|
|
167
|
-
}
|
|
157
|
+
value: createBedrockEventStreamDecoder(
|
|
158
|
+
response.body,
|
|
159
|
+
async (event, controller) => {
|
|
160
|
+
if (event.messageType === "event") {
|
|
161
|
+
const parsedDataResult = await safeParseJSON({ text: event.data });
|
|
162
|
+
if (!parsedDataResult.success) {
|
|
163
|
+
controller.enqueue(parsedDataResult);
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
delete parsedDataResult.value.p;
|
|
167
|
+
const wrappedData = {
|
|
168
|
+
[event.eventType]: parsedDataResult.value
|
|
169
|
+
};
|
|
170
|
+
const validatedWrappedData = await safeValidateTypes({
|
|
171
|
+
value: wrappedData,
|
|
172
|
+
schema: chunkSchema
|
|
173
|
+
});
|
|
174
|
+
if (!validatedWrappedData.success) {
|
|
175
|
+
controller.enqueue(validatedWrappedData);
|
|
176
|
+
} else {
|
|
177
|
+
controller.enqueue({
|
|
178
|
+
success: true,
|
|
179
|
+
value: validatedWrappedData.value,
|
|
180
|
+
rawValue: wrappedData
|
|
181
|
+
});
|
|
168
182
|
}
|
|
169
183
|
}
|
|
170
|
-
}
|
|
184
|
+
}
|
|
171
185
|
)
|
|
172
186
|
};
|
|
173
187
|
};
|