@ai-sdk/provider 4.0.0-beta.2 → 4.0.0-beta.20

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 (150) hide show
  1. package/CHANGELOG.md +136 -13
  2. package/dist/index.d.ts +1241 -449
  3. package/dist/index.js +53 -75
  4. package/dist/index.js.map +1 -1
  5. package/package.json +12 -12
  6. package/src/embedding-model/v2/embedding-model-v2.ts +2 -2
  7. package/src/embedding-model/v3/embedding-model-v3-call-options.ts +1 -1
  8. package/src/embedding-model/v3/embedding-model-v3-result.ts +2 -2
  9. package/src/embedding-model/v3/embedding-model-v3.ts +2 -2
  10. package/src/embedding-model/v4/embedding-model-v4-call-options.ts +1 -1
  11. package/src/embedding-model/v4/embedding-model-v4-result.ts +2 -2
  12. package/src/embedding-model/v4/embedding-model-v4.ts +2 -2
  13. package/src/embedding-model-middleware/v3/embedding-model-v3-middleware.ts +2 -2
  14. package/src/embedding-model-middleware/v4/embedding-model-v4-middleware.ts +2 -2
  15. package/src/errors/get-error-message.ts +1 -1
  16. package/src/errors/index.ts +1 -0
  17. package/src/errors/no-such-provider-reference-error.ts +35 -0
  18. package/src/files/index.ts +1 -0
  19. package/src/files/v4/files-v4-upload-file-call-options.ts +35 -0
  20. package/src/files/v4/files-v4-upload-file-result.ts +35 -0
  21. package/src/files/v4/files-v4.ts +25 -0
  22. package/src/files/v4/index.ts +3 -0
  23. package/src/image-model/v2/image-model-v2-call-options.ts +1 -1
  24. package/src/image-model/v2/image-model-v2-call-warning.ts +1 -1
  25. package/src/image-model/v2/image-model-v2.ts +3 -3
  26. package/src/image-model/v3/image-model-v3-call-options.ts +2 -2
  27. package/src/image-model/v3/image-model-v3-file.ts +1 -1
  28. package/src/image-model/v3/image-model-v3.ts +4 -4
  29. package/src/image-model/v4/image-model-v4-call-options.ts +2 -2
  30. package/src/image-model/v4/image-model-v4-file.ts +1 -1
  31. package/src/image-model/v4/image-model-v4-result.ts +73 -0
  32. package/src/image-model/v4/image-model-v4.ts +3 -70
  33. package/src/image-model/v4/index.ts +4 -3
  34. package/src/image-model-middleware/v3/image-model-v3-middleware.ts +2 -2
  35. package/src/image-model-middleware/v4/image-model-v4-middleware.ts +2 -2
  36. package/src/index.ts +3 -0
  37. package/src/json-value/is-json.ts +1 -1
  38. package/src/language-model/v2/language-model-v2-call-options.ts +6 -6
  39. package/src/language-model/v2/language-model-v2-call-warning.ts +3 -3
  40. package/src/language-model/v2/language-model-v2-content.ts +6 -6
  41. package/src/language-model/v2/language-model-v2-function-tool.ts +2 -2
  42. package/src/language-model/v2/language-model-v2-prompt.ts +3 -3
  43. package/src/language-model/v2/language-model-v2-reasoning.ts +1 -1
  44. package/src/language-model/v2/language-model-v2-source.ts +1 -1
  45. package/src/language-model/v2/language-model-v2-stream-part.ts +9 -9
  46. package/src/language-model/v2/language-model-v2-text.ts +1 -1
  47. package/src/language-model/v2/language-model-v2-tool-call.ts +1 -1
  48. package/src/language-model/v2/language-model-v2-tool-result.ts +1 -1
  49. package/src/language-model/v2/language-model-v2.ts +9 -9
  50. package/src/language-model/v3/language-model-v3-call-options.ts +6 -6
  51. package/src/language-model/v3/language-model-v3-content.ts +7 -7
  52. package/src/language-model/v3/language-model-v3-file.ts +1 -1
  53. package/src/language-model/v3/language-model-v3-function-tool.ts +3 -3
  54. package/src/language-model/v3/language-model-v3-generate-result.ts +6 -6
  55. package/src/language-model/v3/language-model-v3-prompt.ts +3 -3
  56. package/src/language-model/v3/language-model-v3-reasoning.ts +1 -1
  57. package/src/language-model/v3/language-model-v3-source.ts +1 -1
  58. package/src/language-model/v3/language-model-v3-stream-part.ts +10 -10
  59. package/src/language-model/v3/language-model-v3-stream-result.ts +2 -2
  60. package/src/language-model/v3/language-model-v3-text.ts +1 -1
  61. package/src/language-model/v3/language-model-v3-tool-approval-request.ts +1 -1
  62. package/src/language-model/v3/language-model-v3-tool-call.ts +1 -1
  63. package/src/language-model/v3/language-model-v3-tool-result.ts +2 -2
  64. package/src/language-model/v3/language-model-v3-usage.ts +1 -1
  65. package/src/language-model/v3/language-model-v3.ts +3 -3
  66. package/src/language-model/v4/index.ts +1 -1
  67. package/src/language-model/v4/language-model-v4-call-options.ts +19 -6
  68. package/src/language-model/v4/language-model-v4-content.ts +10 -8
  69. package/src/language-model/v4/language-model-v4-custom-content.ts +21 -0
  70. package/src/language-model/v4/language-model-v4-file.ts +10 -3
  71. package/src/language-model/v4/language-model-v4-function-tool.ts +3 -3
  72. package/src/language-model/v4/language-model-v4-generate-result.ts +6 -6
  73. package/src/language-model/v4/language-model-v4-prompt.ts +64 -103
  74. package/src/language-model/v4/language-model-v4-reasoning-file.ts +10 -3
  75. package/src/language-model/v4/language-model-v4-reasoning.ts +1 -1
  76. package/src/language-model/v4/language-model-v4-source.ts +1 -1
  77. package/src/language-model/v4/language-model-v4-stream-part.ts +13 -11
  78. package/src/language-model/v4/language-model-v4-stream-result.ts +2 -2
  79. package/src/language-model/v4/language-model-v4-text.ts +1 -1
  80. package/src/language-model/v4/language-model-v4-tool-approval-request.ts +1 -1
  81. package/src/language-model/v4/language-model-v4-tool-call.ts +1 -1
  82. package/src/language-model/v4/language-model-v4-tool-result.ts +2 -2
  83. package/src/language-model/v4/language-model-v4-usage.ts +1 -1
  84. package/src/language-model/v4/language-model-v4.ts +3 -3
  85. package/src/language-model-middleware/v2/language-model-v2-middleware.ts +2 -2
  86. package/src/language-model-middleware/v3/language-model-v3-middleware.ts +4 -4
  87. package/src/language-model-middleware/v4/language-model-v4-middleware.ts +4 -4
  88. package/src/provider/v2/provider-v2.ts +5 -5
  89. package/src/provider/v3/provider-v3.ts +6 -6
  90. package/src/provider/v4/provider-v4.ts +22 -6
  91. package/src/realtime-model/index.ts +1 -0
  92. package/src/realtime-model/v4/index.ts +20 -0
  93. package/src/realtime-model/v4/realtime-factory-v4.ts +20 -0
  94. package/src/realtime-model/v4/realtime-model-v4-client-event.ts +68 -0
  95. package/src/realtime-model/v4/realtime-model-v4-client-secret.ts +40 -0
  96. package/src/realtime-model/v4/realtime-model-v4-conversation-item.ts +55 -0
  97. package/src/realtime-model/v4/realtime-model-v4-server-event.ts +199 -0
  98. package/src/realtime-model/v4/realtime-model-v4-session-config.ts +142 -0
  99. package/src/realtime-model/v4/realtime-model-v4-tool-definition.ts +28 -0
  100. package/src/realtime-model/v4/realtime-model-v4.ts +89 -0
  101. package/src/reranking-model/v3/reranking-model-v3-call-options.ts +2 -2
  102. package/src/reranking-model/v3/reranking-model-v3.ts +2 -2
  103. package/src/reranking-model/v4/index.ts +1 -0
  104. package/src/reranking-model/v4/reranking-model-v4-call-options.ts +2 -2
  105. package/src/reranking-model/v4/reranking-model-v4-result.ts +68 -0
  106. package/src/reranking-model/v4/reranking-model-v4.ts +5 -65
  107. package/src/shared/v2/shared-v2-provider-metadata.ts +1 -1
  108. package/src/shared/v2/shared-v2-provider-options.ts +1 -1
  109. package/src/shared/v3/shared-v3-provider-metadata.ts +1 -1
  110. package/src/shared/v3/shared-v3-provider-options.ts +1 -1
  111. package/src/shared/v4/index.ts +2 -0
  112. package/src/shared/v4/shared-v4-file-data.ts +49 -0
  113. package/src/shared/v4/shared-v4-provider-metadata.ts +1 -1
  114. package/src/shared/v4/shared-v4-provider-options.ts +1 -1
  115. package/src/shared/v4/shared-v4-provider-reference.ts +22 -0
  116. package/src/shared/v4/shared-v4-warning.ts +16 -0
  117. package/src/skills/index.ts +1 -0
  118. package/src/skills/v4/index.ts +6 -0
  119. package/src/skills/v4/skills-v4-upload-skill-call-options.ts +37 -0
  120. package/src/skills/v4/skills-v4-upload-skill-result.ts +40 -0
  121. package/src/skills/v4/skills-v4.ts +28 -0
  122. package/src/speech-model/v2/speech-model-v2-call-options.ts +1 -1
  123. package/src/speech-model/v2/speech-model-v2-call-warning.ts +1 -1
  124. package/src/speech-model/v2/speech-model-v2.ts +4 -4
  125. package/src/speech-model/v3/speech-model-v3-call-options.ts +1 -1
  126. package/src/speech-model/v3/speech-model-v3.ts +4 -4
  127. package/src/speech-model/v4/index.ts +1 -0
  128. package/src/speech-model/v4/speech-model-v4-call-options.ts +1 -1
  129. package/src/speech-model/v4/speech-model-v4-result.ts +64 -0
  130. package/src/speech-model/v4/speech-model-v4.ts +5 -61
  131. package/src/transcription-model/v2/transcription-model-v2-call-options.ts +1 -1
  132. package/src/transcription-model/v2/transcription-model-v2-call-warning.ts +1 -1
  133. package/src/transcription-model/v2/transcription-model-v2.ts +4 -4
  134. package/src/transcription-model/v3/transcription-model-v3-call-options.ts +1 -1
  135. package/src/transcription-model/v3/transcription-model-v3.ts +4 -4
  136. package/src/transcription-model/v4/index.ts +1 -0
  137. package/src/transcription-model/v4/transcription-model-v4-call-options.ts +1 -1
  138. package/src/transcription-model/v4/transcription-model-v4-result.ts +92 -0
  139. package/src/transcription-model/v4/transcription-model-v4.ts +5 -89
  140. package/src/video-model/v3/video-model-v3-call-options.ts +7 -2
  141. package/src/video-model/v3/video-model-v3-file.ts +1 -1
  142. package/src/video-model/v4/index.ts +4 -3
  143. package/src/video-model/v4/video-model-v4-call-options.ts +7 -2
  144. package/src/video-model/v4/video-model-v4-file.ts +1 -1
  145. package/src/video-model/v4/video-model-v4-result.ts +92 -0
  146. package/src/video-model/v4/video-model-v4.ts +2 -88
  147. package/dist/index.d.mts +0 -6354
  148. package/dist/index.mjs +0 -404
  149. package/dist/index.mjs.map +0 -1
  150. package/src/language-model/v4/language-model-v4-data-content.ts +0 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,128 @@
