@ai-sdk/provider 0.0.0-01d6317c-20260129172110

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 (138) hide show
  1. package/CHANGELOG.md +967 -0
  2. package/LICENSE +13 -0
  3. package/README.md +1 -0
  4. package/dist/index.d.mts +3814 -0
  5. package/dist/index.d.ts +3814 -0
  6. package/dist/index.js +448 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/index.mjs +404 -0
  9. package/dist/index.mjs.map +1 -0
  10. package/package.json +63 -0
  11. package/src/embedding-model/index.ts +2 -0
  12. package/src/embedding-model/v2/embedding-model-v2-embedding.ts +5 -0
  13. package/src/embedding-model/v2/embedding-model-v2.ts +113 -0
  14. package/src/embedding-model/v2/index.ts +2 -0
  15. package/src/embedding-model/v3/embedding-model-v3-call-options.ts +26 -0
  16. package/src/embedding-model/v3/embedding-model-v3-embedding.ts +5 -0
  17. package/src/embedding-model/v3/embedding-model-v3-result.ts +48 -0
  18. package/src/embedding-model/v3/embedding-model-v3.ts +54 -0
  19. package/src/embedding-model/v3/index.ts +4 -0
  20. package/src/embedding-model-middleware/index.ts +1 -0
  21. package/src/embedding-model-middleware/v3/embedding-model-v3-middleware.ts +69 -0
  22. package/src/embedding-model-middleware/v3/index.ts +1 -0
  23. package/src/errors/ai-sdk-error.ts +62 -0
  24. package/src/errors/api-call-error.ts +59 -0
  25. package/src/errors/empty-response-body-error.ts +17 -0
  26. package/src/errors/get-error-message.ts +15 -0
  27. package/src/errors/index.ts +16 -0
  28. package/src/errors/invalid-argument-error.ts +32 -0
  29. package/src/errors/invalid-prompt-error.ts +33 -0
  30. package/src/errors/invalid-response-data-error.ts +31 -0
  31. package/src/errors/json-parse-error.ts +29 -0
  32. package/src/errors/load-api-key-error.ts +17 -0
  33. package/src/errors/load-setting-error.ts +17 -0
  34. package/src/errors/no-content-generated-error.ts +22 -0
  35. package/src/errors/no-such-model-error.ts +45 -0
  36. package/src/errors/too-many-embedding-values-for-call-error.ts +40 -0
  37. package/src/errors/type-validation-error.ts +108 -0
  38. package/src/errors/unsupported-functionality-error.ts +26 -0
  39. package/src/image-model/index.ts +2 -0
  40. package/src/image-model/v2/image-model-v2-call-options.ts +60 -0
  41. package/src/image-model/v2/image-model-v2-call-warning.ts +16 -0
  42. package/src/image-model/v2/image-model-v2.ts +104 -0
  43. package/src/image-model/v2/index.ts +6 -0
  44. package/src/image-model/v3/image-model-v3-call-options.ts +74 -0
  45. package/src/image-model/v3/image-model-v3-file.ts +44 -0
  46. package/src/image-model/v3/image-model-v3-usage.ts +19 -0
  47. package/src/image-model/v3/image-model-v3.ts +110 -0
  48. package/src/image-model/v3/index.ts +7 -0
  49. package/src/image-model-middleware/index.ts +1 -0
  50. package/src/image-model-middleware/v3/image-model-v3-middleware.ts +61 -0
  51. package/src/image-model-middleware/v3/index.ts +1 -0
  52. package/src/index.ts +15 -0
  53. package/src/json-value/index.ts +2 -0
  54. package/src/json-value/is-json.ts +40 -0
  55. package/src/json-value/json-value.ts +17 -0
  56. package/src/language-model/index.ts +2 -0
  57. package/src/language-model/v2/index.ts +18 -0
  58. package/src/language-model/v2/language-model-v2-call-options.ts +127 -0
  59. package/src/language-model/v2/language-model-v2-call-warning.ts +23 -0
  60. package/src/language-model/v2/language-model-v2-content.ts +14 -0
  61. package/src/language-model/v2/language-model-v2-data-content.ts +4 -0
  62. package/src/language-model/v2/language-model-v2-file.ts +25 -0
  63. package/src/language-model/v2/language-model-v2-finish-reason.ts +20 -0
  64. package/src/language-model/v2/language-model-v2-function-tool.ts +37 -0
  65. package/src/language-model/v2/language-model-v2-prompt.ts +218 -0
  66. package/src/language-model/v2/language-model-v2-provider-defined-tool.ts +24 -0
  67. package/src/language-model/v2/language-model-v2-reasoning.ts +14 -0
  68. package/src/language-model/v2/language-model-v2-response-metadata.ts +16 -0
  69. package/src/language-model/v2/language-model-v2-source.ts +67 -0
  70. package/src/language-model/v2/language-model-v2-stream-part.ts +102 -0
  71. package/src/language-model/v2/language-model-v2-text.ts +15 -0
  72. package/src/language-model/v2/language-model-v2-tool-call.ts +35 -0
  73. package/src/language-model/v2/language-model-v2-tool-choice.ts +5 -0
  74. package/src/language-model/v2/language-model-v2-tool-result.ts +40 -0
  75. package/src/language-model/v2/language-model-v2-usage.ts +34 -0
  76. package/src/language-model/v2/language-model-v2.ts +137 -0
  77. package/src/language-model/v3/index.ts +21 -0
  78. package/src/language-model/v3/language-model-v3-call-options.ts +125 -0
  79. package/src/language-model/v3/language-model-v3-content.ts +16 -0
  80. package/src/language-model/v3/language-model-v3-data-content.ts +4 -0
  81. package/src/language-model/v3/language-model-v3-file.ts +32 -0
  82. package/src/language-model/v3/language-model-v3-finish-reason.ts +33 -0
  83. package/src/language-model/v3/language-model-v3-function-tool.ts +53 -0
  84. package/src/language-model/v3/language-model-v3-generate-result.ts +63 -0
  85. package/src/language-model/v3/language-model-v3-prompt.ts +422 -0
  86. package/src/language-model/v3/language-model-v3-provider-tool.ts +28 -0
  87. package/src/language-model/v3/language-model-v3-reasoning.ts +14 -0
  88. package/src/language-model/v3/language-model-v3-response-metadata.ts +16 -0
  89. package/src/language-model/v3/language-model-v3-source.ts +67 -0
  90. package/src/language-model/v3/language-model-v3-stream-part.ts +106 -0
  91. package/src/language-model/v3/language-model-v3-stream-result.ts +32 -0
  92. package/src/language-model/v3/language-model-v3-text.ts +15 -0
  93. package/src/language-model/v3/language-model-v3-tool-approval-request.ts +27 -0
  94. package/src/language-model/v3/language-model-v3-tool-call.ts +41 -0
  95. package/src/language-model/v3/language-model-v3-tool-choice.ts +5 -0
  96. package/src/language-model/v3/language-model-v3-tool-result.ts +51 -0
  97. package/src/language-model/v3/language-model-v3-usage.ts +59 -0
  98. package/src/language-model/v3/language-model-v3.ts +61 -0
  99. package/src/language-model-middleware/index.ts +2 -0
  100. package/src/language-model-middleware/v2/index.ts +1 -0
  101. package/src/language-model-middleware/v2/language-model-v2-middleware.ts +82 -0
  102. package/src/language-model-middleware/v3/index.ts +1 -0
  103. package/src/language-model-middleware/v3/language-model-v3-middleware.ts +84 -0
  104. package/src/provider/index.ts +2 -0
  105. package/src/provider/v2/index.ts +1 -0
  106. package/src/provider/v2/provider-v2.ts +64 -0
  107. package/src/provider/v3/index.ts +1 -0
  108. package/src/provider/v3/provider-v3.ts +93 -0
  109. package/src/reranking-model/index.ts +1 -0
  110. package/src/reranking-model/v3/index.ts +2 -0
  111. package/src/reranking-model/v3/reranking-model-v3-call-options.ts +40 -0
  112. package/src/reranking-model/v3/reranking-model-v3.ts +90 -0
  113. package/src/shared/index.ts +2 -0
  114. package/src/shared/v2/index.ts +3 -0
  115. package/src/shared/v2/shared-v2-headers.ts +1 -0
  116. package/src/shared/v2/shared-v2-provider-metadata.ts +27 -0
  117. package/src/shared/v2/shared-v2-provider-options.ts +24 -0
  118. package/src/shared/v3/index.ts +4 -0
  119. package/src/shared/v3/shared-v3-headers.ts +1 -0
  120. package/src/shared/v3/shared-v3-provider-metadata.ts +24 -0
  121. package/src/shared/v3/shared-v3-provider-options.ts +24 -0
  122. package/src/shared/v3/shared-v3-warning.ts +50 -0
  123. package/src/speech-model/index.ts +2 -0
  124. package/src/speech-model/v2/index.ts +3 -0
  125. package/src/speech-model/v2/speech-model-v2-call-options.ts +62 -0
  126. package/src/speech-model/v2/speech-model-v2-call-warning.ts +16 -0
  127. package/src/speech-model/v2/speech-model-v2.ts +89 -0
  128. package/src/speech-model/v3/index.ts +2 -0
  129. package/src/speech-model/v3/speech-model-v3-call-options.ts +62 -0
  130. package/src/speech-model/v3/speech-model-v3.ts +89 -0
  131. package/src/transcription-model/index.ts +2 -0
  132. package/src/transcription-model/v2/index.ts +3 -0
  133. package/src/transcription-model/v2/transcription-model-v2-call-options.ts +48 -0
  134. package/src/transcription-model/v2/transcription-model-v2-call-warning.ts +16 -0
  135. package/src/transcription-model/v2/transcription-model-v2.ts +117 -0
  136. package/src/transcription-model/v3/index.ts +2 -0
  137. package/src/transcription-model/v3/transcription-model-v3-call-options.ts +45 -0
  138. package/src/transcription-model/v3/transcription-model-v3.ts +117 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,967 @@
