@ai-sdk/provider 4.0.0-beta.13 → 4.0.0-beta.14

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 (121) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/index.d.ts +103 -37
  3. package/dist/index.js.map +1 -1
  4. package/package.json +1 -1
  5. package/src/embedding-model/v2/embedding-model-v2.ts +2 -2
  6. package/src/embedding-model/v3/embedding-model-v3-call-options.ts +1 -1
  7. package/src/embedding-model/v3/embedding-model-v3-result.ts +2 -2
  8. package/src/embedding-model/v3/embedding-model-v3.ts +2 -2
  9. package/src/embedding-model/v4/embedding-model-v4-call-options.ts +1 -1
  10. package/src/embedding-model/v4/embedding-model-v4-result.ts +2 -2
  11. package/src/embedding-model/v4/embedding-model-v4.ts +2 -2
  12. package/src/embedding-model-middleware/v3/embedding-model-v3-middleware.ts +2 -2
  13. package/src/embedding-model-middleware/v4/embedding-model-v4-middleware.ts +2 -2
  14. package/src/errors/no-such-provider-reference-error.ts +1 -1
  15. package/src/files/v4/files-v4-upload-file-call-options.ts +10 -3
  16. package/src/files/v4/files-v4-upload-file-result.ts +3 -3
  17. package/src/files/v4/files-v4.ts +2 -2
  18. package/src/image-model/v2/image-model-v2-call-options.ts +1 -1
  19. package/src/image-model/v2/image-model-v2-call-warning.ts +1 -1
  20. package/src/image-model/v2/image-model-v2.ts +3 -3
  21. package/src/image-model/v3/image-model-v3-call-options.ts +2 -2
  22. package/src/image-model/v3/image-model-v3-file.ts +1 -1
  23. package/src/image-model/v3/image-model-v3.ts +4 -4
  24. package/src/image-model/v4/image-model-v4-call-options.ts +2 -2
  25. package/src/image-model/v4/image-model-v4-file.ts +1 -1
  26. package/src/image-model/v4/image-model-v4-result.ts +3 -3
  27. package/src/image-model/v4/image-model-v4.ts +2 -2
  28. package/src/image-model-middleware/v3/image-model-v3-middleware.ts +2 -2
  29. package/src/image-model-middleware/v4/image-model-v4-middleware.ts +2 -2
  30. package/src/json-value/is-json.ts +1 -1
  31. package/src/language-model/v2/language-model-v2-call-options.ts +6 -6
  32. package/src/language-model/v2/language-model-v2-call-warning.ts +3 -3
  33. package/src/language-model/v2/language-model-v2-content.ts +6 -6
  34. package/src/language-model/v2/language-model-v2-function-tool.ts +2 -2
  35. package/src/language-model/v2/language-model-v2-prompt.ts +3 -3
  36. package/src/language-model/v2/language-model-v2-reasoning.ts +1 -1
  37. package/src/language-model/v2/language-model-v2-source.ts +1 -1
  38. package/src/language-model/v2/language-model-v2-stream-part.ts +9 -9
  39. package/src/language-model/v2/language-model-v2-text.ts +1 -1
  40. package/src/language-model/v2/language-model-v2-tool-call.ts +1 -1
  41. package/src/language-model/v2/language-model-v2-tool-result.ts +1 -1
  42. package/src/language-model/v2/language-model-v2.ts +9 -9
  43. package/src/language-model/v3/language-model-v3-call-options.ts +6 -6
  44. package/src/language-model/v3/language-model-v3-content.ts +7 -7
  45. package/src/language-model/v3/language-model-v3-file.ts +1 -1
  46. package/src/language-model/v3/language-model-v3-function-tool.ts +3 -3
  47. package/src/language-model/v3/language-model-v3-generate-result.ts +6 -6
  48. package/src/language-model/v3/language-model-v3-prompt.ts +3 -3
  49. package/src/language-model/v3/language-model-v3-reasoning.ts +1 -1
  50. package/src/language-model/v3/language-model-v3-source.ts +1 -1
  51. package/src/language-model/v3/language-model-v3-stream-part.ts +10 -10
  52. package/src/language-model/v3/language-model-v3-stream-result.ts +2 -2
  53. package/src/language-model/v3/language-model-v3-text.ts +1 -1
  54. package/src/language-model/v3/language-model-v3-tool-approval-request.ts +1 -1
  55. package/src/language-model/v3/language-model-v3-tool-call.ts +1 -1
  56. package/src/language-model/v3/language-model-v3-tool-result.ts +2 -2
  57. package/src/language-model/v3/language-model-v3-usage.ts +1 -1
  58. package/src/language-model/v3/language-model-v3.ts +3 -3
  59. package/src/language-model/v4/index.ts +0 -1
  60. package/src/language-model/v4/language-model-v4-call-options.ts +6 -6
  61. package/src/language-model/v4/language-model-v4-content.ts +9 -9
  62. package/src/language-model/v4/language-model-v4-custom-content.ts +1 -1
  63. package/src/language-model/v4/language-model-v4-file.ts +10 -3
  64. package/src/language-model/v4/language-model-v4-function-tool.ts +3 -3
  65. package/src/language-model/v4/language-model-v4-generate-result.ts +6 -6
  66. package/src/language-model/v4/language-model-v4-prompt.ts +27 -11
  67. package/src/language-model/v4/language-model-v4-reasoning-file.ts +10 -3
  68. package/src/language-model/v4/language-model-v4-reasoning.ts +1 -1
  69. package/src/language-model/v4/language-model-v4-source.ts +1 -1
  70. package/src/language-model/v4/language-model-v4-stream-part.ts +12 -12
  71. package/src/language-model/v4/language-model-v4-stream-result.ts +2 -2
  72. package/src/language-model/v4/language-model-v4-text.ts +1 -1
  73. package/src/language-model/v4/language-model-v4-tool-approval-request.ts +1 -1
  74. package/src/language-model/v4/language-model-v4-tool-call.ts +1 -1
  75. package/src/language-model/v4/language-model-v4-tool-result.ts +2 -2
  76. package/src/language-model/v4/language-model-v4-usage.ts +1 -1
  77. package/src/language-model/v4/language-model-v4.ts +3 -3
  78. package/src/language-model-middleware/v2/language-model-v2-middleware.ts +2 -2
  79. package/src/language-model-middleware/v3/language-model-v3-middleware.ts +4 -4
  80. package/src/language-model-middleware/v4/language-model-v4-middleware.ts +4 -4
  81. package/src/provider/v2/provider-v2.ts +5 -5
  82. package/src/provider/v3/provider-v3.ts +6 -6
  83. package/src/provider/v4/provider-v4.ts +8 -8
  84. package/src/reranking-model/v3/reranking-model-v3-call-options.ts +2 -2
  85. package/src/reranking-model/v3/reranking-model-v3.ts +2 -2
  86. package/src/reranking-model/v4/reranking-model-v4-call-options.ts +2 -2
  87. package/src/reranking-model/v4/reranking-model-v4-result.ts +1 -1
  88. package/src/reranking-model/v4/reranking-model-v4.ts +2 -2
  89. package/src/shared/v2/shared-v2-provider-metadata.ts +1 -1
  90. package/src/shared/v2/shared-v2-provider-options.ts +1 -1
  91. package/src/shared/v3/shared-v3-provider-metadata.ts +1 -1
  92. package/src/shared/v3/shared-v3-provider-options.ts +1 -1
  93. package/src/shared/v4/index.ts +1 -0
  94. package/src/shared/v4/shared-v4-file-data.ts +49 -0
  95. package/src/shared/v4/shared-v4-provider-metadata.ts +1 -1
  96. package/src/shared/v4/shared-v4-provider-options.ts +1 -1
  97. package/src/shared/v4/shared-v4-provider-reference.ts +8 -1
  98. package/src/skills/v4/skills-v4-upload-skill-call-options.ts +10 -3
  99. package/src/skills/v4/skills-v4-upload-skill-result.ts +3 -3
  100. package/src/skills/v4/skills-v4.ts +2 -2
  101. package/src/speech-model/v2/speech-model-v2-call-options.ts +1 -1
  102. package/src/speech-model/v2/speech-model-v2-call-warning.ts +1 -1
  103. package/src/speech-model/v2/speech-model-v2.ts +4 -4
  104. package/src/speech-model/v3/speech-model-v3-call-options.ts +1 -1
  105. package/src/speech-model/v3/speech-model-v3.ts +4 -4
  106. package/src/speech-model/v4/speech-model-v4-call-options.ts +1 -1
  107. package/src/speech-model/v4/speech-model-v4-result.ts +3 -3
  108. package/src/speech-model/v4/speech-model-v4.ts +2 -2
  109. package/src/transcription-model/v2/transcription-model-v2-call-options.ts +1 -1
  110. package/src/transcription-model/v2/transcription-model-v2-call-warning.ts +1 -1
  111. package/src/transcription-model/v2/transcription-model-v2.ts +4 -4
  112. package/src/transcription-model/v3/transcription-model-v3-call-options.ts +1 -1
  113. package/src/transcription-model/v3/transcription-model-v3.ts +4 -4
  114. package/src/transcription-model/v4/transcription-model-v4-call-options.ts +1 -1
  115. package/src/transcription-model/v4/transcription-model-v4-result.ts +3 -3
  116. package/src/transcription-model/v4/transcription-model-v4.ts +2 -2
  117. package/src/video-model/v3/video-model-v3-call-options.ts +2 -2
  118. package/src/video-model/v3/video-model-v3-file.ts +1 -1
  119. package/src/video-model/v4/video-model-v4-call-options.ts +2 -2
  120. package/src/video-model/v4/video-model-v4-file.ts +1 -1
  121. package/src/language-model/v4/language-model-v4-data-content.ts +0 -4
