@zenning/ai 5.1.0 → 5.2.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 +255 -120
- package/dist/index.d.ts +255 -120
- package/dist/index.js +317 -218
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +272 -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 +7 -5
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.2.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,10 @@ 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.custom(
|
|
3069
|
+
(value) => typeof value === "string" && value.startsWith("data-"),
|
|
3070
|
+
{ message: 'Type must start with "data-"' }
|
|
3071
|
+
),
|
|
3040
3072
|
id: import_v47.z.string().optional(),
|
|
3041
3073
|
data: import_v47.z.unknown(),
|
|
3042
3074
|
transient: import_v47.z.boolean().optional()
|
|
@@ -3102,7 +3134,7 @@ function mergeObjects(base, overrides) {
|
|
|
3102
3134
|
}
|
|
3103
3135
|
|
|
3104
3136
|
// src/util/parse-partial-json.ts
|
|
3105
|
-
var import_provider_utils11 = require("@
|
|
3137
|
+
var import_provider_utils11 = require("@zenning/provider-utils");
|
|
3106
3138
|
|
|
3107
3139
|
// src/util/fix-json.ts
|
|
3108
3140
|
function fixJson(input) {
|
|
@@ -4263,7 +4295,7 @@ function now() {
|
|
|
4263
4295
|
}
|
|
4264
4296
|
|
|
4265
4297
|
// src/generate-text/run-tools-transformation.ts
|
|
4266
|
-
var import_provider_utils13 = require("@
|
|
4298
|
+
var import_provider_utils13 = require("@zenning/provider-utils");
|
|
4267
4299
|
function runToolsTransformation({
|
|
4268
4300
|
tools,
|
|
4269
4301
|
generatorStream,
|
|
@@ -4695,7 +4727,7 @@ var DefaultStreamTextResult = class {
|
|
|
4695
4727
|
let activeReasoningContent = {};
|
|
4696
4728
|
const eventProcessor = new TransformStream({
|
|
4697
4729
|
async transform(chunk, controller) {
|
|
4698
|
-
var _a17, _b, _c;
|
|
4730
|
+
var _a17, _b, _c, _d;
|
|
4699
4731
|
controller.enqueue(chunk);
|
|
4700
4732
|
const { part } = chunk;
|
|
4701
4733
|
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 +4760,18 @@ var DefaultStreamTextResult = class {
|
|
|
4728
4760
|
activeText.providerMetadata = (_a17 = part.providerMetadata) != null ? _a17 : activeText.providerMetadata;
|
|
4729
4761
|
}
|
|
4730
4762
|
if (part.type === "text-end") {
|
|
4763
|
+
const activeText = activeTextContent[part.id];
|
|
4764
|
+
if (activeText == null) {
|
|
4765
|
+
controller.enqueue({
|
|
4766
|
+
part: {
|
|
4767
|
+
type: "error",
|
|
4768
|
+
error: `text part ${part.id} not found`
|
|
4769
|
+
},
|
|
4770
|
+
partialOutput: void 0
|
|
4771
|
+
});
|
|
4772
|
+
return;
|
|
4773
|
+
}
|
|
4774
|
+
activeText.providerMetadata = (_b = part.providerMetadata) != null ? _b : activeText.providerMetadata;
|
|
4731
4775
|
delete activeTextContent[part.id];
|
|
4732
4776
|
}
|
|
4733
4777
|
if (part.type === "reasoning-start") {
|
|
@@ -4751,7 +4795,7 @@ var DefaultStreamTextResult = class {
|
|
|
4751
4795
|
return;
|
|
4752
4796
|
}
|
|
4753
4797
|
activeReasoning.text += part.text;
|
|
4754
|
-
activeReasoning.providerMetadata = (
|
|
4798
|
+
activeReasoning.providerMetadata = (_c = part.providerMetadata) != null ? _c : activeReasoning.providerMetadata;
|
|
4755
4799
|
}
|
|
4756
4800
|
if (part.type === "reasoning-end") {
|
|
4757
4801
|
const activeReasoning = activeReasoningContent[part.id];
|
|
@@ -4765,7 +4809,7 @@ var DefaultStreamTextResult = class {
|
|
|
4765
4809
|
});
|
|
4766
4810
|
return;
|
|
4767
4811
|
}
|
|
4768
|
-
activeReasoning.providerMetadata = (
|
|
4812
|
+
activeReasoning.providerMetadata = (_d = part.providerMetadata) != null ? _d : activeReasoning.providerMetadata;
|
|
4769
4813
|
delete activeReasoningContent[part.id];
|
|
4770
4814
|
}
|
|
4771
4815
|
if (part.type === "file") {
|
|
@@ -5514,7 +5558,7 @@ var DefaultStreamTextResult = class {
|
|
|
5514
5558
|
sendSources = false,
|
|
5515
5559
|
sendStart = true,
|
|
5516
5560
|
sendFinish = true,
|
|
5517
|
-
onError =
|
|
5561
|
+
onError = import_provider24.getErrorMessage
|
|
5518
5562
|
} = {}) {
|
|
5519
5563
|
const responseMessageId = generateMessageId != null ? getResponseUIMessageId({
|
|
5520
5564
|
originalMessages,
|
|
@@ -5610,6 +5654,9 @@ var DefaultStreamTextResult = class {
|
|
|
5610
5654
|
mediaType: part.mediaType,
|
|
5611
5655
|
title: part.title,
|
|
5612
5656
|
filename: part.filename,
|
|
5657
|
+
fileId: part.fileId,
|
|
5658
|
+
startIndex: part.startIndex,
|
|
5659
|
+
endIndex: part.endIndex,
|
|
5613
5660
|
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
|
|
5614
5661
|
});
|
|
5615
5662
|
}
|
|
@@ -6017,14 +6064,33 @@ var Agent = class {
|
|
|
6017
6064
|
constructor(settings) {
|
|
6018
6065
|
this.settings = settings;
|
|
6019
6066
|
}
|
|
6067
|
+
/**
|
|
6068
|
+
* The name of the agent.
|
|
6069
|
+
*/
|
|
6070
|
+
get name() {
|
|
6071
|
+
return this.settings.name;
|
|
6072
|
+
}
|
|
6073
|
+
/**
|
|
6074
|
+
* The tools that the agent can use.
|
|
6075
|
+
*/
|
|
6020
6076
|
get tools() {
|
|
6021
6077
|
return this.settings.tools;
|
|
6022
6078
|
}
|
|
6023
6079
|
async generate(options) {
|
|
6024
|
-
|
|
6080
|
+
var _a17;
|
|
6081
|
+
return generateText({
|
|
6082
|
+
...this.settings,
|
|
6083
|
+
stopWhen: (_a17 = this.settings.stopWhen) != null ? _a17 : stepCountIs(20),
|
|
6084
|
+
...options
|
|
6085
|
+
});
|
|
6025
6086
|
}
|
|
6026
6087
|
stream(options) {
|
|
6027
|
-
|
|
6088
|
+
var _a17;
|
|
6089
|
+
return streamText({
|
|
6090
|
+
...this.settings,
|
|
6091
|
+
stopWhen: (_a17 = this.settings.stopWhen) != null ? _a17 : stepCountIs(20),
|
|
6092
|
+
...options
|
|
6093
|
+
});
|
|
6028
6094
|
}
|
|
6029
6095
|
/**
|
|
6030
6096
|
* Creates a response object that streams UI messages to the client.
|
|
@@ -6037,7 +6103,7 @@ var Agent = class {
|
|
|
6037
6103
|
};
|
|
6038
6104
|
|
|
6039
6105
|
// src/embed/embed.ts
|
|
6040
|
-
var import_provider_utils15 = require("@
|
|
6106
|
+
var import_provider_utils15 = require("@zenning/provider-utils");
|
|
6041
6107
|
async function embed({
|
|
6042
6108
|
model: modelArg,
|
|
6043
6109
|
value,
|
|
@@ -6156,7 +6222,7 @@ var DefaultEmbedResult = class {
|
|
|
6156
6222
|
};
|
|
6157
6223
|
|
|
6158
6224
|
// src/embed/embed-many.ts
|
|
6159
|
-
var import_provider_utils16 = require("@
|
|
6225
|
+
var import_provider_utils16 = require("@zenning/provider-utils");
|
|
6160
6226
|
|
|
6161
6227
|
// src/util/split-array.ts
|
|
6162
6228
|
function splitArray(array, chunkSize) {
|
|
@@ -6405,7 +6471,7 @@ var DefaultEmbedManyResult = class {
|
|
|
6405
6471
|
};
|
|
6406
6472
|
|
|
6407
6473
|
// src/generate-image/generate-image.ts
|
|
6408
|
-
var import_provider_utils17 = require("@
|
|
6474
|
+
var import_provider_utils17 = require("@zenning/provider-utils");
|
|
6409
6475
|
async function generateImage({
|
|
6410
6476
|
model,
|
|
6411
6477
|
prompt,
|
|
@@ -6420,7 +6486,7 @@ async function generateImage({
|
|
|
6420
6486
|
headers
|
|
6421
6487
|
}) {
|
|
6422
6488
|
var _a17, _b;
|
|
6423
|
-
if (model.specificationVersion !== "
|
|
6489
|
+
if (model.specificationVersion !== "v3") {
|
|
6424
6490
|
throw new UnsupportedModelVersionError({
|
|
6425
6491
|
version: model.specificationVersion,
|
|
6426
6492
|
provider: model.provider,
|
|
@@ -6523,7 +6589,7 @@ async function invokeModelMaxImagesPerCall(model) {
|
|
|
6523
6589
|
}
|
|
6524
6590
|
|
|
6525
6591
|
// src/generate-object/generate-object.ts
|
|
6526
|
-
var import_provider_utils20 = require("@
|
|
6592
|
+
var import_provider_utils20 = require("@zenning/provider-utils");
|
|
6527
6593
|
|
|
6528
6594
|
// src/generate-text/extract-reasoning-content.ts
|
|
6529
6595
|
function extractReasoningContent(content) {
|
|
@@ -6534,8 +6600,8 @@ function extractReasoningContent(content) {
|
|
|
6534
6600
|
}
|
|
6535
6601
|
|
|
6536
6602
|
// src/generate-object/output-strategy.ts
|
|
6537
|
-
var
|
|
6538
|
-
var import_provider_utils18 = require("@
|
|
6603
|
+
var import_provider25 = require("@zenning/provider");
|
|
6604
|
+
var import_provider_utils18 = require("@zenning/provider-utils");
|
|
6539
6605
|
var noSchemaOutputStrategy = {
|
|
6540
6606
|
type: "no-schema",
|
|
6541
6607
|
jsonSchema: void 0,
|
|
@@ -6555,7 +6621,7 @@ var noSchemaOutputStrategy = {
|
|
|
6555
6621
|
} : { success: true, value };
|
|
6556
6622
|
},
|
|
6557
6623
|
createElementStream() {
|
|
6558
|
-
throw new
|
|
6624
|
+
throw new import_provider25.UnsupportedFunctionalityError({
|
|
6559
6625
|
functionality: "element streams in no-schema mode"
|
|
6560
6626
|
});
|
|
6561
6627
|
}
|
|
@@ -6577,7 +6643,7 @@ var objectOutputStrategy = (schema) => ({
|
|
|
6577
6643
|
return (0, import_provider_utils18.safeValidateTypes)({ value, schema });
|
|
6578
6644
|
},
|
|
6579
6645
|
createElementStream() {
|
|
6580
|
-
throw new
|
|
6646
|
+
throw new import_provider25.UnsupportedFunctionalityError({
|
|
6581
6647
|
functionality: "element streams in object mode"
|
|
6582
6648
|
});
|
|
6583
6649
|
}
|
|
@@ -6605,10 +6671,10 @@ var arrayOutputStrategy = (schema) => {
|
|
|
6605
6671
|
isFinalDelta
|
|
6606
6672
|
}) {
|
|
6607
6673
|
var _a17;
|
|
6608
|
-
if (!(0,
|
|
6674
|
+
if (!(0, import_provider25.isJSONObject)(value) || !(0, import_provider25.isJSONArray)(value.elements)) {
|
|
6609
6675
|
return {
|
|
6610
6676
|
success: false,
|
|
6611
|
-
error: new
|
|
6677
|
+
error: new import_provider25.TypeValidationError({
|
|
6612
6678
|
value,
|
|
6613
6679
|
cause: "value must be an object that contains an array of elements"
|
|
6614
6680
|
})
|
|
@@ -6648,10 +6714,10 @@ var arrayOutputStrategy = (schema) => {
|
|
|
6648
6714
|
};
|
|
6649
6715
|
},
|
|
6650
6716
|
async validateFinalResult(value) {
|
|
6651
|
-
if (!(0,
|
|
6717
|
+
if (!(0, import_provider25.isJSONObject)(value) || !(0, import_provider25.isJSONArray)(value.elements)) {
|
|
6652
6718
|
return {
|
|
6653
6719
|
success: false,
|
|
6654
|
-
error: new
|
|
6720
|
+
error: new import_provider25.TypeValidationError({
|
|
6655
6721
|
value,
|
|
6656
6722
|
cause: "value must be an object that contains an array of elements"
|
|
6657
6723
|
})
|
|
@@ -6714,10 +6780,10 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6714
6780
|
additionalProperties: false
|
|
6715
6781
|
},
|
|
6716
6782
|
async validateFinalResult(value) {
|
|
6717
|
-
if (!(0,
|
|
6783
|
+
if (!(0, import_provider25.isJSONObject)(value) || typeof value.result !== "string") {
|
|
6718
6784
|
return {
|
|
6719
6785
|
success: false,
|
|
6720
|
-
error: new
|
|
6786
|
+
error: new import_provider25.TypeValidationError({
|
|
6721
6787
|
value,
|
|
6722
6788
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
6723
6789
|
})
|
|
@@ -6726,17 +6792,17 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6726
6792
|
const result = value.result;
|
|
6727
6793
|
return enumValues.includes(result) ? { success: true, value: result } : {
|
|
6728
6794
|
success: false,
|
|
6729
|
-
error: new
|
|
6795
|
+
error: new import_provider25.TypeValidationError({
|
|
6730
6796
|
value,
|
|
6731
6797
|
cause: "value must be a string in the enum"
|
|
6732
6798
|
})
|
|
6733
6799
|
};
|
|
6734
6800
|
},
|
|
6735
6801
|
async validatePartialResult({ value, textDelta }) {
|
|
6736
|
-
if (!(0,
|
|
6802
|
+
if (!(0, import_provider25.isJSONObject)(value) || typeof value.result !== "string") {
|
|
6737
6803
|
return {
|
|
6738
6804
|
success: false,
|
|
6739
|
-
error: new
|
|
6805
|
+
error: new import_provider25.TypeValidationError({
|
|
6740
6806
|
value,
|
|
6741
6807
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
6742
6808
|
})
|
|
@@ -6749,7 +6815,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6749
6815
|
if (value.result.length === 0 || possibleEnumValues.length === 0) {
|
|
6750
6816
|
return {
|
|
6751
6817
|
success: false,
|
|
6752
|
-
error: new
|
|
6818
|
+
error: new import_provider25.TypeValidationError({
|
|
6753
6819
|
value,
|
|
6754
6820
|
cause: "value must be a string in the enum"
|
|
6755
6821
|
})
|
|
@@ -6764,7 +6830,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
6764
6830
|
};
|
|
6765
6831
|
},
|
|
6766
6832
|
createElementStream() {
|
|
6767
|
-
throw new
|
|
6833
|
+
throw new import_provider25.UnsupportedFunctionalityError({
|
|
6768
6834
|
functionality: "element streams in enum mode"
|
|
6769
6835
|
});
|
|
6770
6836
|
}
|
|
@@ -6792,8 +6858,8 @@ function getOutputStrategy({
|
|
|
6792
6858
|
}
|
|
6793
6859
|
|
|
6794
6860
|
// src/generate-object/parse-and-validate-object-result.ts
|
|
6795
|
-
var
|
|
6796
|
-
var import_provider_utils19 = require("@
|
|
6861
|
+
var import_provider26 = require("@zenning/provider");
|
|
6862
|
+
var import_provider_utils19 = require("@zenning/provider-utils");
|
|
6797
6863
|
async function parseAndValidateObjectResult(result, outputStrategy, context) {
|
|
6798
6864
|
const parseResult = await (0, import_provider_utils19.safeParseJSON)({ text: result });
|
|
6799
6865
|
if (!parseResult.success) {
|
|
@@ -6830,7 +6896,7 @@ async function parseAndValidateObjectResultWithRepair(result, outputStrategy, re
|
|
|
6830
6896
|
try {
|
|
6831
6897
|
return await parseAndValidateObjectResult(result, outputStrategy, context);
|
|
6832
6898
|
} catch (error) {
|
|
6833
|
-
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (
|
|
6899
|
+
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (import_provider26.JSONParseError.isInstance(error.cause) || import_provider26.TypeValidationError.isInstance(error.cause))) {
|
|
6834
6900
|
const repairedText = await repairText({
|
|
6835
6901
|
text: result,
|
|
6836
6902
|
error: error.cause
|
|
@@ -7231,7 +7297,7 @@ var DefaultGenerateObjectResult = class {
|
|
|
7231
7297
|
};
|
|
7232
7298
|
|
|
7233
7299
|
// src/generate-object/stream-object.ts
|
|
7234
|
-
var import_provider_utils22 = require("@
|
|
7300
|
+
var import_provider_utils22 = require("@zenning/provider-utils");
|
|
7235
7301
|
|
|
7236
7302
|
// src/util/cosine-similarity.ts
|
|
7237
7303
|
function cosineSimilarity(vector1, vector2) {
|
|
@@ -7341,7 +7407,7 @@ var SerialJobExecutor = class {
|
|
|
7341
7407
|
};
|
|
7342
7408
|
|
|
7343
7409
|
// src/util/simulate-readable-stream.ts
|
|
7344
|
-
var import_provider_utils21 = require("@
|
|
7410
|
+
var import_provider_utils21 = require("@zenning/provider-utils");
|
|
7345
7411
|
function simulateReadableStream({
|
|
7346
7412
|
chunks,
|
|
7347
7413
|
initialDelayInMs = 0,
|
|
@@ -7885,19 +7951,7 @@ var DefaultStreamObjectResult = class {
|
|
|
7885
7951
|
};
|
|
7886
7952
|
|
|
7887
7953
|
// src/generate-speech/generate-speech.ts
|
|
7888
|
-
var import_provider_utils23 = require("@
|
|
7889
|
-
|
|
7890
|
-
// src/error/no-speech-generated-error.ts
|
|
7891
|
-
var import_provider26 = require("@zenning/provider");
|
|
7892
|
-
var NoSpeechGeneratedError = class extends import_provider26.AISDKError {
|
|
7893
|
-
constructor(options) {
|
|
7894
|
-
super({
|
|
7895
|
-
name: "AI_NoSpeechGeneratedError",
|
|
7896
|
-
message: "No speech audio generated."
|
|
7897
|
-
});
|
|
7898
|
-
this.responses = options.responses;
|
|
7899
|
-
}
|
|
7900
|
-
};
|
|
7954
|
+
var import_provider_utils23 = require("@zenning/provider-utils");
|
|
7901
7955
|
|
|
7902
7956
|
// src/generate-speech/generated-audio-file.ts
|
|
7903
7957
|
var DefaultGeneratedAudioFile = class extends DefaultGeneratedFile {
|
|
@@ -8000,7 +8054,7 @@ __export(output_exports, {
|
|
|
8000
8054
|
object: () => object,
|
|
8001
8055
|
text: () => text
|
|
8002
8056
|
});
|
|
8003
|
-
var import_provider_utils24 = require("@
|
|
8057
|
+
var import_provider_utils24 = require("@zenning/provider-utils");
|
|
8004
8058
|
var text = () => ({
|
|
8005
8059
|
type: "text",
|
|
8006
8060
|
responseFormat: { type: "text" },
|
|
@@ -8071,7 +8125,7 @@ var object = ({
|
|
|
8071
8125
|
};
|
|
8072
8126
|
|
|
8073
8127
|
// src/generate-text/smooth-stream.ts
|
|
8074
|
-
var import_provider_utils25 = require("@
|
|
8128
|
+
var import_provider_utils25 = require("@zenning/provider-utils");
|
|
8075
8129
|
var import_provider27 = require("@zenning/provider");
|
|
8076
8130
|
var CHUNKING_REGEXPS = {
|
|
8077
8131
|
word: /\S+\s+/m,
|
|
@@ -8150,7 +8204,7 @@ function defaultSettingsMiddleware({
|
|
|
8150
8204
|
settings
|
|
8151
8205
|
}) {
|
|
8152
8206
|
return {
|
|
8153
|
-
middlewareVersion: "
|
|
8207
|
+
middlewareVersion: "v3",
|
|
8154
8208
|
transformParams: async ({ params }) => {
|
|
8155
8209
|
return mergeObjects(settings, params);
|
|
8156
8210
|
}
|
|
@@ -8184,7 +8238,7 @@ function extractReasoningMiddleware({
|
|
|
8184
8238
|
const openingTag = `<${tagName}>`;
|
|
8185
8239
|
const closingTag = `</${tagName}>`;
|
|
8186
8240
|
return {
|
|
8187
|
-
middlewareVersion: "
|
|
8241
|
+
middlewareVersion: "v3",
|
|
8188
8242
|
wrapGenerate: async ({ doGenerate }) => {
|
|
8189
8243
|
const { content, ...rest } = await doGenerate();
|
|
8190
8244
|
const transformedContent = [];
|
|
@@ -8330,7 +8384,7 @@ function extractReasoningMiddleware({
|
|
|
8330
8384
|
// src/middleware/simulate-streaming-middleware.ts
|
|
8331
8385
|
function simulateStreamingMiddleware() {
|
|
8332
8386
|
return {
|
|
8333
|
-
middlewareVersion: "
|
|
8387
|
+
middlewareVersion: "v3",
|
|
8334
8388
|
wrapStream: async ({ doGenerate }) => {
|
|
8335
8389
|
const result = await doGenerate();
|
|
8336
8390
|
let id = 0;
|
|
@@ -8427,7 +8481,7 @@ var doWrap = ({
|
|
|
8427
8481
|
return transformParams ? await transformParams({ params, type, model }) : params;
|
|
8428
8482
|
}
|
|
8429
8483
|
return {
|
|
8430
|
-
specificationVersion: "
|
|
8484
|
+
specificationVersion: "v3",
|
|
8431
8485
|
provider: (_a17 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a17 : model.provider,
|
|
8432
8486
|
modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
|
|
8433
8487
|
supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
|
|
@@ -8679,10 +8733,10 @@ var DefaultProviderRegistry = class {
|
|
|
8679
8733
|
};
|
|
8680
8734
|
|
|
8681
8735
|
// src/tool/mcp/mcp-client.ts
|
|
8682
|
-
var import_provider_utils27 = require("@
|
|
8736
|
+
var import_provider_utils27 = require("@zenning/provider-utils");
|
|
8683
8737
|
|
|
8684
8738
|
// src/tool/mcp/mcp-sse-transport.ts
|
|
8685
|
-
var import_provider_utils26 = require("@
|
|
8739
|
+
var import_provider_utils26 = require("@zenning/provider-utils");
|
|
8686
8740
|
|
|
8687
8741
|
// src/tool/mcp/json-rpc-message.ts
|
|
8688
8742
|
var import_v49 = require("zod/v4");
|
|
@@ -9254,7 +9308,7 @@ var DefaultMCPClient = class {
|
|
|
9254
9308
|
};
|
|
9255
9309
|
|
|
9256
9310
|
// src/transcribe/transcribe.ts
|
|
9257
|
-
var import_provider_utils28 = require("@
|
|
9311
|
+
var import_provider_utils28 = require("@zenning/provider-utils");
|
|
9258
9312
|
|
|
9259
9313
|
// src/error/no-transcript-generated-error.ts
|
|
9260
9314
|
var import_provider31 = require("@zenning/provider");
|
|
@@ -9336,7 +9390,7 @@ var DefaultTranscriptionResult = class {
|
|
|
9336
9390
|
};
|
|
9337
9391
|
|
|
9338
9392
|
// src/ui/call-completion-api.ts
|
|
9339
|
-
var import_provider_utils29 = require("@
|
|
9393
|
+
var import_provider_utils29 = require("@zenning/provider-utils");
|
|
9340
9394
|
|
|
9341
9395
|
// src/ui/process-text-stream.ts
|
|
9342
9396
|
async function processTextStream({
|
|
@@ -9470,7 +9524,7 @@ async function callCompletionApi({
|
|
|
9470
9524
|
}
|
|
9471
9525
|
|
|
9472
9526
|
// src/ui/chat.ts
|
|
9473
|
-
var import_provider_utils32 = require("@
|
|
9527
|
+
var import_provider_utils32 = require("@zenning/provider-utils");
|
|
9474
9528
|
|
|
9475
9529
|
// src/ui/convert-file-list-to-file-ui-parts.ts
|
|
9476
9530
|
async function convertFileListToFileUIParts(files) {
|
|
@@ -9503,10 +9557,10 @@ async function convertFileListToFileUIParts(files) {
|
|
|
9503
9557
|
}
|
|
9504
9558
|
|
|
9505
9559
|
// src/ui/default-chat-transport.ts
|
|
9506
|
-
var import_provider_utils31 = require("@
|
|
9560
|
+
var import_provider_utils31 = require("@zenning/provider-utils");
|
|
9507
9561
|
|
|
9508
9562
|
// src/ui/http-chat-transport.ts
|
|
9509
|
-
var import_provider_utils30 = require("@
|
|
9563
|
+
var import_provider_utils30 = require("@zenning/provider-utils");
|
|
9510
9564
|
var HttpChatTransport = class {
|
|
9511
9565
|
constructor({
|
|
9512
9566
|
api = "/api/chat",
|
|
@@ -9760,9 +9814,11 @@ var AbstractChat = class {
|
|
|
9760
9814
|
}
|
|
9761
9815
|
};
|
|
9762
9816
|
this.addToolResult = async ({
|
|
9817
|
+
state = "output-available",
|
|
9763
9818
|
tool: tool3,
|
|
9764
9819
|
toolCallId,
|
|
9765
|
-
output
|
|
9820
|
+
output,
|
|
9821
|
+
errorText
|
|
9766
9822
|
}) => this.jobExecutor.run(async () => {
|
|
9767
9823
|
var _a17, _b;
|
|
9768
9824
|
const messages = this.state.messages;
|
|
@@ -9770,16 +9826,16 @@ var AbstractChat = class {
|
|
|
9770
9826
|
this.state.replaceMessage(messages.length - 1, {
|
|
9771
9827
|
...lastMessage,
|
|
9772
9828
|
parts: lastMessage.parts.map(
|
|
9773
|
-
(part) => isToolOrDynamicToolUIPart(part) && part.toolCallId === toolCallId ? { ...part, state
|
|
9829
|
+
(part) => isToolOrDynamicToolUIPart(part) && part.toolCallId === toolCallId ? { ...part, state, output, errorText } : part
|
|
9774
9830
|
)
|
|
9775
9831
|
});
|
|
9776
9832
|
if (this.activeResponse) {
|
|
9777
9833
|
this.activeResponse.state.message.parts = this.activeResponse.state.message.parts.map(
|
|
9778
9834
|
(part) => isToolOrDynamicToolUIPart(part) && part.toolCallId === toolCallId ? {
|
|
9779
9835
|
...part,
|
|
9780
|
-
state
|
|
9836
|
+
state,
|
|
9781
9837
|
output,
|
|
9782
|
-
errorText
|
|
9838
|
+
errorText
|
|
9783
9839
|
} : part
|
|
9784
9840
|
);
|
|
9785
9841
|
}
|
|
@@ -10037,7 +10093,9 @@ function lastAssistantMessageIsCompleteWithToolCalls({
|
|
|
10037
10093
|
return part.type === "step-start" ? index : lastIndex;
|
|
10038
10094
|
}, -1);
|
|
10039
10095
|
const lastStepToolInvocations = message.parts.slice(lastStepStartIndex + 1).filter(isToolOrDynamicToolUIPart);
|
|
10040
|
-
return lastStepToolInvocations.length > 0 && lastStepToolInvocations.every(
|
|
10096
|
+
return lastStepToolInvocations.length > 0 && lastStepToolInvocations.every(
|
|
10097
|
+
(part) => part.state === "output-available" || part.state === "output-error"
|
|
10098
|
+
);
|
|
10041
10099
|
}
|
|
10042
10100
|
|
|
10043
10101
|
// src/ui/transform-text-to-ui-message-stream.ts
|
|
@@ -10077,7 +10135,7 @@ var TextStreamChatTransport = class extends HttpChatTransport {
|
|
|
10077
10135
|
|
|
10078
10136
|
// src/ui/validate-ui-messages.ts
|
|
10079
10137
|
var import_provider32 = require("@zenning/provider");
|
|
10080
|
-
var import_provider_utils33 = require("@
|
|
10138
|
+
var import_provider_utils33 = require("@zenning/provider-utils");
|
|
10081
10139
|
var import_v410 = require("zod/v4");
|
|
10082
10140
|
var textUIPartSchema = import_v410.z.object({
|
|
10083
10141
|
type: import_v410.z.literal("text"),
|
|
@@ -10226,86 +10284,122 @@ var uiMessageSchema = import_v410.z.object({
|
|
|
10226
10284
|
])
|
|
10227
10285
|
)
|
|
10228
10286
|
});
|
|
10229
|
-
async function
|
|
10287
|
+
async function safeValidateUIMessages({
|
|
10230
10288
|
messages,
|
|
10231
10289
|
metadataSchema,
|
|
10232
10290
|
dataSchemas,
|
|
10233
10291
|
tools
|
|
10234
10292
|
}) {
|
|
10235
|
-
|
|
10236
|
-
|
|
10237
|
-
|
|
10293
|
+
try {
|
|
10294
|
+
if (messages == null) {
|
|
10295
|
+
return {
|
|
10296
|
+
success: false,
|
|
10297
|
+
error: new InvalidArgumentError({
|
|
10298
|
+
parameter: "messages",
|
|
10299
|
+
value: messages,
|
|
10300
|
+
message: "messages parameter must be provided"
|
|
10301
|
+
})
|
|
10302
|
+
};
|
|
10303
|
+
}
|
|
10304
|
+
const validatedMessages = await (0, import_provider_utils33.validateTypes)({
|
|
10238
10305
|
value: messages,
|
|
10239
|
-
|
|
10306
|
+
schema: import_v410.z.array(uiMessageSchema)
|
|
10240
10307
|
});
|
|
10241
|
-
|
|
10242
|
-
|
|
10243
|
-
value: messages,
|
|
10244
|
-
schema: import_v410.z.array(uiMessageSchema)
|
|
10245
|
-
});
|
|
10246
|
-
if (metadataSchema) {
|
|
10247
|
-
for (const message of validatedMessages) {
|
|
10248
|
-
await (0, import_provider_utils33.validateTypes)({
|
|
10249
|
-
value: message.metadata,
|
|
10250
|
-
schema: metadataSchema
|
|
10251
|
-
});
|
|
10252
|
-
}
|
|
10253
|
-
}
|
|
10254
|
-
if (dataSchemas) {
|
|
10255
|
-
for (const message of validatedMessages) {
|
|
10256
|
-
const dataParts = message.parts.filter(
|
|
10257
|
-
(part) => part.type.startsWith("data-")
|
|
10258
|
-
);
|
|
10259
|
-
for (const dataPart of dataParts) {
|
|
10260
|
-
const dataName = dataPart.type.slice(5);
|
|
10261
|
-
const dataSchema = dataSchemas[dataName];
|
|
10262
|
-
if (!dataSchema) {
|
|
10263
|
-
throw new import_provider32.TypeValidationError({
|
|
10264
|
-
value: dataPart.data,
|
|
10265
|
-
cause: `No data schema found for data part ${dataName}`
|
|
10266
|
-
});
|
|
10267
|
-
}
|
|
10308
|
+
if (metadataSchema) {
|
|
10309
|
+
for (const message of validatedMessages) {
|
|
10268
10310
|
await (0, import_provider_utils33.validateTypes)({
|
|
10269
|
-
value:
|
|
10270
|
-
schema:
|
|
10311
|
+
value: message.metadata,
|
|
10312
|
+
schema: metadataSchema
|
|
10271
10313
|
});
|
|
10272
10314
|
}
|
|
10273
10315
|
}
|
|
10274
|
-
|
|
10275
|
-
|
|
10276
|
-
|
|
10277
|
-
|
|
10278
|
-
|
|
10279
|
-
|
|
10280
|
-
|
|
10281
|
-
|
|
10282
|
-
|
|
10283
|
-
|
|
10284
|
-
|
|
10285
|
-
|
|
10286
|
-
|
|
10287
|
-
|
|
10288
|
-
|
|
10289
|
-
|
|
10316
|
+
if (dataSchemas) {
|
|
10317
|
+
for (const message of validatedMessages) {
|
|
10318
|
+
const dataParts = message.parts.filter(
|
|
10319
|
+
(part) => part.type.startsWith("data-")
|
|
10320
|
+
);
|
|
10321
|
+
for (const dataPart of dataParts) {
|
|
10322
|
+
const dataName = dataPart.type.slice(5);
|
|
10323
|
+
const dataSchema = dataSchemas[dataName];
|
|
10324
|
+
if (!dataSchema) {
|
|
10325
|
+
return {
|
|
10326
|
+
success: false,
|
|
10327
|
+
error: new import_provider32.TypeValidationError({
|
|
10328
|
+
value: dataPart.data,
|
|
10329
|
+
cause: `No data schema found for data part ${dataName}`
|
|
10330
|
+
})
|
|
10331
|
+
};
|
|
10332
|
+
}
|
|
10290
10333
|
await (0, import_provider_utils33.validateTypes)({
|
|
10291
|
-
value:
|
|
10292
|
-
schema:
|
|
10334
|
+
value: dataPart.data,
|
|
10335
|
+
schema: dataSchema
|
|
10293
10336
|
});
|
|
10294
10337
|
}
|
|
10295
|
-
|
|
10296
|
-
|
|
10297
|
-
|
|
10298
|
-
|
|
10299
|
-
|
|
10338
|
+
}
|
|
10339
|
+
}
|
|
10340
|
+
if (tools) {
|
|
10341
|
+
for (const message of validatedMessages) {
|
|
10342
|
+
const toolParts = message.parts.filter(
|
|
10343
|
+
(part) => part.type.startsWith("tool-")
|
|
10344
|
+
);
|
|
10345
|
+
for (const toolPart of toolParts) {
|
|
10346
|
+
const toolName = toolPart.type.slice(5);
|
|
10347
|
+
const tool3 = tools[toolName];
|
|
10348
|
+
if (!tool3) {
|
|
10349
|
+
return {
|
|
10350
|
+
success: false,
|
|
10351
|
+
error: new import_provider32.TypeValidationError({
|
|
10352
|
+
value: toolPart.input,
|
|
10353
|
+
cause: `No tool schema found for tool part ${toolName}`
|
|
10354
|
+
})
|
|
10355
|
+
};
|
|
10356
|
+
}
|
|
10357
|
+
if (toolPart.state === "input-available" || toolPart.state === "output-available" || toolPart.state === "output-error") {
|
|
10358
|
+
await (0, import_provider_utils33.validateTypes)({
|
|
10359
|
+
value: toolPart.input,
|
|
10360
|
+
schema: tool3.inputSchema
|
|
10361
|
+
});
|
|
10362
|
+
}
|
|
10363
|
+
if (toolPart.state === "output-available" && tool3.outputSchema) {
|
|
10364
|
+
await (0, import_provider_utils33.validateTypes)({
|
|
10365
|
+
value: toolPart.output,
|
|
10366
|
+
schema: tool3.outputSchema
|
|
10367
|
+
});
|
|
10368
|
+
}
|
|
10300
10369
|
}
|
|
10301
10370
|
}
|
|
10302
10371
|
}
|
|
10372
|
+
return {
|
|
10373
|
+
success: true,
|
|
10374
|
+
data: validatedMessages
|
|
10375
|
+
};
|
|
10376
|
+
} catch (error) {
|
|
10377
|
+
const err = error;
|
|
10378
|
+
return {
|
|
10379
|
+
success: false,
|
|
10380
|
+
error: err
|
|
10381
|
+
};
|
|
10303
10382
|
}
|
|
10304
|
-
|
|
10383
|
+
}
|
|
10384
|
+
async function validateUIMessages({
|
|
10385
|
+
messages,
|
|
10386
|
+
metadataSchema,
|
|
10387
|
+
dataSchemas,
|
|
10388
|
+
tools
|
|
10389
|
+
}) {
|
|
10390
|
+
const response = await safeValidateUIMessages({
|
|
10391
|
+
messages,
|
|
10392
|
+
metadataSchema,
|
|
10393
|
+
dataSchemas,
|
|
10394
|
+
tools
|
|
10395
|
+
});
|
|
10396
|
+
if (!response.success)
|
|
10397
|
+
throw response.error;
|
|
10398
|
+
return response.data;
|
|
10305
10399
|
}
|
|
10306
10400
|
|
|
10307
10401
|
// src/ui-message-stream/create-ui-message-stream.ts
|
|
10308
|
-
var import_provider_utils34 = require("@
|
|
10402
|
+
var import_provider_utils34 = require("@zenning/provider-utils");
|
|
10309
10403
|
function createUIMessageStream({
|
|
10310
10404
|
execute,
|
|
10311
10405
|
onError = import_provider_utils34.getErrorMessage,
|
|
@@ -10442,6 +10536,7 @@ function readUIMessageStream({
|
|
|
10442
10536
|
AISDKError,
|
|
10443
10537
|
APICallError,
|
|
10444
10538
|
AbstractChat,
|
|
10539
|
+
Agent,
|
|
10445
10540
|
DefaultChatTransport,
|
|
10446
10541
|
DownloadError,
|
|
10447
10542
|
EmptyResponseBodyError,
|
|
@@ -10464,6 +10559,7 @@ function readUIMessageStream({
|
|
|
10464
10559
|
NoObjectGeneratedError,
|
|
10465
10560
|
NoOutputGeneratedError,
|
|
10466
10561
|
NoOutputSpecifiedError,
|
|
10562
|
+
NoSpeechGeneratedError,
|
|
10467
10563
|
NoSuchModelError,
|
|
10468
10564
|
NoSuchProviderError,
|
|
10469
10565
|
NoSuchToolError,
|
|
@@ -10522,10 +10618,12 @@ function readUIMessageStream({
|
|
|
10522
10618
|
jsonSchema,
|
|
10523
10619
|
lastAssistantMessageIsCompleteWithToolCalls,
|
|
10524
10620
|
modelMessageSchema,
|
|
10621
|
+
parseJsonEventStream,
|
|
10525
10622
|
parsePartialJson,
|
|
10526
10623
|
pipeTextStreamToResponse,
|
|
10527
10624
|
pipeUIMessageStreamToResponse,
|
|
10528
10625
|
readUIMessageStream,
|
|
10626
|
+
safeValidateUIMessages,
|
|
10529
10627
|
simulateReadableStream,
|
|
10530
10628
|
simulateStreamingMiddleware,
|
|
10531
10629
|
smoothStream,
|
|
@@ -10535,6 +10633,7 @@ function readUIMessageStream({
|
|
|
10535
10633
|
systemModelMessageSchema,
|
|
10536
10634
|
tool,
|
|
10537
10635
|
toolModelMessageSchema,
|
|
10636
|
+
uiMessageChunkSchema,
|
|
10538
10637
|
userModelMessageSchema,
|
|
10539
10638
|
validateUIMessages,
|
|
10540
10639
|
wrapLanguageModel,
|