1
1
  # @ai-sdk/provider
2
2
 
3
+ ## 4.0.0-beta.20
4
+
5
+ ### Patch Changes
6
+
7
+ - 0416e3e: feat (video): add first-class `generateAudio` call option
8
+
9
+ ## 4.0.0-beta.19
10
+
11
+ ### Patch Changes
12
+
13
+ - b8396f0: trigger initial beta release
14
+
15
+ ## 4.0.0-canary.18
16
+
17
+ ### Patch Changes
18
+
19
+ - ce769dd: feat(provider): add experimental Realtime API support for voice conversations
20
+
21
+ Adds first-class support for realtime (speech-to-speech) APIs:
22
+
23
+ - `Experimental_RealtimeModelV4` spec in `@ai-sdk/provider` with normalized event types and factory
24
+ - OpenAI, Google, and xAI realtime provider implementations
25
+ - `openai.experimental_realtime()` / `google.experimental_realtime()` / `xai.experimental_realtime()` work in both server and browser
26
+ - `.getToken()` static method on each provider for server-side ephemeral token creation
27
+ - `experimental_getRealtimeToolDefinitions` helper for provider session tool definitions
28
+ - `experimental_useRealtime` hook in `@ai-sdk/react` returning `UIMessage[]` (aligned with `useChat`), with `onToolCall` and `addToolOutput` for client-driven tool execution
29
+ - `inputAudioTranscription` session config for showing transcribed user audio messages when supported by the provider
30
+
31
+ ## 4.0.0-canary.17
32
+
33
+ ### Patch Changes
34
+
35
+ - 7fc6bd6: Raise minimum supported Node.js version to 22. Supported versions: 22, 24, and 26.
36
+
37
+ ## 4.0.0-canary.16
38
+
39
+ ### Major Changes
40
+
41
+ - 5463d0d: feat(provider): align tool result output content file part types with top-level message file part types
42
+
43
+ ## 4.0.0-canary.15
44
+
45
+ ### Patch Changes
46
+
47
+ - 0c4c275: trigger initial canary release
48
+
49
+ ## 4.0.0-beta.14
50
+
51
+ ### Major Changes
52
+
53
+ - 9bd6512: feat(provider): change file part data property to be tagged with a type and remove the image part type
54
+
55
+ ### Patch Changes
56
+
57
+ - 258c093: chore: ensure consistent import handling and avoid import duplicates or cycles
58
+
59
+ ## 4.0.0-beta.13
60
+
61
+ ### Patch Changes
62
+
63
+ - 9f0e36c: trigger release for all packages after provenance setup
64
+
65
+ ## 4.0.0-beta.12
66
+
67
+ ### Patch Changes
68
+
69
+ - ff5eba1: feat: roll `image-*` tool output types into their equivalent `file-*` types
70
+
71
+ ## 4.0.0-beta.11
72
+
73
+ ### Major Changes
74
+
75
+ - ef992f8: Remove CommonJS exports from all packages. All packages are now ESM-only (`"type": "module"`). Consumers using `require()` must switch to ESM `import` syntax.
76
+
77
+ ## 4.0.0-beta.10
78
+
79
+ ### Patch Changes
80
+
81
+ - 176466a: chore(provider): align V4 model return types to have their own definitions across all model interfaces
82
+
83
+ ## 4.0.0-beta.9
84
+
85
+ ### Patch Changes
86
+
87
+ - e311194: feat(ai): allow passing provider instance to `uploadFile` and `uploadSkill` as shorthand
88
+
89
+ ## 4.0.0-beta.8
90
+
91
+ ### Patch Changes
92
+
93
+ - 34bd95d: feat(ai): add support for uploading provider skills using the provider references abstraction
94
+ - 008271d: feat(openai-compatible): emit warning when using kebab-case instead of camelCase
95
+
96
+ ## 4.0.0-beta.7
97
+
98
+ ### Patch Changes
99
+
100
+ - 6fd51c0: fix(provider): preserve error type prefix in getErrorMessage
101
+
102
+ ## 4.0.0-beta.6
103
+
104
+ ### Patch Changes
105
+
106
+ - c29a26f: feat(provider): add support for provider references and uploading files as supported per provider
107
+
108
+ ## 4.0.0-beta.5
109
+
110
+ ### Patch Changes
111
+
112
+ - 1f509d4: fix(ai): force template check on 'kind' param
113
+
114
+ ## 4.0.0-beta.4
115
+
116
+ ### Patch Changes
117
+
118
+ - 3887c70: feat(provider): add new top-level reasoning parameter to spec and support it in `generateText` and `streamText`
119
+
120
+ ## 4.0.0-beta.3
121
+
122
+ ### Major Changes
123
+
124
+ - 776b617: feat(provider): adding new 'custom' content type
125
+
3
126
  ## 4.0.0-beta.2
