@zenning/ai 5.1.1 → 5.3.0
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 +160 -0
- package/README.md +128 -44
- package/dist/index.d.mts +269 -121
- package/dist/index.d.ts +269 -121
- package/dist/index.js +334 -218
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +289 -177
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.d.mts +6 -6
- package/dist/internal/index.d.ts +6 -6
- package/dist/internal/index.js +18 -18
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +18 -18
- package/dist/internal/index.mjs.map +1 -1
- package/dist/mcp-stdio/index.js.map +1 -1
- package/dist/mcp-stdio/index.mjs.map +1 -1
- package/dist/test/index.d.mts +47 -47
- package/dist/test/index.d.ts +47 -47
- package/dist/test/index.js +21 -21
- package/dist/test/index.js.map +1 -1
- package/dist/test/index.mjs +17 -17
- package/dist/test/index.mjs.map +1 -1
- package/package.json +5 -4
package/dist/index.js
CHANGED
|
@@ -20,43 +20,45 @@ 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_provider18.AISDKError,
|
|
24
|
+
APICallError: () => import_provider18.APICallError,
|
|
25
25
|
AbstractChat: () => AbstractChat,
|
|
26
|
+
Agent: () => Agent,
|
|
26
27
|
DefaultChatTransport: () => DefaultChatTransport,
|
|
27
28
|
DownloadError: () => DownloadError,
|
|
28
|
-
EmptyResponseBodyError: () =>
|
|
29
|
+
EmptyResponseBodyError: () => import_provider18.EmptyResponseBodyError,
|
|
29
30
|
Experimental_Agent: () => Agent,
|
|
30
31
|
HttpChatTransport: () => HttpChatTransport,
|
|
31
32
|
InvalidArgumentError: () => InvalidArgumentError,
|
|
32
33
|
InvalidDataContentError: () => InvalidDataContentError,
|
|
33
34
|
InvalidMessageRoleError: () => InvalidMessageRoleError,
|
|
34
|
-
InvalidPromptError: () =>
|
|
35
|
-
InvalidResponseDataError: () =>
|
|
35
|
+
InvalidPromptError: () => import_provider18.InvalidPromptError,
|
|
36
|
+
InvalidResponseDataError: () => import_provider18.InvalidResponseDataError,
|
|
36
37
|
InvalidStreamPartError: () => InvalidStreamPartError,
|
|
37
38
|
InvalidToolInputError: () => InvalidToolInputError,
|
|
38
|
-
JSONParseError: () =>
|
|
39
|
+
JSONParseError: () => import_provider18.JSONParseError,
|
|
39
40
|
JsonToSseTransformStream: () => JsonToSseTransformStream,
|
|
40
|
-
LoadAPIKeyError: () =>
|
|
41
|
+
LoadAPIKeyError: () => import_provider18.LoadAPIKeyError,
|
|
41
42
|
MCPClientError: () => MCPClientError,
|
|
42
43
|
MessageConversionError: () => MessageConversionError,
|
|
43
|
-
NoContentGeneratedError: () =>
|
|
44
|
+
NoContentGeneratedError: () => import_provider18.NoContentGeneratedError,
|
|
44
45
|
NoImageGeneratedError: () => NoImageGeneratedError,
|
|
45
46
|
NoObjectGeneratedError: () => NoObjectGeneratedError,
|
|
46
47
|
NoOutputGeneratedError: () => NoOutputGeneratedError,
|
|
47
48
|
NoOutputSpecifiedError: () => NoOutputSpecifiedError,
|
|
48
|
-
|
|
49
|
+
NoSpeechGeneratedError: () => NoSpeechGeneratedError,
|
|
50
|
+
NoSuchModelError: () => import_provider18.NoSuchModelError,
|
|
49
51
|
NoSuchProviderError: () => NoSuchProviderError,
|
|
50
52
|
NoSuchToolError: () => NoSuchToolError,
|
|
51
53
|
Output: () => output_exports,
|
|
52
54
|
RetryError: () => RetryError,
|
|
53
55
|
SerialJobExecutor: () => SerialJobExecutor,
|
|
54
56
|
TextStreamChatTransport: () => TextStreamChatTransport,
|
|
55
|
-
TooManyEmbeddingValuesForCallError: () =>
|
|
57
|
+
TooManyEmbeddingValuesForCallError: () => import_provider18.TooManyEmbeddingValuesForCallError,
|
|
56
58
|
ToolCallRepairError: () => ToolCallRepairError,
|
|
57
|
-
TypeValidationError: () =>
|
|
59
|
+
TypeValidationError: () => import_provider18.TypeValidationError,
|
|
58
60
|
UI_MESSAGE_STREAM_HEADERS: () => UI_MESSAGE_STREAM_HEADERS,
|
|
59
|
-
UnsupportedFunctionalityError: () =>
|
|
61
|
+
UnsupportedFunctionalityError: () => import_provider18.UnsupportedFunctionalityError,
|
|
60
62
|
UnsupportedModelVersionError: () => UnsupportedModelVersionError,
|
|
61
63
|
asSchema: () => import_provider_utils35.asSchema,
|
|
62
64
|
assistantModelMessageSchema: () => assistantModelMessageSchema,
|
|
@@ -103,10 +105,12 @@ __export(src_exports, {
|
|
|
103
105
|
jsonSchema: () => import_provider_utils35.jsonSchema,
|
|
104
106
|
lastAssistantMessageIsCompleteWithToolCalls: () => lastAssistantMessageIsCompleteWithToolCalls,
|
|
105
107
|
modelMessageSchema: () => modelMessageSchema,
|
|
108
|
+
parseJsonEventStream: () => import_provider_utils35.parseJsonEventStream,
|
|
106
109
|
parsePartialJson: () => parsePartialJson,
|
|
107
110
|
pipeTextStreamToResponse: () => pipeTextStreamToResponse,
|
|
108
111
|
pipeUIMessageStreamToResponse: () => pipeUIMessageStreamToResponse,
|
|
109
112
|
readUIMessageStream: () => readUIMessageStream,
|
|
113
|
+
safeValidateUIMessages: () => safeValidateUIMessages,
|
|
110
114
|
simulateReadableStream: () => simulateReadableStream,
|
|
111
115
|
simulateStreamingMiddleware: () => simulateStreamingMiddleware,
|
|
112
116
|
smoothStream: () => smoothStream,
|
|
@@ -116,6 +120,7 @@ __export(src_exports, {
|
|
|
116
120
|
systemModelMessageSchema: () => systemModelMessageSchema,
|
|
117
121
|
tool: () => import_provider_utils35.tool,
|
|
118
122
|
toolModelMessageSchema: () => toolModelMessageSchema,
|
|
123
|
+
uiMessageChunkSchema: () => uiMessageChunkSchema,
|
|
119
124
|
userModelMessageSchema: () => userModelMessageSchema,
|
|
120
125
|
validateUIMessages: () => validateUIMessages,
|
|
121
126
|
wrapLanguageModel: () => wrapLanguageModel,
|
|
@@ -124,10 +129,10 @@ __export(src_exports, {
|
|
|
124
129
|
});
|
|
125
130
|
module.exports = __toCommonJS(src_exports);
|
|
126
131
|
var import_gateway3 = require("@ai-sdk/gateway");
|
|
127
|
-
var import_provider_utils35 = require("@
|
|
132
|
+
var import_provider_utils35 = require("@zenning/provider-utils");
|
|
128
133
|
|
|
129
134
|
// src/generate-text/generate-text.ts
|
|
130
|
-
var import_provider_utils10 = require("@
|
|
135
|
+
var import_provider_utils10 = require("@zenning/provider-utils");
|
|
131
136
|
|
|
132
137
|
// src/error/no-output-specified-error.ts
|
|
133
138
|
var import_provider = require("@zenning/provider");
|
|
@@ -201,7 +206,7 @@ var logWarnings = (warnings) => {
|
|
|
201
206
|
var import_gateway = require("@ai-sdk/gateway");
|
|
202
207
|
|
|
203
208
|
// src/error/index.ts
|
|
204
|
-
var
|
|
209
|
+
var import_provider18 = require("@zenning/provider");
|
|
205
210
|
|
|
206
211
|
// src/error/invalid-argument-error.ts
|
|
207
212
|
var import_provider2 = require("@zenning/provider");
|
|
@@ -366,13 +371,25 @@ var NoOutputGeneratedError = class extends import_provider8.AISDKError {
|
|
|
366
371
|
};
|
|
367
372
|
_a8 = symbol8;
|
|
368
373
|
|
|
369
|
-
// src/error/no-
|
|
374
|
+
// src/error/no-speech-generated-error.ts
|
|
370
375
|
var import_provider9 = require("@zenning/provider");
|
|
376
|
+
var NoSpeechGeneratedError = class extends import_provider9.AISDKError {
|
|
377
|
+
constructor(options) {
|
|
378
|
+
super({
|
|
379
|
+
name: "AI_NoSpeechGeneratedError",
|
|
380
|
+
message: "No speech audio generated."
|
|
381
|
+
});
|
|
382
|
+
this.responses = options.responses;
|
|
383
|
+
}
|
|
384
|
+
};
|
|
385
|
+
|
|
386
|
+
// src/error/no-such-tool-error.ts
|
|
387
|
+
var import_provider10 = require("@zenning/provider");
|
|
371
388
|
var name9 = "AI_NoSuchToolError";
|
|
372
389
|
var marker9 = `vercel.ai.error.${name9}`;
|
|
373
390
|
var symbol9 = Symbol.for(marker9);
|
|
374
391
|
var _a9;
|
|
375
|
-
var NoSuchToolError = class extends
|
|
392
|
+
var NoSuchToolError = class extends import_provider10.AISDKError {
|
|
376
393
|
constructor({
|
|
377
394
|
toolName,
|
|
378
395
|
availableTools = void 0,
|
|
@@ -384,36 +401,36 @@ var NoSuchToolError = class extends import_provider9.AISDKError {
|
|
|
384
401
|
this.availableTools = availableTools;
|
|
385
402
|
}
|
|
386
403
|
static isInstance(error) {
|
|
387
|
-
return
|
|
404
|
+
return import_provider10.AISDKError.hasMarker(error, marker9);
|
|
388
405
|
}
|
|
389
406
|
};
|
|
390
407
|
_a9 = symbol9;
|
|
391
408
|
|
|
392
409
|
// src/error/tool-call-repair-error.ts
|
|
393
|
-
var
|
|
410
|
+
var import_provider11 = require("@zenning/provider");
|
|
394
411
|
var name10 = "AI_ToolCallRepairError";
|
|
395
412
|
var marker10 = `vercel.ai.error.${name10}`;
|
|
396
413
|
var symbol10 = Symbol.for(marker10);
|
|
397
414
|
var _a10;
|
|
398
|
-
var ToolCallRepairError = class extends
|
|
415
|
+
var ToolCallRepairError = class extends import_provider11.AISDKError {
|
|
399
416
|
constructor({
|
|
400
417
|
cause,
|
|
401
418
|
originalError,
|
|
402
|
-
message = `Error repairing tool call: ${(0,
|
|
419
|
+
message = `Error repairing tool call: ${(0, import_provider11.getErrorMessage)(cause)}`
|
|
403
420
|
}) {
|
|
404
421
|
super({ name: name10, message, cause });
|
|
405
422
|
this[_a10] = true;
|
|
406
423
|
this.originalError = originalError;
|
|
407
424
|
}
|
|
408
425
|
static isInstance(error) {
|
|
409
|
-
return
|
|
426
|
+
return import_provider11.AISDKError.hasMarker(error, marker10);
|
|
410
427
|
}
|
|
411
428
|
};
|
|
412
429
|
_a10 = symbol10;
|
|
413
430
|
|
|
414
431
|
// src/error/unsupported-model-version-error.ts
|
|
415
|
-
var
|
|
416
|
-
var UnsupportedModelVersionError = class extends
|
|
432
|
+
var import_provider12 = require("@zenning/provider");
|
|
433
|
+
var UnsupportedModelVersionError = class extends import_provider12.AISDKError {
|
|
417
434
|
constructor(options) {
|
|
418
435
|
super({
|
|
419
436
|
name: "AI_UnsupportedModelVersionError",
|
|
@@ -426,12 +443,12 @@ var UnsupportedModelVersionError = class extends import_provider11.AISDKError {
|
|
|
426
443
|
};
|
|
427
444
|
|
|
428
445
|
// src/prompt/invalid-data-content-error.ts
|
|
429
|
-
var
|
|
446
|
+
var import_provider13 = require("@zenning/provider");
|
|
430
447
|
var name11 = "AI_InvalidDataContentError";
|
|
431
448
|
var marker11 = `vercel.ai.error.${name11}`;
|
|
432
449
|
var symbol11 = Symbol.for(marker11);
|
|
433
450
|
var _a11;
|
|
434
|
-
var InvalidDataContentError = class extends
|
|
451
|
+
var InvalidDataContentError = class extends import_provider13.AISDKError {
|
|
435
452
|
constructor({
|
|
436
453
|
content,
|
|
437
454
|
cause,
|
|
@@ -442,18 +459,18 @@ var InvalidDataContentError = class extends import_provider12.AISDKError {
|
|
|
442
459
|
this.content = content;
|
|
443
460
|
}
|
|
444
461
|
static isInstance(error) {
|
|
445
|
-
return
|
|
462
|
+
return import_provider13.AISDKError.hasMarker(error, marker11);
|
|
446
463
|
}
|
|
447
464
|
};
|
|
448
465
|
_a11 = symbol11;
|
|
449
466
|
|
|
450
467
|
// src/prompt/invalid-message-role-error.ts
|
|
451
|
-
var
|
|
468
|
+
var import_provider14 = require("@zenning/provider");
|
|
452
469
|
var name12 = "AI_InvalidMessageRoleError";
|
|
453
470
|
var marker12 = `vercel.ai.error.${name12}`;
|
|
454
471
|
var symbol12 = Symbol.for(marker12);
|
|
455
472
|
var _a12;
|
|
456
|
-
var InvalidMessageRoleError = class extends
|
|
473
|
+
var InvalidMessageRoleError = class extends import_provider14.AISDKError {
|
|
457
474
|
constructor({
|
|
458
475
|
role,
|
|
459
476
|
message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
|
|
@@ -463,18 +480,18 @@ var InvalidMessageRoleError = class extends import_provider13.AISDKError {
|
|
|
463
480
|
this.role = role;
|
|
464
481
|
}
|
|
465
482
|
static isInstance(error) {
|
|
466
|
-
return
|
|
483
|
+
return import_provider14.AISDKError.hasMarker(error, marker12);
|
|
467
484
|
}
|
|
468
485
|
};
|
|
469
486
|
_a12 = symbol12;
|
|
470
487
|
|
|
471
488
|
// src/prompt/message-conversion-error.ts
|
|
472
|
-
var
|
|
489
|
+
var import_provider15 = require("@zenning/provider");
|
|
473
490
|
var name13 = "AI_MessageConversionError";
|
|
474
491
|
var marker13 = `vercel.ai.error.${name13}`;
|
|
475
492
|
var symbol13 = Symbol.for(marker13);
|
|
476
493
|
var _a13;
|
|
477
|
-
var MessageConversionError = class extends
|
|
494
|
+
var MessageConversionError = class extends import_provider15.AISDKError {
|
|
478
495
|
constructor({
|
|
479
496
|
originalMessage,
|
|
480
497
|
message
|
|
@@ -484,18 +501,18 @@ var MessageConversionError = class extends import_provider14.AISDKError {
|
|
|
484
501
|
this.originalMessage = originalMessage;
|
|
485
502
|
}
|
|
486
503
|
static isInstance(error) {
|
|
487
|
-
return
|
|
504
|
+
return import_provider15.AISDKError.hasMarker(error, marker13);
|
|
488
505
|
}
|
|
489
506
|
};
|
|
490
507
|
_a13 = symbol13;
|
|
491
508
|
|
|
492
509
|
// src/util/download/download-error.ts
|
|
493
|
-
var
|
|
510
|
+
var import_provider16 = require("@zenning/provider");
|
|
494
511
|
var name14 = "AI_DownloadError";
|
|
495
512
|
var marker14 = `vercel.ai.error.${name14}`;
|
|
496
513
|
var symbol14 = Symbol.for(marker14);
|
|
497
514
|
var _a14;
|
|
498
|
-
var DownloadError = class extends
|
|
515
|
+
var DownloadError = class extends import_provider16.AISDKError {
|
|
499
516
|
constructor({
|
|
500
517
|
url,
|
|
501
518
|
statusCode,
|
|
@@ -510,18 +527,18 @@ var DownloadError = class extends import_provider15.AISDKError {
|
|
|
510
527
|
this.statusText = statusText;
|
|
511
528
|
}
|
|
512
529
|
static isInstance(error) {
|
|
513
|
-
return
|
|
530
|
+
return import_provider16.AISDKError.hasMarker(error, marker14);
|
|
514
531
|
}
|
|
515
532
|
};
|
|
516
533
|
_a14 = symbol14;
|
|
517
534
|
|
|
518
535
|
// src/util/retry-error.ts
|
|
519
|
-
var
|
|
536
|
+
var import_provider17 = require("@zenning/provider");
|
|
520
537
|
var name15 = "AI_RetryError";
|
|
521
538
|
var marker15 = `vercel.ai.error.${name15}`;
|
|
522
539
|
var symbol15 = Symbol.for(marker15);
|
|
523
540
|
var _a15;
|
|
524
|
-
var RetryError = class extends
|
|
541
|
+
var RetryError = class extends import_provider17.AISDKError {
|
|
525
542
|
constructor({
|
|
526
543
|
message,
|
|
527
544
|
reason,
|
|
@@ -534,34 +551,54 @@ var RetryError = class extends import_provider16.AISDKError {
|
|
|
534
551
|
this.lastError = errors[errors.length - 1];
|
|
535
552
|
}
|
|
536
553
|
static isInstance(error) {
|
|
537
|
-
return
|
|
554
|
+
return import_provider17.AISDKError.hasMarker(error, marker15);
|
|
538
555
|
}
|
|
539
556
|
};
|
|
540
557
|
_a15 = symbol15;
|
|
541
558
|
|
|
542
559
|
// src/model/resolve-model.ts
|
|
560
|
+
function transformToV3LanguageModel(model) {
|
|
561
|
+
return {
|
|
562
|
+
...model,
|
|
563
|
+
specificationVersion: "v3"
|
|
564
|
+
};
|
|
565
|
+
}
|
|
566
|
+
function transformToV3EmbeddingModel(model) {
|
|
567
|
+
return {
|
|
568
|
+
...model,
|
|
569
|
+
specificationVersion: "v3"
|
|
570
|
+
};
|
|
571
|
+
}
|
|
543
572
|
function resolveLanguageModel(model) {
|
|
544
573
|
if (typeof model !== "string") {
|
|
545
|
-
if (model.specificationVersion !== "v2") {
|
|
574
|
+
if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
|
|
575
|
+
const unsupportedModel = model;
|
|
546
576
|
throw new UnsupportedModelVersionError({
|
|
547
|
-
version:
|
|
548
|
-
provider:
|
|
549
|
-
modelId:
|
|
577
|
+
version: unsupportedModel.specificationVersion,
|
|
578
|
+
provider: unsupportedModel.provider,
|
|
579
|
+
modelId: unsupportedModel.modelId
|
|
550
580
|
});
|
|
551
581
|
}
|
|
582
|
+
if (model.specificationVersion === "v2") {
|
|
583
|
+
return transformToV3LanguageModel(model);
|
|
584
|
+
}
|
|
552
585
|
return model;
|
|
553
586
|
}
|
|
554
587
|
return getGlobalProvider().languageModel(model);
|
|
555
588
|
}
|
|
556
589
|
function resolveEmbeddingModel(model) {
|
|
557
590
|
if (typeof model !== "string") {
|
|
558
|
-
if (model.specificationVersion !== "v2") {
|
|
591
|
+
if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
|
|
592
|
+
const unsupportedModel = model;
|
|
559
593
|
throw new UnsupportedModelVersionError({
|
|
560
|
-
version:
|
|
561
|
-
provider:
|
|
562
|
-
modelId:
|
|
594
|
+
version: unsupportedModel.specificationVersion,
|
|
595
|
+
provider: unsupportedModel.provider,
|
|
596
|
+
modelId: unsupportedModel.modelId
|
|
563
597
|
});
|
|
564
598
|
}
|
|
599
|
+
if (model.specificationVersion === "v2") {
|
|
600
|
+
return transformToV3EmbeddingModel(model);
|
|
601
|
+
}
|
|
565
602
|
return model;
|
|
566
603
|
}
|
|
567
604
|
return getGlobalProvider().textEmbeddingModel(
|
|
@@ -574,10 +611,10 @@ function getGlobalProvider() {
|
|
|
574
611
|
}
|
|
575
612
|
|
|
576
613
|
// src/prompt/convert-to-language-model-prompt.ts
|
|
577
|
-
var import_provider_utils4 = require("@
|
|
614
|
+
var import_provider_utils4 = require("@zenning/provider-utils");
|
|
578
615
|
|
|
579
616
|
// src/util/detect-media-type.ts
|
|
580
|
-
var import_provider_utils = require("@
|
|
617
|
+
var import_provider_utils = require("@zenning/provider-utils");
|
|
581
618
|
var imageMediaTypeSignatures = [
|
|
582
619
|
{
|
|
583
620
|
mediaType: "image/gif",
|
|
@@ -762,10 +799,10 @@ function detectMediaType({
|
|
|
762
799
|
}
|
|
763
800
|
|
|
764
801
|
// src/util/download/download.ts
|
|
765
|
-
var import_provider_utils2 = require("@
|
|
802
|
+
var import_provider_utils2 = require("@zenning/provider-utils");
|
|
766
803
|
|
|
767
804
|
// src/version.ts
|
|
768
|
-
var VERSION = true ? "5.
|
|
805
|
+
var VERSION = true ? "5.3.0" : "0.0.0-test";
|
|
769
806
|
|
|
770
807
|
// src/util/download/download.ts
|
|
771
808
|
var download = async ({ url }) => {
|
|
@@ -806,8 +843,8 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
|
|
|
806
843
|
);
|
|
807
844
|
|
|
808
845
|
// src/prompt/data-content.ts
|
|
809
|
-
var
|
|
810
|
-
var import_provider_utils3 = require("@
|
|
846
|
+
var import_provider19 = require("@zenning/provider");
|
|
847
|
+
var import_provider_utils3 = require("@zenning/provider-utils");
|
|
811
848
|
var import_v4 = require("zod/v4");
|
|
812
849
|
|
|
813
850
|
// src/prompt/split-data-url.ts
|
|
@@ -840,7 +877,7 @@ var dataContentSchema = import_v4.z.union([
|
|
|
840
877
|
{ message: "Must be a Buffer" }
|
|
841
878
|
)
|
|
842
879
|
]);
|
|
843
|
-
function
|
|
880
|
+
function convertToLanguageModelV3DataContent(content) {
|
|
844
881
|
if (content instanceof Uint8Array) {
|
|
845
882
|
return { data: content, mediaType: void 0 };
|
|
846
883
|
}
|
|
@@ -858,7 +895,7 @@ function convertToLanguageModelV2DataContent(content) {
|
|
|
858
895
|
content.toString()
|
|
859
896
|
);
|
|
860
897
|
if (dataUrlMediaType == null || base64Content == null) {
|
|
861
|
-
throw new
|
|
898
|
+
throw new import_provider19.AISDKError({
|
|
862
899
|
name: "InvalidDataContentError",
|
|
863
900
|
message: `Invalid data URL format in content ${content.toString()}`
|
|
864
901
|
});
|
|
@@ -959,7 +996,7 @@ function convertToLanguageModelMessage({
|
|
|
959
996
|
const providerOptions = part.providerOptions;
|
|
960
997
|
switch (part.type) {
|
|
961
998
|
case "file": {
|
|
962
|
-
const { data, mediaType } =
|
|
999
|
+
const { data, mediaType } = convertToLanguageModelV3DataContent(
|
|
963
1000
|
part.data
|
|
964
1001
|
);
|
|
965
1002
|
return {
|
|
@@ -1055,12 +1092,12 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
1055
1092
|
}));
|
|
1056
1093
|
const downloadedFiles = await download2(plannedDownloads);
|
|
1057
1094
|
return Object.fromEntries(
|
|
1058
|
-
downloadedFiles.
|
|
1059
|
-
(
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1095
|
+
downloadedFiles.map(
|
|
1096
|
+
(file, index) => file == null ? null : [
|
|
1097
|
+
plannedDownloads[index].url.toString(),
|
|
1098
|
+
{ data: file.data, mediaType: file.mediaType }
|
|
1099
|
+
]
|
|
1100
|
+
).filter((file) => file != null)
|
|
1064
1101
|
);
|
|
1065
1102
|
}
|
|
1066
1103
|
function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
@@ -1084,7 +1121,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
|
1084
1121
|
default:
|
|
1085
1122
|
throw new Error(`Unsupported part type: ${type}`);
|
|
1086
1123
|
}
|
|
1087
|
-
const { data: convertedData, mediaType: convertedMediaType } =
|
|
1124
|
+
const { data: convertedData, mediaType: convertedMediaType } = convertToLanguageModelV3DataContent(originalData);
|
|
1088
1125
|
let mediaType = convertedMediaType != null ? convertedMediaType : part.mediaType;
|
|
1089
1126
|
let data = convertedData;
|
|
1090
1127
|
if (data instanceof URL) {
|
|
@@ -1217,7 +1254,7 @@ function prepareCallSettings({
|
|
|
1217
1254
|
}
|
|
1218
1255
|
|
|
1219
1256
|
// src/prompt/prepare-tools-and-tool-choice.ts
|
|
1220
|
-
var import_provider_utils5 = require("@
|
|
1257
|
+
var import_provider_utils5 = require("@zenning/provider-utils");
|
|
1221
1258
|
|
|
1222
1259
|
// src/util/is-non-empty-object.ts
|
|
1223
1260
|
function isNonEmptyObject(object2) {
|
|
@@ -1271,8 +1308,8 @@ function prepareToolsAndToolChoice({
|
|
|
1271
1308
|
}
|
|
1272
1309
|
|
|
1273
1310
|
// src/prompt/standardize-prompt.ts
|
|
1274
|
-
var
|
|
1275
|
-
var import_provider_utils6 = require("@
|
|
1311
|
+
var import_provider20 = require("@zenning/provider");
|
|
1312
|
+
var import_provider_utils6 = require("@zenning/provider-utils");
|
|
1276
1313
|
var import_v46 = require("zod/v4");
|
|
1277
1314
|
|
|
1278
1315
|
// src/prompt/message.ts
|
|
@@ -1427,19 +1464,19 @@ var coreMessageSchema = modelMessageSchema;
|
|
|
1427
1464
|
// src/prompt/standardize-prompt.ts
|
|
1428
1465
|
async function standardizePrompt(prompt) {
|
|
1429
1466
|
if (prompt.prompt == null && prompt.messages == null) {
|
|
1430
|
-
throw new
|
|
1467
|
+
throw new import_provider20.InvalidPromptError({
|
|
1431
1468
|
prompt,
|
|
1432
1469
|
message: "prompt or messages must be defined"
|
|
1433
1470
|
});
|
|
1434
1471
|
}
|
|
1435
1472
|
if (prompt.prompt != null && prompt.messages != null) {
|
|
1436
|
-
throw new
|
|
1473
|
+
throw new import_provider20.InvalidPromptError({
|
|
1437
1474
|
prompt,
|
|
1438
1475
|
message: "prompt and messages cannot be defined at the same time"
|
|
1439
1476
|
});
|
|
1440
1477
|
}
|
|
1441
1478
|
if (prompt.system != null && typeof prompt.system !== "string") {
|
|
1442
|
-
throw new
|
|
1479
|
+
throw new import_provider20.InvalidPromptError({
|
|
1443
1480
|
prompt,
|
|
1444
1481
|
message: "system must be a string"
|
|
1445
1482
|
});
|
|
@@ -1452,13 +1489,13 @@ async function standardizePrompt(prompt) {
|
|
|
1452
1489
|
} else if (prompt.messages != null) {
|
|
1453
1490
|
messages = prompt.messages;
|
|
1454
1491
|
} else {
|
|
1455
|
-
throw new
|
|
1492
|
+
throw new import_provider20.InvalidPromptError({
|
|
1456
1493
|
prompt,
|
|
1457
1494
|
message: "prompt or messages must be defined"
|
|
1458
1495
|
});
|
|
1459
1496
|
}
|
|
1460
1497
|
if (messages.length === 0) {
|
|
1461
|
-
throw new
|
|
1498
|
+
throw new import_provider20.InvalidPromptError({
|
|
1462
1499
|
prompt,
|
|
1463
1500
|
message: "messages must not be empty"
|
|
1464
1501
|
});
|
|
@@ -1468,7 +1505,7 @@ async function standardizePrompt(prompt) {
|
|
|
1468
1505
|
schema: import_v46.z.array(modelMessageSchema)
|
|
1469
1506
|
});
|
|
1470
1507
|
if (!validationResult.success) {
|
|
1471
|
-
throw new
|
|
1508
|
+
throw new import_provider20.InvalidPromptError({
|
|
1472
1509
|
prompt,
|
|
1473
1510
|
message: "The messages must be a ModelMessage[]. If you have passed a UIMessage[], you can use convertToModelMessages to convert them.",
|
|
1474
1511
|
cause: validationResult.error
|
|
@@ -1482,12 +1519,12 @@ async function standardizePrompt(prompt) {
|
|
|
1482
1519
|
|
|
1483
1520
|
// src/prompt/wrap-gateway-error.ts
|
|
1484
1521
|
var import_gateway2 = require("@ai-sdk/gateway");
|
|
1485
|
-
var
|
|
1522
|
+
var import_provider21 = require("@zenning/provider");
|
|
1486
1523
|
function wrapGatewayError(error) {
|
|
1487
1524
|
if (import_gateway2.GatewayAuthenticationError.isInstance(error) || import_gateway2.GatewayModelNotFoundError.isInstance(error)) {
|
|
1488
|
-
return new
|
|
1525
|
+
return new import_provider21.AISDKError({
|
|
1489
1526
|
name: "GatewayError",
|
|
1490
|
-
message: "Vercel AI Gateway access failed. If you want to use AI SDK providers directly, use the providers, e.g. @
|
|
1527
|
+
message: "Vercel AI Gateway access failed. If you want to use AI SDK providers directly, use the providers, e.g. @zenning/openai, or register a different global default provider.",
|
|
1491
1528
|
cause: error
|
|
1492
1529
|
});
|
|
1493
1530
|
}
|
|
@@ -1731,8 +1768,8 @@ function asArray(value) {
|
|
|
1731
1768
|
}
|
|
1732
1769
|
|
|
1733
1770
|
// src/util/retry-with-exponential-backoff.ts
|
|
1734
|
-
var
|
|
1735
|
-
var import_provider_utils7 = require("@
|
|
1771
|
+
var import_provider22 = require("@zenning/provider");
|
|
1772
|
+
var import_provider_utils7 = require("@zenning/provider-utils");
|
|
1736
1773
|
function getRetryDelayInMs({
|
|
1737
1774
|
error,
|
|
1738
1775
|
exponentialBackoffDelay
|
|
@@ -1798,7 +1835,7 @@ async function _retryWithExponentialBackoff(f, {
|
|
|
1798
1835
|
errors: newErrors
|
|
1799
1836
|
});
|
|
1800
1837
|
}
|
|
1801
|
-
if (error instanceof Error &&
|
|
1838
|
+
if (error instanceof Error && import_provider22.APICallError.isInstance(error) && error.isRetryable === true && tryNumber <= maxRetries) {
|
|
1802
1839
|
await (0, import_provider_utils7.delay)(
|
|
1803
1840
|
getRetryDelayInMs({
|
|
1804
1841
|
error,
|
|
@@ -1871,7 +1908,7 @@ function extractTextContent(content) {
|
|
|
1871
1908
|
}
|
|
1872
1909
|
|
|
1873
1910
|
// src/generate-text/generated-file.ts
|
|
1874
|
-
var import_provider_utils8 = require("@
|
|
1911
|
+
var import_provider_utils8 = require("@zenning/provider-utils");
|
|
1875
1912
|
var DefaultGeneratedFile = class {
|
|
1876
1913
|
constructor({
|
|
1877
1914
|
data,
|
|
@@ -1905,7 +1942,7 @@ var DefaultGeneratedFileWithType = class extends DefaultGeneratedFile {
|
|
|
1905
1942
|
};
|
|
1906
1943
|
|
|
1907
1944
|
// src/generate-text/parse-tool-call.ts
|
|
1908
|
-
var import_provider_utils9 = require("@
|
|
1945
|
+
var import_provider_utils9 = require("@zenning/provider-utils");
|
|
1909
1946
|
async function parseToolCall({
|
|
1910
1947
|
toolCall,
|
|
1911
1948
|
tools,
|
|
@@ -2082,14 +2119,14 @@ async function isStopConditionMet({
|
|
|
2082
2119
|
}
|
|
2083
2120
|
|
|
2084
2121
|
// src/prompt/create-tool-model-output.ts
|
|
2085
|
-
var
|
|
2122
|
+
var import_provider23 = require("@zenning/provider");
|
|
2086
2123
|
function createToolModelOutput({
|
|
2087
2124
|
output,
|
|
2088
2125
|
tool: tool3,
|
|
2089
2126
|
errorMode
|
|
2090
2127
|
}) {
|
|
2091
2128
|
if (errorMode === "text") {
|
|
2092
|
-
return { type: "error-text", value: (0,
|
|
2129
|
+
return { type: "error-text", value: (0, import_provider23.getErrorMessage)(output) };
|
|
2093
2130
|
} else if (errorMode === "json") {
|
|
2094
2131
|
return { type: "error-json", value: toJSONValue(output) };
|
|
2095
2132
|
}
|
|
@@ -2778,8 +2815,8 @@ function asContent({
|
|
|
2778
2815
|
}
|
|
2779
2816
|
|
|
2780
2817
|
// src/generate-text/stream-text.ts
|
|
2781
|
-
var
|
|
2782
|
-
var import_provider_utils14 = require("@
|
|
2818
|
+
var import_provider24 = require("@zenning/provider");
|
|
2819
|
+
var import_provider_utils14 = require("@zenning/provider-utils");
|
|
2783
2820
|
|
|
2784
2821
|
// src/util/prepare-headers.ts
|
|
2785
2822
|
function prepareHeaders(headers, defaultHeaders) {
|
|
@@ -2916,7 +2953,7 @@ function getResponseUIMessageId({
|
|
|
2916
2953
|
}
|
|
2917
2954
|
|
|
2918
2955
|
// src/ui/process-ui-message-stream.ts
|
|
2919
|
-
var import_provider_utils12 = require("@
|
|
2956
|
+
var import_provider_utils12 = require("@zenning/provider-utils");
|
|
2920
2957
|
|
|
2921
2958
|
// src/ui-message-stream/ui-message-chunks.ts
|
|
2922
2959
|
var import_v47 = require("zod/v4");
|
|
@@ -2987,11 +3024,6 @@ var uiMessageChunkSchema = import_v47.z.union([
|
|
|
2987
3024
|
providerExecuted: import_v47.z.boolean().optional(),
|
|
2988
3025
|
dynamic: import_v47.z.boolean().optional()
|
|
2989
3026
|
}),
|
|
2990
|
-
import_v47.z.strictObject({
|
|
2991
|
-
type: import_v47.z.literal("reasoning"),
|
|
2992
|
-
text: import_v47.z.string(),
|
|
2993
|
-
providerMetadata: providerMetadataSchema.optional()
|
|
2994
|
-
}),
|
|
2995
3027
|
import_v47.z.strictObject({
|
|
2996
3028
|
type: import_v47.z.literal("reasoning-start"),
|
|
2997
3029
|
id: import_v47.z.string(),
|
|
@@ -3008,9 +3040,6 @@ var uiMessageChunkSchema = import_v47.z.union([
|
|
|
3008
3040
|
id: import_v47.z.string(),
|
|
3009
3041
|
providerMetadata: providerMetadataSchema.optional()
|
|
3010
3042
|
}),
|
|
3011
|
-
import_v47.z.strictObject({
|
|
3012
|
-
type: import_v47.z.literal("reasoning-part-finish")
|
|
3013
|
-
}),
|
|
3014
3043
|
import_v47.z.strictObject({
|
|
3015
3044
|
type: import_v47.z.literal("source-url"),
|
|
3016
3045
|
sourceId: import_v47.z.string(),
|
|
@@ -3036,7 +3065,15 @@ var uiMessageChunkSchema = import_v47.z.union([
|
|
|
3036
3065
|
providerMetadata: providerMetadataSchema.optional()
|
|
3037
3066
|
}),
|
|
3038
3067
|
import_v47.z.strictObject({
|
|
3039
|
-
type: import_v47.z.
|
|
3068
|
+
type: import_v47.z.literal("source-execution-file"),
|
|
3069
|
+
sourceId: import_v47.z.string(),
|
|
3070
|
+
providerMetadata: providerMetadataSchema.optional()
|
|
3071
|
+
}),
|
|
3072
|
+
import_v47.z.strictObject({
|
|
3073
|
+
type: import_v47.z.custom(
|
|
3074
|
+
(value) => typeof value === "string" && value.startsWith("data-"),
|
|
3075
|
+
{ message: 'Type must start with "data-"' }
|
|
3076
|
+
),
|
|
3040
3077
|
id: import_v47.z.string().optional(),
|
|
3041
3078
|
data: import_v47.z.unknown(),
|
|
3042
3079
|
transient: import_v47.z.boolean().optional()
|
|
@@ -3102,7 +3139,7 @@ function mergeObjects(base, overrides) {
|
|
|
3102
3139
|
}
|
|
3103
3140
|
|
|
3104
3141
|
// src/util/parse-partial-json.ts
|
|
3105
|
-
var import_provider_utils11 = require("@
|
|
3142
|
+
var import_provider_utils11 = require("@zenning/provider-utils");
|
|
3106
3143
|
|
|
3107
3144
|
// src/util/fix-json.ts
|
|
3108
3145
|
function fixJson(input) {
|
|
@@ -3666,6 +3703,15 @@ function processUIMessageStream({
|
|
|
3666
3703
|
write();
|
|
3667
3704
|
break;
|
|
3668
3705
|
}
|
|
3706
|
+
case "source-execution-file": {
|
|
3707
|
+
state.message.parts.push({
|
|
3708
|
+
type: "source-execution-file",
|
|
3709
|
+
sourceId: chunk.sourceId,
|
|
3710
|
+
providerMetadata: chunk.providerMetadata
|
|
3711
|
+
});
|
|
3712
|
+
write();
|
|
3713
|
+
break;
|
|
3714
|
+
}
|
|
3669
3715
|
case "source-document": {
|
|
3670
3716
|
state.message.parts.push({
|
|
3671
3717
|
type: "source-document",
|
|
@@ -4263,7 +4309,7 @@ function now() {
|
|
|
4263
4309
|
}
|
|
4264
4310
|
|
|
4265
4311
|
// src/generate-text/run-tools-transformation.ts
|
|
4266
|
-
var import_provider_utils13 = require("@
|
|
4312
|
+
var import_provider_utils13 = require("@zenning/provider-utils");
|
|
4267
4313
|
function runToolsTransformation({
|
|
4268
4314
|
tools,
|
|
4269
4315
|
generatorStream,
|
|
@@ -4695,7 +4741,7 @@ var DefaultStreamTextResult = class {
|
|
|
4695
4741
|
let activeReasoningContent = {};
|
|
4696
4742
|
const eventProcessor = new TransformStream({
|
|
4697
4743
|
async transform(chunk, controller) {
|
|
4698
|
-
var _a17, _b, _c;
|
|
4744
|
+
var _a17, _b, _c, _d;
|
|
4699
4745
|
controller.enqueue(chunk);
|
|
4700
4746
|
const { part } = chunk;
|
|
4701
4747
|
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") {
|
|
@@ -4728,6 +4774,18 @@ var DefaultStreamTextResult = class {
|
|
|
4728
4774
|
activeText.providerMetadata = (_a17 = part.providerMetadata) != null ? _a17 : activeText.providerMetadata;
|
|
4729
4775
|
}
|
|
4730
4776
|
if (part.type === "text-end") {
|
|
4777
|
+
const activeText = activeTextContent[part.id];
|
|
4778
|
+
if (activeText == null) {
|
|
4779
|
+
controller.enqueue({
|
|
4780
|
+
part: {
|
|
4781
|
+
type: "error",
|
|
4782
|
+
error: `text part ${part.id} not found`
|
|
4783
|
+
},
|
|
4784
|
+
partialOutput: void 0
|
|
4785
|
+
});
|
|
4786
|
+
return;
|
|
4787
|
+
}
|
|
4788
|
+
activeText.providerMetadata = (_b = part.providerMetadata) != null ? _b : activeText.providerMetadata;
|
|
4731
4789
|
delete activeTextContent[part.id];
|
|
4732
4790
|
}
|
|
4733
4791
|
if (part.type === "reasoning-start") {
|
|
@@ -4751,7 +4809,7 @@ var DefaultStreamTextResult = class {
|
|
|
4751
4809
|
return;
|
|
4752
4810
|
}
|
|
4753
4811
|
activeReasoning.text += part.text;
|
|
4754
|
-
activeReasoning.providerMetadata = (
|
|
4812
|
+
activeReasoning.providerMetadata = (_c = part.providerMetadata) != null ? _c : activeReasoning.providerMetadata;
|
|
4755
4813
|
}
|
|
4756
4814
|
if (part.type === "reasoning-end") {
|
|
4757
4815
|
const activeReasoning = activeReasoningContent[part.id];
|
|
@@ -4765,7 +4823,7 @@ var DefaultStreamTextResult = class {
|
|
|
4765
4823
|
});
|
|
4766
4824
|
return;
|
|
4767
4825
|
}
|
|
4768
|
-
activeReasoning.providerMetadata = (
|
|
4826
|
+
activeReasoning.providerMetadata = (_d = part.providerMetadata) != null ? _d : activeReasoning.providerMetadata;
|
|
4769
4827
|
delete activeReasoningContent[part.id];
|
|
4770
4828
|
}
|
|
4771
4829
|
if (part.type === "file") {
|
|
@@ -5514,7 +5572,7 @@ var DefaultStreamTextResult = class {
|
|
|
5514
5572
|
sendSources = false,
|
|
5515
5573
|
sendStart = true,
|
|
5516
5574
|
sendFinish = true,
|
|
5517
|
-
onError =
|
|
5575
|
+
onError = import_provider24.getErrorMessage
|
|
5518
5576
|
} = {}) {
|
|
5519
5577
|
const responseMessageId = generateMessageId != null ? getResponseUIMessageId({
|
|
5520
5578
|
originalMessages,
|
|
@@ -6020,14 +6078,33 @@ var Agent = class {
|
|
|
6020
6078
|
constructor(settings) {
|
|
6021
6079
|
this.settings = settings;
|
|
6022
6080
|
}
|
|
6081
|
+
/**
|
|
6082
|
+
* The name of the agent.
|
|
6083
|
+
*/
|
|
6084
|
+
get name() {
|
|
6085
|
+
return this.settings.name;
|
|
6086
|
+
}
|
|
6087
|
+
/**
|
|
6088
|
+
* The tools that the agent can use.
|
|
6089
|
+
*/
|
|
6023
6090
|
get tools() {
|
|
6024
6091
|
return this.settings.tools;
|
|
6025
6092
|
}
|
|
6026
6093
|
async generate(options) {
|
|
6027
|
-
|
|
6094
|
+
var _a17;
|
|
6095
|
+
return generateText({
|
|
6096
|
+
...this.settings,
|
|
6097
|
+
stopWhen: (_a17 = this.settings.stopWhen) != null ? _a17 : stepCountIs(20),
|
|
6098
|
+
...options
|
|
6099
|
+
});
|
|
6028
6100
|
}
|
|
6029
6101
|
stream(options) {
|
|
6030
|
-
|
|
6102
|
+
var _a17;
|
|
6103
|
+
return streamText({
|
|
6104
|
+
...this.settings,
|
|
6105
|
+
stopWhen: (_a17 = this.settings.stopWhen) != null ? _a17 : stepCountIs(20),
|
|
6106
|
+
...options
|
|
6107
|
+
});
|
|
6031
6108
|
}
|
|
6032
6109
|
/**
|
|
6033
6110
|
* Creates a response object that streams UI messages to the client.
|
|
@@ -6040,7 +6117,7 @@ var Agent = class {
|
|
|
6040
6117
|
};
|
|
6041
6118
|
|
|
6042
6119
|
// src/embed/embed.ts
|
|
6043
|
-
var import_provider_utils15 = require("@
|
|
6120
|
+
var import_provider_utils15 = require("@zenning/provider-utils");
|
|
6044
6121
|
async function embed({
|
|
6045
6122
|
model: modelArg,
|
|
6046
6123
|
value,
|
|
@@ -6159,7 +6236,7 @@ var DefaultEmbedResult = class {
|
|
|
6159
6236
|
};
|
|
6160
6237
|
|
|
6161
6238
|
// src/embed/embed-many.ts
|
|
6162
|
-
var import_provider_utils16 = require("@
|
|
6239
|
+
var import_provider_utils16 = require("@zenning/provider-utils");
|
|
6163
6240
|
|
|
6164
6241
|
// src/util/split-array.ts
|
|
6165
6242
|
function splitArray(array, chunkSize) {
|
|
@@ -6408,7 +6485,7 @@ var DefaultEmbedManyResult = class {
|
|
|
6408
6485
|
};
|
|
6409
6486
|
|
|
6410
6487
|
// src/generate-image/generate-image.ts
|
|
6411
|
-
var import_provider_utils17 = require("@
|
|
6488
|
+
var import_provider_utils17 = require("@zenning/provider-utils");
|
|
6412
6489
|
async function generateImage({
|
|
6413
6490
|
model,
|
|
6414
6491
|
prompt,
|
|
@@ -6423,7 +6500,7 @@ async function generateImage({
|
|
|
6423
6500
|
headers
|
|
6424
6501
|
}) {
|
|
6425
6502
|
var _a17, _b;
|
|
6426
|
-
if (model.specificationVersion !== "
|
|
6503
|
+
if (model.specificationVersion !== "v3") {
|
|
6427
6504
|
throw new UnsupportedModelVersionError({
|
|
6428
6505
|
version: model.specificationVersion,
|
|
6429
6506
|
provider: model.provider,
|
|
@@ -6526,7 +6603,7 @@ async function invokeModelMaxImagesPerCall(model) {
|
|
|
6526
6603
|
}
|
|
6527
6604
|
|
|
6528
6605
|
// src/generate-object/generate-object.ts
|
|
6529
|
-
var import_provider_utils20 = require("@
|
|
6606
|
+
var import_provider_utils20 = require("@zenning/provider-utils");
|
|
6530
6607
|
|
|
6531
6608
|
// src/generate-text/extract-reasoning-content.ts
|
|
6532
6609
|
function extractReasoningContent(content) {
|
|
@@ -6537,8 +6614,8 @@ function extractReasoningContent(content) {
|
|
|
6537
6614
|
}
|
|
6538
6615
|
|
|
6539
6616
|
// src/generate-object/output-strategy.ts
|
|
6540
|
-
var
|
|
6541
|
-
var import_provider_utils18 = require("@
|
|
6617
|
+
var import_provider25 = require("@zenning/provider");
|
|
6618
|
+
var import_provider_utils18 = require("@zenning/provider-utils");
|
|
6542
6619
|
var noSchemaOutputStrategy = {
|
|
6543
6620
|
type: "no-schema",
|
|
6544
6621
|
jsonSchema: void 0,
|
|
@@ -6558,7 +6635,7 @@ var noSchemaOutputStrategy = {
|
|
|
6558
6635
|
} : { success: true, value };
|
|
6559
6636
|
},
|
|
6560
6637
|
createElementStream() {
|
|
6561
|
-
throw new
|
|
6638
|
+
throw new import_provider25.UnsupportedFunctionalityError({
|
|
6562
6639
|
functionality: "element streams in no-schema mode"
|
|
6563
6640
|
});
|
|
6564
6641
|
}
|
|
@@ -6580,7 +6657,7 @@ var objectOutputStrategy = (schema) => ({
|
|
|
6580
6657
|
return (0, import_provider_utils18.safeValidateTypes)({ value, schema });
|
|
6581
6658
|
},
|
|
6582
6659
|
createElementStream() {
|
|
6583
|
-
throw new
|
|
6660
|
+
throw new import_provider25.UnsupportedFunctionalityError({
|
|
6584
6661
|
functionality: "element streams in object mode"
|
|
6585
6662
|
});
|
|
6586
6663
|
}
|
|
@@ -6608,10 +6685,10 @@ var arrayOutputStrategy = (schema) => {
|
|
|
6608
6685
|
isFinalDelta
|
|
6609
6686
|
}) {
|
|
6610
6687
|
var _a17;
|
|
6611
|
-
if (!(0,
|
|
6688
|
+
if (!(0, import_provider25.isJSONObject)(value) || !(0, import_provider25.isJSONArray)(value.elements)) {
|
|
6612
6689
|
return {
|
|
6613
6690
|
success: false,
|
|
6614
|
-
error: new
|
|
6691
|
+
error: new import_provider25.TypeValidationError({
|
|
6615
6692
|
value,
|
|
6616
6693
|
cause: "value must be an object that contains an array of elements"
|
|
6617
6694
|
})
|
|
@@ -6651,10 +6728,10 @@ var arrayOutputStrategy = (schema) => {
|
|
|
6651
6728
|
};
|
|
6652
6729
|
},
|
|
6653
6730
|
async validateFinalResult(value) {
|
|
6654
|
-
if (!(0,
|
|
6731
|
+
if (!(0, import_provider25.isJSONObject)(value) || !(0, import_provider25.isJSONArray)(value.elements)) {
|
|
6655
6732
|
return {
|
|
6656
6733
|
success: false,
|
|
6657
|
-
error: new
|
|
6734
|
+
error: new import_provider25.TypeValidationError({
|
|
6658
6735
|
value,
|
|
6659
6736
|
cause: "value must be an object that contains an array of elements"
|
|
6660
6737
|
})
|
|
@@ -6717,10 +6794,10 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6717
6794
|
additionalProperties: false
|
|
6718
6795
|
},
|
|
6719
6796
|
async validateFinalResult(value) {
|
|
6720
|
-
if (!(0,
|
|
6797
|
+
if (!(0, import_provider25.isJSONObject)(value) || typeof value.result !== "string") {
|
|
6721
6798
|
return {
|
|
6722
6799
|
success: false,
|
|
6723
|
-
error: new
|
|
6800
|
+
error: new import_provider25.TypeValidationError({
|
|
6724
6801
|
value,
|
|
6725
6802
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
6726
6803
|
})
|
|
@@ -6729,17 +6806,17 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6729
6806
|
const result = value.result;
|
|
6730
6807
|
return enumValues.includes(result) ? { success: true, value: result } : {
|
|
6731
6808
|
success: false,
|
|
6732
|
-
error: new
|
|
6809
|
+
error: new import_provider25.TypeValidationError({
|
|
6733
6810
|
value,
|
|
6734
6811
|
cause: "value must be a string in the enum"
|
|
6735
6812
|
})
|
|
6736
6813
|
};
|
|
6737
6814
|
},
|
|
6738
6815
|
async validatePartialResult({ value, textDelta }) {
|
|
6739
|
-
if (!(0,
|
|
6816
|
+
if (!(0, import_provider25.isJSONObject)(value) || typeof value.result !== "string") {
|
|
6740
6817
|
return {
|
|
6741
6818
|
success: false,
|
|
6742
|
-
error: new
|
|
6819
|
+
error: new import_provider25.TypeValidationError({
|
|
6743
6820
|
value,
|
|
6744
6821
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
6745
6822
|
})
|
|
@@ -6752,7 +6829,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6752
6829
|
if (value.result.length === 0 || possibleEnumValues.length === 0) {
|
|
6753
6830
|
return {
|
|
6754
6831
|
success: false,
|
|
6755
|
-
error: new
|
|
6832
|
+
error: new import_provider25.TypeValidationError({
|
|
6756
6833
|
value,
|
|
6757
6834
|
cause: "value must be a string in the enum"
|
|
6758
6835
|
})
|
|
@@ -6767,7 +6844,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6767
6844
|
};
|
|
6768
6845
|
},
|
|
6769
6846
|
createElementStream() {
|
|
6770
|
-
throw new
|
|
6847
|
+
throw new import_provider25.UnsupportedFunctionalityError({
|
|
6771
6848
|
functionality: "element streams in enum mode"
|
|
6772
6849
|
});
|
|
6773
6850
|
}
|
|
@@ -6795,8 +6872,8 @@ function getOutputStrategy({
|
|
|
6795
6872
|
}
|
|
6796
6873
|
|
|
6797
6874
|
// src/generate-object/parse-and-validate-object-result.ts
|
|
6798
|
-
var
|
|
6799
|
-
var import_provider_utils19 = require("@
|
|
6875
|
+
var import_provider26 = require("@zenning/provider");
|
|
6876
|
+
var import_provider_utils19 = require("@zenning/provider-utils");
|
|
6800
6877
|
async function parseAndValidateObjectResult(result, outputStrategy, context) {
|
|
6801
6878
|
const parseResult = await (0, import_provider_utils19.safeParseJSON)({ text: result });
|
|
6802
6879
|
if (!parseResult.success) {
|
|
@@ -6833,7 +6910,7 @@ async function parseAndValidateObjectResultWithRepair(result, outputStrategy, re
|
|
|
6833
6910
|
try {
|
|
6834
6911
|
return await parseAndValidateObjectResult(result, outputStrategy, context);
|
|
6835
6912
|
} catch (error) {
|
|
6836
|
-
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (
|
|
6913
|
+
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (import_provider26.JSONParseError.isInstance(error.cause) || import_provider26.TypeValidationError.isInstance(error.cause))) {
|
|
6837
6914
|
const repairedText = await repairText({
|
|
6838
6915
|
text: result,
|
|
6839
6916
|
error: error.cause
|
|
@@ -7234,7 +7311,7 @@ var DefaultGenerateObjectResult = class {
|
|
|
7234
7311
|
};
|
|
7235
7312
|
|
|
7236
7313
|
// src/generate-object/stream-object.ts
|
|
7237
|
-
var import_provider_utils22 = require("@
|
|
7314
|
+
var import_provider_utils22 = require("@zenning/provider-utils");
|
|
7238
7315
|
|
|
7239
7316
|
// src/util/cosine-similarity.ts
|
|
7240
7317
|
function cosineSimilarity(vector1, vector2) {
|
|
@@ -7344,7 +7421,7 @@ var SerialJobExecutor = class {
|
|
|
7344
7421
|
};
|
|
7345
7422
|
|
|
7346
7423
|
// src/util/simulate-readable-stream.ts
|
|
7347
|
-
var import_provider_utils21 = require("@
|
|
7424
|
+
var import_provider_utils21 = require("@zenning/provider-utils");
|
|
7348
7425
|
function simulateReadableStream({
|
|
7349
7426
|
chunks,
|
|
7350
7427
|
initialDelayInMs = 0,
|
|
@@ -7888,19 +7965,7 @@ var DefaultStreamObjectResult = class {
|
|
|
7888
7965
|
};
|
|
7889
7966
|
|
|
7890
7967
|
// src/generate-speech/generate-speech.ts
|
|
7891
|
-
var import_provider_utils23 = require("@
|
|
7892
|
-
|
|
7893
|
-
// src/error/no-speech-generated-error.ts
|
|
7894
|
-
var import_provider26 = require("@zenning/provider");
|
|
7895
|
-
var NoSpeechGeneratedError = class extends import_provider26.AISDKError {
|
|
7896
|
-
constructor(options) {
|
|
7897
|
-
super({
|
|
7898
|
-
name: "AI_NoSpeechGeneratedError",
|
|
7899
|
-
message: "No speech audio generated."
|
|
7900
|
-
});
|
|
7901
|
-
this.responses = options.responses;
|
|
7902
|
-
}
|
|
7903
|
-
};
|
|
7968
|
+
var import_provider_utils23 = require("@zenning/provider-utils");
|
|
7904
7969
|
|
|
7905
7970
|
// src/generate-speech/generated-audio-file.ts
|
|
7906
7971
|
var DefaultGeneratedAudioFile = class extends DefaultGeneratedFile {
|
|
@@ -8003,7 +8068,7 @@ __export(output_exports, {
|
|
|
8003
8068
|
object: () => object,
|
|
8004
8069
|
text: () => text
|
|
8005
8070
|
});
|
|
8006
|
-
var import_provider_utils24 = require("@
|
|
8071
|
+
var import_provider_utils24 = require("@zenning/provider-utils");
|
|
8007
8072
|
var text = () => ({
|
|
8008
8073
|
type: "text",
|
|
8009
8074
|
responseFormat: { type: "text" },
|
|
@@ -8074,7 +8139,7 @@ var object = ({
|
|
|
8074
8139
|
};
|
|
8075
8140
|
|
|
8076
8141
|
// src/generate-text/smooth-stream.ts
|
|
8077
|
-
var import_provider_utils25 = require("@
|
|
8142
|
+
var import_provider_utils25 = require("@zenning/provider-utils");
|
|
8078
8143
|
var import_provider27 = require("@zenning/provider");
|
|
8079
8144
|
var CHUNKING_REGEXPS = {
|
|
8080
8145
|
word: /\S+\s+/m,
|
|
@@ -8153,7 +8218,7 @@ function defaultSettingsMiddleware({
|
|
|
8153
8218
|
settings
|
|
8154
8219
|
}) {
|
|
8155
8220
|
return {
|
|
8156
|
-
middlewareVersion: "
|
|
8221
|
+
middlewareVersion: "v3",
|
|
8157
8222
|
transformParams: async ({ params }) => {
|
|
8158
8223
|
return mergeObjects(settings, params);
|
|
8159
8224
|
}
|
|
@@ -8187,7 +8252,7 @@ function extractReasoningMiddleware({
|
|
|
8187
8252
|
const openingTag = `<${tagName}>`;
|
|
8188
8253
|
const closingTag = `</${tagName}>`;
|
|
8189
8254
|
return {
|
|
8190
|
-
middlewareVersion: "
|
|
8255
|
+
middlewareVersion: "v3",
|
|
8191
8256
|
wrapGenerate: async ({ doGenerate }) => {
|
|
8192
8257
|
const { content, ...rest } = await doGenerate();
|
|
8193
8258
|
const transformedContent = [];
|
|
@@ -8333,7 +8398,7 @@ function extractReasoningMiddleware({
|
|
|
8333
8398
|
// src/middleware/simulate-streaming-middleware.ts
|
|
8334
8399
|
function simulateStreamingMiddleware() {
|
|
8335
8400
|
return {
|
|
8336
|
-
middlewareVersion: "
|
|
8401
|
+
middlewareVersion: "v3",
|
|
8337
8402
|
wrapStream: async ({ doGenerate }) => {
|
|
8338
8403
|
const result = await doGenerate();
|
|
8339
8404
|
let id = 0;
|
|
@@ -8430,7 +8495,7 @@ var doWrap = ({
|
|
|
8430
8495
|
return transformParams ? await transformParams({ params, type, model }) : params;
|
|
8431
8496
|
}
|
|
8432
8497
|
return {
|
|
8433
|
-
specificationVersion: "
|
|
8498
|
+
specificationVersion: "v3",
|
|
8434
8499
|
provider: (_a17 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a17 : model.provider,
|
|
8435
8500
|
modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
|
|
8436
8501
|
supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
|
|
@@ -8682,10 +8747,10 @@ var DefaultProviderRegistry = class {
|
|
|
8682
8747
|
};
|
|
8683
8748
|
|
|
8684
8749
|
// src/tool/mcp/mcp-client.ts
|
|
8685
|
-
var import_provider_utils27 = require("@
|
|
8750
|
+
var import_provider_utils27 = require("@zenning/provider-utils");
|
|
8686
8751
|
|
|
8687
8752
|
// src/tool/mcp/mcp-sse-transport.ts
|
|
8688
|
-
var import_provider_utils26 = require("@
|
|
8753
|
+
var import_provider_utils26 = require("@zenning/provider-utils");
|
|
8689
8754
|
|
|
8690
8755
|
// src/tool/mcp/json-rpc-message.ts
|
|
8691
8756
|
var import_v49 = require("zod/v4");
|
|
@@ -9257,7 +9322,7 @@ var DefaultMCPClient = class {
|
|
|
9257
9322
|
};
|
|
9258
9323
|
|
|
9259
9324
|
// src/transcribe/transcribe.ts
|
|
9260
|
-
var import_provider_utils28 = require("@
|
|
9325
|
+
var import_provider_utils28 = require("@zenning/provider-utils");
|
|
9261
9326
|
|
|
9262
9327
|
// src/error/no-transcript-generated-error.ts
|
|
9263
9328
|
var import_provider31 = require("@zenning/provider");
|
|
@@ -9339,7 +9404,7 @@ var DefaultTranscriptionResult = class {
|
|
|
9339
9404
|
};
|
|
9340
9405
|
|
|
9341
9406
|
// src/ui/call-completion-api.ts
|
|
9342
|
-
var import_provider_utils29 = require("@
|
|
9407
|
+
var import_provider_utils29 = require("@zenning/provider-utils");
|
|
9343
9408
|
|
|
9344
9409
|
// src/ui/process-text-stream.ts
|
|
9345
9410
|
async function processTextStream({
|
|
@@ -9473,7 +9538,7 @@ async function callCompletionApi({
|
|
|
9473
9538
|
}
|
|
9474
9539
|
|
|
9475
9540
|
// src/ui/chat.ts
|
|
9476
|
-
var import_provider_utils32 = require("@
|
|
9541
|
+
var import_provider_utils32 = require("@zenning/provider-utils");
|
|
9477
9542
|
|
|
9478
9543
|
// src/ui/convert-file-list-to-file-ui-parts.ts
|
|
9479
9544
|
async function convertFileListToFileUIParts(files) {
|
|
@@ -9506,10 +9571,10 @@ async function convertFileListToFileUIParts(files) {
|
|
|
9506
9571
|
}
|
|
9507
9572
|
|
|
9508
9573
|
// src/ui/default-chat-transport.ts
|
|
9509
|
-
var import_provider_utils31 = require("@
|
|
9574
|
+
var import_provider_utils31 = require("@zenning/provider-utils");
|
|
9510
9575
|
|
|
9511
9576
|
// src/ui/http-chat-transport.ts
|
|
9512
|
-
var import_provider_utils30 = require("@
|
|
9577
|
+
var import_provider_utils30 = require("@zenning/provider-utils");
|
|
9513
9578
|
var HttpChatTransport = class {
|
|
9514
9579
|
constructor({
|
|
9515
9580
|
api = "/api/chat",
|
|
@@ -9763,9 +9828,11 @@ var AbstractChat = class {
|
|
|
9763
9828
|
}
|
|
9764
9829
|
};
|
|
9765
9830
|
this.addToolResult = async ({
|
|
9831
|
+
state = "output-available",
|
|
9766
9832
|
tool: tool3,
|
|
9767
9833
|
toolCallId,
|
|
9768
|
-
output
|
|
9834
|
+
output,
|
|
9835
|
+
errorText
|
|
9769
9836
|
}) => this.jobExecutor.run(async () => {
|
|
9770
9837
|
var _a17, _b;
|
|
9771
9838
|
const messages = this.state.messages;
|
|
@@ -9773,16 +9840,16 @@ var AbstractChat = class {
|
|
|
9773
9840
|
this.state.replaceMessage(messages.length - 1, {
|
|
9774
9841
|
...lastMessage,
|
|
9775
9842
|
parts: lastMessage.parts.map(
|
|
9776
|
-
(part) => isToolOrDynamicToolUIPart(part) && part.toolCallId === toolCallId ? { ...part, state
|
|
9843
|
+
(part) => isToolOrDynamicToolUIPart(part) && part.toolCallId === toolCallId ? { ...part, state, output, errorText } : part
|
|
9777
9844
|
)
|
|
9778
9845
|
});
|
|
9779
9846
|
if (this.activeResponse) {
|
|
9780
9847
|
this.activeResponse.state.message.parts = this.activeResponse.state.message.parts.map(
|
|
9781
9848
|
(part) => isToolOrDynamicToolUIPart(part) && part.toolCallId === toolCallId ? {
|
|
9782
9849
|
...part,
|
|
9783
|
-
state
|
|
9850
|
+
state,
|
|
9784
9851
|
output,
|
|
9785
|
-
errorText
|
|
9852
|
+
errorText
|
|
9786
9853
|
} : part
|
|
9787
9854
|
);
|
|
9788
9855
|
}
|
|
@@ -10040,7 +10107,9 @@ function lastAssistantMessageIsCompleteWithToolCalls({
|
|
|
10040
10107
|
return part.type === "step-start" ? index : lastIndex;
|
|
10041
10108
|
}, -1);
|
|
10042
10109
|
const lastStepToolInvocations = message.parts.slice(lastStepStartIndex + 1).filter(isToolOrDynamicToolUIPart);
|
|
10043
|
-
return lastStepToolInvocations.length > 0 && lastStepToolInvocations.every(
|
|
10110
|
+
return lastStepToolInvocations.length > 0 && lastStepToolInvocations.every(
|
|
10111
|
+
(part) => part.state === "output-available" || part.state === "output-error"
|
|
10112
|
+
);
|
|
10044
10113
|
}
|
|
10045
10114
|
|
|
10046
10115
|
// src/ui/transform-text-to-ui-message-stream.ts
|
|
@@ -10080,7 +10149,7 @@ var TextStreamChatTransport = class extends HttpChatTransport {
|
|
|
10080
10149
|
|
|
10081
10150
|
// src/ui/validate-ui-messages.ts
|
|
10082
10151
|
var import_provider32 = require("@zenning/provider");
|
|
10083
|
-
var import_provider_utils33 = require("@
|
|
10152
|
+
var import_provider_utils33 = require("@zenning/provider-utils");
|
|
10084
10153
|
var import_v410 = require("zod/v4");
|
|
10085
10154
|
var textUIPartSchema = import_v410.z.object({
|
|
10086
10155
|
type: import_v410.z.literal("text"),
|
|
@@ -10169,6 +10238,11 @@ var dynamicToolUIPartSchemas = [
|
|
|
10169
10238
|
callProviderMetadata: providerMetadataSchema.optional()
|
|
10170
10239
|
})
|
|
10171
10240
|
];
|
|
10241
|
+
var sourceExecutionFileUIPartSchema = import_v410.z.object({
|
|
10242
|
+
type: import_v410.z.literal("source-execution-file"),
|
|
10243
|
+
sourceId: import_v410.z.string(),
|
|
10244
|
+
providerMetadata: providerMetadataSchema.optional()
|
|
10245
|
+
});
|
|
10172
10246
|
var toolUIPartSchemas = [
|
|
10173
10247
|
import_v410.z.object({
|
|
10174
10248
|
type: import_v410.z.string().startsWith("tool-"),
|
|
@@ -10223,92 +10297,129 @@ var uiMessageSchema = import_v410.z.object({
|
|
|
10223
10297
|
sourceDocumentUIPartSchema,
|
|
10224
10298
|
fileUIPartSchema,
|
|
10225
10299
|
stepStartUIPartSchema,
|
|
10300
|
+
sourceExecutionFileUIPartSchema,
|
|
10226
10301
|
dataUIPartSchema,
|
|
10227
10302
|
...dynamicToolUIPartSchemas,
|
|
10228
10303
|
...toolUIPartSchemas
|
|
10229
10304
|
])
|
|
10230
10305
|
)
|
|
10231
10306
|
});
|
|
10232
|
-
async function
|
|
10307
|
+
async function safeValidateUIMessages({
|
|
10233
10308
|
messages,
|
|
10234
10309
|
metadataSchema,
|
|
10235
10310
|
dataSchemas,
|
|
10236
10311
|
tools
|
|
10237
10312
|
}) {
|
|
10238
|
-
|
|
10239
|
-
|
|
10240
|
-
|
|
10313
|
+
try {
|
|
10314
|
+
if (messages == null) {
|
|
10315
|
+
return {
|
|
10316
|
+
success: false,
|
|
10317
|
+
error: new InvalidArgumentError({
|
|
10318
|
+
parameter: "messages",
|
|
10319
|
+
value: messages,
|
|
10320
|
+
message: "messages parameter must be provided"
|
|
10321
|
+
})
|
|
10322
|
+
};
|
|
10323
|
+
}
|
|
10324
|
+
const validatedMessages = await (0, import_provider_utils33.validateTypes)({
|
|
10241
10325
|
value: messages,
|
|
10242
|
-
|
|
10326
|
+
schema: import_v410.z.array(uiMessageSchema)
|
|
10243
10327
|
});
|
|
10244
|
-
|
|
10245
|
-
|
|
10246
|
-
value: messages,
|
|
10247
|
-
schema: import_v410.z.array(uiMessageSchema)
|
|
10248
|
-
});
|
|
10249
|
-
if (metadataSchema) {
|
|
10250
|
-
for (const message of validatedMessages) {
|
|
10251
|
-
await (0, import_provider_utils33.validateTypes)({
|
|
10252
|
-
value: message.metadata,
|
|
10253
|
-
schema: metadataSchema
|
|
10254
|
-
});
|
|
10255
|
-
}
|
|
10256
|
-
}
|
|
10257
|
-
if (dataSchemas) {
|
|
10258
|
-
for (const message of validatedMessages) {
|
|
10259
|
-
const dataParts = message.parts.filter(
|
|
10260
|
-
(part) => part.type.startsWith("data-")
|
|
10261
|
-
);
|
|
10262
|
-
for (const dataPart of dataParts) {
|
|
10263
|
-
const dataName = dataPart.type.slice(5);
|
|
10264
|
-
const dataSchema = dataSchemas[dataName];
|
|
10265
|
-
if (!dataSchema) {
|
|
10266
|
-
throw new import_provider32.TypeValidationError({
|
|
10267
|
-
value: dataPart.data,
|
|
10268
|
-
cause: `No data schema found for data part ${dataName}`
|
|
10269
|
-
});
|
|
10270
|
-
}
|
|
10328
|
+
if (metadataSchema) {
|
|
10329
|
+
for (const message of validatedMessages) {
|
|
10271
10330
|
await (0, import_provider_utils33.validateTypes)({
|
|
10272
|
-
value:
|
|
10273
|
-
schema:
|
|
10331
|
+
value: message.metadata,
|
|
10332
|
+
schema: metadataSchema
|
|
10274
10333
|
});
|
|
10275
10334
|
}
|
|
10276
10335
|
}
|
|
10277
|
-
|
|
10278
|
-
|
|
10279
|
-
|
|
10280
|
-
|
|
10281
|
-
|
|
10282
|
-
|
|
10283
|
-
|
|
10284
|
-
|
|
10285
|
-
|
|
10286
|
-
|
|
10287
|
-
|
|
10288
|
-
|
|
10289
|
-
|
|
10290
|
-
|
|
10291
|
-
|
|
10292
|
-
|
|
10336
|
+
if (dataSchemas) {
|
|
10337
|
+
for (const message of validatedMessages) {
|
|
10338
|
+
const dataParts = message.parts.filter(
|
|
10339
|
+
(part) => part.type.startsWith("data-")
|
|
10340
|
+
);
|
|
10341
|
+
for (const dataPart of dataParts) {
|
|
10342
|
+
const dataName = dataPart.type.slice(5);
|
|
10343
|
+
const dataSchema = dataSchemas[dataName];
|
|
10344
|
+
if (!dataSchema) {
|
|
10345
|
+
return {
|
|
10346
|
+
success: false,
|
|
10347
|
+
error: new import_provider32.TypeValidationError({
|
|
10348
|
+
value: dataPart.data,
|
|
10349
|
+
cause: `No data schema found for data part ${dataName}`
|
|
10350
|
+
})
|
|
10351
|
+
};
|
|
10352
|
+
}
|
|
10293
10353
|
await (0, import_provider_utils33.validateTypes)({
|
|
10294
|
-
value:
|
|
10295
|
-
schema:
|
|
10354
|
+
value: dataPart.data,
|
|
10355
|
+
schema: dataSchema
|
|
10296
10356
|
});
|
|
10297
10357
|
}
|
|
10298
|
-
|
|
10299
|
-
|
|
10300
|
-
|
|
10301
|
-
|
|
10302
|
-
|
|
10358
|
+
}
|
|
10359
|
+
}
|
|
10360
|
+
if (tools) {
|
|
10361
|
+
for (const message of validatedMessages) {
|
|
10362
|
+
const toolParts = message.parts.filter(
|
|
10363
|
+
(part) => part.type.startsWith("tool-")
|
|
10364
|
+
);
|
|
10365
|
+
for (const toolPart of toolParts) {
|
|
10366
|
+
const toolName = toolPart.type.slice(5);
|
|
10367
|
+
const tool3 = tools[toolName];
|
|
10368
|
+
if (!tool3) {
|
|
10369
|
+
return {
|
|
10370
|
+
success: false,
|
|
10371
|
+
error: new import_provider32.TypeValidationError({
|
|
10372
|
+
value: toolPart.input,
|
|
10373
|
+
cause: `No tool schema found for tool part ${toolName}`
|
|
10374
|
+
})
|
|
10375
|
+
};
|
|
10376
|
+
}
|
|
10377
|
+
if (toolPart.state === "input-available" || toolPart.state === "output-available" || toolPart.state === "output-error") {
|
|
10378
|
+
await (0, import_provider_utils33.validateTypes)({
|
|
10379
|
+
value: toolPart.input,
|
|
10380
|
+
schema: tool3.inputSchema
|
|
10381
|
+
});
|
|
10382
|
+
}
|
|
10383
|
+
if (toolPart.state === "output-available" && tool3.outputSchema) {
|
|
10384
|
+
await (0, import_provider_utils33.validateTypes)({
|
|
10385
|
+
value: toolPart.output,
|
|
10386
|
+
schema: tool3.outputSchema
|
|
10387
|
+
});
|
|
10388
|
+
}
|
|
10303
10389
|
}
|
|
10304
10390
|
}
|
|
10305
10391
|
}
|
|
10392
|
+
return {
|
|
10393
|
+
success: true,
|
|
10394
|
+
data: validatedMessages
|
|
10395
|
+
};
|
|
10396
|
+
} catch (error) {
|
|
10397
|
+
const err = error;
|
|
10398
|
+
return {
|
|
10399
|
+
success: false,
|
|
10400
|
+
error: err
|
|
10401
|
+
};
|
|
10306
10402
|
}
|
|
10307
|
-
|
|
10403
|
+
}
|
|
10404
|
+
async function validateUIMessages({
|
|
10405
|
+
messages,
|
|
10406
|
+
metadataSchema,
|
|
10407
|
+
dataSchemas,
|
|
10408
|
+
tools
|
|
10409
|
+
}) {
|
|
10410
|
+
const response = await safeValidateUIMessages({
|
|
10411
|
+
messages,
|
|
10412
|
+
metadataSchema,
|
|
10413
|
+
dataSchemas,
|
|
10414
|
+
tools
|
|
10415
|
+
});
|
|
10416
|
+
if (!response.success)
|
|
10417
|
+
throw response.error;
|
|
10418
|
+
return response.data;
|
|
10308
10419
|
}
|
|
10309
10420
|
|
|
10310
10421
|
// src/ui-message-stream/create-ui-message-stream.ts
|
|
10311
|
-
var import_provider_utils34 = require("@
|
|
10422
|
+
var import_provider_utils34 = require("@zenning/provider-utils");
|
|
10312
10423
|
function createUIMessageStream({
|
|
10313
10424
|
execute,
|
|
10314
10425
|
onError = import_provider_utils34.getErrorMessage,
|
|
@@ -10445,6 +10556,7 @@ function readUIMessageStream({
|
|
|
10445
10556
|
AISDKError,
|
|
10446
10557
|
APICallError,
|
|
10447
10558
|
AbstractChat,
|
|
10559
|
+
Agent,
|
|
10448
10560
|
DefaultChatTransport,
|
|
10449
10561
|
DownloadError,
|
|
10450
10562
|
EmptyResponseBodyError,
|
|
@@ -10467,6 +10579,7 @@ function readUIMessageStream({
|
|
|
10467
10579
|
NoObjectGeneratedError,
|
|
10468
10580
|
NoOutputGeneratedError,
|
|
10469
10581
|
NoOutputSpecifiedError,
|
|
10582
|
+
NoSpeechGeneratedError,
|
|
10470
10583
|
NoSuchModelError,
|
|
10471
10584
|
NoSuchProviderError,
|
|
10472
10585
|
NoSuchToolError,
|
|
@@ -10525,10 +10638,12 @@ function readUIMessageStream({
|
|
|
10525
10638
|
jsonSchema,
|
|
10526
10639
|
lastAssistantMessageIsCompleteWithToolCalls,
|
|
10527
10640
|
modelMessageSchema,
|
|
10641
|
+
parseJsonEventStream,
|
|
10528
10642
|
parsePartialJson,
|
|
10529
10643
|
pipeTextStreamToResponse,
|
|
10530
10644
|
pipeUIMessageStreamToResponse,
|
|
10531
10645
|
readUIMessageStream,
|
|
10646
|
+
safeValidateUIMessages,
|
|
10532
10647
|
simulateReadableStream,
|
|
10533
10648
|
simulateStreamingMiddleware,
|
|
10534
10649
|
smoothStream,
|
|
@@ -10538,6 +10653,7 @@ function readUIMessageStream({
|
|
|
10538
10653
|
systemModelMessageSchema,
|
|
10539
10654
|
tool,
|
|
10540
10655
|
toolModelMessageSchema,
|
|
10656
|
+
uiMessageChunkSchema,
|
|
10541
10657
|
userModelMessageSchema,
|
|
10542
10658
|
validateUIMessages,
|
|
10543
10659
|
wrapLanguageModel,
|