@ai-sdk/provider 0.0.0-01d6317c-20260129172110

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 (138) hide show
  1. package/CHANGELOG.md +967 -0
  2. package/LICENSE +13 -0
  3. package/README.md +1 -0
  4. package/dist/index.d.mts +3814 -0
  5. package/dist/index.d.ts +3814 -0
  6. package/dist/index.js +448 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/index.mjs +404 -0
  9. package/dist/index.mjs.map +1 -0
  10. package/package.json +63 -0
  11. package/src/embedding-model/index.ts +2 -0
  12. package/src/embedding-model/v2/embedding-model-v2-embedding.ts +5 -0
  13. package/src/embedding-model/v2/embedding-model-v2.ts +113 -0
  14. package/src/embedding-model/v2/index.ts +2 -0
  15. package/src/embedding-model/v3/embedding-model-v3-call-options.ts +26 -0
  16. package/src/embedding-model/v3/embedding-model-v3-embedding.ts +5 -0
  17. package/src/embedding-model/v3/embedding-model-v3-result.ts +48 -0
  18. package/src/embedding-model/v3/embedding-model-v3.ts +54 -0
  19. package/src/embedding-model/v3/index.ts +4 -0
  20. package/src/embedding-model-middleware/index.ts +1 -0
  21. package/src/embedding-model-middleware/v3/embedding-model-v3-middleware.ts +69 -0
  22. package/src/embedding-model-middleware/v3/index.ts +1 -0
  23. package/src/errors/ai-sdk-error.ts +62 -0
  24. package/src/errors/api-call-error.ts +59 -0
  25. package/src/errors/empty-response-body-error.ts +17 -0
  26. package/src/errors/get-error-message.ts +15 -0
  27. package/src/errors/index.ts +16 -0
  28. package/src/errors/invalid-argument-error.ts +32 -0
  29. package/src/errors/invalid-prompt-error.ts +33 -0
  30. package/src/errors/invalid-response-data-error.ts +31 -0
  31. package/src/errors/json-parse-error.ts +29 -0
  32. package/src/errors/load-api-key-error.ts +17 -0
  33. package/src/errors/load-setting-error.ts +17 -0
  34. package/src/errors/no-content-generated-error.ts +22 -0
  35. package/src/errors/no-such-model-error.ts +45 -0
  36. package/src/errors/too-many-embedding-values-for-call-error.ts +40 -0
  37. package/src/errors/type-validation-error.ts +108 -0
  38. package/src/errors/unsupported-functionality-error.ts +26 -0
  39. package/src/image-model/index.ts +2 -0
  40. package/src/image-model/v2/image-model-v2-call-options.ts +60 -0
  41. package/src/image-model/v2/image-model-v2-call-warning.ts +16 -0
  42. package/src/image-model/v2/image-model-v2.ts +104 -0
  43. package/src/image-model/v2/index.ts +6 -0
  44. package/src/image-model/v3/image-model-v3-call-options.ts +74 -0
  45. package/src/image-model/v3/image-model-v3-file.ts +44 -0
  46. package/src/image-model/v3/image-model-v3-usage.ts +19 -0
  47. package/src/image-model/v3/image-model-v3.ts +110 -0
  48. package/src/image-model/v3/index.ts +7 -0
  49. package/src/image-model-middleware/index.ts +1 -0
  50. package/src/image-model-middleware/v3/image-model-v3-middleware.ts +61 -0
  51. package/src/image-model-middleware/v3/index.ts +1 -0
  52. package/src/index.ts +15 -0
  53. package/src/json-value/index.ts +2 -0
  54. package/src/json-value/is-json.ts +40 -0
  55. package/src/json-value/json-value.ts +17 -0
  56. package/src/language-model/index.ts +2 -0
  57. package/src/language-model/v2/index.ts +18 -0
  58. package/src/language-model/v2/language-model-v2-call-options.ts +127 -0
  59. package/src/language-model/v2/language-model-v2-call-warning.ts +23 -0
  60. package/src/language-model/v2/language-model-v2-content.ts +14 -0
  61. package/src/language-model/v2/language-model-v2-data-content.ts +4 -0
  62. package/src/language-model/v2/language-model-v2-file.ts +25 -0
  63. package/src/language-model/v2/language-model-v2-finish-reason.ts +20 -0
  64. package/src/language-model/v2/language-model-v2-function-tool.ts +37 -0
  65. package/src/language-model/v2/language-model-v2-prompt.ts +218 -0
  66. package/src/language-model/v2/language-model-v2-provider-defined-tool.ts +24 -0
  67. package/src/language-model/v2/language-model-v2-reasoning.ts +14 -0
  68. package/src/language-model/v2/language-model-v2-response-metadata.ts +16 -0
  69. package/src/language-model/v2/language-model-v2-source.ts +67 -0
  70. package/src/language-model/v2/language-model-v2-stream-part.ts +102 -0
  71. package/src/language-model/v2/language-model-v2-text.ts +15 -0
  72. package/src/language-model/v2/language-model-v2-tool-call.ts +35 -0
  73. package/src/language-model/v2/language-model-v2-tool-choice.ts +5 -0
  74. package/src/language-model/v2/language-model-v2-tool-result.ts +40 -0
  75. package/src/language-model/v2/language-model-v2-usage.ts +34 -0
  76. package/src/language-model/v2/language-model-v2.ts +137 -0
  77. package/src/language-model/v3/index.ts +21 -0
  78. package/src/language-model/v3/language-model-v3-call-options.ts +125 -0
  79. package/src/language-model/v3/language-model-v3-content.ts +16 -0
  80. package/src/language-model/v3/language-model-v3-data-content.ts +4 -0
  81. package/src/language-model/v3/language-model-v3-file.ts +32 -0
  82. package/src/language-model/v3/language-model-v3-finish-reason.ts +33 -0
  83. package/src/language-model/v3/language-model-v3-function-tool.ts +53 -0
  84. package/src/language-model/v3/language-model-v3-generate-result.ts +63 -0
  85. package/src/language-model/v3/language-model-v3-prompt.ts +422 -0
  86. package/src/language-model/v3/language-model-v3-provider-tool.ts +28 -0
  87. package/src/language-model/v3/language-model-v3-reasoning.ts +14 -0
  88. package/src/language-model/v3/language-model-v3-response-metadata.ts +16 -0
  89. package/src/language-model/v3/language-model-v3-source.ts +67 -0
  90. package/src/language-model/v3/language-model-v3-stream-part.ts +106 -0
  91. package/src/language-model/v3/language-model-v3-stream-result.ts +32 -0
  92. package/src/language-model/v3/language-model-v3-text.ts +15 -0
  93. package/src/language-model/v3/language-model-v3-tool-approval-request.ts +27 -0
  94. package/src/language-model/v3/language-model-v3-tool-call.ts +41 -0
  95. package/src/language-model/v3/language-model-v3-tool-choice.ts +5 -0
  96. package/src/language-model/v3/language-model-v3-tool-result.ts +51 -0
  97. package/src/language-model/v3/language-model-v3-usage.ts +59 -0
  98. package/src/language-model/v3/language-model-v3.ts +61 -0
  99. package/src/language-model-middleware/index.ts +2 -0
  100. package/src/language-model-middleware/v2/index.ts +1 -0
  101. package/src/language-model-middleware/v2/language-model-v2-middleware.ts +82 -0
  102. package/src/language-model-middleware/v3/index.ts +1 -0
  103. package/src/language-model-middleware/v3/language-model-v3-middleware.ts +84 -0
  104. package/src/provider/index.ts +2 -0
  105. package/src/provider/v2/index.ts +1 -0
  106. package/src/provider/v2/provider-v2.ts +64 -0
  107. package/src/provider/v3/index.ts +1 -0
  108. package/src/provider/v3/provider-v3.ts +93 -0
  109. package/src/reranking-model/index.ts +1 -0
  110. package/src/reranking-model/v3/index.ts +2 -0
  111. package/src/reranking-model/v3/reranking-model-v3-call-options.ts +40 -0
  112. package/src/reranking-model/v3/reranking-model-v3.ts +90 -0
  113. package/src/shared/index.ts +2 -0
  114. package/src/shared/v2/index.ts +3 -0
  115. package/src/shared/v2/shared-v2-headers.ts +1 -0
  116. package/src/shared/v2/shared-v2-provider-metadata.ts +27 -0
  117. package/src/shared/v2/shared-v2-provider-options.ts +24 -0
  118. package/src/shared/v3/index.ts +4 -0
  119. package/src/shared/v3/shared-v3-headers.ts +1 -0
  120. package/src/shared/v3/shared-v3-provider-metadata.ts +24 -0
  121. package/src/shared/v3/shared-v3-provider-options.ts +24 -0
  122. package/src/shared/v3/shared-v3-warning.ts +50 -0
  123. package/src/speech-model/index.ts +2 -0
  124. package/src/speech-model/v2/index.ts +3 -0
  125. package/src/speech-model/v2/speech-model-v2-call-options.ts +62 -0
  126. package/src/speech-model/v2/speech-model-v2-call-warning.ts +16 -0
  127. package/src/speech-model/v2/speech-model-v2.ts +89 -0
  128. package/src/speech-model/v3/index.ts +2 -0
  129. package/src/speech-model/v3/speech-model-v3-call-options.ts +62 -0
  130. package/src/speech-model/v3/speech-model-v3.ts +89 -0
  131. package/src/transcription-model/index.ts +2 -0
  132. package/src/transcription-model/v2/index.ts +3 -0
  133. package/src/transcription-model/v2/transcription-model-v2-call-options.ts +48 -0
  134. package/src/transcription-model/v2/transcription-model-v2-call-warning.ts +16 -0
  135. package/src/transcription-model/v2/transcription-model-v2.ts +117 -0
  136. package/src/transcription-model/v3/index.ts +2 -0
  137. package/src/transcription-model/v3/transcription-model-v3-call-options.ts +45 -0
  138. package/src/transcription-model/v3/transcription-model-v3.ts +117 -0
