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,38 +1,41 @@
1
- import type { Context, ToolSet } from '@ai-sdk/provider-utils';
2
- import { IdGenerator } from '@ai-sdk/provider-utils';
3
- import { ServerResponse } from 'node:http';
4
- import {
1
+ import type { Context, IdGenerator, ToolSet } from '@ai-sdk/provider-utils';
2
+ import type { ServerResponse } from 'node:http';
3
+ import type {
5
4
  CallWarning,
6
5
  FinishReason,
7
6
  LanguageModelRequestMetadata,
8
7
  ProviderMetadata,
9
8
  } from '../types';
10
- import { Source } from '../types/language-model';
11
- import { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';
12
- import { LanguageModelUsage } from '../types/usage';
13
- import { InferUIMessageChunk } from '../ui-message-stream/ui-message-chunks';
14
- import { UIMessageStreamOnFinishCallback } from '../ui-message-stream/ui-message-stream-on-finish-callback';
15
- import { UIMessageStreamResponseInit } from '../ui-message-stream/ui-message-stream-response-init';
16
- import { InferUIMessageMetadata, UIMessage } from '../ui/ui-messages';
17
- import { AsyncIterableStream } from '../util/async-iterable-stream';
18
- import { ErrorHandler } from '../util/error-handler';
19
- import { ContentPart } from './content-part';
20
- import { GeneratedFile } from './generated-file';
21
- import { Output } from './output';
22
- import {
9
+ import type { Source } from '../types/language-model';
10
+ import type { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';
11
+ import type { LanguageModelUsage } from '../types/usage';
12
+ import type { InferUIMessageChunk } from '../ui-message-stream/ui-message-chunks';
13
+ import type { UIMessageStreamOnFinishCallback } from '../ui-message-stream/ui-message-stream-on-finish-callback';
14
+ import type { UIMessageStreamResponseInit } from '../ui-message-stream/ui-message-stream-response-init';
15
+ import type { InferUIMessageMetadata, UIMessage } from '../ui/ui-messages';
16
+ import type { AsyncIterableStream } from '../util/async-iterable-stream';
17
+ import type { ErrorHandler } from '../util/error-handler';
18
+ import type { ContentPart } from './content-part';
19
+ import type { GeneratedFile } from './generated-file';
20
+ import type { Output } from './output';
21
+ import type {
23
22
  InferCompleteOutput,
24
23
  InferElementOutput,
25
24
  InferPartialOutput,
26
25
  } from './output-utils';
27
- import { ReasoningFileOutput, ReasoningOutput } from './reasoning-output';
28
- import { ResponseMessage } from './response-message';
29
- import { StepResult } from './step-result';
30
- import { ToolApprovalRequestOutput } from './tool-approval-request-output';
31
- import { ToolApprovalResponseOutput } from './tool-approval-response-output';
32
- import { DynamicToolCall, StaticToolCall, TypedToolCall } from './tool-call';
33
- import { TypedToolError } from './tool-error';
34
- import { StaticToolOutputDenied } from './tool-output-denied';
35
- import {
26
+ import type { ReasoningFileOutput, ReasoningOutput } from './reasoning-output';
27
+ import type { ResponseMessage } from './response-message';
28
+ import type { StepResult } from './step-result';
29
+ import type { ToolApprovalRequestOutput } from './tool-approval-request-output';
30
+ import type { ToolApprovalResponseOutput } from './tool-approval-response-output';
31
+ import type {
32
+ DynamicToolCall,
33
+ StaticToolCall,
34
+ TypedToolCall,
35
+ } from './tool-call';
36
+ import type { TypedToolError } from './tool-error';
37
+ import type { StaticToolOutputDenied } from './tool-output-denied';
38
+ import type {
36
39
  DynamicToolResult,
37
40
  StaticToolResult,
38
41
  TypedToolResult,
@@ -1,81 +1,82 @@
1
1
  import {
2
2
  getErrorMessage,
3
- LanguageModelV4,
4
- SharedV4Warning,
5
3
  UnsupportedFunctionalityError,
4
+ type LanguageModelV4,
5
+ type SharedV4Warning,
6
6
  } from '@ai-sdk/provider';
7
- import type {
8
- Arrayable,
9
- Context,
10
- InferToolSetContext,
11
- SensitiveContext,
12
- ToolApprovalResponse,
13
- ToolSet,
14
- } from '@ai-sdk/provider-utils';
15
7
  import {
16
8
  asArray,
17
9
  createIdGenerator,
18
10
  DelayedPromise,
19
11
  filterNullable,
20
- IdGenerator,
21
12
  isAbortError,
22
- ProviderOptions,
23
- ToolContent,
13
+ type Arrayable,
14
+ type Context,
15
+ type InferToolSetContext,
16
+ type SensitiveContext,
17
+ type ToolApprovalResponse,
18
+ type ToolSet,
19
+ type IdGenerator,
20
+ type ProviderOptions,
21
+ type ToolContent,
24
22
  } from '@ai-sdk/provider-utils';
25
- import { ServerResponse } from 'node:http';
23
+ import type { ServerResponse } from 'node:http';
26
24
  import { NoOutputGeneratedError } from '../error';
27
25
  import { logWarnings } from '../logger/log-warnings';
28
26
  import { resolveLanguageModel } from '../model/resolve-model';
29
27
  import { createToolModelOutput } from '../prompt/create-tool-model-output';
30
- import { LanguageModelCallOptions } from '../prompt/language-model-call-options';
28
+ import type { LanguageModelCallOptions } from '../prompt/language-model-call-options';
31
29
  import { prepareLanguageModelCallOptions } from '../prompt/prepare-language-model-call-options';
32
30
  import { prepareToolChoice } from '../prompt/prepare-tool-choice';
33
31
  import { prepareTools } from '../prompt/prepare-tools';
34
- import { Prompt } from '../prompt/prompt';
32
+ import type { Prompt } from '../prompt/prompt';
35
33
  import {
36
34
  getChunkTimeoutMs,
37
35
  getStepTimeoutMs,
38
36
  getTotalTimeoutMs,
39
- RequestOptions,
40
- TimeoutConfiguration,
37
+ type RequestOptions,
38
+ type TimeoutConfiguration,
41
39
  } from '../prompt/request-options';
42
40
  import { standardizePrompt } from '../prompt/standardize-prompt';
43
41
  import { wrapGatewayError } from '../prompt/wrap-gateway-error';
44
- import { TelemetryOptions } from '../telemetry/telemetry-options';
42
+ import type { TelemetryOptions } from '../telemetry/telemetry-options';
45
43
  import { createTextStreamResponse } from '../text-stream/create-text-stream-response';
46
44
  import { pipeTextStreamToResponse } from '../text-stream/pipe-text-stream-to-response';
47
- import { LanguageModelRequestMetadata } from '../types';
48
- import {
45
+ import type { LanguageModelRequestMetadata } from '../types';
46
+ import type {
49
47
  CallWarning,
50
48
  FinishReason,
51
49
  LanguageModel,
52
50
  ToolChoice,
53
51
  } from '../types/language-model';
54
- import { ProviderMetadata } from '../types/provider-metadata';
52
+ import type { ProviderMetadata } from '../types/provider-metadata';
55
53
  import {
56
54
  addLanguageModelUsage,
57
55
  createNullLanguageModelUsage,
58
- LanguageModelUsage,
56
+ type LanguageModelUsage,
59
57
  } from '../types/usage';
60
- import { UIMessage } from '../ui';
58
+ import type { UIMessage } from '../ui';
61
59
  import { createUIMessageStreamResponse } from '../ui-message-stream/create-ui-message-stream-response';
62
60
  import { getResponseUIMessageId } from '../ui-message-stream/get-response-ui-message-id';
63
61
  import { handleUIMessageStreamFinish } from '../ui-message-stream/handle-ui-message-stream-finish';
64
62
  import { pipeUIMessageStreamToResponse } from '../ui-message-stream/pipe-ui-message-stream-to-response';
65
- import {
63
+ import type {
66
64
  InferUIMessageChunk,
67
65
  UIMessageChunk,
68
66
  } from '../ui-message-stream/ui-message-chunks';
69
- import { UIMessageStreamResponseInit } from '../ui-message-stream/ui-message-stream-response-init';
70
- import { InferUIMessageData, InferUIMessageMetadata } from '../ui/ui-messages';
67
+ import type { UIMessageStreamResponseInit } from '../ui-message-stream/ui-message-stream-response-init';
68
+ import type {
69
+ InferUIMessageData,
70
+ InferUIMessageMetadata,
71
+ } from '../ui/ui-messages';
71
72
  import {
72
- AsyncIterableStream,
73
73
  createAsyncIterableStream,
74
+ type AsyncIterableStream,
74
75
  } from '../util/async-iterable-stream';
75
76
  import type { Callback } from '../util/callback';
76
77
  import { consumeStream } from '../util/consume-stream';
77
78
  import { createStitchableStream } from '../util/create-stitchable-stream';
78
- import { DownloadFunction } from '../util/download/download-function';
79
+ import type { DownloadFunction } from '../util/download/download-function';
79
80
  import { mergeAbortSignals } from '../util/merge-abort-signals';
80
81
  import { mergeObjects } from '../util/merge-objects';
81
82
  import { notify } from '../util/notify';
@@ -83,7 +84,7 @@ import { now as originalNow } from '../util/now';
83
84
  import { prepareRetries } from '../util/prepare-retries';
84
85
  import type { ActiveTools } from './active-tools';
85
86
  import { collectToolApprovals } from './collect-tool-approvals';
86
- import { ContentPart } from './content-part';
87
+ import type { ContentPart } from './content-part';
87
88
  import type {
88
89
  OnLanguageModelCallEndCallback,
89
90
  OnLanguageModelCallStartCallback,
@@ -92,44 +93,44 @@ import { createExecuteToolsTransformation } from './create-execute-tools-transfo
92
93
  import { executeToolCall } from './execute-tool-call';
93
94
  import { filterActiveTools } from './filter-active-tools';
94
95
  import { invokeToolCallbacksFromStream } from './invoke-tool-callbacks-from-stream';
95
- import { Output, text } from './output';
96
- import {
96
+ import { text, type Output } from './output';
97
+ import type {
97
98
  InferCompleteOutput,
98
99
  InferElementOutput,
99
100
  InferPartialOutput,
100
101
  } from './output-utils';
101
- import { PrepareStepFunction } from './prepare-step';
102
+ import type { PrepareStepFunction } from './prepare-step';
102
103
  import { convertToReasoningOutputs } from './reasoning-output';
103
104
  import { createRestrictedTelemetryDispatcher } from './restricted-telemetry-dispatcher';
104
- import { ResponseMessage } from './response-message';
105
- import { DefaultStepResult, StepResult } from './step-result';
105
+ import type { ResponseMessage } from './response-message';
106
+ import { DefaultStepResult, type StepResult } from './step-result';
106
107
  import {
107
108
  isStepCount,
108
109
  isStopConditionMet,
109
- StopCondition,
110
+ type StopCondition,
110
111
  } from './stop-condition';
111
112
  import {
112
- LanguageModelStreamPart,
113
113
  streamLanguageModelCall,
114
+ type LanguageModelStreamPart,
114
115
  } from './stream-language-model-call';
115
- import {
116
+ import type {
116
117
  ConsumeStreamOptions,
117
118
  StreamTextResult,
118
119
  TextStreamPart,
119
120
  UIMessageStreamOptions,
120
121
  } from './stream-text-result';
121
122
  import { toResponseMessages } from './to-response-messages';
122
- import { ToolApprovalConfiguration } from './tool-approval-configuration';
123
- import { TypedToolCall } from './tool-call';
124
- import { ToolCallRepairFunction } from './tool-call-repair-function';
125
- import {
123
+ import type { ToolApprovalConfiguration } from './tool-approval-configuration';
124
+ import type { TypedToolCall } from './tool-call';
125
+ import type { ToolCallRepairFunction } from './tool-call-repair-function';
126
+ import type {
126
127
  OnToolExecutionEndCallback,
127
128
  OnToolExecutionStartCallback,
128
129
  } from './tool-execution-events';
129
- import { ToolOutput } from './tool-output';
130
- import { StaticToolOutputDenied } from './tool-output-denied';
131
- import { ToolsContextParameter } from './tools-context-parameter';
132
- import {
130
+ import type { ToolOutput } from './tool-output';
131
+ import type { StaticToolOutputDenied } from './tool-output-denied';
132
+ import type { ToolsContextParameter } from './tools-context-parameter';
133
+ import type {
133
134
  GenerateTextOnFinishCallback,
134
135
  GenerateTextOnStartCallback,
135
136
  GenerateTextOnStepFinishCallback,
@@ -1550,6 +1551,7 @@ class DefaultStreamTextResult<
1550
1551
  toolChoice: prepareStepResult?.toolChoice ?? toolChoice,
1551
1552
  system: stepSystem,
1552
1553
  messages: stepMessages,
1554
+ allowSystemInMessages,
1553
1555
  repairToolCall,
1554
1556
  abortSignal,
1555
1557
  headers,
@@ -1,11 +1,11 @@
1
- import {
1
+ import type {
2
2
  AssistantContent,
3
3
  AssistantModelMessage,
4
4
  ToolContent,
5
5
  ToolModelMessage,
6
6
  } from '../prompt';
7
7
  import { createToolModelOutput } from '../prompt/create-tool-model-output';
8
- import { ContentPart } from './content-part';
8
+ import type { ContentPart } from './content-part';
9
9
  import type { ToolSet } from '@ai-sdk/provider-utils';
10
10
 
11
11
  /**
@@ -1,4 +1,4 @@
1
- import {
1
+ import type {
2
2
  Context,
3
3
  InferToolContext,
4
4
  InferToolInput,
@@ -8,7 +8,7 @@ import {
8
8
  ToolExecutionOptions,
9
9
  ToolSet,
10
10
  } from '@ai-sdk/provider-utils';
11
- import { TypedToolCall } from './tool-call';
11
+ import type { TypedToolCall } from './tool-call';
12
12
 
13
13
  /**
14
14
  * The approval status of a tool configuration. This can be one of the following:
@@ -1,4 +1,4 @@
1
- import { TypedToolCall } from './tool-call';
1
+ import type { TypedToolCall } from './tool-call';
2
2
  import type { ToolSet } from '@ai-sdk/provider-utils';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { TypedToolCall } from './tool-call';
1
+ import type { TypedToolCall } from './tool-call';
2
2
  import type { ToolSet } from '@ai-sdk/provider-utils';
3
3
 
4
4
  /**
@@ -1,7 +1,7 @@
1
- import { JSONSchema7, LanguageModelV4ToolCall } from '@ai-sdk/provider';
2
- import { InvalidToolInputError } from '../error/invalid-tool-input-error';
3
- import { NoSuchToolError } from '../error/no-such-tool-error';
4
- import { ModelMessage, SystemModelMessage } from '../prompt';
1
+ import type { JSONSchema7, LanguageModelV4ToolCall } from '@ai-sdk/provider';
2
+ import type { InvalidToolInputError } from '../error/invalid-tool-input-error';
3
+ import type { NoSuchToolError } from '../error/no-such-tool-error';
4
+ import type { ModelMessage, SystemModelMessage } from '../prompt';
5
5
  import type { ToolSet } from '@ai-sdk/provider-utils';
6
6
 
7
7
  /**
@@ -1,7 +1,6 @@
1
- import { InferToolInput } from '@ai-sdk/provider-utils';
2
- import { ProviderMetadata } from '../types';
3
- import { ValueOf } from '../util/value-of';
4
- import type { ToolSet } from '@ai-sdk/provider-utils';
1
+ import type { InferToolInput, ToolSet } from '@ai-sdk/provider-utils';
2
+ import type { ProviderMetadata } from '../types';
3
+ import type { ValueOf } from '../util/value-of';
5
4
 
6
5
  type BaseToolCall = {
7
6
  type: 'tool-call';
@@ -1,7 +1,6 @@
1
- import { InferToolInput } from '@ai-sdk/provider-utils';
2
- import { ProviderMetadata } from '../types';
3
- import { ValueOf } from '../util/value-of';
4
- import type { ToolSet } from '@ai-sdk/provider-utils';
1
+ import type { InferToolInput, ToolSet } from '@ai-sdk/provider-utils';
2
+ import type { ProviderMetadata } from '../types';
3
+ import type { ValueOf } from '../util/value-of';
5
4
 
6
5
  export type StaticToolError<TOOLS extends ToolSet> = ValueOf<{
7
6
  [NAME in keyof TOOLS]: {
@@ -3,9 +3,9 @@ import type {
3
3
  ModelMessage,
4
4
  ToolSet,
5
5
  } from '@ai-sdk/provider-utils';
6
- import { Callback } from '../util/callback';
6
+ import type { Callback } from '../util/callback';
7
7
  import type { DynamicToolCall, StaticToolCall } from './tool-call';
8
- import { ToolOutput } from './tool-output';
8
+ import type { ToolOutput } from './tool-output';
9
9
  import type { ValueOf } from '../util/value-of';
10
10
 
11
11
  /**
@@ -1,4 +1,4 @@
1
- import { ValueOf } from '../util/value-of';
1
+ import type { ValueOf } from '../util/value-of';
2
2
  import type { ToolSet } from '@ai-sdk/provider-utils';
3
3
 
4
4
  /**
@@ -1,5 +1,5 @@
1
- import { TypedToolError } from './tool-error';
2
- import { TypedToolResult } from './tool-result';
1
+ import type { TypedToolError } from './tool-error';
2
+ import type { TypedToolResult } from './tool-result';
3
3
  import type { ToolSet } from '@ai-sdk/provider-utils';
4
4
 
5
5
  export type ToolOutput<TOOLS extends ToolSet> =
@@ -1,7 +1,10 @@
1
- import { InferToolInput, InferToolOutput } from '@ai-sdk/provider-utils';
2
- import { ProviderMetadata } from '../types';
3
- import { ValueOf } from '../../src/util/value-of';
4
- import type { ToolSet } from '@ai-sdk/provider-utils';
1
+ import type {
2
+ InferToolInput,
3
+ InferToolOutput,
4
+ ToolSet,
5
+ } from '@ai-sdk/provider-utils';
6
+ import type { ProviderMetadata } from '../types';
7
+ import type { ValueOf } from '../../src/util/value-of';
5
8
 
6
9
  export type StaticToolResult<TOOLS extends ToolSet> = ValueOf<{
7
10
  [NAME in keyof TOOLS]: {
@@ -1,4 +1,4 @@
1
- import {
1
+ import type {
2
2
  HasRequiredKey,
3
3
  InferToolSetContext,
4
4
  ToolSet,
@@ -1,5 +1,4 @@
1
- import { type FlexibleSchema, validateTypes } from '@ai-sdk/provider-utils';
2
-
1
+ import { validateTypes, type FlexibleSchema } from '@ai-sdk/provider-utils';
3
2
  /**
4
3
  * Validates a tool context value against the tool's optional context schema.
5
4
  *
@@ -1,7 +1,7 @@
1
- import { GeneratedFile } from '../generate-text';
2
- import { VideoModelProviderMetadata } from '../types/video-model';
3
- import { VideoModelResponseMetadata } from '../types/video-model-response-metadata';
4
- import { Warning } from '../types/warning';
1
+ import type { GeneratedFile } from '../generate-text';
2
+ import type { VideoModelProviderMetadata } from '../types/video-model';
3
+ import type { VideoModelResponseMetadata } from '../types/video-model-response-metadata';
4
+ import type { Warning } from '../types/warning';
5
5
 
6
6
  /**
7
7
  * The result of an `experimental_generateVideo` call.
@@ -6,9 +6,10 @@ import type {
6
6
  } from '@ai-sdk/provider';
7
7
  import {
8
8
  convertBase64ToUint8Array,
9
+ withUserAgentSuffix,
9
10
  type DataContent,
11
+ detectMediaType,
10
12
  type ProviderOptions,
11
- withUserAgentSuffix,
12
13
  } from '@ai-sdk/provider-utils';
13
14
  import { NoVideoGeneratedError } from '../error/no-video-generated-error';
14
15
  import {
@@ -20,11 +21,6 @@ import { resolveVideoModel } from '../model/resolve-model';
20
21
  import type { VideoModel } from '../types/video-model';
21
22
  import type { VideoModelResponseMetadata } from '../types/video-model-response-metadata';
22
23
  import type { Warning } from '../types/warning';
23
- import {
24
- detectMediaType,
25
- imageMediaTypeSignatures,
26
- videoMediaTypeSignatures,
27
- } from '../util/detect-media-type';
28
24
  import { createDownload } from '../util/download/create-download';
29
25
  import { prepareRetries } from '../util/prepare-retries';
30
26
  import { VERSION } from '../version';
@@ -224,7 +220,7 @@ export async function experimental_generateVideo({
224
220
  (isUsableMediaType(downloadedMediaType) && downloadedMediaType) ||
225
221
  detectMediaType({
226
222
  data,
227
- signatures: videoMediaTypeSignatures,
223
+ topLevelType: 'video',
228
224
  }) ||
229
225
  'video/mp4';
230
226
 
@@ -252,7 +248,7 @@ export async function experimental_generateVideo({
252
248
  videoData.mediaType ||
253
249
  detectMediaType({
254
250
  data: videoData.data,
255
- signatures: videoMediaTypeSignatures,
251
+ topLevelType: 'video',
256
252
  }) ||
257
253
  'video/mp4';
258
254
 
@@ -364,7 +360,7 @@ function normalizePrompt(promptArg: GenerateVideoPrompt): {
364
360
  const mediaType =
365
361
  detectMediaType({
366
362
  data: bytes,
367
- signatures: imageMediaTypeSignatures,
363
+ topLevelType: 'image',
368
364
  }) ?? 'image/png';
369
365
 
370
366
  image = {
@@ -377,7 +373,7 @@ function normalizePrompt(promptArg: GenerateVideoPrompt): {
377
373
  const mediaType =
378
374
  detectMediaType({
379
375
  data: dataContent,
380
- signatures: imageMediaTypeSignatures,
376
+ topLevelType: 'image',
381
377
  }) ?? 'image/png';
382
378
 
383
379
  image = {
package/src/global.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { ProviderV2, ProviderV3, ProviderV4 } from '@ai-sdk/provider';
2
- import { LogWarningsFunction } from './logger/log-warnings';
1
+ import type { ProviderV2, ProviderV3, ProviderV4 } from '@ai-sdk/provider';
2
+ import type { LogWarningsFunction } from './logger/log-warnings';
3
3
  import type { Telemetry } from './telemetry/telemetry';
4
4
 
5
5
  // add AI SDK default provider to the globalThis object
package/src/index.ts CHANGED
@@ -1,3 +1,6 @@
1
+ // import globals
2
+ import './global';
3
+
1
4
  // re-exports:
2
5
  export { createGateway, gateway, type GatewayModelId } from '@ai-sdk/gateway';
3
6
  export {
@@ -47,6 +50,3 @@ export * from './ui-message-stream';
47
50
  export * from './upload-file';
48
51
  export * from './upload-skill';
49
52
  export * from './util';
50
-
51
- // import globals
52
- import './global';
@@ -1,4 +1,4 @@
1
- import { Warning } from '../types';
1
+ import type { Warning } from '../types';
2
2
 
3
3
  /**
4
4
  * A function for logging warnings.
@@ -1,5 +1,5 @@
1
- import { JSONObject, LanguageModelV4FunctionTool } from '@ai-sdk/provider';
2
- import { LanguageModelMiddleware } from '../types';
1
+ import type { JSONObject, LanguageModelV4FunctionTool } from '@ai-sdk/provider';
2
+ import type { LanguageModelMiddleware } from '../types';
3
3
 
4
4
  function defaultFormatExample(example: { input: JSONObject }): string {
5
5
  return JSON.stringify(example.input);
@@ -1,5 +1,5 @@
1
- import { EmbeddingModelV4CallOptions } from '@ai-sdk/provider';
2
- import { EmbeddingModelMiddleware } from '../types';
1
+ import type { EmbeddingModelV4CallOptions } from '@ai-sdk/provider';
2
+ import type { EmbeddingModelMiddleware } from '../types';
3
3
  import { mergeObjects } from '../util/merge-objects';
4
4
 
5
5
  /**
@@ -1,5 +1,5 @@
1
- import { LanguageModelV4CallOptions } from '@ai-sdk/provider';
2
- import { LanguageModelMiddleware } from '../types';
1
+ import type { LanguageModelV4CallOptions } from '@ai-sdk/provider';
2
+ import type { LanguageModelMiddleware } from '../types';
3
3
  import { mergeObjects } from '../util/merge-objects';
4
4
 
5
5
  /**
@@ -2,7 +2,7 @@ import type {
2
2
  LanguageModelV4Content,
3
3
  LanguageModelV4StreamPart,
4
4
  } from '@ai-sdk/provider';
5
- import { LanguageModelMiddleware } from '../types/language-model-middleware';
5
+ import type { LanguageModelMiddleware } from '../types/language-model-middleware';
6
6
 
7
7
  /**
8
8
  * Default transform function that strips markdown code fences from text.
@@ -2,7 +2,7 @@ import type {
2
2
  LanguageModelV4Content,
3
3
  LanguageModelV4StreamPart,
4
4
  } from '@ai-sdk/provider';
5
- import { LanguageModelMiddleware } from '../types/language-model-middleware';
5
+ import type { LanguageModelMiddleware } from '../types/language-model-middleware';
6
6
  import { getPotentialStartIndex } from '../util/get-potential-start-index';
7
7
 
8
8
  /**
@@ -1,5 +1,5 @@
1
1
  import type { LanguageModelV4StreamPart } from '@ai-sdk/provider';
2
- import { LanguageModelMiddleware } from '../types';
2
+ import type { LanguageModelMiddleware } from '../types';
3
3
 
4
4
  /**
5
5
  * Simulates streaming chunks with the response from a generate call.
@@ -1,4 +1,4 @@
1
- import {
1
+ import type {
2
2
  EmbeddingModelV3,
3
3
  EmbeddingModelV4,
4
4
  EmbeddingModelV4CallOptions,
@@ -6,7 +6,7 @@ import {
6
6
  } from '@ai-sdk/provider';
7
7
  import { asArray } from '@ai-sdk/provider-utils';
8
8
  import { asEmbeddingModelV4 } from '../model/as-embedding-model-v4';
9
- import { EmbeddingModelMiddleware } from '../types';
9
+ import type { EmbeddingModelMiddleware } from '../types';
10
10
 
11
11
  /**
12
12
  * Wraps an EmbeddingModelV4 instance with middleware functionality.
@@ -1,4 +1,4 @@
1
- import {
1
+ import type {
2
2
  ImageModelV2,
3
3
  ImageModelV3,
4
4
  ImageModelV4,
@@ -7,7 +7,7 @@ import {
7
7
  } from '@ai-sdk/provider';
8
8
  import { asArray } from '@ai-sdk/provider-utils';
9
9
  import { asImageModelV4 } from '../model/as-image-model-v4';
10
- import { ImageModelMiddleware } from '../types';
10
+ import type { ImageModelMiddleware } from '../types';
11
11
 
12
12
  /**
13
13
  * Wraps an ImageModelV4 instance with middleware functionality.
@@ -1,4 +1,4 @@
1
- import {
1
+ import type {
2
2
  LanguageModelV2,
3
3
  LanguageModelV3,
4
4
  LanguageModelV4,
@@ -8,7 +8,7 @@ import {
8
8
  } from '@ai-sdk/provider';
9
9
  import { asArray } from '@ai-sdk/provider-utils';
10
10
  import { asLanguageModelV4 } from '../model/as-language-model-v4';
11
- import { LanguageModelMiddleware } from '../types';
11
+ import type { LanguageModelMiddleware } from '../types';
12
12
 
13
13
  /**
14
14
  * Wraps a LanguageModelV4 instance with middleware functionality.
@@ -1,6 +1,6 @@
1
1
  import type { ProviderV2, ProviderV3, ProviderV4 } from '@ai-sdk/provider';
2
- import { ImageModelMiddleware } from '../types/image-model-middleware';
3
- import { LanguageModelMiddleware } from '../types/language-model-middleware';
2
+ import type { ImageModelMiddleware } from '../types/image-model-middleware';
3
+ import type { LanguageModelMiddleware } from '../types/language-model-middleware';
4
4
  import { wrapImageModel } from './wrap-image-model';
5
5
  import { wrapLanguageModel } from './wrap-language-model';
6
6
  import { asProviderV4 } from '../model/as-provider-v4';
@@ -1,4 +1,4 @@
1
- import { EmbeddingModelV2, EmbeddingModelV3 } from '@ai-sdk/provider';
1
+ import type { EmbeddingModelV2, EmbeddingModelV3 } from '@ai-sdk/provider';
2
2
  import { logV2CompatibilityWarning } from '../util/log-v2-compatibility-warning';
3
3
 
4
4
  export function asEmbeddingModelV3(
@@ -1,4 +1,4 @@
1
- import {
1
+ import type {
2
2
  EmbeddingModelV2,
3
3
  EmbeddingModelV3,
4
4
  EmbeddingModelV4,
@@ -1,4 +1,4 @@
1
- import { ImageModelV2, ImageModelV3 } from '@ai-sdk/provider';
1
+ import type { ImageModelV2, ImageModelV3 } from '@ai-sdk/provider';
2
2
  import { logV2CompatibilityWarning } from '../util/log-v2-compatibility-warning';
3
3
 
4
4
  export function asImageModelV3(