ai 6.0.2 → 6.0.3
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 +9 -0
- package/dist/index.d.mts +31 -9
- package/dist/index.d.ts +31 -9
- package/dist/index.js +579 -392
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +513 -328
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +25 -8
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +25 -8
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -4,8 +4,8 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
6
|
var __export = (target, all) => {
|
|
7
|
-
for (var
|
|
8
|
-
__defProp(target,
|
|
7
|
+
for (var name16 in all)
|
|
8
|
+
__defProp(target, name16, { get: all[name16], enumerable: true });
|
|
9
9
|
};
|
|
10
10
|
var __copyProps = (to, from, except, desc) => {
|
|
11
11
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
@@ -20,44 +20,46 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/index.ts
|
|
21
21
|
var src_exports = {};
|
|
22
22
|
__export(src_exports, {
|
|
23
|
-
AISDKError: () =>
|
|
24
|
-
APICallError: () =>
|
|
23
|
+
AISDKError: () => import_provider17.AISDKError,
|
|
24
|
+
APICallError: () => import_provider17.APICallError,
|
|
25
25
|
AbstractChat: () => AbstractChat,
|
|
26
26
|
DefaultChatTransport: () => DefaultChatTransport,
|
|
27
27
|
DownloadError: () => import_provider_utils.DownloadError,
|
|
28
|
-
EmptyResponseBodyError: () =>
|
|
28
|
+
EmptyResponseBodyError: () => import_provider17.EmptyResponseBodyError,
|
|
29
29
|
Experimental_Agent: () => ToolLoopAgent,
|
|
30
30
|
HttpChatTransport: () => HttpChatTransport,
|
|
31
31
|
InvalidArgumentError: () => InvalidArgumentError,
|
|
32
32
|
InvalidDataContentError: () => InvalidDataContentError,
|
|
33
33
|
InvalidMessageRoleError: () => InvalidMessageRoleError,
|
|
34
|
-
InvalidPromptError: () =>
|
|
35
|
-
InvalidResponseDataError: () =>
|
|
34
|
+
InvalidPromptError: () => import_provider17.InvalidPromptError,
|
|
35
|
+
InvalidResponseDataError: () => import_provider17.InvalidResponseDataError,
|
|
36
36
|
InvalidStreamPartError: () => InvalidStreamPartError,
|
|
37
|
+
InvalidToolApprovalError: () => InvalidToolApprovalError,
|
|
37
38
|
InvalidToolInputError: () => InvalidToolInputError,
|
|
38
|
-
JSONParseError: () =>
|
|
39
|
+
JSONParseError: () => import_provider17.JSONParseError,
|
|
39
40
|
JsonToSseTransformStream: () => JsonToSseTransformStream,
|
|
40
|
-
LoadAPIKeyError: () =>
|
|
41
|
-
LoadSettingError: () =>
|
|
41
|
+
LoadAPIKeyError: () => import_provider17.LoadAPIKeyError,
|
|
42
|
+
LoadSettingError: () => import_provider17.LoadSettingError,
|
|
42
43
|
MessageConversionError: () => MessageConversionError,
|
|
43
|
-
NoContentGeneratedError: () =>
|
|
44
|
+
NoContentGeneratedError: () => import_provider17.NoContentGeneratedError,
|
|
44
45
|
NoImageGeneratedError: () => NoImageGeneratedError,
|
|
45
46
|
NoObjectGeneratedError: () => NoObjectGeneratedError,
|
|
46
47
|
NoOutputGeneratedError: () => NoOutputGeneratedError,
|
|
47
48
|
NoSpeechGeneratedError: () => NoSpeechGeneratedError,
|
|
48
|
-
NoSuchModelError: () =>
|
|
49
|
+
NoSuchModelError: () => import_provider17.NoSuchModelError,
|
|
49
50
|
NoSuchProviderError: () => NoSuchProviderError,
|
|
50
51
|
NoSuchToolError: () => NoSuchToolError,
|
|
51
52
|
Output: () => output_exports,
|
|
52
53
|
RetryError: () => RetryError,
|
|
53
54
|
SerialJobExecutor: () => SerialJobExecutor,
|
|
54
55
|
TextStreamChatTransport: () => TextStreamChatTransport,
|
|
55
|
-
TooManyEmbeddingValuesForCallError: () =>
|
|
56
|
+
TooManyEmbeddingValuesForCallError: () => import_provider17.TooManyEmbeddingValuesForCallError,
|
|
57
|
+
ToolCallNotFoundForApprovalError: () => ToolCallNotFoundForApprovalError,
|
|
56
58
|
ToolCallRepairError: () => ToolCallRepairError,
|
|
57
59
|
ToolLoopAgent: () => ToolLoopAgent,
|
|
58
|
-
TypeValidationError: () =>
|
|
60
|
+
TypeValidationError: () => import_provider17.TypeValidationError,
|
|
59
61
|
UI_MESSAGE_STREAM_HEADERS: () => UI_MESSAGE_STREAM_HEADERS,
|
|
60
|
-
UnsupportedFunctionalityError: () =>
|
|
62
|
+
UnsupportedFunctionalityError: () => import_provider17.UnsupportedFunctionalityError,
|
|
61
63
|
UnsupportedModelVersionError: () => UnsupportedModelVersionError,
|
|
62
64
|
addToolInputExamplesMiddleware: () => addToolInputExamplesMiddleware,
|
|
63
65
|
asSchema: () => import_provider_utils38.asSchema,
|
|
@@ -143,7 +145,7 @@ var import_provider_utils38 = require("@ai-sdk/provider-utils");
|
|
|
143
145
|
var import_provider_utils15 = require("@ai-sdk/provider-utils");
|
|
144
146
|
|
|
145
147
|
// src/error/index.ts
|
|
146
|
-
var
|
|
148
|
+
var import_provider17 = require("@ai-sdk/provider");
|
|
147
149
|
|
|
148
150
|
// src/error/invalid-argument-error.ts
|
|
149
151
|
var import_provider = require("@ai-sdk/provider");
|
|
@@ -192,23 +194,20 @@ var InvalidStreamPartError = class extends import_provider2.AISDKError {
|
|
|
192
194
|
};
|
|
193
195
|
_a2 = symbol2;
|
|
194
196
|
|
|
195
|
-
// src/error/invalid-tool-
|
|
197
|
+
// src/error/invalid-tool-approval-error.ts
|
|
196
198
|
var import_provider3 = require("@ai-sdk/provider");
|
|
197
|
-
var name3 = "
|
|
199
|
+
var name3 = "AI_InvalidToolApprovalError";
|
|
198
200
|
var marker3 = `vercel.ai.error.${name3}`;
|
|
199
201
|
var symbol3 = Symbol.for(marker3);
|
|
200
202
|
var _a3;
|
|
201
|
-
var
|
|
202
|
-
constructor({
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
}) {
|
|
208
|
-
super({ name: name3, message, cause });
|
|
203
|
+
var InvalidToolApprovalError = class extends import_provider3.AISDKError {
|
|
204
|
+
constructor({ approvalId }) {
|
|
205
|
+
super({
|
|
206
|
+
name: name3,
|
|
207
|
+
message: `Tool approval response references unknown approvalId: "${approvalId}". No matching tool-approval-request found in message history.`
|
|
208
|
+
});
|
|
209
209
|
this[_a3] = true;
|
|
210
|
-
this.
|
|
211
|
-
this.toolName = toolName;
|
|
210
|
+
this.approvalId = approvalId;
|
|
212
211
|
}
|
|
213
212
|
static isInstance(error) {
|
|
214
213
|
return import_provider3.AISDKError.hasMarker(error, marker3);
|
|
@@ -216,21 +215,23 @@ var InvalidToolInputError = class extends import_provider3.AISDKError {
|
|
|
216
215
|
};
|
|
217
216
|
_a3 = symbol3;
|
|
218
217
|
|
|
219
|
-
// src/error/
|
|
218
|
+
// src/error/invalid-tool-input-error.ts
|
|
220
219
|
var import_provider4 = require("@ai-sdk/provider");
|
|
221
|
-
var name4 = "
|
|
220
|
+
var name4 = "AI_InvalidToolInputError";
|
|
222
221
|
var marker4 = `vercel.ai.error.${name4}`;
|
|
223
222
|
var symbol4 = Symbol.for(marker4);
|
|
224
223
|
var _a4;
|
|
225
|
-
var
|
|
224
|
+
var InvalidToolInputError = class extends import_provider4.AISDKError {
|
|
226
225
|
constructor({
|
|
227
|
-
|
|
226
|
+
toolInput,
|
|
227
|
+
toolName,
|
|
228
228
|
cause,
|
|
229
|
-
|
|
229
|
+
message = `Invalid input for tool ${toolName}: ${(0, import_provider4.getErrorMessage)(cause)}`
|
|
230
230
|
}) {
|
|
231
231
|
super({ name: name4, message, cause });
|
|
232
232
|
this[_a4] = true;
|
|
233
|
-
this.
|
|
233
|
+
this.toolInput = toolInput;
|
|
234
|
+
this.toolName = toolName;
|
|
234
235
|
}
|
|
235
236
|
static isInstance(error) {
|
|
236
237
|
return import_provider4.AISDKError.hasMarker(error, marker4);
|
|
@@ -238,13 +239,60 @@ var NoImageGeneratedError = class extends import_provider4.AISDKError {
|
|
|
238
239
|
};
|
|
239
240
|
_a4 = symbol4;
|
|
240
241
|
|
|
241
|
-
// src/error/
|
|
242
|
+
// src/error/tool-call-not-found-for-approval-error.ts
|
|
242
243
|
var import_provider5 = require("@ai-sdk/provider");
|
|
243
|
-
var name5 = "
|
|
244
|
+
var name5 = "AI_ToolCallNotFoundForApprovalError";
|
|
244
245
|
var marker5 = `vercel.ai.error.${name5}`;
|
|
245
246
|
var symbol5 = Symbol.for(marker5);
|
|
246
247
|
var _a5;
|
|
247
|
-
var
|
|
248
|
+
var ToolCallNotFoundForApprovalError = class extends import_provider5.AISDKError {
|
|
249
|
+
constructor({
|
|
250
|
+
toolCallId,
|
|
251
|
+
approvalId
|
|
252
|
+
}) {
|
|
253
|
+
super({
|
|
254
|
+
name: name5,
|
|
255
|
+
message: `Tool call "${toolCallId}" not found for approval request "${approvalId}".`
|
|
256
|
+
});
|
|
257
|
+
this[_a5] = true;
|
|
258
|
+
this.toolCallId = toolCallId;
|
|
259
|
+
this.approvalId = approvalId;
|
|
260
|
+
}
|
|
261
|
+
static isInstance(error) {
|
|
262
|
+
return import_provider5.AISDKError.hasMarker(error, marker5);
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
_a5 = symbol5;
|
|
266
|
+
|
|
267
|
+
// src/error/no-image-generated-error.ts
|
|
268
|
+
var import_provider6 = require("@ai-sdk/provider");
|
|
269
|
+
var name6 = "AI_NoImageGeneratedError";
|
|
270
|
+
var marker6 = `vercel.ai.error.${name6}`;
|
|
271
|
+
var symbol6 = Symbol.for(marker6);
|
|
272
|
+
var _a6;
|
|
273
|
+
var NoImageGeneratedError = class extends import_provider6.AISDKError {
|
|
274
|
+
constructor({
|
|
275
|
+
message = "No image generated.",
|
|
276
|
+
cause,
|
|
277
|
+
responses
|
|
278
|
+
}) {
|
|
279
|
+
super({ name: name6, message, cause });
|
|
280
|
+
this[_a6] = true;
|
|
281
|
+
this.responses = responses;
|
|
282
|
+
}
|
|
283
|
+
static isInstance(error) {
|
|
284
|
+
return import_provider6.AISDKError.hasMarker(error, marker6);
|
|
285
|
+
}
|
|
286
|
+
};
|
|
287
|
+
_a6 = symbol6;
|
|
288
|
+
|
|
289
|
+
// src/error/no-object-generated-error.ts
|
|
290
|
+
var import_provider7 = require("@ai-sdk/provider");
|
|
291
|
+
var name7 = "AI_NoObjectGeneratedError";
|
|
292
|
+
var marker7 = `vercel.ai.error.${name7}`;
|
|
293
|
+
var symbol7 = Symbol.for(marker7);
|
|
294
|
+
var _a7;
|
|
295
|
+
var NoObjectGeneratedError = class extends import_provider7.AISDKError {
|
|
248
296
|
constructor({
|
|
249
297
|
message = "No object generated.",
|
|
250
298
|
cause,
|
|
@@ -253,43 +301,43 @@ var NoObjectGeneratedError = class extends import_provider5.AISDKError {
|
|
|
253
301
|
usage,
|
|
254
302
|
finishReason
|
|
255
303
|
}) {
|
|
256
|
-
super({ name:
|
|
257
|
-
this[
|
|
304
|
+
super({ name: name7, message, cause });
|
|
305
|
+
this[_a7] = true;
|
|
258
306
|
this.text = text2;
|
|
259
307
|
this.response = response;
|
|
260
308
|
this.usage = usage;
|
|
261
309
|
this.finishReason = finishReason;
|
|
262
310
|
}
|
|
263
311
|
static isInstance(error) {
|
|
264
|
-
return
|
|
312
|
+
return import_provider7.AISDKError.hasMarker(error, marker7);
|
|
265
313
|
}
|
|
266
314
|
};
|
|
267
|
-
|
|
315
|
+
_a7 = symbol7;
|
|
268
316
|
|
|
269
317
|
// src/error/no-output-generated-error.ts
|
|
270
|
-
var
|
|
271
|
-
var
|
|
272
|
-
var
|
|
273
|
-
var
|
|
274
|
-
var
|
|
275
|
-
var NoOutputGeneratedError = class extends
|
|
318
|
+
var import_provider8 = require("@ai-sdk/provider");
|
|
319
|
+
var name8 = "AI_NoOutputGeneratedError";
|
|
320
|
+
var marker8 = `vercel.ai.error.${name8}`;
|
|
321
|
+
var symbol8 = Symbol.for(marker8);
|
|
322
|
+
var _a8;
|
|
323
|
+
var NoOutputGeneratedError = class extends import_provider8.AISDKError {
|
|
276
324
|
// used in isInstance
|
|
277
325
|
constructor({
|
|
278
326
|
message = "No output generated.",
|
|
279
327
|
cause
|
|
280
328
|
} = {}) {
|
|
281
|
-
super({ name:
|
|
282
|
-
this[
|
|
329
|
+
super({ name: name8, message, cause });
|
|
330
|
+
this[_a8] = true;
|
|
283
331
|
}
|
|
284
332
|
static isInstance(error) {
|
|
285
|
-
return
|
|
333
|
+
return import_provider8.AISDKError.hasMarker(error, marker8);
|
|
286
334
|
}
|
|
287
335
|
};
|
|
288
|
-
|
|
336
|
+
_a8 = symbol8;
|
|
289
337
|
|
|
290
338
|
// src/error/no-speech-generated-error.ts
|
|
291
|
-
var
|
|
292
|
-
var NoSpeechGeneratedError = class extends
|
|
339
|
+
var import_provider9 = require("@ai-sdk/provider");
|
|
340
|
+
var NoSpeechGeneratedError = class extends import_provider9.AISDKError {
|
|
293
341
|
constructor(options) {
|
|
294
342
|
super({
|
|
295
343
|
name: "AI_NoSpeechGeneratedError",
|
|
@@ -300,53 +348,53 @@ var NoSpeechGeneratedError = class extends import_provider7.AISDKError {
|
|
|
300
348
|
};
|
|
301
349
|
|
|
302
350
|
// src/error/no-such-tool-error.ts
|
|
303
|
-
var
|
|
304
|
-
var
|
|
305
|
-
var
|
|
306
|
-
var
|
|
307
|
-
var
|
|
308
|
-
var NoSuchToolError = class extends
|
|
351
|
+
var import_provider10 = require("@ai-sdk/provider");
|
|
352
|
+
var name9 = "AI_NoSuchToolError";
|
|
353
|
+
var marker9 = `vercel.ai.error.${name9}`;
|
|
354
|
+
var symbol9 = Symbol.for(marker9);
|
|
355
|
+
var _a9;
|
|
356
|
+
var NoSuchToolError = class extends import_provider10.AISDKError {
|
|
309
357
|
constructor({
|
|
310
358
|
toolName,
|
|
311
359
|
availableTools = void 0,
|
|
312
360
|
message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? "No tools are available." : `Available tools: ${availableTools.join(", ")}.`}`
|
|
313
361
|
}) {
|
|
314
|
-
super({ name:
|
|
315
|
-
this[
|
|
362
|
+
super({ name: name9, message });
|
|
363
|
+
this[_a9] = true;
|
|
316
364
|
this.toolName = toolName;
|
|
317
365
|
this.availableTools = availableTools;
|
|
318
366
|
}
|
|
319
367
|
static isInstance(error) {
|
|
320
|
-
return
|
|
368
|
+
return import_provider10.AISDKError.hasMarker(error, marker9);
|
|
321
369
|
}
|
|
322
370
|
};
|
|
323
|
-
|
|
371
|
+
_a9 = symbol9;
|
|
324
372
|
|
|
325
373
|
// src/error/tool-call-repair-error.ts
|
|
326
|
-
var
|
|
327
|
-
var
|
|
328
|
-
var
|
|
329
|
-
var
|
|
330
|
-
var
|
|
331
|
-
var ToolCallRepairError = class extends
|
|
374
|
+
var import_provider11 = require("@ai-sdk/provider");
|
|
375
|
+
var name10 = "AI_ToolCallRepairError";
|
|
376
|
+
var marker10 = `vercel.ai.error.${name10}`;
|
|
377
|
+
var symbol10 = Symbol.for(marker10);
|
|
378
|
+
var _a10;
|
|
379
|
+
var ToolCallRepairError = class extends import_provider11.AISDKError {
|
|
332
380
|
constructor({
|
|
333
381
|
cause,
|
|
334
382
|
originalError,
|
|
335
|
-
message = `Error repairing tool call: ${(0,
|
|
383
|
+
message = `Error repairing tool call: ${(0, import_provider11.getErrorMessage)(cause)}`
|
|
336
384
|
}) {
|
|
337
|
-
super({ name:
|
|
338
|
-
this[
|
|
385
|
+
super({ name: name10, message, cause });
|
|
386
|
+
this[_a10] = true;
|
|
339
387
|
this.originalError = originalError;
|
|
340
388
|
}
|
|
341
389
|
static isInstance(error) {
|
|
342
|
-
return
|
|
390
|
+
return import_provider11.AISDKError.hasMarker(error, marker10);
|
|
343
391
|
}
|
|
344
392
|
};
|
|
345
|
-
|
|
393
|
+
_a10 = symbol10;
|
|
346
394
|
|
|
347
395
|
// src/error/unsupported-model-version-error.ts
|
|
348
|
-
var
|
|
349
|
-
var UnsupportedModelVersionError = class extends
|
|
396
|
+
var import_provider12 = require("@ai-sdk/provider");
|
|
397
|
+
var UnsupportedModelVersionError = class extends import_provider12.AISDKError {
|
|
350
398
|
constructor(options) {
|
|
351
399
|
super({
|
|
352
400
|
name: "AI_UnsupportedModelVersionError",
|
|
@@ -359,95 +407,95 @@ var UnsupportedModelVersionError = class extends import_provider10.AISDKError {
|
|
|
359
407
|
};
|
|
360
408
|
|
|
361
409
|
// src/prompt/invalid-data-content-error.ts
|
|
362
|
-
var
|
|
363
|
-
var
|
|
364
|
-
var
|
|
365
|
-
var
|
|
366
|
-
var
|
|
367
|
-
var InvalidDataContentError = class extends
|
|
410
|
+
var import_provider13 = require("@ai-sdk/provider");
|
|
411
|
+
var name11 = "AI_InvalidDataContentError";
|
|
412
|
+
var marker11 = `vercel.ai.error.${name11}`;
|
|
413
|
+
var symbol11 = Symbol.for(marker11);
|
|
414
|
+
var _a11;
|
|
415
|
+
var InvalidDataContentError = class extends import_provider13.AISDKError {
|
|
368
416
|
constructor({
|
|
369
417
|
content,
|
|
370
418
|
cause,
|
|
371
419
|
message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`
|
|
372
420
|
}) {
|
|
373
|
-
super({ name:
|
|
374
|
-
this[
|
|
421
|
+
super({ name: name11, message, cause });
|
|
422
|
+
this[_a11] = true;
|
|
375
423
|
this.content = content;
|
|
376
424
|
}
|
|
377
425
|
static isInstance(error) {
|
|
378
|
-
return
|
|
426
|
+
return import_provider13.AISDKError.hasMarker(error, marker11);
|
|
379
427
|
}
|
|
380
428
|
};
|
|
381
|
-
|
|
429
|
+
_a11 = symbol11;
|
|
382
430
|
|
|
383
431
|
// src/prompt/invalid-message-role-error.ts
|
|
384
|
-
var
|
|
385
|
-
var
|
|
386
|
-
var
|
|
387
|
-
var
|
|
388
|
-
var
|
|
389
|
-
var InvalidMessageRoleError = class extends
|
|
432
|
+
var import_provider14 = require("@ai-sdk/provider");
|
|
433
|
+
var name12 = "AI_InvalidMessageRoleError";
|
|
434
|
+
var marker12 = `vercel.ai.error.${name12}`;
|
|
435
|
+
var symbol12 = Symbol.for(marker12);
|
|
436
|
+
var _a12;
|
|
437
|
+
var InvalidMessageRoleError = class extends import_provider14.AISDKError {
|
|
390
438
|
constructor({
|
|
391
439
|
role,
|
|
392
440
|
message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
|
|
393
441
|
}) {
|
|
394
|
-
super({ name:
|
|
395
|
-
this[
|
|
442
|
+
super({ name: name12, message });
|
|
443
|
+
this[_a12] = true;
|
|
396
444
|
this.role = role;
|
|
397
445
|
}
|
|
398
446
|
static isInstance(error) {
|
|
399
|
-
return
|
|
447
|
+
return import_provider14.AISDKError.hasMarker(error, marker12);
|
|
400
448
|
}
|
|
401
449
|
};
|
|
402
|
-
|
|
450
|
+
_a12 = symbol12;
|
|
403
451
|
|
|
404
452
|
// src/prompt/message-conversion-error.ts
|
|
405
|
-
var
|
|
406
|
-
var
|
|
407
|
-
var
|
|
408
|
-
var
|
|
409
|
-
var
|
|
410
|
-
var MessageConversionError = class extends
|
|
453
|
+
var import_provider15 = require("@ai-sdk/provider");
|
|
454
|
+
var name13 = "AI_MessageConversionError";
|
|
455
|
+
var marker13 = `vercel.ai.error.${name13}`;
|
|
456
|
+
var symbol13 = Symbol.for(marker13);
|
|
457
|
+
var _a13;
|
|
458
|
+
var MessageConversionError = class extends import_provider15.AISDKError {
|
|
411
459
|
constructor({
|
|
412
460
|
originalMessage,
|
|
413
461
|
message
|
|
414
462
|
}) {
|
|
415
|
-
super({ name:
|
|
416
|
-
this[
|
|
463
|
+
super({ name: name13, message });
|
|
464
|
+
this[_a13] = true;
|
|
417
465
|
this.originalMessage = originalMessage;
|
|
418
466
|
}
|
|
419
467
|
static isInstance(error) {
|
|
420
|
-
return
|
|
468
|
+
return import_provider15.AISDKError.hasMarker(error, marker13);
|
|
421
469
|
}
|
|
422
470
|
};
|
|
423
|
-
|
|
471
|
+
_a13 = symbol13;
|
|
424
472
|
|
|
425
473
|
// src/error/index.ts
|
|
426
474
|
var import_provider_utils = require("@ai-sdk/provider-utils");
|
|
427
475
|
|
|
428
476
|
// src/util/retry-error.ts
|
|
429
|
-
var
|
|
430
|
-
var
|
|
431
|
-
var
|
|
432
|
-
var
|
|
433
|
-
var
|
|
434
|
-
var RetryError = class extends
|
|
477
|
+
var import_provider16 = require("@ai-sdk/provider");
|
|
478
|
+
var name14 = "AI_RetryError";
|
|
479
|
+
var marker14 = `vercel.ai.error.${name14}`;
|
|
480
|
+
var symbol14 = Symbol.for(marker14);
|
|
481
|
+
var _a14;
|
|
482
|
+
var RetryError = class extends import_provider16.AISDKError {
|
|
435
483
|
constructor({
|
|
436
484
|
message,
|
|
437
485
|
reason,
|
|
438
486
|
errors
|
|
439
487
|
}) {
|
|
440
|
-
super({ name:
|
|
441
|
-
this[
|
|
488
|
+
super({ name: name14, message });
|
|
489
|
+
this[_a14] = true;
|
|
442
490
|
this.reason = reason;
|
|
443
491
|
this.errors = errors;
|
|
444
492
|
this.lastError = errors[errors.length - 1];
|
|
445
493
|
}
|
|
446
494
|
static isInstance(error) {
|
|
447
|
-
return
|
|
495
|
+
return import_provider16.AISDKError.hasMarker(error, marker14);
|
|
448
496
|
}
|
|
449
497
|
};
|
|
450
|
-
|
|
498
|
+
_a14 = symbol14;
|
|
451
499
|
|
|
452
500
|
// src/logger/log-warnings.ts
|
|
453
501
|
function formatWarning({
|
|
@@ -710,7 +758,7 @@ function resolveEmbeddingModel(model) {
|
|
|
710
758
|
return getGlobalProvider().embeddingModel(model);
|
|
711
759
|
}
|
|
712
760
|
function resolveTranscriptionModel(model) {
|
|
713
|
-
var
|
|
761
|
+
var _a16, _b;
|
|
714
762
|
if (typeof model !== "string") {
|
|
715
763
|
if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
|
|
716
764
|
const unsupportedModel = model;
|
|
@@ -722,10 +770,10 @@ function resolveTranscriptionModel(model) {
|
|
|
722
770
|
}
|
|
723
771
|
return asTranscriptionModelV3(model);
|
|
724
772
|
}
|
|
725
|
-
return (_b = (
|
|
773
|
+
return (_b = (_a16 = getGlobalProvider()).transcriptionModel) == null ? void 0 : _b.call(_a16, model);
|
|
726
774
|
}
|
|
727
775
|
function resolveSpeechModel(model) {
|
|
728
|
-
var
|
|
776
|
+
var _a16, _b;
|
|
729
777
|
if (typeof model !== "string") {
|
|
730
778
|
if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
|
|
731
779
|
const unsupportedModel = model;
|
|
@@ -737,7 +785,7 @@ function resolveSpeechModel(model) {
|
|
|
737
785
|
}
|
|
738
786
|
return asSpeechModelV3(model);
|
|
739
787
|
}
|
|
740
|
-
return (_b = (
|
|
788
|
+
return (_b = (_a16 = getGlobalProvider()).speechModel) == null ? void 0 : _b.call(_a16, model);
|
|
741
789
|
}
|
|
742
790
|
function resolveImageModel(model) {
|
|
743
791
|
if (typeof model !== "string") {
|
|
@@ -754,8 +802,8 @@ function resolveImageModel(model) {
|
|
|
754
802
|
return getGlobalProvider().imageModel(model);
|
|
755
803
|
}
|
|
756
804
|
function getGlobalProvider() {
|
|
757
|
-
var
|
|
758
|
-
return (
|
|
805
|
+
var _a16;
|
|
806
|
+
return (_a16 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a16 : import_gateway.gateway;
|
|
759
807
|
}
|
|
760
808
|
|
|
761
809
|
// src/prompt/convert-to-language-model-prompt.ts
|
|
@@ -951,11 +999,11 @@ var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
|
|
951
999
|
var import_provider_utils4 = require("@ai-sdk/provider-utils");
|
|
952
1000
|
|
|
953
1001
|
// src/version.ts
|
|
954
|
-
var VERSION = true ? "6.0.
|
|
1002
|
+
var VERSION = true ? "6.0.3" : "0.0.0-test";
|
|
955
1003
|
|
|
956
1004
|
// src/util/download/download.ts
|
|
957
1005
|
var download = async ({ url }) => {
|
|
958
|
-
var
|
|
1006
|
+
var _a16;
|
|
959
1007
|
const urlText = url.toString();
|
|
960
1008
|
try {
|
|
961
1009
|
const response = await fetch(urlText, {
|
|
@@ -974,7 +1022,7 @@ var download = async ({ url }) => {
|
|
|
974
1022
|
}
|
|
975
1023
|
return {
|
|
976
1024
|
data: new Uint8Array(await response.arrayBuffer()),
|
|
977
|
-
mediaType: (
|
|
1025
|
+
mediaType: (_a16 = response.headers.get("content-type")) != null ? _a16 : void 0
|
|
978
1026
|
};
|
|
979
1027
|
} catch (error) {
|
|
980
1028
|
if (import_provider_utils3.DownloadError.isInstance(error)) {
|
|
@@ -992,7 +1040,7 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
|
|
|
992
1040
|
);
|
|
993
1041
|
|
|
994
1042
|
// src/prompt/data-content.ts
|
|
995
|
-
var
|
|
1043
|
+
var import_provider18 = require("@ai-sdk/provider");
|
|
996
1044
|
var import_provider_utils5 = require("@ai-sdk/provider-utils");
|
|
997
1045
|
var import_v4 = require("zod/v4");
|
|
998
1046
|
|
|
@@ -1020,8 +1068,8 @@ var dataContentSchema = import_v4.z.union([
|
|
|
1020
1068
|
import_v4.z.custom(
|
|
1021
1069
|
// Buffer might not be available in some environments such as CloudFlare:
|
|
1022
1070
|
(value) => {
|
|
1023
|
-
var
|
|
1024
|
-
return (_b = (
|
|
1071
|
+
var _a16, _b;
|
|
1072
|
+
return (_b = (_a16 = globalThis.Buffer) == null ? void 0 : _a16.isBuffer(value)) != null ? _b : false;
|
|
1025
1073
|
},
|
|
1026
1074
|
{ message: "Must be a Buffer" }
|
|
1027
1075
|
)
|
|
@@ -1044,7 +1092,7 @@ function convertToLanguageModelV3DataContent(content) {
|
|
|
1044
1092
|
content.toString()
|
|
1045
1093
|
);
|
|
1046
1094
|
if (dataUrlMediaType == null || base64Content == null) {
|
|
1047
|
-
throw new
|
|
1095
|
+
throw new import_provider18.AISDKError({
|
|
1048
1096
|
name: "InvalidDataContentError",
|
|
1049
1097
|
message: `Invalid data URL format in content ${content.toString()}`
|
|
1050
1098
|
});
|
|
@@ -1222,13 +1270,30 @@ function convertToLanguageModelMessage({
|
|
|
1222
1270
|
case "tool": {
|
|
1223
1271
|
return {
|
|
1224
1272
|
role: "tool",
|
|
1225
|
-
content: message.content.filter(
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1273
|
+
content: message.content.filter(
|
|
1274
|
+
// Only include tool-approval-response for provider-executed tools
|
|
1275
|
+
(part) => part.type !== "tool-approval-response" || part.providerExecuted
|
|
1276
|
+
).map((part) => {
|
|
1277
|
+
switch (part.type) {
|
|
1278
|
+
case "tool-result": {
|
|
1279
|
+
return {
|
|
1280
|
+
type: "tool-result",
|
|
1281
|
+
toolCallId: part.toolCallId,
|
|
1282
|
+
toolName: part.toolName,
|
|
1283
|
+
output: mapToolResultOutput(part.output),
|
|
1284
|
+
providerOptions: part.providerOptions
|
|
1285
|
+
};
|
|
1286
|
+
}
|
|
1287
|
+
case "tool-approval-response": {
|
|
1288
|
+
return {
|
|
1289
|
+
type: "tool-approval-response",
|
|
1290
|
+
approvalId: part.approvalId,
|
|
1291
|
+
approved: part.approved,
|
|
1292
|
+
reason: part.reason
|
|
1293
|
+
};
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1296
|
+
}),
|
|
1232
1297
|
providerOptions: message.providerOptions
|
|
1233
1298
|
};
|
|
1234
1299
|
}
|
|
@@ -1244,8 +1309,8 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
1244
1309
|
).flat().filter(
|
|
1245
1310
|
(part) => part.type === "image" || part.type === "file"
|
|
1246
1311
|
).map((part) => {
|
|
1247
|
-
var
|
|
1248
|
-
const mediaType = (
|
|
1312
|
+
var _a16;
|
|
1313
|
+
const mediaType = (_a16 = part.mediaType) != null ? _a16 : part.type === "image" ? "image/*" : void 0;
|
|
1249
1314
|
let data = part.type === "image" ? part.image : part.data;
|
|
1250
1315
|
if (typeof data === "string") {
|
|
1251
1316
|
try {
|
|
@@ -1275,7 +1340,7 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
1275
1340
|
);
|
|
1276
1341
|
}
|
|
1277
1342
|
function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
1278
|
-
var
|
|
1343
|
+
var _a16;
|
|
1279
1344
|
if (part.type === "text") {
|
|
1280
1345
|
return {
|
|
1281
1346
|
type: "text",
|
|
@@ -1308,7 +1373,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
|
1308
1373
|
switch (type) {
|
|
1309
1374
|
case "image": {
|
|
1310
1375
|
if (data instanceof Uint8Array || typeof data === "string") {
|
|
1311
|
-
mediaType = (
|
|
1376
|
+
mediaType = (_a16 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a16 : mediaType;
|
|
1312
1377
|
}
|
|
1313
1378
|
return {
|
|
1314
1379
|
type: "file",
|
|
@@ -1360,7 +1425,7 @@ function mapToolResultOutput(output) {
|
|
|
1360
1425
|
}
|
|
1361
1426
|
|
|
1362
1427
|
// src/prompt/create-tool-model-output.ts
|
|
1363
|
-
var
|
|
1428
|
+
var import_provider19 = require("@ai-sdk/provider");
|
|
1364
1429
|
async function createToolModelOutput({
|
|
1365
1430
|
toolCallId,
|
|
1366
1431
|
input,
|
|
@@ -1369,7 +1434,7 @@ async function createToolModelOutput({
|
|
|
1369
1434
|
errorMode
|
|
1370
1435
|
}) {
|
|
1371
1436
|
if (errorMode === "text") {
|
|
1372
|
-
return { type: "error-text", value: (0,
|
|
1437
|
+
return { type: "error-text", value: (0, import_provider19.getErrorMessage)(output) };
|
|
1373
1438
|
} else if (errorMode === "json") {
|
|
1374
1439
|
return { type: "error-json", value: toJSONValue(output) };
|
|
1375
1440
|
}
|
|
@@ -1496,10 +1561,10 @@ async function prepareToolsAndToolChoice({
|
|
|
1496
1561
|
};
|
|
1497
1562
|
}
|
|
1498
1563
|
const filteredTools = activeTools != null ? Object.entries(tools).filter(
|
|
1499
|
-
([
|
|
1564
|
+
([name16]) => activeTools.includes(name16)
|
|
1500
1565
|
) : Object.entries(tools);
|
|
1501
1566
|
const languageModelTools = [];
|
|
1502
|
-
for (const [
|
|
1567
|
+
for (const [name16, tool2] of filteredTools) {
|
|
1503
1568
|
const toolType = tool2.type;
|
|
1504
1569
|
switch (toolType) {
|
|
1505
1570
|
case void 0:
|
|
@@ -1507,7 +1572,7 @@ async function prepareToolsAndToolChoice({
|
|
|
1507
1572
|
case "function":
|
|
1508
1573
|
languageModelTools.push({
|
|
1509
1574
|
type: "function",
|
|
1510
|
-
name:
|
|
1575
|
+
name: name16,
|
|
1511
1576
|
description: tool2.description,
|
|
1512
1577
|
inputSchema: await (0, import_provider_utils7.asSchema)(tool2.inputSchema).jsonSchema,
|
|
1513
1578
|
...tool2.inputExamples != null ? { inputExamples: tool2.inputExamples } : {},
|
|
@@ -1518,7 +1583,7 @@ async function prepareToolsAndToolChoice({
|
|
|
1518
1583
|
case "provider":
|
|
1519
1584
|
languageModelTools.push({
|
|
1520
1585
|
type: "provider",
|
|
1521
|
-
name:
|
|
1586
|
+
name: name16,
|
|
1522
1587
|
id: tool2.id,
|
|
1523
1588
|
args: tool2.args
|
|
1524
1589
|
});
|
|
@@ -1536,7 +1601,7 @@ async function prepareToolsAndToolChoice({
|
|
|
1536
1601
|
}
|
|
1537
1602
|
|
|
1538
1603
|
// src/prompt/standardize-prompt.ts
|
|
1539
|
-
var
|
|
1604
|
+
var import_provider20 = require("@ai-sdk/provider");
|
|
1540
1605
|
var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
|
1541
1606
|
var import_v46 = require("zod/v4");
|
|
1542
1607
|
|
|
@@ -1749,13 +1814,13 @@ var modelMessageSchema = import_v45.z.union([
|
|
|
1749
1814
|
// src/prompt/standardize-prompt.ts
|
|
1750
1815
|
async function standardizePrompt(prompt) {
|
|
1751
1816
|
if (prompt.prompt == null && prompt.messages == null) {
|
|
1752
|
-
throw new
|
|
1817
|
+
throw new import_provider20.InvalidPromptError({
|
|
1753
1818
|
prompt,
|
|
1754
1819
|
message: "prompt or messages must be defined"
|
|
1755
1820
|
});
|
|
1756
1821
|
}
|
|
1757
1822
|
if (prompt.prompt != null && prompt.messages != null) {
|
|
1758
|
-
throw new
|
|
1823
|
+
throw new import_provider20.InvalidPromptError({
|
|
1759
1824
|
prompt,
|
|
1760
1825
|
message: "prompt and messages cannot be defined at the same time"
|
|
1761
1826
|
});
|
|
@@ -1763,7 +1828,7 @@ async function standardizePrompt(prompt) {
|
|
|
1763
1828
|
if (prompt.system != null && typeof prompt.system !== "string" && !asArray(prompt.system).every(
|
|
1764
1829
|
(message) => typeof message === "object" && message !== null && "role" in message && message.role === "system"
|
|
1765
1830
|
)) {
|
|
1766
|
-
throw new
|
|
1831
|
+
throw new import_provider20.InvalidPromptError({
|
|
1767
1832
|
prompt,
|
|
1768
1833
|
message: "system must be a string, SystemModelMessage, or array of SystemModelMessage"
|
|
1769
1834
|
});
|
|
@@ -1776,13 +1841,13 @@ async function standardizePrompt(prompt) {
|
|
|
1776
1841
|
} else if (prompt.messages != null) {
|
|
1777
1842
|
messages = prompt.messages;
|
|
1778
1843
|
} else {
|
|
1779
|
-
throw new
|
|
1844
|
+
throw new import_provider20.InvalidPromptError({
|
|
1780
1845
|
prompt,
|
|
1781
1846
|
message: "prompt or messages must be defined"
|
|
1782
1847
|
});
|
|
1783
1848
|
}
|
|
1784
1849
|
if (messages.length === 0) {
|
|
1785
|
-
throw new
|
|
1850
|
+
throw new import_provider20.InvalidPromptError({
|
|
1786
1851
|
prompt,
|
|
1787
1852
|
message: "messages must not be empty"
|
|
1788
1853
|
});
|
|
@@ -1792,7 +1857,7 @@ async function standardizePrompt(prompt) {
|
|
|
1792
1857
|
schema: import_v46.z.array(modelMessageSchema)
|
|
1793
1858
|
});
|
|
1794
1859
|
if (!validationResult.success) {
|
|
1795
|
-
throw new
|
|
1860
|
+
throw new import_provider20.InvalidPromptError({
|
|
1796
1861
|
prompt,
|
|
1797
1862
|
message: "The messages do not match the ModelMessage[] schema.",
|
|
1798
1863
|
cause: validationResult.error
|
|
@@ -1806,14 +1871,14 @@ async function standardizePrompt(prompt) {
|
|
|
1806
1871
|
|
|
1807
1872
|
// src/prompt/wrap-gateway-error.ts
|
|
1808
1873
|
var import_gateway2 = require("@ai-sdk/gateway");
|
|
1809
|
-
var
|
|
1874
|
+
var import_provider21 = require("@ai-sdk/provider");
|
|
1810
1875
|
function wrapGatewayError(error) {
|
|
1811
1876
|
if (!import_gateway2.GatewayAuthenticationError.isInstance(error))
|
|
1812
1877
|
return error;
|
|
1813
1878
|
const isProductionEnv = (process == null ? void 0 : process.env.NODE_ENV) === "production";
|
|
1814
1879
|
const moreInfoURL = "https://ai-sdk.dev/unauthenticated-ai-gateway";
|
|
1815
1880
|
if (isProductionEnv) {
|
|
1816
|
-
return new
|
|
1881
|
+
return new import_provider21.AISDKError({
|
|
1817
1882
|
name: "GatewayError",
|
|
1818
1883
|
message: `Unauthenticated. Configure AI_GATEWAY_API_KEY or use a provider module. Learn more: ${moreInfoURL}`
|
|
1819
1884
|
});
|
|
@@ -1854,7 +1919,7 @@ function getBaseTelemetryAttributes({
|
|
|
1854
1919
|
telemetry,
|
|
1855
1920
|
headers
|
|
1856
1921
|
}) {
|
|
1857
|
-
var
|
|
1922
|
+
var _a16;
|
|
1858
1923
|
return {
|
|
1859
1924
|
"ai.model.provider": model.provider,
|
|
1860
1925
|
"ai.model.id": model.modelId,
|
|
@@ -1864,7 +1929,7 @@ function getBaseTelemetryAttributes({
|
|
|
1864
1929
|
return attributes;
|
|
1865
1930
|
}, {}),
|
|
1866
1931
|
// add metadata as attributes:
|
|
1867
|
-
...Object.entries((
|
|
1932
|
+
...Object.entries((_a16 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a16 : {}).reduce(
|
|
1868
1933
|
(attributes, [key, value]) => {
|
|
1869
1934
|
attributes[`ai.telemetry.metadata.${key}`] = value;
|
|
1870
1935
|
return attributes;
|
|
@@ -1889,7 +1954,7 @@ var noopTracer = {
|
|
|
1889
1954
|
startSpan() {
|
|
1890
1955
|
return noopSpan;
|
|
1891
1956
|
},
|
|
1892
|
-
startActiveSpan(
|
|
1957
|
+
startActiveSpan(name16, arg1, arg2, arg3) {
|
|
1893
1958
|
if (typeof arg1 === "function") {
|
|
1894
1959
|
return arg1(noopSpan);
|
|
1895
1960
|
}
|
|
@@ -1959,14 +2024,14 @@ function getTracer({
|
|
|
1959
2024
|
// src/telemetry/record-span.ts
|
|
1960
2025
|
var import_api2 = require("@opentelemetry/api");
|
|
1961
2026
|
async function recordSpan({
|
|
1962
|
-
name:
|
|
2027
|
+
name: name16,
|
|
1963
2028
|
tracer,
|
|
1964
2029
|
attributes,
|
|
1965
2030
|
fn,
|
|
1966
2031
|
endWhenDone = true
|
|
1967
2032
|
}) {
|
|
1968
2033
|
return tracer.startActiveSpan(
|
|
1969
|
-
|
|
2034
|
+
name16,
|
|
1970
2035
|
{ attributes: await attributes },
|
|
1971
2036
|
async (span) => {
|
|
1972
2037
|
try {
|
|
@@ -2096,12 +2161,12 @@ function createNullLanguageModelUsage() {
|
|
|
2096
2161
|
};
|
|
2097
2162
|
}
|
|
2098
2163
|
function addLanguageModelUsage(usage1, usage2) {
|
|
2099
|
-
var
|
|
2164
|
+
var _a16, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
2100
2165
|
return {
|
|
2101
2166
|
inputTokens: addTokenCounts(usage1.inputTokens, usage2.inputTokens),
|
|
2102
2167
|
inputTokenDetails: {
|
|
2103
2168
|
noCacheTokens: addTokenCounts(
|
|
2104
|
-
(
|
|
2169
|
+
(_a16 = usage1.inputTokenDetails) == null ? void 0 : _a16.noCacheTokens,
|
|
2105
2170
|
(_b = usage2.inputTokenDetails) == null ? void 0 : _b.noCacheTokens
|
|
2106
2171
|
),
|
|
2107
2172
|
cacheReadTokens: addTokenCounts(
|
|
@@ -2180,7 +2245,7 @@ function mergeObjects(base, overrides) {
|
|
|
2180
2245
|
}
|
|
2181
2246
|
|
|
2182
2247
|
// src/util/retry-with-exponential-backoff.ts
|
|
2183
|
-
var
|
|
2248
|
+
var import_provider22 = require("@ai-sdk/provider");
|
|
2184
2249
|
var import_provider_utils9 = require("@ai-sdk/provider-utils");
|
|
2185
2250
|
function getRetryDelayInMs({
|
|
2186
2251
|
error,
|
|
@@ -2247,7 +2312,7 @@ async function _retryWithExponentialBackoff(f, {
|
|
|
2247
2312
|
errors: newErrors
|
|
2248
2313
|
});
|
|
2249
2314
|
}
|
|
2250
|
-
if (error instanceof Error &&
|
|
2315
|
+
if (error instanceof Error && import_provider22.APICallError.isInstance(error) && error.isRetryable === true && tryNumber <= maxRetries) {
|
|
2251
2316
|
await (0, import_provider_utils9.delay)(
|
|
2252
2317
|
getRetryDelayInMs({
|
|
2253
2318
|
error,
|
|
@@ -2354,13 +2419,25 @@ function collectToolApprovals({
|
|
|
2354
2419
|
);
|
|
2355
2420
|
for (const approvalResponse of approvalResponses) {
|
|
2356
2421
|
const approvalRequest = toolApprovalRequestsByApprovalId[approvalResponse.approvalId];
|
|
2422
|
+
if (approvalRequest == null) {
|
|
2423
|
+
throw new InvalidToolApprovalError({
|
|
2424
|
+
approvalId: approvalResponse.approvalId
|
|
2425
|
+
});
|
|
2426
|
+
}
|
|
2357
2427
|
if (toolResults[approvalRequest.toolCallId] != null) {
|
|
2358
2428
|
continue;
|
|
2359
2429
|
}
|
|
2430
|
+
const toolCall = toolCallsByToolCallId[approvalRequest.toolCallId];
|
|
2431
|
+
if (toolCall == null) {
|
|
2432
|
+
throw new ToolCallNotFoundForApprovalError({
|
|
2433
|
+
toolCallId: approvalRequest.toolCallId,
|
|
2434
|
+
approvalId: approvalRequest.approvalId
|
|
2435
|
+
});
|
|
2436
|
+
}
|
|
2360
2437
|
const approval = {
|
|
2361
2438
|
approvalRequest,
|
|
2362
2439
|
approvalResponse,
|
|
2363
|
-
toolCall
|
|
2440
|
+
toolCall
|
|
2364
2441
|
};
|
|
2365
2442
|
if (approvalResponse.approved) {
|
|
2366
2443
|
approvedToolApprovals.push(approval);
|
|
@@ -2542,7 +2619,7 @@ __export(output_exports, {
|
|
|
2542
2619
|
object: () => object,
|
|
2543
2620
|
text: () => text
|
|
2544
2621
|
});
|
|
2545
|
-
var
|
|
2622
|
+
var import_provider23 = require("@ai-sdk/provider");
|
|
2546
2623
|
var import_provider_utils13 = require("@ai-sdk/provider-utils");
|
|
2547
2624
|
|
|
2548
2625
|
// src/util/parse-partial-json.ts
|
|
@@ -2894,7 +2971,7 @@ var text = () => ({
|
|
|
2894
2971
|
});
|
|
2895
2972
|
var object = ({
|
|
2896
2973
|
schema: inputSchema,
|
|
2897
|
-
name:
|
|
2974
|
+
name: name16,
|
|
2898
2975
|
description
|
|
2899
2976
|
}) => {
|
|
2900
2977
|
const schema = (0, import_provider_utils13.asSchema)(inputSchema);
|
|
@@ -2902,7 +2979,7 @@ var object = ({
|
|
|
2902
2979
|
responseFormat: (0, import_provider_utils13.resolve)(schema.jsonSchema).then((jsonSchema2) => ({
|
|
2903
2980
|
type: "json",
|
|
2904
2981
|
schema: jsonSchema2,
|
|
2905
|
-
...
|
|
2982
|
+
...name16 != null && { name: name16 },
|
|
2906
2983
|
...description != null && { description }
|
|
2907
2984
|
})),
|
|
2908
2985
|
async parseCompleteOutput({ text: text2 }, context) {
|
|
@@ -2953,7 +3030,7 @@ var object = ({
|
|
|
2953
3030
|
};
|
|
2954
3031
|
var array = ({
|
|
2955
3032
|
element: inputElementSchema,
|
|
2956
|
-
name:
|
|
3033
|
+
name: name16,
|
|
2957
3034
|
description
|
|
2958
3035
|
}) => {
|
|
2959
3036
|
const elementSchema = (0, import_provider_utils13.asSchema)(inputElementSchema);
|
|
@@ -2972,7 +3049,7 @@ var array = ({
|
|
|
2972
3049
|
required: ["elements"],
|
|
2973
3050
|
additionalProperties: false
|
|
2974
3051
|
},
|
|
2975
|
-
...
|
|
3052
|
+
...name16 != null && { name: name16 },
|
|
2976
3053
|
...description != null && { description }
|
|
2977
3054
|
};
|
|
2978
3055
|
}),
|
|
@@ -2992,7 +3069,7 @@ var array = ({
|
|
|
2992
3069
|
if (outerValue == null || typeof outerValue !== "object" || !("elements" in outerValue) || !Array.isArray(outerValue.elements)) {
|
|
2993
3070
|
throw new NoObjectGeneratedError({
|
|
2994
3071
|
message: "No object generated: response did not match schema.",
|
|
2995
|
-
cause: new
|
|
3072
|
+
cause: new import_provider23.TypeValidationError({
|
|
2996
3073
|
value: outerValue,
|
|
2997
3074
|
cause: "response must be an object with an elements array"
|
|
2998
3075
|
}),
|
|
@@ -3052,7 +3129,7 @@ var array = ({
|
|
|
3052
3129
|
};
|
|
3053
3130
|
var choice = ({
|
|
3054
3131
|
options: choiceOptions,
|
|
3055
|
-
name:
|
|
3132
|
+
name: name16,
|
|
3056
3133
|
description
|
|
3057
3134
|
}) => {
|
|
3058
3135
|
return {
|
|
@@ -3068,7 +3145,7 @@ var choice = ({
|
|
|
3068
3145
|
required: ["result"],
|
|
3069
3146
|
additionalProperties: false
|
|
3070
3147
|
},
|
|
3071
|
-
...
|
|
3148
|
+
...name16 != null && { name: name16 },
|
|
3072
3149
|
...description != null && { description }
|
|
3073
3150
|
}),
|
|
3074
3151
|
async parseCompleteOutput({ text: text2 }, context) {
|
|
@@ -3087,7 +3164,7 @@ var choice = ({
|
|
|
3087
3164
|
if (outerValue == null || typeof outerValue !== "object" || !("result" in outerValue) || typeof outerValue.result !== "string" || !choiceOptions.includes(outerValue.result)) {
|
|
3088
3165
|
throw new NoObjectGeneratedError({
|
|
3089
3166
|
message: "No object generated: response did not match schema.",
|
|
3090
|
-
cause: new
|
|
3167
|
+
cause: new import_provider23.TypeValidationError({
|
|
3091
3168
|
value: outerValue,
|
|
3092
3169
|
cause: "response must be an object that contains a choice value."
|
|
3093
3170
|
}),
|
|
@@ -3126,13 +3203,13 @@ var choice = ({
|
|
|
3126
3203
|
};
|
|
3127
3204
|
};
|
|
3128
3205
|
var json = ({
|
|
3129
|
-
name:
|
|
3206
|
+
name: name16,
|
|
3130
3207
|
description
|
|
3131
3208
|
} = {}) => {
|
|
3132
3209
|
return {
|
|
3133
3210
|
responseFormat: Promise.resolve({
|
|
3134
3211
|
type: "json",
|
|
3135
|
-
...
|
|
3212
|
+
...name16 != null && { name: name16 },
|
|
3136
3213
|
...description != null && { description }
|
|
3137
3214
|
}),
|
|
3138
3215
|
async parseCompleteOutput({ text: text2 }, context) {
|
|
@@ -3174,7 +3251,7 @@ async function parseToolCall({
|
|
|
3174
3251
|
system,
|
|
3175
3252
|
messages
|
|
3176
3253
|
}) {
|
|
3177
|
-
var
|
|
3254
|
+
var _a16;
|
|
3178
3255
|
try {
|
|
3179
3256
|
if (tools == null) {
|
|
3180
3257
|
if (toolCall.providerExecuted && toolCall.dynamic) {
|
|
@@ -3223,7 +3300,7 @@ async function parseToolCall({
|
|
|
3223
3300
|
dynamic: true,
|
|
3224
3301
|
invalid: true,
|
|
3225
3302
|
error,
|
|
3226
|
-
title: (
|
|
3303
|
+
title: (_a16 = tools == null ? void 0 : tools[toolCall.toolName]) == null ? void 0 : _a16.title,
|
|
3227
3304
|
providerExecuted: toolCall.providerExecuted,
|
|
3228
3305
|
providerMetadata: toolCall.providerMetadata
|
|
3229
3306
|
};
|
|
@@ -3362,8 +3439,8 @@ function stepCountIs(stepCount) {
|
|
|
3362
3439
|
}
|
|
3363
3440
|
function hasToolCall(toolName) {
|
|
3364
3441
|
return ({ steps }) => {
|
|
3365
|
-
var
|
|
3366
|
-
return (_c = (_b = (
|
|
3442
|
+
var _a16, _b, _c;
|
|
3443
|
+
return (_c = (_b = (_a16 = steps[steps.length - 1]) == null ? void 0 : _a16.toolCalls) == null ? void 0 : _b.some(
|
|
3367
3444
|
(toolCall) => toolCall.toolName === toolName
|
|
3368
3445
|
)) != null ? _c : false;
|
|
3369
3446
|
};
|
|
@@ -3383,7 +3460,13 @@ async function toResponseMessages({
|
|
|
3383
3460
|
const responseMessages = [];
|
|
3384
3461
|
const content = [];
|
|
3385
3462
|
for (const part of inputContent) {
|
|
3386
|
-
if (part.type === "source"
|
|
3463
|
+
if (part.type === "source") {
|
|
3464
|
+
continue;
|
|
3465
|
+
}
|
|
3466
|
+
if ((part.type === "tool-result" || part.type === "tool-error") && !part.providerExecuted) {
|
|
3467
|
+
continue;
|
|
3468
|
+
}
|
|
3469
|
+
if (part.type === "text" && part.text.length === 0) {
|
|
3387
3470
|
continue;
|
|
3388
3471
|
}
|
|
3389
3472
|
switch (part.type) {
|
|
@@ -3577,13 +3660,16 @@ async function generateText({
|
|
|
3577
3660
|
}),
|
|
3578
3661
|
tracer,
|
|
3579
3662
|
fn: async (span) => {
|
|
3580
|
-
var
|
|
3663
|
+
var _a16, _b, _c, _d, _e, _f, _g, _h;
|
|
3581
3664
|
const initialMessages = initialPrompt.messages;
|
|
3582
3665
|
const responseMessages = [];
|
|
3583
3666
|
const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({ messages: initialMessages });
|
|
3584
|
-
|
|
3667
|
+
const localApprovedToolApprovals = approvedToolApprovals.filter(
|
|
3668
|
+
(toolApproval) => !toolApproval.toolCall.providerExecuted
|
|
3669
|
+
);
|
|
3670
|
+
if (deniedToolApprovals.length > 0 || localApprovedToolApprovals.length > 0) {
|
|
3585
3671
|
const toolOutputs = await executeTools({
|
|
3586
|
-
toolCalls:
|
|
3672
|
+
toolCalls: localApprovedToolApprovals.map(
|
|
3587
3673
|
(toolApproval) => toolApproval.toolCall
|
|
3588
3674
|
),
|
|
3589
3675
|
tools,
|
|
@@ -3616,7 +3702,15 @@ async function generateText({
|
|
|
3616
3702
|
toolName: toolApproval.toolCall.toolName,
|
|
3617
3703
|
output: {
|
|
3618
3704
|
type: "execution-denied",
|
|
3619
|
-
reason: toolApproval.approvalResponse.reason
|
|
3705
|
+
reason: toolApproval.approvalResponse.reason,
|
|
3706
|
+
// For provider-executed tools, include approvalId so provider can correlate
|
|
3707
|
+
...toolApproval.toolCall.providerExecuted && {
|
|
3708
|
+
providerOptions: {
|
|
3709
|
+
openai: {
|
|
3710
|
+
approvalId: toolApproval.approvalResponse.approvalId
|
|
3711
|
+
}
|
|
3712
|
+
}
|
|
3713
|
+
}
|
|
3620
3714
|
}
|
|
3621
3715
|
});
|
|
3622
3716
|
}
|
|
@@ -3625,6 +3719,24 @@ async function generateText({
|
|
|
3625
3719
|
content: toolContent
|
|
3626
3720
|
});
|
|
3627
3721
|
}
|
|
3722
|
+
const providerExecutedToolApprovals = [
|
|
3723
|
+
...approvedToolApprovals,
|
|
3724
|
+
...deniedToolApprovals
|
|
3725
|
+
].filter((toolApproval) => toolApproval.toolCall.providerExecuted);
|
|
3726
|
+
if (providerExecutedToolApprovals.length > 0) {
|
|
3727
|
+
responseMessages.push({
|
|
3728
|
+
role: "tool",
|
|
3729
|
+
content: providerExecutedToolApprovals.map(
|
|
3730
|
+
(toolApproval) => ({
|
|
3731
|
+
type: "tool-approval-response",
|
|
3732
|
+
approvalId: toolApproval.approvalResponse.approvalId,
|
|
3733
|
+
approved: toolApproval.approvalResponse.approved,
|
|
3734
|
+
reason: toolApproval.approvalResponse.reason,
|
|
3735
|
+
providerExecuted: true
|
|
3736
|
+
})
|
|
3737
|
+
)
|
|
3738
|
+
});
|
|
3739
|
+
}
|
|
3628
3740
|
const callSettings2 = prepareCallSettings(settings);
|
|
3629
3741
|
let currentModelResponse;
|
|
3630
3742
|
let clientToolCalls = [];
|
|
@@ -3641,7 +3753,7 @@ async function generateText({
|
|
|
3641
3753
|
experimental_context
|
|
3642
3754
|
}));
|
|
3643
3755
|
const stepModel = resolveLanguageModel(
|
|
3644
|
-
(
|
|
3756
|
+
(_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model
|
|
3645
3757
|
);
|
|
3646
3758
|
const promptMessages = await convertToLanguageModelPrompt({
|
|
3647
3759
|
prompt: {
|
|
@@ -3659,7 +3771,7 @@ async function generateText({
|
|
|
3659
3771
|
});
|
|
3660
3772
|
currentModelResponse = await retry(
|
|
3661
3773
|
() => {
|
|
3662
|
-
var
|
|
3774
|
+
var _a17;
|
|
3663
3775
|
return recordSpan({
|
|
3664
3776
|
name: "ai.generateText.doGenerate",
|
|
3665
3777
|
attributes: selectTelemetryAttributes({
|
|
@@ -3691,14 +3803,14 @@ async function generateText({
|
|
|
3691
3803
|
"gen_ai.request.max_tokens": settings.maxOutputTokens,
|
|
3692
3804
|
"gen_ai.request.presence_penalty": settings.presencePenalty,
|
|
3693
3805
|
"gen_ai.request.stop_sequences": settings.stopSequences,
|
|
3694
|
-
"gen_ai.request.temperature": (
|
|
3806
|
+
"gen_ai.request.temperature": (_a17 = settings.temperature) != null ? _a17 : void 0,
|
|
3695
3807
|
"gen_ai.request.top_k": settings.topK,
|
|
3696
3808
|
"gen_ai.request.top_p": settings.topP
|
|
3697
3809
|
}
|
|
3698
3810
|
}),
|
|
3699
3811
|
tracer,
|
|
3700
3812
|
fn: async (span2) => {
|
|
3701
|
-
var
|
|
3813
|
+
var _a18, _b2, _c2, _d2, _e2, _f2, _g2, _h2;
|
|
3702
3814
|
const stepProviderOptions = mergeObjects(
|
|
3703
3815
|
providerOptions,
|
|
3704
3816
|
prepareStepResult == null ? void 0 : prepareStepResult.providerOptions
|
|
@@ -3714,7 +3826,7 @@ async function generateText({
|
|
|
3714
3826
|
headers: headersWithUserAgent
|
|
3715
3827
|
});
|
|
3716
3828
|
const responseData = {
|
|
3717
|
-
id: (_b2 = (
|
|
3829
|
+
id: (_b2 = (_a18 = result.response) == null ? void 0 : _a18.id) != null ? _b2 : generateId2(),
|
|
3718
3830
|
timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : currentDate(),
|
|
3719
3831
|
modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : stepModel.modelId,
|
|
3720
3832
|
headers: (_g2 = result.response) == null ? void 0 : _g2.headers,
|
|
@@ -4180,6 +4292,20 @@ function asContent({
|
|
|
4180
4292
|
break;
|
|
4181
4293
|
}
|
|
4182
4294
|
case "tool-approval-request": {
|
|
4295
|
+
const toolCall = toolCalls.find(
|
|
4296
|
+
(toolCall2) => toolCall2.toolCallId === part.toolCallId
|
|
4297
|
+
);
|
|
4298
|
+
if (toolCall == null) {
|
|
4299
|
+
throw new ToolCallNotFoundForApprovalError({
|
|
4300
|
+
toolCallId: part.toolCallId,
|
|
4301
|
+
approvalId: part.approvalId
|
|
4302
|
+
});
|
|
4303
|
+
}
|
|
4304
|
+
contentParts.push({
|
|
4305
|
+
type: "tool-approval-request",
|
|
4306
|
+
approvalId: part.approvalId,
|
|
4307
|
+
toolCall
|
|
4308
|
+
});
|
|
4183
4309
|
break;
|
|
4184
4310
|
}
|
|
4185
4311
|
}
|
|
@@ -4188,7 +4314,7 @@ function asContent({
|
|
|
4188
4314
|
}
|
|
4189
4315
|
|
|
4190
4316
|
// src/generate-text/stream-text.ts
|
|
4191
|
-
var
|
|
4317
|
+
var import_provider24 = require("@ai-sdk/provider");
|
|
4192
4318
|
var import_provider_utils19 = require("@ai-sdk/provider-utils");
|
|
4193
4319
|
|
|
4194
4320
|
// src/util/prepare-headers.ts
|
|
@@ -4566,7 +4692,7 @@ function processUIMessageStream({
|
|
|
4566
4692
|
new TransformStream({
|
|
4567
4693
|
async transform(chunk, controller) {
|
|
4568
4694
|
await runUpdateMessageJob(async ({ state, write }) => {
|
|
4569
|
-
var
|
|
4695
|
+
var _a16, _b, _c, _d;
|
|
4570
4696
|
function getToolInvocation(toolCallId) {
|
|
4571
4697
|
const toolInvocations = state.message.parts.filter(isToolUIPart);
|
|
4572
4698
|
const toolInvocation = toolInvocations.find(
|
|
@@ -4580,7 +4706,7 @@ function processUIMessageStream({
|
|
|
4580
4706
|
return toolInvocation;
|
|
4581
4707
|
}
|
|
4582
4708
|
function updateToolPart(options) {
|
|
4583
|
-
var
|
|
4709
|
+
var _a17;
|
|
4584
4710
|
const part = state.message.parts.find(
|
|
4585
4711
|
(part2) => isStaticToolUIPart(part2) && part2.toolCallId === options.toolCallId
|
|
4586
4712
|
);
|
|
@@ -4596,7 +4722,7 @@ function processUIMessageStream({
|
|
|
4596
4722
|
if (options.title !== void 0) {
|
|
4597
4723
|
anyPart.title = options.title;
|
|
4598
4724
|
}
|
|
4599
|
-
anyPart.providerExecuted = (
|
|
4725
|
+
anyPart.providerExecuted = (_a17 = anyOptions.providerExecuted) != null ? _a17 : part.providerExecuted;
|
|
4600
4726
|
if (anyOptions.providerMetadata != null && part.state === "input-available") {
|
|
4601
4727
|
part.callProviderMetadata = anyOptions.providerMetadata;
|
|
4602
4728
|
}
|
|
@@ -4617,7 +4743,7 @@ function processUIMessageStream({
|
|
|
4617
4743
|
}
|
|
4618
4744
|
}
|
|
4619
4745
|
function updateDynamicToolPart(options) {
|
|
4620
|
-
var
|
|
4746
|
+
var _a17, _b2;
|
|
4621
4747
|
const part = state.message.parts.find(
|
|
4622
4748
|
(part2) => part2.type === "dynamic-tool" && part2.toolCallId === options.toolCallId
|
|
4623
4749
|
);
|
|
@@ -4629,7 +4755,7 @@ function processUIMessageStream({
|
|
|
4629
4755
|
anyPart.input = anyOptions.input;
|
|
4630
4756
|
anyPart.output = anyOptions.output;
|
|
4631
4757
|
anyPart.errorText = anyOptions.errorText;
|
|
4632
|
-
anyPart.rawInput = (
|
|
4758
|
+
anyPart.rawInput = (_a17 = anyOptions.rawInput) != null ? _a17 : anyPart.rawInput;
|
|
4633
4759
|
anyPart.preliminary = anyOptions.preliminary;
|
|
4634
4760
|
if (options.title !== void 0) {
|
|
4635
4761
|
anyPart.title = options.title;
|
|
@@ -4682,7 +4808,7 @@ function processUIMessageStream({
|
|
|
4682
4808
|
case "text-delta": {
|
|
4683
4809
|
const textPart = state.activeTextParts[chunk.id];
|
|
4684
4810
|
textPart.text += chunk.delta;
|
|
4685
|
-
textPart.providerMetadata = (
|
|
4811
|
+
textPart.providerMetadata = (_a16 = chunk.providerMetadata) != null ? _a16 : textPart.providerMetadata;
|
|
4686
4812
|
write();
|
|
4687
4813
|
break;
|
|
4688
4814
|
}
|
|
@@ -5121,11 +5247,11 @@ function createAsyncIterableStream(source) {
|
|
|
5121
5247
|
const reader = this.getReader();
|
|
5122
5248
|
let finished = false;
|
|
5123
5249
|
async function cleanup(cancelStream) {
|
|
5124
|
-
var
|
|
5250
|
+
var _a16;
|
|
5125
5251
|
finished = true;
|
|
5126
5252
|
try {
|
|
5127
5253
|
if (cancelStream) {
|
|
5128
|
-
await ((
|
|
5254
|
+
await ((_a16 = reader.cancel) == null ? void 0 : _a16.call(reader));
|
|
5129
5255
|
}
|
|
5130
5256
|
} finally {
|
|
5131
5257
|
try {
|
|
@@ -5291,8 +5417,8 @@ function createStitchableStream() {
|
|
|
5291
5417
|
|
|
5292
5418
|
// src/util/now.ts
|
|
5293
5419
|
function now() {
|
|
5294
|
-
var
|
|
5295
|
-
return (_b = (
|
|
5420
|
+
var _a16, _b;
|
|
5421
|
+
return (_b = (_a16 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a16.now()) != null ? _b : Date.now();
|
|
5296
5422
|
}
|
|
5297
5423
|
|
|
5298
5424
|
// src/generate-text/run-tools-transformation.ts
|
|
@@ -5317,6 +5443,7 @@ function runToolsTransformation({
|
|
|
5317
5443
|
});
|
|
5318
5444
|
const outstandingToolResults = /* @__PURE__ */ new Set();
|
|
5319
5445
|
const toolInputs = /* @__PURE__ */ new Map();
|
|
5446
|
+
const toolCallsByToolCallId = /* @__PURE__ */ new Map();
|
|
5320
5447
|
let canClose = false;
|
|
5321
5448
|
let finishChunk = void 0;
|
|
5322
5449
|
function attemptClose() {
|
|
@@ -5368,6 +5495,25 @@ function runToolsTransformation({
|
|
|
5368
5495
|
};
|
|
5369
5496
|
break;
|
|
5370
5497
|
}
|
|
5498
|
+
case "tool-approval-request": {
|
|
5499
|
+
const toolCall = toolCallsByToolCallId.get(chunk.toolCallId);
|
|
5500
|
+
if (toolCall == null) {
|
|
5501
|
+
toolResultsStreamController.enqueue({
|
|
5502
|
+
type: "error",
|
|
5503
|
+
error: new ToolCallNotFoundForApprovalError({
|
|
5504
|
+
toolCallId: chunk.toolCallId,
|
|
5505
|
+
approvalId: chunk.approvalId
|
|
5506
|
+
})
|
|
5507
|
+
});
|
|
5508
|
+
break;
|
|
5509
|
+
}
|
|
5510
|
+
controller.enqueue({
|
|
5511
|
+
type: "tool-approval-request",
|
|
5512
|
+
approvalId: chunk.approvalId,
|
|
5513
|
+
toolCall
|
|
5514
|
+
});
|
|
5515
|
+
break;
|
|
5516
|
+
}
|
|
5371
5517
|
case "tool-call": {
|
|
5372
5518
|
try {
|
|
5373
5519
|
const toolCall = await parseToolCall({
|
|
@@ -5377,6 +5523,7 @@ function runToolsTransformation({
|
|
|
5377
5523
|
system,
|
|
5378
5524
|
messages
|
|
5379
5525
|
});
|
|
5526
|
+
toolCallsByToolCallId.set(toolCall.toolCallId, toolCall);
|
|
5380
5527
|
controller.enqueue(toolCall);
|
|
5381
5528
|
if (toolCall.invalid) {
|
|
5382
5529
|
toolResultsStreamController.enqueue({
|
|
@@ -5467,9 +5614,6 @@ function runToolsTransformation({
|
|
|
5467
5614
|
}
|
|
5468
5615
|
break;
|
|
5469
5616
|
}
|
|
5470
|
-
case "tool-approval-request": {
|
|
5471
|
-
break;
|
|
5472
|
-
}
|
|
5473
5617
|
default: {
|
|
5474
5618
|
const _exhaustiveCheck = chunkType;
|
|
5475
5619
|
throw new Error(`Unhandled chunk type: ${_exhaustiveCheck}`);
|
|
@@ -5605,7 +5749,7 @@ function createOutputTransformStream(output) {
|
|
|
5605
5749
|
}
|
|
5606
5750
|
return new TransformStream({
|
|
5607
5751
|
async transform(chunk, controller) {
|
|
5608
|
-
var
|
|
5752
|
+
var _a16;
|
|
5609
5753
|
if (chunk.type === "finish-step" && textChunk.length > 0) {
|
|
5610
5754
|
publishTextChunk({ controller });
|
|
5611
5755
|
}
|
|
@@ -5632,7 +5776,7 @@ function createOutputTransformStream(output) {
|
|
|
5632
5776
|
}
|
|
5633
5777
|
text2 += chunk.text;
|
|
5634
5778
|
textChunk += chunk.text;
|
|
5635
|
-
textProviderMetadata = (
|
|
5779
|
+
textProviderMetadata = (_a16 = chunk.providerMetadata) != null ? _a16 : textProviderMetadata;
|
|
5636
5780
|
const result = await output.parsePartialOutput({ text: text2 });
|
|
5637
5781
|
if (result !== void 0) {
|
|
5638
5782
|
const currentJson = JSON.stringify(result.partial);
|
|
@@ -5698,7 +5842,7 @@ var DefaultStreamTextResult = class {
|
|
|
5698
5842
|
let activeReasoningContent = {};
|
|
5699
5843
|
const eventProcessor = new TransformStream({
|
|
5700
5844
|
async transform(chunk, controller) {
|
|
5701
|
-
var
|
|
5845
|
+
var _a16, _b, _c, _d;
|
|
5702
5846
|
controller.enqueue(chunk);
|
|
5703
5847
|
const { part } = chunk;
|
|
5704
5848
|
if (part.type === "text-delta" || part.type === "reasoning-delta" || part.type === "source" || part.type === "tool-call" || part.type === "tool-result" || part.type === "tool-input-start" || part.type === "tool-input-delta" || part.type === "raw") {
|
|
@@ -5728,7 +5872,7 @@ var DefaultStreamTextResult = class {
|
|
|
5728
5872
|
return;
|
|
5729
5873
|
}
|
|
5730
5874
|
activeText.text += part.text;
|
|
5731
|
-
activeText.providerMetadata = (
|
|
5875
|
+
activeText.providerMetadata = (_a16 = part.providerMetadata) != null ? _a16 : activeText.providerMetadata;
|
|
5732
5876
|
}
|
|
5733
5877
|
if (part.type === "text-end") {
|
|
5734
5878
|
const activeText = activeTextContent[part.id];
|
|
@@ -5893,8 +6037,8 @@ var DefaultStreamTextResult = class {
|
|
|
5893
6037
|
"ai.response.text": { output: () => finalStep.text },
|
|
5894
6038
|
"ai.response.toolCalls": {
|
|
5895
6039
|
output: () => {
|
|
5896
|
-
var
|
|
5897
|
-
return ((
|
|
6040
|
+
var _a16;
|
|
6041
|
+
return ((_a16 = finalStep.toolCalls) == null ? void 0 : _a16.length) ? JSON.stringify(finalStep.toolCalls) : void 0;
|
|
5898
6042
|
}
|
|
5899
6043
|
},
|
|
5900
6044
|
"ai.response.providerMetadata": JSON.stringify(
|
|
@@ -6002,6 +6146,19 @@ var DefaultStreamTextResult = class {
|
|
|
6002
6146
|
const initialResponseMessages = [];
|
|
6003
6147
|
const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({ messages: initialMessages });
|
|
6004
6148
|
if (deniedToolApprovals.length > 0 || approvedToolApprovals.length > 0) {
|
|
6149
|
+
const providerExecutedToolApprovals = [
|
|
6150
|
+
...approvedToolApprovals,
|
|
6151
|
+
...deniedToolApprovals
|
|
6152
|
+
].filter((toolApproval) => toolApproval.toolCall.providerExecuted);
|
|
6153
|
+
const localApprovedToolApprovals = approvedToolApprovals.filter(
|
|
6154
|
+
(toolApproval) => !toolApproval.toolCall.providerExecuted
|
|
6155
|
+
);
|
|
6156
|
+
const localDeniedToolApprovals = deniedToolApprovals.filter(
|
|
6157
|
+
(toolApproval) => !toolApproval.toolCall.providerExecuted
|
|
6158
|
+
);
|
|
6159
|
+
const deniedProviderExecutedToolApprovals = deniedToolApprovals.filter(
|
|
6160
|
+
(toolApproval) => toolApproval.toolCall.providerExecuted
|
|
6161
|
+
);
|
|
6005
6162
|
let toolExecutionStepStreamController;
|
|
6006
6163
|
const toolExecutionStepStream = new ReadableStream({
|
|
6007
6164
|
start(controller) {
|
|
@@ -6010,7 +6167,10 @@ var DefaultStreamTextResult = class {
|
|
|
6010
6167
|
});
|
|
6011
6168
|
self.addStream(toolExecutionStepStream);
|
|
6012
6169
|
try {
|
|
6013
|
-
for (const toolApproval of
|
|
6170
|
+
for (const toolApproval of [
|
|
6171
|
+
...localDeniedToolApprovals,
|
|
6172
|
+
...deniedProviderExecutedToolApprovals
|
|
6173
|
+
]) {
|
|
6014
6174
|
toolExecutionStepStreamController == null ? void 0 : toolExecutionStepStreamController.enqueue({
|
|
6015
6175
|
type: "tool-output-denied",
|
|
6016
6176
|
toolCallId: toolApproval.toolCall.toolCallId,
|
|
@@ -6019,7 +6179,7 @@ var DefaultStreamTextResult = class {
|
|
|
6019
6179
|
}
|
|
6020
6180
|
const toolOutputs = [];
|
|
6021
6181
|
await Promise.all(
|
|
6022
|
-
|
|
6182
|
+
localApprovedToolApprovals.map(async (toolApproval) => {
|
|
6023
6183
|
const result = await executeToolCall({
|
|
6024
6184
|
toolCall: toolApproval.toolCall,
|
|
6025
6185
|
tools,
|
|
@@ -6038,36 +6198,52 @@ var DefaultStreamTextResult = class {
|
|
|
6038
6198
|
}
|
|
6039
6199
|
})
|
|
6040
6200
|
);
|
|
6041
|
-
|
|
6042
|
-
|
|
6043
|
-
|
|
6044
|
-
|
|
6045
|
-
|
|
6046
|
-
|
|
6047
|
-
|
|
6048
|
-
|
|
6049
|
-
|
|
6050
|
-
|
|
6051
|
-
|
|
6052
|
-
|
|
6053
|
-
})
|
|
6201
|
+
if (providerExecutedToolApprovals.length > 0) {
|
|
6202
|
+
initialResponseMessages.push({
|
|
6203
|
+
role: "tool",
|
|
6204
|
+
content: providerExecutedToolApprovals.map(
|
|
6205
|
+
(toolApproval) => ({
|
|
6206
|
+
type: "tool-approval-response",
|
|
6207
|
+
approvalId: toolApproval.approvalResponse.approvalId,
|
|
6208
|
+
approved: toolApproval.approvalResponse.approved,
|
|
6209
|
+
reason: toolApproval.approvalResponse.reason,
|
|
6210
|
+
providerExecuted: true
|
|
6211
|
+
})
|
|
6212
|
+
)
|
|
6054
6213
|
});
|
|
6055
6214
|
}
|
|
6056
|
-
|
|
6057
|
-
|
|
6058
|
-
|
|
6059
|
-
|
|
6060
|
-
|
|
6061
|
-
|
|
6062
|
-
|
|
6063
|
-
|
|
6064
|
-
|
|
6215
|
+
if (toolOutputs.length > 0 || localDeniedToolApprovals.length > 0) {
|
|
6216
|
+
const localToolContent = [];
|
|
6217
|
+
for (const output2 of toolOutputs) {
|
|
6218
|
+
localToolContent.push({
|
|
6219
|
+
type: "tool-result",
|
|
6220
|
+
toolCallId: output2.toolCallId,
|
|
6221
|
+
toolName: output2.toolName,
|
|
6222
|
+
output: await createToolModelOutput({
|
|
6223
|
+
toolCallId: output2.toolCallId,
|
|
6224
|
+
input: output2.input,
|
|
6225
|
+
tool: tools == null ? void 0 : tools[output2.toolName],
|
|
6226
|
+
output: output2.type === "tool-result" ? output2.output : output2.error,
|
|
6227
|
+
errorMode: output2.type === "tool-error" ? "json" : "none"
|
|
6228
|
+
})
|
|
6229
|
+
});
|
|
6230
|
+
}
|
|
6231
|
+
for (const toolApproval of localDeniedToolApprovals) {
|
|
6232
|
+
localToolContent.push({
|
|
6233
|
+
type: "tool-result",
|
|
6234
|
+
toolCallId: toolApproval.toolCall.toolCallId,
|
|
6235
|
+
toolName: toolApproval.toolCall.toolName,
|
|
6236
|
+
output: {
|
|
6237
|
+
type: "execution-denied",
|
|
6238
|
+
reason: toolApproval.approvalResponse.reason
|
|
6239
|
+
}
|
|
6240
|
+
});
|
|
6241
|
+
}
|
|
6242
|
+
initialResponseMessages.push({
|
|
6243
|
+
role: "tool",
|
|
6244
|
+
content: localToolContent
|
|
6065
6245
|
});
|
|
6066
6246
|
}
|
|
6067
|
-
initialResponseMessages.push({
|
|
6068
|
-
role: "tool",
|
|
6069
|
-
content
|
|
6070
|
-
});
|
|
6071
6247
|
} finally {
|
|
6072
6248
|
toolExecutionStepStreamController == null ? void 0 : toolExecutionStepStreamController.close();
|
|
6073
6249
|
}
|
|
@@ -6078,7 +6254,7 @@ var DefaultStreamTextResult = class {
|
|
|
6078
6254
|
responseMessages,
|
|
6079
6255
|
usage
|
|
6080
6256
|
}) {
|
|
6081
|
-
var
|
|
6257
|
+
var _a16, _b, _c, _d, _e, _f;
|
|
6082
6258
|
const includeRawChunks2 = self.includeRawChunks;
|
|
6083
6259
|
stepFinish = new import_provider_utils19.DelayedPromise();
|
|
6084
6260
|
const stepInputMessages = [...initialMessages, ...responseMessages];
|
|
@@ -6090,7 +6266,7 @@ var DefaultStreamTextResult = class {
|
|
|
6090
6266
|
experimental_context
|
|
6091
6267
|
}));
|
|
6092
6268
|
const stepModel = resolveLanguageModel(
|
|
6093
|
-
(
|
|
6269
|
+
(_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model
|
|
6094
6270
|
);
|
|
6095
6271
|
const promptMessages = await convertToLanguageModelPrompt({
|
|
6096
6272
|
prompt: {
|
|
@@ -6203,7 +6379,7 @@ var DefaultStreamTextResult = class {
|
|
|
6203
6379
|
streamWithToolResults.pipeThrough(
|
|
6204
6380
|
new TransformStream({
|
|
6205
6381
|
async transform(chunk, controller) {
|
|
6206
|
-
var
|
|
6382
|
+
var _a17, _b2, _c2, _d2, _e2;
|
|
6207
6383
|
if (chunk.type === "stream-start") {
|
|
6208
6384
|
warnings = chunk.warnings;
|
|
6209
6385
|
return;
|
|
@@ -6276,7 +6452,7 @@ var DefaultStreamTextResult = class {
|
|
|
6276
6452
|
}
|
|
6277
6453
|
case "response-metadata": {
|
|
6278
6454
|
stepResponse = {
|
|
6279
|
-
id: (
|
|
6455
|
+
id: (_a17 = chunk.id) != null ? _a17 : stepResponse.id,
|
|
6280
6456
|
timestamp: (_b2 = chunk.timestamp) != null ? _b2 : stepResponse.timestamp,
|
|
6281
6457
|
modelId: (_c2 = chunk.modelId) != null ? _c2 : stepResponse.modelId
|
|
6282
6458
|
};
|
|
@@ -6606,14 +6782,14 @@ var DefaultStreamTextResult = class {
|
|
|
6606
6782
|
);
|
|
6607
6783
|
}
|
|
6608
6784
|
async consumeStream(options) {
|
|
6609
|
-
var
|
|
6785
|
+
var _a16;
|
|
6610
6786
|
try {
|
|
6611
6787
|
await consumeStream({
|
|
6612
6788
|
stream: this.fullStream,
|
|
6613
6789
|
onError: options == null ? void 0 : options.onError
|
|
6614
6790
|
});
|
|
6615
6791
|
} catch (error) {
|
|
6616
|
-
(
|
|
6792
|
+
(_a16 = options == null ? void 0 : options.onError) == null ? void 0 : _a16.call(options, error);
|
|
6617
6793
|
}
|
|
6618
6794
|
}
|
|
6619
6795
|
get experimental_partialOutputStream() {
|
|
@@ -6634,8 +6810,8 @@ var DefaultStreamTextResult = class {
|
|
|
6634
6810
|
}
|
|
6635
6811
|
get output() {
|
|
6636
6812
|
return this.finalStep.then((step) => {
|
|
6637
|
-
var
|
|
6638
|
-
const output = (
|
|
6813
|
+
var _a16;
|
|
6814
|
+
const output = (_a16 = this.outputSpecification) != null ? _a16 : text();
|
|
6639
6815
|
return output.parseCompleteOutput(
|
|
6640
6816
|
{ text: step.text },
|
|
6641
6817
|
{
|
|
@@ -6655,15 +6831,15 @@ var DefaultStreamTextResult = class {
|
|
|
6655
6831
|
sendSources = false,
|
|
6656
6832
|
sendStart = true,
|
|
6657
6833
|
sendFinish = true,
|
|
6658
|
-
onError =
|
|
6834
|
+
onError = import_provider24.getErrorMessage
|
|
6659
6835
|
} = {}) {
|
|
6660
6836
|
const responseMessageId = generateMessageId != null ? getResponseUIMessageId({
|
|
6661
6837
|
originalMessages,
|
|
6662
6838
|
responseMessageId: generateMessageId
|
|
6663
6839
|
}) : void 0;
|
|
6664
6840
|
const isDynamic = (part) => {
|
|
6665
|
-
var
|
|
6666
|
-
const tool2 = (
|
|
6841
|
+
var _a16;
|
|
6842
|
+
const tool2 = (_a16 = this.tools) == null ? void 0 : _a16[part.toolName];
|
|
6667
6843
|
if (tool2 == null) {
|
|
6668
6844
|
return part.dynamic;
|
|
6669
6845
|
}
|
|
@@ -7001,10 +7177,10 @@ var ToolLoopAgent = class {
|
|
|
7001
7177
|
return this.settings.tools;
|
|
7002
7178
|
}
|
|
7003
7179
|
async prepareCall(options) {
|
|
7004
|
-
var
|
|
7180
|
+
var _a16, _b, _c, _d;
|
|
7005
7181
|
const baseCallArgs = {
|
|
7006
7182
|
...this.settings,
|
|
7007
|
-
stopWhen: (
|
|
7183
|
+
stopWhen: (_a16 = this.settings.stopWhen) != null ? _a16 : stepCountIs(20),
|
|
7008
7184
|
...options
|
|
7009
7185
|
};
|
|
7010
7186
|
const preparedCallArgs = (_d = await ((_c = (_b = this.settings).prepareCall) == null ? void 0 : _c.call(_b, baseCallArgs))) != null ? _d : baseCallArgs;
|
|
@@ -7136,7 +7312,7 @@ function readUIMessageStream({
|
|
|
7136
7312
|
onError,
|
|
7137
7313
|
terminateOnError = false
|
|
7138
7314
|
}) {
|
|
7139
|
-
var
|
|
7315
|
+
var _a16;
|
|
7140
7316
|
let controller;
|
|
7141
7317
|
let hasErrored = false;
|
|
7142
7318
|
const outputStream = new ReadableStream({
|
|
@@ -7145,7 +7321,7 @@ function readUIMessageStream({
|
|
|
7145
7321
|
}
|
|
7146
7322
|
});
|
|
7147
7323
|
const state = createStreamingUIMessageState({
|
|
7148
|
-
messageId: (
|
|
7324
|
+
messageId: (_a16 = message == null ? void 0 : message.id) != null ? _a16 : "",
|
|
7149
7325
|
lastMessage: message
|
|
7150
7326
|
});
|
|
7151
7327
|
const handleError = (error) => {
|
|
@@ -7212,7 +7388,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
7212
7388
|
modelMessages.push({
|
|
7213
7389
|
role: "user",
|
|
7214
7390
|
content: message.parts.map((part) => {
|
|
7215
|
-
var
|
|
7391
|
+
var _a16;
|
|
7216
7392
|
if (isTextUIPart(part)) {
|
|
7217
7393
|
return {
|
|
7218
7394
|
type: "text",
|
|
@@ -7230,7 +7406,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
7230
7406
|
};
|
|
7231
7407
|
}
|
|
7232
7408
|
if (isDataUIPart(part)) {
|
|
7233
|
-
return (
|
|
7409
|
+
return (_a16 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a16.call(
|
|
7234
7410
|
options,
|
|
7235
7411
|
part
|
|
7236
7412
|
);
|
|
@@ -7243,7 +7419,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
7243
7419
|
if (message.parts != null) {
|
|
7244
7420
|
let block = [];
|
|
7245
7421
|
async function processBlock() {
|
|
7246
|
-
var
|
|
7422
|
+
var _a16, _b, _c, _d, _e, _f;
|
|
7247
7423
|
if (block.length === 0) {
|
|
7248
7424
|
return;
|
|
7249
7425
|
}
|
|
@@ -7275,7 +7451,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
7275
7451
|
type: "tool-call",
|
|
7276
7452
|
toolCallId: part.toolCallId,
|
|
7277
7453
|
toolName,
|
|
7278
|
-
input: part.state === "output-error" ? (
|
|
7454
|
+
input: part.state === "output-error" ? (_a16 = part.input) != null ? _a16 : "rawInput" in part ? part.rawInput : void 0 : part.input,
|
|
7279
7455
|
providerExecuted: part.providerExecuted,
|
|
7280
7456
|
...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
|
|
7281
7457
|
});
|
|
@@ -7286,7 +7462,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
7286
7462
|
toolCallId: part.toolCallId
|
|
7287
7463
|
});
|
|
7288
7464
|
}
|
|
7289
|
-
if (part.providerExecuted === true && (part.state === "output-available" || part.state === "output-error")) {
|
|
7465
|
+
if (part.providerExecuted === true && part.state !== "approval-responded" && (part.state === "output-available" || part.state === "output-error")) {
|
|
7290
7466
|
content.push({
|
|
7291
7467
|
type: "tool-result",
|
|
7292
7468
|
toolCallId: part.toolCallId,
|
|
@@ -7320,7 +7496,10 @@ async function convertToModelMessages(messages, options) {
|
|
|
7320
7496
|
content
|
|
7321
7497
|
});
|
|
7322
7498
|
const toolParts = block.filter(
|
|
7323
|
-
(part) =>
|
|
7499
|
+
(part) => {
|
|
7500
|
+
var _a17;
|
|
7501
|
+
return isToolUIPart(part) && (part.providerExecuted !== true || ((_a17 = part.approval) == null ? void 0 : _a17.approved) != null);
|
|
7502
|
+
}
|
|
7324
7503
|
);
|
|
7325
7504
|
if (toolParts.length > 0) {
|
|
7326
7505
|
{
|
|
@@ -7331,9 +7510,13 @@ async function convertToModelMessages(messages, options) {
|
|
|
7331
7510
|
type: "tool-approval-response",
|
|
7332
7511
|
approvalId: toolPart.approval.id,
|
|
7333
7512
|
approved: toolPart.approval.approved,
|
|
7334
|
-
reason: toolPart.approval.reason
|
|
7513
|
+
reason: toolPart.approval.reason,
|
|
7514
|
+
providerExecuted: toolPart.providerExecuted
|
|
7335
7515
|
});
|
|
7336
7516
|
}
|
|
7517
|
+
if (toolPart.providerExecuted === true) {
|
|
7518
|
+
continue;
|
|
7519
|
+
}
|
|
7337
7520
|
switch (toolPart.state) {
|
|
7338
7521
|
case "output-denied": {
|
|
7339
7522
|
content2.push({
|
|
@@ -7368,10 +7551,12 @@ async function convertToModelMessages(messages, options) {
|
|
|
7368
7551
|
}
|
|
7369
7552
|
}
|
|
7370
7553
|
}
|
|
7371
|
-
|
|
7372
|
-
|
|
7373
|
-
|
|
7374
|
-
|
|
7554
|
+
if (content2.length > 0) {
|
|
7555
|
+
modelMessages.push({
|
|
7556
|
+
role: "tool",
|
|
7557
|
+
content: content2
|
|
7558
|
+
});
|
|
7559
|
+
}
|
|
7375
7560
|
}
|
|
7376
7561
|
}
|
|
7377
7562
|
block = [];
|
|
@@ -7401,7 +7586,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
7401
7586
|
}
|
|
7402
7587
|
|
|
7403
7588
|
// src/ui/validate-ui-messages.ts
|
|
7404
|
-
var
|
|
7589
|
+
var import_provider25 = require("@ai-sdk/provider");
|
|
7405
7590
|
var import_provider_utils22 = require("@ai-sdk/provider-utils");
|
|
7406
7591
|
var import_v48 = require("zod/v4");
|
|
7407
7592
|
var uiMessagesSchema = (0, import_provider_utils22.lazySchema)(
|
|
@@ -7702,7 +7887,7 @@ async function safeValidateUIMessages({
|
|
|
7702
7887
|
if (!dataSchema) {
|
|
7703
7888
|
return {
|
|
7704
7889
|
success: false,
|
|
7705
|
-
error: new
|
|
7890
|
+
error: new import_provider25.TypeValidationError({
|
|
7706
7891
|
value: dataPart.data,
|
|
7707
7892
|
cause: `No data schema found for data part ${dataName}`
|
|
7708
7893
|
})
|
|
@@ -7726,7 +7911,7 @@ async function safeValidateUIMessages({
|
|
|
7726
7911
|
if (!tool2) {
|
|
7727
7912
|
return {
|
|
7728
7913
|
success: false,
|
|
7729
|
-
error: new
|
|
7914
|
+
error: new import_provider25.TypeValidationError({
|
|
7730
7915
|
value: toolPart.input,
|
|
7731
7916
|
cause: `No tool schema found for tool part ${toolName}`
|
|
7732
7917
|
})
|
|
@@ -7895,7 +8080,7 @@ async function embed({
|
|
|
7895
8080
|
}),
|
|
7896
8081
|
tracer,
|
|
7897
8082
|
fn: async (doEmbedSpan) => {
|
|
7898
|
-
var
|
|
8083
|
+
var _a16;
|
|
7899
8084
|
const modelResponse = await model.doEmbed({
|
|
7900
8085
|
values: [value],
|
|
7901
8086
|
abortSignal,
|
|
@@ -7903,7 +8088,7 @@ async function embed({
|
|
|
7903
8088
|
providerOptions
|
|
7904
8089
|
});
|
|
7905
8090
|
const embedding2 = modelResponse.embeddings[0];
|
|
7906
|
-
const usage2 = (
|
|
8091
|
+
const usage2 = (_a16 = modelResponse.usage) != null ? _a16 : { tokens: NaN };
|
|
7907
8092
|
doEmbedSpan.setAttributes(
|
|
7908
8093
|
await selectTelemetryAttributes({
|
|
7909
8094
|
telemetry,
|
|
@@ -8017,7 +8202,7 @@ async function embedMany({
|
|
|
8017
8202
|
}),
|
|
8018
8203
|
tracer,
|
|
8019
8204
|
fn: async (span) => {
|
|
8020
|
-
var
|
|
8205
|
+
var _a16;
|
|
8021
8206
|
const [maxEmbeddingsPerCall, supportsParallelCalls] = await Promise.all([
|
|
8022
8207
|
model.maxEmbeddingsPerCall,
|
|
8023
8208
|
model.supportsParallelCalls
|
|
@@ -8042,7 +8227,7 @@ async function embedMany({
|
|
|
8042
8227
|
}),
|
|
8043
8228
|
tracer,
|
|
8044
8229
|
fn: async (doEmbedSpan) => {
|
|
8045
|
-
var
|
|
8230
|
+
var _a17;
|
|
8046
8231
|
const modelResponse = await model.doEmbed({
|
|
8047
8232
|
values,
|
|
8048
8233
|
abortSignal,
|
|
@@ -8050,7 +8235,7 @@ async function embedMany({
|
|
|
8050
8235
|
providerOptions
|
|
8051
8236
|
});
|
|
8052
8237
|
const embeddings3 = modelResponse.embeddings;
|
|
8053
|
-
const usage2 = (
|
|
8238
|
+
const usage2 = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
|
|
8054
8239
|
doEmbedSpan.setAttributes(
|
|
8055
8240
|
await selectTelemetryAttributes({
|
|
8056
8241
|
telemetry,
|
|
@@ -8131,7 +8316,7 @@ async function embedMany({
|
|
|
8131
8316
|
}),
|
|
8132
8317
|
tracer,
|
|
8133
8318
|
fn: async (doEmbedSpan) => {
|
|
8134
|
-
var
|
|
8319
|
+
var _a17;
|
|
8135
8320
|
const modelResponse = await model.doEmbed({
|
|
8136
8321
|
values: chunk,
|
|
8137
8322
|
abortSignal,
|
|
@@ -8139,7 +8324,7 @@ async function embedMany({
|
|
|
8139
8324
|
providerOptions
|
|
8140
8325
|
});
|
|
8141
8326
|
const embeddings2 = modelResponse.embeddings;
|
|
8142
|
-
const usage = (
|
|
8327
|
+
const usage = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
|
|
8143
8328
|
doEmbedSpan.setAttributes(
|
|
8144
8329
|
await selectTelemetryAttributes({
|
|
8145
8330
|
telemetry,
|
|
@@ -8178,7 +8363,7 @@ async function embedMany({
|
|
|
8178
8363
|
result.providerMetadata
|
|
8179
8364
|
)) {
|
|
8180
8365
|
providerMetadata[providerName] = {
|
|
8181
|
-
...(
|
|
8366
|
+
...(_a16 = providerMetadata[providerName]) != null ? _a16 : {},
|
|
8182
8367
|
...metadata
|
|
8183
8368
|
};
|
|
8184
8369
|
}
|
|
@@ -8239,7 +8424,7 @@ async function generateImage({
|
|
|
8239
8424
|
abortSignal,
|
|
8240
8425
|
headers
|
|
8241
8426
|
}) {
|
|
8242
|
-
var
|
|
8427
|
+
var _a16, _b;
|
|
8243
8428
|
const model = resolveImageModel(modelArg);
|
|
8244
8429
|
const headersWithUserAgent = (0, import_provider_utils25.withUserAgentSuffix)(
|
|
8245
8430
|
headers != null ? headers : {},
|
|
@@ -8249,7 +8434,7 @@ async function generateImage({
|
|
|
8249
8434
|
maxRetries: maxRetriesArg,
|
|
8250
8435
|
abortSignal
|
|
8251
8436
|
});
|
|
8252
|
-
const maxImagesPerCallWithDefault = (
|
|
8437
|
+
const maxImagesPerCallWithDefault = (_a16 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a16 : 1;
|
|
8253
8438
|
const callCount = Math.ceil(n / maxImagesPerCallWithDefault);
|
|
8254
8439
|
const callImageCounts = Array.from({ length: callCount }, (_, i) => {
|
|
8255
8440
|
if (i < callCount - 1) {
|
|
@@ -8290,13 +8475,13 @@ async function generateImage({
|
|
|
8290
8475
|
images.push(
|
|
8291
8476
|
...result.images.map(
|
|
8292
8477
|
(image) => {
|
|
8293
|
-
var
|
|
8478
|
+
var _a17;
|
|
8294
8479
|
return new DefaultGeneratedFile({
|
|
8295
8480
|
data: image,
|
|
8296
|
-
mediaType: (
|
|
8481
|
+
mediaType: (_a17 = detectMediaType({
|
|
8297
8482
|
data: image,
|
|
8298
8483
|
signatures: imageMediaTypeSignatures
|
|
8299
|
-
})) != null ?
|
|
8484
|
+
})) != null ? _a17 : "image/png"
|
|
8300
8485
|
});
|
|
8301
8486
|
}
|
|
8302
8487
|
)
|
|
@@ -8421,7 +8606,7 @@ function extractReasoningContent(content) {
|
|
|
8421
8606
|
}
|
|
8422
8607
|
|
|
8423
8608
|
// src/generate-object/output-strategy.ts
|
|
8424
|
-
var
|
|
8609
|
+
var import_provider26 = require("@ai-sdk/provider");
|
|
8425
8610
|
var import_provider_utils26 = require("@ai-sdk/provider-utils");
|
|
8426
8611
|
var noSchemaOutputStrategy = {
|
|
8427
8612
|
type: "no-schema",
|
|
@@ -8442,7 +8627,7 @@ var noSchemaOutputStrategy = {
|
|
|
8442
8627
|
} : { success: true, value };
|
|
8443
8628
|
},
|
|
8444
8629
|
createElementStream() {
|
|
8445
|
-
throw new
|
|
8630
|
+
throw new import_provider26.UnsupportedFunctionalityError({
|
|
8446
8631
|
functionality: "element streams in no-schema mode"
|
|
8447
8632
|
});
|
|
8448
8633
|
}
|
|
@@ -8464,7 +8649,7 @@ var objectOutputStrategy = (schema) => ({
|
|
|
8464
8649
|
return (0, import_provider_utils26.safeValidateTypes)({ value, schema });
|
|
8465
8650
|
},
|
|
8466
8651
|
createElementStream() {
|
|
8467
|
-
throw new
|
|
8652
|
+
throw new import_provider26.UnsupportedFunctionalityError({
|
|
8468
8653
|
functionality: "element streams in object mode"
|
|
8469
8654
|
});
|
|
8470
8655
|
}
|
|
@@ -8493,11 +8678,11 @@ var arrayOutputStrategy = (schema) => {
|
|
|
8493
8678
|
isFirstDelta,
|
|
8494
8679
|
isFinalDelta
|
|
8495
8680
|
}) {
|
|
8496
|
-
var
|
|
8497
|
-
if (!(0,
|
|
8681
|
+
var _a16;
|
|
8682
|
+
if (!(0, import_provider26.isJSONObject)(value) || !(0, import_provider26.isJSONArray)(value.elements)) {
|
|
8498
8683
|
return {
|
|
8499
8684
|
success: false,
|
|
8500
|
-
error: new
|
|
8685
|
+
error: new import_provider26.TypeValidationError({
|
|
8501
8686
|
value,
|
|
8502
8687
|
cause: "value must be an object that contains an array of elements"
|
|
8503
8688
|
})
|
|
@@ -8516,7 +8701,7 @@ var arrayOutputStrategy = (schema) => {
|
|
|
8516
8701
|
}
|
|
8517
8702
|
resultArray.push(result.value);
|
|
8518
8703
|
}
|
|
8519
|
-
const publishedElementCount = (
|
|
8704
|
+
const publishedElementCount = (_a16 = latestObject == null ? void 0 : latestObject.length) != null ? _a16 : 0;
|
|
8520
8705
|
let textDelta = "";
|
|
8521
8706
|
if (isFirstDelta) {
|
|
8522
8707
|
textDelta += "[";
|
|
@@ -8537,10 +8722,10 @@ var arrayOutputStrategy = (schema) => {
|
|
|
8537
8722
|
};
|
|
8538
8723
|
},
|
|
8539
8724
|
async validateFinalResult(value) {
|
|
8540
|
-
if (!(0,
|
|
8725
|
+
if (!(0, import_provider26.isJSONObject)(value) || !(0, import_provider26.isJSONArray)(value.elements)) {
|
|
8541
8726
|
return {
|
|
8542
8727
|
success: false,
|
|
8543
|
-
error: new
|
|
8728
|
+
error: new import_provider26.TypeValidationError({
|
|
8544
8729
|
value,
|
|
8545
8730
|
cause: "value must be an object that contains an array of elements"
|
|
8546
8731
|
})
|
|
@@ -8603,10 +8788,10 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
8603
8788
|
additionalProperties: false
|
|
8604
8789
|
}),
|
|
8605
8790
|
async validateFinalResult(value) {
|
|
8606
|
-
if (!(0,
|
|
8791
|
+
if (!(0, import_provider26.isJSONObject)(value) || typeof value.result !== "string") {
|
|
8607
8792
|
return {
|
|
8608
8793
|
success: false,
|
|
8609
|
-
error: new
|
|
8794
|
+
error: new import_provider26.TypeValidationError({
|
|
8610
8795
|
value,
|
|
8611
8796
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
8612
8797
|
})
|
|
@@ -8615,17 +8800,17 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
8615
8800
|
const result = value.result;
|
|
8616
8801
|
return enumValues.includes(result) ? { success: true, value: result } : {
|
|
8617
8802
|
success: false,
|
|
8618
|
-
error: new
|
|
8803
|
+
error: new import_provider26.TypeValidationError({
|
|
8619
8804
|
value,
|
|
8620
8805
|
cause: "value must be a string in the enum"
|
|
8621
8806
|
})
|
|
8622
8807
|
};
|
|
8623
8808
|
},
|
|
8624
8809
|
async validatePartialResult({ value, textDelta }) {
|
|
8625
|
-
if (!(0,
|
|
8810
|
+
if (!(0, import_provider26.isJSONObject)(value) || typeof value.result !== "string") {
|
|
8626
8811
|
return {
|
|
8627
8812
|
success: false,
|
|
8628
|
-
error: new
|
|
8813
|
+
error: new import_provider26.TypeValidationError({
|
|
8629
8814
|
value,
|
|
8630
8815
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
8631
8816
|
})
|
|
@@ -8638,7 +8823,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
8638
8823
|
if (value.result.length === 0 || possibleEnumValues.length === 0) {
|
|
8639
8824
|
return {
|
|
8640
8825
|
success: false,
|
|
8641
|
-
error: new
|
|
8826
|
+
error: new import_provider26.TypeValidationError({
|
|
8642
8827
|
value,
|
|
8643
8828
|
cause: "value must be a string in the enum"
|
|
8644
8829
|
})
|
|
@@ -8653,7 +8838,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
8653
8838
|
};
|
|
8654
8839
|
},
|
|
8655
8840
|
createElementStream() {
|
|
8656
|
-
throw new
|
|
8841
|
+
throw new import_provider26.UnsupportedFunctionalityError({
|
|
8657
8842
|
functionality: "element streams in enum mode"
|
|
8658
8843
|
});
|
|
8659
8844
|
}
|
|
@@ -8681,7 +8866,7 @@ function getOutputStrategy({
|
|
|
8681
8866
|
}
|
|
8682
8867
|
|
|
8683
8868
|
// src/generate-object/parse-and-validate-object-result.ts
|
|
8684
|
-
var
|
|
8869
|
+
var import_provider27 = require("@ai-sdk/provider");
|
|
8685
8870
|
var import_provider_utils27 = require("@ai-sdk/provider-utils");
|
|
8686
8871
|
async function parseAndValidateObjectResult(result, outputStrategy, context) {
|
|
8687
8872
|
const parseResult = await (0, import_provider_utils27.safeParseJSON)({ text: result });
|
|
@@ -8719,7 +8904,7 @@ async function parseAndValidateObjectResultWithRepair(result, outputStrategy, re
|
|
|
8719
8904
|
try {
|
|
8720
8905
|
return await parseAndValidateObjectResult(result, outputStrategy, context);
|
|
8721
8906
|
} catch (error) {
|
|
8722
|
-
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (
|
|
8907
|
+
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (import_provider27.JSONParseError.isInstance(error.cause) || import_provider27.TypeValidationError.isInstance(error.cause))) {
|
|
8723
8908
|
const repairedText = await repairText({
|
|
8724
8909
|
text: result,
|
|
8725
8910
|
error: error.cause
|
|
@@ -8936,7 +9121,7 @@ async function generateObject(options) {
|
|
|
8936
9121
|
}),
|
|
8937
9122
|
tracer,
|
|
8938
9123
|
fn: async (span) => {
|
|
8939
|
-
var
|
|
9124
|
+
var _a16;
|
|
8940
9125
|
let result;
|
|
8941
9126
|
let finishReason;
|
|
8942
9127
|
let usage;
|
|
@@ -8982,7 +9167,7 @@ async function generateObject(options) {
|
|
|
8982
9167
|
}),
|
|
8983
9168
|
tracer,
|
|
8984
9169
|
fn: async (span2) => {
|
|
8985
|
-
var
|
|
9170
|
+
var _a17, _b, _c, _d, _e, _f, _g, _h;
|
|
8986
9171
|
const result2 = await model.doGenerate({
|
|
8987
9172
|
responseFormat: {
|
|
8988
9173
|
type: "json",
|
|
@@ -8997,7 +9182,7 @@ async function generateObject(options) {
|
|
|
8997
9182
|
headers: headersWithUserAgent
|
|
8998
9183
|
});
|
|
8999
9184
|
const responseData = {
|
|
9000
|
-
id: (_b = (
|
|
9185
|
+
id: (_b = (_a17 = result2.response) == null ? void 0 : _a17.id) != null ? _b : generateId2(),
|
|
9001
9186
|
timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
|
|
9002
9187
|
modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId,
|
|
9003
9188
|
headers: (_g = result2.response) == null ? void 0 : _g.headers,
|
|
@@ -9053,7 +9238,7 @@ async function generateObject(options) {
|
|
|
9053
9238
|
usage = asLanguageModelUsage(generateResult.usage);
|
|
9054
9239
|
warnings = generateResult.warnings;
|
|
9055
9240
|
resultProviderMetadata = generateResult.providerMetadata;
|
|
9056
|
-
request = (
|
|
9241
|
+
request = (_a16 = generateResult.request) != null ? _a16 : {};
|
|
9057
9242
|
response = generateResult.responseData;
|
|
9058
9243
|
reasoning = generateResult.reasoning;
|
|
9059
9244
|
logWarnings({
|
|
@@ -9116,9 +9301,9 @@ var DefaultGenerateObjectResult = class {
|
|
|
9116
9301
|
this.reasoning = options.reasoning;
|
|
9117
9302
|
}
|
|
9118
9303
|
toJsonResponse(init) {
|
|
9119
|
-
var
|
|
9304
|
+
var _a16;
|
|
9120
9305
|
return new Response(JSON.stringify(this.object), {
|
|
9121
|
-
status: (
|
|
9306
|
+
status: (_a16 = init == null ? void 0 : init.status) != null ? _a16 : 200,
|
|
9122
9307
|
headers: prepareHeaders(init == null ? void 0 : init.headers, {
|
|
9123
9308
|
"content-type": "application/json; charset=utf-8"
|
|
9124
9309
|
})
|
|
@@ -9244,8 +9429,8 @@ function simulateReadableStream({
|
|
|
9244
9429
|
chunkDelayInMs = 0,
|
|
9245
9430
|
_internal
|
|
9246
9431
|
}) {
|
|
9247
|
-
var
|
|
9248
|
-
const delay2 = (
|
|
9432
|
+
var _a16;
|
|
9433
|
+
const delay2 = (_a16 = _internal == null ? void 0 : _internal.delay) != null ? _a16 : import_provider_utils29.delay;
|
|
9249
9434
|
let index = 0;
|
|
9250
9435
|
return new ReadableStream({
|
|
9251
9436
|
async pull(controller) {
|
|
@@ -9503,7 +9688,7 @@ var DefaultStreamObjectResult = class {
|
|
|
9503
9688
|
const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
|
|
9504
9689
|
new TransformStream({
|
|
9505
9690
|
async transform(chunk, controller) {
|
|
9506
|
-
var
|
|
9691
|
+
var _a16, _b, _c;
|
|
9507
9692
|
if (typeof chunk === "object" && chunk.type === "stream-start") {
|
|
9508
9693
|
warnings = chunk.warnings;
|
|
9509
9694
|
return;
|
|
@@ -9553,7 +9738,7 @@ var DefaultStreamObjectResult = class {
|
|
|
9553
9738
|
switch (chunk.type) {
|
|
9554
9739
|
case "response-metadata": {
|
|
9555
9740
|
fullResponse = {
|
|
9556
|
-
id: (
|
|
9741
|
+
id: (_a16 = chunk.id) != null ? _a16 : fullResponse.id,
|
|
9557
9742
|
timestamp: (_b = chunk.timestamp) != null ? _b : fullResponse.timestamp,
|
|
9558
9743
|
modelId: (_c = chunk.modelId) != null ? _c : fullResponse.modelId
|
|
9559
9744
|
};
|
|
@@ -9825,7 +10010,7 @@ async function generateSpeech({
|
|
|
9825
10010
|
abortSignal,
|
|
9826
10011
|
headers
|
|
9827
10012
|
}) {
|
|
9828
|
-
var
|
|
10013
|
+
var _a16;
|
|
9829
10014
|
const resolvedModel = resolveSpeechModel(model);
|
|
9830
10015
|
if (!resolvedModel) {
|
|
9831
10016
|
throw new Error("Model could not be resolved");
|
|
@@ -9862,10 +10047,10 @@ async function generateSpeech({
|
|
|
9862
10047
|
return new DefaultSpeechResult({
|
|
9863
10048
|
audio: new DefaultGeneratedAudioFile({
|
|
9864
10049
|
data: result.audio,
|
|
9865
|
-
mediaType: (
|
|
10050
|
+
mediaType: (_a16 = detectMediaType({
|
|
9866
10051
|
data: result.audio,
|
|
9867
10052
|
signatures: audioMediaTypeSignatures
|
|
9868
|
-
})) != null ?
|
|
10053
|
+
})) != null ? _a16 : "audio/mp3"
|
|
9869
10054
|
}),
|
|
9870
10055
|
warnings: result.warnings,
|
|
9871
10056
|
responses: [result.response],
|
|
@@ -9874,11 +10059,11 @@ async function generateSpeech({
|
|
|
9874
10059
|
}
|
|
9875
10060
|
var DefaultSpeechResult = class {
|
|
9876
10061
|
constructor(options) {
|
|
9877
|
-
var
|
|
10062
|
+
var _a16;
|
|
9878
10063
|
this.audio = options.audio;
|
|
9879
10064
|
this.warnings = options.warnings;
|
|
9880
10065
|
this.responses = options.responses;
|
|
9881
|
-
this.providerMetadata = (
|
|
10066
|
+
this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};
|
|
9882
10067
|
}
|
|
9883
10068
|
};
|
|
9884
10069
|
|
|
@@ -9963,7 +10148,7 @@ function pruneMessages({
|
|
|
9963
10148
|
|
|
9964
10149
|
// src/generate-text/smooth-stream.ts
|
|
9965
10150
|
var import_provider_utils32 = require("@ai-sdk/provider-utils");
|
|
9966
|
-
var
|
|
10151
|
+
var import_provider28 = require("@ai-sdk/provider");
|
|
9967
10152
|
var CHUNKING_REGEXPS = {
|
|
9968
10153
|
word: /\S+\s+/m,
|
|
9969
10154
|
line: /\n+/m
|
|
@@ -9993,7 +10178,7 @@ function smoothStream({
|
|
|
9993
10178
|
} else {
|
|
9994
10179
|
const chunkingRegex = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking;
|
|
9995
10180
|
if (chunkingRegex == null) {
|
|
9996
|
-
throw new
|
|
10181
|
+
throw new import_provider28.InvalidArgumentError({
|
|
9997
10182
|
argument: "chunking",
|
|
9998
10183
|
message: `Chunking must be "word" or "line" or a RegExp. Received: ${chunking}`
|
|
9999
10184
|
});
|
|
@@ -10310,13 +10495,13 @@ function addToolInputExamplesMiddleware({
|
|
|
10310
10495
|
return {
|
|
10311
10496
|
specificationVersion: "v3",
|
|
10312
10497
|
transformParams: async ({ params }) => {
|
|
10313
|
-
var
|
|
10314
|
-
if (!((
|
|
10498
|
+
var _a16;
|
|
10499
|
+
if (!((_a16 = params.tools) == null ? void 0 : _a16.length)) {
|
|
10315
10500
|
return params;
|
|
10316
10501
|
}
|
|
10317
10502
|
const transformedTools = params.tools.map((tool2) => {
|
|
10318
|
-
var
|
|
10319
|
-
if (tool2.type !== "function" || !((
|
|
10503
|
+
var _a17;
|
|
10504
|
+
if (tool2.type !== "function" || !((_a17 = tool2.inputExamples) == null ? void 0 : _a17.length)) {
|
|
10320
10505
|
return tool2;
|
|
10321
10506
|
}
|
|
10322
10507
|
const formattedExamples = tool2.inputExamples.map((example, index) => format(example, index)).join("\n");
|
|
@@ -10363,7 +10548,7 @@ var doWrap = ({
|
|
|
10363
10548
|
modelId,
|
|
10364
10549
|
providerId
|
|
10365
10550
|
}) => {
|
|
10366
|
-
var
|
|
10551
|
+
var _a16, _b, _c;
|
|
10367
10552
|
async function doTransform({
|
|
10368
10553
|
params,
|
|
10369
10554
|
type
|
|
@@ -10372,7 +10557,7 @@ var doWrap = ({
|
|
|
10372
10557
|
}
|
|
10373
10558
|
return {
|
|
10374
10559
|
specificationVersion: "v3",
|
|
10375
|
-
provider: (
|
|
10560
|
+
provider: (_a16 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a16 : model.provider,
|
|
10376
10561
|
modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
|
|
10377
10562
|
supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
|
|
10378
10563
|
async doGenerate(params) {
|
|
@@ -10419,7 +10604,7 @@ var doWrap2 = ({
|
|
|
10419
10604
|
modelId,
|
|
10420
10605
|
providerId
|
|
10421
10606
|
}) => {
|
|
10422
|
-
var
|
|
10607
|
+
var _a16, _b, _c, _d;
|
|
10423
10608
|
async function doTransform({
|
|
10424
10609
|
params
|
|
10425
10610
|
}) {
|
|
@@ -10427,7 +10612,7 @@ var doWrap2 = ({
|
|
|
10427
10612
|
}
|
|
10428
10613
|
return {
|
|
10429
10614
|
specificationVersion: "v3",
|
|
10430
|
-
provider: (
|
|
10615
|
+
provider: (_a16 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a16 : model.provider,
|
|
10431
10616
|
modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
|
|
10432
10617
|
maxEmbeddingsPerCall: (_c = overrideMaxEmbeddingsPerCall == null ? void 0 : overrideMaxEmbeddingsPerCall({ model })) != null ? _c : model.maxEmbeddingsPerCall,
|
|
10433
10618
|
supportsParallelCalls: (_d = overrideSupportsParallelCalls == null ? void 0 : overrideSupportsParallelCalls({ model })) != null ? _d : model.supportsParallelCalls,
|
|
@@ -10482,7 +10667,7 @@ function wrapProvider({
|
|
|
10482
10667
|
}
|
|
10483
10668
|
|
|
10484
10669
|
// src/registry/custom-provider.ts
|
|
10485
|
-
var
|
|
10670
|
+
var import_provider29 = require("@ai-sdk/provider");
|
|
10486
10671
|
function customProvider({
|
|
10487
10672
|
languageModels,
|
|
10488
10673
|
embeddingModels,
|
|
@@ -10502,7 +10687,7 @@ function customProvider({
|
|
|
10502
10687
|
if (fallbackProvider) {
|
|
10503
10688
|
return fallbackProvider.languageModel(modelId);
|
|
10504
10689
|
}
|
|
10505
|
-
throw new
|
|
10690
|
+
throw new import_provider29.NoSuchModelError({ modelId, modelType: "languageModel" });
|
|
10506
10691
|
},
|
|
10507
10692
|
embeddingModel(modelId) {
|
|
10508
10693
|
if (embeddingModels != null && modelId in embeddingModels) {
|
|
@@ -10511,7 +10696,7 @@ function customProvider({
|
|
|
10511
10696
|
if (fallbackProvider) {
|
|
10512
10697
|
return fallbackProvider.embeddingModel(modelId);
|
|
10513
10698
|
}
|
|
10514
|
-
throw new
|
|
10699
|
+
throw new import_provider29.NoSuchModelError({ modelId, modelType: "embeddingModel" });
|
|
10515
10700
|
},
|
|
10516
10701
|
imageModel(modelId) {
|
|
10517
10702
|
if (imageModels != null && modelId in imageModels) {
|
|
@@ -10520,7 +10705,7 @@ function customProvider({
|
|
|
10520
10705
|
if (fallbackProvider == null ? void 0 : fallbackProvider.imageModel) {
|
|
10521
10706
|
return fallbackProvider.imageModel(modelId);
|
|
10522
10707
|
}
|
|
10523
|
-
throw new
|
|
10708
|
+
throw new import_provider29.NoSuchModelError({ modelId, modelType: "imageModel" });
|
|
10524
10709
|
},
|
|
10525
10710
|
transcriptionModel(modelId) {
|
|
10526
10711
|
if (transcriptionModels != null && modelId in transcriptionModels) {
|
|
@@ -10529,7 +10714,7 @@ function customProvider({
|
|
|
10529
10714
|
if (fallbackProvider == null ? void 0 : fallbackProvider.transcriptionModel) {
|
|
10530
10715
|
return fallbackProvider.transcriptionModel(modelId);
|
|
10531
10716
|
}
|
|
10532
|
-
throw new
|
|
10717
|
+
throw new import_provider29.NoSuchModelError({ modelId, modelType: "transcriptionModel" });
|
|
10533
10718
|
},
|
|
10534
10719
|
speechModel(modelId) {
|
|
10535
10720
|
if (speechModels != null && modelId in speechModels) {
|
|
@@ -10538,7 +10723,7 @@ function customProvider({
|
|
|
10538
10723
|
if (fallbackProvider == null ? void 0 : fallbackProvider.speechModel) {
|
|
10539
10724
|
return fallbackProvider.speechModel(modelId);
|
|
10540
10725
|
}
|
|
10541
|
-
throw new
|
|
10726
|
+
throw new import_provider29.NoSuchModelError({ modelId, modelType: "speechModel" });
|
|
10542
10727
|
},
|
|
10543
10728
|
rerankingModel(modelId) {
|
|
10544
10729
|
if (rerankingModels != null && modelId in rerankingModels) {
|
|
@@ -10547,19 +10732,19 @@ function customProvider({
|
|
|
10547
10732
|
if (fallbackProvider == null ? void 0 : fallbackProvider.rerankingModel) {
|
|
10548
10733
|
return fallbackProvider.rerankingModel(modelId);
|
|
10549
10734
|
}
|
|
10550
|
-
throw new
|
|
10735
|
+
throw new import_provider29.NoSuchModelError({ modelId, modelType: "rerankingModel" });
|
|
10551
10736
|
}
|
|
10552
10737
|
};
|
|
10553
10738
|
}
|
|
10554
10739
|
var experimental_customProvider = customProvider;
|
|
10555
10740
|
|
|
10556
10741
|
// src/registry/no-such-provider-error.ts
|
|
10557
|
-
var
|
|
10558
|
-
var
|
|
10559
|
-
var
|
|
10560
|
-
var
|
|
10561
|
-
var
|
|
10562
|
-
var NoSuchProviderError = class extends
|
|
10742
|
+
var import_provider30 = require("@ai-sdk/provider");
|
|
10743
|
+
var name15 = "AI_NoSuchProviderError";
|
|
10744
|
+
var marker15 = `vercel.ai.error.${name15}`;
|
|
10745
|
+
var symbol15 = Symbol.for(marker15);
|
|
10746
|
+
var _a15;
|
|
10747
|
+
var NoSuchProviderError = class extends import_provider30.NoSuchModelError {
|
|
10563
10748
|
constructor({
|
|
10564
10749
|
modelId,
|
|
10565
10750
|
modelType,
|
|
@@ -10567,19 +10752,19 @@ var NoSuchProviderError = class extends import_provider28.NoSuchModelError {
|
|
|
10567
10752
|
availableProviders,
|
|
10568
10753
|
message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
|
|
10569
10754
|
}) {
|
|
10570
|
-
super({ errorName:
|
|
10571
|
-
this[
|
|
10755
|
+
super({ errorName: name15, modelId, modelType, message });
|
|
10756
|
+
this[_a15] = true;
|
|
10572
10757
|
this.providerId = providerId;
|
|
10573
10758
|
this.availableProviders = availableProviders;
|
|
10574
10759
|
}
|
|
10575
10760
|
static isInstance(error) {
|
|
10576
|
-
return
|
|
10761
|
+
return import_provider30.AISDKError.hasMarker(error, marker15);
|
|
10577
10762
|
}
|
|
10578
10763
|
};
|
|
10579
|
-
|
|
10764
|
+
_a15 = symbol15;
|
|
10580
10765
|
|
|
10581
10766
|
// src/registry/provider-registry.ts
|
|
10582
|
-
var
|
|
10767
|
+
var import_provider31 = require("@ai-sdk/provider");
|
|
10583
10768
|
function createProviderRegistry(providers, {
|
|
10584
10769
|
separator = ":",
|
|
10585
10770
|
languageModelMiddleware
|
|
@@ -10624,7 +10809,7 @@ var DefaultProviderRegistry = class {
|
|
|
10624
10809
|
splitId(id, modelType) {
|
|
10625
10810
|
const index = id.indexOf(this.separator);
|
|
10626
10811
|
if (index === -1) {
|
|
10627
|
-
throw new
|
|
10812
|
+
throw new import_provider31.NoSuchModelError({
|
|
10628
10813
|
modelId: id,
|
|
10629
10814
|
modelType,
|
|
10630
10815
|
message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId${this.separator}modelId")`
|
|
@@ -10633,14 +10818,14 @@ var DefaultProviderRegistry = class {
|
|
|
10633
10818
|
return [id.slice(0, index), id.slice(index + this.separator.length)];
|
|
10634
10819
|
}
|
|
10635
10820
|
languageModel(id) {
|
|
10636
|
-
var
|
|
10821
|
+
var _a16, _b;
|
|
10637
10822
|
const [providerId, modelId] = this.splitId(id, "languageModel");
|
|
10638
|
-
let model = (_b = (
|
|
10639
|
-
|
|
10823
|
+
let model = (_b = (_a16 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b.call(
|
|
10824
|
+
_a16,
|
|
10640
10825
|
modelId
|
|
10641
10826
|
);
|
|
10642
10827
|
if (model == null) {
|
|
10643
|
-
throw new
|
|
10828
|
+
throw new import_provider31.NoSuchModelError({ modelId: id, modelType: "languageModel" });
|
|
10644
10829
|
}
|
|
10645
10830
|
if (this.languageModelMiddleware != null) {
|
|
10646
10831
|
model = wrapLanguageModel({
|
|
@@ -10651,12 +10836,12 @@ var DefaultProviderRegistry = class {
|
|
|
10651
10836
|
return model;
|
|
10652
10837
|
}
|
|
10653
10838
|
embeddingModel(id) {
|
|
10654
|
-
var
|
|
10839
|
+
var _a16;
|
|
10655
10840
|
const [providerId, modelId] = this.splitId(id, "embeddingModel");
|
|
10656
10841
|
const provider = this.getProvider(providerId, "embeddingModel");
|
|
10657
|
-
const model = (
|
|
10842
|
+
const model = (_a16 = provider.embeddingModel) == null ? void 0 : _a16.call(provider, modelId);
|
|
10658
10843
|
if (model == null) {
|
|
10659
|
-
throw new
|
|
10844
|
+
throw new import_provider31.NoSuchModelError({
|
|
10660
10845
|
modelId: id,
|
|
10661
10846
|
modelType: "embeddingModel"
|
|
10662
10847
|
});
|
|
@@ -10664,22 +10849,22 @@ var DefaultProviderRegistry = class {
|
|
|
10664
10849
|
return model;
|
|
10665
10850
|
}
|
|
10666
10851
|
imageModel(id) {
|
|
10667
|
-
var
|
|
10852
|
+
var _a16;
|
|
10668
10853
|
const [providerId, modelId] = this.splitId(id, "imageModel");
|
|
10669
10854
|
const provider = this.getProvider(providerId, "imageModel");
|
|
10670
|
-
const model = (
|
|
10855
|
+
const model = (_a16 = provider.imageModel) == null ? void 0 : _a16.call(provider, modelId);
|
|
10671
10856
|
if (model == null) {
|
|
10672
|
-
throw new
|
|
10857
|
+
throw new import_provider31.NoSuchModelError({ modelId: id, modelType: "imageModel" });
|
|
10673
10858
|
}
|
|
10674
10859
|
return model;
|
|
10675
10860
|
}
|
|
10676
10861
|
transcriptionModel(id) {
|
|
10677
|
-
var
|
|
10862
|
+
var _a16;
|
|
10678
10863
|
const [providerId, modelId] = this.splitId(id, "transcriptionModel");
|
|
10679
10864
|
const provider = this.getProvider(providerId, "transcriptionModel");
|
|
10680
|
-
const model = (
|
|
10865
|
+
const model = (_a16 = provider.transcriptionModel) == null ? void 0 : _a16.call(provider, modelId);
|
|
10681
10866
|
if (model == null) {
|
|
10682
|
-
throw new
|
|
10867
|
+
throw new import_provider31.NoSuchModelError({
|
|
10683
10868
|
modelId: id,
|
|
10684
10869
|
modelType: "transcriptionModel"
|
|
10685
10870
|
});
|
|
@@ -10687,22 +10872,22 @@ var DefaultProviderRegistry = class {
|
|
|
10687
10872
|
return model;
|
|
10688
10873
|
}
|
|
10689
10874
|
speechModel(id) {
|
|
10690
|
-
var
|
|
10875
|
+
var _a16;
|
|
10691
10876
|
const [providerId, modelId] = this.splitId(id, "speechModel");
|
|
10692
10877
|
const provider = this.getProvider(providerId, "speechModel");
|
|
10693
|
-
const model = (
|
|
10878
|
+
const model = (_a16 = provider.speechModel) == null ? void 0 : _a16.call(provider, modelId);
|
|
10694
10879
|
if (model == null) {
|
|
10695
|
-
throw new
|
|
10880
|
+
throw new import_provider31.NoSuchModelError({ modelId: id, modelType: "speechModel" });
|
|
10696
10881
|
}
|
|
10697
10882
|
return model;
|
|
10698
10883
|
}
|
|
10699
10884
|
rerankingModel(id) {
|
|
10700
|
-
var
|
|
10885
|
+
var _a16;
|
|
10701
10886
|
const [providerId, modelId] = this.splitId(id, "rerankingModel");
|
|
10702
10887
|
const provider = this.getProvider(providerId, "rerankingModel");
|
|
10703
|
-
const model = (
|
|
10888
|
+
const model = (_a16 = provider.rerankingModel) == null ? void 0 : _a16.call(provider, modelId);
|
|
10704
10889
|
if (model == null) {
|
|
10705
|
-
throw new
|
|
10890
|
+
throw new import_provider31.NoSuchModelError({ modelId: id, modelType: "rerankingModel" });
|
|
10706
10891
|
}
|
|
10707
10892
|
return model;
|
|
10708
10893
|
}
|
|
@@ -10757,7 +10942,7 @@ async function rerank({
|
|
|
10757
10942
|
}),
|
|
10758
10943
|
tracer,
|
|
10759
10944
|
fn: async () => {
|
|
10760
|
-
var
|
|
10945
|
+
var _a16, _b;
|
|
10761
10946
|
const { ranking, response, providerMetadata, warnings } = await retry(
|
|
10762
10947
|
() => recordSpan({
|
|
10763
10948
|
name: "ai.rerank.doRerank",
|
|
@@ -10821,7 +11006,7 @@ async function rerank({
|
|
|
10821
11006
|
providerMetadata,
|
|
10822
11007
|
response: {
|
|
10823
11008
|
id: response == null ? void 0 : response.id,
|
|
10824
|
-
timestamp: (
|
|
11009
|
+
timestamp: (_a16 = response == null ? void 0 : response.timestamp) != null ? _a16 : /* @__PURE__ */ new Date(),
|
|
10825
11010
|
modelId: (_b = response == null ? void 0 : response.modelId) != null ? _b : model.modelId,
|
|
10826
11011
|
headers: response == null ? void 0 : response.headers,
|
|
10827
11012
|
body: response == null ? void 0 : response.body
|
|
@@ -10846,8 +11031,8 @@ var DefaultRerankResult = class {
|
|
|
10846
11031
|
var import_provider_utils33 = require("@ai-sdk/provider-utils");
|
|
10847
11032
|
|
|
10848
11033
|
// src/error/no-transcript-generated-error.ts
|
|
10849
|
-
var
|
|
10850
|
-
var NoTranscriptGeneratedError = class extends
|
|
11034
|
+
var import_provider32 = require("@ai-sdk/provider");
|
|
11035
|
+
var NoTranscriptGeneratedError = class extends import_provider32.AISDKError {
|
|
10851
11036
|
constructor(options) {
|
|
10852
11037
|
super({
|
|
10853
11038
|
name: "AI_NoTranscriptGeneratedError",
|
|
@@ -10881,16 +11066,16 @@ async function transcribe({
|
|
|
10881
11066
|
const audioData = audio instanceof URL ? (await download({ url: audio })).data : convertDataContentToUint8Array(audio);
|
|
10882
11067
|
const result = await retry(
|
|
10883
11068
|
() => {
|
|
10884
|
-
var
|
|
11069
|
+
var _a16;
|
|
10885
11070
|
return resolvedModel.doGenerate({
|
|
10886
11071
|
audio: audioData,
|
|
10887
11072
|
abortSignal,
|
|
10888
11073
|
headers: headersWithUserAgent,
|
|
10889
11074
|
providerOptions,
|
|
10890
|
-
mediaType: (
|
|
11075
|
+
mediaType: (_a16 = detectMediaType({
|
|
10891
11076
|
data: audioData,
|
|
10892
11077
|
signatures: audioMediaTypeSignatures
|
|
10893
|
-
})) != null ?
|
|
11078
|
+
})) != null ? _a16 : "audio/wav"
|
|
10894
11079
|
});
|
|
10895
11080
|
}
|
|
10896
11081
|
);
|
|
@@ -10914,14 +11099,14 @@ async function transcribe({
|
|
|
10914
11099
|
}
|
|
10915
11100
|
var DefaultTranscriptionResult = class {
|
|
10916
11101
|
constructor(options) {
|
|
10917
|
-
var
|
|
11102
|
+
var _a16;
|
|
10918
11103
|
this.text = options.text;
|
|
10919
11104
|
this.segments = options.segments;
|
|
10920
11105
|
this.language = options.language;
|
|
10921
11106
|
this.durationInSeconds = options.durationInSeconds;
|
|
10922
11107
|
this.warnings = options.warnings;
|
|
10923
11108
|
this.responses = options.responses;
|
|
10924
|
-
this.providerMetadata = (
|
|
11109
|
+
this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};
|
|
10925
11110
|
}
|
|
10926
11111
|
};
|
|
10927
11112
|
|
|
@@ -10960,7 +11145,7 @@ async function callCompletionApi({
|
|
|
10960
11145
|
onError,
|
|
10961
11146
|
fetch: fetch2 = getOriginalFetch()
|
|
10962
11147
|
}) {
|
|
10963
|
-
var
|
|
11148
|
+
var _a16;
|
|
10964
11149
|
try {
|
|
10965
11150
|
setLoading(true);
|
|
10966
11151
|
setError(void 0);
|
|
@@ -10988,7 +11173,7 @@ async function callCompletionApi({
|
|
|
10988
11173
|
});
|
|
10989
11174
|
if (!response.ok) {
|
|
10990
11175
|
throw new Error(
|
|
10991
|
-
(
|
|
11176
|
+
(_a16 = await response.text()) != null ? _a16 : "Failed to fetch the chat response."
|
|
10992
11177
|
);
|
|
10993
11178
|
}
|
|
10994
11179
|
if (!response.body) {
|
|
@@ -11072,12 +11257,12 @@ async function convertFileListToFileUIParts(files) {
|
|
|
11072
11257
|
}
|
|
11073
11258
|
return Promise.all(
|
|
11074
11259
|
Array.from(files).map(async (file) => {
|
|
11075
|
-
const { name:
|
|
11260
|
+
const { name: name16, type } = file;
|
|
11076
11261
|
const dataUrl = await new Promise((resolve3, reject) => {
|
|
11077
11262
|
const reader = new FileReader();
|
|
11078
11263
|
reader.onload = (readerEvent) => {
|
|
11079
|
-
var
|
|
11080
|
-
resolve3((
|
|
11264
|
+
var _a16;
|
|
11265
|
+
resolve3((_a16 = readerEvent.target) == null ? void 0 : _a16.result);
|
|
11081
11266
|
};
|
|
11082
11267
|
reader.onerror = (error) => reject(error);
|
|
11083
11268
|
reader.readAsDataURL(file);
|
|
@@ -11085,7 +11270,7 @@ async function convertFileListToFileUIParts(files) {
|
|
|
11085
11270
|
return {
|
|
11086
11271
|
type: "file",
|
|
11087
11272
|
mediaType: type,
|
|
11088
|
-
filename:
|
|
11273
|
+
filename: name16,
|
|
11089
11274
|
url: dataUrl
|
|
11090
11275
|
};
|
|
11091
11276
|
})
|
|
@@ -11119,7 +11304,7 @@ var HttpChatTransport = class {
|
|
|
11119
11304
|
abortSignal,
|
|
11120
11305
|
...options
|
|
11121
11306
|
}) {
|
|
11122
|
-
var
|
|
11307
|
+
var _a16, _b, _c, _d, _e;
|
|
11123
11308
|
const resolvedBody = await (0, import_provider_utils35.resolve)(this.body);
|
|
11124
11309
|
const resolvedHeaders = await (0, import_provider_utils35.resolve)(this.headers);
|
|
11125
11310
|
const resolvedCredentials = await (0, import_provider_utils35.resolve)(this.credentials);
|
|
@@ -11127,7 +11312,7 @@ var HttpChatTransport = class {
|
|
|
11127
11312
|
...(0, import_provider_utils35.normalizeHeaders)(resolvedHeaders),
|
|
11128
11313
|
...(0, import_provider_utils35.normalizeHeaders)(options.headers)
|
|
11129
11314
|
};
|
|
11130
|
-
const preparedRequest = await ((
|
|
11315
|
+
const preparedRequest = await ((_a16 = this.prepareSendMessagesRequest) == null ? void 0 : _a16.call(this, {
|
|
11131
11316
|
api: this.api,
|
|
11132
11317
|
id: options.chatId,
|
|
11133
11318
|
messages: options.messages,
|
|
@@ -11175,7 +11360,7 @@ var HttpChatTransport = class {
|
|
|
11175
11360
|
return this.processResponseStream(response.body);
|
|
11176
11361
|
}
|
|
11177
11362
|
async reconnectToStream(options) {
|
|
11178
|
-
var
|
|
11363
|
+
var _a16, _b, _c, _d, _e;
|
|
11179
11364
|
const resolvedBody = await (0, import_provider_utils35.resolve)(this.body);
|
|
11180
11365
|
const resolvedHeaders = await (0, import_provider_utils35.resolve)(this.headers);
|
|
11181
11366
|
const resolvedCredentials = await (0, import_provider_utils35.resolve)(this.credentials);
|
|
@@ -11183,7 +11368,7 @@ var HttpChatTransport = class {
|
|
|
11183
11368
|
...(0, import_provider_utils35.normalizeHeaders)(resolvedHeaders),
|
|
11184
11369
|
...(0, import_provider_utils35.normalizeHeaders)(options.headers)
|
|
11185
11370
|
};
|
|
11186
|
-
const preparedRequest = await ((
|
|
11371
|
+
const preparedRequest = await ((_a16 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a16.call(this, {
|
|
11187
11372
|
api: this.api,
|
|
11188
11373
|
id: options.chatId,
|
|
11189
11374
|
body: { ...resolvedBody, ...options.body },
|
|
@@ -11265,11 +11450,11 @@ var AbstractChat = class {
|
|
|
11265
11450
|
* If a messageId is provided, the message will be replaced.
|
|
11266
11451
|
*/
|
|
11267
11452
|
this.sendMessage = async (message, options) => {
|
|
11268
|
-
var
|
|
11453
|
+
var _a16, _b, _c, _d;
|
|
11269
11454
|
if (message == null) {
|
|
11270
11455
|
await this.makeRequest({
|
|
11271
11456
|
trigger: "submit-message",
|
|
11272
|
-
messageId: (
|
|
11457
|
+
messageId: (_a16 = this.lastMessage) == null ? void 0 : _a16.id,
|
|
11273
11458
|
...options
|
|
11274
11459
|
});
|
|
11275
11460
|
return;
|
|
@@ -11362,7 +11547,7 @@ var AbstractChat = class {
|
|
|
11362
11547
|
approved,
|
|
11363
11548
|
reason
|
|
11364
11549
|
}) => this.jobExecutor.run(async () => {
|
|
11365
|
-
var
|
|
11550
|
+
var _a16, _b;
|
|
11366
11551
|
const messages = this.state.messages;
|
|
11367
11552
|
const lastMessage = messages[messages.length - 1];
|
|
11368
11553
|
const updatePart = (part) => isToolUIPart(part) && part.state === "approval-requested" && part.approval.id === id ? {
|
|
@@ -11377,7 +11562,7 @@ var AbstractChat = class {
|
|
|
11377
11562
|
if (this.activeResponse) {
|
|
11378
11563
|
this.activeResponse.state.message.parts = this.activeResponse.state.message.parts.map(updatePart);
|
|
11379
11564
|
}
|
|
11380
|
-
if (this.status !== "streaming" && this.status !== "submitted" && ((
|
|
11565
|
+
if (this.status !== "streaming" && this.status !== "submitted" && ((_a16 = this.sendAutomaticallyWhen) == null ? void 0 : _a16.call(this, { messages: this.state.messages }))) {
|
|
11381
11566
|
this.makeRequest({
|
|
11382
11567
|
trigger: "submit-message",
|
|
11383
11568
|
messageId: (_b = this.lastMessage) == null ? void 0 : _b.id
|
|
@@ -11391,7 +11576,7 @@ var AbstractChat = class {
|
|
|
11391
11576
|
output,
|
|
11392
11577
|
errorText
|
|
11393
11578
|
}) => this.jobExecutor.run(async () => {
|
|
11394
|
-
var
|
|
11579
|
+
var _a16, _b;
|
|
11395
11580
|
const messages = this.state.messages;
|
|
11396
11581
|
const lastMessage = messages[messages.length - 1];
|
|
11397
11582
|
const updatePart = (part) => isToolUIPart(part) && part.toolCallId === toolCallId ? { ...part, state, output, errorText } : part;
|
|
@@ -11402,7 +11587,7 @@ var AbstractChat = class {
|
|
|
11402
11587
|
if (this.activeResponse) {
|
|
11403
11588
|
this.activeResponse.state.message.parts = this.activeResponse.state.message.parts.map(updatePart);
|
|
11404
11589
|
}
|
|
11405
|
-
if (this.status !== "streaming" && this.status !== "submitted" && ((
|
|
11590
|
+
if (this.status !== "streaming" && this.status !== "submitted" && ((_a16 = this.sendAutomaticallyWhen) == null ? void 0 : _a16.call(this, { messages: this.state.messages }))) {
|
|
11406
11591
|
this.makeRequest({
|
|
11407
11592
|
trigger: "submit-message",
|
|
11408
11593
|
messageId: (_b = this.lastMessage) == null ? void 0 : _b.id
|
|
@@ -11415,10 +11600,10 @@ var AbstractChat = class {
|
|
|
11415
11600
|
* Abort the current request immediately, keep the generated tokens if any.
|
|
11416
11601
|
*/
|
|
11417
11602
|
this.stop = async () => {
|
|
11418
|
-
var
|
|
11603
|
+
var _a16;
|
|
11419
11604
|
if (this.status !== "streaming" && this.status !== "submitted")
|
|
11420
11605
|
return;
|
|
11421
|
-
if ((
|
|
11606
|
+
if ((_a16 = this.activeResponse) == null ? void 0 : _a16.abortController) {
|
|
11422
11607
|
this.activeResponse.abortController.abort();
|
|
11423
11608
|
}
|
|
11424
11609
|
};
|
|
@@ -11473,7 +11658,7 @@ var AbstractChat = class {
|
|
|
11473
11658
|
body,
|
|
11474
11659
|
messageId
|
|
11475
11660
|
}) {
|
|
11476
|
-
var
|
|
11661
|
+
var _a16, _b, _c, _d;
|
|
11477
11662
|
this.setStatus({ status: "submitted", error: void 0 });
|
|
11478
11663
|
const lastMessage = this.lastMessage;
|
|
11479
11664
|
let isAbort = false;
|
|
@@ -11522,9 +11707,9 @@ var AbstractChat = class {
|
|
|
11522
11707
|
() => job({
|
|
11523
11708
|
state: activeResponse.state,
|
|
11524
11709
|
write: () => {
|
|
11525
|
-
var
|
|
11710
|
+
var _a17;
|
|
11526
11711
|
this.setStatus({ status: "streaming" });
|
|
11527
|
-
const replaceLastMessage = activeResponse.state.message.id === ((
|
|
11712
|
+
const replaceLastMessage = activeResponse.state.message.id === ((_a17 = this.lastMessage) == null ? void 0 : _a17.id);
|
|
11528
11713
|
if (replaceLastMessage) {
|
|
11529
11714
|
this.state.replaceMessage(
|
|
11530
11715
|
this.state.messages.length - 1,
|
|
@@ -11576,7 +11761,7 @@ var AbstractChat = class {
|
|
|
11576
11761
|
isAbort,
|
|
11577
11762
|
isDisconnect,
|
|
11578
11763
|
isError,
|
|
11579
|
-
finishReason: (
|
|
11764
|
+
finishReason: (_a16 = this.activeResponse) == null ? void 0 : _a16.state.finishReason
|
|
11580
11765
|
});
|
|
11581
11766
|
} catch (err) {
|
|
11582
11767
|
console.error(err);
|
|
@@ -11689,6 +11874,7 @@ var TextStreamChatTransport = class extends HttpChatTransport {
|
|
|
11689
11874
|
InvalidPromptError,
|
|
11690
11875
|
InvalidResponseDataError,
|
|
11691
11876
|
InvalidStreamPartError,
|
|
11877
|
+
InvalidToolApprovalError,
|
|
11692
11878
|
InvalidToolInputError,
|
|
11693
11879
|
JSONParseError,
|
|
11694
11880
|
JsonToSseTransformStream,
|
|
@@ -11708,6 +11894,7 @@ var TextStreamChatTransport = class extends HttpChatTransport {
|
|
|
11708
11894
|
SerialJobExecutor,
|
|
11709
11895
|
TextStreamChatTransport,
|
|
11710
11896
|
TooManyEmbeddingValuesForCallError,
|
|
11897
|
+
ToolCallNotFoundForApprovalError,
|
|
11711
11898
|
ToolCallRepairError,
|
|
11712
11899
|
ToolLoopAgent,
|
|
11713
11900
|
TypeValidationError,
|