4
127
 
5
128
  ### Patch Changes
@@ -87,13 +210,13 @@
87
210
  Before
88
211
 
89
212
  ```ts
90
- model.textEmbeddingModel('my-model-id');
213
+ model.textEmbeddingModel("my-model-id");
91
214
  ```
92
215
 
93
216
  After
94
217
 
95
218
  ```ts
96
- model.embeddingModel('my-model-id');
219
+ model.embeddingModel("my-model-id");
97
220
  ```
98
221
 
99
222
  - dce03c4: feat: tool input examples
@@ -213,13 +336,13 @@
213
336
  Before
214
337
 
215
338
  ```ts
216
- model.textEmbeddingModel('my-model-id');
339
+ model.textEmbeddingModel("my-model-id");
217
340
  ```
218
341
 
219
342
  After
220
343
 
221
344
  ```ts
222
- model.embeddingModel('my-model-id');
345
+ model.embeddingModel("my-model-id");
223
346
  ```
224
347
 
225
348
  ## 3.0.0-beta.18
@@ -406,13 +529,13 @@
406
529
  Before
407
530
 
408
531
  ```ts
409
- import { convertUint8ArrayToBase64 } from '@ai-sdk/provider-utils';
532
+ import { convertUint8ArrayToBase64 } from "@ai-sdk/provider-utils";
410
533
 
411
534
  // Had to manually convert binary data to base64
412
535
  const fileData = new Uint8Array([0, 1, 2, 3]);
413
536
  const filePart = {
414
- type: 'file',
415
- mediaType: 'application/pdf',
537
+ type: "file",
538
+ mediaType: "application/pdf",
416
539
  data: convertUint8ArrayToBase64(fileData), // Required conversion
417
540
  };
418
541
  ```
