@ai-sdk/provider 4.0.0-beta.9 → 4.0.0-canary.16

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 (134) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/index.d.ts +481 -439
  3. package/dist/index.js +2 -47
  4. package/dist/index.js.map +1 -1
  5. package/package.json +8 -6
  6. package/src/embedding-model/v2/embedding-model-v2.ts +2 -2
  7. package/src/embedding-model/v3/embedding-model-v3-call-options.ts +1 -1
  8. package/src/embedding-model/v3/embedding-model-v3-result.ts +2 -2
  9. package/src/embedding-model/v3/embedding-model-v3.ts +2 -2
  10. package/src/embedding-model/v4/embedding-model-v4-call-options.ts +1 -1
  11. package/src/embedding-model/v4/embedding-model-v4-result.ts +2 -2
  12. package/src/embedding-model/v4/embedding-model-v4.ts +2 -2
  13. package/src/embedding-model-middleware/v3/embedding-model-v3-middleware.ts +2 -2
  14. package/src/embedding-model-middleware/v4/embedding-model-v4-middleware.ts +2 -2
  15. package/src/errors/no-such-provider-reference-error.ts +1 -1
  16. package/src/files/v4/files-v4-upload-file-call-options.ts +35 -0
  17. package/src/files/v4/files-v4-upload-file-result.ts +35 -0
  18. package/src/files/v4/files-v4.ts +2 -63
  19. package/src/files/v4/index.ts +3 -5
  20. package/src/image-model/v2/image-model-v2-call-options.ts +1 -1
  21. package/src/image-model/v2/image-model-v2-call-warning.ts +1 -1
  22. package/src/image-model/v2/image-model-v2.ts +3 -3
  23. package/src/image-model/v3/image-model-v3-call-options.ts +2 -2
  24. package/src/image-model/v3/image-model-v3-file.ts +1 -1
  25. package/src/image-model/v3/image-model-v3.ts +4 -4
  26. package/src/image-model/v4/image-model-v4-call-options.ts +2 -2
  27. package/src/image-model/v4/image-model-v4-file.ts +1 -1
  28. package/src/image-model/v4/image-model-v4-result.ts +73 -0
  29. package/src/image-model/v4/image-model-v4.ts +3 -70
  30. package/src/image-model/v4/index.ts +4 -3
  31. package/src/image-model-middleware/v3/image-model-v3-middleware.ts +2 -2
  32. package/src/image-model-middleware/v4/image-model-v4-middleware.ts +2 -2
  33. package/src/json-value/is-json.ts +1 -1
  34. package/src/language-model/v2/language-model-v2-call-options.ts +6 -6
  35. package/src/language-model/v2/language-model-v2-call-warning.ts +3 -3
  36. package/src/language-model/v2/language-model-v2-content.ts +6 -6
  37. package/src/language-model/v2/language-model-v2-function-tool.ts +2 -2
  38. package/src/language-model/v2/language-model-v2-prompt.ts +3 -3
  39. package/src/language-model/v2/language-model-v2-reasoning.ts +1 -1
  40. package/src/language-model/v2/language-model-v2-source.ts +1 -1
  41. package/src/language-model/v2/language-model-v2-stream-part.ts +9 -9
  42. package/src/language-model/v2/language-model-v2-text.ts +1 -1
  43. package/src/language-model/v2/language-model-v2-tool-call.ts +1 -1
  44. package/src/language-model/v2/language-model-v2-tool-result.ts +1 -1
  45. package/src/language-model/v2/language-model-v2.ts +9 -9
  46. package/src/language-model/v3/language-model-v3-call-options.ts +6 -6
  47. package/src/language-model/v3/language-model-v3-content.ts +7 -7
  48. package/src/language-model/v3/language-model-v3-file.ts +1 -1
  49. package/src/language-model/v3/language-model-v3-function-tool.ts +3 -3
  50. package/src/language-model/v3/language-model-v3-generate-result.ts +6 -6
  51. package/src/language-model/v3/language-model-v3-prompt.ts +3 -3
  52. package/src/language-model/v3/language-model-v3-reasoning.ts +1 -1
  53. package/src/language-model/v3/language-model-v3-source.ts +1 -1
  54. package/src/language-model/v3/language-model-v3-stream-part.ts +10 -10
  55. package/src/language-model/v3/language-model-v3-stream-result.ts +2 -2
  56. package/src/language-model/v3/language-model-v3-text.ts +1 -1
  57. package/src/language-model/v3/language-model-v3-tool-approval-request.ts +1 -1
  58. package/src/language-model/v3/language-model-v3-tool-call.ts +1 -1
  59. package/src/language-model/v3/language-model-v3-tool-result.ts +2 -2
  60. package/src/language-model/v3/language-model-v3-usage.ts +1 -1
  61. package/src/language-model/v3/language-model-v3.ts +3 -3
  62. package/src/language-model/v4/index.ts +0 -1
  63. package/src/language-model/v4/language-model-v4-call-options.ts +6 -6
  64. package/src/language-model/v4/language-model-v4-content.ts +9 -9
  65. package/src/language-model/v4/language-model-v4-custom-content.ts +1 -1
  66. package/src/language-model/v4/language-model-v4-file.ts +10 -3
  67. package/src/language-model/v4/language-model-v4-function-tool.ts +3 -3
  68. package/src/language-model/v4/language-model-v4-generate-result.ts +6 -6
  69. package/src/language-model/v4/language-model-v4-prompt.ts +43 -97
  70. package/src/language-model/v4/language-model-v4-reasoning-file.ts +10 -3
  71. package/src/language-model/v4/language-model-v4-reasoning.ts +1 -1
  72. package/src/language-model/v4/language-model-v4-source.ts +1 -1
  73. package/src/language-model/v4/language-model-v4-stream-part.ts +12 -12
  74. package/src/language-model/v4/language-model-v4-stream-result.ts +2 -2
  75. package/src/language-model/v4/language-model-v4-text.ts +1 -1
  76. package/src/language-model/v4/language-model-v4-tool-approval-request.ts +1 -1
  77. package/src/language-model/v4/language-model-v4-tool-call.ts +1 -1
  78. package/src/language-model/v4/language-model-v4-tool-result.ts +2 -2
  79. package/src/language-model/v4/language-model-v4-usage.ts +1 -1
  80. package/src/language-model/v4/language-model-v4.ts +3 -3
  81. package/src/language-model-middleware/v2/language-model-v2-middleware.ts +2 -2
  82. package/src/language-model-middleware/v3/language-model-v3-middleware.ts +4 -4
  83. package/src/language-model-middleware/v4/language-model-v4-middleware.ts +4 -4
  84. package/src/provider/v2/provider-v2.ts +5 -5
  85. package/src/provider/v3/provider-v3.ts +6 -6
  86. package/src/provider/v4/provider-v4.ts +8 -8
  87. package/src/reranking-model/v3/reranking-model-v3-call-options.ts +2 -2
  88. package/src/reranking-model/v3/reranking-model-v3.ts +2 -2
  89. package/src/reranking-model/v4/index.ts +1 -0
  90. package/src/reranking-model/v4/reranking-model-v4-call-options.ts +2 -2
  91. package/src/reranking-model/v4/reranking-model-v4-result.ts +68 -0
  92. package/src/reranking-model/v4/reranking-model-v4.ts +5 -65
  93. package/src/shared/v2/shared-v2-provider-metadata.ts +1 -1
  94. package/src/shared/v2/shared-v2-provider-options.ts +1 -1
  95. package/src/shared/v3/shared-v3-provider-metadata.ts +1 -1
  96. package/src/shared/v3/shared-v3-provider-options.ts +1 -1
  97. package/src/shared/v4/index.ts +1 -0
  98. package/src/shared/v4/shared-v4-file-data.ts +49 -0
  99. package/src/shared/v4/shared-v4-provider-metadata.ts +1 -1
  100. package/src/shared/v4/shared-v4-provider-options.ts +1 -1
  101. package/src/shared/v4/shared-v4-provider-reference.ts +8 -1
  102. package/src/skills/v4/index.ts +4 -4
  103. package/src/skills/v4/skills-v4-upload-skill-call-options.ts +37 -0
  104. package/src/skills/v4/skills-v4-upload-skill-result.ts +40 -0
  105. package/src/skills/v4/skills-v4.ts +5 -71
  106. package/src/speech-model/v2/speech-model-v2-call-options.ts +1 -1
  107. package/src/speech-model/v2/speech-model-v2-call-warning.ts +1 -1
  108. package/src/speech-model/v2/speech-model-v2.ts +4 -4
  109. package/src/speech-model/v3/speech-model-v3-call-options.ts +1 -1
  110. package/src/speech-model/v3/speech-model-v3.ts +4 -4
  111. package/src/speech-model/v4/index.ts +1 -0
  112. package/src/speech-model/v4/speech-model-v4-call-options.ts +1 -1
  113. package/src/speech-model/v4/speech-model-v4-result.ts +64 -0
  114. package/src/speech-model/v4/speech-model-v4.ts +5 -61
  115. package/src/transcription-model/v2/transcription-model-v2-call-options.ts +1 -1
  116. package/src/transcription-model/v2/transcription-model-v2-call-warning.ts +1 -1
  117. package/src/transcription-model/v2/transcription-model-v2.ts +4 -4
  118. package/src/transcription-model/v3/transcription-model-v3-call-options.ts +1 -1
  119. package/src/transcription-model/v3/transcription-model-v3.ts +4 -4
  120. package/src/transcription-model/v4/index.ts +1 -0
  121. package/src/transcription-model/v4/transcription-model-v4-call-options.ts +1 -1
  122. package/src/transcription-model/v4/transcription-model-v4-result.ts +92 -0
  123. package/src/transcription-model/v4/transcription-model-v4.ts +5 -89
  124. package/src/video-model/v3/video-model-v3-call-options.ts +2 -2
  125. package/src/video-model/v3/video-model-v3-file.ts +1 -1
  126. package/src/video-model/v4/index.ts +4 -3
  127. package/src/video-model/v4/video-model-v4-call-options.ts +2 -2
  128. package/src/video-model/v4/video-model-v4-file.ts +1 -1
  129. package/src/video-model/v4/video-model-v4-result.ts +92 -0
  130. package/src/video-model/v4/video-model-v4.ts +2 -88
  131. package/dist/index.d.mts +0 -6590
  132. package/dist/index.mjs +0 -426
  133. package/dist/index.mjs.map +0 -1
  134. package/src/language-model/v4/language-model-v4-data-content.ts +0 -4
