@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.
Files changed (67) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/anthropic/index.js +1 -1
  3. package/dist/anthropic/index.mjs +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/index.mjs +1 -1
  6. package/docs/08-amazon-bedrock.mdx +1453 -0
  7. package/package.json +11 -6
  8. package/src/__fixtures__/bedrock-json-only-text-first.1.chunks.txt +7 -0
  9. package/src/__fixtures__/bedrock-json-other-tool.1.chunks.txt +6 -0
  10. package/src/__fixtures__/bedrock-json-other-tool.1.json +24 -0
  11. package/src/__fixtures__/bedrock-json-tool-text-then-weather-then-json.1.chunks.txt +12 -0
  12. package/src/__fixtures__/bedrock-json-tool-with-answer.1.json +29 -0
  13. package/src/__fixtures__/bedrock-json-tool.1.chunks.txt +4 -0
  14. package/src/__fixtures__/bedrock-json-tool.1.json +35 -0
  15. package/src/__fixtures__/bedrock-json-tool.2.chunks.txt +6 -0
  16. package/src/__fixtures__/bedrock-json-tool.2.json +28 -0
  17. package/src/__fixtures__/bedrock-json-tool.3.chunks.txt +7 -0
  18. package/src/__fixtures__/bedrock-json-tool.3.json +36 -0
  19. package/src/__fixtures__/bedrock-json-with-tool.1.chunks.txt +9 -0
  20. package/src/__fixtures__/bedrock-json-with-tool.1.json +41 -0
  21. package/src/__fixtures__/bedrock-json-with-tools.1.chunks.txt +12 -0
  22. package/src/__fixtures__/bedrock-json-with-tools.1.json +50 -0
  23. package/src/__fixtures__/bedrock-tool-call.1.chunks.txt +6 -0
  24. package/src/__fixtures__/bedrock-tool-call.1.json +24 -0
  25. package/src/__fixtures__/bedrock-tool-no-args.chunks.txt +8 -0
  26. package/src/__fixtures__/bedrock-tool-no-args.json +25 -0
  27. package/src/anthropic/bedrock-anthropic-fetch.test.ts +344 -0
  28. package/src/anthropic/bedrock-anthropic-fetch.ts +62 -0
  29. package/src/anthropic/bedrock-anthropic-options.ts +28 -0
  30. package/src/anthropic/bedrock-anthropic-provider.test.ts +456 -0
  31. package/src/anthropic/bedrock-anthropic-provider.ts +357 -0
  32. package/src/anthropic/index.ts +9 -0
  33. package/src/bedrock-api-types.ts +195 -0
  34. package/src/bedrock-chat-language-model.test.ts +4569 -0
  35. package/src/bedrock-chat-language-model.ts +1019 -0
  36. package/src/bedrock-chat-options.ts +114 -0
  37. package/src/bedrock-embedding-model.test.ts +148 -0
  38. package/src/bedrock-embedding-model.ts +104 -0
  39. package/src/bedrock-embedding-options.ts +24 -0
  40. package/src/bedrock-error.ts +6 -0
  41. package/src/bedrock-event-stream-decoder.ts +59 -0
  42. package/src/bedrock-event-stream-response-handler.test.ts +233 -0
  43. package/src/bedrock-event-stream-response-handler.ts +57 -0
  44. package/src/bedrock-image-model.test.ts +866 -0
  45. package/src/bedrock-image-model.ts +297 -0
  46. package/src/bedrock-image-settings.ts +6 -0
  47. package/src/bedrock-prepare-tools.ts +190 -0
  48. package/src/bedrock-provider.test.ts +457 -0
  49. package/src/bedrock-provider.ts +351 -0
  50. package/src/bedrock-sigv4-fetch.test.ts +675 -0
  51. package/src/bedrock-sigv4-fetch.ts +138 -0
  52. package/src/convert-bedrock-usage.test.ts +207 -0
  53. package/src/convert-bedrock-usage.ts +50 -0
  54. package/src/convert-to-bedrock-chat-messages.test.ts +1175 -0
  55. package/src/convert-to-bedrock-chat-messages.ts +452 -0
  56. package/src/index.ts +10 -0
  57. package/src/inject-fetch-headers.test.ts +135 -0
  58. package/src/inject-fetch-headers.ts +32 -0
  59. package/src/map-bedrock-finish-reason.ts +22 -0
  60. package/src/normalize-tool-call-id.test.ts +72 -0
  61. package/src/normalize-tool-call-id.ts +36 -0
  62. package/src/reranking/__fixtures__/bedrock-reranking.1.json +12 -0
  63. package/src/reranking/bedrock-reranking-api.ts +44 -0
  64. package/src/reranking/bedrock-reranking-model.test.ts +299 -0
  65. package/src/reranking/bedrock-reranking-model.ts +115 -0
  66. package/src/reranking/bedrock-reranking-options.ts +36 -0
  67. 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
+ };