@@ -423,8 +546,8 @@
423
546
  // Can use binary data directly
424
547
  const fileData = new Uint8Array([0, 1, 2, 3]);
425
548
  const filePart = {
426
- type: 'file',
427
- mediaType: 'application/pdf',
549
+ type: "file",
550
+ mediaType: "application/pdf",
428
551
  data: fileData, // Direct Uint8Array support
429
552
  };
430
553
  ```
@@ -440,10 +563,10 @@
440
563
  The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
441
564
 
442
565
  ```js
443
- const prompt = 'Santa Claus driving a Cadillac';
566
+ const prompt = "Santa Claus driving a Cadillac";
444
567
 
445
568
  const { providerMetadata } = await experimental_generateImage({
446
- model: openai.image('dall-e-3'),
569
+ model: openai.image("dall-e-3"),
447
570
  prompt,
448
571
  });
449
572
 
@@ -602,10 +725,10 @@
602
725
  The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
603
726
 
604
727
  ```js
605
- const prompt = 'Santa Claus driving a Cadillac';
728
+ const prompt = "Santa Claus driving a Cadillac";
606
729
 
607
730
  const { providerMetadata } = await experimental_generateImage({
608
- model: openai.image('dall-e-3'),
731
+ model: openai.image("dall-e-3"),
609
732
  prompt,
610
733
  });
611
734