@@ -1,5 +1,5 @@
1
- import { ImageModelV4CallOptions } from './image-model-v4-call-options';
2
- import { ImageModelV4Result } from './image-model-v4-result';
1
+ import type { ImageModelV4CallOptions } from './image-model-v4-call-options';
2
+ import type { ImageModelV4Result } from './image-model-v4-result';
3
3
 
4
4
  type GetMaxImagesPerCallFunction = (options: {
5
5
  modelId: string;
@@ -1,5 +1,5 @@
1
- import { ImageModelV3 } from '../../image-model/v3/image-model-v3';
2
- import { ImageModelV3CallOptions } from '../../image-model/v3/image-model-v3-call-options';
1
+ import type { ImageModelV3 } from '../../image-model/v3/image-model-v3';
2
+ import type { ImageModelV3CallOptions } from '../../image-model/v3/image-model-v3-call-options';
3
3
 
4
4
  /**
5
5
  * Middleware for ImageModelV3.
@@ -1,5 +1,5 @@
1
- import { ImageModelV4 } from '../../image-model/v4/image-model-v4';
2
- import { ImageModelV4CallOptions } from '../../image-model/v4/image-model-v4-call-options';
1
+ import type { ImageModelV4 } from '../../image-model/v4/image-model-v4';
2
+ import type { ImageModelV4CallOptions } from '../../image-model/v4/image-model-v4-call-options';
3
3
 
4
4
  /**
5
5
  * Middleware for ImageModelV4.
@@ -1,4 +1,4 @@
1
- import { JSONArray, JSONObject, JSONValue } from './json-value';
1
+ import type { JSONArray, JSONObject, JSONValue } from './json-value';
2
2
 
3
3
  export function isJSONValue(value: unknown): value is JSONValue {
4
4
  if (
@@ -1,9 +1,9 @@
1
- import { JSONSchema7 } from 'json-schema';
2
- import { SharedV2ProviderOptions } from '../../shared/v2/shared-v2-provider-options';
3
- import { LanguageModelV2FunctionTool } from './language-model-v2-function-tool';
4
- import { LanguageModelV2Prompt } from './language-model-v2-prompt';
5
- import { LanguageModelV2ProviderDefinedTool } from './language-model-v2-provider-defined-tool';
6
- import { LanguageModelV2ToolChoice } from './language-model-v2-tool-choice';
1
+ import type { JSONSchema7 } from 'json-schema';
2
+ import type { SharedV2ProviderOptions } from '../../shared/v2/shared-v2-provider-options';
3
+ import type { LanguageModelV2FunctionTool } from './language-model-v2-function-tool';
4
+ import type { LanguageModelV2Prompt } from './language-model-v2-prompt';
5
+ import type { LanguageModelV2ProviderDefinedTool } from './language-model-v2-provider-defined-tool';
6
+ import type { LanguageModelV2ToolChoice } from './language-model-v2-tool-choice';
7
7
 
8
8
  export type LanguageModelV2CallOptions = {
9
9
  /**
@@ -1,6 +1,6 @@
1
- import { LanguageModelV2CallOptions } from './language-model-v2-call-options';
2
- import { LanguageModelV2FunctionTool } from './language-model-v2-function-tool';
3
- import { LanguageModelV2ProviderDefinedTool } from './language-model-v2-provider-defined-tool';
1
+ import type { LanguageModelV2CallOptions } from './language-model-v2-call-options';
2
+ import type { LanguageModelV2FunctionTool } from './language-model-v2-function-tool';
3
+ import type { LanguageModelV2ProviderDefinedTool } from './language-model-v2-provider-defined-tool';
4
4
 
5
5
  /**
6
6
  * Warning from the model provider for this call. The call will proceed, but e.g.
@@ -1,9 +1,9 @@
1
- import { LanguageModelV2File } from './language-model-v2-file';
2
- import { LanguageModelV2Reasoning } from './language-model-v2-reasoning';
3
- import { LanguageModelV2Source } from './language-model-v2-source';
4
- import { LanguageModelV2Text } from './language-model-v2-text';
5
- import { LanguageModelV2ToolCall } from './language-model-v2-tool-call';
6
- import { LanguageModelV2ToolResult } from './language-model-v2-tool-result';
1
+ import type { LanguageModelV2File } from './language-model-v2-file';
2
+ import type { LanguageModelV2Reasoning } from './language-model-v2-reasoning';
3
+ import type { LanguageModelV2Source } from './language-model-v2-source';
4
+ import type { LanguageModelV2Text } from './language-model-v2-text';
5
+ import type { LanguageModelV2ToolCall } from './language-model-v2-tool-call';
6
+ import type { LanguageModelV2ToolResult } from './language-model-v2-tool-result';
7
7
 
8
8
  export type LanguageModelV2Content =
9
9
  | LanguageModelV2Text
@@ -1,5 +1,5 @@
1
- import { JSONSchema7 } from 'json-schema';
2
- import { SharedV2ProviderOptions } from '../../shared';
1
+ import type { JSONSchema7 } from 'json-schema';
2
+ import type { SharedV2ProviderOptions } from '../../shared';
3
3
 
4
4
  /**
5
5
  * A tool has a name, a description, and a set of parameters.
@@ -1,6 +1,6 @@
1
- import { JSONValue } from '../../json-value/json-value';
2
- import { SharedV2ProviderOptions } from '../../shared/v2/shared-v2-provider-options';
3
- import { LanguageModelV2DataContent } from './language-model-v2-data-content';
1
+ import type { JSONValue } from '../../json-value/json-value';
2
+ import type { SharedV2ProviderOptions } from '../../shared/v2/shared-v2-provider-options';
3
+ import type { LanguageModelV2DataContent } from './language-model-v2-data-content';
4
4
 
5
5
  /**
6
6
  * A prompt is a list of messages.
@@ -1,4 +1,4 @@
1
- import { SharedV2ProviderMetadata } from '../../shared';
1
+ import type { SharedV2ProviderMetadata } from '../../shared';
2
2
 
3
3
  /**
4
4
  * Reasoning that the model has generated.
@@ -1,4 +1,4 @@
1
- import { SharedV2ProviderMetadata } from '../../shared/v2/shared-v2-provider-metadata';
1
+ import type { SharedV2ProviderMetadata } from '../../shared/v2/shared-v2-provider-metadata';
2
2
 
3
3
  /**
4
4
  * A source that has been used as input to generate the response.
@@ -1,12 +1,12 @@
1
- import { SharedV2ProviderMetadata } from '../../shared/v2/shared-v2-provider-metadata';
2
- import { LanguageModelV2CallWarning } from './language-model-v2-call-warning';
3
- import { LanguageModelV2File } from './language-model-v2-file';
4
- import { LanguageModelV2FinishReason } from './language-model-v2-finish-reason';
5
- import { LanguageModelV2ResponseMetadata } from './language-model-v2-response-metadata';
6
- import { LanguageModelV2Source } from './language-model-v2-source';
7
- import { LanguageModelV2ToolCall } from './language-model-v2-tool-call';
8
- import { LanguageModelV2ToolResult } from './language-model-v2-tool-result';
9
- import { LanguageModelV2Usage } from './language-model-v2-usage';
1
+ import type { SharedV2ProviderMetadata } from '../../shared/v2/shared-v2-provider-metadata';
2
+ import type { LanguageModelV2CallWarning } from './language-model-v2-call-warning';
3
+ import type { LanguageModelV2File } from './language-model-v2-file';
4
+ import type { LanguageModelV2FinishReason } from './language-model-v2-finish-reason';
5
+ import type { LanguageModelV2ResponseMetadata } from './language-model-v2-response-metadata';
6
+ import type { LanguageModelV2Source } from './language-model-v2-source';
7
+ import type { LanguageModelV2ToolCall } from './language-model-v2-tool-call';
8
+ import type { LanguageModelV2ToolResult } from './language-model-v2-tool-result';
9
+ import type { LanguageModelV2Usage } from './language-model-v2-usage';
10
10
 
11
11
  export type LanguageModelV2StreamPart =
12
12
  // Text blocks:
@@ -1,4 +1,4 @@
1
- import { SharedV2ProviderMetadata } from '../../shared/v2/shared-v2-provider-metadata';
1
+ import type { SharedV2ProviderMetadata } from '../../shared/v2/shared-v2-provider-metadata';
2
2
 
3
3
  /**
4
4
  * Text that the model has generated.
@@ -1,4 +1,4 @@
1
- import { SharedV2ProviderMetadata } from '../../shared/v2/shared-v2-provider-metadata';
1
+ import type { SharedV2ProviderMetadata } from '../../shared/v2/shared-v2-provider-metadata';
2
2
 
3
3
  /**
4
4
  * Tool calls that the model has generated.
@@ -1,4 +1,4 @@
1
- import { SharedV2ProviderMetadata } from '../../shared/v2/shared-v2-provider-metadata';
1
+ import type { SharedV2ProviderMetadata } from '../../shared/v2/shared-v2-provider-metadata';
2
2
 
3
3
  /**
4
4
  * Result of a tool call that has been executed by the provider.
@@ -1,12 +1,12 @@
1
- import { SharedV2Headers } from '../../shared';
2
- import { SharedV2ProviderMetadata } from '../../shared/v2/shared-v2-provider-metadata';
3
- import { LanguageModelV2CallOptions } from './language-model-v2-call-options';
4
- import { LanguageModelV2CallWarning } from './language-model-v2-call-warning';
5
- import { LanguageModelV2Content } from './language-model-v2-content';
6
- import { LanguageModelV2FinishReason } from './language-model-v2-finish-reason';
7
- import { LanguageModelV2ResponseMetadata } from './language-model-v2-response-metadata';
8
- import { LanguageModelV2StreamPart } from './language-model-v2-stream-part';
9
- import { LanguageModelV2Usage } from './language-model-v2-usage';
1
+ import type { SharedV2Headers } from '../../shared';
2
+ import type { SharedV2ProviderMetadata } from '../../shared/v2/shared-v2-provider-metadata';
3
+ import type { LanguageModelV2CallOptions } from './language-model-v2-call-options';
4
+ import type { LanguageModelV2CallWarning } from './language-model-v2-call-warning';
5
+ import type { LanguageModelV2Content } from './language-model-v2-content';
6
+ import type { LanguageModelV2FinishReason } from './language-model-v2-finish-reason';
7
+ import type { LanguageModelV2ResponseMetadata } from './language-model-v2-response-metadata';
8
+ import type { LanguageModelV2StreamPart } from './language-model-v2-stream-part';
9
+ import type { LanguageModelV2Usage } from './language-model-v2-usage';
10
10
 
11
11
  /**
12
12
  * Specification for a language model that implements the language model interface version 2.
@@ -1,9 +1,9 @@
1
- import { JSONSchema7 } from 'json-schema';
2
- import { SharedV3ProviderOptions } from '../../shared/v3/shared-v3-provider-options';
3
- import { LanguageModelV3FunctionTool } from './language-model-v3-function-tool';
4
- import { LanguageModelV3Prompt } from './language-model-v3-prompt';
5
- import { LanguageModelV3ProviderTool } from './language-model-v3-provider-tool';
6
- import { LanguageModelV3ToolChoice } from './language-model-v3-tool-choice';
1
+ import type { JSONSchema7 } from 'json-schema';
2
+ import type { SharedV3ProviderOptions } from '../../shared/v3/shared-v3-provider-options';
3
+ import type { LanguageModelV3FunctionTool } from './language-model-v3-function-tool';
4
+ import type { LanguageModelV3Prompt } from './language-model-v3-prompt';
5
+ import type { LanguageModelV3ProviderTool } from './language-model-v3-provider-tool';
6
+ import type { LanguageModelV3ToolChoice } from './language-model-v3-tool-choice';
7
7
 
8
8
  export type LanguageModelV3CallOptions = {
9
9
  /**
@@ -1,10 +1,10 @@
1
- import { LanguageModelV3File } from './language-model-v3-file';
2
- import { LanguageModelV3Reasoning } from './language-model-v3-reasoning';
3
- import { LanguageModelV3Source } from './language-model-v3-source';
4
- import { LanguageModelV3Text } from './language-model-v3-text';
5
- import { LanguageModelV3ToolApprovalRequest } from './language-model-v3-tool-approval-request';
6
- import { LanguageModelV3ToolCall } from './language-model-v3-tool-call';
7
- import { LanguageModelV3ToolResult } from './language-model-v3-tool-result';
1
+ import type { LanguageModelV3File } from './language-model-v3-file';
2
+ import type { LanguageModelV3Reasoning } from './language-model-v3-reasoning';
3
+ import type { LanguageModelV3Source } from './language-model-v3-source';
4
+ import type { LanguageModelV3Text } from './language-model-v3-text';
5
+ import type { LanguageModelV3ToolApprovalRequest } from './language-model-v3-tool-approval-request';
6
+ import type { LanguageModelV3ToolCall } from './language-model-v3-tool-call';
7
+ import type { LanguageModelV3ToolResult } from './language-model-v3-tool-result';
8
8
 
9
9
  export type LanguageModelV3Content =
10
10
  | LanguageModelV3Text
@@ -1,4 +1,4 @@
1
- import { SharedV3ProviderMetadata } from '../../shared';
1
+ import type { SharedV3ProviderMetadata } from '../../shared';
2
2
 
3
3
  /**
4
4
  * A file that has been generated by the model.
@@ -1,6 +1,6 @@
1
- import { JSONSchema7 } from 'json-schema';
2
- import { SharedV3ProviderOptions } from '../../shared';
3
- import { JSONObject } from '../../json-value';
1
+ import type { JSONSchema7 } from 'json-schema';
2
+ import type { SharedV3ProviderOptions } from '../../shared';
3
+ import type { JSONObject } from '../../json-value';
4
4
 
5
5
  /**
6
6
  * A tool has a name, a description, and a set of parameters.
@@ -1,9 +1,9 @@
1
- import { SharedV3Headers, SharedV3Warning } from '../../shared';
2
- import { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
3
- import { LanguageModelV3Content } from './language-model-v3-content';
4
- import { LanguageModelV3FinishReason } from './language-model-v3-finish-reason';
5
- import { LanguageModelV3ResponseMetadata } from './language-model-v3-response-metadata';
6
- import { LanguageModelV3Usage } from './language-model-v3-usage';
1
+ import type { SharedV3Headers, SharedV3Warning } from '../../shared';
2
+ import type { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
3
+ import type { LanguageModelV3Content } from './language-model-v3-content';
4
+ import type { LanguageModelV3FinishReason } from './language-model-v3-finish-reason';
5
+ import type { LanguageModelV3ResponseMetadata } from './language-model-v3-response-metadata';
6
+ import type { LanguageModelV3Usage } from './language-model-v3-usage';
7
7
 
8
8
  /**
9
9
  * The result of a language model doGenerate call.
@@ -1,6 +1,6 @@
1
- import { JSONValue } from '../../json-value/json-value';
2
- import { SharedV3ProviderOptions } from '../../shared/v3/shared-v3-provider-options';
3
- import { LanguageModelV3DataContent } from './language-model-v3-data-content';
1
+ import type { JSONValue } from '../../json-value/json-value';
2
+ import type { SharedV3ProviderOptions } from '../../shared/v3/shared-v3-provider-options';
3
+ import type { LanguageModelV3DataContent } from './language-model-v3-data-content';
4
4
 
5
5
  /**
6
6
  * A prompt is a list of messages.
@@ -1,4 +1,4 @@
1
- import { SharedV3ProviderMetadata } from '../../shared';
1
+ import type { SharedV3ProviderMetadata } from '../../shared';
2
2
 
3
3
  /**
4
4
  * Reasoning that the model has generated.
@@ -1,4 +1,4 @@
1
- import { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
1
+ import type { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
2
2
 
3
3
  /**
4
4
  * A source that has been used as input to generate the response.
@@ -1,13 +1,13 @@
1
- import { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
2
- import { SharedV3Warning } from '../../shared/v3/shared-v3-warning';
3
- import { LanguageModelV3File } from './language-model-v3-file';
4
- import { LanguageModelV3FinishReason } from './language-model-v3-finish-reason';
5
- import { LanguageModelV3ResponseMetadata } from './language-model-v3-response-metadata';
6
- import { LanguageModelV3Source } from './language-model-v3-source';
7
- import { LanguageModelV3ToolApprovalRequest } from './language-model-v3-tool-approval-request';
8
- import { LanguageModelV3ToolCall } from './language-model-v3-tool-call';
9
- import { LanguageModelV3ToolResult } from './language-model-v3-tool-result';
10
- import { LanguageModelV3Usage } from './language-model-v3-usage';
1
+ import type { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
2
+ import type { SharedV3Warning } from '../../shared/v3/shared-v3-warning';
3
+ import type { LanguageModelV3File } from './language-model-v3-file';
4
+ import type { LanguageModelV3FinishReason } from './language-model-v3-finish-reason';
5
+ import type { LanguageModelV3ResponseMetadata } from './language-model-v3-response-metadata';
6
+ import type { LanguageModelV3Source } from './language-model-v3-source';
7
+ import type { LanguageModelV3ToolApprovalRequest } from './language-model-v3-tool-approval-request';
8
+ import type { LanguageModelV3ToolCall } from './language-model-v3-tool-call';
9
+ import type { LanguageModelV3ToolResult } from './language-model-v3-tool-result';
10
+ import type { LanguageModelV3Usage } from './language-model-v3-usage';
11
11
 
12
12
  export type LanguageModelV3StreamPart =
13
13
  // Text blocks:
@@ -1,5 +1,5 @@
1
- import { SharedV3Headers } from '../../shared';
2
- import { LanguageModelV3StreamPart } from './language-model-v3-stream-part';
1
+ import type { SharedV3Headers } from '../../shared';
2
+ import type { LanguageModelV3StreamPart } from './language-model-v3-stream-part';
3
3
 
4
4
  /**
5
5
  * The result of a language model doStream call.
@@ -1,4 +1,4 @@
1
- import { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
1
+ import type { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
2
2
 
3
3
  /**
4
4
  * Text that the model has generated.
@@ -1,4 +1,4 @@
1
- import { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
1
+ import type { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
2
2
 
3
3
  /**
4
4
  * Tool approval request emitted by a provider for a provider-executed tool call.
@@ -1,4 +1,4 @@
1
- import { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
1
+ import type { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
2
2
 
3
3
  /**
4
4
  * Tool calls that the model has generated.
@@ -1,5 +1,5 @@
1
- import { JSONValue } from '../../json-value';
2
- import { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
1
+ import type { JSONValue } from '../../json-value';
2
+ import type { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
3
3
 
4
4
  /**
5
5
  * Result of a tool call that has been executed by the provider.
@@ -1,4 +1,4 @@
1
- import { JSONObject } from '../../json-value';
1
+ import type { JSONObject } from '../../json-value';
2
2
 
3
3
  /**
4
4
  * Usage information for a language model call.
@@ -1,6 +1,6 @@
1
- import { LanguageModelV3CallOptions } from './language-model-v3-call-options';
2
- import { LanguageModelV3GenerateResult } from './language-model-v3-generate-result';
3
- import { LanguageModelV3StreamResult } from './language-model-v3-stream-result';
1
+ import type { LanguageModelV3CallOptions } from './language-model-v3-call-options';
2
+ import type { LanguageModelV3GenerateResult } from './language-model-v3-generate-result';
3
+ import type { LanguageModelV3StreamResult } from './language-model-v3-stream-result';
4
4
 
5
5
  /**
6
6
  * Specification for a language model that implements the language model interface version 3.
@@ -2,7 +2,6 @@ export * from './language-model-v4';
2
2
  export * from './language-model-v4-call-options';
3
3
  export * from './language-model-v4-content';
4
4
  export * from './language-model-v4-custom-content';
5
- export * from './language-model-v4-data-content';
6
5
  export * from './language-model-v4-file';
7
6
  export * from './language-model-v4-finish-reason';
8
7
  export * from './language-model-v4-function-tool';
@@ -1,9 +1,9 @@
1
- import { JSONSchema7 } from 'json-schema';
2
- import { SharedV4ProviderOptions } from '../../shared/v4/shared-v4-provider-options';
3
- import { LanguageModelV4FunctionTool } from './language-model-v4-function-tool';
4
- import { LanguageModelV4Prompt } from './language-model-v4-prompt';
5
- import { LanguageModelV4ProviderTool } from './language-model-v4-provider-tool';
6
- import { LanguageModelV4ToolChoice } from './language-model-v4-tool-choice';
1
+ import type { JSONSchema7 } from 'json-schema';
2
+ import type { SharedV4ProviderOptions } from '../../shared/v4/shared-v4-provider-options';
3
+ import type { LanguageModelV4FunctionTool } from './language-model-v4-function-tool';
4
+ import type { LanguageModelV4Prompt } from './language-model-v4-prompt';
5
+ import type { LanguageModelV4ProviderTool } from './language-model-v4-provider-tool';
6
+ import type { LanguageModelV4ToolChoice } from './language-model-v4-tool-choice';
7
7
 
8
8
  export type LanguageModelV4CallOptions = {
9
9
  /**
@@ -1,12 +1,12 @@
1
- import { LanguageModelV4CustomContent } from './language-model-v4-custom-content';
2
- import { LanguageModelV4File } from './language-model-v4-file';
3
- import { LanguageModelV4Reasoning } from './language-model-v4-reasoning';
4
- import { LanguageModelV4ReasoningFile } from './language-model-v4-reasoning-file';
5
- import { LanguageModelV4Source } from './language-model-v4-source';
6
- import { LanguageModelV4Text } from './language-model-v4-text';
7
- import { LanguageModelV4ToolApprovalRequest } from './language-model-v4-tool-approval-request';
8
- import { LanguageModelV4ToolCall } from './language-model-v4-tool-call';
9
- import { LanguageModelV4ToolResult } from './language-model-v4-tool-result';
1
+ import type { LanguageModelV4CustomContent } from './language-model-v4-custom-content';
2
+ import type { LanguageModelV4File } from './language-model-v4-file';
3
+ import type { LanguageModelV4Reasoning } from './language-model-v4-reasoning';
4
+ import type { LanguageModelV4ReasoningFile } from './language-model-v4-reasoning-file';
5
+ import type { LanguageModelV4Source } from './language-model-v4-source';
6
+ import type { LanguageModelV4Text } from './language-model-v4-text';
7
+ import type { LanguageModelV4ToolApprovalRequest } from './language-model-v4-tool-approval-request';
8
+ import type { LanguageModelV4ToolCall } from './language-model-v4-tool-call';
9
+ import type { LanguageModelV4ToolResult } from './language-model-v4-tool-result';
10
10
 
11
11
  export type LanguageModelV4Content =
12
12
  | LanguageModelV4Text
@@ -1,4 +1,4 @@
1
- import { SharedV4ProviderMetadata } from '../../shared/v4/shared-v4-provider-metadata';
1
+ import type { SharedV4ProviderMetadata } from '../../shared/v4/shared-v4-provider-metadata';
2
2
 
3
3
  /**
4
4
  * A provider-specific content block that does not map to another standardized
@@ -1,4 +1,8 @@
1
- import { SharedV4ProviderMetadata } from '../../shared';
1
+ import type {
2
+ SharedV4FileDataData,
3
+ SharedV4FileDataUrl,
4
+ SharedV4ProviderMetadata,
5
+ } from '../../shared';
2
6
 
3
7
  /**
4
8
  * A file that has been generated by the model.
@@ -16,14 +20,17 @@ export type LanguageModelV4File = {
16
20
  mediaType: string;
17
21
 
18
22
  /**
19
- * Generated file data as base64 encoded strings or binary data.
23
+ * Generated file data as a tagged discriminated union:
24
+ *
25
+ * - `{ type: 'data', data }`: raw bytes (Uint8Array) or base64-encoded string.
26
+ * - `{ type: 'url', url }`: a URL that points to the file.
20
27
  *
21
28
  * The file data should be returned without any unnecessary conversion.
22
29
  * If the API returns base64 encoded strings, the file data should be returned
23
30
  * as base64 encoded strings. If the API returns binary data, the file data should
24
31
  * be returned as binary data.
25
32
  */
26
- data: string | Uint8Array;
33
+ data: SharedV4FileDataData | SharedV4FileDataUrl;
27
34
 
28
35
  /**
29
36
  * Optional provider-specific metadata for the file part.
@@ -1,6 +1,6 @@
1
- import { JSONSchema7 } from 'json-schema';
2
- import { SharedV4ProviderOptions } from '../../shared';
3
- import { JSONObject } from '../../json-value';
1
+ import type { JSONSchema7 } from 'json-schema';
2
+ import type { SharedV4ProviderOptions } from '../../shared';
3
+ import type { JSONObject } from '../../json-value';
4
4
 
5
5
  /**
6
6
  * A tool has a name, a description, and a set of parameters.
@@ -1,9 +1,9 @@
1
- import { SharedV4Headers, SharedV4Warning } from '../../shared';
2
- import { SharedV4ProviderMetadata } from '../../shared/v4/shared-v4-provider-metadata';
3
- import { LanguageModelV4Content } from './language-model-v4-content';
4
- import { LanguageModelV4FinishReason } from './language-model-v4-finish-reason';
5
- import { LanguageModelV4ResponseMetadata } from './language-model-v4-response-metadata';
6
- import { LanguageModelV4Usage } from './language-model-v4-usage';
1
+ import type { SharedV4Headers, SharedV4Warning } from '../../shared';
2
+ import type { SharedV4ProviderMetadata } from '../../shared/v4/shared-v4-provider-metadata';
3
+ import type { LanguageModelV4Content } from './language-model-v4-content';
4
+ import type { LanguageModelV4FinishReason } from './language-model-v4-finish-reason';
5
+ import type { LanguageModelV4ResponseMetadata } from './language-model-v4-response-metadata';
6
+ import type { LanguageModelV4Usage } from './language-model-v4-usage';
7
7
 
8
8
  /**
9
9
  * The result of a language model doGenerate call.
@@ -1,7 +1,11 @@
1
- import { JSONValue } from '../../json-value/json-value';
2
- import { SharedV4ProviderOptions } from '../../shared/v4/shared-v4-provider-options';
3
- import { SharedV4ProviderReference } from '../../shared/v4/shared-v4-provider-reference';
4
- import { LanguageModelV4DataContent } from './language-model-v4-data-content';
1
+ import type { JSONValue } from '../../json-value/json-value';
2
+ import type {
3
+ SharedV4FileData,
4
+ SharedV4FileDataData,
5
+ SharedV4FileDataUrl,
6
+ } from '../../shared/v4/shared-v4-file-data';
7
+ import type { SharedV4ProviderOptions } from '../../shared/v4/shared-v4-provider-options';
8
+ import type { SharedV4ProviderReference } from '../../shared/v4/shared-v4-provider-reference';
5
9
 
6
10
  /**
7
11
  * A prompt is a list of messages.
@@ -100,9 +104,12 @@ export interface LanguageModelV4ReasoningFilePart {
100
104
  type: 'reasoning-file';
101
105
 
102
106
  /**
103
- * File data. Can be a Uint8Array or base64 encoded data as a string.
107
+ * File data as a tagged discriminated union:
108
+ *
109
+ * - `{ type: 'data', data }`: raw bytes (Uint8Array) or base64-encoded string.
110
+ * - `{ type: 'url', url }`: a URL that points to the file.
104
111
  */
105
- data: LanguageModelV4DataContent;
112
+ data: SharedV4FileDataData | SharedV4FileDataUrl;
106
113
 
107
114
  /**
108
115
  * IANA media type of the file.
@@ -151,15 +158,24 @@ export interface LanguageModelV4FilePart {
151
158
  filename?: string;
152
159
 
153
160
  /**
154
- * File data. Can be a Uint8Array, base64 encoded data as a string, a URL,
155
- * or a provider reference mapping provider names to provider-specific file IDs.
161
+ * File data as a tagged discriminated union:
162
+ *
163
+ * - `{ type: 'data', data }`: raw bytes (Uint8Array) or base64-encoded string.
164
+ * - `{ type: 'url', url }`: a URL that points to the file.
165
+ * - `{ type: 'reference', reference }`: a provider reference (`{ [provider]: id }`).
166
+ * - `{ type: 'text', text }`: inline text content (e.g. an inline text document).
156
167
  */
157
- data: LanguageModelV4DataContent | SharedV4ProviderReference;
168
+ data: SharedV4FileData;
158
169
 
159
170
  /**
160
- * IANA media type of the file.
171
+ * Either a full IANA media type (`type/subtype`, e.g. `image/png`) or just
172
+ * the top-level IANA segment (e.g. `image`, `audio`, `video`, `text`).
161
173
  *
162
- * Can support wildcards, e.g. `image/*` (in which case the provider needs to take appropriate action).
174
+ * `*`-subtype wildcards (e.g. `image/*`) are normalized as equivalent to the
175
+ * top-level segment alone (e.g. `image`). Providers can use the helpers in
176
+ * `@ai-sdk/provider-utils` (`isFullMediaType`, `getTopLevelMediaType`,
177
+ * `detectMediaType`) to resolve the field according to their API
178
+ * requirements.
163
179
  *
164
180
  * @see https://www.iana.org/assignments/media-types/media-types.xhtml
165
181
  */
@@ -1,4 +1,8 @@
1
- import { SharedV4ProviderMetadata } from '../../shared';
1
+ import type {
2
+ SharedV4FileDataData,
3
+ SharedV4FileDataUrl,
4
+ SharedV4ProviderMetadata,
5
+ } from '../../shared';
2
6
 
3
7
  /**
4
8
  * A file that has been generated by the model as part of reasoning.
@@ -16,14 +20,17 @@ export type LanguageModelV4ReasoningFile = {
16
20
  mediaType: string;
17
21
 
18
22
  /**
19
- * Generated file data as base64 encoded strings or binary data.
23
+ * Generated file data as a tagged discriminated union:
24
+ *
25
+ * - `{ type: 'data', data }`: raw bytes (Uint8Array) or base64-encoded string.
26
+ * - `{ type: 'url', url }`: a URL that points to the file.
20
27
  *
21
28
  * The file data should be returned without any unnecessary conversion.
22
29
  * If the API returns base64 encoded strings, the file data should be returned
23
30
  * as base64 encoded strings. If the API returns binary data, the file data should
24
31
  * be returned as binary data.
25
32
  */
26
- data: string | Uint8Array;
33
+ data: SharedV4FileDataData | SharedV4FileDataUrl;
27
34
 
28
35
  /**
29
36
  * Optional provider-specific metadata for the reasoning file part.
@@ -1,4 +1,4 @@
1
- import { SharedV4ProviderMetadata } from '../../shared';
1
+ import type { SharedV4ProviderMetadata } from '../../shared';
2
2
 
3
3
  /**
4
4
  * Reasoning that the model has generated.
@@ -1,4 +1,4 @@
1
- import { SharedV4ProviderMetadata } from '../../shared/v4/shared-v4-provider-metadata';
1
+ import type { SharedV4ProviderMetadata } from '../../shared/v4/shared-v4-provider-metadata';
2
2
 
3
3
  /**
4
4
  * A source that has been used as input to generate the response.