ai 7.0.0-beta.113 → 7.0.0-beta.115

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 (236) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/index.d.ts +1506 -1468
  3. package/dist/index.js +889 -979
  4. package/dist/index.js.map +1 -1
  5. package/dist/internal/index.d.ts +273 -273
  6. package/dist/internal/index.js +367 -405
  7. package/dist/internal/index.js.map +1 -1
  8. package/dist/test/index.d.ts +18 -18
  9. package/dist/test/index.js +22 -22
  10. package/dist/test/index.js.map +1 -1
  11. package/docs/02-foundations/03-prompts.mdx +13 -11
  12. package/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +2 -1
  13. package/docs/03-ai-sdk-core/39-file-uploads.mdx +1 -1
  14. package/docs/03-ai-sdk-core/45-provider-management.mdx +1 -1
  15. package/docs/03-ai-sdk-core/60-telemetry.mdx +87 -13
  16. package/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +2 -2
  17. package/docs/07-reference/01-ai-sdk-core/20-tool.mdx +7 -0
  18. package/docs/07-reference/01-ai-sdk-core/22-dynamic-tool.mdx +7 -0
  19. package/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +9 -1
  20. package/docs/07-reference/01-ai-sdk-core/40-provider-registry.mdx +104 -0
  21. package/docs/07-reference/01-ai-sdk-core/42-custom-provider.mdx +56 -10
  22. package/docs/07-reference/02-ai-sdk-ui/31-convert-to-model-messages.mdx +1 -1
  23. package/docs/08-migration-guides/23-migration-guide-7-0.mdx +42 -0
  24. package/docs/09-troubleshooting/70-high-memory-usage-with-images.mdx +2 -2
  25. package/package.json +5 -5
  26. package/src/agent/agent.ts +13 -9
  27. package/src/agent/create-agent-ui-stream-response.ts +8 -8
  28. package/src/agent/create-agent-ui-stream.ts +9 -9
  29. package/src/agent/infer-agent-tools.ts +1 -1
  30. package/src/agent/infer-agent-ui-message.ts +2 -2
  31. package/src/agent/pipe-agent-ui-stream-to-response.ts +9 -9
  32. package/src/agent/tool-loop-agent-settings.ts +17 -19
  33. package/src/agent/tool-loop-agent.ts +16 -8
  34. package/src/embed/embed-many-result.ts +3 -4
  35. package/src/embed/embed-many.ts +5 -5
  36. package/src/embed/embed-result.ts +3 -4
  37. package/src/embed/embed.ts +4 -4
  38. package/src/error/invalid-stream-part-error.ts +1 -1
  39. package/src/error/no-image-generated-error.ts +1 -1
  40. package/src/error/no-object-generated-error.ts +3 -3
  41. package/src/error/no-speech-generated-error.ts +1 -1
  42. package/src/error/no-transcript-generated-error.ts +1 -1
  43. package/src/error/no-video-generated-error.ts +1 -1
  44. package/src/error/tool-call-repair-error.ts +2 -2
  45. package/src/error/verify-no-object-generated-error.ts +1 -1
  46. package/src/generate-image/generate-image-result.ts +5 -5
  47. package/src/generate-image/generate-image.ts +12 -15
  48. package/src/generate-image/index.ts +3 -2
  49. package/src/generate-object/generate-object-result.ts +2 -2
  50. package/src/generate-object/generate-object.ts +14 -14
  51. package/src/generate-object/inject-json-instruction.ts +1 -1
  52. package/src/generate-object/output-strategy.ts +10 -10
  53. package/src/generate-object/parse-and-validate-object-result.ts +1 -1
  54. package/src/generate-object/repair-text.ts +1 -1
  55. package/src/generate-object/stream-object-result.ts +4 -4
  56. package/src/generate-object/stream-object.ts +22 -19
  57. package/src/generate-object/validate-object-generation-input.ts +1 -1
  58. package/src/generate-speech/generate-speech-result.ts +4 -4
  59. package/src/generate-speech/generate-speech.ts +12 -13
  60. package/src/generate-speech/generated-audio-file.ts +1 -2
  61. package/src/generate-text/collect-tool-approvals.ts +4 -4
  62. package/src/generate-text/content-part.ts +9 -9
  63. package/src/generate-text/create-execute-tools-transformation.ts +9 -7
  64. package/src/generate-text/execute-tool-call.ts +11 -13
  65. package/src/generate-text/extract-reasoning-content.ts +1 -1
  66. package/src/generate-text/extract-text-content.ts +4 -1
  67. package/src/generate-text/generate-text-events.ts +2 -2
  68. package/src/generate-text/generate-text-result.ts +18 -14
  69. package/src/generate-text/generate-text.ts +42 -38
  70. package/src/generate-text/invoke-tool-callbacks-from-stream.ts +2 -3
  71. package/src/generate-text/output-utils.ts +1 -1
  72. package/src/generate-text/output.ts +8 -8
  73. package/src/generate-text/parse-tool-call.ts +36 -9
  74. package/src/generate-text/prepare-step.ts +3 -5
  75. package/src/generate-text/prune-messages.ts +1 -1
  76. package/src/generate-text/reasoning-output.ts +26 -9
  77. package/src/generate-text/reasoning.ts +1 -1
  78. package/src/generate-text/resolve-tool-approval.ts +3 -3
  79. package/src/generate-text/response-message.ts +1 -1
  80. package/src/generate-text/restricted-telemetry-dispatcher.ts +1 -1
  81. package/src/generate-text/smooth-stream.ts +6 -5
  82. package/src/generate-text/step-result.ts +16 -11
  83. package/src/generate-text/stop-condition.ts +1 -1
  84. package/src/generate-text/stream-language-model-call.ts +26 -21
  85. package/src/generate-text/stream-text-result.ts +29 -26
  86. package/src/generate-text/stream-text.ts +48 -46
  87. package/src/generate-text/to-response-messages.ts +2 -2
  88. package/src/generate-text/tool-approval-configuration.ts +2 -2
  89. package/src/generate-text/tool-approval-request-output.ts +1 -1
  90. package/src/generate-text/tool-approval-response-output.ts +1 -1
  91. package/src/generate-text/tool-call-repair-function.ts +4 -4
  92. package/src/generate-text/tool-call.ts +3 -4
  93. package/src/generate-text/tool-error.ts +3 -4
  94. package/src/generate-text/tool-execution-events.ts +2 -2
  95. package/src/generate-text/tool-output-denied.ts +1 -1
  96. package/src/generate-text/tool-output.ts +2 -2
  97. package/src/generate-text/tool-result.ts +7 -4
  98. package/src/generate-text/tools-context-parameter.ts +1 -1
  99. package/src/generate-text/validate-tool-context.ts +1 -2
  100. package/src/generate-video/generate-video-result.ts +4 -4
  101. package/src/generate-video/generate-video.ts +6 -10
  102. package/src/global.ts +2 -2
  103. package/src/index.ts +3 -3
  104. package/src/logger/log-warnings.ts +1 -1
  105. package/src/middleware/add-tool-input-examples-middleware.ts +2 -2
  106. package/src/middleware/default-embedding-settings-middleware.ts +2 -2
  107. package/src/middleware/default-settings-middleware.ts +2 -2
  108. package/src/middleware/extract-json-middleware.ts +1 -1
  109. package/src/middleware/extract-reasoning-middleware.ts +1 -1
  110. package/src/middleware/simulate-streaming-middleware.ts +1 -1
  111. package/src/middleware/wrap-embedding-model.ts +2 -2
  112. package/src/middleware/wrap-image-model.ts +2 -2
  113. package/src/middleware/wrap-language-model.ts +2 -2
  114. package/src/middleware/wrap-provider.ts +2 -2
  115. package/src/model/as-embedding-model-v3.ts +1 -1
  116. package/src/model/as-embedding-model-v4.ts +1 -1
  117. package/src/model/as-image-model-v3.ts +1 -1
  118. package/src/model/as-image-model-v4.ts +5 -1
  119. package/src/model/as-language-model-v3.ts +1 -1
  120. package/src/model/as-language-model-v4.ts +1 -1
  121. package/src/model/as-provider-v3.ts +1 -1
  122. package/src/model/as-provider-v4.ts +1 -1
  123. package/src/model/as-reranking-model-v4.ts +1 -1
  124. package/src/model/as-speech-model-v3.ts +1 -1
  125. package/src/model/as-speech-model-v4.ts +5 -1
  126. package/src/model/as-transcription-model-v3.ts +4 -1
  127. package/src/model/as-transcription-model-v4.ts +1 -1
  128. package/src/model/as-video-model-v4.ts +1 -1
  129. package/src/model/resolve-model.ts +8 -8
  130. package/src/prompt/content-part.ts +45 -15
  131. package/src/prompt/convert-to-language-model-prompt.ts +108 -122
  132. package/src/prompt/create-tool-model-output.ts +2 -2
  133. package/src/prompt/data-content.ts +1 -78
  134. package/src/prompt/file-part-data.ts +125 -0
  135. package/src/prompt/index.ts +3 -2
  136. package/src/prompt/language-model-call-options.ts +1 -1
  137. package/src/prompt/message-conversion-error.ts +1 -1
  138. package/src/prompt/message.ts +1 -1
  139. package/src/prompt/prepare-language-model-call-options.ts +1 -1
  140. package/src/prompt/prepare-tool-choice.ts +2 -2
  141. package/src/prompt/prepare-tools.ts +2 -2
  142. package/src/prompt/prompt.ts +1 -1
  143. package/src/prompt/standardize-prompt.ts +3 -3
  144. package/src/registry/custom-provider.ts +127 -92
  145. package/src/registry/index.ts +1 -1
  146. package/src/registry/provider-registry.ts +91 -87
  147. package/src/rerank/rerank-result.ts +1 -1
  148. package/src/rerank/rerank.ts +8 -5
  149. package/src/telemetry/create-telemetry-dispatcher.ts +11 -1
  150. package/src/telemetry/diagnostic-channel-publisher.ts +50 -0
  151. package/src/telemetry/diagnostic-channel.ts +24 -0
  152. package/src/telemetry/index.ts +5 -0
  153. package/src/telemetry/telemetry.ts +1 -1
  154. package/src/test/mock-embedding-model-v2.ts +1 -1
  155. package/src/test/mock-embedding-model-v3.ts +1 -1
  156. package/src/test/mock-embedding-model-v4.ts +1 -1
  157. package/src/test/mock-image-model-v2.ts +1 -1
  158. package/src/test/mock-image-model-v3.ts +1 -1
  159. package/src/test/mock-image-model-v4.ts +1 -1
  160. package/src/test/mock-language-model-v2.ts +1 -1
  161. package/src/test/mock-language-model-v3.ts +1 -1
  162. package/src/test/mock-language-model-v4.ts +1 -1
  163. package/src/test/mock-provider-v2.ts +6 -7
  164. package/src/test/mock-provider-v3.ts +7 -8
  165. package/src/test/mock-provider-v4.ts +7 -8
  166. package/src/test/mock-reranking-model-v3.ts +1 -1
  167. package/src/test/mock-reranking-model-v4.ts +1 -1
  168. package/src/test/mock-server-response.ts +1 -1
  169. package/src/test/mock-speech-model-v2.ts +1 -1
  170. package/src/test/mock-speech-model-v3.ts +1 -1
  171. package/src/test/mock-speech-model-v4.ts +1 -1
  172. package/src/test/mock-transcription-model-v2.ts +1 -1
  173. package/src/test/mock-transcription-model-v3.ts +1 -1
  174. package/src/test/mock-transcription-model-v4.ts +1 -1
  175. package/src/test/mock-video-model-v3.ts +1 -1
  176. package/src/test/mock-video-model-v4.ts +1 -1
  177. package/src/text-stream/pipe-text-stream-to-response.ts +1 -1
  178. package/src/transcribe/transcribe-result.ts +3 -3
  179. package/src/transcribe/transcribe.ts +12 -12
  180. package/src/types/embedding-model-middleware.ts +1 -1
  181. package/src/types/embedding-model.ts +1 -1
  182. package/src/types/image-model-middleware.ts +1 -1
  183. package/src/types/image-model.ts +1 -1
  184. package/src/types/json-value.ts +1 -1
  185. package/src/types/language-model-middleware.ts +1 -1
  186. package/src/types/language-model.ts +2 -2
  187. package/src/types/provider-metadata.ts +1 -1
  188. package/src/types/provider-reference.ts +1 -1
  189. package/src/types/provider.ts +4 -4
  190. package/src/types/reranking-model.ts +1 -1
  191. package/src/types/speech-model.ts +5 -1
  192. package/src/types/transcription-model.ts +1 -1
  193. package/src/types/usage.ts +1 -1
  194. package/src/types/video-model.ts +1 -1
  195. package/src/types/warning.ts +1 -1
  196. package/src/ui/call-completion-api.ts +2 -2
  197. package/src/ui/chat-transport.ts +3 -3
  198. package/src/ui/chat.ts +10 -11
  199. package/src/ui/convert-file-list-to-file-ui-parts.ts +1 -1
  200. package/src/ui/convert-to-model-messages.ts +34 -23
  201. package/src/ui/default-chat-transport.ts +4 -4
  202. package/src/ui/direct-chat-transport.ts +6 -6
  203. package/src/ui/http-chat-transport.ts +5 -5
  204. package/src/ui/last-assistant-message-is-complete-with-approval-responses.ts +0 -1
  205. package/src/ui/last-assistant-message-is-complete-with-tool-calls.ts +0 -1
  206. package/src/ui/process-ui-message-stream.ts +20 -21
  207. package/src/ui/text-stream-chat-transport.ts +3 -3
  208. package/src/ui/transform-text-to-ui-message-stream.ts +1 -1
  209. package/src/ui/ui-messages.ts +13 -6
  210. package/src/ui/use-completion.ts +1 -1
  211. package/src/ui/validate-ui-messages.ts +3 -3
  212. package/src/ui-message-stream/create-ui-message-stream-response.ts +2 -2
  213. package/src/ui-message-stream/create-ui-message-stream.ts +6 -6
  214. package/src/ui-message-stream/get-response-ui-message-id.ts +2 -2
  215. package/src/ui-message-stream/handle-ui-message-stream-finish.ts +6 -6
  216. package/src/ui-message-stream/pipe-ui-message-stream-to-response.ts +3 -3
  217. package/src/ui-message-stream/read-ui-message-stream.ts +4 -4
  218. package/src/ui-message-stream/ui-message-chunks.ts +4 -4
  219. package/src/ui-message-stream/ui-message-stream-on-finish-callback.ts +2 -2
  220. package/src/ui-message-stream/ui-message-stream-on-step-finish-callback.ts +1 -1
  221. package/src/ui-message-stream/ui-message-stream-writer.ts +3 -3
  222. package/src/upload-file/upload-file-result.ts +3 -3
  223. package/src/upload-file/upload-file.ts +34 -56
  224. package/src/upload-skill/upload-skill-result.ts +3 -3
  225. package/src/upload-skill/upload-skill.ts +27 -8
  226. package/src/util/create-resolvable-promise.ts +1 -1
  227. package/src/util/deep-partial.ts +1 -1
  228. package/src/util/download/download.ts +0 -2
  229. package/src/util/extract-literal-union.ts +18 -0
  230. package/src/util/is-node-runtime.ts +3 -0
  231. package/src/util/notify.ts +1 -1
  232. package/src/util/parse-partial-json.ts +1 -1
  233. package/src/util/prepare-retries.ts +1 -2
  234. package/src/util/serial-job-executor.ts +1 -1
  235. package/src/util/write-to-server-response.ts +1 -1
  236. package/src/util/detect-media-type.ts +0 -235
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  createIdGenerator,
3
- ProviderOptions,
4
3
  withUserAgentSuffix,