@@ -1,14 +1,5 @@
1
- import { JSONArray, JSONValue } from '../../json-value';
2
- import { ImageModelV4Usage } from './image-model-v4-usage';
3
- import { ImageModelV4CallOptions } from './image-model-v4-call-options';
4
- import { SharedV4Warning } from '../../shared/v4/shared-v4-warning';
5
-
6
- export type ImageModelV4ProviderMetadata = Record<
7
- string,
8
- {
9
- images: JSONArray;
10
- } & JSONValue
11
- >;
1
+ import type { ImageModelV4CallOptions } from './image-model-v4-call-options';
2
+ import type { ImageModelV4Result } from './image-model-v4-result';
12
3
 
13
4
  type GetMaxImagesPerCallFunction = (options: {
14
5
  modelId: string;
@@ -48,63 +39,5 @@ export type ImageModelV4 = {
48
39
  /**
49
40
  * Generates an array of images.
50
41
  */
51
- doGenerate(options: ImageModelV4CallOptions): PromiseLike<{
52
- /**
53
- * Generated images as base64 encoded strings or binary data.
54
- * The images should be returned without any unnecessary conversion.
55
- * If the API returns base64 encoded strings, the images should be returned
56
- * as base64 encoded strings. If the API returns binary data, the images should
57
- * be returned as binary data.
58
- */
59
- images: Array<string> | Array<Uint8Array>;
60
-
61
- /**
62
- * Warnings for the call, e.g. unsupported features.
63
- */
64
- warnings: Array<SharedV4Warning>;
65
-
66
- /**
67
- * Additional provider-specific metadata. They are passed through
68
- * from the provider to the AI SDK and enable provider-specific
69
- * results that can be fully encapsulated in the provider.
70
- *
71
- * The outer record is keyed by the provider name, and the inner
72
- * record is provider-specific metadata. It always includes an
73
- * `images` key with image-specific metadata
74
- *
75
- * ```ts
76
- * {
77
- * "openai": {
78
- * "images": ["revisedPrompt": "Revised prompt here."]
79
- * }
80
- * }
81
- * ```
82
- */
83
- providerMetadata?: ImageModelV4ProviderMetadata;
84
-
85
- /**
86
- * Response information for telemetry and debugging purposes.
87
- */
88
- response: {
89
- /**
90
- * Timestamp for the start of the generated response.
91
- */
92
- timestamp: Date;
93
-
94
- /**
95
- * The ID of the response model that was used to generate the response.
96
- */
97
- modelId: string;
98
-
99
- /**
100
- * Response headers.
101
- */
102
- headers: Record<string, string> | undefined;
103
- };
104
-
105
- /**
106
- * Optional token usage for the image generation call (if the provider reports it).
107
- */
108
- usage?: ImageModelV4Usage;
109
- }>;
42
+ doGenerate(options: ImageModelV4CallOptions): PromiseLike<ImageModelV4Result>;
110
43
  };
@@ -1,7 +1,8 @@
1
+ export type { ImageModelV4 } from './image-model-v4';
2
+ export type { ImageModelV4CallOptions } from './image-model-v4-call-options';
1
3
  export type {
2
- ImageModelV4,
3
4
  ImageModelV4ProviderMetadata,
4
- } from './image-model-v4';
5
- export type { ImageModelV4CallOptions } from './image-model-v4-call-options';
5
+ ImageModelV4Result,
6
+ } from './image-model-v4-result';
6
7
  export type { ImageModelV4Usage } from './image-model-v4-usage';
7
8
  export type { ImageModelV4File } from './image-model-v4-file';
@@ -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.