@ai-sdk/amazon-bedrock 4.0.24 → 4.0.26
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 +16 -0
- package/dist/anthropic/index.js +1 -1
- package/dist/anthropic/index.mjs +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/docs/08-amazon-bedrock.mdx +1453 -0
- package/package.json +11 -6
- package/src/__fixtures__/bedrock-json-only-text-first.1.chunks.txt +7 -0
- package/src/__fixtures__/bedrock-json-other-tool.1.chunks.txt +6 -0
- package/src/__fixtures__/bedrock-json-other-tool.1.json +24 -0
- package/src/__fixtures__/bedrock-json-tool-text-then-weather-then-json.1.chunks.txt +12 -0
- package/src/__fixtures__/bedrock-json-tool-with-answer.1.json +29 -0
- package/src/__fixtures__/bedrock-json-tool.1.chunks.txt +4 -0
- package/src/__fixtures__/bedrock-json-tool.1.json +35 -0
- package/src/__fixtures__/bedrock-json-tool.2.chunks.txt +6 -0
- package/src/__fixtures__/bedrock-json-tool.2.json +28 -0
- package/src/__fixtures__/bedrock-json-tool.3.chunks.txt +7 -0
- package/src/__fixtures__/bedrock-json-tool.3.json +36 -0
- package/src/__fixtures__/bedrock-json-with-tool.1.chunks.txt +9 -0
- package/src/__fixtures__/bedrock-json-with-tool.1.json +41 -0
- package/src/__fixtures__/bedrock-json-with-tools.1.chunks.txt +12 -0
- package/src/__fixtures__/bedrock-json-with-tools.1.json +50 -0
- package/src/__fixtures__/bedrock-tool-call.1.chunks.txt +6 -0
- package/src/__fixtures__/bedrock-tool-call.1.json +24 -0
- package/src/__fixtures__/bedrock-tool-no-args.chunks.txt +8 -0
- package/src/__fixtures__/bedrock-tool-no-args.json +25 -0
- package/src/anthropic/bedrock-anthropic-fetch.test.ts +344 -0
- package/src/anthropic/bedrock-anthropic-fetch.ts +62 -0
- package/src/anthropic/bedrock-anthropic-options.ts +28 -0
- package/src/anthropic/bedrock-anthropic-provider.test.ts +456 -0
- package/src/anthropic/bedrock-anthropic-provider.ts +357 -0
- package/src/anthropic/index.ts +9 -0
- package/src/bedrock-api-types.ts +195 -0
- package/src/bedrock-chat-language-model.test.ts +4569 -0
- package/src/bedrock-chat-language-model.ts +1019 -0
- package/src/bedrock-chat-options.ts +114 -0
- package/src/bedrock-embedding-model.test.ts +148 -0
- package/src/bedrock-embedding-model.ts +104 -0
- package/src/bedrock-embedding-options.ts +24 -0
- package/src/bedrock-error.ts +6 -0
- package/src/bedrock-event-stream-decoder.ts +59 -0
- package/src/bedrock-event-stream-response-handler.test.ts +233 -0
- package/src/bedrock-event-stream-response-handler.ts +57 -0
- package/src/bedrock-image-model.test.ts +866 -0
- package/src/bedrock-image-model.ts +297 -0
- package/src/bedrock-image-settings.ts +6 -0
- package/src/bedrock-prepare-tools.ts +190 -0
- package/src/bedrock-provider.test.ts +457 -0
- package/src/bedrock-provider.ts +351 -0
- package/src/bedrock-sigv4-fetch.test.ts +675 -0
- package/src/bedrock-sigv4-fetch.ts +138 -0
- package/src/convert-bedrock-usage.test.ts +207 -0
- package/src/convert-bedrock-usage.ts +50 -0
- package/src/convert-to-bedrock-chat-messages.test.ts +1175 -0
- package/src/convert-to-bedrock-chat-messages.ts +452 -0
- package/src/index.ts +10 -0
- package/src/inject-fetch-headers.test.ts +135 -0
- package/src/inject-fetch-headers.ts +32 -0
- package/src/map-bedrock-finish-reason.ts +22 -0
- package/src/normalize-tool-call-id.test.ts +72 -0
- package/src/normalize-tool-call-id.ts +36 -0
- package/src/reranking/__fixtures__/bedrock-reranking.1.json +12 -0
- package/src/reranking/bedrock-reranking-api.ts +44 -0
- package/src/reranking/bedrock-reranking-model.test.ts +299 -0
- package/src/reranking/bedrock-reranking-model.ts +115 -0
- package/src/reranking/bedrock-reranking-options.ts +36 -0
- package/src/version.ts +6 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { EmptyResponseBodyError } from '@ai-sdk/provider';
|
|
2
|
+
import {
|
|
3
|
+
ParseResult,
|
|
4
|
+
safeParseJSON,
|
|
5
|
+
extractResponseHeaders,
|
|
6
|
+
ResponseHandler,
|
|
7
|
+
safeValidateTypes,
|
|
8
|
+
} from '@ai-sdk/provider-utils';
|
|
9
|
+
import { ZodType } from 'zod/v4';
|
|
10
|
+
import { createBedrockEventStreamDecoder } from './bedrock-event-stream-decoder';
|
|
11
|
+
|
|
12
|
+
export const createBedrockEventStreamResponseHandler =
|
|
13
|
+
<T>(
|
|
14
|
+
chunkSchema: ZodType<T, any>,
|
|
15
|
+
): ResponseHandler<ReadableStream<ParseResult<T>>> =>
|
|
16
|
+
async ({ response }: { response: Response }) => {
|
|
17
|
+
const responseHeaders = extractResponseHeaders(response);
|
|
18
|
+
|
|
19
|
+
if (response.body == null) {
|
|
20
|
+
throw new EmptyResponseBodyError({});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return {
|
|
24
|
+
responseHeaders,
|
|
25
|
+
value: createBedrockEventStreamDecoder<ParseResult<T>>(
|
|
26
|
+
response.body,
|
|
27
|
+
async (event, controller) => {
|
|
28
|
+
if (event.messageType === 'event') {
|
|
29
|
+
const parsedDataResult = await safeParseJSON({ text: event.data });
|
|
30
|
+
if (!parsedDataResult.success) {
|
|
31
|
+
controller.enqueue(parsedDataResult);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
delete (parsedDataResult.value as any).p;
|
|
36
|
+
const wrappedData = {
|
|
37
|
+
[event.eventType]: parsedDataResult.value,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const validatedWrappedData = await safeValidateTypes<T>({
|
|
41
|
+
value: wrappedData,
|
|
42
|
+
schema: chunkSchema,
|
|
43
|
+
});
|
|
44
|
+
if (!validatedWrappedData.success) {
|
|
45
|
+
controller.enqueue(validatedWrappedData);
|
|
46
|
+
} else {
|
|
47
|
+
controller.enqueue({
|
|
48
|
+
success: true,
|
|
49
|
+
value: validatedWrappedData.value,
|
|
50
|
+
rawValue: wrappedData,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
),
|
|
56
|
+
};
|
|
57
|
+
};
|