ai 5.0.78 → 5.0.80
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 +26 -0
- package/dist/index.d.mts +10 -192
- package/dist/index.d.ts +10 -192
- package/dist/index.js +541 -1147
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +457 -1069
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.mjs +1 -1
- package/package.json +1 -8
- package/dist/mcp-stdio/index.d.mts +0 -89
- package/dist/mcp-stdio/index.d.ts +0 -89
- package/dist/mcp-stdio/index.js +0 -353
- package/dist/mcp-stdio/index.js.map +0 -1
- package/dist/mcp-stdio/index.mjs +0 -326
- package/dist/mcp-stdio/index.mjs.map +0 -1
- package/mcp-stdio.d.ts +0 -1
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,47 +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: () => DownloadError,
|
|
28
|
-
EmptyResponseBodyError: () =>
|
|
28
|
+
EmptyResponseBodyError: () => import_provider17.EmptyResponseBodyError,
|
|
29
29
|
Experimental_Agent: () => Agent,
|
|
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
37
|
InvalidToolInputError: () => InvalidToolInputError,
|
|
38
|
-
JSONParseError: () =>
|
|
38
|
+
JSONParseError: () => import_provider17.JSONParseError,
|
|
39
39
|
JsonToSseTransformStream: () => JsonToSseTransformStream,
|
|
40
|
-
LoadAPIKeyError: () =>
|
|
41
|
-
LoadSettingError: () =>
|
|
42
|
-
MCPClientError: () => MCPClientError,
|
|
40
|
+
LoadAPIKeyError: () => import_provider17.LoadAPIKeyError,
|
|
41
|
+
LoadSettingError: () => import_provider17.LoadSettingError,
|
|
43
42
|
MessageConversionError: () => MessageConversionError,
|
|
44
|
-
NoContentGeneratedError: () =>
|
|
43
|
+
NoContentGeneratedError: () => import_provider17.NoContentGeneratedError,
|
|
45
44
|
NoImageGeneratedError: () => NoImageGeneratedError,
|
|
46
45
|
NoObjectGeneratedError: () => NoObjectGeneratedError,
|
|
47
46
|
NoOutputGeneratedError: () => NoOutputGeneratedError,
|
|
48
47
|
NoOutputSpecifiedError: () => NoOutputSpecifiedError,
|
|
49
48
|
NoSpeechGeneratedError: () => NoSpeechGeneratedError,
|
|
50
|
-
NoSuchModelError: () =>
|
|
49
|
+
NoSuchModelError: () => import_provider17.NoSuchModelError,
|
|
51
50
|
NoSuchProviderError: () => NoSuchProviderError,
|
|
52
51
|
NoSuchToolError: () => NoSuchToolError,
|
|
53
52
|
Output: () => output_exports,
|
|
54
53
|
RetryError: () => RetryError,
|
|
55
54
|
SerialJobExecutor: () => SerialJobExecutor,
|
|
56
55
|
TextStreamChatTransport: () => TextStreamChatTransport,
|
|
57
|
-
TooManyEmbeddingValuesForCallError: () =>
|
|
56
|
+
TooManyEmbeddingValuesForCallError: () => import_provider17.TooManyEmbeddingValuesForCallError,
|
|
58
57
|
ToolCallRepairError: () => ToolCallRepairError,
|
|
59
|
-
TypeValidationError: () =>
|
|
58
|
+
TypeValidationError: () => import_provider17.TypeValidationError,
|
|
60
59
|
UI_MESSAGE_STREAM_HEADERS: () => UI_MESSAGE_STREAM_HEADERS,
|
|
61
|
-
UnsupportedFunctionalityError: () =>
|
|
60
|
+
UnsupportedFunctionalityError: () => import_provider17.UnsupportedFunctionalityError,
|
|
62
61
|
UnsupportedModelVersionError: () => UnsupportedModelVersionError,
|
|
63
|
-
asSchema: () =>
|
|
62
|
+
asSchema: () => import_provider_utils34.asSchema,
|
|
64
63
|
assistantModelMessageSchema: () => assistantModelMessageSchema,
|
|
65
64
|
callCompletionApi: () => callCompletionApi,
|
|
66
65
|
consumeStream: () => consumeStream,
|
|
@@ -74,17 +73,16 @@ __export(src_exports, {
|
|
|
74
73
|
coreUserMessageSchema: () => coreUserMessageSchema,
|
|
75
74
|
cosineSimilarity: () => cosineSimilarity,
|
|
76
75
|
createGateway: () => import_gateway3.createGateway,
|
|
77
|
-
createIdGenerator: () =>
|
|
76
|
+
createIdGenerator: () => import_provider_utils34.createIdGenerator,
|
|
78
77
|
createProviderRegistry: () => createProviderRegistry,
|
|
79
78
|
createTextStreamResponse: () => createTextStreamResponse,
|
|
80
79
|
createUIMessageStream: () => createUIMessageStream,
|
|
81
80
|
createUIMessageStreamResponse: () => createUIMessageStreamResponse,
|
|
82
81
|
customProvider: () => customProvider,
|
|
83
82
|
defaultSettingsMiddleware: () => defaultSettingsMiddleware,
|
|
84
|
-
dynamicTool: () =>
|
|
83
|
+
dynamicTool: () => import_provider_utils34.dynamicTool,
|
|
85
84
|
embed: () => embed,
|
|
86
85
|
embedMany: () => embedMany,
|
|
87
|
-
experimental_createMCPClient: () => createMCPClient,
|
|
88
86
|
experimental_createProviderRegistry: () => experimental_createProviderRegistry,
|
|
89
87
|
experimental_customProvider: () => experimental_customProvider,
|
|
90
88
|
experimental_generateImage: () => generateImage,
|
|
@@ -92,7 +90,7 @@ __export(src_exports, {
|
|
|
92
90
|
experimental_transcribe: () => transcribe,
|
|
93
91
|
extractReasoningMiddleware: () => extractReasoningMiddleware,
|
|
94
92
|
gateway: () => import_gateway3.gateway,
|
|
95
|
-
generateId: () =>
|
|
93
|
+
generateId: () => import_provider_utils34.generateId,
|
|
96
94
|
generateObject: () => generateObject,
|
|
97
95
|
generateText: () => generateText,
|
|
98
96
|
getTextFromDataUrl: () => getTextFromDataUrl,
|
|
@@ -106,10 +104,10 @@ __export(src_exports, {
|
|
|
106
104
|
isTextUIPart: () => isTextUIPart,
|
|
107
105
|
isToolOrDynamicToolUIPart: () => isToolOrDynamicToolUIPart,
|
|
108
106
|
isToolUIPart: () => isToolUIPart,
|
|
109
|
-
jsonSchema: () =>
|
|
107
|
+
jsonSchema: () => import_provider_utils34.jsonSchema,
|
|
110
108
|
lastAssistantMessageIsCompleteWithToolCalls: () => lastAssistantMessageIsCompleteWithToolCalls,
|
|
111
109
|
modelMessageSchema: () => modelMessageSchema,
|
|
112
|
-
parseJsonEventStream: () =>
|
|
110
|
+
parseJsonEventStream: () => import_provider_utils34.parseJsonEventStream,
|
|
113
111
|
parsePartialJson: () => parsePartialJson,
|
|
114
112
|
pipeTextStreamToResponse: () => pipeTextStreamToResponse,
|
|
115
113
|
pipeUIMessageStreamToResponse: () => pipeUIMessageStreamToResponse,
|
|
@@ -123,18 +121,18 @@ __export(src_exports, {
|
|
|
123
121
|
streamObject: () => streamObject,
|
|
124
122
|
streamText: () => streamText,
|
|
125
123
|
systemModelMessageSchema: () => systemModelMessageSchema,
|
|
126
|
-
tool: () =>
|
|
124
|
+
tool: () => import_provider_utils34.tool,
|
|
127
125
|
toolModelMessageSchema: () => toolModelMessageSchema,
|
|
128
126
|
uiMessageChunkSchema: () => uiMessageChunkSchema,
|
|
129
127
|
userModelMessageSchema: () => userModelMessageSchema,
|
|
130
128
|
validateUIMessages: () => validateUIMessages,
|
|
131
129
|
wrapLanguageModel: () => wrapLanguageModel,
|
|
132
130
|
wrapProvider: () => wrapProvider,
|
|
133
|
-
zodSchema: () =>
|
|
131
|
+
zodSchema: () => import_provider_utils34.zodSchema
|
|
134
132
|
});
|
|
135
133
|
module.exports = __toCommonJS(src_exports);
|
|
136
134
|
var import_gateway3 = require("@ai-sdk/gateway");
|
|
137
|
-
var
|
|
135
|
+
var import_provider_utils34 = require("@ai-sdk/provider-utils");
|
|
138
136
|
|
|
139
137
|
// src/generate-text/generate-text.ts
|
|
140
138
|
var import_provider_utils10 = require("@ai-sdk/provider-utils");
|
|
@@ -211,7 +209,7 @@ var logWarnings = (warnings) => {
|
|
|
211
209
|
var import_gateway = require("@ai-sdk/gateway");
|
|
212
210
|
|
|
213
211
|
// src/error/index.ts
|
|
214
|
-
var
|
|
212
|
+
var import_provider17 = require("@ai-sdk/provider");
|
|
215
213
|
|
|
216
214
|
// src/error/invalid-argument-error.ts
|
|
217
215
|
var import_provider2 = require("@ai-sdk/provider");
|
|
@@ -284,24 +282,21 @@ var InvalidToolInputError = class extends import_provider4.AISDKError {
|
|
|
284
282
|
};
|
|
285
283
|
_a4 = symbol4;
|
|
286
284
|
|
|
287
|
-
// src/error/
|
|
285
|
+
// src/error/no-image-generated-error.ts
|
|
288
286
|
var import_provider5 = require("@ai-sdk/provider");
|
|
289
|
-
var name5 = "
|
|
287
|
+
var name5 = "AI_NoImageGeneratedError";
|
|
290
288
|
var marker5 = `vercel.ai.error.${name5}`;
|
|
291
289
|
var symbol5 = Symbol.for(marker5);
|
|
292
290
|
var _a5;
|
|
293
|
-
var
|
|
291
|
+
var NoImageGeneratedError = class extends import_provider5.AISDKError {
|
|
294
292
|
constructor({
|
|
295
|
-
|
|
296
|
-
message,
|
|
293
|
+
message = "No image generated.",
|
|
297
294
|
cause,
|
|
298
|
-
|
|
299
|
-
code
|
|
295
|
+
responses
|
|
300
296
|
}) {
|
|
301
|
-
super({ name:
|
|
297
|
+
super({ name: name5, message, cause });
|
|
302
298
|
this[_a5] = true;
|
|
303
|
-
this.
|
|
304
|
-
this.code = code;
|
|
299
|
+
this.responses = responses;
|
|
305
300
|
}
|
|
306
301
|
static isInstance(error) {
|
|
307
302
|
return import_provider5.AISDKError.hasMarker(error, marker5);
|
|
@@ -309,35 +304,13 @@ var MCPClientError = class extends import_provider5.AISDKError {
|
|
|
309
304
|
};
|
|
310
305
|
_a5 = symbol5;
|
|
311
306
|
|
|
312
|
-
// src/error/no-
|
|
307
|
+
// src/error/no-object-generated-error.ts
|
|
313
308
|
var import_provider6 = require("@ai-sdk/provider");
|
|
314
|
-
var name6 = "
|
|
309
|
+
var name6 = "AI_NoObjectGeneratedError";
|
|
315
310
|
var marker6 = `vercel.ai.error.${name6}`;
|
|
316
311
|
var symbol6 = Symbol.for(marker6);
|
|
317
312
|
var _a6;
|
|
318
|
-
var
|
|
319
|
-
constructor({
|
|
320
|
-
message = "No image generated.",
|
|
321
|
-
cause,
|
|
322
|
-
responses
|
|
323
|
-
}) {
|
|
324
|
-
super({ name: name6, message, cause });
|
|
325
|
-
this[_a6] = true;
|
|
326
|
-
this.responses = responses;
|
|
327
|
-
}
|
|
328
|
-
static isInstance(error) {
|
|
329
|
-
return import_provider6.AISDKError.hasMarker(error, marker6);
|
|
330
|
-
}
|
|
331
|
-
};
|
|
332
|
-
_a6 = symbol6;
|
|
333
|
-
|
|
334
|
-
// src/error/no-object-generated-error.ts
|
|
335
|
-
var import_provider7 = require("@ai-sdk/provider");
|
|
336
|
-
var name7 = "AI_NoObjectGeneratedError";
|
|
337
|
-
var marker7 = `vercel.ai.error.${name7}`;
|
|
338
|
-
var symbol7 = Symbol.for(marker7);
|
|
339
|
-
var _a7;
|
|
340
|
-
var NoObjectGeneratedError = class extends import_provider7.AISDKError {
|
|
313
|
+
var NoObjectGeneratedError = class extends import_provider6.AISDKError {
|
|
341
314
|
constructor({
|
|
342
315
|
message = "No object generated.",
|
|
343
316
|
cause,
|
|
@@ -346,43 +319,43 @@ var NoObjectGeneratedError = class extends import_provider7.AISDKError {
|
|
|
346
319
|
usage,
|
|
347
320
|
finishReason
|
|
348
321
|
}) {
|
|
349
|
-
super({ name:
|
|
350
|
-
this[
|
|
322
|
+
super({ name: name6, message, cause });
|
|
323
|
+
this[_a6] = true;
|
|
351
324
|
this.text = text2;
|
|
352
325
|
this.response = response;
|
|
353
326
|
this.usage = usage;
|
|
354
327
|
this.finishReason = finishReason;
|
|
355
328
|
}
|
|
356
329
|
static isInstance(error) {
|
|
357
|
-
return
|
|
330
|
+
return import_provider6.AISDKError.hasMarker(error, marker6);
|
|
358
331
|
}
|
|
359
332
|
};
|
|
360
|
-
|
|
333
|
+
_a6 = symbol6;
|
|
361
334
|
|
|
362
335
|
// src/error/no-output-generated-error.ts
|
|
363
|
-
var
|
|
364
|
-
var
|
|
365
|
-
var
|
|
366
|
-
var
|
|
367
|
-
var
|
|
368
|
-
var NoOutputGeneratedError = class extends
|
|
336
|
+
var import_provider7 = require("@ai-sdk/provider");
|
|
337
|
+
var name7 = "AI_NoOutputGeneratedError";
|
|
338
|
+
var marker7 = `vercel.ai.error.${name7}`;
|
|
339
|
+
var symbol7 = Symbol.for(marker7);
|
|
340
|
+
var _a7;
|
|
341
|
+
var NoOutputGeneratedError = class extends import_provider7.AISDKError {
|
|
369
342
|
// used in isInstance
|
|
370
343
|
constructor({
|
|
371
344
|
message = "No output generated.",
|
|
372
345
|
cause
|
|
373
346
|
} = {}) {
|
|
374
|
-
super({ name:
|
|
375
|
-
this[
|
|
347
|
+
super({ name: name7, message, cause });
|
|
348
|
+
this[_a7] = true;
|
|
376
349
|
}
|
|
377
350
|
static isInstance(error) {
|
|
378
|
-
return
|
|
351
|
+
return import_provider7.AISDKError.hasMarker(error, marker7);
|
|
379
352
|
}
|
|
380
353
|
};
|
|
381
|
-
|
|
354
|
+
_a7 = symbol7;
|
|
382
355
|
|
|
383
356
|
// src/error/no-speech-generated-error.ts
|
|
384
|
-
var
|
|
385
|
-
var NoSpeechGeneratedError = class extends
|
|
357
|
+
var import_provider8 = require("@ai-sdk/provider");
|
|
358
|
+
var NoSpeechGeneratedError = class extends import_provider8.AISDKError {
|
|
386
359
|
constructor(options) {
|
|
387
360
|
super({
|
|
388
361
|
name: "AI_NoSpeechGeneratedError",
|
|
@@ -393,53 +366,53 @@ var NoSpeechGeneratedError = class extends import_provider9.AISDKError {
|
|
|
393
366
|
};
|
|
394
367
|
|
|
395
368
|
// src/error/no-such-tool-error.ts
|
|
396
|
-
var
|
|
397
|
-
var
|
|
398
|
-
var
|
|
399
|
-
var
|
|
400
|
-
var
|
|
401
|
-
var NoSuchToolError = class extends
|
|
369
|
+
var import_provider9 = require("@ai-sdk/provider");
|
|
370
|
+
var name8 = "AI_NoSuchToolError";
|
|
371
|
+
var marker8 = `vercel.ai.error.${name8}`;
|
|
372
|
+
var symbol8 = Symbol.for(marker8);
|
|
373
|
+
var _a8;
|
|
374
|
+
var NoSuchToolError = class extends import_provider9.AISDKError {
|
|
402
375
|
constructor({
|
|
403
376
|
toolName,
|
|
404
377
|
availableTools = void 0,
|
|
405
378
|
message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? "No tools are available." : `Available tools: ${availableTools.join(", ")}.`}`
|
|
406
379
|
}) {
|
|
407
|
-
super({ name:
|
|
408
|
-
this[
|
|
380
|
+
super({ name: name8, message });
|
|
381
|
+
this[_a8] = true;
|
|
409
382
|
this.toolName = toolName;
|
|
410
383
|
this.availableTools = availableTools;
|
|
411
384
|
}
|
|
412
385
|
static isInstance(error) {
|
|
413
|
-
return
|
|
386
|
+
return import_provider9.AISDKError.hasMarker(error, marker8);
|
|
414
387
|
}
|
|
415
388
|
};
|
|
416
|
-
|
|
389
|
+
_a8 = symbol8;
|
|
417
390
|
|
|
418
391
|
// src/error/tool-call-repair-error.ts
|
|
419
|
-
var
|
|
420
|
-
var
|
|
421
|
-
var
|
|
422
|
-
var
|
|
423
|
-
var
|
|
424
|
-
var ToolCallRepairError = class extends
|
|
392
|
+
var import_provider10 = require("@ai-sdk/provider");
|
|
393
|
+
var name9 = "AI_ToolCallRepairError";
|
|
394
|
+
var marker9 = `vercel.ai.error.${name9}`;
|
|
395
|
+
var symbol9 = Symbol.for(marker9);
|
|
396
|
+
var _a9;
|
|
397
|
+
var ToolCallRepairError = class extends import_provider10.AISDKError {
|
|
425
398
|
constructor({
|
|
426
399
|
cause,
|
|
427
400
|
originalError,
|
|
428
|
-
message = `Error repairing tool call: ${(0,
|
|
401
|
+
message = `Error repairing tool call: ${(0, import_provider10.getErrorMessage)(cause)}`
|
|
429
402
|
}) {
|
|
430
|
-
super({ name:
|
|
431
|
-
this[
|
|
403
|
+
super({ name: name9, message, cause });
|
|
404
|
+
this[_a9] = true;
|
|
432
405
|
this.originalError = originalError;
|
|
433
406
|
}
|
|
434
407
|
static isInstance(error) {
|
|
435
|
-
return
|
|
408
|
+
return import_provider10.AISDKError.hasMarker(error, marker9);
|
|
436
409
|
}
|
|
437
410
|
};
|
|
438
|
-
|
|
411
|
+
_a9 = symbol9;
|
|
439
412
|
|
|
440
413
|
// src/error/unsupported-model-version-error.ts
|
|
441
|
-
var
|
|
442
|
-
var UnsupportedModelVersionError = class extends
|
|
414
|
+
var import_provider11 = require("@ai-sdk/provider");
|
|
415
|
+
var UnsupportedModelVersionError = class extends import_provider11.AISDKError {
|
|
443
416
|
constructor(options) {
|
|
444
417
|
super({
|
|
445
418
|
name: "AI_UnsupportedModelVersionError",
|
|
@@ -452,76 +425,76 @@ var UnsupportedModelVersionError = class extends import_provider12.AISDKError {
|
|
|
452
425
|
};
|
|
453
426
|
|
|
454
427
|
// src/prompt/invalid-data-content-error.ts
|
|
455
|
-
var
|
|
456
|
-
var
|
|
457
|
-
var
|
|
458
|
-
var
|
|
459
|
-
var
|
|
460
|
-
var InvalidDataContentError = class extends
|
|
428
|
+
var import_provider12 = require("@ai-sdk/provider");
|
|
429
|
+
var name10 = "AI_InvalidDataContentError";
|
|
430
|
+
var marker10 = `vercel.ai.error.${name10}`;
|
|
431
|
+
var symbol10 = Symbol.for(marker10);
|
|
432
|
+
var _a10;
|
|
433
|
+
var InvalidDataContentError = class extends import_provider12.AISDKError {
|
|
461
434
|
constructor({
|
|
462
435
|
content,
|
|
463
436
|
cause,
|
|
464
437
|
message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`
|
|
465
438
|
}) {
|
|
466
|
-
super({ name:
|
|
467
|
-
this[
|
|
439
|
+
super({ name: name10, message, cause });
|
|
440
|
+
this[_a10] = true;
|
|
468
441
|
this.content = content;
|
|
469
442
|
}
|
|
470
443
|
static isInstance(error) {
|
|
471
|
-
return
|
|
444
|
+
return import_provider12.AISDKError.hasMarker(error, marker10);
|
|
472
445
|
}
|
|
473
446
|
};
|
|
474
|
-
|
|
447
|
+
_a10 = symbol10;
|
|
475
448
|
|
|
476
449
|
// src/prompt/invalid-message-role-error.ts
|
|
477
|
-
var
|
|
478
|
-
var
|
|
479
|
-
var
|
|
480
|
-
var
|
|
481
|
-
var
|
|
482
|
-
var InvalidMessageRoleError = class extends
|
|
450
|
+
var import_provider13 = require("@ai-sdk/provider");
|
|
451
|
+
var name11 = "AI_InvalidMessageRoleError";
|
|
452
|
+
var marker11 = `vercel.ai.error.${name11}`;
|
|
453
|
+
var symbol11 = Symbol.for(marker11);
|
|
454
|
+
var _a11;
|
|
455
|
+
var InvalidMessageRoleError = class extends import_provider13.AISDKError {
|
|
483
456
|
constructor({
|
|
484
457
|
role,
|
|
485
458
|
message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
|
|
486
459
|
}) {
|
|
487
|
-
super({ name:
|
|
488
|
-
this[
|
|
460
|
+
super({ name: name11, message });
|
|
461
|
+
this[_a11] = true;
|
|
489
462
|
this.role = role;
|
|
490
463
|
}
|
|
491
464
|
static isInstance(error) {
|
|
492
|
-
return
|
|
465
|
+
return import_provider13.AISDKError.hasMarker(error, marker11);
|
|
493
466
|
}
|
|
494
467
|
};
|
|
495
|
-
|
|
468
|
+
_a11 = symbol11;
|
|
496
469
|
|
|
497
470
|
// src/prompt/message-conversion-error.ts
|
|
498
|
-
var
|
|
499
|
-
var
|
|
500
|
-
var
|
|
501
|
-
var
|
|
502
|
-
var
|
|
503
|
-
var MessageConversionError = class extends
|
|
471
|
+
var import_provider14 = require("@ai-sdk/provider");
|
|
472
|
+
var name12 = "AI_MessageConversionError";
|
|
473
|
+
var marker12 = `vercel.ai.error.${name12}`;
|
|
474
|
+
var symbol12 = Symbol.for(marker12);
|
|
475
|
+
var _a12;
|
|
476
|
+
var MessageConversionError = class extends import_provider14.AISDKError {
|
|
504
477
|
constructor({
|
|
505
478
|
originalMessage,
|
|
506
479
|
message
|
|
507
480
|
}) {
|
|
508
|
-
super({ name:
|
|
509
|
-
this[
|
|
481
|
+
super({ name: name12, message });
|
|
482
|
+
this[_a12] = true;
|
|
510
483
|
this.originalMessage = originalMessage;
|
|
511
484
|
}
|
|
512
485
|
static isInstance(error) {
|
|
513
|
-
return
|
|
486
|
+
return import_provider14.AISDKError.hasMarker(error, marker12);
|
|
514
487
|
}
|
|
515
488
|
};
|
|
516
|
-
|
|
489
|
+
_a12 = symbol12;
|
|
517
490
|
|
|
518
491
|
// src/util/download/download-error.ts
|
|
519
|
-
var
|
|
520
|
-
var
|
|
521
|
-
var
|
|
522
|
-
var
|
|
523
|
-
var
|
|
524
|
-
var DownloadError = class extends
|
|
492
|
+
var import_provider15 = require("@ai-sdk/provider");
|
|
493
|
+
var name13 = "AI_DownloadError";
|
|
494
|
+
var marker13 = `vercel.ai.error.${name13}`;
|
|
495
|
+
var symbol13 = Symbol.for(marker13);
|
|
496
|
+
var _a13;
|
|
497
|
+
var DownloadError = class extends import_provider15.AISDKError {
|
|
525
498
|
constructor({
|
|
526
499
|
url,
|
|
527
500
|
statusCode,
|
|
@@ -529,41 +502,41 @@ var DownloadError = class extends import_provider16.AISDKError {
|
|
|
529
502
|
cause,
|
|
530
503
|
message = cause == null ? `Failed to download ${url}: ${statusCode} ${statusText}` : `Failed to download ${url}: ${cause}`
|
|
531
504
|
}) {
|
|
532
|
-
super({ name:
|
|
533
|
-
this[
|
|
505
|
+
super({ name: name13, message, cause });
|
|
506
|
+
this[_a13] = true;
|
|
534
507
|
this.url = url;
|
|
535
508
|
this.statusCode = statusCode;
|
|
536
509
|
this.statusText = statusText;
|
|
537
510
|
}
|
|
538
511
|
static isInstance(error) {
|
|
539
|
-
return
|
|
512
|
+
return import_provider15.AISDKError.hasMarker(error, marker13);
|
|
540
513
|
}
|
|
541
514
|
};
|
|
542
|
-
|
|
515
|
+
_a13 = symbol13;
|
|
543
516
|
|
|
544
517
|
// src/util/retry-error.ts
|
|
545
|
-
var
|
|
546
|
-
var
|
|
547
|
-
var
|
|
548
|
-
var
|
|
549
|
-
var
|
|
550
|
-
var RetryError = class extends
|
|
518
|
+
var import_provider16 = require("@ai-sdk/provider");
|
|
519
|
+
var name14 = "AI_RetryError";
|
|
520
|
+
var marker14 = `vercel.ai.error.${name14}`;
|
|
521
|
+
var symbol14 = Symbol.for(marker14);
|
|
522
|
+
var _a14;
|
|
523
|
+
var RetryError = class extends import_provider16.AISDKError {
|
|
551
524
|
constructor({
|
|
552
525
|
message,
|
|
553
526
|
reason,
|
|
554
527
|
errors
|
|
555
528
|
}) {
|
|
556
|
-
super({ name:
|
|
557
|
-
this[
|
|
529
|
+
super({ name: name14, message });
|
|
530
|
+
this[_a14] = true;
|
|
558
531
|
this.reason = reason;
|
|
559
532
|
this.errors = errors;
|
|
560
533
|
this.lastError = errors[errors.length - 1];
|
|
561
534
|
}
|
|
562
535
|
static isInstance(error) {
|
|
563
|
-
return
|
|
536
|
+
return import_provider16.AISDKError.hasMarker(error, marker14);
|
|
564
537
|
}
|
|
565
538
|
};
|
|
566
|
-
|
|
539
|
+
_a14 = symbol14;
|
|
567
540
|
|
|
568
541
|
// src/model/resolve-model.ts
|
|
569
542
|
function resolveLanguageModel(model) {
|
|
@@ -595,8 +568,8 @@ function resolveEmbeddingModel(model) {
|
|
|
595
568
|
);
|
|
596
569
|
}
|
|
597
570
|
function getGlobalProvider() {
|
|
598
|
-
var
|
|
599
|
-
return (
|
|
571
|
+
var _a16;
|
|
572
|
+
return (_a16 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a16 : import_gateway.gateway;
|
|
600
573
|
}
|
|
601
574
|
|
|
602
575
|
// src/prompt/convert-to-language-model-prompt.ts
|
|
@@ -791,11 +764,11 @@ function detectMediaType({
|
|
|
791
764
|
var import_provider_utils2 = require("@ai-sdk/provider-utils");
|
|
792
765
|
|
|
793
766
|
// src/version.ts
|
|
794
|
-
var VERSION = true ? "5.0.
|
|
767
|
+
var VERSION = true ? "5.0.80" : "0.0.0-test";
|
|
795
768
|
|
|
796
769
|
// src/util/download/download.ts
|
|
797
770
|
var download = async ({ url }) => {
|
|
798
|
-
var
|
|
771
|
+
var _a16;
|
|
799
772
|
const urlText = url.toString();
|
|
800
773
|
try {
|
|
801
774
|
const response = await fetch(urlText, {
|
|
@@ -814,7 +787,7 @@ var download = async ({ url }) => {
|
|
|
814
787
|
}
|
|
815
788
|
return {
|
|
816
789
|
data: new Uint8Array(await response.arrayBuffer()),
|
|
817
|
-
mediaType: (
|
|
790
|
+
mediaType: (_a16 = response.headers.get("content-type")) != null ? _a16 : void 0
|
|
818
791
|
};
|
|
819
792
|
} catch (error) {
|
|
820
793
|
if (DownloadError.isInstance(error)) {
|
|
@@ -832,7 +805,7 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
|
|
|
832
805
|
);
|
|
833
806
|
|
|
834
807
|
// src/prompt/data-content.ts
|
|
835
|
-
var
|
|
808
|
+
var import_provider18 = require("@ai-sdk/provider");
|
|
836
809
|
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
|
837
810
|
var import_v4 = require("zod/v4");
|
|
838
811
|
|
|
@@ -860,8 +833,8 @@ var dataContentSchema = import_v4.z.union([
|
|
|
860
833
|
import_v4.z.custom(
|
|
861
834
|
// Buffer might not be available in some environments such as CloudFlare:
|
|
862
835
|
(value) => {
|
|
863
|
-
var
|
|
864
|
-
return (_b = (
|
|
836
|
+
var _a16, _b;
|
|
837
|
+
return (_b = (_a16 = globalThis.Buffer) == null ? void 0 : _a16.isBuffer(value)) != null ? _b : false;
|
|
865
838
|
},
|
|
866
839
|
{ message: "Must be a Buffer" }
|
|
867
840
|
)
|
|
@@ -884,7 +857,7 @@ function convertToLanguageModelV2DataContent(content) {
|
|
|
884
857
|
content.toString()
|
|
885
858
|
);
|
|
886
859
|
if (dataUrlMediaType == null || base64Content == null) {
|
|
887
|
-
throw new
|
|
860
|
+
throw new import_provider18.AISDKError({
|
|
888
861
|
name: "InvalidDataContentError",
|
|
889
862
|
message: `Invalid data URL format in content ${content.toString()}`
|
|
890
863
|
});
|
|
@@ -1059,8 +1032,8 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
1059
1032
|
).flat().filter(
|
|
1060
1033
|
(part) => part.type === "image" || part.type === "file"
|
|
1061
1034
|
).map((part) => {
|
|
1062
|
-
var
|
|
1063
|
-
const mediaType = (
|
|
1035
|
+
var _a16;
|
|
1036
|
+
const mediaType = (_a16 = part.mediaType) != null ? _a16 : part.type === "image" ? "image/*" : void 0;
|
|
1064
1037
|
let data = part.type === "image" ? part.image : part.data;
|
|
1065
1038
|
if (typeof data === "string") {
|
|
1066
1039
|
try {
|
|
@@ -1090,7 +1063,7 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
1090
1063
|
);
|
|
1091
1064
|
}
|
|
1092
1065
|
function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
1093
|
-
var
|
|
1066
|
+
var _a16;
|
|
1094
1067
|
if (part.type === "text") {
|
|
1095
1068
|
return {
|
|
1096
1069
|
type: "text",
|
|
@@ -1123,7 +1096,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
|
1123
1096
|
switch (type) {
|
|
1124
1097
|
case "image": {
|
|
1125
1098
|
if (data instanceof Uint8Array || typeof data === "string") {
|
|
1126
|
-
mediaType = (
|
|
1099
|
+
mediaType = (_a16 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a16 : mediaType;
|
|
1127
1100
|
}
|
|
1128
1101
|
return {
|
|
1129
1102
|
type: "file",
|
|
@@ -1263,28 +1236,28 @@ function prepareToolsAndToolChoice({
|
|
|
1263
1236
|
};
|
|
1264
1237
|
}
|
|
1265
1238
|
const filteredTools = activeTools != null ? Object.entries(tools).filter(
|
|
1266
|
-
([
|
|
1239
|
+
([name16]) => activeTools.includes(name16)
|
|
1267
1240
|
) : Object.entries(tools);
|
|
1268
1241
|
return {
|
|
1269
|
-
tools: filteredTools.map(([
|
|
1270
|
-
const toolType =
|
|
1242
|
+
tools: filteredTools.map(([name16, tool2]) => {
|
|
1243
|
+
const toolType = tool2.type;
|
|
1271
1244
|
switch (toolType) {
|
|
1272
1245
|
case void 0:
|
|
1273
1246
|
case "dynamic":
|
|
1274
1247
|
case "function":
|
|
1275
1248
|
return {
|
|
1276
1249
|
type: "function",
|
|
1277
|
-
name:
|
|
1278
|
-
description:
|
|
1279
|
-
inputSchema: (0, import_provider_utils5.asSchema)(
|
|
1280
|
-
providerOptions:
|
|
1250
|
+
name: name16,
|
|
1251
|
+
description: tool2.description,
|
|
1252
|
+
inputSchema: (0, import_provider_utils5.asSchema)(tool2.inputSchema).jsonSchema,
|
|
1253
|
+
providerOptions: tool2.providerOptions
|
|
1281
1254
|
};
|
|
1282
1255
|
case "provider-defined":
|
|
1283
1256
|
return {
|
|
1284
1257
|
type: "provider-defined",
|
|
1285
|
-
name:
|
|
1286
|
-
id:
|
|
1287
|
-
args:
|
|
1258
|
+
name: name16,
|
|
1259
|
+
id: tool2.id,
|
|
1260
|
+
args: tool2.args
|
|
1288
1261
|
};
|
|
1289
1262
|
default: {
|
|
1290
1263
|
const exhaustiveCheck = toolType;
|
|
@@ -1297,7 +1270,7 @@ function prepareToolsAndToolChoice({
|
|
|
1297
1270
|
}
|
|
1298
1271
|
|
|
1299
1272
|
// src/prompt/standardize-prompt.ts
|
|
1300
|
-
var
|
|
1273
|
+
var import_provider19 = require("@ai-sdk/provider");
|
|
1301
1274
|
var import_provider_utils6 = require("@ai-sdk/provider-utils");
|
|
1302
1275
|
var import_v46 = require("zod/v4");
|
|
1303
1276
|
|
|
@@ -1453,19 +1426,19 @@ var coreMessageSchema = modelMessageSchema;
|
|
|
1453
1426
|
// src/prompt/standardize-prompt.ts
|
|
1454
1427
|
async function standardizePrompt(prompt) {
|
|
1455
1428
|
if (prompt.prompt == null && prompt.messages == null) {
|
|
1456
|
-
throw new
|
|
1429
|
+
throw new import_provider19.InvalidPromptError({
|
|
1457
1430
|
prompt,
|
|
1458
1431
|
message: "prompt or messages must be defined"
|
|
1459
1432
|
});
|
|
1460
1433
|
}
|
|
1461
1434
|
if (prompt.prompt != null && prompt.messages != null) {
|
|
1462
|
-
throw new
|
|
1435
|
+
throw new import_provider19.InvalidPromptError({
|
|
1463
1436
|
prompt,
|
|
1464
1437
|
message: "prompt and messages cannot be defined at the same time"
|
|
1465
1438
|
});
|
|
1466
1439
|
}
|
|
1467
1440
|
if (prompt.system != null && typeof prompt.system !== "string") {
|
|
1468
|
-
throw new
|
|
1441
|
+
throw new import_provider19.InvalidPromptError({
|
|
1469
1442
|
prompt,
|
|
1470
1443
|
message: "system must be a string"
|
|
1471
1444
|
});
|
|
@@ -1478,13 +1451,13 @@ async function standardizePrompt(prompt) {
|
|
|
1478
1451
|
} else if (prompt.messages != null) {
|
|
1479
1452
|
messages = prompt.messages;
|
|
1480
1453
|
} else {
|
|
1481
|
-
throw new
|
|
1454
|
+
throw new import_provider19.InvalidPromptError({
|
|
1482
1455
|
prompt,
|
|
1483
1456
|
message: "prompt or messages must be defined"
|
|
1484
1457
|
});
|
|
1485
1458
|
}
|
|
1486
1459
|
if (messages.length === 0) {
|
|
1487
|
-
throw new
|
|
1460
|
+
throw new import_provider19.InvalidPromptError({
|
|
1488
1461
|
prompt,
|
|
1489
1462
|
message: "messages must not be empty"
|
|
1490
1463
|
});
|
|
@@ -1494,7 +1467,7 @@ async function standardizePrompt(prompt) {
|
|
|
1494
1467
|
schema: import_v46.z.array(modelMessageSchema)
|
|
1495
1468
|
});
|
|
1496
1469
|
if (!validationResult.success) {
|
|
1497
|
-
throw new
|
|
1470
|
+
throw new import_provider19.InvalidPromptError({
|
|
1498
1471
|
prompt,
|
|
1499
1472
|
message: "The messages must be a ModelMessage[]. If you have passed a UIMessage[], you can use convertToModelMessages to convert them.",
|
|
1500
1473
|
cause: validationResult.error
|
|
@@ -1508,10 +1481,10 @@ async function standardizePrompt(prompt) {
|
|
|
1508
1481
|
|
|
1509
1482
|
// src/prompt/wrap-gateway-error.ts
|
|
1510
1483
|
var import_gateway2 = require("@ai-sdk/gateway");
|
|
1511
|
-
var
|
|
1484
|
+
var import_provider20 = require("@ai-sdk/provider");
|
|
1512
1485
|
function wrapGatewayError(error) {
|
|
1513
1486
|
if (import_gateway2.GatewayAuthenticationError.isInstance(error) || import_gateway2.GatewayModelNotFoundError.isInstance(error)) {
|
|
1514
|
-
return new
|
|
1487
|
+
return new import_provider20.AISDKError({
|
|
1515
1488
|
name: "GatewayError",
|
|
1516
1489
|
message: "Vercel AI Gateway access failed. If you want to use AI SDK providers directly, use the providers, e.g. @ai-sdk/openai, or register a different global default provider.",
|
|
1517
1490
|
cause: error
|
|
@@ -1542,7 +1515,7 @@ function getBaseTelemetryAttributes({
|
|
|
1542
1515
|
telemetry,
|
|
1543
1516
|
headers
|
|
1544
1517
|
}) {
|
|
1545
|
-
var
|
|
1518
|
+
var _a16;
|
|
1546
1519
|
return {
|
|
1547
1520
|
"ai.model.provider": model.provider,
|
|
1548
1521
|
"ai.model.id": model.modelId,
|
|
@@ -1552,7 +1525,7 @@ function getBaseTelemetryAttributes({
|
|
|
1552
1525
|
return attributes;
|
|
1553
1526
|
}, {}),
|
|
1554
1527
|
// add metadata as attributes:
|
|
1555
|
-
...Object.entries((
|
|
1528
|
+
...Object.entries((_a16 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a16 : {}).reduce(
|
|
1556
1529
|
(attributes, [key, value]) => {
|
|
1557
1530
|
attributes[`ai.telemetry.metadata.${key}`] = value;
|
|
1558
1531
|
return attributes;
|
|
@@ -1577,7 +1550,7 @@ var noopTracer = {
|
|
|
1577
1550
|
startSpan() {
|
|
1578
1551
|
return noopSpan;
|
|
1579
1552
|
},
|
|
1580
|
-
startActiveSpan(
|
|
1553
|
+
startActiveSpan(name16, arg1, arg2, arg3) {
|
|
1581
1554
|
if (typeof arg1 === "function") {
|
|
1582
1555
|
return arg1(noopSpan);
|
|
1583
1556
|
}
|
|
@@ -1647,13 +1620,13 @@ function getTracer({
|
|
|
1647
1620
|
// src/telemetry/record-span.ts
|
|
1648
1621
|
var import_api2 = require("@opentelemetry/api");
|
|
1649
1622
|
function recordSpan({
|
|
1650
|
-
name:
|
|
1623
|
+
name: name16,
|
|
1651
1624
|
tracer,
|
|
1652
1625
|
attributes,
|
|
1653
1626
|
fn,
|
|
1654
1627
|
endWhenDone = true
|
|
1655
1628
|
}) {
|
|
1656
|
-
return tracer.startActiveSpan(
|
|
1629
|
+
return tracer.startActiveSpan(name16, { attributes }, async (span) => {
|
|
1657
1630
|
try {
|
|
1658
1631
|
const result = await fn(span);
|
|
1659
1632
|
if (endWhenDone) {
|
|
@@ -1757,7 +1730,7 @@ function asArray(value) {
|
|
|
1757
1730
|
}
|
|
1758
1731
|
|
|
1759
1732
|
// src/util/retry-with-exponential-backoff.ts
|
|
1760
|
-
var
|
|
1733
|
+
var import_provider21 = require("@ai-sdk/provider");
|
|
1761
1734
|
var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
|
1762
1735
|
function getRetryDelayInMs({
|
|
1763
1736
|
error,
|
|
@@ -1824,7 +1797,7 @@ async function _retryWithExponentialBackoff(f, {
|
|
|
1824
1797
|
errors: newErrors
|
|
1825
1798
|
});
|
|
1826
1799
|
}
|
|
1827
|
-
if (error instanceof Error &&
|
|
1800
|
+
if (error instanceof Error && import_provider21.APICallError.isInstance(error) && error.isRetryable === true && tryNumber <= maxRetries) {
|
|
1828
1801
|
await (0, import_provider_utils7.delay)(
|
|
1829
1802
|
getRetryDelayInMs({
|
|
1830
1803
|
error,
|
|
@@ -1992,14 +1965,14 @@ async function doParseToolCall({
|
|
|
1992
1965
|
tools
|
|
1993
1966
|
}) {
|
|
1994
1967
|
const toolName = toolCall.toolName;
|
|
1995
|
-
const
|
|
1996
|
-
if (
|
|
1968
|
+
const tool2 = tools[toolName];
|
|
1969
|
+
if (tool2 == null) {
|
|
1997
1970
|
throw new NoSuchToolError({
|
|
1998
1971
|
toolName: toolCall.toolName,
|
|
1999
1972
|
availableTools: Object.keys(tools)
|
|
2000
1973
|
});
|
|
2001
1974
|
}
|
|
2002
|
-
const schema = (0, import_provider_utils9.asSchema)(
|
|
1975
|
+
const schema = (0, import_provider_utils9.asSchema)(tool2.inputSchema);
|
|
2003
1976
|
const parseResult = toolCall.input.trim() === "" ? await (0, import_provider_utils9.safeValidateTypes)({ value: {}, schema }) : await (0, import_provider_utils9.safeParseJSON)({ text: toolCall.input, schema });
|
|
2004
1977
|
if (parseResult.success === false) {
|
|
2005
1978
|
throw new InvalidToolInputError({
|
|
@@ -2008,7 +1981,7 @@ async function doParseToolCall({
|
|
|
2008
1981
|
cause: parseResult.error
|
|
2009
1982
|
});
|
|
2010
1983
|
}
|
|
2011
|
-
return
|
|
1984
|
+
return tool2.type === "dynamic" ? {
|
|
2012
1985
|
type: "tool-call",
|
|
2013
1986
|
toolCallId: toolCall.toolCallId,
|
|
2014
1987
|
toolName: toolCall.toolName,
|
|
@@ -2094,8 +2067,8 @@ function stepCountIs(stepCount) {
|
|
|
2094
2067
|
}
|
|
2095
2068
|
function hasToolCall(toolName) {
|
|
2096
2069
|
return ({ steps }) => {
|
|
2097
|
-
var
|
|
2098
|
-
return (_c = (_b = (
|
|
2070
|
+
var _a16, _b, _c;
|
|
2071
|
+
return (_c = (_b = (_a16 = steps[steps.length - 1]) == null ? void 0 : _a16.toolCalls) == null ? void 0 : _b.some(
|
|
2099
2072
|
(toolCall) => toolCall.toolName === toolName
|
|
2100
2073
|
)) != null ? _c : false;
|
|
2101
2074
|
};
|
|
@@ -2108,19 +2081,19 @@ async function isStopConditionMet({
|
|
|
2108
2081
|
}
|
|
2109
2082
|
|
|
2110
2083
|
// src/prompt/create-tool-model-output.ts
|
|
2111
|
-
var
|
|
2084
|
+
var import_provider22 = require("@ai-sdk/provider");
|
|
2112
2085
|
function createToolModelOutput({
|
|
2113
2086
|
output,
|
|
2114
|
-
tool:
|
|
2087
|
+
tool: tool2,
|
|
2115
2088
|
errorMode
|
|
2116
2089
|
}) {
|
|
2117
2090
|
if (errorMode === "text") {
|
|
2118
|
-
return { type: "error-text", value: (0,
|
|
2091
|
+
return { type: "error-text", value: (0, import_provider22.getErrorMessage)(output) };
|
|
2119
2092
|
} else if (errorMode === "json") {
|
|
2120
2093
|
return { type: "error-json", value: toJSONValue(output) };
|
|
2121
2094
|
}
|
|
2122
|
-
if (
|
|
2123
|
-
return
|
|
2095
|
+
if (tool2 == null ? void 0 : tool2.toModelOutput) {
|
|
2096
|
+
return tool2.toModelOutput(output);
|
|
2124
2097
|
}
|
|
2125
2098
|
return typeof output === "string" ? { type: "text", value: output } : { type: "json", value: toJSONValue(output) };
|
|
2126
2099
|
}
|
|
@@ -2296,7 +2269,7 @@ async function generateText({
|
|
|
2296
2269
|
}),
|
|
2297
2270
|
tracer,
|
|
2298
2271
|
fn: async (span) => {
|
|
2299
|
-
var
|
|
2272
|
+
var _a16, _b, _c, _d, _e, _f, _g;
|
|
2300
2273
|
const callSettings2 = prepareCallSettings(settings);
|
|
2301
2274
|
let currentModelResponse;
|
|
2302
2275
|
let clientToolCalls = [];
|
|
@@ -2315,7 +2288,7 @@ async function generateText({
|
|
|
2315
2288
|
messages: stepInputMessages
|
|
2316
2289
|
}));
|
|
2317
2290
|
const stepModel = resolveLanguageModel(
|
|
2318
|
-
(
|
|
2291
|
+
(_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model
|
|
2319
2292
|
);
|
|
2320
2293
|
const promptMessages = await convertToLanguageModelPrompt({
|
|
2321
2294
|
prompt: {
|
|
@@ -2332,7 +2305,7 @@ async function generateText({
|
|
|
2332
2305
|
});
|
|
2333
2306
|
currentModelResponse = await retry(
|
|
2334
2307
|
() => {
|
|
2335
|
-
var
|
|
2308
|
+
var _a17;
|
|
2336
2309
|
return recordSpan({
|
|
2337
2310
|
name: "ai.generateText.doGenerate",
|
|
2338
2311
|
attributes: selectTelemetryAttributes({
|
|
@@ -2352,7 +2325,7 @@ async function generateText({
|
|
|
2352
2325
|
},
|
|
2353
2326
|
"ai.prompt.tools": {
|
|
2354
2327
|
// convert the language model level tools:
|
|
2355
|
-
input: () => stepTools == null ? void 0 : stepTools.map((
|
|
2328
|
+
input: () => stepTools == null ? void 0 : stepTools.map((tool2) => JSON.stringify(tool2))
|
|
2356
2329
|
},
|
|
2357
2330
|
"ai.prompt.toolChoice": {
|
|
2358
2331
|
input: () => stepToolChoice != null ? JSON.stringify(stepToolChoice) : void 0
|
|
@@ -2364,14 +2337,14 @@ async function generateText({
|
|
|
2364
2337
|
"gen_ai.request.max_tokens": settings.maxOutputTokens,
|
|
2365
2338
|
"gen_ai.request.presence_penalty": settings.presencePenalty,
|
|
2366
2339
|
"gen_ai.request.stop_sequences": settings.stopSequences,
|
|
2367
|
-
"gen_ai.request.temperature": (
|
|
2340
|
+
"gen_ai.request.temperature": (_a17 = settings.temperature) != null ? _a17 : void 0,
|
|
2368
2341
|
"gen_ai.request.top_k": settings.topK,
|
|
2369
2342
|
"gen_ai.request.top_p": settings.topP
|
|
2370
2343
|
}
|
|
2371
2344
|
}),
|
|
2372
2345
|
tracer,
|
|
2373
2346
|
fn: async (span2) => {
|
|
2374
|
-
var
|
|
2347
|
+
var _a18, _b2, _c2, _d2, _e2, _f2, _g2, _h;
|
|
2375
2348
|
const result = await stepModel.doGenerate({
|
|
2376
2349
|
...callSettings2,
|
|
2377
2350
|
tools: stepTools,
|
|
@@ -2383,7 +2356,7 @@ async function generateText({
|
|
|
2383
2356
|
headers: headersWithUserAgent
|
|
2384
2357
|
});
|
|
2385
2358
|
const responseData = {
|
|
2386
|
-
id: (_b2 = (
|
|
2359
|
+
id: (_b2 = (_a18 = result.response) == null ? void 0 : _a18.id) != null ? _b2 : generateId3(),
|
|
2387
2360
|
timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : currentDate(),
|
|
2388
2361
|
modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : stepModel.modelId,
|
|
2389
2362
|
headers: (_g2 = result.response) == null ? void 0 : _g2.headers,
|
|
@@ -2443,9 +2416,9 @@ async function generateText({
|
|
|
2443
2416
|
if (toolCall.invalid) {
|
|
2444
2417
|
continue;
|
|
2445
2418
|
}
|
|
2446
|
-
const
|
|
2447
|
-
if ((
|
|
2448
|
-
await
|
|
2419
|
+
const tool2 = tools[toolCall.toolName];
|
|
2420
|
+
if ((tool2 == null ? void 0 : tool2.onInputAvailable) != null) {
|
|
2421
|
+
await tool2.onInputAvailable({
|
|
2449
2422
|
input: toolCall.input,
|
|
2450
2423
|
toolCallId: toolCall.toolCallId,
|
|
2451
2424
|
messages: stepInputMessages,
|
|
@@ -2575,8 +2548,8 @@ async function executeTools({
|
|
|
2575
2548
|
}) {
|
|
2576
2549
|
const toolOutputs = await Promise.all(
|
|
2577
2550
|
toolCalls.map(async ({ toolCallId, toolName, input }) => {
|
|
2578
|
-
const
|
|
2579
|
-
if ((
|
|
2551
|
+
const tool2 = tools[toolName];
|
|
2552
|
+
if ((tool2 == null ? void 0 : tool2.execute) == null) {
|
|
2580
2553
|
return void 0;
|
|
2581
2554
|
}
|
|
2582
2555
|
return recordSpan({
|
|
@@ -2599,7 +2572,7 @@ async function executeTools({
|
|
|
2599
2572
|
fn: async (span) => {
|
|
2600
2573
|
try {
|
|
2601
2574
|
const stream = (0, import_provider_utils10.executeTool)({
|
|
2602
|
-
execute:
|
|
2575
|
+
execute: tool2.execute.bind(tool2),
|
|
2603
2576
|
input,
|
|
2604
2577
|
options: {
|
|
2605
2578
|
toolCallId,
|
|
@@ -2633,7 +2606,7 @@ async function executeTools({
|
|
|
2633
2606
|
toolName,
|
|
2634
2607
|
input,
|
|
2635
2608
|
output,
|
|
2636
|
-
dynamic:
|
|
2609
|
+
dynamic: tool2.type === "dynamic"
|
|
2637
2610
|
};
|
|
2638
2611
|
} catch (error) {
|
|
2639
2612
|
recordErrorOnSpan(span, error);
|
|
@@ -2643,7 +2616,7 @@ async function executeTools({
|
|
|
2643
2616
|
toolName,
|
|
2644
2617
|
input,
|
|
2645
2618
|
error,
|
|
2646
|
-
dynamic:
|
|
2619
|
+
dynamic: tool2.type === "dynamic"
|
|
2647
2620
|
};
|
|
2648
2621
|
}
|
|
2649
2622
|
}
|
|
@@ -2808,7 +2781,7 @@ function asContent({
|
|
|
2808
2781
|
}
|
|
2809
2782
|
|
|
2810
2783
|
// src/generate-text/stream-text.ts
|
|
2811
|
-
var
|
|
2784
|
+
var import_provider23 = require("@ai-sdk/provider");
|
|
2812
2785
|
var import_provider_utils15 = require("@ai-sdk/provider-utils");
|
|
2813
2786
|
|
|
2814
2787
|
// src/util/prepare-headers.ts
|
|
@@ -3529,7 +3502,7 @@ function processUIMessageStream({
|
|
|
3529
3502
|
new TransformStream({
|
|
3530
3503
|
async transform(chunk, controller) {
|
|
3531
3504
|
await runUpdateMessageJob(async ({ state, write }) => {
|
|
3532
|
-
var
|
|
3505
|
+
var _a16, _b, _c, _d;
|
|
3533
3506
|
function getToolInvocation(toolCallId) {
|
|
3534
3507
|
const toolInvocations = state.message.parts.filter(isToolUIPart);
|
|
3535
3508
|
const toolInvocation = toolInvocations.find(
|
|
@@ -3557,7 +3530,7 @@ function processUIMessageStream({
|
|
|
3557
3530
|
return toolInvocation;
|
|
3558
3531
|
}
|
|
3559
3532
|
function updateToolPart(options) {
|
|
3560
|
-
var
|
|
3533
|
+
var _a17;
|
|
3561
3534
|
const part = state.message.parts.find(
|
|
3562
3535
|
(part2) => isToolUIPart(part2) && part2.toolCallId === options.toolCallId
|
|
3563
3536
|
);
|
|
@@ -3570,7 +3543,7 @@ function processUIMessageStream({
|
|
|
3570
3543
|
anyPart.errorText = anyOptions.errorText;
|
|
3571
3544
|
anyPart.rawInput = anyOptions.rawInput;
|
|
3572
3545
|
anyPart.preliminary = anyOptions.preliminary;
|
|
3573
|
-
anyPart.providerExecuted = (
|
|
3546
|
+
anyPart.providerExecuted = (_a17 = anyOptions.providerExecuted) != null ? _a17 : part.providerExecuted;
|
|
3574
3547
|
if (anyOptions.providerMetadata != null && part.state === "input-available") {
|
|
3575
3548
|
part.callProviderMetadata = anyOptions.providerMetadata;
|
|
3576
3549
|
}
|
|
@@ -3590,7 +3563,7 @@ function processUIMessageStream({
|
|
|
3590
3563
|
}
|
|
3591
3564
|
}
|
|
3592
3565
|
function updateDynamicToolPart(options) {
|
|
3593
|
-
var
|
|
3566
|
+
var _a17;
|
|
3594
3567
|
const part = state.message.parts.find(
|
|
3595
3568
|
(part2) => part2.type === "dynamic-tool" && part2.toolCallId === options.toolCallId
|
|
3596
3569
|
);
|
|
@@ -3602,7 +3575,7 @@ function processUIMessageStream({
|
|
|
3602
3575
|
anyPart.input = anyOptions.input;
|
|
3603
3576
|
anyPart.output = anyOptions.output;
|
|
3604
3577
|
anyPart.errorText = anyOptions.errorText;
|
|
3605
|
-
anyPart.rawInput = (
|
|
3578
|
+
anyPart.rawInput = (_a17 = anyOptions.rawInput) != null ? _a17 : anyPart.rawInput;
|
|
3606
3579
|
anyPart.preliminary = anyOptions.preliminary;
|
|
3607
3580
|
if (anyOptions.providerMetadata != null && part.state === "input-available") {
|
|
3608
3581
|
part.callProviderMetadata = anyOptions.providerMetadata;
|
|
@@ -3649,7 +3622,7 @@ function processUIMessageStream({
|
|
|
3649
3622
|
case "text-delta": {
|
|
3650
3623
|
const textPart = state.activeTextParts[chunk.id];
|
|
3651
3624
|
textPart.text += chunk.delta;
|
|
3652
|
-
textPart.providerMetadata = (
|
|
3625
|
+
textPart.providerMetadata = (_a16 = chunk.providerMetadata) != null ? _a16 : textPart.providerMetadata;
|
|
3653
3626
|
write();
|
|
3654
3627
|
break;
|
|
3655
3628
|
}
|
|
@@ -4060,11 +4033,11 @@ function createAsyncIterableStream(source) {
|
|
|
4060
4033
|
const reader = this.getReader();
|
|
4061
4034
|
let finished = false;
|
|
4062
4035
|
async function cleanup(cancelStream) {
|
|
4063
|
-
var
|
|
4036
|
+
var _a16;
|
|
4064
4037
|
finished = true;
|
|
4065
4038
|
try {
|
|
4066
4039
|
if (cancelStream) {
|
|
4067
|
-
await ((
|
|
4040
|
+
await ((_a16 = reader.cancel) == null ? void 0 : _a16.call(reader));
|
|
4068
4041
|
}
|
|
4069
4042
|
} finally {
|
|
4070
4043
|
try {
|
|
@@ -4251,25 +4224,25 @@ var DelayedPromise = class {
|
|
|
4251
4224
|
return this._promise;
|
|
4252
4225
|
}
|
|
4253
4226
|
resolve(value) {
|
|
4254
|
-
var
|
|
4227
|
+
var _a16;
|
|
4255
4228
|
this.status = { type: "resolved", value };
|
|
4256
4229
|
if (this._promise) {
|
|
4257
|
-
(
|
|
4230
|
+
(_a16 = this._resolve) == null ? void 0 : _a16.call(this, value);
|
|
4258
4231
|
}
|
|
4259
4232
|
}
|
|
4260
4233
|
reject(error) {
|
|
4261
|
-
var
|
|
4234
|
+
var _a16;
|
|
4262
4235
|
this.status = { type: "rejected", error };
|
|
4263
4236
|
if (this._promise) {
|
|
4264
|
-
(
|
|
4237
|
+
(_a16 = this._reject) == null ? void 0 : _a16.call(this, error);
|
|
4265
4238
|
}
|
|
4266
4239
|
}
|
|
4267
4240
|
};
|
|
4268
4241
|
|
|
4269
4242
|
// src/util/now.ts
|
|
4270
4243
|
function now() {
|
|
4271
|
-
var
|
|
4272
|
-
return (_b = (
|
|
4244
|
+
var _a16, _b;
|
|
4245
|
+
return (_b = (_a16 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a16.now()) != null ? _b : Date.now();
|
|
4273
4246
|
}
|
|
4274
4247
|
|
|
4275
4248
|
// src/generate-text/run-tools-transformation.ts
|
|
@@ -4364,10 +4337,10 @@ function runToolsTransformation({
|
|
|
4364
4337
|
});
|
|
4365
4338
|
break;
|
|
4366
4339
|
}
|
|
4367
|
-
const
|
|
4340
|
+
const tool2 = tools[toolCall.toolName];
|
|
4368
4341
|
toolInputs.set(toolCall.toolCallId, toolCall.input);
|
|
4369
|
-
if (
|
|
4370
|
-
await
|
|
4342
|
+
if (tool2.onInputAvailable != null) {
|
|
4343
|
+
await tool2.onInputAvailable({
|
|
4371
4344
|
input: toolCall.input,
|
|
4372
4345
|
toolCallId: toolCall.toolCallId,
|
|
4373
4346
|
messages,
|
|
@@ -4375,7 +4348,7 @@ function runToolsTransformation({
|
|
|
4375
4348
|
experimental_context
|
|
4376
4349
|
});
|
|
4377
4350
|
}
|
|
4378
|
-
if (
|
|
4351
|
+
if (tool2.execute != null && toolCall.providerExecuted !== true) {
|
|
4379
4352
|
const toolExecutionId = (0, import_provider_utils14.generateId)();
|
|
4380
4353
|
outstandingToolResults.add(toolExecutionId);
|
|
4381
4354
|
recordSpan({
|
|
@@ -4399,7 +4372,7 @@ function runToolsTransformation({
|
|
|
4399
4372
|
let output;
|
|
4400
4373
|
try {
|
|
4401
4374
|
const stream = (0, import_provider_utils14.executeTool)({
|
|
4402
|
-
execute:
|
|
4375
|
+
execute: tool2.execute.bind(tool2),
|
|
4403
4376
|
input: toolCall.input,
|
|
4404
4377
|
options: {
|
|
4405
4378
|
toolCallId: toolCall.toolCallId,
|
|
@@ -4705,7 +4678,7 @@ var DefaultStreamTextResult = class {
|
|
|
4705
4678
|
let activeReasoningContent = {};
|
|
4706
4679
|
const eventProcessor = new TransformStream({
|
|
4707
4680
|
async transform(chunk, controller) {
|
|
4708
|
-
var
|
|
4681
|
+
var _a16, _b, _c, _d;
|
|
4709
4682
|
controller.enqueue(chunk);
|
|
4710
4683
|
const { part } = chunk;
|
|
4711
4684
|
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") {
|
|
@@ -4735,7 +4708,7 @@ var DefaultStreamTextResult = class {
|
|
|
4735
4708
|
return;
|
|
4736
4709
|
}
|
|
4737
4710
|
activeText.text += part.text;
|
|
4738
|
-
activeText.providerMetadata = (
|
|
4711
|
+
activeText.providerMetadata = (_a16 = part.providerMetadata) != null ? _a16 : activeText.providerMetadata;
|
|
4739
4712
|
}
|
|
4740
4713
|
if (part.type === "text-end") {
|
|
4741
4714
|
const activeText = activeTextContent[part.id];
|
|
@@ -4891,8 +4864,8 @@ var DefaultStreamTextResult = class {
|
|
|
4891
4864
|
"ai.response.text": { output: () => finalStep.text },
|
|
4892
4865
|
"ai.response.toolCalls": {
|
|
4893
4866
|
output: () => {
|
|
4894
|
-
var
|
|
4895
|
-
return ((
|
|
4867
|
+
var _a16;
|
|
4868
|
+
return ((_a16 = finalStep.toolCalls) == null ? void 0 : _a16.length) ? JSON.stringify(finalStep.toolCalls) : void 0;
|
|
4896
4869
|
}
|
|
4897
4870
|
},
|
|
4898
4871
|
"ai.response.providerMetadata": JSON.stringify(
|
|
@@ -4996,7 +4969,7 @@ var DefaultStreamTextResult = class {
|
|
|
4996
4969
|
responseMessages,
|
|
4997
4970
|
usage
|
|
4998
4971
|
}) {
|
|
4999
|
-
var
|
|
4972
|
+
var _a16, _b, _c, _d, _e;
|
|
5000
4973
|
const includeRawChunks2 = self.includeRawChunks;
|
|
5001
4974
|
stepFinish = new DelayedPromise();
|
|
5002
4975
|
const initialPrompt = await standardizePrompt({
|
|
@@ -5015,7 +4988,7 @@ var DefaultStreamTextResult = class {
|
|
|
5015
4988
|
messages: stepInputMessages
|
|
5016
4989
|
}));
|
|
5017
4990
|
const stepModel = resolveLanguageModel(
|
|
5018
|
-
(
|
|
4991
|
+
(_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model
|
|
5019
4992
|
);
|
|
5020
4993
|
const promptMessages = await convertToLanguageModelPrompt({
|
|
5021
4994
|
prompt: {
|
|
@@ -5054,7 +5027,7 @@ var DefaultStreamTextResult = class {
|
|
|
5054
5027
|
},
|
|
5055
5028
|
"ai.prompt.tools": {
|
|
5056
5029
|
// convert the language model level tools:
|
|
5057
|
-
input: () => stepTools == null ? void 0 : stepTools.map((
|
|
5030
|
+
input: () => stepTools == null ? void 0 : stepTools.map((tool2) => JSON.stringify(tool2))
|
|
5058
5031
|
},
|
|
5059
5032
|
"ai.prompt.toolChoice": {
|
|
5060
5033
|
input: () => stepToolChoice != null ? JSON.stringify(stepToolChoice) : void 0
|
|
@@ -5127,7 +5100,7 @@ var DefaultStreamTextResult = class {
|
|
|
5127
5100
|
streamWithToolResults.pipeThrough(
|
|
5128
5101
|
new TransformStream({
|
|
5129
5102
|
async transform(chunk, controller) {
|
|
5130
|
-
var
|
|
5103
|
+
var _a17, _b2, _c2, _d2;
|
|
5131
5104
|
if (chunk.type === "stream-start") {
|
|
5132
5105
|
warnings = chunk.warnings;
|
|
5133
5106
|
return;
|
|
@@ -5199,7 +5172,7 @@ var DefaultStreamTextResult = class {
|
|
|
5199
5172
|
}
|
|
5200
5173
|
case "response-metadata": {
|
|
5201
5174
|
stepResponse = {
|
|
5202
|
-
id: (
|
|
5175
|
+
id: (_a17 = chunk.id) != null ? _a17 : stepResponse.id,
|
|
5203
5176
|
timestamp: (_b2 = chunk.timestamp) != null ? _b2 : stepResponse.timestamp,
|
|
5204
5177
|
modelId: (_c2 = chunk.modelId) != null ? _c2 : stepResponse.modelId
|
|
5205
5178
|
};
|
|
@@ -5227,9 +5200,9 @@ var DefaultStreamTextResult = class {
|
|
|
5227
5200
|
}
|
|
5228
5201
|
case "tool-input-start": {
|
|
5229
5202
|
activeToolCallToolNames[chunk.id] = chunk.toolName;
|
|
5230
|
-
const
|
|
5231
|
-
if ((
|
|
5232
|
-
await
|
|
5203
|
+
const tool2 = tools == null ? void 0 : tools[chunk.toolName];
|
|
5204
|
+
if ((tool2 == null ? void 0 : tool2.onInputStart) != null) {
|
|
5205
|
+
await tool2.onInputStart({
|
|
5233
5206
|
toolCallId: chunk.id,
|
|
5234
5207
|
messages: stepInputMessages,
|
|
5235
5208
|
abortSignal,
|
|
@@ -5238,7 +5211,7 @@ var DefaultStreamTextResult = class {
|
|
|
5238
5211
|
}
|
|
5239
5212
|
controller.enqueue({
|
|
5240
5213
|
...chunk,
|
|
5241
|
-
dynamic: (
|
|
5214
|
+
dynamic: (tool2 == null ? void 0 : tool2.type) === "dynamic"
|
|
5242
5215
|
});
|
|
5243
5216
|
break;
|
|
5244
5217
|
}
|
|
@@ -5249,9 +5222,9 @@ var DefaultStreamTextResult = class {
|
|
|
5249
5222
|
}
|
|
5250
5223
|
case "tool-input-delta": {
|
|
5251
5224
|
const toolName = activeToolCallToolNames[chunk.id];
|
|
5252
|
-
const
|
|
5253
|
-
if ((
|
|
5254
|
-
await
|
|
5225
|
+
const tool2 = tools == null ? void 0 : tools[toolName];
|
|
5226
|
+
if ((tool2 == null ? void 0 : tool2.onInputDelta) != null) {
|
|
5227
|
+
await tool2.onInputDelta({
|
|
5255
5228
|
inputTextDelta: chunk.delta,
|
|
5256
5229
|
toolCallId: chunk.id,
|
|
5257
5230
|
messages: stepInputMessages,
|
|
@@ -5501,14 +5474,14 @@ var DefaultStreamTextResult = class {
|
|
|
5501
5474
|
);
|
|
5502
5475
|
}
|
|
5503
5476
|
async consumeStream(options) {
|
|
5504
|
-
var
|
|
5477
|
+
var _a16;
|
|
5505
5478
|
try {
|
|
5506
5479
|
await consumeStream({
|
|
5507
5480
|
stream: this.fullStream,
|
|
5508
5481
|
onError: options == null ? void 0 : options.onError
|
|
5509
5482
|
});
|
|
5510
5483
|
} catch (error) {
|
|
5511
|
-
(
|
|
5484
|
+
(_a16 = options == null ? void 0 : options.onError) == null ? void 0 : _a16.call(options, error);
|
|
5512
5485
|
}
|
|
5513
5486
|
}
|
|
5514
5487
|
get experimental_partialOutputStream() {
|
|
@@ -5536,7 +5509,7 @@ var DefaultStreamTextResult = class {
|
|
|
5536
5509
|
sendSources = false,
|
|
5537
5510
|
sendStart = true,
|
|
5538
5511
|
sendFinish = true,
|
|
5539
|
-
onError =
|
|
5512
|
+
onError = import_provider23.getErrorMessage
|
|
5540
5513
|
} = {}) {
|
|
5541
5514
|
const responseMessageId = generateMessageId != null ? getResponseUIMessageId({
|
|
5542
5515
|
originalMessages,
|
|
@@ -5544,9 +5517,9 @@ var DefaultStreamTextResult = class {
|
|
|
5544
5517
|
}) : void 0;
|
|
5545
5518
|
const toolNamesByCallId = {};
|
|
5546
5519
|
const isDynamic = (toolCallId) => {
|
|
5547
|
-
var
|
|
5520
|
+
var _a16, _b;
|
|
5548
5521
|
const toolName = toolNamesByCallId[toolCallId];
|
|
5549
|
-
const dynamic = ((_b = (
|
|
5522
|
+
const dynamic = ((_b = (_a16 = this.tools) == null ? void 0 : _a16[toolName]) == null ? void 0 : _b.type) === "dynamic";
|
|
5550
5523
|
return dynamic ? true : void 0;
|
|
5551
5524
|
};
|
|
5552
5525
|
const baseStream = this.fullStream.pipeThrough(
|
|
@@ -5879,7 +5852,7 @@ function convertToModelMessages(messages, options) {
|
|
|
5879
5852
|
modelMessages.push({
|
|
5880
5853
|
role: "user",
|
|
5881
5854
|
content: message.parts.map((part) => {
|
|
5882
|
-
var
|
|
5855
|
+
var _a16;
|
|
5883
5856
|
if (isTextUIPart(part)) {
|
|
5884
5857
|
return {
|
|
5885
5858
|
type: "text",
|
|
@@ -5897,7 +5870,7 @@ function convertToModelMessages(messages, options) {
|
|
|
5897
5870
|
};
|
|
5898
5871
|
}
|
|
5899
5872
|
if (isDataUIPart(part)) {
|
|
5900
|
-
return (
|
|
5873
|
+
return (_a16 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a16.call(
|
|
5901
5874
|
options,
|
|
5902
5875
|
part
|
|
5903
5876
|
);
|
|
@@ -5909,7 +5882,7 @@ function convertToModelMessages(messages, options) {
|
|
|
5909
5882
|
case "assistant": {
|
|
5910
5883
|
if (message.parts != null) {
|
|
5911
5884
|
let processBlock2 = function() {
|
|
5912
|
-
var
|
|
5885
|
+
var _a16, _b, _c;
|
|
5913
5886
|
if (block.length === 0) {
|
|
5914
5887
|
return;
|
|
5915
5888
|
}
|
|
@@ -5952,7 +5925,7 @@ function convertToModelMessages(messages, options) {
|
|
|
5952
5925
|
type: "tool-call",
|
|
5953
5926
|
toolCallId: part.toolCallId,
|
|
5954
5927
|
toolName,
|
|
5955
|
-
input: part.state === "output-error" ? (
|
|
5928
|
+
input: part.state === "output-error" ? (_a16 = part.input) != null ? _a16 : part.rawInput : part.input,
|
|
5956
5929
|
providerExecuted: part.providerExecuted,
|
|
5957
5930
|
...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
|
|
5958
5931
|
});
|
|
@@ -5993,7 +5966,7 @@ function convertToModelMessages(messages, options) {
|
|
|
5993
5966
|
modelMessages.push({
|
|
5994
5967
|
role: "tool",
|
|
5995
5968
|
content: toolParts.map((toolPart) => {
|
|
5996
|
-
var
|
|
5969
|
+
var _a17;
|
|
5997
5970
|
switch (toolPart.state) {
|
|
5998
5971
|
case "output-error":
|
|
5999
5972
|
case "output-available": {
|
|
@@ -6004,7 +5977,7 @@ function convertToModelMessages(messages, options) {
|
|
|
6004
5977
|
toolName,
|
|
6005
5978
|
output: createToolModelOutput({
|
|
6006
5979
|
output: toolPart.state === "output-error" ? toolPart.errorText : toolPart.output,
|
|
6007
|
-
tool: (
|
|
5980
|
+
tool: (_a17 = options == null ? void 0 : options.tools) == null ? void 0 : _a17[toolName],
|
|
6008
5981
|
errorMode: toolPart.state === "output-error" ? "text" : "none"
|
|
6009
5982
|
})
|
|
6010
5983
|
};
|
|
@@ -6129,7 +6102,7 @@ async function embed({
|
|
|
6129
6102
|
}),
|
|
6130
6103
|
tracer,
|
|
6131
6104
|
fn: async (doEmbedSpan) => {
|
|
6132
|
-
var
|
|
6105
|
+
var _a16;
|
|
6133
6106
|
const modelResponse = await model.doEmbed({
|
|
6134
6107
|
values: [value],
|
|
6135
6108
|
abortSignal,
|
|
@@ -6137,7 +6110,7 @@ async function embed({
|
|
|
6137
6110
|
providerOptions
|
|
6138
6111
|
});
|
|
6139
6112
|
const embedding2 = modelResponse.embeddings[0];
|
|
6140
|
-
const usage2 = (
|
|
6113
|
+
const usage2 = (_a16 = modelResponse.usage) != null ? _a16 : { tokens: NaN };
|
|
6141
6114
|
doEmbedSpan.setAttributes(
|
|
6142
6115
|
selectTelemetryAttributes({
|
|
6143
6116
|
telemetry,
|
|
@@ -6247,7 +6220,7 @@ async function embedMany({
|
|
|
6247
6220
|
}),
|
|
6248
6221
|
tracer,
|
|
6249
6222
|
fn: async (span) => {
|
|
6250
|
-
var
|
|
6223
|
+
var _a16;
|
|
6251
6224
|
const [maxEmbeddingsPerCall, supportsParallelCalls] = await Promise.all([
|
|
6252
6225
|
model.maxEmbeddingsPerCall,
|
|
6253
6226
|
model.supportsParallelCalls
|
|
@@ -6273,7 +6246,7 @@ async function embedMany({
|
|
|
6273
6246
|
}),
|
|
6274
6247
|
tracer,
|
|
6275
6248
|
fn: async (doEmbedSpan) => {
|
|
6276
|
-
var
|
|
6249
|
+
var _a17;
|
|
6277
6250
|
const modelResponse = await model.doEmbed({
|
|
6278
6251
|
values,
|
|
6279
6252
|
abortSignal,
|
|
@@ -6281,7 +6254,7 @@ async function embedMany({
|
|
|
6281
6254
|
providerOptions
|
|
6282
6255
|
});
|
|
6283
6256
|
const embeddings3 = modelResponse.embeddings;
|
|
6284
|
-
const usage2 = (
|
|
6257
|
+
const usage2 = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
|
|
6285
6258
|
doEmbedSpan.setAttributes(
|
|
6286
6259
|
selectTelemetryAttributes({
|
|
6287
6260
|
telemetry,
|
|
@@ -6355,7 +6328,7 @@ async function embedMany({
|
|
|
6355
6328
|
}),
|
|
6356
6329
|
tracer,
|
|
6357
6330
|
fn: async (doEmbedSpan) => {
|
|
6358
|
-
var
|
|
6331
|
+
var _a17;
|
|
6359
6332
|
const modelResponse = await model.doEmbed({
|
|
6360
6333
|
values: chunk,
|
|
6361
6334
|
abortSignal,
|
|
@@ -6363,7 +6336,7 @@ async function embedMany({
|
|
|
6363
6336
|
providerOptions
|
|
6364
6337
|
});
|
|
6365
6338
|
const embeddings2 = modelResponse.embeddings;
|
|
6366
|
-
const usage = (
|
|
6339
|
+
const usage = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
|
|
6367
6340
|
doEmbedSpan.setAttributes(
|
|
6368
6341
|
selectTelemetryAttributes({
|
|
6369
6342
|
telemetry,
|
|
@@ -6400,7 +6373,7 @@ async function embedMany({
|
|
|
6400
6373
|
result.providerMetadata
|
|
6401
6374
|
)) {
|
|
6402
6375
|
providerMetadata[providerName] = {
|
|
6403
|
-
...(
|
|
6376
|
+
...(_a16 = providerMetadata[providerName]) != null ? _a16 : {},
|
|
6404
6377
|
...metadata
|
|
6405
6378
|
};
|
|
6406
6379
|
}
|
|
@@ -6454,7 +6427,7 @@ async function generateImage({
|
|
|
6454
6427
|
abortSignal,
|
|
6455
6428
|
headers
|
|
6456
6429
|
}) {
|
|
6457
|
-
var
|
|
6430
|
+
var _a16, _b;
|
|
6458
6431
|
if (model.specificationVersion !== "v2") {
|
|
6459
6432
|
throw new UnsupportedModelVersionError({
|
|
6460
6433
|
version: model.specificationVersion,
|
|
@@ -6470,7 +6443,7 @@ async function generateImage({
|
|
|
6470
6443
|
maxRetries: maxRetriesArg,
|
|
6471
6444
|
abortSignal
|
|
6472
6445
|
});
|
|
6473
|
-
const maxImagesPerCallWithDefault = (
|
|
6446
|
+
const maxImagesPerCallWithDefault = (_a16 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a16 : 1;
|
|
6474
6447
|
const callCount = Math.ceil(n / maxImagesPerCallWithDefault);
|
|
6475
6448
|
const callImageCounts = Array.from({ length: callCount }, (_, i) => {
|
|
6476
6449
|
if (i < callCount - 1) {
|
|
@@ -6503,13 +6476,13 @@ async function generateImage({
|
|
|
6503
6476
|
images.push(
|
|
6504
6477
|
...result.images.map(
|
|
6505
6478
|
(image) => {
|
|
6506
|
-
var
|
|
6479
|
+
var _a17;
|
|
6507
6480
|
return new DefaultGeneratedFile({
|
|
6508
6481
|
data: image,
|
|
6509
|
-
mediaType: (
|
|
6482
|
+
mediaType: (_a17 = detectMediaType({
|
|
6510
6483
|
data: image,
|
|
6511
6484
|
signatures: imageMediaTypeSignatures
|
|
6512
|
-
})) != null ?
|
|
6485
|
+
})) != null ? _a17 : "image/png"
|
|
6513
6486
|
});
|
|
6514
6487
|
}
|
|
6515
6488
|
)
|
|
@@ -6569,7 +6542,7 @@ function extractReasoningContent(content) {
|
|
|
6569
6542
|
}
|
|
6570
6543
|
|
|
6571
6544
|
// src/generate-object/output-strategy.ts
|
|
6572
|
-
var
|
|
6545
|
+
var import_provider24 = require("@ai-sdk/provider");
|
|
6573
6546
|
var import_provider_utils19 = require("@ai-sdk/provider-utils");
|
|
6574
6547
|
var noSchemaOutputStrategy = {
|
|
6575
6548
|
type: "no-schema",
|
|
@@ -6590,7 +6563,7 @@ var noSchemaOutputStrategy = {
|
|
|
6590
6563
|
} : { success: true, value };
|
|
6591
6564
|
},
|
|
6592
6565
|
createElementStream() {
|
|
6593
|
-
throw new
|
|
6566
|
+
throw new import_provider24.UnsupportedFunctionalityError({
|
|
6594
6567
|
functionality: "element streams in no-schema mode"
|
|
6595
6568
|
});
|
|
6596
6569
|
}
|
|
@@ -6612,7 +6585,7 @@ var objectOutputStrategy = (schema) => ({
|
|
|
6612
6585
|
return (0, import_provider_utils19.safeValidateTypes)({ value, schema });
|
|
6613
6586
|
},
|
|
6614
6587
|
createElementStream() {
|
|
6615
|
-
throw new
|
|
6588
|
+
throw new import_provider24.UnsupportedFunctionalityError({
|
|
6616
6589
|
functionality: "element streams in object mode"
|
|
6617
6590
|
});
|
|
6618
6591
|
}
|
|
@@ -6620,7 +6593,7 @@ var objectOutputStrategy = (schema) => ({
|
|
|
6620
6593
|
var arrayOutputStrategy = (schema) => {
|
|
6621
6594
|
const { $schema, ...itemSchema } = schema.jsonSchema;
|
|
6622
6595
|
return {
|
|
6623
|
-
type: "
|
|
6596
|
+
type: "array",
|
|
6624
6597
|
// wrap in object that contains array of elements, since most LLMs will not
|
|
6625
6598
|
// be able to generate an array directly:
|
|
6626
6599
|
// possible future optimization: use arrays directly when model supports grammar-guided generation
|
|
@@ -6639,11 +6612,11 @@ var arrayOutputStrategy = (schema) => {
|
|
|
6639
6612
|
isFirstDelta,
|
|
6640
6613
|
isFinalDelta
|
|
6641
6614
|
}) {
|
|
6642
|
-
var
|
|
6643
|
-
if (!(0,
|
|
6615
|
+
var _a16;
|
|
6616
|
+
if (!(0, import_provider24.isJSONObject)(value) || !(0, import_provider24.isJSONArray)(value.elements)) {
|
|
6644
6617
|
return {
|
|
6645
6618
|
success: false,
|
|
6646
|
-
error: new
|
|
6619
|
+
error: new import_provider24.TypeValidationError({
|
|
6647
6620
|
value,
|
|
6648
6621
|
cause: "value must be an object that contains an array of elements"
|
|
6649
6622
|
})
|
|
@@ -6662,7 +6635,7 @@ var arrayOutputStrategy = (schema) => {
|
|
|
6662
6635
|
}
|
|
6663
6636
|
resultArray.push(result.value);
|
|
6664
6637
|
}
|
|
6665
|
-
const publishedElementCount = (
|
|
6638
|
+
const publishedElementCount = (_a16 = latestObject == null ? void 0 : latestObject.length) != null ? _a16 : 0;
|
|
6666
6639
|
let textDelta = "";
|
|
6667
6640
|
if (isFirstDelta) {
|
|
6668
6641
|
textDelta += "[";
|
|
@@ -6683,10 +6656,10 @@ var arrayOutputStrategy = (schema) => {
|
|
|
6683
6656
|
};
|
|
6684
6657
|
},
|
|
6685
6658
|
async validateFinalResult(value) {
|
|
6686
|
-
if (!(0,
|
|
6659
|
+
if (!(0, import_provider24.isJSONObject)(value) || !(0, import_provider24.isJSONArray)(value.elements)) {
|
|
6687
6660
|
return {
|
|
6688
6661
|
success: false,
|
|
6689
|
-
error: new
|
|
6662
|
+
error: new import_provider24.TypeValidationError({
|
|
6690
6663
|
value,
|
|
6691
6664
|
cause: "value must be an object that contains an array of elements"
|
|
6692
6665
|
})
|
|
@@ -6749,10 +6722,10 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6749
6722
|
additionalProperties: false
|
|
6750
6723
|
},
|
|
6751
6724
|
async validateFinalResult(value) {
|
|
6752
|
-
if (!(0,
|
|
6725
|
+
if (!(0, import_provider24.isJSONObject)(value) || typeof value.result !== "string") {
|
|
6753
6726
|
return {
|
|
6754
6727
|
success: false,
|
|
6755
|
-
error: new
|
|
6728
|
+
error: new import_provider24.TypeValidationError({
|
|
6756
6729
|
value,
|
|
6757
6730
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
6758
6731
|
})
|
|
@@ -6761,17 +6734,17 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6761
6734
|
const result = value.result;
|
|
6762
6735
|
return enumValues.includes(result) ? { success: true, value: result } : {
|
|
6763
6736
|
success: false,
|
|
6764
|
-
error: new
|
|
6737
|
+
error: new import_provider24.TypeValidationError({
|
|
6765
6738
|
value,
|
|
6766
6739
|
cause: "value must be a string in the enum"
|
|
6767
6740
|
})
|
|
6768
6741
|
};
|
|
6769
6742
|
},
|
|
6770
6743
|
async validatePartialResult({ value, textDelta }) {
|
|
6771
|
-
if (!(0,
|
|
6744
|
+
if (!(0, import_provider24.isJSONObject)(value) || typeof value.result !== "string") {
|
|
6772
6745
|
return {
|
|
6773
6746
|
success: false,
|
|
6774
|
-
error: new
|
|
6747
|
+
error: new import_provider24.TypeValidationError({
|
|
6775
6748
|
value,
|
|
6776
6749
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
6777
6750
|
})
|
|
@@ -6784,7 +6757,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6784
6757
|
if (value.result.length === 0 || possibleEnumValues.length === 0) {
|
|
6785
6758
|
return {
|
|
6786
6759
|
success: false,
|
|
6787
|
-
error: new
|
|
6760
|
+
error: new import_provider24.TypeValidationError({
|
|
6788
6761
|
value,
|
|
6789
6762
|
cause: "value must be a string in the enum"
|
|
6790
6763
|
})
|
|
@@ -6799,7 +6772,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6799
6772
|
};
|
|
6800
6773
|
},
|
|
6801
6774
|
createElementStream() {
|
|
6802
|
-
throw new
|
|
6775
|
+
throw new import_provider24.UnsupportedFunctionalityError({
|
|
6803
6776
|
functionality: "element streams in enum mode"
|
|
6804
6777
|
});
|
|
6805
6778
|
}
|
|
@@ -6827,7 +6800,7 @@ function getOutputStrategy({
|
|
|
6827
6800
|
}
|
|
6828
6801
|
|
|
6829
6802
|
// src/generate-object/parse-and-validate-object-result.ts
|
|
6830
|
-
var
|
|
6803
|
+
var import_provider25 = require("@ai-sdk/provider");
|
|
6831
6804
|
var import_provider_utils20 = require("@ai-sdk/provider-utils");
|
|
6832
6805
|
async function parseAndValidateObjectResult(result, outputStrategy, context) {
|
|
6833
6806
|
const parseResult = await (0, import_provider_utils20.safeParseJSON)({ text: result });
|
|
@@ -6865,7 +6838,7 @@ async function parseAndValidateObjectResultWithRepair(result, outputStrategy, re
|
|
|
6865
6838
|
try {
|
|
6866
6839
|
return await parseAndValidateObjectResult(result, outputStrategy, context);
|
|
6867
6840
|
} catch (error) {
|
|
6868
|
-
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (
|
|
6841
|
+
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (import_provider25.JSONParseError.isInstance(error.cause) || import_provider25.TypeValidationError.isInstance(error.cause))) {
|
|
6869
6842
|
const repairedText = await repairText({
|
|
6870
6843
|
text: result,
|
|
6871
6844
|
error: error.cause
|
|
@@ -7081,7 +7054,7 @@ async function generateObject(options) {
|
|
|
7081
7054
|
}),
|
|
7082
7055
|
tracer,
|
|
7083
7056
|
fn: async (span) => {
|
|
7084
|
-
var
|
|
7057
|
+
var _a16;
|
|
7085
7058
|
let result;
|
|
7086
7059
|
let finishReason;
|
|
7087
7060
|
let usage;
|
|
@@ -7127,7 +7100,7 @@ async function generateObject(options) {
|
|
|
7127
7100
|
}),
|
|
7128
7101
|
tracer,
|
|
7129
7102
|
fn: async (span2) => {
|
|
7130
|
-
var
|
|
7103
|
+
var _a17, _b, _c, _d, _e, _f, _g, _h;
|
|
7131
7104
|
const result2 = await model.doGenerate({
|
|
7132
7105
|
responseFormat: {
|
|
7133
7106
|
type: "json",
|
|
@@ -7142,7 +7115,7 @@ async function generateObject(options) {
|
|
|
7142
7115
|
headers: headersWithUserAgent
|
|
7143
7116
|
});
|
|
7144
7117
|
const responseData = {
|
|
7145
|
-
id: (_b = (
|
|
7118
|
+
id: (_b = (_a17 = result2.response) == null ? void 0 : _a17.id) != null ? _b : generateId3(),
|
|
7146
7119
|
timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
|
|
7147
7120
|
modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId,
|
|
7148
7121
|
headers: (_g = result2.response) == null ? void 0 : _g.headers,
|
|
@@ -7196,7 +7169,7 @@ async function generateObject(options) {
|
|
|
7196
7169
|
usage = generateResult.usage;
|
|
7197
7170
|
warnings = generateResult.warnings;
|
|
7198
7171
|
resultProviderMetadata = generateResult.providerMetadata;
|
|
7199
|
-
request = (
|
|
7172
|
+
request = (_a16 = generateResult.request) != null ? _a16 : {};
|
|
7200
7173
|
response = generateResult.responseData;
|
|
7201
7174
|
reasoning = generateResult.reasoning;
|
|
7202
7175
|
logWarnings(warnings);
|
|
@@ -7255,9 +7228,9 @@ var DefaultGenerateObjectResult = class {
|
|
|
7255
7228
|
this.reasoning = options.reasoning;
|
|
7256
7229
|
}
|
|
7257
7230
|
toJsonResponse(init) {
|
|
7258
|
-
var
|
|
7231
|
+
var _a16;
|
|
7259
7232
|
return new Response(JSON.stringify(this.object), {
|
|
7260
|
-
status: (
|
|
7233
|
+
status: (_a16 = init == null ? void 0 : init.status) != null ? _a16 : 200,
|
|
7261
7234
|
headers: prepareHeaders(init == null ? void 0 : init.headers, {
|
|
7262
7235
|
"content-type": "application/json; charset=utf-8"
|
|
7263
7236
|
})
|
|
@@ -7383,8 +7356,8 @@ function simulateReadableStream({
|
|
|
7383
7356
|
chunkDelayInMs = 0,
|
|
7384
7357
|
_internal
|
|
7385
7358
|
}) {
|
|
7386
|
-
var
|
|
7387
|
-
const delay2 = (
|
|
7359
|
+
var _a16;
|
|
7360
|
+
const delay2 = (_a16 = _internal == null ? void 0 : _internal.delay) != null ? _a16 : import_provider_utils22.delay;
|
|
7388
7361
|
let index = 0;
|
|
7389
7362
|
return new ReadableStream({
|
|
7390
7363
|
async pull(controller) {
|
|
@@ -7644,7 +7617,7 @@ var DefaultStreamObjectResult = class {
|
|
|
7644
7617
|
const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
|
|
7645
7618
|
new TransformStream({
|
|
7646
7619
|
async transform(chunk, controller) {
|
|
7647
|
-
var
|
|
7620
|
+
var _a16, _b, _c;
|
|
7648
7621
|
if (typeof chunk === "object" && chunk.type === "stream-start") {
|
|
7649
7622
|
warnings = chunk.warnings;
|
|
7650
7623
|
return;
|
|
@@ -7694,7 +7667,7 @@ var DefaultStreamObjectResult = class {
|
|
|
7694
7667
|
switch (chunk.type) {
|
|
7695
7668
|
case "response-metadata": {
|
|
7696
7669
|
fullResponse = {
|
|
7697
|
-
id: (
|
|
7670
|
+
id: (_a16 = chunk.id) != null ? _a16 : fullResponse.id,
|
|
7698
7671
|
timestamp: (_b = chunk.timestamp) != null ? _b : fullResponse.timestamp,
|
|
7699
7672
|
modelId: (_c = chunk.modelId) != null ? _c : fullResponse.modelId
|
|
7700
7673
|
};
|
|
@@ -7961,7 +7934,7 @@ async function generateSpeech({
|
|
|
7961
7934
|
abortSignal,
|
|
7962
7935
|
headers
|
|
7963
7936
|
}) {
|
|
7964
|
-
var
|
|
7937
|
+
var _a16;
|
|
7965
7938
|
if (model.specificationVersion !== "v2") {
|
|
7966
7939
|
throw new UnsupportedModelVersionError({
|
|
7967
7940
|
version: model.specificationVersion,
|
|
@@ -7997,10 +7970,10 @@ async function generateSpeech({
|
|
|
7997
7970
|
return new DefaultSpeechResult({
|
|
7998
7971
|
audio: new DefaultGeneratedAudioFile({
|
|
7999
7972
|
data: result.audio,
|
|
8000
|
-
mediaType: (
|
|
7973
|
+
mediaType: (_a16 = detectMediaType({
|
|
8001
7974
|
data: result.audio,
|
|
8002
7975
|
signatures: audioMediaTypeSignatures
|
|
8003
|
-
})) != null ?
|
|
7976
|
+
})) != null ? _a16 : "audio/mp3"
|
|
8004
7977
|
}),
|
|
8005
7978
|
warnings: result.warnings,
|
|
8006
7979
|
responses: [result.response],
|
|
@@ -8009,11 +7982,11 @@ async function generateSpeech({
|
|
|
8009
7982
|
}
|
|
8010
7983
|
var DefaultSpeechResult = class {
|
|
8011
7984
|
constructor(options) {
|
|
8012
|
-
var
|
|
7985
|
+
var _a16;
|
|
8013
7986
|
this.audio = options.audio;
|
|
8014
7987
|
this.warnings = options.warnings;
|
|
8015
7988
|
this.responses = options.responses;
|
|
8016
|
-
this.providerMetadata = (
|
|
7989
|
+
this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};
|
|
8017
7990
|
}
|
|
8018
7991
|
};
|
|
8019
7992
|
|
|
@@ -8167,7 +8140,7 @@ function pruneMessages({
|
|
|
8167
8140
|
|
|
8168
8141
|
// src/generate-text/smooth-stream.ts
|
|
8169
8142
|
var import_provider_utils26 = require("@ai-sdk/provider-utils");
|
|
8170
|
-
var
|
|
8143
|
+
var import_provider26 = require("@ai-sdk/provider");
|
|
8171
8144
|
var CHUNKING_REGEXPS = {
|
|
8172
8145
|
word: /\S+\s+/m,
|
|
8173
8146
|
line: /\n+/m
|
|
@@ -8197,7 +8170,7 @@ function smoothStream({
|
|
|
8197
8170
|
} else {
|
|
8198
8171
|
const chunkingRegex = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking;
|
|
8199
8172
|
if (chunkingRegex == null) {
|
|
8200
|
-
throw new
|
|
8173
|
+
throw new import_provider26.InvalidArgumentError({
|
|
8201
8174
|
argument: "chunking",
|
|
8202
8175
|
message: `Chunking must be "word" or "line" or a RegExp. Received: ${chunking}`
|
|
8203
8176
|
});
|
|
@@ -8514,7 +8487,7 @@ var doWrap = ({
|
|
|
8514
8487
|
modelId,
|
|
8515
8488
|
providerId
|
|
8516
8489
|
}) => {
|
|
8517
|
-
var
|
|
8490
|
+
var _a16, _b, _c;
|
|
8518
8491
|
async function doTransform({
|
|
8519
8492
|
params,
|
|
8520
8493
|
type
|
|
@@ -8523,7 +8496,7 @@ var doWrap = ({
|
|
|
8523
8496
|
}
|
|
8524
8497
|
return {
|
|
8525
8498
|
specificationVersion: "v2",
|
|
8526
|
-
provider: (
|
|
8499
|
+
provider: (_a16 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a16 : model.provider,
|
|
8527
8500
|
modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
|
|
8528
8501
|
supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
|
|
8529
8502
|
async doGenerate(params) {
|
|
@@ -8569,7 +8542,7 @@ function wrapProvider({
|
|
|
8569
8542
|
}
|
|
8570
8543
|
|
|
8571
8544
|
// src/registry/custom-provider.ts
|
|
8572
|
-
var
|
|
8545
|
+
var import_provider27 = require("@ai-sdk/provider");
|
|
8573
8546
|
function customProvider({
|
|
8574
8547
|
languageModels,
|
|
8575
8548
|
textEmbeddingModels,
|
|
@@ -8586,7 +8559,7 @@ function customProvider({
|
|
|
8586
8559
|
if (fallbackProvider) {
|
|
8587
8560
|
return fallbackProvider.languageModel(modelId);
|
|
8588
8561
|
}
|
|
8589
|
-
throw new
|
|
8562
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "languageModel" });
|
|
8590
8563
|
},
|
|
8591
8564
|
textEmbeddingModel(modelId) {
|
|
8592
8565
|
if (textEmbeddingModels != null && modelId in textEmbeddingModels) {
|
|
@@ -8595,7 +8568,7 @@ function customProvider({
|
|
|
8595
8568
|
if (fallbackProvider) {
|
|
8596
8569
|
return fallbackProvider.textEmbeddingModel(modelId);
|
|
8597
8570
|
}
|
|
8598
|
-
throw new
|
|
8571
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
|
|
8599
8572
|
},
|
|
8600
8573
|
imageModel(modelId) {
|
|
8601
8574
|
if (imageModels != null && modelId in imageModels) {
|
|
@@ -8604,7 +8577,7 @@ function customProvider({
|
|
|
8604
8577
|
if (fallbackProvider == null ? void 0 : fallbackProvider.imageModel) {
|
|
8605
8578
|
return fallbackProvider.imageModel(modelId);
|
|
8606
8579
|
}
|
|
8607
|
-
throw new
|
|
8580
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "imageModel" });
|
|
8608
8581
|
},
|
|
8609
8582
|
transcriptionModel(modelId) {
|
|
8610
8583
|
if (transcriptionModels != null && modelId in transcriptionModels) {
|
|
@@ -8613,7 +8586,7 @@ function customProvider({
|
|
|
8613
8586
|
if (fallbackProvider == null ? void 0 : fallbackProvider.transcriptionModel) {
|
|
8614
8587
|
return fallbackProvider.transcriptionModel(modelId);
|
|
8615
8588
|
}
|
|
8616
|
-
throw new
|
|
8589
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "transcriptionModel" });
|
|
8617
8590
|
},
|
|
8618
8591
|
speechModel(modelId) {
|
|
8619
8592
|
if (speechModels != null && modelId in speechModels) {
|
|
@@ -8622,19 +8595,19 @@ function customProvider({
|
|
|
8622
8595
|
if (fallbackProvider == null ? void 0 : fallbackProvider.speechModel) {
|
|
8623
8596
|
return fallbackProvider.speechModel(modelId);
|
|
8624
8597
|
}
|
|
8625
|
-
throw new
|
|
8598
|
+
throw new import_provider27.NoSuchModelError({ modelId, modelType: "speechModel" });
|
|
8626
8599
|
}
|
|
8627
8600
|
};
|
|
8628
8601
|
}
|
|
8629
8602
|
var experimental_customProvider = customProvider;
|
|
8630
8603
|
|
|
8631
8604
|
// src/registry/no-such-provider-error.ts
|
|
8632
|
-
var
|
|
8633
|
-
var
|
|
8634
|
-
var
|
|
8635
|
-
var
|
|
8636
|
-
var
|
|
8637
|
-
var NoSuchProviderError = class extends
|
|
8605
|
+
var import_provider28 = require("@ai-sdk/provider");
|
|
8606
|
+
var name15 = "AI_NoSuchProviderError";
|
|
8607
|
+
var marker15 = `vercel.ai.error.${name15}`;
|
|
8608
|
+
var symbol15 = Symbol.for(marker15);
|
|
8609
|
+
var _a15;
|
|
8610
|
+
var NoSuchProviderError = class extends import_provider28.NoSuchModelError {
|
|
8638
8611
|
constructor({
|
|
8639
8612
|
modelId,
|
|
8640
8613
|
modelType,
|
|
@@ -8642,19 +8615,19 @@ var NoSuchProviderError = class extends import_provider29.NoSuchModelError {
|
|
|
8642
8615
|
availableProviders,
|
|
8643
8616
|
message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
|
|
8644
8617
|
}) {
|
|
8645
|
-
super({ errorName:
|
|
8646
|
-
this[
|
|
8618
|
+
super({ errorName: name15, modelId, modelType, message });
|
|
8619
|
+
this[_a15] = true;
|
|
8647
8620
|
this.providerId = providerId;
|
|
8648
8621
|
this.availableProviders = availableProviders;
|
|
8649
8622
|
}
|
|
8650
8623
|
static isInstance(error) {
|
|
8651
|
-
return
|
|
8624
|
+
return import_provider28.AISDKError.hasMarker(error, marker15);
|
|
8652
8625
|
}
|
|
8653
8626
|
};
|
|
8654
|
-
|
|
8627
|
+
_a15 = symbol15;
|
|
8655
8628
|
|
|
8656
8629
|
// src/registry/provider-registry.ts
|
|
8657
|
-
var
|
|
8630
|
+
var import_provider29 = require("@ai-sdk/provider");
|
|
8658
8631
|
function createProviderRegistry(providers, {
|
|
8659
8632
|
separator = ":",
|
|
8660
8633
|
languageModelMiddleware
|
|
@@ -8699,7 +8672,7 @@ var DefaultProviderRegistry = class {
|
|
|
8699
8672
|
splitId(id, modelType) {
|
|
8700
8673
|
const index = id.indexOf(this.separator);
|
|
8701
8674
|
if (index === -1) {
|
|
8702
|
-
throw new
|
|
8675
|
+
throw new import_provider29.NoSuchModelError({
|
|
8703
8676
|
modelId: id,
|
|
8704
8677
|
modelType,
|
|
8705
8678
|
message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId${this.separator}modelId")`
|
|
@@ -8708,14 +8681,14 @@ var DefaultProviderRegistry = class {
|
|
|
8708
8681
|
return [id.slice(0, index), id.slice(index + this.separator.length)];
|
|
8709
8682
|
}
|
|
8710
8683
|
languageModel(id) {
|
|
8711
|
-
var
|
|
8684
|
+
var _a16, _b;
|
|
8712
8685
|
const [providerId, modelId] = this.splitId(id, "languageModel");
|
|
8713
|
-
let model = (_b = (
|
|
8714
|
-
|
|
8686
|
+
let model = (_b = (_a16 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b.call(
|
|
8687
|
+
_a16,
|
|
8715
8688
|
modelId
|
|
8716
8689
|
);
|
|
8717
8690
|
if (model == null) {
|
|
8718
|
-
throw new
|
|
8691
|
+
throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "languageModel" });
|
|
8719
8692
|
}
|
|
8720
8693
|
if (this.languageModelMiddleware != null) {
|
|
8721
8694
|
model = wrapLanguageModel({
|
|
@@ -8726,12 +8699,12 @@ var DefaultProviderRegistry = class {
|
|
|
8726
8699
|
return model;
|
|
8727
8700
|
}
|
|
8728
8701
|
textEmbeddingModel(id) {
|
|
8729
|
-
var
|
|
8702
|
+
var _a16;
|
|
8730
8703
|
const [providerId, modelId] = this.splitId(id, "textEmbeddingModel");
|
|
8731
8704
|
const provider = this.getProvider(providerId, "textEmbeddingModel");
|
|
8732
|
-
const model = (
|
|
8705
|
+
const model = (_a16 = provider.textEmbeddingModel) == null ? void 0 : _a16.call(provider, modelId);
|
|
8733
8706
|
if (model == null) {
|
|
8734
|
-
throw new
|
|
8707
|
+
throw new import_provider29.NoSuchModelError({
|
|
8735
8708
|
modelId: id,
|
|
8736
8709
|
modelType: "textEmbeddingModel"
|
|
8737
8710
|
});
|
|
@@ -8739,22 +8712,22 @@ var DefaultProviderRegistry = class {
|
|
|
8739
8712
|
return model;
|
|
8740
8713
|
}
|
|
8741
8714
|
imageModel(id) {
|
|
8742
|
-
var
|
|
8715
|
+
var _a16;
|
|
8743
8716
|
const [providerId, modelId] = this.splitId(id, "imageModel");
|
|
8744
8717
|
const provider = this.getProvider(providerId, "imageModel");
|
|
8745
|
-
const model = (
|
|
8718
|
+
const model = (_a16 = provider.imageModel) == null ? void 0 : _a16.call(provider, modelId);
|
|
8746
8719
|
if (model == null) {
|
|
8747
|
-
throw new
|
|
8720
|
+
throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "imageModel" });
|
|
8748
8721
|
}
|
|
8749
8722
|
return model;
|
|
8750
8723
|
}
|
|
8751
8724
|
transcriptionModel(id) {
|
|
8752
|
-
var
|
|
8725
|
+
var _a16;
|
|
8753
8726
|
const [providerId, modelId] = this.splitId(id, "transcriptionModel");
|
|
8754
8727
|
const provider = this.getProvider(providerId, "transcriptionModel");
|
|
8755
|
-
const model = (
|
|
8728
|
+
const model = (_a16 = provider.transcriptionModel) == null ? void 0 : _a16.call(provider, modelId);
|
|
8756
8729
|
if (model == null) {
|
|
8757
|
-
throw new
|
|
8730
|
+
throw new import_provider29.NoSuchModelError({
|
|
8758
8731
|
modelId: id,
|
|
8759
8732
|
modelType: "transcriptionModel"
|
|
8760
8733
|
});
|
|
@@ -8762,600 +8735,23 @@ var DefaultProviderRegistry = class {
|
|
|
8762
8735
|
return model;
|
|
8763
8736
|
}
|
|
8764
8737
|
speechModel(id) {
|
|
8765
|
-
var
|
|
8738
|
+
var _a16;
|
|
8766
8739
|
const [providerId, modelId] = this.splitId(id, "speechModel");
|
|
8767
8740
|
const provider = this.getProvider(providerId, "speechModel");
|
|
8768
|
-
const model = (
|
|
8741
|
+
const model = (_a16 = provider.speechModel) == null ? void 0 : _a16.call(provider, modelId);
|
|
8769
8742
|
if (model == null) {
|
|
8770
|
-
throw new
|
|
8743
|
+
throw new import_provider29.NoSuchModelError({ modelId: id, modelType: "speechModel" });
|
|
8771
8744
|
}
|
|
8772
8745
|
return model;
|
|
8773
8746
|
}
|
|
8774
8747
|
};
|
|
8775
8748
|
|
|
8776
|
-
// src/tool/mcp/mcp-client.ts
|
|
8777
|
-
var import_provider_utils28 = require("@ai-sdk/provider-utils");
|
|
8778
|
-
|
|
8779
|
-
// src/tool/mcp/mcp-sse-transport.ts
|
|
8780
|
-
var import_provider_utils27 = require("@ai-sdk/provider-utils");
|
|
8781
|
-
|
|
8782
|
-
// src/tool/mcp/json-rpc-message.ts
|
|
8783
|
-
var import_v49 = require("zod/v4");
|
|
8784
|
-
|
|
8785
|
-
// src/tool/mcp/types.ts
|
|
8786
|
-
var import_v48 = require("zod/v4");
|
|
8787
|
-
var LATEST_PROTOCOL_VERSION = "2025-06-18";
|
|
8788
|
-
var SUPPORTED_PROTOCOL_VERSIONS = [
|
|
8789
|
-
LATEST_PROTOCOL_VERSION,
|
|
8790
|
-
"2025-03-26",
|
|
8791
|
-
"2024-11-05"
|
|
8792
|
-
];
|
|
8793
|
-
var ClientOrServerImplementationSchema = import_v48.z.looseObject({
|
|
8794
|
-
name: import_v48.z.string(),
|
|
8795
|
-
version: import_v48.z.string()
|
|
8796
|
-
});
|
|
8797
|
-
var BaseParamsSchema = import_v48.z.looseObject({
|
|
8798
|
-
_meta: import_v48.z.optional(import_v48.z.object({}).loose())
|
|
8799
|
-
});
|
|
8800
|
-
var ResultSchema = BaseParamsSchema;
|
|
8801
|
-
var RequestSchema = import_v48.z.object({
|
|
8802
|
-
method: import_v48.z.string(),
|
|
8803
|
-
params: import_v48.z.optional(BaseParamsSchema)
|
|
8804
|
-
});
|
|
8805
|
-
var ServerCapabilitiesSchema = import_v48.z.looseObject({
|
|
8806
|
-
experimental: import_v48.z.optional(import_v48.z.object({}).loose()),
|
|
8807
|
-
logging: import_v48.z.optional(import_v48.z.object({}).loose()),
|
|
8808
|
-
prompts: import_v48.z.optional(
|
|
8809
|
-
import_v48.z.looseObject({
|
|
8810
|
-
listChanged: import_v48.z.optional(import_v48.z.boolean())
|
|
8811
|
-
})
|
|
8812
|
-
),
|
|
8813
|
-
resources: import_v48.z.optional(
|
|
8814
|
-
import_v48.z.looseObject({
|
|
8815
|
-
subscribe: import_v48.z.optional(import_v48.z.boolean()),
|
|
8816
|
-
listChanged: import_v48.z.optional(import_v48.z.boolean())
|
|
8817
|
-
})
|
|
8818
|
-
),
|
|
8819
|
-
tools: import_v48.z.optional(
|
|
8820
|
-
import_v48.z.looseObject({
|
|
8821
|
-
listChanged: import_v48.z.optional(import_v48.z.boolean())
|
|
8822
|
-
})
|
|
8823
|
-
)
|
|
8824
|
-
});
|
|
8825
|
-
var InitializeResultSchema = ResultSchema.extend({
|
|
8826
|
-
protocolVersion: import_v48.z.string(),
|
|
8827
|
-
capabilities: ServerCapabilitiesSchema,
|
|
8828
|
-
serverInfo: ClientOrServerImplementationSchema,
|
|
8829
|
-
instructions: import_v48.z.optional(import_v48.z.string())
|
|
8830
|
-
});
|
|
8831
|
-
var PaginatedResultSchema = ResultSchema.extend({
|
|
8832
|
-
nextCursor: import_v48.z.optional(import_v48.z.string())
|
|
8833
|
-
});
|
|
8834
|
-
var ToolSchema = import_v48.z.object({
|
|
8835
|
-
name: import_v48.z.string(),
|
|
8836
|
-
description: import_v48.z.optional(import_v48.z.string()),
|
|
8837
|
-
inputSchema: import_v48.z.object({
|
|
8838
|
-
type: import_v48.z.literal("object"),
|
|
8839
|
-
properties: import_v48.z.optional(import_v48.z.object({}).loose())
|
|
8840
|
-
}).loose()
|
|
8841
|
-
}).loose();
|
|
8842
|
-
var ListToolsResultSchema = PaginatedResultSchema.extend({
|
|
8843
|
-
tools: import_v48.z.array(ToolSchema)
|
|
8844
|
-
});
|
|
8845
|
-
var TextContentSchema = import_v48.z.object({
|
|
8846
|
-
type: import_v48.z.literal("text"),
|
|
8847
|
-
text: import_v48.z.string()
|
|
8848
|
-
}).loose();
|
|
8849
|
-
var ImageContentSchema = import_v48.z.object({
|
|
8850
|
-
type: import_v48.z.literal("image"),
|
|
8851
|
-
data: import_v48.z.base64(),
|
|
8852
|
-
mimeType: import_v48.z.string()
|
|
8853
|
-
}).loose();
|
|
8854
|
-
var ResourceContentsSchema = import_v48.z.object({
|
|
8855
|
-
/**
|
|
8856
|
-
* The URI of this resource.
|
|
8857
|
-
*/
|
|
8858
|
-
uri: import_v48.z.string(),
|
|
8859
|
-
/**
|
|
8860
|
-
* The MIME type of this resource, if known.
|
|
8861
|
-
*/
|
|
8862
|
-
mimeType: import_v48.z.optional(import_v48.z.string())
|
|
8863
|
-
}).loose();
|
|
8864
|
-
var TextResourceContentsSchema = ResourceContentsSchema.extend({
|
|
8865
|
-
text: import_v48.z.string()
|
|
8866
|
-
});
|
|
8867
|
-
var BlobResourceContentsSchema = ResourceContentsSchema.extend({
|
|
8868
|
-
blob: import_v48.z.base64()
|
|
8869
|
-
});
|
|
8870
|
-
var EmbeddedResourceSchema = import_v48.z.object({
|
|
8871
|
-
type: import_v48.z.literal("resource"),
|
|
8872
|
-
resource: import_v48.z.union([TextResourceContentsSchema, BlobResourceContentsSchema])
|
|
8873
|
-
}).loose();
|
|
8874
|
-
var CallToolResultSchema = ResultSchema.extend({
|
|
8875
|
-
content: import_v48.z.array(
|
|
8876
|
-
import_v48.z.union([TextContentSchema, ImageContentSchema, EmbeddedResourceSchema])
|
|
8877
|
-
),
|
|
8878
|
-
isError: import_v48.z.boolean().default(false).optional()
|
|
8879
|
-
}).or(
|
|
8880
|
-
ResultSchema.extend({
|
|
8881
|
-
toolResult: import_v48.z.unknown()
|
|
8882
|
-
})
|
|
8883
|
-
);
|
|
8884
|
-
|
|
8885
|
-
// src/tool/mcp/json-rpc-message.ts
|
|
8886
|
-
var JSONRPC_VERSION = "2.0";
|
|
8887
|
-
var JSONRPCRequestSchema = import_v49.z.object({
|
|
8888
|
-
jsonrpc: import_v49.z.literal(JSONRPC_VERSION),
|
|
8889
|
-
id: import_v49.z.union([import_v49.z.string(), import_v49.z.number().int()])
|
|
8890
|
-
}).merge(RequestSchema).strict();
|
|
8891
|
-
var JSONRPCResponseSchema = import_v49.z.object({
|
|
8892
|
-
jsonrpc: import_v49.z.literal(JSONRPC_VERSION),
|
|
8893
|
-
id: import_v49.z.union([import_v49.z.string(), import_v49.z.number().int()]),
|
|
8894
|
-
result: ResultSchema
|
|
8895
|
-
}).strict();
|
|
8896
|
-
var JSONRPCErrorSchema = import_v49.z.object({
|
|
8897
|
-
jsonrpc: import_v49.z.literal(JSONRPC_VERSION),
|
|
8898
|
-
id: import_v49.z.union([import_v49.z.string(), import_v49.z.number().int()]),
|
|
8899
|
-
error: import_v49.z.object({
|
|
8900
|
-
code: import_v49.z.number().int(),
|
|
8901
|
-
message: import_v49.z.string(),
|
|
8902
|
-
data: import_v49.z.optional(import_v49.z.unknown())
|
|
8903
|
-
})
|
|
8904
|
-
}).strict();
|
|
8905
|
-
var JSONRPCNotificationSchema = import_v49.z.object({
|
|
8906
|
-
jsonrpc: import_v49.z.literal(JSONRPC_VERSION)
|
|
8907
|
-
}).merge(
|
|
8908
|
-
import_v49.z.object({
|
|
8909
|
-
method: import_v49.z.string(),
|
|
8910
|
-
params: import_v49.z.optional(BaseParamsSchema)
|
|
8911
|
-
})
|
|
8912
|
-
).strict();
|
|
8913
|
-
var JSONRPCMessageSchema = import_v49.z.union([
|
|
8914
|
-
JSONRPCRequestSchema,
|
|
8915
|
-
JSONRPCNotificationSchema,
|
|
8916
|
-
JSONRPCResponseSchema,
|
|
8917
|
-
JSONRPCErrorSchema
|
|
8918
|
-
]);
|
|
8919
|
-
|
|
8920
|
-
// src/tool/mcp/mcp-sse-transport.ts
|
|
8921
|
-
var SseMCPTransport = class {
|
|
8922
|
-
constructor({
|
|
8923
|
-
url,
|
|
8924
|
-
headers
|
|
8925
|
-
}) {
|
|
8926
|
-
this.connected = false;
|
|
8927
|
-
this.url = new URL(url);
|
|
8928
|
-
this.headers = headers;
|
|
8929
|
-
}
|
|
8930
|
-
async start() {
|
|
8931
|
-
return new Promise((resolve2, reject) => {
|
|
8932
|
-
if (this.connected) {
|
|
8933
|
-
return resolve2();
|
|
8934
|
-
}
|
|
8935
|
-
this.abortController = new AbortController();
|
|
8936
|
-
const establishConnection = async () => {
|
|
8937
|
-
var _a17, _b, _c;
|
|
8938
|
-
try {
|
|
8939
|
-
const headers = (0, import_provider_utils27.withUserAgentSuffix)(
|
|
8940
|
-
{
|
|
8941
|
-
...this.headers,
|
|
8942
|
-
Accept: "text/event-stream"
|
|
8943
|
-
},
|
|
8944
|
-
`ai-sdk/${VERSION}`,
|
|
8945
|
-
(0, import_provider_utils27.getRuntimeEnvironmentUserAgent)()
|
|
8946
|
-
);
|
|
8947
|
-
const response = await fetch(this.url.href, {
|
|
8948
|
-
headers,
|
|
8949
|
-
signal: (_a17 = this.abortController) == null ? void 0 : _a17.signal
|
|
8950
|
-
});
|
|
8951
|
-
if (!response.ok || !response.body) {
|
|
8952
|
-
const error = new MCPClientError({
|
|
8953
|
-
message: `MCP SSE Transport Error: ${response.status} ${response.statusText}`
|
|
8954
|
-
});
|
|
8955
|
-
(_b = this.onerror) == null ? void 0 : _b.call(this, error);
|
|
8956
|
-
return reject(error);
|
|
8957
|
-
}
|
|
8958
|
-
const stream = response.body.pipeThrough(new TextDecoderStream()).pipeThrough(new import_provider_utils27.EventSourceParserStream());
|
|
8959
|
-
const reader = stream.getReader();
|
|
8960
|
-
const processEvents = async () => {
|
|
8961
|
-
var _a18, _b2, _c2;
|
|
8962
|
-
try {
|
|
8963
|
-
while (true) {
|
|
8964
|
-
const { done, value } = await reader.read();
|
|
8965
|
-
if (done) {
|
|
8966
|
-
if (this.connected) {
|
|
8967
|
-
this.connected = false;
|
|
8968
|
-
throw new MCPClientError({
|
|
8969
|
-
message: "MCP SSE Transport Error: Connection closed unexpectedly"
|
|
8970
|
-
});
|
|
8971
|
-
}
|
|
8972
|
-
return;
|
|
8973
|
-
}
|
|
8974
|
-
const { event, data } = value;
|
|
8975
|
-
if (event === "endpoint") {
|
|
8976
|
-
this.endpoint = new URL(data, this.url);
|
|
8977
|
-
if (this.endpoint.origin !== this.url.origin) {
|
|
8978
|
-
throw new MCPClientError({
|
|
8979
|
-
message: `MCP SSE Transport Error: Endpoint origin does not match connection origin: ${this.endpoint.origin}`
|
|
8980
|
-
});
|
|
8981
|
-
}
|
|
8982
|
-
this.connected = true;
|
|
8983
|
-
resolve2();
|
|
8984
|
-
} else if (event === "message") {
|
|
8985
|
-
try {
|
|
8986
|
-
const message = JSONRPCMessageSchema.parse(
|
|
8987
|
-
JSON.parse(data)
|
|
8988
|
-
);
|
|
8989
|
-
(_a18 = this.onmessage) == null ? void 0 : _a18.call(this, message);
|
|
8990
|
-
} catch (error) {
|
|
8991
|
-
const e = new MCPClientError({
|
|
8992
|
-
message: "MCP SSE Transport Error: Failed to parse message",
|
|
8993
|
-
cause: error
|
|
8994
|
-
});
|
|
8995
|
-
(_b2 = this.onerror) == null ? void 0 : _b2.call(this, e);
|
|
8996
|
-
}
|
|
8997
|
-
}
|
|
8998
|
-
}
|
|
8999
|
-
} catch (error) {
|
|
9000
|
-
if (error instanceof Error && error.name === "AbortError") {
|
|
9001
|
-
return;
|
|
9002
|
-
}
|
|
9003
|
-
(_c2 = this.onerror) == null ? void 0 : _c2.call(this, error);
|
|
9004
|
-
reject(error);
|
|
9005
|
-
}
|
|
9006
|
-
};
|
|
9007
|
-
this.sseConnection = {
|
|
9008
|
-
close: () => reader.cancel()
|
|
9009
|
-
};
|
|
9010
|
-
processEvents();
|
|
9011
|
-
} catch (error) {
|
|
9012
|
-
if (error instanceof Error && error.name === "AbortError") {
|
|
9013
|
-
return;
|
|
9014
|
-
}
|
|
9015
|
-
(_c = this.onerror) == null ? void 0 : _c.call(this, error);
|
|
9016
|
-
reject(error);
|
|
9017
|
-
}
|
|
9018
|
-
};
|
|
9019
|
-
establishConnection();
|
|
9020
|
-
});
|
|
9021
|
-
}
|
|
9022
|
-
async close() {
|
|
9023
|
-
var _a17, _b, _c;
|
|
9024
|
-
this.connected = false;
|
|
9025
|
-
(_a17 = this.sseConnection) == null ? void 0 : _a17.close();
|
|
9026
|
-
(_b = this.abortController) == null ? void 0 : _b.abort();
|
|
9027
|
-
(_c = this.onclose) == null ? void 0 : _c.call(this);
|
|
9028
|
-
}
|
|
9029
|
-
async send(message) {
|
|
9030
|
-
var _a17, _b, _c;
|
|
9031
|
-
if (!this.endpoint || !this.connected) {
|
|
9032
|
-
throw new MCPClientError({
|
|
9033
|
-
message: "MCP SSE Transport Error: Not connected"
|
|
9034
|
-
});
|
|
9035
|
-
}
|
|
9036
|
-
try {
|
|
9037
|
-
const headers = (0, import_provider_utils27.withUserAgentSuffix)(
|
|
9038
|
-
{
|
|
9039
|
-
...this.headers,
|
|
9040
|
-
"Content-Type": "application/json"
|
|
9041
|
-
},
|
|
9042
|
-
`ai-sdk/${VERSION}`,
|
|
9043
|
-
(0, import_provider_utils27.getRuntimeEnvironmentUserAgent)()
|
|
9044
|
-
);
|
|
9045
|
-
const init = {
|
|
9046
|
-
method: "POST",
|
|
9047
|
-
headers,
|
|
9048
|
-
body: JSON.stringify(message),
|
|
9049
|
-
signal: (_a17 = this.abortController) == null ? void 0 : _a17.signal
|
|
9050
|
-
};
|
|
9051
|
-
const response = await fetch(this.endpoint, init);
|
|
9052
|
-
if (!response.ok) {
|
|
9053
|
-
const text2 = await response.text().catch(() => null);
|
|
9054
|
-
const error = new MCPClientError({
|
|
9055
|
-
message: `MCP SSE Transport Error: POSTing to endpoint (HTTP ${response.status}): ${text2}`
|
|
9056
|
-
});
|
|
9057
|
-
(_b = this.onerror) == null ? void 0 : _b.call(this, error);
|
|
9058
|
-
return;
|
|
9059
|
-
}
|
|
9060
|
-
} catch (error) {
|
|
9061
|
-
(_c = this.onerror) == null ? void 0 : _c.call(this, error);
|
|
9062
|
-
return;
|
|
9063
|
-
}
|
|
9064
|
-
}
|
|
9065
|
-
};
|
|
9066
|
-
|
|
9067
|
-
// src/tool/mcp/mcp-transport.ts
|
|
9068
|
-
function createMcpTransport(config) {
|
|
9069
|
-
if (config.type !== "sse") {
|
|
9070
|
-
throw new MCPClientError({
|
|
9071
|
-
message: "Unsupported or invalid transport configuration. If you are using a custom transport, make sure it implements the MCPTransport interface."
|
|
9072
|
-
});
|
|
9073
|
-
}
|
|
9074
|
-
return new SseMCPTransport(config);
|
|
9075
|
-
}
|
|
9076
|
-
function isCustomMcpTransport(transport) {
|
|
9077
|
-
return "start" in transport && typeof transport.start === "function" && "send" in transport && typeof transport.send === "function" && "close" in transport && typeof transport.close === "function";
|
|
9078
|
-
}
|
|
9079
|
-
|
|
9080
|
-
// src/tool/mcp/mcp-client.ts
|
|
9081
|
-
var CLIENT_VERSION = "1.0.0";
|
|
9082
|
-
async function createMCPClient(config) {
|
|
9083
|
-
const client = new DefaultMCPClient(config);
|
|
9084
|
-
await client.init();
|
|
9085
|
-
return client;
|
|
9086
|
-
}
|
|
9087
|
-
var DefaultMCPClient = class {
|
|
9088
|
-
constructor({
|
|
9089
|
-
transport: transportConfig,
|
|
9090
|
-
name: name17 = "ai-sdk-mcp-client",
|
|
9091
|
-
onUncaughtError
|
|
9092
|
-
}) {
|
|
9093
|
-
this.requestMessageId = 0;
|
|
9094
|
-
this.responseHandlers = /* @__PURE__ */ new Map();
|
|
9095
|
-
this.serverCapabilities = {};
|
|
9096
|
-
this.isClosed = true;
|
|
9097
|
-
this.onUncaughtError = onUncaughtError;
|
|
9098
|
-
if (isCustomMcpTransport(transportConfig)) {
|
|
9099
|
-
this.transport = transportConfig;
|
|
9100
|
-
} else {
|
|
9101
|
-
this.transport = createMcpTransport(transportConfig);
|
|
9102
|
-
}
|
|
9103
|
-
this.transport.onclose = () => this.onClose();
|
|
9104
|
-
this.transport.onerror = (error) => this.onError(error);
|
|
9105
|
-
this.transport.onmessage = (message) => {
|
|
9106
|
-
if ("method" in message) {
|
|
9107
|
-
this.onError(
|
|
9108
|
-
new MCPClientError({
|
|
9109
|
-
message: "Unsupported message type"
|
|
9110
|
-
})
|
|
9111
|
-
);
|
|
9112
|
-
return;
|
|
9113
|
-
}
|
|
9114
|
-
this.onResponse(message);
|
|
9115
|
-
};
|
|
9116
|
-
this.clientInfo = {
|
|
9117
|
-
name: name17,
|
|
9118
|
-
version: CLIENT_VERSION
|
|
9119
|
-
};
|
|
9120
|
-
}
|
|
9121
|
-
async init() {
|
|
9122
|
-
try {
|
|
9123
|
-
await this.transport.start();
|
|
9124
|
-
this.isClosed = false;
|
|
9125
|
-
const result = await this.request({
|
|
9126
|
-
request: {
|
|
9127
|
-
method: "initialize",
|
|
9128
|
-
params: {
|
|
9129
|
-
protocolVersion: LATEST_PROTOCOL_VERSION,
|
|
9130
|
-
capabilities: {},
|
|
9131
|
-
clientInfo: this.clientInfo
|
|
9132
|
-
}
|
|
9133
|
-
},
|
|
9134
|
-
resultSchema: InitializeResultSchema
|
|
9135
|
-
});
|
|
9136
|
-
if (result === void 0) {
|
|
9137
|
-
throw new MCPClientError({
|
|
9138
|
-
message: "Server sent invalid initialize result"
|
|
9139
|
-
});
|
|
9140
|
-
}
|
|
9141
|
-
if (!SUPPORTED_PROTOCOL_VERSIONS.includes(result.protocolVersion)) {
|
|
9142
|
-
throw new MCPClientError({
|
|
9143
|
-
message: `Server's protocol version is not supported: ${result.protocolVersion}`
|
|
9144
|
-
});
|
|
9145
|
-
}
|
|
9146
|
-
this.serverCapabilities = result.capabilities;
|
|
9147
|
-
await this.notification({
|
|
9148
|
-
method: "notifications/initialized"
|
|
9149
|
-
});
|
|
9150
|
-
return this;
|
|
9151
|
-
} catch (error) {
|
|
9152
|
-
await this.close();
|
|
9153
|
-
throw error;
|
|
9154
|
-
}
|
|
9155
|
-
}
|
|
9156
|
-
async close() {
|
|
9157
|
-
var _a17;
|
|
9158
|
-
if (this.isClosed)
|
|
9159
|
-
return;
|
|
9160
|
-
await ((_a17 = this.transport) == null ? void 0 : _a17.close());
|
|
9161
|
-
this.onClose();
|
|
9162
|
-
}
|
|
9163
|
-
assertCapability(method) {
|
|
9164
|
-
switch (method) {
|
|
9165
|
-
case "initialize":
|
|
9166
|
-
break;
|
|
9167
|
-
case "tools/list":
|
|
9168
|
-
case "tools/call":
|
|
9169
|
-
if (!this.serverCapabilities.tools) {
|
|
9170
|
-
throw new MCPClientError({
|
|
9171
|
-
message: `Server does not support tools`
|
|
9172
|
-
});
|
|
9173
|
-
}
|
|
9174
|
-
break;
|
|
9175
|
-
default:
|
|
9176
|
-
throw new MCPClientError({
|
|
9177
|
-
message: `Unsupported method: ${method}`
|
|
9178
|
-
});
|
|
9179
|
-
}
|
|
9180
|
-
}
|
|
9181
|
-
async request({
|
|
9182
|
-
request,
|
|
9183
|
-
resultSchema,
|
|
9184
|
-
options
|
|
9185
|
-
}) {
|
|
9186
|
-
return new Promise((resolve2, reject) => {
|
|
9187
|
-
if (this.isClosed) {
|
|
9188
|
-
return reject(
|
|
9189
|
-
new MCPClientError({
|
|
9190
|
-
message: "Attempted to send a request from a closed client"
|
|
9191
|
-
})
|
|
9192
|
-
);
|
|
9193
|
-
}
|
|
9194
|
-
this.assertCapability(request.method);
|
|
9195
|
-
const signal = options == null ? void 0 : options.signal;
|
|
9196
|
-
signal == null ? void 0 : signal.throwIfAborted();
|
|
9197
|
-
const messageId = this.requestMessageId++;
|
|
9198
|
-
const jsonrpcRequest = {
|
|
9199
|
-
...request,
|
|
9200
|
-
jsonrpc: "2.0",
|
|
9201
|
-
id: messageId
|
|
9202
|
-
};
|
|
9203
|
-
const cleanup = () => {
|
|
9204
|
-
this.responseHandlers.delete(messageId);
|
|
9205
|
-
};
|
|
9206
|
-
this.responseHandlers.set(messageId, (response) => {
|
|
9207
|
-
if (signal == null ? void 0 : signal.aborted) {
|
|
9208
|
-
return reject(
|
|
9209
|
-
new MCPClientError({
|
|
9210
|
-
message: "Request was aborted",
|
|
9211
|
-
cause: signal.reason
|
|
9212
|
-
})
|
|
9213
|
-
);
|
|
9214
|
-
}
|
|
9215
|
-
if (response instanceof Error) {
|
|
9216
|
-
return reject(response);
|
|
9217
|
-
}
|
|
9218
|
-
try {
|
|
9219
|
-
const result = resultSchema.parse(response.result);
|
|
9220
|
-
resolve2(result);
|
|
9221
|
-
} catch (error) {
|
|
9222
|
-
const parseError = new MCPClientError({
|
|
9223
|
-
message: "Failed to parse server response",
|
|
9224
|
-
cause: error
|
|
9225
|
-
});
|
|
9226
|
-
reject(parseError);
|
|
9227
|
-
}
|
|
9228
|
-
});
|
|
9229
|
-
this.transport.send(jsonrpcRequest).catch((error) => {
|
|
9230
|
-
cleanup();
|
|
9231
|
-
reject(error);
|
|
9232
|
-
});
|
|
9233
|
-
});
|
|
9234
|
-
}
|
|
9235
|
-
async listTools({
|
|
9236
|
-
params,
|
|
9237
|
-
options
|
|
9238
|
-
} = {}) {
|
|
9239
|
-
try {
|
|
9240
|
-
return this.request({
|
|
9241
|
-
request: { method: "tools/list", params },
|
|
9242
|
-
resultSchema: ListToolsResultSchema,
|
|
9243
|
-
options
|
|
9244
|
-
});
|
|
9245
|
-
} catch (error) {
|
|
9246
|
-
throw error;
|
|
9247
|
-
}
|
|
9248
|
-
}
|
|
9249
|
-
async callTool({
|
|
9250
|
-
name: name17,
|
|
9251
|
-
args,
|
|
9252
|
-
options
|
|
9253
|
-
}) {
|
|
9254
|
-
try {
|
|
9255
|
-
return this.request({
|
|
9256
|
-
request: { method: "tools/call", params: { name: name17, arguments: args } },
|
|
9257
|
-
resultSchema: CallToolResultSchema,
|
|
9258
|
-
options: {
|
|
9259
|
-
signal: options == null ? void 0 : options.abortSignal
|
|
9260
|
-
}
|
|
9261
|
-
});
|
|
9262
|
-
} catch (error) {
|
|
9263
|
-
throw error;
|
|
9264
|
-
}
|
|
9265
|
-
}
|
|
9266
|
-
async notification(notification) {
|
|
9267
|
-
const jsonrpcNotification = {
|
|
9268
|
-
...notification,
|
|
9269
|
-
jsonrpc: "2.0"
|
|
9270
|
-
};
|
|
9271
|
-
await this.transport.send(jsonrpcNotification);
|
|
9272
|
-
}
|
|
9273
|
-
/**
|
|
9274
|
-
* Returns a set of AI SDK tools from the MCP server
|
|
9275
|
-
* @returns A record of tool names to their implementations
|
|
9276
|
-
*/
|
|
9277
|
-
async tools({
|
|
9278
|
-
schemas = "automatic"
|
|
9279
|
-
} = {}) {
|
|
9280
|
-
var _a17;
|
|
9281
|
-
const tools = {};
|
|
9282
|
-
try {
|
|
9283
|
-
const listToolsResult = await this.listTools();
|
|
9284
|
-
for (const { name: name17, description, inputSchema } of listToolsResult.tools) {
|
|
9285
|
-
if (schemas !== "automatic" && !(name17 in schemas)) {
|
|
9286
|
-
continue;
|
|
9287
|
-
}
|
|
9288
|
-
const self = this;
|
|
9289
|
-
const execute = async (args, options) => {
|
|
9290
|
-
var _a18;
|
|
9291
|
-
(_a18 = options == null ? void 0 : options.abortSignal) == null ? void 0 : _a18.throwIfAborted();
|
|
9292
|
-
return self.callTool({ name: name17, args, options });
|
|
9293
|
-
};
|
|
9294
|
-
const toolWithExecute = schemas === "automatic" ? (0, import_provider_utils28.dynamicTool)({
|
|
9295
|
-
description,
|
|
9296
|
-
inputSchema: (0, import_provider_utils28.jsonSchema)({
|
|
9297
|
-
...inputSchema,
|
|
9298
|
-
properties: (_a17 = inputSchema.properties) != null ? _a17 : {},
|
|
9299
|
-
additionalProperties: false
|
|
9300
|
-
}),
|
|
9301
|
-
execute
|
|
9302
|
-
}) : (0, import_provider_utils28.tool)({
|
|
9303
|
-
description,
|
|
9304
|
-
inputSchema: schemas[name17].inputSchema,
|
|
9305
|
-
execute
|
|
9306
|
-
});
|
|
9307
|
-
tools[name17] = toolWithExecute;
|
|
9308
|
-
}
|
|
9309
|
-
return tools;
|
|
9310
|
-
} catch (error) {
|
|
9311
|
-
throw error;
|
|
9312
|
-
}
|
|
9313
|
-
}
|
|
9314
|
-
onClose() {
|
|
9315
|
-
if (this.isClosed)
|
|
9316
|
-
return;
|
|
9317
|
-
this.isClosed = true;
|
|
9318
|
-
const error = new MCPClientError({
|
|
9319
|
-
message: "Connection closed"
|
|
9320
|
-
});
|
|
9321
|
-
for (const handler of this.responseHandlers.values()) {
|
|
9322
|
-
handler(error);
|
|
9323
|
-
}
|
|
9324
|
-
this.responseHandlers.clear();
|
|
9325
|
-
}
|
|
9326
|
-
onError(error) {
|
|
9327
|
-
if (this.onUncaughtError) {
|
|
9328
|
-
this.onUncaughtError(error);
|
|
9329
|
-
}
|
|
9330
|
-
}
|
|
9331
|
-
onResponse(response) {
|
|
9332
|
-
const messageId = Number(response.id);
|
|
9333
|
-
const handler = this.responseHandlers.get(messageId);
|
|
9334
|
-
if (handler === void 0) {
|
|
9335
|
-
throw new MCPClientError({
|
|
9336
|
-
message: `Protocol error: Received a response for an unknown message ID: ${JSON.stringify(
|
|
9337
|
-
response
|
|
9338
|
-
)}`
|
|
9339
|
-
});
|
|
9340
|
-
}
|
|
9341
|
-
this.responseHandlers.delete(messageId);
|
|
9342
|
-
handler(
|
|
9343
|
-
"result" in response ? response : new MCPClientError({
|
|
9344
|
-
message: response.error.message,
|
|
9345
|
-
code: response.error.code,
|
|
9346
|
-
data: response.error.data,
|
|
9347
|
-
cause: response.error
|
|
9348
|
-
})
|
|
9349
|
-
);
|
|
9350
|
-
}
|
|
9351
|
-
};
|
|
9352
|
-
|
|
9353
8749
|
// src/transcribe/transcribe.ts
|
|
9354
|
-
var
|
|
8750
|
+
var import_provider_utils27 = require("@ai-sdk/provider-utils");
|
|
9355
8751
|
|
|
9356
8752
|
// src/error/no-transcript-generated-error.ts
|
|
9357
|
-
var
|
|
9358
|
-
var NoTranscriptGeneratedError = class extends
|
|
8753
|
+
var import_provider30 = require("@ai-sdk/provider");
|
|
8754
|
+
var NoTranscriptGeneratedError = class extends import_provider30.AISDKError {
|
|
9359
8755
|
constructor(options) {
|
|
9360
8756
|
super({
|
|
9361
8757
|
name: "AI_NoTranscriptGeneratedError",
|
|
@@ -9385,23 +8781,23 @@ async function transcribe({
|
|
|
9385
8781
|
maxRetries: maxRetriesArg,
|
|
9386
8782
|
abortSignal
|
|
9387
8783
|
});
|
|
9388
|
-
const headersWithUserAgent = (0,
|
|
8784
|
+
const headersWithUserAgent = (0, import_provider_utils27.withUserAgentSuffix)(
|
|
9389
8785
|
headers != null ? headers : {},
|
|
9390
8786
|
`ai/${VERSION}`
|
|
9391
8787
|
);
|
|
9392
8788
|
const audioData = audio instanceof URL ? (await download({ url: audio })).data : convertDataContentToUint8Array(audio);
|
|
9393
8789
|
const result = await retry(
|
|
9394
8790
|
() => {
|
|
9395
|
-
var
|
|
8791
|
+
var _a16;
|
|
9396
8792
|
return model.doGenerate({
|
|
9397
8793
|
audio: audioData,
|
|
9398
8794
|
abortSignal,
|
|
9399
8795
|
headers: headersWithUserAgent,
|
|
9400
8796
|
providerOptions,
|
|
9401
|
-
mediaType: (
|
|
8797
|
+
mediaType: (_a16 = detectMediaType({
|
|
9402
8798
|
data: audioData,
|
|
9403
8799
|
signatures: audioMediaTypeSignatures
|
|
9404
|
-
})) != null ?
|
|
8800
|
+
})) != null ? _a16 : "audio/wav"
|
|
9405
8801
|
});
|
|
9406
8802
|
}
|
|
9407
8803
|
);
|
|
@@ -9421,19 +8817,19 @@ async function transcribe({
|
|
|
9421
8817
|
}
|
|
9422
8818
|
var DefaultTranscriptionResult = class {
|
|
9423
8819
|
constructor(options) {
|
|
9424
|
-
var
|
|
8820
|
+
var _a16;
|
|
9425
8821
|
this.text = options.text;
|
|
9426
8822
|
this.segments = options.segments;
|
|
9427
8823
|
this.language = options.language;
|
|
9428
8824
|
this.durationInSeconds = options.durationInSeconds;
|
|
9429
8825
|
this.warnings = options.warnings;
|
|
9430
8826
|
this.responses = options.responses;
|
|
9431
|
-
this.providerMetadata = (
|
|
8827
|
+
this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};
|
|
9432
8828
|
}
|
|
9433
8829
|
};
|
|
9434
8830
|
|
|
9435
8831
|
// src/ui/call-completion-api.ts
|
|
9436
|
-
var
|
|
8832
|
+
var import_provider_utils28 = require("@ai-sdk/provider-utils");
|
|
9437
8833
|
|
|
9438
8834
|
// src/ui/process-text-stream.ts
|
|
9439
8835
|
async function processTextStream({
|
|
@@ -9467,7 +8863,7 @@ async function callCompletionApi({
|
|
|
9467
8863
|
onError,
|
|
9468
8864
|
fetch: fetch2 = getOriginalFetch()
|
|
9469
8865
|
}) {
|
|
9470
|
-
var
|
|
8866
|
+
var _a16;
|
|
9471
8867
|
try {
|
|
9472
8868
|
setLoading(true);
|
|
9473
8869
|
setError(void 0);
|
|
@@ -9481,13 +8877,13 @@ async function callCompletionApi({
|
|
|
9481
8877
|
...body
|
|
9482
8878
|
}),
|
|
9483
8879
|
credentials,
|
|
9484
|
-
headers: (0,
|
|
8880
|
+
headers: (0, import_provider_utils28.withUserAgentSuffix)(
|
|
9485
8881
|
{
|
|
9486
8882
|
"Content-Type": "application/json",
|
|
9487
8883
|
...headers
|
|
9488
8884
|
},
|
|
9489
8885
|
`ai-sdk/${VERSION}`,
|
|
9490
|
-
(0,
|
|
8886
|
+
(0, import_provider_utils28.getRuntimeEnvironmentUserAgent)()
|
|
9491
8887
|
),
|
|
9492
8888
|
signal: abortController.signal
|
|
9493
8889
|
}).catch((err) => {
|
|
@@ -9495,7 +8891,7 @@ async function callCompletionApi({
|
|
|
9495
8891
|
});
|
|
9496
8892
|
if (!response.ok) {
|
|
9497
8893
|
throw new Error(
|
|
9498
|
-
(
|
|
8894
|
+
(_a16 = await response.text()) != null ? _a16 : "Failed to fetch the chat response."
|
|
9499
8895
|
);
|
|
9500
8896
|
}
|
|
9501
8897
|
if (!response.body) {
|
|
@@ -9515,7 +8911,7 @@ async function callCompletionApi({
|
|
|
9515
8911
|
}
|
|
9516
8912
|
case "data": {
|
|
9517
8913
|
await consumeStream({
|
|
9518
|
-
stream: (0,
|
|
8914
|
+
stream: (0, import_provider_utils28.parseJsonEventStream)({
|
|
9519
8915
|
stream: response.body,
|
|
9520
8916
|
schema: uiMessageChunkSchema
|
|
9521
8917
|
}).pipeThrough(
|
|
@@ -9567,7 +8963,7 @@ async function callCompletionApi({
|
|
|
9567
8963
|
}
|
|
9568
8964
|
|
|
9569
8965
|
// src/ui/chat.ts
|
|
9570
|
-
var
|
|
8966
|
+
var import_provider_utils31 = require("@ai-sdk/provider-utils");
|
|
9571
8967
|
|
|
9572
8968
|
// src/ui/convert-file-list-to-file-ui-parts.ts
|
|
9573
8969
|
async function convertFileListToFileUIParts(files) {
|
|
@@ -9579,12 +8975,12 @@ async function convertFileListToFileUIParts(files) {
|
|
|
9579
8975
|
}
|
|
9580
8976
|
return Promise.all(
|
|
9581
8977
|
Array.from(files).map(async (file) => {
|
|
9582
|
-
const { name:
|
|
8978
|
+
const { name: name16, type } = file;
|
|
9583
8979
|
const dataUrl = await new Promise((resolve2, reject) => {
|
|
9584
8980
|
const reader = new FileReader();
|
|
9585
8981
|
reader.onload = (readerEvent) => {
|
|
9586
|
-
var
|
|
9587
|
-
resolve2((
|
|
8982
|
+
var _a16;
|
|
8983
|
+
resolve2((_a16 = readerEvent.target) == null ? void 0 : _a16.result);
|
|
9588
8984
|
};
|
|
9589
8985
|
reader.onerror = (error) => reject(error);
|
|
9590
8986
|
reader.readAsDataURL(file);
|
|
@@ -9592,7 +8988,7 @@ async function convertFileListToFileUIParts(files) {
|
|
|
9592
8988
|
return {
|
|
9593
8989
|
type: "file",
|
|
9594
8990
|
mediaType: type,
|
|
9595
|
-
filename:
|
|
8991
|
+
filename: name16,
|
|
9596
8992
|
url: dataUrl
|
|
9597
8993
|
};
|
|
9598
8994
|
})
|
|
@@ -9600,10 +8996,10 @@ async function convertFileListToFileUIParts(files) {
|
|
|
9600
8996
|
}
|
|
9601
8997
|
|
|
9602
8998
|
// src/ui/default-chat-transport.ts
|
|
9603
|
-
var
|
|
8999
|
+
var import_provider_utils30 = require("@ai-sdk/provider-utils");
|
|
9604
9000
|
|
|
9605
9001
|
// src/ui/http-chat-transport.ts
|
|
9606
|
-
var
|
|
9002
|
+
var import_provider_utils29 = require("@ai-sdk/provider-utils");
|
|
9607
9003
|
var HttpChatTransport = class {
|
|
9608
9004
|
constructor({
|
|
9609
9005
|
api = "/api/chat",
|
|
@@ -9626,11 +9022,11 @@ var HttpChatTransport = class {
|
|
|
9626
9022
|
abortSignal,
|
|
9627
9023
|
...options
|
|
9628
9024
|
}) {
|
|
9629
|
-
var
|
|
9630
|
-
const resolvedBody = await (0,
|
|
9631
|
-
const resolvedHeaders = await (0,
|
|
9632
|
-
const resolvedCredentials = await (0,
|
|
9633
|
-
const preparedRequest = await ((
|
|
9025
|
+
var _a16, _b, _c, _d, _e;
|
|
9026
|
+
const resolvedBody = await (0, import_provider_utils29.resolve)(this.body);
|
|
9027
|
+
const resolvedHeaders = await (0, import_provider_utils29.resolve)(this.headers);
|
|
9028
|
+
const resolvedCredentials = await (0, import_provider_utils29.resolve)(this.credentials);
|
|
9029
|
+
const preparedRequest = await ((_a16 = this.prepareSendMessagesRequest) == null ? void 0 : _a16.call(this, {
|
|
9634
9030
|
api: this.api,
|
|
9635
9031
|
id: options.chatId,
|
|
9636
9032
|
messages: options.messages,
|
|
@@ -9655,13 +9051,13 @@ var HttpChatTransport = class {
|
|
|
9655
9051
|
const fetch2 = (_d = this.fetch) != null ? _d : globalThis.fetch;
|
|
9656
9052
|
const response = await fetch2(api, {
|
|
9657
9053
|
method: "POST",
|
|
9658
|
-
headers: (0,
|
|
9054
|
+
headers: (0, import_provider_utils29.withUserAgentSuffix)(
|
|
9659
9055
|
{
|
|
9660
9056
|
"Content-Type": "application/json",
|
|
9661
9057
|
...headers
|
|
9662
9058
|
},
|
|
9663
9059
|
`ai-sdk/${VERSION}`,
|
|
9664
|
-
(0,
|
|
9060
|
+
(0, import_provider_utils29.getRuntimeEnvironmentUserAgent)()
|
|
9665
9061
|
),
|
|
9666
9062
|
body: JSON.stringify(body),
|
|
9667
9063
|
credentials,
|
|
@@ -9678,11 +9074,11 @@ var HttpChatTransport = class {
|
|
|
9678
9074
|
return this.processResponseStream(response.body);
|
|
9679
9075
|
}
|
|
9680
9076
|
async reconnectToStream(options) {
|
|
9681
|
-
var
|
|
9682
|
-
const resolvedBody = await (0,
|
|
9683
|
-
const resolvedHeaders = await (0,
|
|
9684
|
-
const resolvedCredentials = await (0,
|
|
9685
|
-
const preparedRequest = await ((
|
|
9077
|
+
var _a16, _b, _c, _d, _e;
|
|
9078
|
+
const resolvedBody = await (0, import_provider_utils29.resolve)(this.body);
|
|
9079
|
+
const resolvedHeaders = await (0, import_provider_utils29.resolve)(this.headers);
|
|
9080
|
+
const resolvedCredentials = await (0, import_provider_utils29.resolve)(this.credentials);
|
|
9081
|
+
const preparedRequest = await ((_a16 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a16.call(this, {
|
|
9686
9082
|
api: this.api,
|
|
9687
9083
|
id: options.chatId,
|
|
9688
9084
|
body: { ...resolvedBody, ...options.body },
|
|
@@ -9696,10 +9092,10 @@ var HttpChatTransport = class {
|
|
|
9696
9092
|
const fetch2 = (_d = this.fetch) != null ? _d : globalThis.fetch;
|
|
9697
9093
|
const response = await fetch2(api, {
|
|
9698
9094
|
method: "GET",
|
|
9699
|
-
headers: (0,
|
|
9095
|
+
headers: (0, import_provider_utils29.withUserAgentSuffix)(
|
|
9700
9096
|
headers,
|
|
9701
9097
|
`ai-sdk/${VERSION}`,
|
|
9702
|
-
(0,
|
|
9098
|
+
(0, import_provider_utils29.getRuntimeEnvironmentUserAgent)()
|
|
9703
9099
|
),
|
|
9704
9100
|
credentials
|
|
9705
9101
|
});
|
|
@@ -9724,7 +9120,7 @@ var DefaultChatTransport = class extends HttpChatTransport {
|
|
|
9724
9120
|
super(options);
|
|
9725
9121
|
}
|
|
9726
9122
|
processResponseStream(stream) {
|
|
9727
|
-
return (0,
|
|
9123
|
+
return (0, import_provider_utils30.parseJsonEventStream)({
|
|
9728
9124
|
stream,
|
|
9729
9125
|
schema: uiMessageChunkSchema
|
|
9730
9126
|
}).pipeThrough(
|
|
@@ -9743,7 +9139,7 @@ var DefaultChatTransport = class extends HttpChatTransport {
|
|
|
9743
9139
|
// src/ui/chat.ts
|
|
9744
9140
|
var AbstractChat = class {
|
|
9745
9141
|
constructor({
|
|
9746
|
-
generateId: generateId3 =
|
|
9142
|
+
generateId: generateId3 = import_provider_utils31.generateId,
|
|
9747
9143
|
id = generateId3(),
|
|
9748
9144
|
transport = new DefaultChatTransport(),
|
|
9749
9145
|
messageMetadataSchema,
|
|
@@ -9764,11 +9160,11 @@ var AbstractChat = class {
|
|
|
9764
9160
|
* If a messageId is provided, the message will be replaced.
|
|
9765
9161
|
*/
|
|
9766
9162
|
this.sendMessage = async (message, options) => {
|
|
9767
|
-
var
|
|
9163
|
+
var _a16, _b, _c, _d;
|
|
9768
9164
|
if (message == null) {
|
|
9769
9165
|
await this.makeRequest({
|
|
9770
9166
|
trigger: "submit-message",
|
|
9771
|
-
messageId: (
|
|
9167
|
+
messageId: (_a16 = this.lastMessage) == null ? void 0 : _a16.id,
|
|
9772
9168
|
...options
|
|
9773
9169
|
});
|
|
9774
9170
|
return;
|
|
@@ -9858,12 +9254,12 @@ var AbstractChat = class {
|
|
|
9858
9254
|
};
|
|
9859
9255
|
this.addToolResult = async ({
|
|
9860
9256
|
state = "output-available",
|
|
9861
|
-
tool:
|
|
9257
|
+
tool: tool2,
|
|
9862
9258
|
toolCallId,
|
|
9863
9259
|
output,
|
|
9864
9260
|
errorText
|
|
9865
9261
|
}) => this.jobExecutor.run(async () => {
|
|
9866
|
-
var
|
|
9262
|
+
var _a16, _b;
|
|
9867
9263
|
const messages = this.state.messages;
|
|
9868
9264
|
const lastMessage = messages[messages.length - 1];
|
|
9869
9265
|
this.state.replaceMessage(messages.length - 1, {
|
|
@@ -9882,7 +9278,7 @@ var AbstractChat = class {
|
|
|
9882
9278
|
} : part
|
|
9883
9279
|
);
|
|
9884
9280
|
}
|
|
9885
|
-
if (this.status !== "streaming" && this.status !== "submitted" && ((
|
|
9281
|
+
if (this.status !== "streaming" && this.status !== "submitted" && ((_a16 = this.sendAutomaticallyWhen) == null ? void 0 : _a16.call(this, { messages: this.state.messages }))) {
|
|
9886
9282
|
this.makeRequest({
|
|
9887
9283
|
trigger: "submit-message",
|
|
9888
9284
|
messageId: (_b = this.lastMessage) == null ? void 0 : _b.id
|
|
@@ -9893,10 +9289,10 @@ var AbstractChat = class {
|
|
|
9893
9289
|
* Abort the current request immediately, keep the generated tokens if any.
|
|
9894
9290
|
*/
|
|
9895
9291
|
this.stop = async () => {
|
|
9896
|
-
var
|
|
9292
|
+
var _a16;
|
|
9897
9293
|
if (this.status !== "streaming" && this.status !== "submitted")
|
|
9898
9294
|
return;
|
|
9899
|
-
if ((
|
|
9295
|
+
if ((_a16 = this.activeResponse) == null ? void 0 : _a16.abortController) {
|
|
9900
9296
|
this.activeResponse.abortController.abort();
|
|
9901
9297
|
}
|
|
9902
9298
|
};
|
|
@@ -9951,7 +9347,7 @@ var AbstractChat = class {
|
|
|
9951
9347
|
body,
|
|
9952
9348
|
messageId
|
|
9953
9349
|
}) {
|
|
9954
|
-
var
|
|
9350
|
+
var _a16, _b, _c;
|
|
9955
9351
|
this.setStatus({ status: "submitted", error: void 0 });
|
|
9956
9352
|
const lastMessage = this.lastMessage;
|
|
9957
9353
|
let isAbort = false;
|
|
@@ -10000,9 +9396,9 @@ var AbstractChat = class {
|
|
|
10000
9396
|
() => job({
|
|
10001
9397
|
state: activeResponse.state,
|
|
10002
9398
|
write: () => {
|
|
10003
|
-
var
|
|
9399
|
+
var _a17;
|
|
10004
9400
|
this.setStatus({ status: "streaming" });
|
|
10005
|
-
const replaceLastMessage = activeResponse.state.message.id === ((
|
|
9401
|
+
const replaceLastMessage = activeResponse.state.message.id === ((_a17 = this.lastMessage) == null ? void 0 : _a17.id);
|
|
10006
9402
|
if (replaceLastMessage) {
|
|
10007
9403
|
this.state.replaceMessage(
|
|
10008
9404
|
this.state.messages.length - 1,
|
|
@@ -10048,7 +9444,7 @@ var AbstractChat = class {
|
|
|
10048
9444
|
this.setStatus({ status: "error", error: err });
|
|
10049
9445
|
} finally {
|
|
10050
9446
|
try {
|
|
10051
|
-
(
|
|
9447
|
+
(_a16 = this.onFinish) == null ? void 0 : _a16.call(this, {
|
|
10052
9448
|
message: this.activeResponse.state.message,
|
|
10053
9449
|
messages: this.state.messages,
|
|
10054
9450
|
isAbort,
|
|
@@ -10128,195 +9524,195 @@ var TextStreamChatTransport = class extends HttpChatTransport {
|
|
|
10128
9524
|
};
|
|
10129
9525
|
|
|
10130
9526
|
// src/ui/validate-ui-messages.ts
|
|
10131
|
-
var
|
|
10132
|
-
var
|
|
10133
|
-
var
|
|
10134
|
-
var uiMessagesSchema = (0,
|
|
10135
|
-
() => (0,
|
|
10136
|
-
|
|
10137
|
-
|
|
10138
|
-
id:
|
|
10139
|
-
role:
|
|
10140
|
-
metadata:
|
|
10141
|
-
parts:
|
|
10142
|
-
|
|
10143
|
-
|
|
10144
|
-
type:
|
|
10145
|
-
text:
|
|
10146
|
-
state:
|
|
9527
|
+
var import_provider31 = require("@ai-sdk/provider");
|
|
9528
|
+
var import_provider_utils32 = require("@ai-sdk/provider-utils");
|
|
9529
|
+
var import_v48 = require("zod/v4");
|
|
9530
|
+
var uiMessagesSchema = (0, import_provider_utils32.lazyValidator)(
|
|
9531
|
+
() => (0, import_provider_utils32.zodSchema)(
|
|
9532
|
+
import_v48.z.array(
|
|
9533
|
+
import_v48.z.object({
|
|
9534
|
+
id: import_v48.z.string(),
|
|
9535
|
+
role: import_v48.z.enum(["system", "user", "assistant"]),
|
|
9536
|
+
metadata: import_v48.z.unknown().optional(),
|
|
9537
|
+
parts: import_v48.z.array(
|
|
9538
|
+
import_v48.z.union([
|
|
9539
|
+
import_v48.z.object({
|
|
9540
|
+
type: import_v48.z.literal("text"),
|
|
9541
|
+
text: import_v48.z.string(),
|
|
9542
|
+
state: import_v48.z.enum(["streaming", "done"]).optional(),
|
|
10147
9543
|
providerMetadata: providerMetadataSchema.optional()
|
|
10148
9544
|
}),
|
|
10149
|
-
|
|
10150
|
-
type:
|
|
10151
|
-
text:
|
|
10152
|
-
state:
|
|
9545
|
+
import_v48.z.object({
|
|
9546
|
+
type: import_v48.z.literal("reasoning"),
|
|
9547
|
+
text: import_v48.z.string(),
|
|
9548
|
+
state: import_v48.z.enum(["streaming", "done"]).optional(),
|
|
10153
9549
|
providerMetadata: providerMetadataSchema.optional()
|
|
10154
9550
|
}),
|
|
10155
|
-
|
|
10156
|
-
type:
|
|
10157
|
-
sourceId:
|
|
10158
|
-
url:
|
|
10159
|
-
title:
|
|
9551
|
+
import_v48.z.object({
|
|
9552
|
+
type: import_v48.z.literal("source-url"),
|
|
9553
|
+
sourceId: import_v48.z.string(),
|
|
9554
|
+
url: import_v48.z.string(),
|
|
9555
|
+
title: import_v48.z.string().optional(),
|
|
10160
9556
|
providerMetadata: providerMetadataSchema.optional()
|
|
10161
9557
|
}),
|
|
10162
|
-
|
|
10163
|
-
type:
|
|
10164
|
-
sourceId:
|
|
10165
|
-
mediaType:
|
|
10166
|
-
title:
|
|
10167
|
-
filename:
|
|
9558
|
+
import_v48.z.object({
|
|
9559
|
+
type: import_v48.z.literal("source-document"),
|
|
9560
|
+
sourceId: import_v48.z.string(),
|
|
9561
|
+
mediaType: import_v48.z.string(),
|
|
9562
|
+
title: import_v48.z.string(),
|
|
9563
|
+
filename: import_v48.z.string().optional(),
|
|
10168
9564
|
providerMetadata: providerMetadataSchema.optional()
|
|
10169
9565
|
}),
|
|
10170
|
-
|
|
10171
|
-
type:
|
|
10172
|
-
mediaType:
|
|
10173
|
-
filename:
|
|
10174
|
-
url:
|
|
9566
|
+
import_v48.z.object({
|
|
9567
|
+
type: import_v48.z.literal("file"),
|
|
9568
|
+
mediaType: import_v48.z.string(),
|
|
9569
|
+
filename: import_v48.z.string().optional(),
|
|
9570
|
+
url: import_v48.z.string(),
|
|
10175
9571
|
providerMetadata: providerMetadataSchema.optional()
|
|
10176
9572
|
}),
|
|
10177
|
-
|
|
10178
|
-
type:
|
|
9573
|
+
import_v48.z.object({
|
|
9574
|
+
type: import_v48.z.literal("step-start")
|
|
10179
9575
|
}),
|
|
10180
|
-
|
|
10181
|
-
type:
|
|
10182
|
-
id:
|
|
10183
|
-
data:
|
|
9576
|
+
import_v48.z.object({
|
|
9577
|
+
type: import_v48.z.string().startsWith("data-"),
|
|
9578
|
+
id: import_v48.z.string().optional(),
|
|
9579
|
+
data: import_v48.z.unknown()
|
|
10184
9580
|
}),
|
|
10185
|
-
|
|
10186
|
-
type:
|
|
10187
|
-
toolName:
|
|
10188
|
-
toolCallId:
|
|
10189
|
-
state:
|
|
10190
|
-
input:
|
|
10191
|
-
output:
|
|
10192
|
-
errorText:
|
|
9581
|
+
import_v48.z.object({
|
|
9582
|
+
type: import_v48.z.literal("dynamic-tool"),
|
|
9583
|
+
toolName: import_v48.z.string(),
|
|
9584
|
+
toolCallId: import_v48.z.string(),
|
|
9585
|
+
state: import_v48.z.literal("input-streaming"),
|
|
9586
|
+
input: import_v48.z.unknown().optional(),
|
|
9587
|
+
output: import_v48.z.never().optional(),
|
|
9588
|
+
errorText: import_v48.z.never().optional()
|
|
10193
9589
|
}),
|
|
10194
|
-
|
|
10195
|
-
type:
|
|
10196
|
-
toolName:
|
|
10197
|
-
toolCallId:
|
|
10198
|
-
state:
|
|
10199
|
-
input:
|
|
10200
|
-
output:
|
|
10201
|
-
errorText:
|
|
9590
|
+
import_v48.z.object({
|
|
9591
|
+
type: import_v48.z.literal("dynamic-tool"),
|
|
9592
|
+
toolName: import_v48.z.string(),
|
|
9593
|
+
toolCallId: import_v48.z.string(),
|
|
9594
|
+
state: import_v48.z.literal("input-available"),
|
|
9595
|
+
input: import_v48.z.unknown(),
|
|
9596
|
+
output: import_v48.z.never().optional(),
|
|
9597
|
+
errorText: import_v48.z.never().optional(),
|
|
10202
9598
|
callProviderMetadata: providerMetadataSchema.optional()
|
|
10203
9599
|
}),
|
|
10204
|
-
|
|
10205
|
-
type:
|
|
10206
|
-
toolName:
|
|
10207
|
-
toolCallId:
|
|
10208
|
-
state:
|
|
10209
|
-
input:
|
|
10210
|
-
output:
|
|
10211
|
-
errorText:
|
|
9600
|
+
import_v48.z.object({
|
|
9601
|
+
type: import_v48.z.literal("dynamic-tool"),
|
|
9602
|
+
toolName: import_v48.z.string(),
|
|
9603
|
+
toolCallId: import_v48.z.string(),
|
|
9604
|
+
state: import_v48.z.literal("output-available"),
|
|
9605
|
+
input: import_v48.z.unknown(),
|
|
9606
|
+
output: import_v48.z.unknown(),
|
|
9607
|
+
errorText: import_v48.z.never().optional(),
|
|
10212
9608
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
10213
|
-
preliminary:
|
|
9609
|
+
preliminary: import_v48.z.boolean().optional()
|
|
10214
9610
|
}),
|
|
10215
|
-
|
|
10216
|
-
type:
|
|
10217
|
-
toolName:
|
|
10218
|
-
toolCallId:
|
|
10219
|
-
state:
|
|
10220
|
-
input:
|
|
10221
|
-
output:
|
|
10222
|
-
errorText:
|
|
9611
|
+
import_v48.z.object({
|
|
9612
|
+
type: import_v48.z.literal("dynamic-tool"),
|
|
9613
|
+
toolName: import_v48.z.string(),
|
|
9614
|
+
toolCallId: import_v48.z.string(),
|
|
9615
|
+
state: import_v48.z.literal("output-error"),
|
|
9616
|
+
input: import_v48.z.unknown(),
|
|
9617
|
+
output: import_v48.z.never().optional(),
|
|
9618
|
+
errorText: import_v48.z.string(),
|
|
10223
9619
|
callProviderMetadata: providerMetadataSchema.optional()
|
|
10224
9620
|
}),
|
|
10225
|
-
|
|
10226
|
-
type:
|
|
10227
|
-
toolCallId:
|
|
10228
|
-
state:
|
|
10229
|
-
providerExecuted:
|
|
10230
|
-
input:
|
|
10231
|
-
output:
|
|
10232
|
-
errorText:
|
|
10233
|
-
approval:
|
|
9621
|
+
import_v48.z.object({
|
|
9622
|
+
type: import_v48.z.string().startsWith("tool-"),
|
|
9623
|
+
toolCallId: import_v48.z.string(),
|
|
9624
|
+
state: import_v48.z.literal("input-streaming"),
|
|
9625
|
+
providerExecuted: import_v48.z.boolean().optional(),
|
|
9626
|
+
input: import_v48.z.unknown().optional(),
|
|
9627
|
+
output: import_v48.z.never().optional(),
|
|
9628
|
+
errorText: import_v48.z.never().optional(),
|
|
9629
|
+
approval: import_v48.z.never().optional()
|
|
10234
9630
|
}),
|
|
10235
|
-
|
|
10236
|
-
type:
|
|
10237
|
-
toolCallId:
|
|
10238
|
-
state:
|
|
10239
|
-
providerExecuted:
|
|
10240
|
-
input:
|
|
10241
|
-
output:
|
|
10242
|
-
errorText:
|
|
9631
|
+
import_v48.z.object({
|
|
9632
|
+
type: import_v48.z.string().startsWith("tool-"),
|
|
9633
|
+
toolCallId: import_v48.z.string(),
|
|
9634
|
+
state: import_v48.z.literal("input-available"),
|
|
9635
|
+
providerExecuted: import_v48.z.boolean().optional(),
|
|
9636
|
+
input: import_v48.z.unknown(),
|
|
9637
|
+
output: import_v48.z.never().optional(),
|
|
9638
|
+
errorText: import_v48.z.never().optional(),
|
|
10243
9639
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
10244
|
-
approval:
|
|
9640
|
+
approval: import_v48.z.never().optional()
|
|
10245
9641
|
}),
|
|
10246
|
-
|
|
10247
|
-
type:
|
|
10248
|
-
toolCallId:
|
|
10249
|
-
state:
|
|
10250
|
-
input:
|
|
10251
|
-
providerExecuted:
|
|
10252
|
-
output:
|
|
10253
|
-
errorText:
|
|
9642
|
+
import_v48.z.object({
|
|
9643
|
+
type: import_v48.z.string().startsWith("tool-"),
|
|
9644
|
+
toolCallId: import_v48.z.string(),
|
|
9645
|
+
state: import_v48.z.literal("approval-requested"),
|
|
9646
|
+
input: import_v48.z.unknown(),
|
|
9647
|
+
providerExecuted: import_v48.z.boolean().optional(),
|
|
9648
|
+
output: import_v48.z.never().optional(),
|
|
9649
|
+
errorText: import_v48.z.never().optional(),
|
|
10254
9650
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
10255
|
-
approval:
|
|
10256
|
-
id:
|
|
10257
|
-
approved:
|
|
10258
|
-
reason:
|
|
9651
|
+
approval: import_v48.z.object({
|
|
9652
|
+
id: import_v48.z.string(),
|
|
9653
|
+
approved: import_v48.z.never().optional(),
|
|
9654
|
+
reason: import_v48.z.never().optional()
|
|
10259
9655
|
})
|
|
10260
9656
|
}),
|
|
10261
|
-
|
|
10262
|
-
type:
|
|
10263
|
-
toolCallId:
|
|
10264
|
-
state:
|
|
10265
|
-
input:
|
|
10266
|
-
providerExecuted:
|
|
10267
|
-
output:
|
|
10268
|
-
errorText:
|
|
9657
|
+
import_v48.z.object({
|
|
9658
|
+
type: import_v48.z.string().startsWith("tool-"),
|
|
9659
|
+
toolCallId: import_v48.z.string(),
|
|
9660
|
+
state: import_v48.z.literal("approval-responded"),
|
|
9661
|
+
input: import_v48.z.unknown(),
|
|
9662
|
+
providerExecuted: import_v48.z.boolean().optional(),
|
|
9663
|
+
output: import_v48.z.never().optional(),
|
|
9664
|
+
errorText: import_v48.z.never().optional(),
|
|
10269
9665
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
10270
|
-
approval:
|
|
10271
|
-
id:
|
|
10272
|
-
approved:
|
|
10273
|
-
reason:
|
|
9666
|
+
approval: import_v48.z.object({
|
|
9667
|
+
id: import_v48.z.string(),
|
|
9668
|
+
approved: import_v48.z.boolean(),
|
|
9669
|
+
reason: import_v48.z.string().optional()
|
|
10274
9670
|
})
|
|
10275
9671
|
}),
|
|
10276
|
-
|
|
10277
|
-
type:
|
|
10278
|
-
toolCallId:
|
|
10279
|
-
state:
|
|
10280
|
-
providerExecuted:
|
|
10281
|
-
input:
|
|
10282
|
-
output:
|
|
10283
|
-
errorText:
|
|
9672
|
+
import_v48.z.object({
|
|
9673
|
+
type: import_v48.z.string().startsWith("tool-"),
|
|
9674
|
+
toolCallId: import_v48.z.string(),
|
|
9675
|
+
state: import_v48.z.literal("output-available"),
|
|
9676
|
+
providerExecuted: import_v48.z.boolean().optional(),
|
|
9677
|
+
input: import_v48.z.unknown(),
|
|
9678
|
+
output: import_v48.z.unknown(),
|
|
9679
|
+
errorText: import_v48.z.never().optional(),
|
|
10284
9680
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
10285
|
-
preliminary:
|
|
10286
|
-
approval:
|
|
10287
|
-
id:
|
|
10288
|
-
approved:
|
|
10289
|
-
reason:
|
|
9681
|
+
preliminary: import_v48.z.boolean().optional(),
|
|
9682
|
+
approval: import_v48.z.object({
|
|
9683
|
+
id: import_v48.z.string(),
|
|
9684
|
+
approved: import_v48.z.literal(true),
|
|
9685
|
+
reason: import_v48.z.string().optional()
|
|
10290
9686
|
}).optional()
|
|
10291
9687
|
}),
|
|
10292
|
-
|
|
10293
|
-
type:
|
|
10294
|
-
toolCallId:
|
|
10295
|
-
state:
|
|
10296
|
-
providerExecuted:
|
|
10297
|
-
input:
|
|
10298
|
-
output:
|
|
10299
|
-
errorText:
|
|
9688
|
+
import_v48.z.object({
|
|
9689
|
+
type: import_v48.z.string().startsWith("tool-"),
|
|
9690
|
+
toolCallId: import_v48.z.string(),
|
|
9691
|
+
state: import_v48.z.literal("output-error"),
|
|
9692
|
+
providerExecuted: import_v48.z.boolean().optional(),
|
|
9693
|
+
input: import_v48.z.unknown(),
|
|
9694
|
+
output: import_v48.z.never().optional(),
|
|
9695
|
+
errorText: import_v48.z.string(),
|
|
10300
9696
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
10301
|
-
approval:
|
|
10302
|
-
id:
|
|
10303
|
-
approved:
|
|
10304
|
-
reason:
|
|
9697
|
+
approval: import_v48.z.object({
|
|
9698
|
+
id: import_v48.z.string(),
|
|
9699
|
+
approved: import_v48.z.literal(true),
|
|
9700
|
+
reason: import_v48.z.string().optional()
|
|
10305
9701
|
}).optional()
|
|
10306
9702
|
}),
|
|
10307
|
-
|
|
10308
|
-
type:
|
|
10309
|
-
toolCallId:
|
|
10310
|
-
state:
|
|
10311
|
-
providerExecuted:
|
|
10312
|
-
input:
|
|
10313
|
-
output:
|
|
10314
|
-
errorText:
|
|
9703
|
+
import_v48.z.object({
|
|
9704
|
+
type: import_v48.z.string().startsWith("tool-"),
|
|
9705
|
+
toolCallId: import_v48.z.string(),
|
|
9706
|
+
state: import_v48.z.literal("output-denied"),
|
|
9707
|
+
providerExecuted: import_v48.z.boolean().optional(),
|
|
9708
|
+
input: import_v48.z.unknown(),
|
|
9709
|
+
output: import_v48.z.never().optional(),
|
|
9710
|
+
errorText: import_v48.z.never().optional(),
|
|
10315
9711
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
10316
|
-
approval:
|
|
10317
|
-
id:
|
|
10318
|
-
approved:
|
|
10319
|
-
reason:
|
|
9712
|
+
approval: import_v48.z.object({
|
|
9713
|
+
id: import_v48.z.string(),
|
|
9714
|
+
approved: import_v48.z.literal(false),
|
|
9715
|
+
reason: import_v48.z.string().optional()
|
|
10320
9716
|
})
|
|
10321
9717
|
})
|
|
10322
9718
|
])
|
|
@@ -10342,13 +9738,13 @@ async function safeValidateUIMessages({
|
|
|
10342
9738
|
})
|
|
10343
9739
|
};
|
|
10344
9740
|
}
|
|
10345
|
-
const validatedMessages = await (0,
|
|
9741
|
+
const validatedMessages = await (0, import_provider_utils32.validateTypes)({
|
|
10346
9742
|
value: messages,
|
|
10347
9743
|
schema: uiMessagesSchema
|
|
10348
9744
|
});
|
|
10349
9745
|
if (metadataSchema) {
|
|
10350
9746
|
for (const message of validatedMessages) {
|
|
10351
|
-
await (0,
|
|
9747
|
+
await (0, import_provider_utils32.validateTypes)({
|
|
10352
9748
|
value: message.metadata,
|
|
10353
9749
|
schema: metadataSchema
|
|
10354
9750
|
});
|
|
@@ -10365,13 +9761,13 @@ async function safeValidateUIMessages({
|
|
|
10365
9761
|
if (!dataSchema) {
|
|
10366
9762
|
return {
|
|
10367
9763
|
success: false,
|
|
10368
|
-
error: new
|
|
9764
|
+
error: new import_provider31.TypeValidationError({
|
|
10369
9765
|
value: dataPart.data,
|
|
10370
9766
|
cause: `No data schema found for data part ${dataName}`
|
|
10371
9767
|
})
|
|
10372
9768
|
};
|
|
10373
9769
|
}
|
|
10374
|
-
await (0,
|
|
9770
|
+
await (0, import_provider_utils32.validateTypes)({
|
|
10375
9771
|
value: dataPart.data,
|
|
10376
9772
|
schema: dataSchema
|
|
10377
9773
|
});
|
|
@@ -10385,26 +9781,26 @@ async function safeValidateUIMessages({
|
|
|
10385
9781
|
);
|
|
10386
9782
|
for (const toolPart of toolParts) {
|
|
10387
9783
|
const toolName = toolPart.type.slice(5);
|
|
10388
|
-
const
|
|
10389
|
-
if (!
|
|
9784
|
+
const tool2 = tools[toolName];
|
|
9785
|
+
if (!tool2) {
|
|
10390
9786
|
return {
|
|
10391
9787
|
success: false,
|
|
10392
|
-
error: new
|
|
9788
|
+
error: new import_provider31.TypeValidationError({
|
|
10393
9789
|
value: toolPart.input,
|
|
10394
9790
|
cause: `No tool schema found for tool part ${toolName}`
|
|
10395
9791
|
})
|
|
10396
9792
|
};
|
|
10397
9793
|
}
|
|
10398
9794
|
if (toolPart.state === "input-available" || toolPart.state === "output-available" || toolPart.state === "output-error") {
|
|
10399
|
-
await (0,
|
|
9795
|
+
await (0, import_provider_utils32.validateTypes)({
|
|
10400
9796
|
value: toolPart.input,
|
|
10401
|
-
schema:
|
|
9797
|
+
schema: tool2.inputSchema
|
|
10402
9798
|
});
|
|
10403
9799
|
}
|
|
10404
|
-
if (toolPart.state === "output-available" &&
|
|
10405
|
-
await (0,
|
|
9800
|
+
if (toolPart.state === "output-available" && tool2.outputSchema) {
|
|
9801
|
+
await (0, import_provider_utils32.validateTypes)({
|
|
10406
9802
|
value: toolPart.output,
|
|
10407
|
-
schema:
|
|
9803
|
+
schema: tool2.outputSchema
|
|
10408
9804
|
});
|
|
10409
9805
|
}
|
|
10410
9806
|
}
|
|
@@ -10440,13 +9836,13 @@ async function validateUIMessages({
|
|
|
10440
9836
|
}
|
|
10441
9837
|
|
|
10442
9838
|
// src/ui-message-stream/create-ui-message-stream.ts
|
|
10443
|
-
var
|
|
9839
|
+
var import_provider_utils33 = require("@ai-sdk/provider-utils");
|
|
10444
9840
|
function createUIMessageStream({
|
|
10445
9841
|
execute,
|
|
10446
|
-
onError =
|
|
9842
|
+
onError = import_provider_utils33.getErrorMessage,
|
|
10447
9843
|
originalMessages,
|
|
10448
9844
|
onFinish,
|
|
10449
|
-
generateId: generateId3 =
|
|
9845
|
+
generateId: generateId3 = import_provider_utils33.generateId
|
|
10450
9846
|
}) {
|
|
10451
9847
|
let controller;
|
|
10452
9848
|
const ongoingStreamPromises = [];
|
|
@@ -10532,7 +9928,7 @@ function readUIMessageStream({
|
|
|
10532
9928
|
onError,
|
|
10533
9929
|
terminateOnError = false
|
|
10534
9930
|
}) {
|
|
10535
|
-
var
|
|
9931
|
+
var _a16;
|
|
10536
9932
|
let controller;
|
|
10537
9933
|
let hasErrored = false;
|
|
10538
9934
|
const outputStream = new ReadableStream({
|
|
@@ -10541,7 +9937,7 @@ function readUIMessageStream({
|
|
|
10541
9937
|
}
|
|
10542
9938
|
});
|
|
10543
9939
|
const state = createStreamingUIMessageState({
|
|
10544
|
-
messageId: (
|
|
9940
|
+
messageId: (_a16 = message == null ? void 0 : message.id) != null ? _a16 : "",
|
|
10545
9941
|
lastMessage: message
|
|
10546
9942
|
});
|
|
10547
9943
|
const handleError = (error) => {
|
|
@@ -10593,7 +9989,6 @@ function readUIMessageStream({
|
|
|
10593
9989
|
JsonToSseTransformStream,
|
|
10594
9990
|
LoadAPIKeyError,
|
|
10595
9991
|
LoadSettingError,
|
|
10596
|
-
MCPClientError,
|
|
10597
9992
|
MessageConversionError,
|
|
10598
9993
|
NoContentGeneratedError,
|
|
10599
9994
|
NoImageGeneratedError,
|
|
@@ -10638,7 +10033,6 @@ function readUIMessageStream({
|
|
|
10638
10033
|
dynamicTool,
|
|
10639
10034
|
embed,
|
|
10640
10035
|
embedMany,
|
|
10641
|
-
experimental_createMCPClient,
|
|
10642
10036
|
experimental_createProviderRegistry,
|
|
10643
10037
|
experimental_customProvider,
|
|
10644
10038
|
experimental_generateImage,
|