@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,7 +1,10 @@
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';
5
8
 
6
9
  /**
7
10
  * A prompt is a list of messages.
@@ -100,9 +103,12 @@ export interface LanguageModelV4ReasoningFilePart {
100
103
  type: 'reasoning-file';
101
104
 
102
105
  /**
103
- * File data. Can be a Uint8Array or base64 encoded data as a string.
106
+ * File data as a tagged discriminated union:
107
+ *
108
+ * - `{ type: 'data', data }`: raw bytes (Uint8Array) or base64-encoded string.
109
+ * - `{ type: 'url', url }`: a URL that points to the file.
104
110
  */
105
- data: LanguageModelV4DataContent;
111
+ data: SharedV4FileDataData | SharedV4FileDataUrl;
106
112
 
107
113
  /**
108
114
  * IANA media type of the file.
@@ -151,15 +157,24 @@ export interface LanguageModelV4FilePart {
151
157
  filename?: string;
152
158
 
153
159
  /**
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.
160
+ * File data as a tagged discriminated union:
161
+ *
162
+ * - `{ type: 'data', data }`: raw bytes (Uint8Array) or base64-encoded string.
163
+ * - `{ type: 'url', url }`: a URL that points to the file.
164
+ * - `{ type: 'reference', reference }`: a provider reference (`{ [provider]: id }`).
165
+ * - `{ type: 'text', text }`: inline text content (e.g. an inline text document).
156
166
  */
157
- data: LanguageModelV4DataContent | SharedV4ProviderReference;
167
+ data: SharedV4FileData;
158
168
 
159
169
  /**
160
- * IANA media type of the file.
170
+ * Either a full IANA media type (`type/subtype`, e.g. `image/png`) or just
171
+ * the top-level IANA segment (e.g. `image`, `audio`, `video`, `text`).
161
172
  *
162
- * Can support wildcards, e.g. `image/*` (in which case the provider needs to take appropriate action).
173
+ * `*`-subtype wildcards (e.g. `image/*`) are normalized as equivalent to the
174
+ * top-level segment alone (e.g. `image`). Providers can use the helpers in
175
+ * `@ai-sdk/provider-utils` (`isFullMediaType`, `getTopLevelMediaType`,
176
+ * `detectMediaType`) to resolve the field according to their API
177
+ * requirements.
163
178
  *
164
179
  * @see https://www.iana.org/assignments/media-types/media-types.xhtml
165
180
  */
@@ -343,15 +358,28 @@ export type LanguageModelV4ToolResultOutput =
343
358
  providerOptions?: SharedV4ProviderOptions;
344
359
  }