4
+ type ProviderOptions,
5
5
  } from '@ai-sdk/provider-utils';
6
6
  import { logWarnings } from '../logger/log-warnings';
7
7
  import { resolveEmbeddingModel } from '../model/resolve-model';
8
8
  import { createTelemetryDispatcher } from '../telemetry/create-telemetry-dispatcher';
9
- import { TelemetryOptions } from '../telemetry/telemetry-options';
10
- import { EmbeddingModel } from '../types';
9
+ import type { TelemetryOptions } from '../telemetry/telemetry-options';
10
+ import type { EmbeddingModel } from '../types';
11
11
  import type { Callback } from '../util/callback';
12
12
  import { notify } from '../util/notify';
13
13
  import { prepareRetries } from '../util/prepare-retries';
14
14
  import { VERSION } from '../version';
15
15
  import type { EmbedEndEvent, EmbedStartEvent } from './embed-events';
16
- import { EmbedResult } from './embed-result';
16
+ import type { EmbedResult } from './embed-result';
17
17
 
18
18
  const originalGenerateCallId = createIdGenerator({
19
19
  prefix: 'call',
@@ -1,5 +1,5 @@
1
1
  import { AISDKError } from '@ai-sdk/provider';
2
- import { LanguageModelStreamPart } from '../generate-text/stream-language-model-call';
2
+ import type { LanguageModelStreamPart } from '../generate-text/stream-language-model-call';
3
3
 
4
4
  const name = 'AI_InvalidStreamPartError';
5
5
  const marker = `vercel.ai.error.${name}`;
@@ -1,5 +1,5 @@
1
1
  import { AISDKError } from '@ai-sdk/provider';
2
- import { ImageModelResponseMetadata } from '../types/image-model-response-metadata';
2
+ import type { ImageModelResponseMetadata } from '../types/image-model-response-metadata';
3
3
 
4
4
  const name = 'AI_NoImageGeneratedError';
5
5
  const marker = `vercel.ai.error.${name}`;
@@ -1,7 +1,7 @@
1
1
  import { AISDKError } from '@ai-sdk/provider';
2
- import { FinishReason } from '../types/language-model';
3
- import { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';
4
- import { LanguageModelUsage } from '../types/usage';
2
+ import type { FinishReason } from '../types/language-model';
3
+ import type { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';
4
+ import type { LanguageModelUsage } from '../types/usage';
5
5
 
6
6
  const name = 'AI_NoObjectGeneratedError';
7
7
  const marker = `vercel.ai.error.${name}`;
@@ -1,5 +1,5 @@
1
1
  import { AISDKError } from '@ai-sdk/provider';
2
- import { SpeechModelResponseMetadata } from '../types/speech-model-response-metadata';
2
+ import type { SpeechModelResponseMetadata } from '../types/speech-model-response-metadata';
3
3
 
4
4
  const name = 'AI_NoSpeechGeneratedError';
5
5
  const marker = `vercel.ai.error.${name}`;
@@ -1,5 +1,5 @@
1
1
  import { AISDKError } from '@ai-sdk/provider';
2
- import { TranscriptionModelResponseMetadata } from '../types/transcription-model-response-metadata';
2
+ import type { TranscriptionModelResponseMetadata } from '../types/transcription-model-response-metadata';
3
3
 
4
4
  const name = 'AI_NoTranscriptGeneratedError';
5
5
  const marker = `vercel.ai.error.${name}`;
@@ -1,5 +1,5 @@
1
1
  import { AISDKError } from '@ai-sdk/provider';
2
- import { VideoModelResponseMetadata } from '../types/video-model-response-metadata';
2
+ import type { VideoModelResponseMetadata } from '../types/video-model-response-metadata';
3
3
 
4
4
  const name = 'AI_NoVideoGeneratedError';
5
5
  const marker = `vercel.ai.error.${name}`;
@@ -1,6 +1,6 @@
1
1
  import { AISDKError, getErrorMessage } from '@ai-sdk/provider';
2
- import { InvalidToolInputError } from './invalid-tool-input-error';
3
- import { NoSuchToolError } from './no-such-tool-error';
2
+ import type { InvalidToolInputError } from './invalid-tool-input-error';
3
+ import type { NoSuchToolError } from './no-such-tool-error';
4
4
 
5
5
  const name = 'AI_ToolCallRepairError';
6
6
  const marker = `vercel.ai.error.${name}`;
@@ -1,6 +1,6 @@
1
1
  import { expect } from 'vitest';
2
2
 
3
- import {
3
+ import type {
4
4
  FinishReason,
5
5
  LanguageModelResponseMetadata,
6
6
  LanguageModelUsage,
@@ -1,8 +1,8 @@
1
- import { GeneratedFile } from '../generate-text';
2
- import { ImageModelProviderMetadata } from '../types/image-model';
3
- import { ImageModelResponseMetadata } from '../types/image-model-response-metadata';
4
- import { ImageModelUsage } from '../types/usage';
5
- import { Warning } from '../types/warning';
1
+ import type { GeneratedFile } from '../generate-text';
2
+ import type { ImageModelProviderMetadata } from '../types/image-model';
3
+ import type { ImageModelResponseMetadata } from '../types/image-model-response-metadata';
4
+ import type { ImageModelUsage } from '../types/usage';
5
+ import type { Warning } from '../types/warning';
6
6
 
7
7
  /**
8
8
  * The result of a `generateImage` call.
@@ -1,4 +1,4 @@
1
- import {
1
+ import type {
2
2
  ImageModelV4,
3
3
  ImageModelV4CallOptions,
4
4
  ImageModelV4File,
@@ -6,28 +6,25 @@ import {
6
6
  } from '@ai-sdk/provider';
7
7
  import {
8
8
  convertBase64ToUint8Array,
9
- DataContent,
10
- ProviderOptions,
9
+ detectMediaType,
11
10
  withUserAgentSuffix,
11
+ type DataContent,
12
+ type ProviderOptions,
12
13
  } from '@ai-sdk/provider-utils';
13
14
  import { NoImageGeneratedError } from '../error/no-image-generated-error';
14
15
  import {
15
16
  DefaultGeneratedFile,
16
- GeneratedFile,
17
+ type GeneratedFile,
17
18
  } from '../generate-text/generated-file';
18
19
  import { logWarnings } from '../logger/log-warnings';
19
20
  import { resolveImageModel } from '../model/resolve-model';
20
21
  import type { ImageModel } from '../types/image-model';
21
- import { ImageModelResponseMetadata } from '../types/image-model-response-metadata';
22
- import { addImageModelUsage, ImageModelUsage } from '../types/usage';
23
- import { Warning } from '../types/warning';
24
- import {
25
- detectMediaType,
26
- imageMediaTypeSignatures,
27
- } from '../util/detect-media-type';
22
+ import type { ImageModelResponseMetadata } from '../types/image-model-response-metadata';
23
+ import { addImageModelUsage, type ImageModelUsage } from '../types/usage';
24
+ import type { Warning } from '../types/warning';
28
25
  import { prepareRetries } from '../util/prepare-retries';
29
26
  import { VERSION } from '../version';
30
- import { GenerateImageResult } from './generate-image-result';
27
+ import type { GenerateImageResult } from './generate-image-result';
31
28
  import { convertDataContentToUint8Array } from '../prompt/data-content';
32
29
  import { splitDataUrl } from '../prompt/split-data-url';
33
30
 
@@ -208,7 +205,7 @@ export async function generateImage({
208
205
  mediaType:
209
206
  detectMediaType({
210
207
  data: image,
211
- signatures: imageMediaTypeSignatures,
208
+ topLevelType: 'image',
212
209
  }) ?? 'image/png',
213
210
  }),
214
211
  ),
@@ -342,7 +339,7 @@ function toImageModelV4File(dataContent: DataContent): ImageModelV4File {
342
339
  dataUrlMediaType ||
343
340
  detectMediaType({
344
341
  data: uint8Data,
345
- signatures: imageMediaTypeSignatures,
342
+ topLevelType: 'image',
346
343
  }) ||
347
344
  'image/png',
348
345
  };
@@ -356,7 +353,7 @@ function toImageModelV4File(dataContent: DataContent): ImageModelV4File {
356
353
  mediaType:
357
354
  detectMediaType({
358
355
  data: uint8Data,
359
- signatures: imageMediaTypeSignatures,
356
+ topLevelType: 'image',
360
357
  }) || 'image/png',
361
358
  };
362
359
  }
@@ -1,16 +1,17 @@
1
+ import type { GenerateImageResult } from './generate-image-result';
2
+ import { generateImage } from './generate-image';
3
+
1
4
  export { generateImage } from './generate-image';
2
5
  export type { GenerateImageResult } from './generate-image-result';
3
6
 
4
7
  // deprecated exports
5
8
 
6
- import { generateImage } from './generate-image';
7
9
  /**
8
10
  * @deprecated Use `generateImage` instead.
9
11
  */
10
12
  const experimental_generateImage = generateImage;
11
13
  export { experimental_generateImage };
12
14
 
13
- import type { GenerateImageResult } from './generate-image-result';
14
15
  /**
15
16
  * @deprecated Use `GenerateImageResult` instead.
16
17
  */
@@ -1,11 +1,11 @@
1
- import {
1
+ import type {
2
2
  CallWarning,
3
3
  FinishReason,
4
4
  LanguageModelRequestMetadata,
5
5
  LanguageModelResponseMetadata,
6
6
  ProviderMetadata,
7
7
  } from '../types';
8
- import { LanguageModelUsage } from '../types/usage';
8
+ import type { LanguageModelUsage } from '../types/usage';
9
9
 
10
10
  /**
11
11
  * The result of a `generateObject` call.
@@ -1,39 +1,39 @@
1
- import { JSONValue } from '@ai-sdk/provider';
1
+ import type { JSONValue } from '@ai-sdk/provider';
2
2
  import {
3
3
  createIdGenerator,
4
- FlexibleSchema,
5
- InferSchema,
6
- ProviderOptions,
7
4
  withUserAgentSuffix,
5
+ type FlexibleSchema,
6
+ type InferSchema,
7
+ type ProviderOptions,
8
8
  } from '@ai-sdk/provider-utils';
9
9
  import { NoObjectGeneratedError } from '../error/no-object-generated-error';
10
10
  import { extractReasoningContent } from '../generate-text/extract-reasoning-content';
11
11
  import { extractTextContent } from '../generate-text/extract-text-content';
12
12
  import { logWarnings } from '../logger/log-warnings';
13
13
  import { resolveLanguageModel } from '../model/resolve-model';
14
- import { LanguageModelCallOptions } from '../prompt/language-model-call-options';
14
+ import type { LanguageModelCallOptions } from '../prompt/language-model-call-options';
15
15
  import { prepareLanguageModelCallOptions } from '../prompt/prepare-language-model-call-options';
16
- import { RequestOptions } from '../prompt/request-options';
16
+ import type { RequestOptions } from '../prompt/request-options';
17
17
  import { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';
18
- import { Prompt } from '../prompt/prompt';
18
+ import type { Prompt } from '../prompt/prompt';
19
19
  import { standardizePrompt } from '../prompt/standardize-prompt';
20
20
  import { wrapGatewayError } from '../prompt/wrap-gateway-error';
21
21
  import { createTelemetryDispatcher } from '../telemetry/create-telemetry-dispatcher';
22
- import { TelemetryOptions } from '../telemetry/telemetry-options';
23
- import { LanguageModel } from '../types/language-model';
24
- import { LanguageModelRequestMetadata } from '../types/language-model-request-metadata';
25
- import { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';
22
+ import type { TelemetryOptions } from '../telemetry/telemetry-options';
23
+ import type { LanguageModel } from '../types/language-model';
24
+ import type { LanguageModelRequestMetadata } from '../types/language-model-request-metadata';
25
+ import type { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';
26
26
  import { asLanguageModelUsage } from '../types/usage';
27
27
  import type { Callback } from '../util/callback';
28
- import { DownloadFunction } from '../util/download/download-function';
28
+ import type { DownloadFunction } from '../util/download/download-function';
29
29
  import { notify } from '../util/notify';
30
30
  import { prepareHeaders } from '../util/prepare-headers';
31
31
  import { prepareRetries } from '../util/prepare-retries';
32
32
  import { VERSION } from '../version';
33
- import { GenerateObjectResult } from './generate-object-result';
33
+ import type { GenerateObjectResult } from './generate-object-result';
34
34
  import { getOutputStrategy } from './output-strategy';
35
35
  import { parseAndValidateObjectResultWithRepair } from './parse-and-validate-object-result';
36
- import { RepairTextFunction } from './repair-text';
36
+ import type { RepairTextFunction } from './repair-text';
37
37
  import type {
38
38
  GenerateObjectEndEvent,
39
39
  GenerateObjectStartEvent,
@@ -1,4 +1,4 @@
1
- import { JSONSchema7 } from '@ai-sdk/provider';
1
+ import type { JSONSchema7 } from '@ai-sdk/provider';
2
2
 
3
3
  const DEFAULT_SCHEMA_PREFIX = 'JSON schema:';
4
4
  const DEFAULT_SCHEMA_SUFFIX =
@@ -1,31 +1,31 @@
1
1
  import {
2
2
  isJSONArray,
3
3
  isJSONObject,
4
- JSONObject,
5
- JSONSchema7,
6
- JSONValue,
7
4
  TypeValidationError,
8
5
  UnsupportedFunctionalityError,
6
+ type JSONObject,
7
+ type JSONSchema7,
8
+ type JSONValue,
9
9
  } from '@ai-sdk/provider';
10
10
  import {
11
11
  asSchema,
12
- FlexibleSchema,
13
12
  safeValidateTypes,
14
- Schema,
15
- ValidationResult,
13
+ type FlexibleSchema,
14
+ type Schema,
15
+ type ValidationResult,
16
16
  } from '@ai-sdk/provider-utils';
17
17
  import { NoObjectGeneratedError } from '../error/no-object-generated-error';
18
- import {
18
+ import type {
19
19
  FinishReason,
20
20
  LanguageModelResponseMetadata,
21
21
  LanguageModelUsage,
22
22
  } from '../types';
23
23
  import {
24
- AsyncIterableStream,
25
24
  createAsyncIterableStream,
25
+ type AsyncIterableStream,
26
26
  } from '../util/async-iterable-stream';
27
- import { DeepPartial } from '../util/deep-partial';
28
- import { ObjectStreamPart } from './stream-object-result';
27
+ import type { DeepPartial } from '../util/deep-partial';
28
+ import type { ObjectStreamPart } from './stream-object-result';
29
29
 
30
30
  export interface OutputStrategy<PARTIAL, RESULT, ELEMENT_STREAM> {
31
31
  readonly type: 'object' | 'array' | 'enum' | 'no-schema';
@@ -7,7 +7,7 @@ import type {
7
7
  LanguageModelUsage,
8
8
  } from '../types';
9
9
  import type { OutputStrategy } from './output-strategy';
10
- import { RepairTextFunction } from './repair-text';
10
+ import type { RepairTextFunction } from './repair-text';
11
11
 
12
12
  /**
13
13
  * Parses and validates a result string by parsing it as JSON and validating against the output strategy.
@@ -1,4 +1,4 @@
1
- import { JSONParseError, TypeValidationError } from '@ai-sdk/provider';
1
+ import type { JSONParseError, TypeValidationError } from '@ai-sdk/provider';
2
2
 
3
3
  /**
4
4
  * A function that attempts to repair the raw output of the model
@@ -1,13 +1,13 @@
1
- import { ServerResponse } from 'http';
2
- import { AsyncIterableStream } from '../util/async-iterable-stream';
3
- import {
1
+ import type { ServerResponse } from 'http';
2
+ import type { AsyncIterableStream } from '../util/async-iterable-stream';
3
+ import type {
4
4
  CallWarning,
5
5
  FinishReason,
6
6
  LanguageModelRequestMetadata,
7
7
  LanguageModelResponseMetadata,
8
8
  ProviderMetadata,
9
9
  } from '../types';
10
- import { LanguageModelUsage } from '../types/usage';
10
+ import type { LanguageModelUsage } from '../types/usage';
11
11
 
12
12
  /**
13
13
  * The result of a `streamObject` call that contains the partial object stream and additional information.
@@ -1,4 +1,4 @@
1
- import {
1
+ import type {
2
2
  JSONValue,
3
3
  LanguageModelV4FinishReason,
4
4
  LanguageModelV4StreamPart,
@@ -9,45 +9,45 @@ import {
9
9
  import {
10
10
  createIdGenerator,
11
11
  DelayedPromise,
12
- FlexibleSchema,
13
- ProviderOptions,
14
12
  type InferSchema,
13
+ type FlexibleSchema,
14
+ type ProviderOptions,
15
15
  } from '@ai-sdk/provider-utils';
16
- import { ServerResponse } from 'http';
16
+ import type { ServerResponse } from 'http';
17
17
  import { logWarnings } from '../logger/log-warnings';
18
18
  import { resolveLanguageModel } from '../model/resolve-model';
19
- import { LanguageModelCallOptions } from '../prompt/language-model-call-options';
19
+ import type { LanguageModelCallOptions } from '../prompt/language-model-call-options';
20
20
  import { prepareLanguageModelCallOptions } from '../prompt/prepare-language-model-call-options';
21
- import { RequestOptions } from '../prompt/request-options';
21
+ import type { RequestOptions } from '../prompt/request-options';
22
22
  import { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';
23
- import { Prompt } from '../prompt/prompt';
23
+ import type { Prompt } from '../prompt/prompt';
24
24
  import { standardizePrompt } from '../prompt/standardize-prompt';
25
25
  import { wrapGatewayError } from '../prompt/wrap-gateway-error';
26
26
  import { createTelemetryDispatcher } from '../telemetry/create-telemetry-dispatcher';
27
- import { TelemetryOptions } from '../telemetry/telemetry-options';
27
+ import type { TelemetryOptions } from '../telemetry/telemetry-options';
28
28
  import { createTextStreamResponse } from '../text-stream/create-text-stream-response';
29
29
  import { pipeTextStreamToResponse } from '../text-stream/pipe-text-stream-to-response';
30
- import {
30
+ import type {
31
31
  CallWarning,
32
32
  FinishReason,
33
33
  LanguageModel,
34
34
  } from '../types/language-model';
35
- import { LanguageModelRequestMetadata } from '../types/language-model-request-metadata';
36
- import { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';
37
- import { ProviderMetadata } from '../types/provider-metadata';
35
+ import type { LanguageModelRequestMetadata } from '../types/language-model-request-metadata';
36
+ import type { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';
37
+ import type { ProviderMetadata } from '../types/provider-metadata';
38
38
  import {
39
39
  asLanguageModelUsage,
40
40
  createNullLanguageModelUsage,
41
- LanguageModelUsage,
41
+ type LanguageModelUsage,
42
42
  } from '../types/usage';
43
- import { DeepPartial, isDeepEqualData, parsePartialJson } from '../util';
43
+ import { isDeepEqualData, parsePartialJson, type DeepPartial } from '../util';
44
44
  import {
45
- AsyncIterableStream,
46
45
  createAsyncIterableStream,
46
+ type AsyncIterableStream,
47
47
  } from '../util/async-iterable-stream';
48
48
  import type { Callback } from '../util/callback';
49
49
  import { createStitchableStream } from '../util/create-stitchable-stream';
50
- import { DownloadFunction } from '../util/download/download-function';
50
+ import type { DownloadFunction } from '../util/download/download-function';
51
51
  import { notify } from '../util/notify';
52
52
  import { now as originalNow } from '../util/now';
53
53
  import { prepareRetries } from '../util/prepare-retries';
@@ -57,10 +57,13 @@ import type {
57
57
  GenerateObjectStepEndEvent,
58
58
  GenerateObjectStepStartEvent,
59
59
  } from './structured-output-events';
60
- import { getOutputStrategy, OutputStrategy } from './output-strategy';
60
+ import { getOutputStrategy, type OutputStrategy } from './output-strategy';
61
61
  import { parseAndValidateObjectResultWithRepair } from './parse-and-validate-object-result';
62
- import { RepairTextFunction } from './repair-text';
63
- import { ObjectStreamPart, StreamObjectResult } from './stream-object-result';
62
+ import type { RepairTextFunction } from './repair-text';
63
+ import type {
64
+ ObjectStreamPart,
65
+ StreamObjectResult,
66
+ } from './stream-object-result';
64
67
  import { validateObjectGenerationInput } from './validate-object-generation-input';
65
68
 
66
69
  const originalGenerateId = createIdGenerator({ prefix: 'aiobj', size: 24 });
@@ -1,4 +1,4 @@
1
- import { FlexibleSchema } from '@ai-sdk/provider-utils';
1
+ import type { FlexibleSchema } from '@ai-sdk/provider-utils';
2
2
  import { InvalidArgumentError } from '../error/invalid-argument-error';
3
3
 
4
4
  export function validateObjectGenerationInput({
@@ -1,7 +1,7 @@
1
- import { JSONObject } from '@ai-sdk/provider';
2
- import { SpeechModelResponseMetadata } from '../types/speech-model-response-metadata';
3
- import { Warning } from '../types/warning';
4
- import { GeneratedAudioFile } from './generated-audio-file';
1
+ import type { JSONObject } from '@ai-sdk/provider';
2
+ import type { SpeechModelResponseMetadata } from '../types/speech-model-response-metadata';
3
+ import type { Warning } from '../types/warning';
4
+ import type { GeneratedAudioFile } from './generated-audio-file';
5
5
 
6
6
  /**
7
7
  * The result of a `generateSpeech` call.
@@ -1,23 +1,22 @@
1
- import { JSONObject } from '@ai-sdk/provider';
2
- import { ProviderOptions, withUserAgentSuffix } from '@ai-sdk/provider-utils';
1
+ import type { JSONObject } from '@ai-sdk/provider';
2
+ import {
3
+ detectMediaType,
4
+ withUserAgentSuffix,
5
+ type ProviderOptions,
6
+ } from '@ai-sdk/provider-utils';
3
7
  import { NoSpeechGeneratedError } from '../error/no-speech-generated-error';
4
8
  import { logWarnings } from '../logger/log-warnings';
5
9
  import { resolveSpeechModel } from '../model/resolve-model';
6
- import { SpeechModel } from '../types/speech-model';
7
- import { SpeechModelResponseMetadata } from '../types/speech-model-response-metadata';
8
- import { Warning } from '../types/warning';
9
- import {
10
- audioMediaTypeSignatures,
11
- detectMediaType,
12
- } from '../util/detect-media-type';
10
+ import type { SpeechModel } from '../types/speech-model';
11
+ import type { SpeechModelResponseMetadata } from '../types/speech-model-response-metadata';
12
+ import type { Warning } from '../types/warning';
13
13
  import { prepareRetries } from '../util/prepare-retries';
14
14
  import { VERSION } from '../version';
15
- import { SpeechResult } from './generate-speech-result';
15
+ import type { SpeechResult } from './generate-speech-result';
16
16
  import {
17
17
  DefaultGeneratedAudioFile,
18
- GeneratedAudioFile,
18
+ type GeneratedAudioFile,
19
19
  } from './generated-audio-file';
20
-
21
20
  /**
22
21
  * Generates speech audio using a speech model.
23
22
  *
@@ -162,7 +161,7 @@ export async function generateSpeech({
162
161
  mediaType:
163
162
  detectMediaType({
164
163
  data: result.audio,
165
- signatures: audioMediaTypeSignatures,
164
+ topLevelType: 'audio',
166
165
  }) ?? 'audio/mp3',
167
166
  }),
168
167
  warnings: result.warnings,
@@ -1,8 +1,7 @@
1
1
  import {
2
- GeneratedFile,
3
2
  DefaultGeneratedFile,
3
+ type GeneratedFile,
4
4
  } from '../generate-text/generated-file';
5
-
6
5
  /**
7
6
  * A generated audio file.
8
7
  */
@@ -1,13 +1,13 @@
1
- import {
1
+ import type {
2
2
  ModelMessage,
3
3
  ToolApprovalRequest,
4
4
  ToolApprovalResponse,
5
+ ToolSet,
5
6
  } from '@ai-sdk/provider-utils';
6
7
  import { InvalidToolApprovalError } from '../error/invalid-tool-approval-error';
7
8
  import { ToolCallNotFoundForApprovalError } from '../error/tool-call-not-found-for-approval-error';
8
- import { TypedToolCall } from './tool-call';
9
- import { TypedToolResult } from './tool-result';
10
- import type { ToolSet } from '@ai-sdk/provider-utils';
9
+ import type { TypedToolCall } from './tool-call';
10
+ import type { TypedToolResult } from './tool-result';
11
11
 
12
12
  export type CollectedToolApprovals<TOOLS extends ToolSet> = {
13
13
  approvalRequest: ToolApprovalRequest;
@@ -1,13 +1,13 @@
1
1
  import type { ToolSet } from '@ai-sdk/provider-utils';
2
- import { ProviderMetadata } from '../types';
3
- import { Source } from '../types/language-model';
4
- import { GeneratedFile } from './generated-file';
5
- import { ReasoningFileOutput, ReasoningOutput } from './reasoning-output';
6
- import { ToolApprovalRequestOutput } from './tool-approval-request-output';
7
- import { ToolApprovalResponseOutput } from './tool-approval-response-output';
8
- import { TypedToolCall } from './tool-call';
9
- import { TypedToolError } from './tool-error';
10
- import { TypedToolResult } from './tool-result';
2
+ import type { ProviderMetadata } from '../types';
3
+ import type { Source } from '../types/language-model';
4
+ import type { GeneratedFile } from './generated-file';
5
+ import type { ReasoningFileOutput, ReasoningOutput } from './reasoning-output';
6
+ import type { ToolApprovalRequestOutput } from './tool-approval-request-output';
7
+ import type { ToolApprovalResponseOutput } from './tool-approval-response-output';
8
+ import type { TypedToolCall } from './tool-call';
9
+ import type { TypedToolError } from './tool-error';
10
+ import type { TypedToolResult } from './tool-result';
11
11
 
12
12
  export type ContentPart<TOOLS extends ToolSet> =
13
13
  | { type: 'text'; text: string; providerMetadata?: ProviderMetadata }
@@ -1,17 +1,19 @@
1
- import type { Arrayable, Context, ToolSet } from '@ai-sdk/provider-utils';
2
- import {
1
+ import type {
2
+ Arrayable,
3
+ Context,
3
4
  IdGenerator,
4
5
  InferToolSetContext,
5
6
  ModelMessage,
7
+ ToolSet,
6
8
  } from '@ai-sdk/provider-utils';
7
- import { TimeoutConfiguration } from '../prompt/request-options';
9
+ import type { TimeoutConfiguration } from '../prompt/request-options';
8
10
  import type { Telemetry } from '../telemetry/telemetry';
9
11
  import { executeToolCall } from './execute-tool-call';
10
12
  import { resolveToolApproval } from './resolve-tool-approval';
11
- import { LanguageModelStreamPart } from './stream-language-model-call';
12
- import { ToolApprovalConfiguration } from './tool-approval-configuration';
13
- import { TypedToolCall } from './tool-call';
14
- import {
13
+ import type { LanguageModelStreamPart } from './stream-language-model-call';
14
+ import type { ToolApprovalConfiguration } from './tool-approval-configuration';
15
+ import type { TypedToolCall } from './tool-call';
16
+ import type {
15
17
  OnToolExecutionEndCallback,
16
18
  OnToolExecutionStartCallback,
17
19
  } from './tool-execution-events';
@@ -1,31 +1,29 @@
1
- import type {
2
- Arrayable,
3
- InferToolInput,
4
- InferToolSetContext,
5
- ToolSet,
6
- } from '@ai-sdk/provider-utils';
7
1
  import {
8
2
  executeTool,
9
3
  isExecutableTool,
10
- ModelMessage,
4
+ type Arrayable,
5
+ type InferToolInput,
6
+ type InferToolSetContext,
7
+ type ToolSet,
8
+ type ModelMessage,
11
9
  } from '@ai-sdk/provider-utils';
12
10
  import {
13
11
  getToolTimeoutMs,
14
- TimeoutConfiguration,
12
+ type TimeoutConfiguration,
15
13
  } from '../prompt/request-options';
16
14
  import { mergeAbortSignals } from '../util/merge-abort-signals';
17
15
  import { notify } from '../util/notify';
18
16
  import { now } from '../util/now';
19
- import { TypedToolCall } from './tool-call';
20
- import { TypedToolError } from './tool-error';
21
- import {
17
+ import type { TypedToolCall } from './tool-call';
18
+ import type { TypedToolError } from './tool-error';
19
+ import type {
22
20
  OnToolExecutionEndCallback,
23
21
  OnToolExecutionStartCallback,
24
22
  ToolExecutionEndEvent,
25
23
  ToolExecutionStartEvent,
26
24
  } from './tool-execution-events';
27
- import { ToolOutput } from './tool-output';
28
- import { TypedToolResult } from './tool-result';
25
+ import type { ToolOutput } from './tool-output';
26
+ import type { TypedToolResult } from './tool-result';
29
27
  import { validateToolContext } from './validate-tool-context';
30
28
 
31
29
  /**
@@ -1,4 +1,4 @@
1
- import {
1
+ import type {
2
2
  LanguageModelV4Content,
3
3
  LanguageModelV4Reasoning,
4
4
  } from '@ai-sdk/provider';