1
+ # @ai-sdk/provider
2
+
3
+ ## 0.0.0-01d6317c-20260129172110
4
+
5
+ ### Patch Changes
6
+
7
+ - ac4b7cb: fix(ai): improve type validation error messages with field paths and entity identifiers
8
+
9
+ ## 3.0.5
10
+
11
+ ### Patch Changes
12
+
13
+ - 4de5a1d: chore: excluded tests from src folder in npm package
14
+
15
+ ## 3.0.4
16
+
17
+ ### Patch Changes
18
+
19
+ - 5c090e7: fix(ai): fix LanguageModelV2ProviderTool type
20
+
21
+ ## 3.0.3
22
+
23
+ ### Patch Changes
24
+
25
+ - 1b11dcb: chore(ai): include sources in npm package
26
+
27
+ ## 3.0.2
28
+
29
+ ### Patch Changes
30
+
31
+ - d937c8f: Add Image model middleware support via `wrapImageModel` and `ImageModelV3Middleware`.
32
+
33
+ ## 3.0.1
34
+
35
+ ### Patch Changes
36
+
37
+ - 863d34f: fix: trigger release to update `@latest`
38
+
39
+ ## 3.0.0
40
+
41
+ ### Major Changes
42
+
43
+ - dee8b05: ai SDK 6 beta
44
+
45
+ ### Minor Changes
46
+
47
+ - 78928cb: release: start 5.1 beta
48
+
49
+ ### Patch Changes
50
+
51
+ - 0c3b58b: fix(provider): add specificationVersion to ProviderV3
52
+ - 0adc679: feat(provider): shared spec v3
53
+ - d1bdadb: Added reranking model
54
+ - 046aa3b: feat(provider): speech model v3 spec
55
+ - 8d9e8ad: chore(provider): remove generics from EmbeddingModelV3
56
+
57
+ Before
58
+
59
+ ```ts
60
+ model.textEmbeddingModel('my-model-id');
61
+ ```
62
+
63
+ After
64
+
65
+ ```ts
66
+ model.embeddingModel('my-model-id');
67
+ ```
68
+
69
+ - dce03c4: feat: tool input examples
70
+ - 2625a04: feat(openai); update spec for mcp approval
71
+ - 37c58a0: This release introduces `wrapEmbeddingModel`, a new helper that brings embedding model customization capabilities similar to `wrapLanguageModel`.
72
+ - 2b0caef: feat(provider): add preliminary provider executed tool results to language model specification
73
+ - 954c356: feat(openai): allow custom names for provider-defined tools
74
+ - 544d4e8: chore(specification): rename v3 provider defined tool to provider tool
75
+ - 0c4822d: feat: `EmbeddingModelV3`
76
+ - 4c44a5b: fix(spec): allow `undefined` values in `JSONObject` type
77
+ - e8109d3: feat: tool execution approval
78
+ - ed329cb: feat: `Provider-V3`
79
+ - 53f3368: feat(provider): support embedding model call warnings in specification
80
+ - 3bd2689: feat: extended token usage
81
+ - bb36798: fix(spec): `LanguageModelV3ToolResult["result"]` change from `unknown` to `NonNullable<JSONValue>`
82
+ - 8dac895: feat: `LanguageModelV3`
83
+ - a755db5: feat(provider): Add SharedV3Warning type
84
+ - 475189e: chore(specification): rename EmbeddingModelCallOptions
85
+ - 457318b: chore(provider,ai): switch to SharedV3Warning and unified warnings
86
+ - b681d7d: feat: expose usage tokens for 'generateImage' function
87
+ - db913bd: fix(google): add thought signature to gemini 3 pro image parts
88
+ - 9061dc0: feat: image editing
89
+ - 366f50b: chore(provider): add deprecated textEmbeddingModel and textEmbedding aliases
90
+ - 81d4308: feat: provider-executed dynamic tools
91
+ - 9549c9e: chore(specification): extract types
92
+ - af3780b: chore(provider): remove providerExecuted from LanguageModelV3ToolResult
93
+ - 522f6b8: feat: `ImageModelV3`
94
+ - 10d819b: fix(packages/provider): fix CallWarning and allow strings as type
95
+ - 3794514: feat: flexible tool output content support
96
+ - cbf52cd: feat: expose raw finish reason
97
+ - 1bd7d32: feat: tool-specific strict mode
98
+
99
+ ## 3.0.0-beta.32
100
+
101
+ ### Patch Changes
102
+
103
+ - 475189e: chore(specification): rename EmbeddingModelCallOptions
104
+
105
+ ## 3.0.0-beta.31
106
+
107
+ ### Patch Changes
108
+
109
+ - 2625a04: feat(openai); update spec for mcp approval
110
+
111
+ ## 3.0.0-beta.30
112
+
113
+ ### Patch Changes
114
+
115
+ - cbf52cd: feat: expose raw finish reason
116
+
117
+ ## 3.0.0-beta.29
118
+
119
+ ### Patch Changes
120
+
121
+ - 9549c9e: chore(specification): extract types
122
+
123
+ ## 3.0.0-beta.28
124
+
125
+ ### Patch Changes
126
+
127
+ - 9061dc0: feat: image editing
128
+
129
+ ## 3.0.0-beta.27
130
+
131
+ ### Patch Changes
132
+
133
+ - 366f50b: chore(provider): add deprecated textEmbeddingModel and textEmbedding aliases
134
+
135
+ ## 3.0.0-beta.26
136
+
137
+ ### Patch Changes
138
+
139
+ - 3bd2689: feat: extended token usage
140
+
141
+ ## 3.0.0-beta.25
142
+
143
+ ### Patch Changes
144
+
145
+ - 53f3368: feat(provider): support embedding model call warnings in specification
146
+
147
+ ## 3.0.0-beta.24
148
+
149
+ ### Patch Changes
150
+
151
+ - dce03c4: feat: tool input examples
152
+
153
+ ## 3.0.0-beta.23
154
+
155
+ ### Patch Changes
156
+
157
+ - 1bd7d32: feat: tool-specific strict mode
158
+
159
+ ## 3.0.0-beta.22
160
+
161
+ ### Patch Changes
162
+
163
+ - 544d4e8: chore(specification): rename v3 provider defined tool to provider tool
164
+
165
+ ## 3.0.0-beta.21
166
+
167
+ ### Patch Changes
168
+
169
+ - 954c356: feat(openai): allow custom names for provider-defined tools
170
+
171
+ ## 3.0.0-beta.20
172
+
173
+ ### Patch Changes
174
+
175
+ - 457318b: chore(provider,ai): switch to SharedV3Warning and unified warnings
176
+
177
+ ## 3.0.0-beta.19
178
+
179
+ ### Patch Changes
180
+
181
+ - 8d9e8ad: chore(provider): remove generics from EmbeddingModelV3
182
+
183
+ Before
184
+
185
+ ```ts
186
+ model.textEmbeddingModel('my-model-id');
187
+ ```
188
+
189
+ After
190
+
191
+ ```ts
192
+ model.embeddingModel('my-model-id');
193
+ ```
194
+
195
+ ## 3.0.0-beta.18
196
+
197
+ ### Patch Changes
198
+
199
+ - 10d819b: fix(packages/provider): fix CallWarning and allow strings as type
200
+
201
+ ## 3.0.0-beta.17
202
+
203
+ ### Patch Changes
204
+
205
+ - db913bd: fix(google): add thought signature to gemini 3 pro image parts
206
+
207
+ ## 3.0.0-beta.16
208
+
209
+ ### Patch Changes
210
+
211
+ - b681d7d: feat: expose usage tokens for 'generateImage' function
212
+
213
+ ## 3.0.0-beta.15
214
+
215
+ ### Patch Changes
216
+
217
+ - bb36798: fix(spec): `LanguageModelV3ToolResult["result"]` change from `unknown` to `NonNullable<JSONValue>`
218
+
219
+ ## 3.0.0-beta.14
220
+
221
+ ### Patch Changes
222
+
223
+ - af3780b: chore(provider): remove providerExecuted from LanguageModelV3ToolResult
224
+
225
+ ## 3.0.0-beta.13
226
+
227
+ ### Patch Changes
228
+
229
+ - 37c58a0: This release introduces `wrapEmbeddingModel`, a new helper that brings embedding model customization capabilities similar to `wrapLanguageModel`.
230
+
231
+ ## 3.0.0-beta.12
232
+
233
+ ### Patch Changes
234
+
235
+ - d1bdadb: Added reranking model
236
+
237
+ ## 3.0.0-beta.11
238
+
239
+ ### Patch Changes
240
+
241
+ - 4c44a5b: fix(spec): allow `undefined` values in `JSONObject` type
242
+
243
+ ## 3.0.0-beta.10
244
+
245
+ ### Patch Changes
246
+
247
+ - 0c3b58b: fix(provider): add specificationVersion to ProviderV3
248
+
249
+ ## 3.0.0-beta.9
250
+
251
+ ### Patch Changes
252
+
253
+ - a755db5: feat(provider): Add SharedV3Warning type
254
+
255
+ ## 3.0.0-beta.8
256
+
257
+ ### Patch Changes
258
+
259
+ - 3794514: feat: flexible tool output content support
260
+
261
+ ## 3.0.0-beta.7
262
+
263
+ ### Patch Changes
264
+
265
+ - 81d4308: feat: provider-executed dynamic tools
266
+
267
+ ## 3.0.0-beta.6
268
+
269
+ ### Major Changes
270
+
271
+ - dee8b05: ai SDK 6 beta
272
+
273
+ ## 2.1.0-beta.5
274
+
275
+ ### Patch Changes
276
+
277
+ - 046aa3b: feat(provider): speech model v3 spec
278
+ - e8109d3: feat: tool execution approval
279
+
280
+ ## 2.1.0-beta.4
281
+
282
+ ### Patch Changes
283
+
284
+ - 0adc679: feat(provider): shared spec v3
285
+ - 2b0caef: feat(provider): add preliminary provider executed tool results to language model specification
286
+
287
+ ## 2.1.0-beta.3
288
+
289
+ ### Patch Changes
290
+
291
+ - 8dac895: feat: `LanguageModelV3`
292
+
293
+ ## 2.1.0-beta.2
294
+
295
+ ### Patch Changes
296
+
297
+ - ed329cb: feat: `Provider-V3`
298
+ - 522f6b8: feat: `ImageModelV3`
299
+
300
+ ## 2.1.0-beta.1
301
+
302
+ ### Patch Changes
303
+
304
+ - 0c4822d: feat: `EmbeddingModelV3`
305
+
306
+ ## 2.1.0-beta.0
307
+
308
+ ### Minor Changes
309
+
310
+ - 78928cb: release: start 5.1 beta
311
+
312
+ ## 2.0.0
313
+
314
+ ### Major Changes
315
+
316
+ - 742b7be: feat: forward id, streaming start, streaming end of content blocks
317
+ - 7cddb72: refactoring (provider): collapse provider defined tools into single definition
318
+ - ccce59b: feat (provider): support changing provider, model, supportedUrls in middleware
319
+ - e2b9e4b: feat (provider): add name for provider defined tools for future validation
320
+ - 95857aa: chore: restructure language model supported urls
321
+ - 6f6bb89: chore (provider): cleanup request and rawRequest (language model v2)
322
+ - d1a1aa1: chore (provider): merge rawRequest into request (language model v2)
323
+ - 63f9e9b: chore (provider,ai): tools have input/output instead of args,result
324
+ - d5f588f: AI SDK 5
325
+ - b6b43c7: chore: move warnings into stream-start part (spec)
326
+ - 411e483: chore (provider): refactor usage (language model v2)
327
+ - abf9a79: chore: rename mimeType to mediaType
328
+ - 14c9410: chore: refactor file towards source pattern (spec)
329
+ - e86be6f: chore: remove logprobs
330
+ - 0d06df6: chore (ai): remove v1 providers
331
+ - d9c98f4: chore: refactor reasoning parts (spec)
332
+ - a3f768e: chore: restructure reasoning support
333
+ - 7435eb5: feat: upgrade speech models to v2 specification
334
+ - 0054544: chore: refactor source parts (spec)
335
+ - 9e9c809: chore: refactor tool call and tool call delta parts (spec)
336
+ - 32831c6: chore: refactor text parts (spec)
337
+ - 6dc848c: chore (provider): remove image parts
338
+ - d0f9495: chore: refactor file parts (spec)
339
+ - 7979f7f: feat (provider): support reasoning tokens, cached input tokens, total token in usage information
340
+ - 44f4aba: feat: upgrade transcription models to v2 specification
341
+ - 7ea4132: chore: remove object generation mode
342
+ - 023ba40: feat (provider): support arbitrary media types in tool results
343
+ - e030615: chore (provider): remove prompt type from language model v2 spec
344
+ - 5e57fae: refactoring (provider): restructure tool result output
345
+ - c57e248: chore (provider): remove mode
346
+ - 3795467: chore: return content array from doGenerate (spec)
347
+ - 1766ede: chore: rename maxTokens to maxOutputTokens
348
+ - 33f4a6a: chore (provider): rename providerMetadata inputs to providerOptions
349
+
350
+ ### Patch Changes
351
+
352
+ - dc714f3: release alpha.4
353
+ - b5da06a: update to LanguageModelV2ProviderDefinedClientTool to add server side tool later on
354
+ - 48d257a: release alpha.15
355
+ - 0d2c085: chore (provider): tweak provider definition
356
+ - 9222aeb: release alpha.8
357
+ - e2aceaf: feat: add raw chunk support
358
+ - 7b3ae3f: chore (provider): change getSupportedUrls to supportedUrls (language model v2)
359
+ - a166433: feat: add transcription with experimental_transcribe
360
+ - 26735b5: chore(embedding-model): add v2 interface
361
+ - 443d8ec: feat(embedding-model-v2): add response body field
362
+ - a8c8bd5: feat(embed-many): respect supportsParallelCalls & concurrency
363
+ - 9bf7291: chore(providers/openai): enable structuredOutputs by default & switch to provider option
364
+ - 2e13791: feat(anthropic): add server-side web search support
365
+ - 472524a: spec (ai): add provider options to tools
366
+ - dd3ff01: chore: add language setting to speechv2
367
+ - 9301f86: refactor (image-model): rename `ImageModelV1` to `ImageModelV2`
368
+ - 0a87932: core (ai): change transcription model mimeType to mediaType
369
+ - c4a2fec: chore (provider): extract shared provider options and metadata (spec)
370
+ - 79457bd: chore (provider): extract LanguageModelV2File
371
+ - 8aa9e20: feat: add speech with experimental_generateSpeech
372
+ - 4617fab: chore(embedding-models): remove remaining settings
373
+ - cb68df0: feat: add transcription and speech model support to provider registry
374
+ - ad80501: chore (provider): allow both binary and base64 file content (spec)
375
+
376
+ Before
377
+
378
+ ```ts
379
+ import { convertUint8ArrayToBase64 } from '@ai-sdk/provider-utils';
380
+
381
+ // Had to manually convert binary data to base64
382
+ const fileData = new Uint8Array([0, 1, 2, 3]);
383
+ const filePart = {
384
+ type: 'file',
385
+ mediaType: 'application/pdf',
386
+ data: convertUint8ArrayToBase64(fileData), // Required conversion
387
+ };
388
+ ```
389
+
390
+ After
391
+
392
+ ```ts
393
+ // Can use binary data directly
394
+ const fileData = new Uint8Array([0, 1, 2, 3]);
395
+ const filePart = {
396
+ type: 'file',
397
+ mediaType: 'application/pdf',
398
+ data: fileData, // Direct Uint8Array support
399
+ };
400
+ ```
401
+
402
+ - 68ecf2f: release alpha.13
403
+ - 6b98118: release alpha.3
404
+ - 3f2f00c: feat: `ImageModelV2#maxImagesPerCall` can be set to a function that returns a `number` or `undefined`, optionally as a promise
405
+
406
+ pull request: https://github.com/vercel/ai/pull/6343
407
+
408
+ - 9bd5ab5: feat (provider): add providerMetadata to ImageModelV2 interface (#5977)
409
+
410
+ The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
411
+
412
+ ```js
413
+ const prompt = 'Santa Claus driving a Cadillac';
414
+
415
+ const { providerMetadata } = await experimental_generateImage({
416
+ model: openai.image('dall-e-3'),
417
+ prompt,
418
+ });
419
+
420
+ const revisedPrompt = providerMetadata.openai.images[0]?.revisedPrompt;
421
+
422
+ console.log({
423
+ prompt,
424
+ revisedPrompt,
425
+ });
426
+ ```
427
+
428
+ - 5c56081: release alpha.7
429
+ - fd65bc6: chore(embedding-model-v2): rename rawResponse to response
430
+ - 26535e0: release alpha.2
431
+ - 393138b: feat(embedding-model-v2): add providerOptions
432
+ - 7182d14: Remove `Experimental_LanguageModelV2Middleware` type
433
+ - c1e6647: release alpha.11
434
+ - 811dff3: release alpha.9
435
+ - f10304b: feat(tool-calling): don't require the user to have to pass parameters
436
+ - 27deb4d: feat (provider/gateway): Add providerMetadata to embeddings response
437
+ - c4df419: release alpha.10
438
+
439
+ ## 2.0.0-beta.2
440
+
441
+ ### Patch Changes
442
+
443
+ - 27deb4d: feat (provider/gateway): Add providerMetadata to embeddings response
444
+
445
+ ## 2.0.0-beta.1
446
+
447
+ ### Major Changes
448
+
449
+ - 742b7be: feat: forward id, streaming start, streaming end of content blocks
450
+ - 7cddb72: refactoring (provider): collapse provider defined tools into single definition
451
+ - ccce59b: feat (provider): support changing provider, model, supportedUrls in middleware
452
+ - e2b9e4b: feat (provider): add name for provider defined tools for future validation
453
+ - 0d06df6: chore (ai): remove v1 providers
454
+ - 7435eb5: feat: upgrade speech models to v2 specification
455
+ - 44f4aba: feat: upgrade transcription models to v2 specification
456
+ - 023ba40: feat (provider): support arbitrary media types in tool results
457
+ - 5e57fae: refactoring (provider): restructure tool result output
458
+
459
+ ### Patch Changes
460
+
461
+ - 472524a: spec (ai): add provider options to tools
462
+ - dd3ff01: chore: add language setting to speechv2
463
+ - cb68df0: feat: add transcription and speech model support to provider registry
464
+
465
+ ## 2.0.0-alpha.15
466
+
467
+ ### Patch Changes
468
+
469
+ - 48d257a: release alpha.15
470
+
471
+ ## 2.0.0-alpha.14
472
+
473
+ ### Major Changes
474
+
475
+ - 63f9e9b: chore (provider,ai): tools have input/output instead of args,result
476
+
477
+ ### Patch Changes
478
+
479
+ - b5da06a: update to LanguageModelV2ProviderDefinedClientTool to add server side tool later on
480
+ - 2e13791: feat(anthropic): add server-side web search support
481
+
482
+ ## 2.0.0-alpha.13
483
+
484
+ ### Patch Changes
485
+
486
+ - 68ecf2f: release alpha.13
487
+
488
+ ## 2.0.0-alpha.12
489
+
490
+ ### Patch Changes
491
+
492
+ - e2aceaf: feat: add raw chunk support
493
+
494
+ ## 2.0.0-alpha.11
495
+
496
+ ### Patch Changes
497
+
498
+ - c1e6647: release alpha.11
499
+
500
+ ## 2.0.0-alpha.10
501
+
502
+ ### Patch Changes
503
+
504
+ - c4df419: release alpha.10
505
+
506
+ ## 2.0.0-alpha.9
507
+
508
+ ### Patch Changes
509
+
510
+ - 811dff3: release alpha.9
511
+
512
+ ## 2.0.0-alpha.8
513
+
514
+ ### Patch Changes
515
+
516
+ - 9222aeb: release alpha.8
517
+
518
+ ## 2.0.0-alpha.7
519
+
520
+ ### Patch Changes
521
+
522
+ - 5c56081: release alpha.7
523
+
524
+ ## 2.0.0-alpha.6
525
+
526
+ ### Patch Changes
527
+
528
+ - 0d2c085: chore (provider): tweak provider definition
529
+
530
+ ## 2.0.0-alpha.4
531
+
532
+ ### Patch Changes
533
+
534
+ - dc714f3: release alpha.4
535
+
536
+ ## 2.0.0-alpha.3
537
+
538
+ ### Patch Changes
539
+
540
+ - 6b98118: release alpha.3
541
+
542
+ ## 2.0.0-alpha.2
543
+
544
+ ### Patch Changes
545
+
546
+ - 26535e0: release alpha.2
547
+
548
+ ## 2.0.0-alpha.1
549
+
550
+ ### Patch Changes
551
+
552
+ - 3f2f00c: feat: `ImageModelV2#maxImagesPerCall` can be set to a function that returns a `number` or `undefined`, optionally as a promise
553
+
554
+ pull request: https://github.com/vercel/ai/pull/6343
555
+
556
+ ## 2.0.0-canary.14
557
+
558
+ ### Major Changes
559
+
560
+ - 7979f7f: feat (provider): support reasoning tokens, cached input tokens, total token in usage information
561
+
562
+ ### Patch Changes
563
+
564
+ - a8c8bd5: feat(embed-many): respect supportsParallelCalls & concurrency
565
+
566
+ ## 2.0.0-canary.13
567
+
568
+ ### Patch Changes
569
+
570
+ - 9bd5ab5: feat (provider): add providerMetadata to ImageModelV2 interface (#5977)
571
+
572
+ The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
573
+
574
+ ```js
575
+ const prompt = 'Santa Claus driving a Cadillac';
576
+
577
+ const { providerMetadata } = await experimental_generateImage({
578
+ model: openai.image('dall-e-3'),
579
+ prompt,
580
+ });
581
+
582
+ const revisedPrompt = providerMetadata.openai.images[0]?.revisedPrompt;
583
+
584
+ console.log({
585
+ prompt,
586
+ revisedPrompt,
587
+ });
588
+ ```
589
+
590
+ ## 2.0.0-canary.12
591
+
592
+ ### Patch Changes
593
+
594
+ - 7b3ae3f: chore (provider): change getSupportedUrls to supportedUrls (language model v2)
595
+
596
+ ## 2.0.0-canary.11
597
+
598
+ ### Major Changes
599
+
600
+ - e030615: chore (provider): remove prompt type from language model v2 spec
601
+
602
+ ### Patch Changes
603
+
604
+ - 9bf7291: chore(providers/openai): enable structuredOutputs by default & switch to provider option
605
+ - 4617fab: chore(embedding-models): remove remaining settings
606
+
607
+ ## 2.0.0-canary.10
608
+
609
+ ### Major Changes
610
+
611
+ - a3f768e: chore: restructure reasoning support
612
+
613
+ ### Patch Changes
614
+
615
+ - 9301f86: refactor (image-model): rename `ImageModelV1` to `ImageModelV2`
616
+
617
+ ## 2.0.0-canary.9
618
+
619
+ ### Major Changes
620
+
621
+ - e86be6f: chore: remove logprobs
622
+
623
+ ## 2.0.0-canary.8
624
+
625
+ ### Major Changes
626
+
627
+ - 95857aa: chore: restructure language model supported urls
628
+ - 7ea4132: chore: remove object generation mode
629
+
630
+ ## 2.0.0-canary.7
631
+
632
+ ### Major Changes
633
+
634
+ - b6b43c7: chore: move warnings into stream-start part (spec)
635
+ - 3795467: chore: return content array from doGenerate (spec)
636
+
637
+ ### Patch Changes
638
+
639
+ - 8aa9e20: feat: add speech with experimental_generateSpeech
640
+
641
+ ## 2.0.0-canary.6
642
+
643
+ ### Major Changes
644
+
645
+ - 14c9410: chore: refactor file towards source pattern (spec)
646
+ - d9c98f4: chore: refactor reasoning parts (spec)
647
+ - 0054544: chore: refactor source parts (spec)
648
+ - 9e9c809: chore: refactor tool call and tool call delta parts (spec)
649
+ - 32831c6: chore: refactor text parts (spec)
650
+ - d0f9495: chore: refactor file parts (spec)
651
+
652
+ ### Patch Changes
653
+
654
+ - 26735b5: chore(embedding-model): add v2 interface
655
+ - 443d8ec: feat(embedding-model-v2): add response body field
656
+ - c4a2fec: chore (provider): extract shared provider options and metadata (spec)
657
+ - fd65bc6: chore(embedding-model-v2): rename rawResponse to response
658
+ - 393138b: feat(embedding-model-v2): add providerOptions
659
+ - 7182d14: Remove `Experimental_LanguageModelV2Middleware` type
660
+
661
+ ## 2.0.0-canary.5
662
+
663
+ ### Major Changes
664
+
665
+ - 411e483: chore (provider): refactor usage (language model v2)
666
+ - ad80501: chore (provider): allow both binary and base64 file content (spec)
667
+ - 1766ede: chore: rename maxTokens to maxOutputTokens
668
+
669
+ ### Patch Changes
670
+
671
+ - 79457bd: chore (provider): extract LanguageModelV2File
672
+ - f10304b: feat(tool-calling): don't require the user to have to pass parameters
673
+
674
+ ## 2.0.0-canary.4
675
+
676
+ ### Major Changes
677
+
678
+ - 6f6bb89: chore (provider): cleanup request and rawRequest (language model v2)
679
+
680
+ ## 2.0.0-canary.3
681
+
682
+ ### Major Changes
683
+
684
+ - d1a1aa1: chore (provider): merge rawRequest into request (language model v2)
685
+
686
+ ## 2.0.0-canary.2
687
+
688
+ ### Major Changes
689
+
690
+ - abf9a79: chore: rename mimeType to mediaType
691
+ - 6dc848c: chore (provider): remove image parts
692
+
693
+ ### Patch Changes
694
+
695
+ - a166433: feat: add transcription with experimental_transcribe
696
+ - 0a87932: core (ai): change transcription model mimeType to mediaType
697
+
698
+ ## 2.0.0-canary.1
699
+
700
+ ### Major Changes
701
+
702
+ - c57e248: chore (provider): remove mode
703
+ - 33f4a6a: chore (provider): rename providerMetadata inputs to providerOptions
704
+
705
+ ## 2.0.0-canary.0
706
+
707
+ ### Major Changes
708
+
709
+ - d5f588f: AI SDK 5
710
+
711
+ ## 1.1.0
712
+
713
+ ### Minor Changes
714
+
715
+ - 5bc638d: AI SDK 4.2
716
+
717
+ ## 1.0.12
718
+
719
+ ### Patch Changes
720
+
721
+ - 0bd5bc6: feat (ai): support model-generated files
722
+
723
+ ## 1.0.11
724
+
725
+ ### Patch Changes
726
+
727
+ - 2e1101a: feat (provider/openai): pdf input support
728
+
729
+ ## 1.0.10
730
+
731
+ ### Patch Changes
732
+
733
+ - e1d3d42: feat (ai): expose raw response body in generateText and generateObject
734
+
735
+ ## 1.0.9
736
+
737
+ ### Patch Changes
738
+
739
+ - ddf9740: feat (ai): add anthropic reasoning
740
+
741
+ ## 1.0.8
742
+
743
+ ### Patch Changes
744
+
745
+ - 2761f06: fix (ai/provider): publish with LanguageModelV1Source
746
+
747
+ ## 1.0.7
748
+
749
+ ### Patch Changes
750
+
751
+ - d89c3b9: feat (provider): add image model support to provider specification
752
+
753
+ ## 1.0.6
754
+
755
+ ### Patch Changes
756
+
757
+ - 3a58a2e: feat (ai/core): throw NoImageGeneratedError from generateImage when no predictions are returned.
758
+
759
+ ## 1.0.5
760
+
761
+ ### Patch Changes
762
+
763
+ - 0a699f1: feat: add reasoning token support
764
+
765
+ ## 1.0.4
766
+
767
+ ### Patch Changes
768
+
769
+ - 19a2ce7: feat (provider): add message option to UnsupportedFunctionalityError
770
+ - 6337688: feat: change image generation errors to warnings
771
+
772
+ ## 1.0.3
773
+
774
+ ### Patch Changes
775
+
776
+ - 5ed5e45: chore (config): Use ts-library.json tsconfig for no-UI libs.
777
+
778
+ ## 1.0.2
779
+
780
+ ### Patch Changes
781
+
782
+ - 09a9cab: feat (ai/core): add experimental generateImage function
783
+
784
+ ## 1.0.1
785
+
786
+ ### Patch Changes
787
+
788
+ - b446ae5: feat (provider): Define type for ObjectGenerationMode.
789
+
790
+ ## 1.0.0
791
+
792
+ ### Major Changes
793
+
794
+ - b469a7e: chore: remove isXXXError methods
795
+ - c0ddc24: chore (ai): remove toJSON method from AI SDK errors
796
+
797
+ ## 1.0.0-canary.0
798
+
799
+ ### Major Changes
800
+
801
+ - b469a7e: chore: remove isXXXError methods
802
+ - c0ddc24: chore (ai): remove toJSON method from AI SDK errors
803
+
804
+ ## 0.0.26
805
+
806
+ ### Patch Changes
807
+
808
+ - aa98cdb: chore: more flexible dependency versioning
809
+ - 1486128: feat: add supportsUrl to language model specification
810
+ - 7b937c5: feat (provider-utils): improve id generator robustness
811
+ - 3b1b69a: feat: provider-defined tools
812
+ - 811a317: feat (ai/core): multi-part tool results (incl. images)
813
+
814
+ ## 0.0.25
815
+
816
+ ### Patch Changes
817
+
818
+ - b9b0d7b: feat (ai): access raw request body
819
+
820
+ ## 0.0.24
821
+
822
+ ### Patch Changes
823
+
824
+ - d595d0d: feat (ai/core): file content parts
825
+
826
+ ## 0.0.23
827
+
828
+ ### Patch Changes
829
+
830
+ - 03313cd: feat (ai): expose response id, response model, response timestamp in telemetry and api
831
+ - 3be7c1c: fix (provider/anthropic): support prompt caching on assistant messages
832
+
833
+ ## 0.0.22
834
+
835
+ ### Patch Changes
836
+
837
+ - 26515cb: feat (ai/provider): introduce ProviderV1 specification
838
+
839
+ ## 0.0.21
840
+
841
+ ### Patch Changes
842
+
843
+ - f2c025e: feat (ai/core): prompt validation
844
+
845
+ ## 0.0.20
846
+
847
+ ### Patch Changes
848
+
849
+ - 6ac355e: feat (provider/anthropic): add cache control support
850
+
851
+ ## 0.0.19
852
+
853
+ ### Patch Changes
854
+
855
+ - dd4a0f5: fix (ai/provider): remove invalid check in isJSONParseError
856
+
857
+ ## 0.0.18
858
+
859
+ ### Patch Changes
860
+
861
+ - 4bd27a9: chore (ai/provider): refactor type validation
862
+
863
+ ## 0.0.17
864
+
865
+ ### Patch Changes
866
+
867
+ - 029af4c: feat (ai/core): support schema name & description in generateObject & streamObject
868
+
869
+ ## 0.0.16
870
+
871
+ ### Patch Changes
872
+
873
+ - d58517b: feat (ai/openai): structured outputs
874
+
875
+ ## 0.0.15
876
+
877
+ ### Patch Changes
878
+
879
+ - 96aed25: fix (ai/provider): release new version
880
+
881
+ ## 0.0.14
882
+
883
+ ### Patch Changes
884
+
885
+ - a8d1c9e9: feat (ai/core): parallel image download
886
+
887
+ ## 0.0.13
888
+
889
+ ### Patch Changes
890
+
891
+ - 2b9da0f0: feat (core): support stopSequences setting.
892
+ - a5b58845: feat (core): support topK setting
893
+ - 4aa8deb3: feat (provider): support responseFormat setting in provider api
894
+ - 13b27ec6: chore (ai/core): remove grammar mode
895
+
896
+ ## 0.0.12
897
+
898
+ ### Patch Changes
899
+
900
+ - b7290943: feat (ai/core): add token usage to embed and embedMany
901
+
902
+ ## 0.0.11
903
+
904
+ ### Patch Changes
905
+
906
+ - 5edc6110: feat (provider): add headers support to language and embedding model spec
907
+
908
+ ## 0.0.10
909
+
910
+ ### Patch Changes
911
+
912
+ - 102ca22f: fix (@ai-sdk/provider): fix TypeValidationError.isTypeValidationError
913
+
914
+ ## 0.0.9
915
+
916
+ ### Patch Changes
917
+
918
+ - 09295e2e: feat (@ai-sdk/provider): add DownloadError
919
+
920
+ ## 0.0.8
921
+
922
+ ### Patch Changes
923
+
924
+ - f39c0dd2: feat (provider): add toolChoice to language model specification
925
+
926
+ ## 0.0.7
927
+
928
+ ### Patch Changes
929
+
930
+ - 8e780288: feat (ai/provider): add "unknown" finish reason (for models that don't provide a finish reason)
931
+
932
+ ## 0.0.6
933
+
934
+ ### Patch Changes
935
+
936
+ - 6a50ac4: feat (provider): add additional error types
937
+
938
+ ## 0.0.5
939
+
940
+ ### Patch Changes
941
+
942
+ - 0f6bc4e: feat (ai/core): add embed function
943
+
944
+ ## 0.0.4
945
+
946
+ ### Patch Changes
947
+
948
+ - 325ca55: feat (ai/core): improve image content part error message
949
+
950
+ ## 0.0.3
951
+
952
+ ### Patch Changes
953
+
954
+ - 41d5736: ai/core: re-expose language model types.
955
+
956
+ ## 0.0.2
957
+
958
+ ### Patch Changes
959
+
960
+ - d6431ae: ai/core: add logprobs support (thanks @SamStenner for the contribution)
961
+ - 25f3350: ai/core: add support for getting raw response headers.
962
+
963
+ ## 0.0.1
964
+
965
+ ### Patch Changes
966
+
967
+ - eb150a6: ai/core: remove scaling of setting values (breaking change). If you were using the temperature, frequency penalty, or presence penalty settings, you need to update the providers and adjust the setting values.