@@ -0,0 +1,89 @@
1
+ import { JSONObject } from '../../json-value';
2
+ import { SharedV2Headers } from '../../shared';
3
+ import { SharedV3Warning } from '../../shared/v3/shared-v3-warning';
4
+ import { SpeechModelV3CallOptions } from './speech-model-v3-call-options';
5
+
6
+ /**
7
+ * Speech model specification version 3.
8
+ */
9
+ export type SpeechModelV3 = {
10
+ /**
11
+ * The speech model must specify which speech model interface
12
+ * version it implements. This will allow us to evolve the speech
13
+ * model interface and retain backwards compatibility. The different
14
+ * implementation versions can be handled as a discriminated union
15
+ * on our side.
16
+ */
17
+ readonly specificationVersion: 'v3';
18
+
19
+ /**
20
+ * Name of the provider for logging purposes.
21
+ */
22
+ readonly provider: string;
23
+
24
+ /**
25
+ * Provider-specific model ID for logging purposes.
26
+ */
27
+ readonly modelId: string;
28
+
29
+ /**
30
+ * Generates speech audio from text.
31
+ */
32
+ doGenerate(options: SpeechModelV3CallOptions): PromiseLike<{
33
+ /**
34
+ * Generated audio as an ArrayBuffer.
35
+ * The audio should be returned without any unnecessary conversion.
36
+ * If the API returns base64 encoded strings, the audio should be returned
37
+ * as base64 encoded strings. If the API returns binary data, the audio
38
+ * should be returned as binary data.
39
+ */
40
+ audio: string | Uint8Array;
41
+
42
+ /**
43
+ * Warnings for the call, e.g. unsupported settings.
44
+ */
45
+ warnings: Array<SharedV3Warning>;
46
+
47
+ /**
48
+ * Optional request information for telemetry and debugging purposes.
49
+ */
50
+ request?: {
51
+ /**
52
+ * Response body (available only for providers that use HTTP requests).
53
+ */
54
+ body?: unknown;
55
+ };
56
+
57
+ /**
58
+ * Response information for telemetry and debugging purposes.
59
+ */
60
+ response: {
61
+ /**
62
+ * Timestamp for the start of the generated response.
63
+ */
64
+ timestamp: Date;
65
+
66
+ /**
67
+ * The ID of the response model that was used to generate the response.
68
+ */
69
+ modelId: string;
70
+
71
+ /**
72
+ * Response headers.
73
+ */
74
+ headers?: SharedV2Headers;
75
+
76
+ /**
77
+ * Response body.
78
+ */
79
+ body?: unknown;
80
+ };
81
+
82
+ /**
83
+ * Additional provider-specific metadata. They are passed through
84
+ * from the provider to the AI SDK and enable provider-specific
85
+ * results that can be fully encapsulated in the provider.
86
+ */
87
+ providerMetadata?: Record<string, JSONObject>;
88
+ }>;
89
+ };
@@ -0,0 +1,2 @@
1
+ export * from './v2/index';
2
+ export * from './v3/index';
@@ -0,0 +1,3 @@
1
+ export type { TranscriptionModelV2 } from './transcription-model-v2';
2
+ export type { TranscriptionModelV2CallOptions } from './transcription-model-v2-call-options';
3
+ export type { TranscriptionModelV2CallWarning } from './transcription-model-v2-call-warning';
@@ -0,0 +1,48 @@
1
+ import { JSONValue } from '../../json-value/json-value';
2
+
3
+ type TranscriptionModelV2ProviderOptions = Record<
4
+ string,
5
+ Record<string, JSONValue>
6
+ >;
7
+
8
+ export type TranscriptionModelV2CallOptions = {
9
+ /**
10
+ * Audio data to transcribe.
11
+ * Accepts a `Uint8Array` or `string`, where `string` is a base64 encoded audio file.
12
+ */
13
+ audio: Uint8Array | string;
14
+
15
+ /**
16
+ * The IANA media type of the audio data.
17
+ *
18
+ * @see https://www.iana.org/assignments/media-types/media-types.xhtml
19
+ */
20
+ mediaType: string;
21
+
22
+ /**
23
+ * Additional provider-specific options that are passed through to the provider
24
+ * as body parameters.
25
+ *
26
+ * The outer record is keyed by the provider name, and the inner
27
+ * record is keyed by the provider-specific metadata key.
28
+ * ```ts
29
+ * {
30
+ * "openai": {
31
+ * "timestampGranularities": ["word"]
32
+ * }
33
+ * }
34
+ * ```
35
+ */
36
+ providerOptions?: TranscriptionModelV2ProviderOptions;
37
+
38
+ /**
39
+ * Abort signal for cancelling the operation.
40
+ */
41
+ abortSignal?: AbortSignal;
42
+
43
+ /**
44
+ * Additional HTTP headers to be sent with the request.
45
+ * Only applicable for HTTP-based providers.
46
+ */
47
+ headers?: Record<string, string | undefined>;
48
+ };
@@ -0,0 +1,16 @@
1
+ import { TranscriptionModelV2CallOptions } from './transcription-model-v2-call-options';
2
+
3
+ /**
4
+ * Warning from the model provider for this call. The call will proceed, but e.g.
5
+ * some settings might not be supported, which can lead to suboptimal results.
6
+ */
7
+ export type TranscriptionModelV2CallWarning =
8
+ | {
9
+ type: 'unsupported-setting';
10
+ setting: keyof TranscriptionModelV2CallOptions;
11
+ details?: string;
12
+ }
13
+ | {
14
+ type: 'other';
15
+ message: string;
16
+ };
@@ -0,0 +1,117 @@
1
+ import { JSONValue } from '../../json-value';
2
+ import { SharedV2Headers } from '../../shared';
3
+ import { TranscriptionModelV2CallOptions } from './transcription-model-v2-call-options';
4
+ import { TranscriptionModelV2CallWarning } from './transcription-model-v2-call-warning';
5
+
6
+ /**
7
+ * Transcription model specification version 2.
8
+ */
9
+ export type TranscriptionModelV2 = {
10
+ /**
11
+ * The transcription model must specify which transcription model interface
12
+ * version it implements. This will allow us to evolve the transcription
13
+ * model interface and retain backwards compatibility. The different
14
+ * implementation versions can be handled as a discriminated union
15
+ * on our side.
16
+ */
17
+ readonly specificationVersion: 'v2';
18
+
19
+ /**
20
+ * Name of the provider for logging purposes.
21
+ */
22
+ readonly provider: string;
23
+
24
+ /**
25
+ * Provider-specific model ID for logging purposes.
26
+ */
27
+ readonly modelId: string;
28
+
29
+ /**
30
+ * Generates a transcript.
31
+ */
32
+ doGenerate(options: TranscriptionModelV2CallOptions): PromiseLike<{
33
+ /**
34
+ * The complete transcribed text from the audio.
35
+ */
36
+ text: string;
37
+
38
+ /**
39
+ * Array of transcript segments with timing information.
40
+ * Each segment represents a portion of the transcribed text with start and end times.
41
+ */
42
+ segments: Array<{
43
+ /**
44
+ * The text content of this segment.
45
+ */
46
+ text: string;
47
+ /**
48
+ * The start time of this segment in seconds.
49
+ */
50
+ startSecond: number;
51
+ /**
52
+ * The end time of this segment in seconds.
53
+ */
54
+ endSecond: number;
55
+ }>;
56
+
57
+ /**
58
+ * The detected language of the audio content, as an ISO-639-1 code (e.g., 'en' for English).
59
+ * May be undefined if the language couldn't be detected.
60
+ */
61
+ language: string | undefined;
62
+
63
+ /**
64
+ * The total duration of the audio file in seconds.
65
+ * May be undefined if the duration couldn't be determined.
66
+ */
67
+ durationInSeconds: number | undefined;
68
+
69
+ /**
70
+ * Warnings for the call, e.g. unsupported settings.
71
+ */
72
+ warnings: Array<TranscriptionModelV2CallWarning>;
73
+
74
+ /**
75
+ * Optional request information for telemetry and debugging purposes.
76
+ */
77
+ request?: {
78
+ /**
79
+ * Raw request HTTP body that was sent to the provider API as a string (JSON should be stringified).
80
+ * Non-HTTP(s) providers should not set this.
81
+ */
82
+ body?: string;
83
+ };
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?: SharedV2Headers;
103
+
104
+ /**
105
+ * Response body.
106
+ */
107
+ body?: unknown;
108
+ };
109
+
110
+ /**
111
+ * Additional provider-specific metadata. They are passed through
112
+ * from the provider to the AI SDK and enable provider-specific
113
+ * results that can be fully encapsulated in the provider.
114
+ */
115
+ providerMetadata?: Record<string, Record<string, JSONValue>>;
116
+ }>;
117
+ };
@@ -0,0 +1,2 @@
1
+ export type { TranscriptionModelV3 } from './transcription-model-v3';
2
+ export type { TranscriptionModelV3CallOptions } from './transcription-model-v3-call-options';
@@ -0,0 +1,45 @@
1
+ import { JSONObject } from '../../json-value/json-value';
2
+
3
+ type TranscriptionModelV3ProviderOptions = Record<string, JSONObject>;
4
+
5
+ export type TranscriptionModelV3CallOptions = {
6
+ /**
7
+ * Audio data to transcribe.
8
+ * Accepts a `Uint8Array` or `string`, where `string` is a base64 encoded audio file.
9
+ */
10
+ audio: Uint8Array | string;
11
+
12
+ /**
13
+ * The IANA media type of the audio data.
14
+ *
15
+ * @see https://www.iana.org/assignments/media-types/media-types.xhtml
16
+ */
17
+ mediaType: string;
18
+
19
+ /**
20
+ * Additional provider-specific options that are passed through to the provider
21
+ * as body parameters.
22
+ *
23
+ * The outer record is keyed by the provider name, and the inner
24
+ * record is keyed by the provider-specific metadata key.
25
+ * ```ts
26
+ * {
27
+ * "openai": {
28
+ * "timestampGranularities": ["word"]
29
+ * }
30
+ * }
31
+ * ```
32
+ */
33
+ providerOptions?: TranscriptionModelV3ProviderOptions;
34
+
35
+ /**
36
+ * Abort signal for cancelling the operation.
37
+ */
38
+ abortSignal?: AbortSignal;
39
+
40
+ /**
41
+ * Additional HTTP headers to be sent with the request.
42
+ * Only applicable for HTTP-based providers.
43
+ */
44
+ headers?: Record<string, string | undefined>;
45
+ };
@@ -0,0 +1,117 @@
1
+ import { JSONObject } from '../../json-value';
2
+ import { SharedV3Headers } from '../../shared';
3
+ import { SharedV3Warning } from '../../shared/v3/shared-v3-warning';
4
+ import { TranscriptionModelV3CallOptions } from './transcription-model-v3-call-options';
5
+
6
+ /**
7
+ * Transcription model specification version 3.
8
+ */
9
+ export type TranscriptionModelV3 = {
10
+ /**
11
+ * The transcription model must specify which transcription model interface
12
+ * version it implements. This will allow us to evolve the transcription
13
+ * model interface and retain backwards compatibility. The different
14
+ * implementation versions can be handled as a discriminated union
15
+ * on our side.
16
+ */
17
+ readonly specificationVersion: 'v3';
18
+
19
+ /**
20
+ * Name of the provider for logging purposes.
21
+ */
22
+ readonly provider: string;
23
+
24
+ /**
25
+ * Provider-specific model ID for logging purposes.
26
+ */
27
+ readonly modelId: string;
28
+
29
+ /**
30
+ * Generates a transcript.
31
+ */
32
+ doGenerate(options: TranscriptionModelV3CallOptions): PromiseLike<{
33
+ /**
34
+ * The complete transcribed text from the audio.
35
+ */
36
+ text: string;
37
+
38
+ /**
39
+ * Array of transcript segments with timing information.
40
+ * Each segment represents a portion of the transcribed text with start and end times.
41
+ */
42
+ segments: Array<{
43
+ /**
44
+ * The text content of this segment.
45
+ */
46
+ text: string;
47
+ /**
48
+ * The start time of this segment in seconds.
49
+ */
50
+ startSecond: number;
51
+ /**
52
+ * The end time of this segment in seconds.
53
+ */
54
+ endSecond: number;
55
+ }>;
56
+
57
+ /**
58
+ * The detected language of the audio content, as an ISO-639-1 code (e.g., 'en' for English).
59
+ * May be undefined if the language couldn't be detected.
60
+ */
61
+ language: string | undefined;
62
+
63
+ /**
64
+ * The total duration of the audio file in seconds.
65
+ * May be undefined if the duration couldn't be determined.
66
+ */
67
+ durationInSeconds: number | undefined;
68
+
69
+ /**
70
+ * Warnings for the call, e.g. unsupported settings.
71
+ */
72
+ warnings: Array<SharedV3Warning>;
73
+
74
+ /**
75
+ * Optional request information for telemetry and debugging purposes.
76
+ */
77
+ request?: {
78
+ /**
79
+ * Raw request HTTP body that was sent to the provider API as a string (JSON should be stringified).
80
+ * Non-HTTP(s) providers should not set this.
81
+ */
82
+ body?: string;
83
+ };
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?: SharedV3Headers;
103
+
104
+ /**
105
+ * Response body.
106
+ */
107
+ body?: unknown;
108
+ };
109
+
110
+ /**
111
+ * Additional provider-specific metadata. They are passed through
112
+ * from the provider to the AI SDK and enable provider-specific
113
+ * results that can be fully encapsulated in the provider.
114
+ */
115
+ providerMetadata?: Record<string, JSONObject>;
116
+ }>;
117
+ };