345
360
  | {
346
- type: 'file-data';
361
+ type: 'file';
347
362
 
348
363
  /**
349
- * Base-64 encoded media data.
364
+ * File data as a tagged discriminated union:
365
+ *
366
+ * - `{ type: 'data', data }`: raw bytes (Uint8Array) or base64-encoded string.
367
+ * - `{ type: 'url', url }`: a URL that points to the file.
368
+ * - `{ type: 'reference', reference }`: a provider reference (`{ [provider]: id }`).
369
+ * - `{ type: 'text', text }`: inline text content (e.g. an inline text document).
350
370
  */
351
- data: string;
371
+ data: SharedV4FileData;
352
372
 
353
373
  /**
354
- * IANA media type.
374
+ * Either a full IANA media type (`type/subtype`, e.g. `image/png`) or just
375
+ * the top-level IANA segment (e.g. `image`, `audio`, `video`, `text`).
376
+ *
377
+ * `*`-subtype wildcards (e.g. `image/*`) are normalized as equivalent to the
378
+ * top-level segment alone (e.g. `image`). Providers can use the helpers in
379
+ * `@ai-sdk/provider-utils` (`isFullMediaType`, `getTopLevelMediaType`,
380
+ * `detectMediaType`) to resolve the field according to their API
381
+ * requirements.
382
+ *
355
383
  * @see https://www.iana.org/assignments/media-types/media-types.xhtml
356
384
  */
357
385
  mediaType: string;
@@ -361,88 +389,6 @@ export type LanguageModelV4ToolResultOutput =
361
389
  */
362
390
  filename?: string;
363
391
 
364
- /**
365
- * Provider-specific options.
366
- */
367
- providerOptions?: SharedV4ProviderOptions;
368
- }
369
- | {
370
- type: 'file-url';
371
-
372
- /**
373
- * URL of the file.
374
- */
375
- url: string;
376
-
377
- /**
378
- * Provider-specific options.
379
- */
380
- providerOptions?: SharedV4ProviderOptions;
381
- }
382
- | {
383
- type: 'file-reference';
384
-
385
- /**
386
- * Provider-specific references for the file.
387
- * The key is the provider name, e.g. 'openai' or 'anthropic'.
388
- */
389
- providerReference: SharedV4ProviderReference;
390
-
391
- /**
392
- * Provider-specific options.
393
- */
394
- providerOptions?: SharedV4ProviderOptions;
395
- }
396
- | {
397
- /**
398
- * Images that are referenced using base64 encoded data.
399
- */
400
- type: 'image-data';
401
-
402
- /**
403
- * Base-64 encoded image data.
404
- */
405
- data: string;
406
-
407
- /**
408
- * IANA media type.
409
- * @see https://www.iana.org/assignments/media-types/media-types.xhtml
410
- */
411
- mediaType: string;
412
-
413
- /**
414
- * Provider-specific options.
415
- */
416
- providerOptions?: SharedV4ProviderOptions;
417
- }
418
- | {
419
- /**
420
- * Images that are referenced using a URL.
421
- */
422
- type: 'image-url';
423
-
424
- /**
425
- * URL of the image.
426
- */
427
- url: string;
428
-
429
- /**
430
- * Provider-specific options.
431
- */
432
- providerOptions?: SharedV4ProviderOptions;
433
- }
434
- | {
435
- /**
436
- * Images that are referenced using a provider reference.
437
- */
438
- type: 'image-file-reference';
439
-
440
- /**
441
- * Provider-specific references for the image file.
442
- * The key is the provider name, e.g. 'openai' or 'anthropic'.
443
- */
444
- providerReference: SharedV4ProviderReference;
445
-
446
392
  /**
447
393
  * Provider-specific options.
448
394
  */
@@ -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.
@@ -1,15 +1,15 @@
1
- import { SharedV4ProviderMetadata } from '../../shared/v4/shared-v4-provider-metadata';
2
- import { SharedV4Warning } from '../../shared/v4/shared-v4-warning';
3
- import { LanguageModelV4CustomContent } from './language-model-v4-custom-content';
4
- import { LanguageModelV4File } from './language-model-v4-file';
5
- import { LanguageModelV4FinishReason } from './language-model-v4-finish-reason';
6
- import { LanguageModelV4ReasoningFile } from './language-model-v4-reasoning-file';
7
- import { LanguageModelV4ResponseMetadata } from './language-model-v4-response-metadata';
8
- import { LanguageModelV4Source } from './language-model-v4-source';
9
- import { LanguageModelV4ToolApprovalRequest } from './language-model-v4-tool-approval-request';
10
- import { LanguageModelV4ToolCall } from './language-model-v4-tool-call';
11
- import { LanguageModelV4ToolResult } from './language-model-v4-tool-result';
12
- import { LanguageModelV4Usage } from './language-model-v4-usage';
1
+ import type { SharedV4ProviderMetadata } from '../../shared/v4/shared-v4-provider-metadata';
2
+ import type { SharedV4Warning } from '../../shared/v4/shared-v4-warning';
3
+ import type { LanguageModelV4CustomContent } from './language-model-v4-custom-content';
4
+ import type { LanguageModelV4File } from './language-model-v4-file';
5
+ import type { LanguageModelV4FinishReason } from './language-model-v4-finish-reason';
6
+ import type { LanguageModelV4ReasoningFile } from './language-model-v4-reasoning-file';
7
+ import type { LanguageModelV4ResponseMetadata } from './language-model-v4-response-metadata';
8
+ import type { LanguageModelV4Source } from './language-model-v4-source';
9
+ import type { LanguageModelV4ToolApprovalRequest } from './language-model-v4-tool-approval-request';
10
+ import type { LanguageModelV4ToolCall } from './language-model-v4-tool-call';
11
+ import type { LanguageModelV4ToolResult } from './language-model-v4-tool-result';
12
+ import type { LanguageModelV4Usage } from './language-model-v4-usage';
13
13
 
14
14
  export type LanguageModelV4StreamPart =
15
15
  // Text blocks:
@@ -1,5 +1,5 @@
1
- import { SharedV4Headers } from '../../shared';
2
- import { LanguageModelV4StreamPart } from './language-model-v4-stream-part';
1
+ import type { SharedV4Headers } from '../../shared';
2
+ import type { LanguageModelV4StreamPart } from './language-model-v4-stream-part';
3
3
 
4
4
  /**
5
5
  * The result of a language model doStream call.
@@ -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
  * Text 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
  * Tool approval request emitted by a provider for a provider-executed tool call.
@@ -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
  * Tool calls that the model has generated.
@@ -1,5 +1,5 @@
1
- import { JSONValue } from '../../json-value';
2
- import { SharedV4ProviderMetadata } from '../../shared/v4/shared-v4-provider-metadata';
1
+ import type { JSONValue } from '../../json-value';
2
+ import type { SharedV4ProviderMetadata } from '../../shared/v4/shared-v4-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 { LanguageModelV4CallOptions } from './language-model-v4-call-options';
2
- import { LanguageModelV4GenerateResult } from './language-model-v4-generate-result';
3
- import { LanguageModelV4StreamResult } from './language-model-v4-stream-result';
1
+ import type { LanguageModelV4CallOptions } from './language-model-v4-call-options';
2
+ import type { LanguageModelV4GenerateResult } from './language-model-v4-generate-result';
3
+ import type { LanguageModelV4StreamResult } from './language-model-v4-stream-result';
4
4
 
5
5
  /**
6
6
  * Specification for a language model that implements the language model interface version 4.
@@ -1,5 +1,5 @@
1
- import { LanguageModelV2 } from '../../language-model/v2/language-model-v2';
2
- import { LanguageModelV2CallOptions } from '../../language-model/v2/language-model-v2-call-options';
1
+ import type { LanguageModelV2 } from '../../language-model/v2/language-model-v2';
2
+ import type { LanguageModelV2CallOptions } from '../../language-model/v2/language-model-v2-call-options';
3
3
 
4
4
  /**
5
5
  * Experimental middleware for LanguageModelV2.
@@ -1,7 +1,7 @@
1
- import { LanguageModelV3 } from '../../language-model/v3/language-model-v3';
2
- import { LanguageModelV3CallOptions } from '../../language-model/v3/language-model-v3-call-options';
3
- import { LanguageModelV3GenerateResult } from '../../language-model/v3/language-model-v3-generate-result';
4
- import { LanguageModelV3StreamResult } from '../../language-model/v3/language-model-v3-stream-result';
1
+ import type { LanguageModelV3 } from '../../language-model/v3/language-model-v3';
2
+ import type { LanguageModelV3CallOptions } from '../../language-model/v3/language-model-v3-call-options';
3
+ import type { LanguageModelV3GenerateResult } from '../../language-model/v3/language-model-v3-generate-result';
4
+ import type { LanguageModelV3StreamResult } from '../../language-model/v3/language-model-v3-stream-result';
5
5
 
6
6
  /**
7
7
  * Experimental middleware for LanguageModelV3.
@@ -1,7 +1,7 @@
1
- import { LanguageModelV4 } from '../../language-model/v4/language-model-v4';
2
- import { LanguageModelV4CallOptions } from '../../language-model/v4/language-model-v4-call-options';
3
- import { LanguageModelV4GenerateResult } from '../../language-model/v4/language-model-v4-generate-result';
4
- import { LanguageModelV4StreamResult } from '../../language-model/v4/language-model-v4-stream-result';
1
+ import type { LanguageModelV4 } from '../../language-model/v4/language-model-v4';
2
+ import type { LanguageModelV4CallOptions } from '../../language-model/v4/language-model-v4-call-options';
3
+ import type { LanguageModelV4GenerateResult } from '../../language-model/v4/language-model-v4-generate-result';
4
+ import type { LanguageModelV4StreamResult } from '../../language-model/v4/language-model-v4-stream-result';
5
5
 
6
6
  /**
7
7
  * Experimental middleware for LanguageModelV4.
@@ -1,8 +1,8 @@
1
- import { EmbeddingModelV2 } from '../../embedding-model/v2/embedding-model-v2';
2
- import { ImageModelV2 } from '../../image-model/v2/image-model-v2';
3
- import { LanguageModelV2 } from '../../language-model/v2/language-model-v2';
4
- import { SpeechModelV2 } from '../../speech-model/v2/speech-model-v2';
5
- import { TranscriptionModelV2 } from '../../transcription-model/v2/transcription-model-v2';
1
+ import type { EmbeddingModelV2 } from '../../embedding-model/v2/embedding-model-v2';
2
+ import type { ImageModelV2 } from '../../image-model/v2/image-model-v2';
3
+ import type { LanguageModelV2 } from '../../language-model/v2/language-model-v2';
4
+ import type { SpeechModelV2 } from '../../speech-model/v2/speech-model-v2';
5
+ import type { TranscriptionModelV2 } from '../../transcription-model/v2/transcription-model-v2';
6
6
 
7
7
  /**
8
8
  * Provider for language, text embedding, and image generation models.
@@ -1,9 +1,9 @@
1
- import { EmbeddingModelV3 } from '../../embedding-model/v3/embedding-model-v3';
2
- import { ImageModelV3 } from '../../image-model/v3/image-model-v3';
3
- import { LanguageModelV3 } from '../../language-model/v3/language-model-v3';
4
- import { RerankingModelV3 } from '../../reranking-model/v3/reranking-model-v3';
5
- import { SpeechModelV3 } from '../../speech-model/v3/speech-model-v3';
6
- import { TranscriptionModelV3 } from '../../transcription-model/v3/transcription-model-v3';
1
+ import type { EmbeddingModelV3 } from '../../embedding-model/v3/embedding-model-v3';
2
+ import type { ImageModelV3 } from '../../image-model/v3/image-model-v3';
3
+ import type { LanguageModelV3 } from '../../language-model/v3/language-model-v3';
4
+ import type { RerankingModelV3 } from '../../reranking-model/v3/reranking-model-v3';
5
+ import type { SpeechModelV3 } from '../../speech-model/v3/speech-model-v3';
6
+ import type { TranscriptionModelV3 } from '../../transcription-model/v3/transcription-model-v3';
7
7
 
8
8
  /**
9
9
  * Provider for language, text embedding, and image generation models.
@@ -1,11 +1,11 @@
1
- import { EmbeddingModelV4 } from '../../embedding-model/v4/embedding-model-v4';
2
- import { FilesV4 } from '../../files/v4/files-v4';
3
- import { ImageModelV4 } from '../../image-model/v4/image-model-v4';
4
- import { LanguageModelV4 } from '../../language-model/v4/language-model-v4';
5
- import { RerankingModelV4 } from '../../reranking-model/v4/reranking-model-v4';
6
- import { SpeechModelV4 } from '../../speech-model/v4/speech-model-v4';
7
- import { TranscriptionModelV4 } from '../../transcription-model/v4/transcription-model-v4';
8
- import { SkillsV4 } from '../../skills/v4/skills-v4';
1
+ import type { EmbeddingModelV4 } from '../../embedding-model/v4/embedding-model-v4';
2
+ import type { FilesV4 } from '../../files/v4/files-v4';
3
+ import type { ImageModelV4 } from '../../image-model/v4/image-model-v4';
4
+ import type { LanguageModelV4 } from '../../language-model/v4/language-model-v4';
5
+ import type { RerankingModelV4 } from '../../reranking-model/v4/reranking-model-v4';
6
+ import type { SpeechModelV4 } from '../../speech-model/v4/speech-model-v4';
7
+ import type { TranscriptionModelV4 } from '../../transcription-model/v4/transcription-model-v4';
8
+ import type { SkillsV4 } from '../../skills/v4/skills-v4';
9
9
 
10
10
  /**
11
11
  * Provider for language, text embedding, and image generation models.
@@ -1,5 +1,5 @@
1
- import { JSONObject } from '../../json-value';
2
- import { SharedV3Headers, SharedV3ProviderOptions } from '../../shared/v3';
1
+ import type { JSONObject } from '../../json-value';
2
+ import type { SharedV3Headers, SharedV3ProviderOptions } from '../../shared/v3';
3
3
 
4
4
  export type RerankingModelV3CallOptions = {
5
5
  /**
@@ -1,9 +1,9 @@
1
- import {
1
+ import type {
2
2
  SharedV3Headers,
3
3
  SharedV3ProviderMetadata,
4
4
  SharedV3Warning,
5
5
  } from '../../shared/v3/';
6
- import { RerankingModelV3CallOptions } from './reranking-model-v3-call-options';
6
+ import type { RerankingModelV3CallOptions } from './reranking-model-v3-call-options';
7
7
 
8
8
  /**
9
9
  * Specification for a reranking model that implements the reranking model interface version 3.
@@ -1,2 +1,3 @@
1
1
  export type { RerankingModelV4 } from './reranking-model-v4';
2
2
  export type { RerankingModelV4CallOptions } from './reranking-model-v4-call-options';
3
+ export type { RerankingModelV4Result } from './reranking-model-v4-result';
@@ -1,5 +1,5 @@
1
- import { JSONObject } from '../../json-value';
2
- import { SharedV4Headers, SharedV4ProviderOptions } from '../../shared/v4';
1
+ import type { JSONObject } from '../../json-value';
2
+ import type { SharedV4Headers, SharedV4ProviderOptions } from '../../shared/v4';
3
3
 
4
4
  export type RerankingModelV4CallOptions = {
5
5
  /**
@@ -0,0 +1,68 @@
1
+ import type {
2
+ SharedV4Headers,
3
+ SharedV4ProviderMetadata,
4
+ SharedV4Warning,
5
+ } from '../../shared/v4/';
6
+
7
+ /**
8
+ * The result of a reranking model doRerank call.
9
+ */
10
+ export type RerankingModelV4Result = {
11
+ /**
12
+ * Ordered list of reranked documents (via index before reranking).
13
+ * The documents are sorted by the descending order of relevance scores.
14
+ */
15
+ ranking: Array<{
16
+ /**
17
+ * The index of the document in the original list of documents before reranking.
18
+ */
19
+ index: number;
20
+
21
+ /**
22
+ * The relevance score of the document after reranking.
23
+ */
24
+ relevanceScore: number;
25
+ }>;
26
+
27
+ /**
28
+ * Additional provider-specific metadata. They are passed through
29
+ * to the provider from the AI SDK and enable provider-specific
30
+ * functionality that can be fully encapsulated in the provider.
31
+ */
32
+ providerMetadata?: SharedV4ProviderMetadata;
33
+
34
+ /**
35
+ * Warnings for the call, e.g. unsupported settings.
36
+ */
37
+ warnings?: Array<SharedV4Warning>;
38
+
39
+ /**
40
+ * Optional response information for debugging purposes.
41
+ */
42
+ response?: {
43
+ /**
44
+ * ID for the generated response, if the provider sends one.
45
+ */
46
+ id?: string;
47
+
48
+ /**
49
+ * Timestamp for the start of the generated response, if the provider sends one.
50
+ */
51
+ timestamp?: Date;
52
+
53
+ /**
54
+ * The ID of the response model that was used to generate the response, if the provider sends one.
55
+ */
56
+ modelId?: string;
57
+
58
+ /**
59
+ * Response headers.
60
+ */
61
+ headers?: SharedV4Headers;
62
+
63
+ /**
64
+ * Response body.
65
+ */
66
+ body?: unknown;
67
+ };
68
+ };
@@ -1,9 +1,5 @@
1
- import {
2
- SharedV4Headers,
3
- SharedV4ProviderMetadata,
4
- SharedV4Warning,
5
- } from '../../shared/v4/';
6
- import { RerankingModelV4CallOptions } from './reranking-model-v4-call-options';
1
+ import type { RerankingModelV4CallOptions } from './reranking-model-v4-call-options';
2
+ import type { RerankingModelV4Result } from './reranking-model-v4-result';
7
3
 
8
4
  /**
9
5
  * Specification for a reranking model that implements the reranking model interface version 3.
@@ -28,63 +24,7 @@ export type RerankingModelV4 = {
28
24
  * Reranking a list of documents using the query.
29
25
  */
30
26
  // Naming: "do" prefix to prevent accidental direct usage of the method by the user.
31
- doRerank(options: RerankingModelV4CallOptions): PromiseLike<{
32
- /**
33
- * Ordered list of reranked documents (via index before reranking).
34
- * The documents are sorted by the descending order of relevance scores.
35
- */
36
- ranking: Array<{
37
- /**
38
- * The index of the document in the original list of documents before reranking.
39
- */
40
- index: number;
41
-
42
- /**
43
- * The relevance score of the document after reranking.
44
- */
45
- relevanceScore: number;
46
- }>;
47
-
48
- /**
49
- * Additional provider-specific metadata. They are passed through
50
- * to the provider from the AI SDK and enable provider-specific
51
- * functionality that can be fully encapsulated in the provider.
52
- */
53
- providerMetadata?: SharedV4ProviderMetadata;
54
-
55
- /**
56
- * Warnings for the call, e.g. unsupported settings.
57
- */
58
- warnings?: Array<SharedV4Warning>;
59
-
60
- /**
61
- * Optional response information for debugging purposes.
62
- */
63
- response?: {
64
- /**
65
- * ID for the generated response, if the provider sends one.
66
- */
67
- id?: string;
68
-
69
- /**
70
- * Timestamp for the start of the generated response, if the provider sends one.
71
- */
72
- timestamp?: Date;
73
-
74
- /**
75
- * The ID of the response model that was used to generate the response, if the provider sends one.
76
- */
77
- modelId?: string;
78
-
79
- /**
80
- * Response headers.
81
- */
82
- headers?: SharedV4Headers;
83
-
84
- /**
85
- * Response body.
86
- */
87
- body?: unknown;
88
- };
89
- }>;
27
+ doRerank(
28
+ options: RerankingModelV4CallOptions,
29
+ ): PromiseLike<RerankingModelV4Result>;
90
30
  };
@@ -1,4 +1,4 @@
1
- import { JSONValue } from '../../json-value/json-value';
1
+ import type { JSONValue } from '../../json-value/json-value';
2
2
 
3
3
  /**
4
4
  * Additional provider-specific metadata.
@@ -1,4 +1,4 @@
1
- import { JSONValue } from '../../json-value/json-value';
1
+ import type { JSONValue } from '../../json-value/json-value';
2
2
 
3
3
  /**
4
4
  * Additional provider-specific options.
@@ -1,4 +1,4 @@
1
- import { JSONObject } from '../../json-value/json-value';
1
+ import type { JSONObject } from '../../json-value/json-value';
2
2
 
3
3
  /**
4
4
  * Additional provider-specific metadata.
@@ -1,4 +1,4 @@
1
- import { JSONObject } from '../../json-value/json-value';
1
+ import type { JSONObject } from '../../json-value/json-value';
2
2
 
3
3
  /**
4
4
  * Additional provider-specific options.
@@ -1,3 +1,4 @@
1
+ export * from './shared-v4-file-data';
1
2
  export * from './shared-v4-headers';
2
3
  export * from './shared-v4-provider-metadata';
3
4
  export * from './shared-v4-provider-options';