@ai-sdk/provider 0.0.0-4115c213-20260122152721
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.
- package/CHANGELOG.md +961 -0
- package/LICENSE +13 -0
- package/README.md +1 -0
- package/dist/index.d.mts +3796 -0
- package/dist/index.d.ts +3796 -0
- package/dist/index.js +421 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +377 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +63 -0
- package/src/embedding-model/index.ts +2 -0
- package/src/embedding-model/v2/embedding-model-v2-embedding.ts +5 -0
- package/src/embedding-model/v2/embedding-model-v2.ts +113 -0
- package/src/embedding-model/v2/index.ts +2 -0
- package/src/embedding-model/v3/embedding-model-v3-call-options.ts +26 -0
- package/src/embedding-model/v3/embedding-model-v3-embedding.ts +5 -0
- package/src/embedding-model/v3/embedding-model-v3-result.ts +48 -0
- package/src/embedding-model/v3/embedding-model-v3.ts +54 -0
- package/src/embedding-model/v3/index.ts +4 -0
- package/src/embedding-model-middleware/index.ts +1 -0
- package/src/embedding-model-middleware/v3/embedding-model-v3-middleware.ts +69 -0
- package/src/embedding-model-middleware/v3/index.ts +1 -0
- package/src/errors/ai-sdk-error.ts +62 -0
- package/src/errors/api-call-error.ts +59 -0
- package/src/errors/empty-response-body-error.ts +17 -0
- package/src/errors/get-error-message.ts +15 -0
- package/src/errors/index.ts +15 -0
- package/src/errors/invalid-argument-error.ts +32 -0
- package/src/errors/invalid-prompt-error.ts +33 -0
- package/src/errors/invalid-response-data-error.ts +31 -0
- package/src/errors/json-parse-error.ts +29 -0
- package/src/errors/load-api-key-error.ts +17 -0
- package/src/errors/load-setting-error.ts +17 -0
- package/src/errors/no-content-generated-error.ts +22 -0
- package/src/errors/no-such-model-error.ts +45 -0
- package/src/errors/too-many-embedding-values-for-call-error.ts +40 -0
- package/src/errors/type-validation-error.ts +51 -0
- package/src/errors/unsupported-functionality-error.ts +26 -0
- package/src/image-model/index.ts +2 -0
- package/src/image-model/v2/image-model-v2-call-options.ts +60 -0
- package/src/image-model/v2/image-model-v2-call-warning.ts +16 -0
- package/src/image-model/v2/image-model-v2.ts +104 -0
- package/src/image-model/v2/index.ts +6 -0
- package/src/image-model/v3/image-model-v3-call-options.ts +74 -0
- package/src/image-model/v3/image-model-v3-file.ts +44 -0
- package/src/image-model/v3/image-model-v3-usage.ts +19 -0
- package/src/image-model/v3/image-model-v3.ts +110 -0
- package/src/image-model/v3/index.ts +7 -0
- package/src/image-model-middleware/index.ts +1 -0
- package/src/image-model-middleware/v3/image-model-v3-middleware.ts +61 -0
- package/src/image-model-middleware/v3/index.ts +1 -0
- package/src/index.ts +15 -0
- package/src/json-value/index.ts +2 -0
- package/src/json-value/is-json.ts +40 -0
- package/src/json-value/json-value.ts +17 -0
- package/src/language-model/index.ts +2 -0
- package/src/language-model/v2/index.ts +18 -0
- package/src/language-model/v2/language-model-v2-call-options.ts +127 -0
- package/src/language-model/v2/language-model-v2-call-warning.ts +23 -0
- package/src/language-model/v2/language-model-v2-content.ts +14 -0
- package/src/language-model/v2/language-model-v2-data-content.ts +4 -0
- package/src/language-model/v2/language-model-v2-file.ts +25 -0
- package/src/language-model/v2/language-model-v2-finish-reason.ts +20 -0
- package/src/language-model/v2/language-model-v2-function-tool.ts +37 -0
- package/src/language-model/v2/language-model-v2-prompt.ts +218 -0
- package/src/language-model/v2/language-model-v2-provider-defined-tool.ts +24 -0
- package/src/language-model/v2/language-model-v2-reasoning.ts +14 -0
- package/src/language-model/v2/language-model-v2-response-metadata.ts +16 -0
- package/src/language-model/v2/language-model-v2-source.ts +67 -0
- package/src/language-model/v2/language-model-v2-stream-part.ts +102 -0
- package/src/language-model/v2/language-model-v2-text.ts +15 -0
- package/src/language-model/v2/language-model-v2-tool-call.ts +35 -0
- package/src/language-model/v2/language-model-v2-tool-choice.ts +5 -0
- package/src/language-model/v2/language-model-v2-tool-result.ts +40 -0
- package/src/language-model/v2/language-model-v2-usage.ts +34 -0
- package/src/language-model/v2/language-model-v2.ts +137 -0
- package/src/language-model/v3/index.ts +21 -0
- package/src/language-model/v3/language-model-v3-call-options.ts +125 -0
- package/src/language-model/v3/language-model-v3-content.ts +16 -0
- package/src/language-model/v3/language-model-v3-data-content.ts +4 -0
- package/src/language-model/v3/language-model-v3-file.ts +32 -0
- package/src/language-model/v3/language-model-v3-finish-reason.ts +33 -0
- package/src/language-model/v3/language-model-v3-function-tool.ts +53 -0
- package/src/language-model/v3/language-model-v3-generate-result.ts +63 -0
- package/src/language-model/v3/language-model-v3-prompt.ts +422 -0
- package/src/language-model/v3/language-model-v3-provider-tool.ts +28 -0
- package/src/language-model/v3/language-model-v3-reasoning.ts +14 -0
- package/src/language-model/v3/language-model-v3-response-metadata.ts +16 -0
- package/src/language-model/v3/language-model-v3-source.ts +67 -0
- package/src/language-model/v3/language-model-v3-stream-part.ts +106 -0
- package/src/language-model/v3/language-model-v3-stream-result.ts +32 -0
- package/src/language-model/v3/language-model-v3-text.ts +15 -0
- package/src/language-model/v3/language-model-v3-tool-approval-request.ts +27 -0
- package/src/language-model/v3/language-model-v3-tool-call.ts +41 -0
- package/src/language-model/v3/language-model-v3-tool-choice.ts +5 -0
- package/src/language-model/v3/language-model-v3-tool-result.ts +51 -0
- package/src/language-model/v3/language-model-v3-usage.ts +59 -0
- package/src/language-model/v3/language-model-v3.ts +61 -0
- package/src/language-model-middleware/index.ts +2 -0
- package/src/language-model-middleware/v2/index.ts +1 -0
- package/src/language-model-middleware/v2/language-model-v2-middleware.ts +82 -0
- package/src/language-model-middleware/v3/index.ts +1 -0
- package/src/language-model-middleware/v3/language-model-v3-middleware.ts +84 -0
- package/src/provider/index.ts +2 -0
- package/src/provider/v2/index.ts +1 -0
- package/src/provider/v2/provider-v2.ts +64 -0
- package/src/provider/v3/index.ts +1 -0
- package/src/provider/v3/provider-v3.ts +93 -0
- package/src/reranking-model/index.ts +1 -0
- package/src/reranking-model/v3/index.ts +2 -0
- package/src/reranking-model/v3/reranking-model-v3-call-options.ts +40 -0
- package/src/reranking-model/v3/reranking-model-v3.ts +90 -0
- package/src/shared/index.ts +2 -0
- package/src/shared/v2/index.ts +3 -0
- package/src/shared/v2/shared-v2-headers.ts +1 -0
- package/src/shared/v2/shared-v2-provider-metadata.ts +27 -0
- package/src/shared/v2/shared-v2-provider-options.ts +24 -0
- package/src/shared/v3/index.ts +4 -0
- package/src/shared/v3/shared-v3-headers.ts +1 -0
- package/src/shared/v3/shared-v3-provider-metadata.ts +24 -0
- package/src/shared/v3/shared-v3-provider-options.ts +24 -0
- package/src/shared/v3/shared-v3-warning.ts +50 -0
- package/src/speech-model/index.ts +2 -0
- package/src/speech-model/v2/index.ts +3 -0
- package/src/speech-model/v2/speech-model-v2-call-options.ts +62 -0
- package/src/speech-model/v2/speech-model-v2-call-warning.ts +16 -0
- package/src/speech-model/v2/speech-model-v2.ts +89 -0
- package/src/speech-model/v3/index.ts +2 -0
- package/src/speech-model/v3/speech-model-v3-call-options.ts +62 -0
- package/src/speech-model/v3/speech-model-v3.ts +89 -0
- package/src/transcription-model/index.ts +2 -0
- package/src/transcription-model/v2/index.ts +3 -0
- package/src/transcription-model/v2/transcription-model-v2-call-options.ts +48 -0
- package/src/transcription-model/v2/transcription-model-v2-call-warning.ts +16 -0
- package/src/transcription-model/v2/transcription-model-v2.ts +117 -0
- package/src/transcription-model/v3/index.ts +2 -0
- package/src/transcription-model/v3/transcription-model-v3-call-options.ts +45 -0
- package/src/transcription-model/v3/transcription-model-v3.ts +117 -0
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
// src/errors/ai-sdk-error.ts
|
|
2
|
+
var marker = "vercel.ai.error";
|
|
3
|
+
var symbol = Symbol.for(marker);
|
|
4
|
+
var _a, _b;
|
|
5
|
+
var AISDKError = class _AISDKError extends (_b = Error, _a = symbol, _b) {
|
|
6
|
+
/**
|
|
7
|
+
* Creates an AI SDK Error.
|
|
8
|
+
*
|
|
9
|
+
* @param {Object} params - The parameters for creating the error.
|
|
10
|
+
* @param {string} params.name - The name of the error.
|
|
11
|
+
* @param {string} params.message - The error message.
|
|
12
|
+
* @param {unknown} [params.cause] - The underlying cause of the error.
|
|
13
|
+
*/
|
|
14
|
+
constructor({
|
|
15
|
+
name: name14,
|
|
16
|
+
message,
|
|
17
|
+
cause
|
|
18
|
+
}) {
|
|
19
|
+
super(message);
|
|
20
|
+
this[_a] = true;
|
|
21
|
+
this.name = name14;
|
|
22
|
+
this.cause = cause;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Checks if the given error is an AI SDK Error.
|
|
26
|
+
* @param {unknown} error - The error to check.
|
|
27
|
+
* @returns {boolean} True if the error is an AI SDK Error, false otherwise.
|
|
28
|
+
*/
|
|
29
|
+
static isInstance(error) {
|
|
30
|
+
return _AISDKError.hasMarker(error, marker);
|
|
31
|
+
}
|
|
32
|
+
static hasMarker(error, marker15) {
|
|
33
|
+
const markerSymbol = Symbol.for(marker15);
|
|
34
|
+
return error != null && typeof error === "object" && markerSymbol in error && typeof error[markerSymbol] === "boolean" && error[markerSymbol] === true;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// src/errors/api-call-error.ts
|
|
39
|
+
var name = "AI_APICallError";
|
|
40
|
+
var marker2 = `vercel.ai.error.${name}`;
|
|
41
|
+
var symbol2 = Symbol.for(marker2);
|
|
42
|
+
var _a2, _b2;
|
|
43
|
+
var APICallError = class extends (_b2 = AISDKError, _a2 = symbol2, _b2) {
|
|
44
|
+
constructor({
|
|
45
|
+
message,
|
|
46
|
+
url,
|
|
47
|
+
requestBodyValues,
|
|
48
|
+
statusCode,
|
|
49
|
+
responseHeaders,
|
|
50
|
+
responseBody,
|
|
51
|
+
cause,
|
|
52
|
+
isRetryable = statusCode != null && (statusCode === 408 || // request timeout
|
|
53
|
+
statusCode === 409 || // conflict
|
|
54
|
+
statusCode === 429 || // too many requests
|
|
55
|
+
statusCode >= 500),
|
|
56
|
+
// server error
|
|
57
|
+
data
|
|
58
|
+
}) {
|
|
59
|
+
super({ name, message, cause });
|
|
60
|
+
this[_a2] = true;
|
|
61
|
+
this.url = url;
|
|
62
|
+
this.requestBodyValues = requestBodyValues;
|
|
63
|
+
this.statusCode = statusCode;
|
|
64
|
+
this.responseHeaders = responseHeaders;
|
|
65
|
+
this.responseBody = responseBody;
|
|
66
|
+
this.isRetryable = isRetryable;
|
|
67
|
+
this.data = data;
|
|
68
|
+
}
|
|
69
|
+
static isInstance(error) {
|
|
70
|
+
return AISDKError.hasMarker(error, marker2);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
// src/errors/empty-response-body-error.ts
|
|
75
|
+
var name2 = "AI_EmptyResponseBodyError";
|
|
76
|
+
var marker3 = `vercel.ai.error.${name2}`;
|
|
77
|
+
var symbol3 = Symbol.for(marker3);
|
|
78
|
+
var _a3, _b3;
|
|
79
|
+
var EmptyResponseBodyError = class extends (_b3 = AISDKError, _a3 = symbol3, _b3) {
|
|
80
|
+
// used in isInstance
|
|
81
|
+
constructor({ message = "Empty response body" } = {}) {
|
|
82
|
+
super({ name: name2, message });
|
|
83
|
+
this[_a3] = true;
|
|
84
|
+
}
|
|
85
|
+
static isInstance(error) {
|
|
86
|
+
return AISDKError.hasMarker(error, marker3);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
// src/errors/get-error-message.ts
|
|
91
|
+
function getErrorMessage(error) {
|
|
92
|
+
if (error == null) {
|
|
93
|
+
return "unknown error";
|
|
94
|
+
}
|
|
95
|
+
if (typeof error === "string") {
|
|
96
|
+
return error;
|
|
97
|
+
}
|
|
98
|
+
if (error instanceof Error) {
|
|
99
|
+
return error.message;
|
|
100
|
+
}
|
|
101
|
+
return JSON.stringify(error);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// src/errors/invalid-argument-error.ts
|
|
105
|
+
var name3 = "AI_InvalidArgumentError";
|
|
106
|
+
var marker4 = `vercel.ai.error.${name3}`;
|
|
107
|
+
var symbol4 = Symbol.for(marker4);
|
|
108
|
+
var _a4, _b4;
|
|
109
|
+
var InvalidArgumentError = class extends (_b4 = AISDKError, _a4 = symbol4, _b4) {
|
|
110
|
+
constructor({
|
|
111
|
+
message,
|
|
112
|
+
cause,
|
|
113
|
+
argument
|
|
114
|
+
}) {
|
|
115
|
+
super({ name: name3, message, cause });
|
|
116
|
+
this[_a4] = true;
|
|
117
|
+
this.argument = argument;
|
|
118
|
+
}
|
|
119
|
+
static isInstance(error) {
|
|
120
|
+
return AISDKError.hasMarker(error, marker4);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
// src/errors/invalid-prompt-error.ts
|
|
125
|
+
var name4 = "AI_InvalidPromptError";
|
|
126
|
+
var marker5 = `vercel.ai.error.${name4}`;
|
|
127
|
+
var symbol5 = Symbol.for(marker5);
|
|
128
|
+
var _a5, _b5;
|
|
129
|
+
var InvalidPromptError = class extends (_b5 = AISDKError, _a5 = symbol5, _b5) {
|
|
130
|
+
constructor({
|
|
131
|
+
prompt,
|
|
132
|
+
message,
|
|
133
|
+
cause
|
|
134
|
+
}) {
|
|
135
|
+
super({ name: name4, message: `Invalid prompt: ${message}`, cause });
|
|
136
|
+
this[_a5] = true;
|
|
137
|
+
this.prompt = prompt;
|
|
138
|
+
}
|
|
139
|
+
static isInstance(error) {
|
|
140
|
+
return AISDKError.hasMarker(error, marker5);
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
// src/errors/invalid-response-data-error.ts
|
|
145
|
+
var name5 = "AI_InvalidResponseDataError";
|
|
146
|
+
var marker6 = `vercel.ai.error.${name5}`;
|
|
147
|
+
var symbol6 = Symbol.for(marker6);
|
|
148
|
+
var _a6, _b6;
|
|
149
|
+
var InvalidResponseDataError = class extends (_b6 = AISDKError, _a6 = symbol6, _b6) {
|
|
150
|
+
constructor({
|
|
151
|
+
data,
|
|
152
|
+
message = `Invalid response data: ${JSON.stringify(data)}.`
|
|
153
|
+
}) {
|
|
154
|
+
super({ name: name5, message });
|
|
155
|
+
this[_a6] = true;
|
|
156
|
+
this.data = data;
|
|
157
|
+
}
|
|
158
|
+
static isInstance(error) {
|
|
159
|
+
return AISDKError.hasMarker(error, marker6);
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
// src/errors/json-parse-error.ts
|
|
164
|
+
var name6 = "AI_JSONParseError";
|
|
165
|
+
var marker7 = `vercel.ai.error.${name6}`;
|
|
166
|
+
var symbol7 = Symbol.for(marker7);
|
|
167
|
+
var _a7, _b7;
|
|
168
|
+
var JSONParseError = class extends (_b7 = AISDKError, _a7 = symbol7, _b7) {
|
|
169
|
+
constructor({ text, cause }) {
|
|
170
|
+
super({
|
|
171
|
+
name: name6,
|
|
172
|
+
message: `JSON parsing failed: Text: ${text}.
|
|
173
|
+
Error message: ${getErrorMessage(cause)}`,
|
|
174
|
+
cause
|
|
175
|
+
});
|
|
176
|
+
this[_a7] = true;
|
|
177
|
+
this.text = text;
|
|
178
|
+
}
|
|
179
|
+
static isInstance(error) {
|
|
180
|
+
return AISDKError.hasMarker(error, marker7);
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
// src/errors/load-api-key-error.ts
|
|
185
|
+
var name7 = "AI_LoadAPIKeyError";
|
|
186
|
+
var marker8 = `vercel.ai.error.${name7}`;
|
|
187
|
+
var symbol8 = Symbol.for(marker8);
|
|
188
|
+
var _a8, _b8;
|
|
189
|
+
var LoadAPIKeyError = class extends (_b8 = AISDKError, _a8 = symbol8, _b8) {
|
|
190
|
+
// used in isInstance
|
|
191
|
+
constructor({ message }) {
|
|
192
|
+
super({ name: name7, message });
|
|
193
|
+
this[_a8] = true;
|
|
194
|
+
}
|
|
195
|
+
static isInstance(error) {
|
|
196
|
+
return AISDKError.hasMarker(error, marker8);
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
// src/errors/load-setting-error.ts
|
|
201
|
+
var name8 = "AI_LoadSettingError";
|
|
202
|
+
var marker9 = `vercel.ai.error.${name8}`;
|
|
203
|
+
var symbol9 = Symbol.for(marker9);
|
|
204
|
+
var _a9, _b9;
|
|
205
|
+
var LoadSettingError = class extends (_b9 = AISDKError, _a9 = symbol9, _b9) {
|
|
206
|
+
// used in isInstance
|
|
207
|
+
constructor({ message }) {
|
|
208
|
+
super({ name: name8, message });
|
|
209
|
+
this[_a9] = true;
|
|
210
|
+
}
|
|
211
|
+
static isInstance(error) {
|
|
212
|
+
return AISDKError.hasMarker(error, marker9);
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
// src/errors/no-content-generated-error.ts
|
|
217
|
+
var name9 = "AI_NoContentGeneratedError";
|
|
218
|
+
var marker10 = `vercel.ai.error.${name9}`;
|
|
219
|
+
var symbol10 = Symbol.for(marker10);
|
|
220
|
+
var _a10, _b10;
|
|
221
|
+
var NoContentGeneratedError = class extends (_b10 = AISDKError, _a10 = symbol10, _b10) {
|
|
222
|
+
// used in isInstance
|
|
223
|
+
constructor({
|
|
224
|
+
message = "No content generated."
|
|
225
|
+
} = {}) {
|
|
226
|
+
super({ name: name9, message });
|
|
227
|
+
this[_a10] = true;
|
|
228
|
+
}
|
|
229
|
+
static isInstance(error) {
|
|
230
|
+
return AISDKError.hasMarker(error, marker10);
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
// src/errors/no-such-model-error.ts
|
|
235
|
+
var name10 = "AI_NoSuchModelError";
|
|
236
|
+
var marker11 = `vercel.ai.error.${name10}`;
|
|
237
|
+
var symbol11 = Symbol.for(marker11);
|
|
238
|
+
var _a11, _b11;
|
|
239
|
+
var NoSuchModelError = class extends (_b11 = AISDKError, _a11 = symbol11, _b11) {
|
|
240
|
+
constructor({
|
|
241
|
+
errorName = name10,
|
|
242
|
+
modelId,
|
|
243
|
+
modelType,
|
|
244
|
+
message = `No such ${modelType}: ${modelId}`
|
|
245
|
+
}) {
|
|
246
|
+
super({ name: errorName, message });
|
|
247
|
+
this[_a11] = true;
|
|
248
|
+
this.modelId = modelId;
|
|
249
|
+
this.modelType = modelType;
|
|
250
|
+
}
|
|
251
|
+
static isInstance(error) {
|
|
252
|
+
return AISDKError.hasMarker(error, marker11);
|
|
253
|
+
}
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
// src/errors/too-many-embedding-values-for-call-error.ts
|
|
257
|
+
var name11 = "AI_TooManyEmbeddingValuesForCallError";
|
|
258
|
+
var marker12 = `vercel.ai.error.${name11}`;
|
|
259
|
+
var symbol12 = Symbol.for(marker12);
|
|
260
|
+
var _a12, _b12;
|
|
261
|
+
var TooManyEmbeddingValuesForCallError = class extends (_b12 = AISDKError, _a12 = symbol12, _b12) {
|
|
262
|
+
constructor(options) {
|
|
263
|
+
super({
|
|
264
|
+
name: name11,
|
|
265
|
+
message: `Too many values for a single embedding call. The ${options.provider} model "${options.modelId}" can only embed up to ${options.maxEmbeddingsPerCall} values per call, but ${options.values.length} values were provided.`
|
|
266
|
+
});
|
|
267
|
+
this[_a12] = true;
|
|
268
|
+
this.provider = options.provider;
|
|
269
|
+
this.modelId = options.modelId;
|
|
270
|
+
this.maxEmbeddingsPerCall = options.maxEmbeddingsPerCall;
|
|
271
|
+
this.values = options.values;
|
|
272
|
+
}
|
|
273
|
+
static isInstance(error) {
|
|
274
|
+
return AISDKError.hasMarker(error, marker12);
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
// src/errors/type-validation-error.ts
|
|
279
|
+
var name12 = "AI_TypeValidationError";
|
|
280
|
+
var marker13 = `vercel.ai.error.${name12}`;
|
|
281
|
+
var symbol13 = Symbol.for(marker13);
|
|
282
|
+
var _a13, _b13;
|
|
283
|
+
var TypeValidationError = class _TypeValidationError extends (_b13 = AISDKError, _a13 = symbol13, _b13) {
|
|
284
|
+
constructor({ value, cause }) {
|
|
285
|
+
super({
|
|
286
|
+
name: name12,
|
|
287
|
+
message: `Type validation failed: Value: ${JSON.stringify(value)}.
|
|
288
|
+
Error message: ${getErrorMessage(cause)}`,
|
|
289
|
+
cause
|
|
290
|
+
});
|
|
291
|
+
this[_a13] = true;
|
|
292
|
+
this.value = value;
|
|
293
|
+
}
|
|
294
|
+
static isInstance(error) {
|
|
295
|
+
return AISDKError.hasMarker(error, marker13);
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Wraps an error into a TypeValidationError.
|
|
299
|
+
* If the cause is already a TypeValidationError with the same value, it returns the cause.
|
|
300
|
+
* Otherwise, it creates a new TypeValidationError.
|
|
301
|
+
*
|
|
302
|
+
* @param {Object} params - The parameters for wrapping the error.
|
|
303
|
+
* @param {unknown} params.value - The value that failed validation.
|
|
304
|
+
* @param {unknown} params.cause - The original error or cause of the validation failure.
|
|
305
|
+
* @returns {TypeValidationError} A TypeValidationError instance.
|
|
306
|
+
*/
|
|
307
|
+
static wrap({
|
|
308
|
+
value,
|
|
309
|
+
cause
|
|
310
|
+
}) {
|
|
311
|
+
return _TypeValidationError.isInstance(cause) && cause.value === value ? cause : new _TypeValidationError({ value, cause });
|
|
312
|
+
}
|
|
313
|
+
};
|
|
314
|
+
|
|
315
|
+
// src/errors/unsupported-functionality-error.ts
|
|
316
|
+
var name13 = "AI_UnsupportedFunctionalityError";
|
|
317
|
+
var marker14 = `vercel.ai.error.${name13}`;
|
|
318
|
+
var symbol14 = Symbol.for(marker14);
|
|
319
|
+
var _a14, _b14;
|
|
320
|
+
var UnsupportedFunctionalityError = class extends (_b14 = AISDKError, _a14 = symbol14, _b14) {
|
|
321
|
+
constructor({
|
|
322
|
+
functionality,
|
|
323
|
+
message = `'${functionality}' functionality not supported.`
|
|
324
|
+
}) {
|
|
325
|
+
super({ name: name13, message });
|
|
326
|
+
this[_a14] = true;
|
|
327
|
+
this.functionality = functionality;
|
|
328
|
+
}
|
|
329
|
+
static isInstance(error) {
|
|
330
|
+
return AISDKError.hasMarker(error, marker14);
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
// src/json-value/is-json.ts
|
|
335
|
+
function isJSONValue(value) {
|
|
336
|
+
if (value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
337
|
+
return true;
|
|
338
|
+
}
|
|
339
|
+
if (Array.isArray(value)) {
|
|
340
|
+
return value.every(isJSONValue);
|
|
341
|
+
}
|
|
342
|
+
if (typeof value === "object") {
|
|
343
|
+
return Object.entries(value).every(
|
|
344
|
+
([key, val]) => typeof key === "string" && (val === void 0 || isJSONValue(val))
|
|
345
|
+
);
|
|
346
|
+
}
|
|
347
|
+
return false;
|
|
348
|
+
}
|
|
349
|
+
function isJSONArray(value) {
|
|
350
|
+
return Array.isArray(value) && value.every(isJSONValue);
|
|
351
|
+
}
|
|
352
|
+
function isJSONObject(value) {
|
|
353
|
+
return value != null && typeof value === "object" && Object.entries(value).every(
|
|
354
|
+
([key, val]) => typeof key === "string" && (val === void 0 || isJSONValue(val))
|
|
355
|
+
);
|
|
356
|
+
}
|
|
357
|
+
export {
|
|
358
|
+
AISDKError,
|
|
359
|
+
APICallError,
|
|
360
|
+
EmptyResponseBodyError,
|
|
361
|
+
InvalidArgumentError,
|
|
362
|
+
InvalidPromptError,
|
|
363
|
+
InvalidResponseDataError,
|
|
364
|
+
JSONParseError,
|
|
365
|
+
LoadAPIKeyError,
|
|
366
|
+
LoadSettingError,
|
|
367
|
+
NoContentGeneratedError,
|
|
368
|
+
NoSuchModelError,
|
|
369
|
+
TooManyEmbeddingValuesForCallError,
|
|
370
|
+
TypeValidationError,
|
|
371
|
+
UnsupportedFunctionalityError,
|
|
372
|
+
getErrorMessage,
|
|
373
|
+
isJSONArray,
|
|
374
|
+
isJSONObject,
|
|
375
|
+
isJSONValue
|
|
376
|
+
};
|
|
377
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/errors/ai-sdk-error.ts","../src/errors/api-call-error.ts","../src/errors/empty-response-body-error.ts","../src/errors/get-error-message.ts","../src/errors/invalid-argument-error.ts","../src/errors/invalid-prompt-error.ts","../src/errors/invalid-response-data-error.ts","../src/errors/json-parse-error.ts","../src/errors/load-api-key-error.ts","../src/errors/load-setting-error.ts","../src/errors/no-content-generated-error.ts","../src/errors/no-such-model-error.ts","../src/errors/too-many-embedding-values-for-call-error.ts","../src/errors/type-validation-error.ts","../src/errors/unsupported-functionality-error.ts","../src/json-value/is-json.ts"],"sourcesContent":["/**\n * Symbol used for identifying AI SDK Error instances.\n * Enables checking if an error is an instance of AISDKError across package versions.\n */\nconst marker = 'vercel.ai.error';\nconst symbol = Symbol.for(marker);\n\n/**\n * Custom error class for AI SDK related errors.\n * @extends Error\n */\nexport class AISDKError extends Error {\n private readonly [symbol] = true; // used in isInstance\n\n /**\n * The underlying cause of the error, if any.\n */\n readonly cause?: unknown;\n\n /**\n * Creates an AI SDK Error.\n *\n * @param {Object} params - The parameters for creating the error.\n * @param {string} params.name - The name of the error.\n * @param {string} params.message - The error message.\n * @param {unknown} [params.cause] - The underlying cause of the error.\n */\n constructor({\n name,\n message,\n cause,\n }: {\n name: string;\n message: string;\n cause?: unknown;\n }) {\n super(message);\n\n this.name = name;\n this.cause = cause;\n }\n\n /**\n * Checks if the given error is an AI SDK Error.\n * @param {unknown} error - The error to check.\n * @returns {boolean} True if the error is an AI SDK Error, false otherwise.\n */\n static isInstance(error: unknown): error is AISDKError {\n return AISDKError.hasMarker(error, marker);\n }\n\n protected static hasMarker(error: unknown, marker: string): boolean {\n const markerSymbol = Symbol.for(marker);\n return (\n error != null &&\n typeof error === 'object' &&\n markerSymbol in error &&\n typeof error[markerSymbol] === 'boolean' &&\n error[markerSymbol] === true\n );\n }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_APICallError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class APICallError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly url: string;\n readonly requestBodyValues: unknown;\n readonly statusCode?: number;\n\n readonly responseHeaders?: Record<string, string>;\n readonly responseBody?: string;\n\n readonly isRetryable: boolean;\n readonly data?: unknown;\n\n constructor({\n message,\n url,\n requestBodyValues,\n statusCode,\n responseHeaders,\n responseBody,\n cause,\n isRetryable = statusCode != null &&\n (statusCode === 408 || // request timeout\n statusCode === 409 || // conflict\n statusCode === 429 || // too many requests\n statusCode >= 500), // server error\n data,\n }: {\n message: string;\n url: string;\n requestBodyValues: unknown;\n statusCode?: number;\n responseHeaders?: Record<string, string>;\n responseBody?: string;\n cause?: unknown;\n isRetryable?: boolean;\n data?: unknown;\n }) {\n super({ name, message, cause });\n\n this.url = url;\n this.requestBodyValues = requestBodyValues;\n this.statusCode = statusCode;\n this.responseHeaders = responseHeaders;\n this.responseBody = responseBody;\n this.isRetryable = isRetryable;\n this.data = data;\n }\n\n static isInstance(error: unknown): error is APICallError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_EmptyResponseBodyError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class EmptyResponseBodyError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n constructor({ message = 'Empty response body' }: { message?: string } = {}) {\n super({ name, message });\n }\n\n static isInstance(error: unknown): error is EmptyResponseBodyError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","export function getErrorMessage(error: unknown | undefined) {\n if (error == null) {\n return 'unknown error';\n }\n\n if (typeof error === 'string') {\n return error;\n }\n\n if (error instanceof Error) {\n return error.message;\n }\n\n return JSON.stringify(error);\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_InvalidArgumentError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * A function argument is invalid.\n */\nexport class InvalidArgumentError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly argument: string;\n\n constructor({\n message,\n cause,\n argument,\n }: {\n argument: string;\n message: string;\n cause?: unknown;\n }) {\n super({ name, message, cause });\n\n this.argument = argument;\n }\n\n static isInstance(error: unknown): error is InvalidArgumentError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_InvalidPromptError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * A prompt is invalid. This error should be thrown by providers when they cannot\n * process a prompt.\n */\nexport class InvalidPromptError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly prompt: unknown;\n\n constructor({\n prompt,\n message,\n cause,\n }: {\n prompt: unknown;\n message: string;\n cause?: unknown;\n }) {\n super({ name, message: `Invalid prompt: ${message}`, cause });\n\n this.prompt = prompt;\n }\n\n static isInstance(error: unknown): error is InvalidPromptError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_InvalidResponseDataError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Server returned a response with invalid data content.\n * This should be thrown by providers when they cannot parse the response from the API.\n */\nexport class InvalidResponseDataError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly data: unknown;\n\n constructor({\n data,\n message = `Invalid response data: ${JSON.stringify(data)}.`,\n }: {\n data: unknown;\n message?: string;\n }) {\n super({ name, message });\n\n this.data = data;\n }\n\n static isInstance(error: unknown): error is InvalidResponseDataError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\nimport { getErrorMessage } from './get-error-message';\n\nconst name = 'AI_JSONParseError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class JSONParseError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly text: string;\n\n constructor({ text, cause }: { text: string; cause: unknown }) {\n super({\n name,\n message:\n `JSON parsing failed: ` +\n `Text: ${text}.\\n` +\n `Error message: ${getErrorMessage(cause)}`,\n cause,\n });\n\n this.text = text;\n }\n\n static isInstance(error: unknown): error is JSONParseError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_LoadAPIKeyError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class LoadAPIKeyError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n constructor({ message }: { message: string }) {\n super({ name, message });\n }\n\n static isInstance(error: unknown): error is LoadAPIKeyError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_LoadSettingError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class LoadSettingError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n constructor({ message }: { message: string }) {\n super({ name, message });\n }\n\n static isInstance(error: unknown): error is LoadSettingError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_NoContentGeneratedError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\nThrown when the AI provider fails to generate any content.\n */\nexport class NoContentGeneratedError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n constructor({\n message = 'No content generated.',\n }: { message?: string } = {}) {\n super({ name, message });\n }\n\n static isInstance(error: unknown): error is NoContentGeneratedError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_NoSuchModelError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class NoSuchModelError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly modelId: string;\n readonly modelType:\n | 'languageModel'\n | 'embeddingModel'\n | 'imageModel'\n | 'transcriptionModel'\n | 'speechModel'\n | 'rerankingModel';\n\n constructor({\n errorName = name,\n modelId,\n modelType,\n message = `No such ${modelType}: ${modelId}`,\n }: {\n errorName?: string;\n modelId: string;\n modelType:\n | 'languageModel'\n | 'embeddingModel'\n | 'imageModel'\n | 'transcriptionModel'\n | 'speechModel'\n | 'rerankingModel';\n message?: string;\n }) {\n super({ name: errorName, message });\n\n this.modelId = modelId;\n this.modelType = modelType;\n }\n\n static isInstance(error: unknown): error is NoSuchModelError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_TooManyEmbeddingValuesForCallError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class TooManyEmbeddingValuesForCallError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly provider: string;\n readonly modelId: string;\n readonly maxEmbeddingsPerCall: number;\n readonly values: Array<unknown>;\n\n constructor(options: {\n provider: string;\n modelId: string;\n maxEmbeddingsPerCall: number;\n values: Array<unknown>;\n }) {\n super({\n name,\n message:\n `Too many values for a single embedding call. ` +\n `The ${options.provider} model \"${options.modelId}\" can only embed up to ` +\n `${options.maxEmbeddingsPerCall} values per call, but ${options.values.length} values were provided.`,\n });\n\n this.provider = options.provider;\n this.modelId = options.modelId;\n this.maxEmbeddingsPerCall = options.maxEmbeddingsPerCall;\n this.values = options.values;\n }\n\n static isInstance(\n error: unknown,\n ): error is TooManyEmbeddingValuesForCallError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\nimport { getErrorMessage } from './get-error-message';\n\nconst name = 'AI_TypeValidationError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class TypeValidationError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly value: unknown;\n\n constructor({ value, cause }: { value: unknown; cause: unknown }) {\n super({\n name,\n message:\n `Type validation failed: ` +\n `Value: ${JSON.stringify(value)}.\\n` +\n `Error message: ${getErrorMessage(cause)}`,\n cause,\n });\n\n this.value = value;\n }\n\n static isInstance(error: unknown): error is TypeValidationError {\n return AISDKError.hasMarker(error, marker);\n }\n\n /**\n * Wraps an error into a TypeValidationError.\n * If the cause is already a TypeValidationError with the same value, it returns the cause.\n * Otherwise, it creates a new TypeValidationError.\n *\n * @param {Object} params - The parameters for wrapping the error.\n * @param {unknown} params.value - The value that failed validation.\n * @param {unknown} params.cause - The original error or cause of the validation failure.\n * @returns {TypeValidationError} A TypeValidationError instance.\n */\n static wrap({\n value,\n cause,\n }: {\n value: unknown;\n cause: unknown;\n }): TypeValidationError {\n return TypeValidationError.isInstance(cause) && cause.value === value\n ? cause\n : new TypeValidationError({ value, cause });\n }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_UnsupportedFunctionalityError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class UnsupportedFunctionalityError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly functionality: string;\n\n constructor({\n functionality,\n message = `'${functionality}' functionality not supported.`,\n }: {\n functionality: string;\n message?: string;\n }) {\n super({ name, message });\n this.functionality = functionality;\n }\n\n static isInstance(error: unknown): error is UnsupportedFunctionalityError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { JSONArray, JSONObject, JSONValue } from './json-value';\n\nexport function isJSONValue(value: unknown): value is JSONValue {\n if (\n value === null ||\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return true;\n }\n\n if (Array.isArray(value)) {\n return value.every(isJSONValue);\n }\n\n if (typeof value === 'object') {\n return Object.entries(value).every(\n ([key, val]) =>\n typeof key === 'string' && (val === undefined || isJSONValue(val)),\n );\n }\n\n return false;\n}\n\nexport function isJSONArray(value: unknown): value is JSONArray {\n return Array.isArray(value) && value.every(isJSONValue);\n}\n\nexport function isJSONObject(value: unknown): value is JSONObject {\n return (\n value != null &&\n typeof value === 'object' &&\n Object.entries(value).every(\n ([key, val]) =>\n typeof key === 'string' && (val === undefined || isJSONValue(val)),\n )\n );\n}\n"],"mappings":"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","names":["name","marker","marker","symbol","_a","_b","name","marker","symbol","_a","_b","name","marker","symbol","_a","_b","name","marker","symbol","_a","_b","name","marker","symbol","_a","_b","name","marker","symbol","_a","_b","name","marker","symbol","_a","_b","name","marker","symbol","_a","_b","name","marker","symbol","_a","_b","name","marker","symbol","_a","_b","name","marker","symbol","_a","_b","name","marker","symbol","_a","_b","name","marker","symbol","_a","_b"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ai-sdk/provider",
|
|
3
|
+
"version": "0.0.0-4115c213-20260122152721",
|
|
4
|
+
"license": "Apache-2.0",
|
|
5
|
+
"sideEffects": false,
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.mjs",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"source": "./src/index.ts",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/**/*",
|
|
12
|
+
"src",
|
|
13
|
+
"!src/**/*.test.ts",
|
|
14
|
+
"!src/**/*.test-d.ts",
|
|
15
|
+
"!src/**/__snapshots__",
|
|
16
|
+
"!src/**/__fixtures__",
|
|
17
|
+
"CHANGELOG.md",
|
|
18
|
+
"README.md"
|
|
19
|
+
],
|
|
20
|
+
"exports": {
|
|
21
|
+
"./package.json": "./package.json",
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
24
|
+
"import": "./dist/index.mjs",
|
|
25
|
+
"require": "./dist/index.js"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"json-schema": "^0.4.0"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@types/json-schema": "7.0.15",
|
|
33
|
+
"@types/node": "20.17.24",
|
|
34
|
+
"tsup": "^8",
|
|
35
|
+
"typescript": "5.8.3",
|
|
36
|
+
"@vercel/ai-tsconfig": "0.0.0"
|
|
37
|
+
},
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=18"
|
|
40
|
+
},
|
|
41
|
+
"publishConfig": {
|
|
42
|
+
"access": "public"
|
|
43
|
+
},
|
|
44
|
+
"homepage": "https://ai-sdk.dev/docs",
|
|
45
|
+
"repository": {
|
|
46
|
+
"type": "git",
|
|
47
|
+
"url": "git+https://github.com/vercel/ai.git"
|
|
48
|
+
},
|
|
49
|
+
"bugs": {
|
|
50
|
+
"url": "https://github.com/vercel/ai/issues"
|
|
51
|
+
},
|
|
52
|
+
"keywords": [
|
|
53
|
+
"ai"
|
|
54
|
+
],
|
|
55
|
+
"scripts": {
|
|
56
|
+
"build": "pnpm clean && tsup --tsconfig tsconfig.build.json",
|
|
57
|
+
"build:watch": "pnpm clean && tsup --watch",
|
|
58
|
+
"clean": "del-cli dist *.tsbuildinfo",
|
|
59
|
+
"lint": "eslint \"./**/*.ts*\"",
|
|
60
|
+
"type-check": "tsc --build",
|
|
61
|
+
"prettier-check": "prettier --check \"./**/*.ts*\""
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SharedV2Headers,
|
|
3
|
+
SharedV2ProviderOptions,
|
|
4
|
+
SharedV2ProviderMetadata,
|
|
5
|
+
} from '../../shared';
|
|
6
|
+
import { EmbeddingModelV2Embedding } from './embedding-model-v2-embedding';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
Specification for an embedding model that implements the embedding model
|
|
10
|
+
interface version 2.
|
|
11
|
+
|
|
12
|
+
VALUE is the type of the values that the model can embed.
|
|
13
|
+
This will allow us to go beyond text embeddings in the future,
|
|
14
|
+
e.g. to support image embeddings
|
|
15
|
+
*/
|
|
16
|
+
export type EmbeddingModelV2<VALUE> = {
|
|
17
|
+
/**
|
|
18
|
+
The embedding model must specify which embedding model interface
|
|
19
|
+
version it implements. This will allow us to evolve the embedding
|
|
20
|
+
model interface and retain backwards compatibility. The different
|
|
21
|
+
implementation versions can be handled as a discriminated union
|
|
22
|
+
on our side.
|
|
23
|
+
*/
|
|
24
|
+
readonly specificationVersion: 'v2';
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
Name of the provider for logging purposes.
|
|
28
|
+
*/
|
|
29
|
+
readonly provider: string;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
Provider-specific model ID for logging purposes.
|
|
33
|
+
*/
|
|
34
|
+
readonly modelId: string;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
Limit of how many embeddings can be generated in a single API call.
|
|
38
|
+
|
|
39
|
+
Use Infinity for models that do not have a limit.
|
|
40
|
+
*/
|
|
41
|
+
readonly maxEmbeddingsPerCall:
|
|
42
|
+
| PromiseLike<number | undefined>
|
|
43
|
+
| number
|
|
44
|
+
| undefined;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
True if the model can handle multiple embedding calls in parallel.
|
|
48
|
+
*/
|
|
49
|
+
readonly supportsParallelCalls: PromiseLike<boolean> | boolean;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
Generates a list of embeddings for the given input text.
|
|
53
|
+
|
|
54
|
+
Naming: "do" prefix to prevent accidental direct usage of the method
|
|
55
|
+
by the user.
|
|
56
|
+
*/
|
|
57
|
+
doEmbed(options: {
|
|
58
|
+
/**
|
|
59
|
+
List of values to embed.
|
|
60
|
+
*/
|
|
61
|
+
values: Array<VALUE>;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
Abort signal for cancelling the operation.
|
|
65
|
+
*/
|
|
66
|
+
abortSignal?: AbortSignal;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
Additional provider-specific options. They are passed through
|
|
70
|
+
to the provider from the AI SDK and enable provider-specific
|
|
71
|
+
functionality that can be fully encapsulated in the provider.
|
|
72
|
+
*/
|
|
73
|
+
providerOptions?: SharedV2ProviderOptions;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
Additional HTTP headers to be sent with the request.
|
|
77
|
+
Only applicable for HTTP-based providers.
|
|
78
|
+
*/
|
|
79
|
+
headers?: Record<string, string | undefined>;
|
|
80
|
+
}): PromiseLike<{
|
|
81
|
+
/**
|
|
82
|
+
Generated embeddings. They are in the same order as the input values.
|
|
83
|
+
*/
|
|
84
|
+
embeddings: Array<EmbeddingModelV2Embedding>;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
Token usage. We only have input tokens for embeddings.
|
|
88
|
+
*/
|
|
89
|
+
usage?: { tokens: number };
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
Additional provider-specific metadata. They are passed through
|
|
93
|
+
from the provider to the AI SDK and enable provider-specific
|
|
94
|
+
results that can be fully encapsulated in the provider.
|
|
95
|
+
*/
|
|
96
|
+
providerMetadata?: SharedV2ProviderMetadata;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
Optional response information for debugging purposes.
|
|
100
|
+
*/
|
|
101
|
+
response?: {
|
|
102
|
+
/**
|
|
103
|
+
Response headers.
|
|
104
|
+
*/
|
|
105
|
+
headers?: SharedV2Headers;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
The response body.
|
|
109
|
+
*/
|
|
110
|
+
body?: unknown;
|
|
111
|
+
};
|
|
112
|
+
}>;
|
|
113
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { SharedV3Headers, SharedV3ProviderOptions } from '../../shared';
|
|
2
|
+
|
|
3
|
+
export type EmbeddingModelV3CallOptions = {
|
|
4
|
+
/**
|
|
5
|
+
List of text values to generate embeddings for.
|
|
6
|
+
*/
|
|
7
|
+
values: Array<string>;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
Abort signal for cancelling the operation.
|
|
11
|
+
*/
|
|
12
|
+
abortSignal?: AbortSignal;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
Additional provider-specific options. They are passed through
|
|
16
|
+
to the provider from the AI SDK and enable provider-specific
|
|
17
|
+
functionality that can be fully encapsulated in the provider.
|
|
18
|
+
*/
|
|
19
|
+
providerOptions?: SharedV3ProviderOptions;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
Additional HTTP headers to be sent with the request.
|
|
23
|
+
Only applicable for HTTP-based providers.
|
|
24
|
+
*/
|
|
25
|
+
headers?: SharedV3Headers;
|
|
26
|
+
};
|