@zenning/ai 5.0.43 → 5.1.1

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/dist/index.js CHANGED
@@ -58,7 +58,7 @@ __export(src_exports, {
58
58
  UI_MESSAGE_STREAM_HEADERS: () => UI_MESSAGE_STREAM_HEADERS,
59
59
  UnsupportedFunctionalityError: () => import_provider17.UnsupportedFunctionalityError,
60
60
  UnsupportedModelVersionError: () => UnsupportedModelVersionError,
61
- asSchema: () => import_provider_utils29.asSchema,
61
+ asSchema: () => import_provider_utils35.asSchema,
62
62
  assistantModelMessageSchema: () => assistantModelMessageSchema,
63
63
  callCompletionApi: () => callCompletionApi,
64
64
  consumeStream: () => consumeStream,
@@ -72,14 +72,14 @@ __export(src_exports, {
72
72
  coreUserMessageSchema: () => coreUserMessageSchema,
73
73
  cosineSimilarity: () => cosineSimilarity,
74
74
  createGateway: () => import_gateway3.createGateway,
75
- createIdGenerator: () => import_provider_utils29.createIdGenerator,
75
+ createIdGenerator: () => import_provider_utils35.createIdGenerator,
76
76
  createProviderRegistry: () => createProviderRegistry,
77
77
  createTextStreamResponse: () => createTextStreamResponse,
78
78
  createUIMessageStream: () => createUIMessageStream,
79
79
  createUIMessageStreamResponse: () => createUIMessageStreamResponse,
80
80
  customProvider: () => customProvider,
81
81
  defaultSettingsMiddleware: () => defaultSettingsMiddleware,
82
- dynamicTool: () => import_provider_utils29.dynamicTool,
82
+ dynamicTool: () => import_provider_utils35.dynamicTool,
83
83
  embed: () => embed,
84
84
  embedMany: () => embedMany,
85
85
  experimental_createMCPClient: () => createMCPClient,
@@ -90,7 +90,7 @@ __export(src_exports, {
90
90
  experimental_transcribe: () => transcribe,
91
91
  extractReasoningMiddleware: () => extractReasoningMiddleware,
92
92
  gateway: () => import_gateway3.gateway,
93
- generateId: () => import_provider_utils29.generateId,
93
+ generateId: () => import_provider_utils35.generateId,
94
94
  generateObject: () => generateObject,
95
95
  generateText: () => generateText,
96
96
  getTextFromDataUrl: () => getTextFromDataUrl,
@@ -100,7 +100,7 @@ __export(src_exports, {
100
100
  isDeepEqualData: () => isDeepEqualData,
101
101
  isToolOrDynamicToolUIPart: () => isToolOrDynamicToolUIPart,
102
102
  isToolUIPart: () => isToolUIPart,
103
- jsonSchema: () => import_provider_utils29.jsonSchema,
103
+ jsonSchema: () => import_provider_utils35.jsonSchema,
104
104
  lastAssistantMessageIsCompleteWithToolCalls: () => lastAssistantMessageIsCompleteWithToolCalls,
105
105
  modelMessageSchema: () => modelMessageSchema,
106
106
  parsePartialJson: () => parsePartialJson,
@@ -114,23 +114,23 @@ __export(src_exports, {
114
114
  streamObject: () => streamObject,
115
115
  streamText: () => streamText,
116
116
  systemModelMessageSchema: () => systemModelMessageSchema,
117
- tool: () => import_provider_utils29.tool,
117
+ tool: () => import_provider_utils35.tool,
118
118
  toolModelMessageSchema: () => toolModelMessageSchema,
119
119
  userModelMessageSchema: () => userModelMessageSchema,
120
120
  validateUIMessages: () => validateUIMessages,
121
121
  wrapLanguageModel: () => wrapLanguageModel,
122
122
  wrapProvider: () => wrapProvider,
123
- zodSchema: () => import_provider_utils29.zodSchema
123
+ zodSchema: () => import_provider_utils35.zodSchema
124
124
  });
125
125
  module.exports = __toCommonJS(src_exports);
126
126
  var import_gateway3 = require("@ai-sdk/gateway");
127
- var import_provider_utils29 = require("@ai-sdk/provider-utils");
127
+ var import_provider_utils35 = require("@ai-sdk/provider-utils");
128
128
 
129
129
  // src/generate-text/generate-text.ts
130
- var import_provider_utils9 = require("@ai-sdk/provider-utils");
130
+ var import_provider_utils10 = require("@ai-sdk/provider-utils");
131
131
 
132
132
  // src/error/no-output-specified-error.ts
133
- var import_provider = require("@ai-sdk/provider");
133
+ var import_provider = require("@zenning/provider");
134
134
  var name = "AI_NoOutputSpecifiedError";
135
135
  var marker = `vercel.ai.error.${name}`;
136
136
  var symbol = Symbol.for(marker);
@@ -201,10 +201,10 @@ var logWarnings = (warnings) => {
201
201
  var import_gateway = require("@ai-sdk/gateway");
202
202
 
203
203
  // src/error/index.ts
204
- var import_provider17 = require("@ai-sdk/provider");
204
+ var import_provider17 = require("@zenning/provider");
205
205
 
206
206
  // src/error/invalid-argument-error.ts
207
- var import_provider2 = require("@ai-sdk/provider");
207
+ var import_provider2 = require("@zenning/provider");
208
208
  var name2 = "AI_InvalidArgumentError";
209
209
  var marker2 = `vercel.ai.error.${name2}`;
210
210
  var symbol2 = Symbol.for(marker2);
@@ -230,7 +230,7 @@ var InvalidArgumentError = class extends import_provider2.AISDKError {
230
230
  _a2 = symbol2;
231
231
 
232
232
  // src/error/invalid-stream-part-error.ts
233
- var import_provider3 = require("@ai-sdk/provider");
233
+ var import_provider3 = require("@zenning/provider");
234
234
  var name3 = "AI_InvalidStreamPartError";
235
235
  var marker3 = `vercel.ai.error.${name3}`;
236
236
  var symbol3 = Symbol.for(marker3);
@@ -251,7 +251,7 @@ var InvalidStreamPartError = class extends import_provider3.AISDKError {
251
251
  _a3 = symbol3;
252
252
 
253
253
  // src/error/invalid-tool-input-error.ts
254
- var import_provider4 = require("@ai-sdk/provider");
254
+ var import_provider4 = require("@zenning/provider");
255
255
  var name4 = "AI_InvalidToolInputError";
256
256
  var marker4 = `vercel.ai.error.${name4}`;
257
257
  var symbol4 = Symbol.for(marker4);
@@ -275,7 +275,7 @@ var InvalidToolInputError = class extends import_provider4.AISDKError {
275
275
  _a4 = symbol4;
276
276
 
277
277
  // src/error/mcp-client-error.ts
278
- var import_provider5 = require("@ai-sdk/provider");
278
+ var import_provider5 = require("@zenning/provider");
279
279
  var name5 = "AI_MCPClientError";
280
280
  var marker5 = `vercel.ai.error.${name5}`;
281
281
  var symbol5 = Symbol.for(marker5);
@@ -296,7 +296,7 @@ var MCPClientError = class extends import_provider5.AISDKError {
296
296
  _a5 = symbol5;
297
297
 
298
298
  // src/error/no-image-generated-error.ts
299
- var import_provider6 = require("@ai-sdk/provider");
299
+ var import_provider6 = require("@zenning/provider");
300
300
  var name6 = "AI_NoImageGeneratedError";
301
301
  var marker6 = `vercel.ai.error.${name6}`;
302
302
  var symbol6 = Symbol.for(marker6);
@@ -318,7 +318,7 @@ var NoImageGeneratedError = class extends import_provider6.AISDKError {
318
318
  _a6 = symbol6;
319
319
 
320
320
  // src/error/no-object-generated-error.ts
321
- var import_provider7 = require("@ai-sdk/provider");
321
+ var import_provider7 = require("@zenning/provider");
322
322
  var name7 = "AI_NoObjectGeneratedError";
323
323
  var marker7 = `vercel.ai.error.${name7}`;
324
324
  var symbol7 = Symbol.for(marker7);
@@ -346,7 +346,7 @@ var NoObjectGeneratedError = class extends import_provider7.AISDKError {
346
346
  _a7 = symbol7;
347
347
 
348
348
  // src/error/no-output-generated-error.ts
349
- var import_provider8 = require("@ai-sdk/provider");
349
+ var import_provider8 = require("@zenning/provider");
350
350
  var name8 = "AI_NoOutputGeneratedError";
351
351
  var marker8 = `vercel.ai.error.${name8}`;
352
352
  var symbol8 = Symbol.for(marker8);
@@ -367,7 +367,7 @@ var NoOutputGeneratedError = class extends import_provider8.AISDKError {
367
367
  _a8 = symbol8;
368
368
 
369
369
  // src/error/no-such-tool-error.ts
370
- var import_provider9 = require("@ai-sdk/provider");
370
+ var import_provider9 = require("@zenning/provider");
371
371
  var name9 = "AI_NoSuchToolError";
372
372
  var marker9 = `vercel.ai.error.${name9}`;
373
373
  var symbol9 = Symbol.for(marker9);
@@ -390,7 +390,7 @@ var NoSuchToolError = class extends import_provider9.AISDKError {
390
390
  _a9 = symbol9;
391
391
 
392
392
  // src/error/tool-call-repair-error.ts
393
- var import_provider10 = require("@ai-sdk/provider");
393
+ var import_provider10 = require("@zenning/provider");
394
394
  var name10 = "AI_ToolCallRepairError";
395
395
  var marker10 = `vercel.ai.error.${name10}`;
396
396
  var symbol10 = Symbol.for(marker10);
@@ -412,7 +412,7 @@ var ToolCallRepairError = class extends import_provider10.AISDKError {
412
412
  _a10 = symbol10;
413
413
 
414
414
  // src/error/unsupported-model-version-error.ts
415
- var import_provider11 = require("@ai-sdk/provider");
415
+ var import_provider11 = require("@zenning/provider");
416
416
  var UnsupportedModelVersionError = class extends import_provider11.AISDKError {
417
417
  constructor(options) {
418
418
  super({
@@ -426,7 +426,7 @@ var UnsupportedModelVersionError = class extends import_provider11.AISDKError {
426
426
  };
427
427
 
428
428
  // src/prompt/invalid-data-content-error.ts
429
- var import_provider12 = require("@ai-sdk/provider");
429
+ var import_provider12 = require("@zenning/provider");
430
430
  var name11 = "AI_InvalidDataContentError";
431
431
  var marker11 = `vercel.ai.error.${name11}`;
432
432
  var symbol11 = Symbol.for(marker11);
@@ -448,7 +448,7 @@ var InvalidDataContentError = class extends import_provider12.AISDKError {
448
448
  _a11 = symbol11;
449
449
 
450
450
  // src/prompt/invalid-message-role-error.ts
451
- var import_provider13 = require("@ai-sdk/provider");
451
+ var import_provider13 = require("@zenning/provider");
452
452
  var name12 = "AI_InvalidMessageRoleError";
453
453
  var marker12 = `vercel.ai.error.${name12}`;
454
454
  var symbol12 = Symbol.for(marker12);
@@ -469,7 +469,7 @@ var InvalidMessageRoleError = class extends import_provider13.AISDKError {
469
469
  _a12 = symbol12;
470
470
 
471
471
  // src/prompt/message-conversion-error.ts
472
- var import_provider14 = require("@ai-sdk/provider");
472
+ var import_provider14 = require("@zenning/provider");
473
473
  var name13 = "AI_MessageConversionError";
474
474
  var marker13 = `vercel.ai.error.${name13}`;
475
475
  var symbol13 = Symbol.for(marker13);
@@ -490,7 +490,7 @@ var MessageConversionError = class extends import_provider14.AISDKError {
490
490
  _a13 = symbol13;
491
491
 
492
492
  // src/util/download/download-error.ts
493
- var import_provider15 = require("@ai-sdk/provider");
493
+ var import_provider15 = require("@zenning/provider");
494
494
  var name14 = "AI_DownloadError";
495
495
  var marker14 = `vercel.ai.error.${name14}`;
496
496
  var symbol14 = Symbol.for(marker14);
@@ -516,7 +516,7 @@ var DownloadError = class extends import_provider15.AISDKError {
516
516
  _a14 = symbol14;
517
517
 
518
518
  // src/util/retry-error.ts
519
- var import_provider16 = require("@ai-sdk/provider");
519
+ var import_provider16 = require("@zenning/provider");
520
520
  var name15 = "AI_RetryError";
521
521
  var marker15 = `vercel.ai.error.${name15}`;
522
522
  var symbol15 = Symbol.for(marker15);
@@ -574,45 +574,57 @@ function getGlobalProvider() {
574
574
  }
575
575
 
576
576
  // src/prompt/convert-to-language-model-prompt.ts
577
- var import_provider_utils3 = require("@ai-sdk/provider-utils");
577
+ var import_provider_utils4 = require("@ai-sdk/provider-utils");
578
578
 
579
579
  // src/util/detect-media-type.ts
580
580
  var import_provider_utils = require("@ai-sdk/provider-utils");
581
581
  var imageMediaTypeSignatures = [
582
582
  {
583
583
  mediaType: "image/gif",
584
- bytesPrefix: [71, 73, 70],
585
- base64Prefix: "R0lG"
584
+ bytesPrefix: [71, 73, 70]
585
+ // GIF
586
586
  },
587
587
  {
588
588
  mediaType: "image/png",
589
- bytesPrefix: [137, 80, 78, 71],
590
- base64Prefix: "iVBORw"
589
+ bytesPrefix: [137, 80, 78, 71]
590
+ // PNG
591
591
  },
592
592
  {
593
593
  mediaType: "image/jpeg",
594
- bytesPrefix: [255, 216],
595
- base64Prefix: "/9j/"
594
+ bytesPrefix: [255, 216]
595
+ // JPEG
596
596
  },
597
597
  {
598
598
  mediaType: "image/webp",
599
- bytesPrefix: [82, 73, 70, 70],
600
- base64Prefix: "UklGRg"
599
+ bytesPrefix: [
600
+ 82,
601
+ 73,
602
+ 70,
603
+ 70,
604
+ // "RIFF"
605
+ null,
606
+ null,
607
+ null,
608
+ null,
609
+ // file size (variable)
610
+ 87,
611
+ 69,
612
+ 66,
613
+ 80
614
+ // "WEBP"
615
+ ]
601
616
  },
602
617
  {
603
618
  mediaType: "image/bmp",
604
- bytesPrefix: [66, 77],
605
- base64Prefix: "Qk"
619
+ bytesPrefix: [66, 77]
606
620
  },
607
621
  {
608
622
  mediaType: "image/tiff",
609
- bytesPrefix: [73, 73, 42, 0],
610
- base64Prefix: "SUkqAA"
623
+ bytesPrefix: [73, 73, 42, 0]
611
624
  },
612
625
  {
613
626
  mediaType: "image/tiff",
614
- bytesPrefix: [77, 77, 0, 42],
615
- base64Prefix: "TU0AKg"
627
+ bytesPrefix: [77, 77, 0, 42]
616
628
  },
617
629
  {
618
630
  mediaType: "image/avif",
@@ -629,8 +641,7 @@ var imageMediaTypeSignatures = [
629
641
  118,
630
642
  105,
631
643
  102
632
- ],
633
- base64Prefix: "AAAAIGZ0eXBhdmlm"
644
+ ]
634
645
  },
635
646
  {
636
647
  mediaType: "image/heic",
@@ -647,70 +658,78 @@ var imageMediaTypeSignatures = [
647
658
  101,
648
659
  105,
649
660
  99
650
- ],
651
- base64Prefix: "AAAAIGZ0eXBoZWlj"
661
+ ]
652
662
  }
653
663
  ];
654
664
  var audioMediaTypeSignatures = [
655
665
  {
656
666
  mediaType: "audio/mpeg",
657
- bytesPrefix: [255, 251],
658
- base64Prefix: "//s="
667
+ bytesPrefix: [255, 251]
659
668
  },
660
669
  {
661
670
  mediaType: "audio/mpeg",
662
- bytesPrefix: [255, 250],
663
- base64Prefix: "//o="
671
+ bytesPrefix: [255, 250]
664
672
  },
665
673
  {
666
674
  mediaType: "audio/mpeg",
667
- bytesPrefix: [255, 243],
668
- base64Prefix: "//M="
675
+ bytesPrefix: [255, 243]
669
676
  },
670
677
  {
671
678
  mediaType: "audio/mpeg",
672
- bytesPrefix: [255, 242],
673
- base64Prefix: "//I="
679
+ bytesPrefix: [255, 242]
674
680
  },
675
681
  {
676
682
  mediaType: "audio/mpeg",
677
- bytesPrefix: [255, 227],
678
- base64Prefix: "/+M="
683
+ bytesPrefix: [255, 227]
679
684
  },
680
685
  {
681
686
  mediaType: "audio/mpeg",
682
- bytesPrefix: [255, 226],
683
- base64Prefix: "/+I="
687
+ bytesPrefix: [255, 226]
684
688
  },
685
689
  {
686
690
  mediaType: "audio/wav",
687
- bytesPrefix: [82, 73, 70, 70],
688
- base64Prefix: "UklGR"
691
+ bytesPrefix: [
692
+ 82,
693
+ // R
694
+ 73,
695
+ // I
696
+ 70,
697
+ // F
698
+ 70,
699
+ // F
700
+ null,
701
+ null,
702
+ null,
703
+ null,
704
+ 87,
705
+ // W
706
+ 65,
707
+ // A
708
+ 86,
709
+ // V
710
+ 69
711
+ // E
712
+ ]
689
713
  },
690
714
  {
691
715
  mediaType: "audio/ogg",
692
- bytesPrefix: [79, 103, 103, 83],
693
- base64Prefix: "T2dnUw"
716
+ bytesPrefix: [79, 103, 103, 83]
694
717
  },
695
718
  {
696
719
  mediaType: "audio/flac",
697
- bytesPrefix: [102, 76, 97, 67],
698
- base64Prefix: "ZkxhQw"
720
+ bytesPrefix: [102, 76, 97, 67]
699
721
  },
700
722
  {
701
723
  mediaType: "audio/aac",
702
- bytesPrefix: [64, 21, 0, 0],
703
- base64Prefix: "QBUA"
724
+ bytesPrefix: [64, 21, 0, 0]
704
725
  },
705
726
  {
706
727
  mediaType: "audio/mp4",
707
- bytesPrefix: [102, 116, 121, 112],
708
- base64Prefix: "ZnR5cA"
728
+ bytesPrefix: [102, 116, 121, 112]
709
729
  },
710
730
  {
711
731
  mediaType: "audio/webm",
712
- bytesPrefix: [26, 69, 223, 163],
713
- base64Prefix: "GkXf"
732
+ bytesPrefix: [26, 69, 223, 163]
714
733
  }
715
734
  ];
716
735
  var stripID3 = (data) => {
@@ -729,9 +748,12 @@ function detectMediaType({
729
748
  signatures
730
749
  }) {
731
750
  const processedData = stripID3TagsIfPresent(data);
751
+ const bytes = typeof processedData === "string" ? (0, import_provider_utils.convertBase64ToUint8Array)(
752
+ processedData.substring(0, Math.min(processedData.length, 24))
753
+ ) : processedData;
732
754
  for (const signature of signatures) {
733
- if (typeof processedData === "string" ? processedData.startsWith(signature.base64Prefix) : processedData.length >= signature.bytesPrefix.length && signature.bytesPrefix.every(
734
- (byte, index) => processedData[index] === byte
755
+ if (bytes.length >= signature.bytesPrefix.length && signature.bytesPrefix.every(
756
+ (byte, index) => byte === null || bytes[index] === byte
735
757
  )) {
736
758
  return signature.mediaType;
737
759
  }
@@ -739,12 +761,24 @@ function detectMediaType({
739
761
  return void 0;
740
762
  }
741
763
 
764
+ // src/util/download/download.ts
765
+ var import_provider_utils2 = require("@ai-sdk/provider-utils");
766
+
767
+ // src/version.ts
768
+ var VERSION = true ? "5.1.1" : "0.0.0-test";
769
+
742
770
  // src/util/download/download.ts
743
771
  var download = async ({ url }) => {
744
772
  var _a17;
745
773
  const urlText = url.toString();
746
774
  try {
747
- const response = await fetch(urlText);
775
+ const response = await fetch(urlText, {
776
+ headers: (0, import_provider_utils2.withUserAgentSuffix)(
777
+ {},
778
+ `ai-sdk/${VERSION}`,
779
+ (0, import_provider_utils2.getRuntimeEnvironmentUserAgent)()
780
+ )
781
+ });
748
782
  if (!response.ok) {
749
783
  throw new DownloadError({
750
784
  url: urlText,
@@ -772,8 +806,8 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
772
806
  );
773
807
 
774
808
  // src/prompt/data-content.ts
775
- var import_provider18 = require("@ai-sdk/provider");
776
- var import_provider_utils2 = require("@ai-sdk/provider-utils");
809
+ var import_provider18 = require("@zenning/provider");
810
+ var import_provider_utils3 = require("@ai-sdk/provider-utils");
777
811
  var import_v4 = require("zod/v4");
778
812
 
779
813
  // src/prompt/split-data-url.ts
@@ -838,9 +872,9 @@ function convertDataContentToBase64String(content) {
838
872
  return content;
839
873
  }
840
874
  if (content instanceof ArrayBuffer) {
841
- return (0, import_provider_utils2.convertUint8ArrayToBase64)(new Uint8Array(content));
875
+ return (0, import_provider_utils3.convertUint8ArrayToBase64)(new Uint8Array(content));
842
876
  }
843
- return (0, import_provider_utils2.convertUint8ArrayToBase64)(content);
877
+ return (0, import_provider_utils3.convertUint8ArrayToBase64)(content);
844
878
  }
845
879
  function convertDataContentToUint8Array(content) {
846
880
  if (content instanceof Uint8Array) {
@@ -848,7 +882,7 @@ function convertDataContentToUint8Array(content) {
848
882
  }
849
883
  if (typeof content === "string") {
850
884
  try {
851
- return (0, import_provider_utils2.convertBase64ToUint8Array)(content);
885
+ return (0, import_provider_utils3.convertBase64ToUint8Array)(content);
852
886
  } catch (error) {
853
887
  throw new InvalidDataContentError({
854
888
  message: "Invalid data content. Content string is not a base64-encoded media.",
@@ -919,8 +953,8 @@ function convertToLanguageModelMessage({
919
953
  return {
920
954
  role: "assistant",
921
955
  content: message.content.filter(
922
- // remove empty text parts:
923
- (part) => part.type !== "text" || part.text !== ""
956
+ // remove empty text parts (no text, and no provider options):
957
+ (part) => part.type !== "text" || part.text !== "" || part.providerOptions != null
924
958
  ).map((part) => {
925
959
  const providerOptions = part.providerOptions;
926
960
  switch (part.type) {
@@ -1013,7 +1047,7 @@ async function downloadAssets(messages, download2, supportedUrls) {
1013
1047
  (part) => part.data instanceof URL
1014
1048
  ).map((part) => ({
1015
1049
  url: part.data,
1016
- isUrlSupportedByModel: part.mediaType != null && (0, import_provider_utils3.isUrlSupported)({
1050
+ isUrlSupportedByModel: part.mediaType != null && (0, import_provider_utils4.isUrlSupported)({
1017
1051
  url: part.data.toString(),
1018
1052
  mediaType: part.mediaType,
1019
1053
  supportedUrls
@@ -1183,7 +1217,7 @@ function prepareCallSettings({
1183
1217
  }
1184
1218
 
1185
1219
  // src/prompt/prepare-tools-and-tool-choice.ts
1186
- var import_provider_utils4 = require("@ai-sdk/provider-utils");
1220
+ var import_provider_utils5 = require("@ai-sdk/provider-utils");
1187
1221
 
1188
1222
  // src/util/is-non-empty-object.ts
1189
1223
  function isNonEmptyObject(object2) {
@@ -1216,7 +1250,7 @@ function prepareToolsAndToolChoice({
1216
1250
  type: "function",
1217
1251
  name: name17,
1218
1252
  description: tool3.description,
1219
- inputSchema: (0, import_provider_utils4.asSchema)(tool3.inputSchema).jsonSchema,
1253
+ inputSchema: (0, import_provider_utils5.asSchema)(tool3.inputSchema).jsonSchema,
1220
1254
  providerOptions: tool3.providerOptions
1221
1255
  };
1222
1256
  case "provider-defined":
@@ -1237,8 +1271,8 @@ function prepareToolsAndToolChoice({
1237
1271
  }
1238
1272
 
1239
1273
  // src/prompt/standardize-prompt.ts
1240
- var import_provider19 = require("@ai-sdk/provider");
1241
- var import_provider_utils5 = require("@ai-sdk/provider-utils");
1274
+ var import_provider19 = require("@zenning/provider");
1275
+ var import_provider_utils6 = require("@ai-sdk/provider-utils");
1242
1276
  var import_v46 = require("zod/v4");
1243
1277
 
1244
1278
  // src/prompt/message.ts
@@ -1429,7 +1463,7 @@ async function standardizePrompt(prompt) {
1429
1463
  message: "messages must not be empty"
1430
1464
  });
1431
1465
  }
1432
- const validationResult = await (0, import_provider_utils5.safeValidateTypes)({
1466
+ const validationResult = await (0, import_provider_utils6.safeValidateTypes)({
1433
1467
  value: messages,
1434
1468
  schema: import_v46.z.array(modelMessageSchema)
1435
1469
  });
@@ -1448,7 +1482,7 @@ async function standardizePrompt(prompt) {
1448
1482
 
1449
1483
  // src/prompt/wrap-gateway-error.ts
1450
1484
  var import_gateway2 = require("@ai-sdk/gateway");
1451
- var import_provider20 = require("@ai-sdk/provider");
1485
+ var import_provider20 = require("@zenning/provider");
1452
1486
  function wrapGatewayError(error) {
1453
1487
  if (import_gateway2.GatewayAuthenticationError.isInstance(error) || import_gateway2.GatewayModelNotFoundError.isInstance(error)) {
1454
1488
  return new import_provider20.AISDKError({
@@ -1697,8 +1731,8 @@ function asArray(value) {
1697
1731
  }
1698
1732
 
1699
1733
  // src/util/retry-with-exponential-backoff.ts
1700
- var import_provider21 = require("@ai-sdk/provider");
1701
- var import_provider_utils6 = require("@ai-sdk/provider-utils");
1734
+ var import_provider21 = require("@zenning/provider");
1735
+ var import_provider_utils7 = require("@ai-sdk/provider-utils");
1702
1736
  function getRetryDelayInMs({
1703
1737
  error,
1704
1738
  exponentialBackoffDelay
@@ -1748,13 +1782,13 @@ async function _retryWithExponentialBackoff(f, {
1748
1782
  try {
1749
1783
  return await f();
1750
1784
  } catch (error) {
1751
- if ((0, import_provider_utils6.isAbortError)(error)) {
1785
+ if ((0, import_provider_utils7.isAbortError)(error)) {
1752
1786
  throw error;
1753
1787
  }
1754
1788
  if (maxRetries === 0) {
1755
1789
  throw error;
1756
1790
  }
1757
- const errorMessage = (0, import_provider_utils6.getErrorMessage)(error);
1791
+ const errorMessage = (0, import_provider_utils7.getErrorMessage)(error);
1758
1792
  const newErrors = [...errors, error];
1759
1793
  const tryNumber = newErrors.length;
1760
1794
  if (tryNumber > maxRetries) {
@@ -1765,7 +1799,7 @@ async function _retryWithExponentialBackoff(f, {
1765
1799
  });
1766
1800
  }
1767
1801
  if (error instanceof Error && import_provider21.APICallError.isInstance(error) && error.isRetryable === true && tryNumber <= maxRetries) {
1768
- await (0, import_provider_utils6.delay)(
1802
+ await (0, import_provider_utils7.delay)(
1769
1803
  getRetryDelayInMs({
1770
1804
  error,
1771
1805
  exponentialBackoffDelay: delayInMs
@@ -1837,7 +1871,7 @@ function extractTextContent(content) {
1837
1871
  }
1838
1872
 
1839
1873
  // src/generate-text/generated-file.ts
1840
- var import_provider_utils7 = require("@ai-sdk/provider-utils");
1874
+ var import_provider_utils8 = require("@ai-sdk/provider-utils");
1841
1875
  var DefaultGeneratedFile = class {
1842
1876
  constructor({
1843
1877
  data,
@@ -1851,14 +1885,14 @@ var DefaultGeneratedFile = class {
1851
1885
  // lazy conversion with caching to avoid unnecessary conversion overhead:
1852
1886
  get base64() {
1853
1887
  if (this.base64Data == null) {
1854
- this.base64Data = (0, import_provider_utils7.convertUint8ArrayToBase64)(this.uint8ArrayData);
1888
+ this.base64Data = (0, import_provider_utils8.convertUint8ArrayToBase64)(this.uint8ArrayData);
1855
1889
  }
1856
1890
  return this.base64Data;
1857
1891
  }
1858
1892
  // lazy conversion with caching to avoid unnecessary conversion overhead:
1859
1893
  get uint8Array() {
1860
1894
  if (this.uint8ArrayData == null) {
1861
- this.uint8ArrayData = (0, import_provider_utils7.convertBase64ToUint8Array)(this.base64Data);
1895
+ this.uint8ArrayData = (0, import_provider_utils8.convertBase64ToUint8Array)(this.base64Data);
1862
1896
  }
1863
1897
  return this.uint8ArrayData;
1864
1898
  }
@@ -1871,7 +1905,7 @@ var DefaultGeneratedFileWithType = class extends DefaultGeneratedFile {
1871
1905
  };
1872
1906
 
1873
1907
  // src/generate-text/parse-tool-call.ts
1874
- var import_provider_utils8 = require("@ai-sdk/provider-utils");
1908
+ var import_provider_utils9 = require("@ai-sdk/provider-utils");
1875
1909
  async function parseToolCall({
1876
1910
  toolCall,
1877
1911
  tools,
@@ -1896,7 +1930,7 @@ async function parseToolCall({
1896
1930
  tools,
1897
1931
  inputSchema: ({ toolName }) => {
1898
1932
  const { inputSchema } = tools[toolName];
1899
- return (0, import_provider_utils8.asSchema)(inputSchema).jsonSchema;
1933
+ return (0, import_provider_utils9.asSchema)(inputSchema).jsonSchema;
1900
1934
  },
1901
1935
  system,
1902
1936
  messages,
@@ -1914,7 +1948,7 @@ async function parseToolCall({
1914
1948
  return await doParseToolCall({ toolCall: repairedToolCall, tools });
1915
1949
  }
1916
1950
  } catch (error) {
1917
- const parsedInput = await (0, import_provider_utils8.safeParseJSON)({ text: toolCall.input });
1951
+ const parsedInput = await (0, import_provider_utils9.safeParseJSON)({ text: toolCall.input });
1918
1952
  const input = parsedInput.success ? parsedInput.value : toolCall.input;
1919
1953
  return {
1920
1954
  type: "tool-call",
@@ -1939,8 +1973,8 @@ async function doParseToolCall({
1939
1973
  availableTools: Object.keys(tools)
1940
1974
  });
1941
1975
  }
1942
- const schema = (0, import_provider_utils8.asSchema)(tool3.inputSchema);
1943
- const parseResult = toolCall.input.trim() === "" ? await (0, import_provider_utils8.safeValidateTypes)({ value: {}, schema }) : await (0, import_provider_utils8.safeParseJSON)({ text: toolCall.input, schema });
1976
+ const schema = (0, import_provider_utils9.asSchema)(tool3.inputSchema);
1977
+ const parseResult = toolCall.input.trim() === "" ? await (0, import_provider_utils9.safeValidateTypes)({ value: {}, schema }) : await (0, import_provider_utils9.safeParseJSON)({ text: toolCall.input, schema });
1944
1978
  if (parseResult.success === false) {
1945
1979
  throw new InvalidToolInputError({
1946
1980
  toolName,
@@ -2005,7 +2039,7 @@ var DefaultStepResult = class {
2005
2039
  }
2006
2040
  get staticToolCalls() {
2007
2041
  return this.toolCalls.filter(
2008
- (toolCall) => toolCall.dynamic === false
2042
+ (toolCall) => toolCall.dynamic !== true
2009
2043
  );
2010
2044
  }
2011
2045
  get dynamicToolCalls() {
@@ -2018,7 +2052,7 @@ var DefaultStepResult = class {
2018
2052
  }
2019
2053
  get staticToolResults() {
2020
2054
  return this.toolResults.filter(
2021
- (toolResult) => toolResult.dynamic === false
2055
+ (toolResult) => toolResult.dynamic !== true
2022
2056
  );
2023
2057
  }
2024
2058
  get dynamicToolResults() {
@@ -2048,7 +2082,7 @@ async function isStopConditionMet({
2048
2082
  }
2049
2083
 
2050
2084
  // src/prompt/create-tool-model-output.ts
2051
- var import_provider22 = require("@ai-sdk/provider");
2085
+ var import_provider22 = require("@zenning/provider");
2052
2086
  function createToolModelOutput({
2053
2087
  output,
2054
2088
  tool: tool3,
@@ -2159,7 +2193,7 @@ function toResponseMessages({
2159
2193
  }
2160
2194
 
2161
2195
  // src/generate-text/generate-text.ts
2162
- var originalGenerateId = (0, import_provider_utils9.createIdGenerator)({
2196
+ var originalGenerateId = (0, import_provider_utils10.createIdGenerator)({
2163
2197
  prefix: "aitxt",
2164
2198
  size: 24
2165
2199
  });
@@ -2198,10 +2232,14 @@ async function generateText({
2198
2232
  abortSignal
2199
2233
  });
2200
2234
  const callSettings = prepareCallSettings(settings);
2235
+ const headersWithUserAgent = (0, import_provider_utils10.withUserAgentSuffix)(
2236
+ headers != null ? headers : {},
2237
+ `ai/${VERSION}`
2238
+ );
2201
2239
  const baseTelemetryAttributes = getBaseTelemetryAttributes({
2202
2240
  model,
2203
2241
  telemetry,
2204
- headers,
2242
+ headers: headersWithUserAgent,
2205
2243
  settings: { ...callSettings, maxRetries }
2206
2244
  });
2207
2245
  const initialPrompt = await standardizePrompt({
@@ -2316,7 +2354,7 @@ async function generateText({
2316
2354
  prompt: promptMessages,
2317
2355
  providerOptions,
2318
2356
  abortSignal,
2319
- headers
2357
+ headers: headersWithUserAgent
2320
2358
  });
2321
2359
  const responseData = {
2322
2360
  id: (_b2 = (_a19 = result.response) == null ? void 0 : _a19.id) != null ? _b2 : generateId3(),
@@ -2400,7 +2438,7 @@ async function generateText({
2400
2438
  toolCallId: toolCall.toolCallId,
2401
2439
  toolName: toolCall.toolName,
2402
2440
  input: toolCall.input,
2403
- error: (0, import_provider_utils9.getErrorMessage)(toolCall.error),
2441
+ error: (0, import_provider_utils10.getErrorMessage)(toolCall.error),
2404
2442
  dynamic: true
2405
2443
  });
2406
2444
  }
@@ -2530,7 +2568,7 @@ async function executeTools({
2530
2568
  tracer,
2531
2569
  fn: async (span) => {
2532
2570
  try {
2533
- const stream = (0, import_provider_utils9.executeTool)({
2571
+ const stream = (0, import_provider_utils10.executeTool)({
2534
2572
  execute: tool3.execute.bind(tool3),
2535
2573
  input,
2536
2574
  options: {
@@ -2740,8 +2778,8 @@ function asContent({
2740
2778
  }
2741
2779
 
2742
2780
  // src/generate-text/stream-text.ts
2743
- var import_provider23 = require("@ai-sdk/provider");
2744
- var import_provider_utils13 = require("@ai-sdk/provider-utils");
2781
+ var import_provider23 = require("@zenning/provider");
2782
+ var import_provider_utils14 = require("@ai-sdk/provider-utils");
2745
2783
 
2746
2784
  // src/util/prepare-headers.ts
2747
2785
  function prepareHeaders(headers, defaultHeaders) {
@@ -2878,7 +2916,7 @@ function getResponseUIMessageId({
2878
2916
  }
2879
2917
 
2880
2918
  // src/ui/process-ui-message-stream.ts
2881
- var import_provider_utils11 = require("@ai-sdk/provider-utils");
2919
+ var import_provider_utils12 = require("@ai-sdk/provider-utils");
2882
2920
 
2883
2921
  // src/ui-message-stream/ui-message-chunks.ts
2884
2922
  var import_v47 = require("zod/v4");
@@ -2984,6 +3022,9 @@ var uiMessageChunkSchema = import_v47.z.union([
2984
3022
  type: import_v47.z.literal("source-document"),
2985
3023
  sourceId: import_v47.z.string(),
2986
3024
  mediaType: import_v47.z.string(),
3025
+ fileId: import_v47.z.string().optional(),
3026
+ startIndex: import_v47.z.number().optional(),
3027
+ endIndex: import_v47.z.number().optional(),
2987
3028
  title: import_v47.z.string(),
2988
3029
  filename: import_v47.z.string().optional(),
2989
3030
  providerMetadata: providerMetadataSchema.optional()
@@ -3061,7 +3102,7 @@ function mergeObjects(base, overrides) {
3061
3102
  }
3062
3103
 
3063
3104
  // src/util/parse-partial-json.ts
3064
- var import_provider_utils10 = require("@ai-sdk/provider-utils");
3105
+ var import_provider_utils11 = require("@ai-sdk/provider-utils");
3065
3106
 
3066
3107
  // src/util/fix-json.ts
3067
3108
  function fixJson(input) {
@@ -3386,11 +3427,11 @@ async function parsePartialJson(jsonText) {
3386
3427
  if (jsonText === void 0) {
3387
3428
  return { value: void 0, state: "undefined-input" };
3388
3429
  }
3389
- let result = await (0, import_provider_utils10.safeParseJSON)({ text: jsonText });
3430
+ let result = await (0, import_provider_utils11.safeParseJSON)({ text: jsonText });
3390
3431
  if (result.success) {
3391
3432
  return { value: result.value, state: "successful-parse" };
3392
3433
  }
3393
- result = await (0, import_provider_utils10.safeParseJSON)({ text: fixJson(jsonText) });
3434
+ result = await (0, import_provider_utils11.safeParseJSON)({ text: fixJson(jsonText) });
3394
3435
  if (result.success) {
3395
3436
  return { value: result.value, state: "repaired-parse" };
3396
3437
  }
@@ -3542,7 +3583,7 @@ function processUIMessageStream({
3542
3583
  if (metadata != null) {
3543
3584
  const mergedMetadata = state.message.metadata != null ? mergeObjects(state.message.metadata, metadata) : metadata;
3544
3585
  if (messageMetadataSchema != null) {
3545
- await (0, import_provider_utils11.validateTypes)({
3586
+ await (0, import_provider_utils12.validateTypes)({
3546
3587
  value: mergedMetadata,
3547
3588
  schema: messageMetadataSchema
3548
3589
  });
@@ -3632,6 +3673,9 @@ function processUIMessageStream({
3632
3673
  mediaType: chunk.mediaType,
3633
3674
  title: chunk.title,
3634
3675
  filename: chunk.filename,
3676
+ fileId: chunk.fileId,
3677
+ startIndex: chunk.startIndex,
3678
+ endIndex: chunk.endIndex,
3635
3679
  providerMetadata: chunk.providerMetadata
3636
3680
  });
3637
3681
  write();
@@ -3863,7 +3907,7 @@ function processUIMessageStream({
3863
3907
  default: {
3864
3908
  if (isDataUIMessageChunk(chunk)) {
3865
3909
  if ((dataPartSchemas == null ? void 0 : dataPartSchemas[chunk.type]) != null) {
3866
- await (0, import_provider_utils11.validateTypes)({
3910
+ await (0, import_provider_utils12.validateTypes)({
3867
3911
  value: chunk.data,
3868
3912
  schema: dataPartSchemas[chunk.type]
3869
3913
  });
@@ -4219,7 +4263,7 @@ function now() {
4219
4263
  }
4220
4264
 
4221
4265
  // src/generate-text/run-tools-transformation.ts
4222
- var import_provider_utils12 = require("@ai-sdk/provider-utils");
4266
+ var import_provider_utils13 = require("@ai-sdk/provider-utils");
4223
4267
  function runToolsTransformation({
4224
4268
  tools,
4225
4269
  generatorStream,
@@ -4305,7 +4349,7 @@ function runToolsTransformation({
4305
4349
  toolCallId: toolCall.toolCallId,
4306
4350
  toolName: toolCall.toolName,
4307
4351
  input: toolCall.input,
4308
- error: (0, import_provider_utils12.getErrorMessage)(toolCall.error),
4352
+ error: (0, import_provider_utils13.getErrorMessage)(toolCall.error),
4309
4353
  dynamic: true
4310
4354
  });
4311
4355
  break;
@@ -4322,7 +4366,7 @@ function runToolsTransformation({
4322
4366
  });
4323
4367
  }
4324
4368
  if (tool3.execute != null && toolCall.providerExecuted !== true) {
4325
- const toolExecutionId = (0, import_provider_utils12.generateId)();
4369
+ const toolExecutionId = (0, import_provider_utils13.generateId)();
4326
4370
  outstandingToolResults.add(toolExecutionId);
4327
4371
  recordSpan({
4328
4372
  name: "ai.toolCall",
@@ -4344,7 +4388,7 @@ function runToolsTransformation({
4344
4388
  fn: async (span) => {
4345
4389
  let output;
4346
4390
  try {
4347
- const stream = (0, import_provider_utils12.executeTool)({
4391
+ const stream = (0, import_provider_utils13.executeTool)({
4348
4392
  execute: tool3.execute.bind(tool3),
4349
4393
  input: toolCall.input,
4350
4394
  options: {
@@ -4463,7 +4507,7 @@ function runToolsTransformation({
4463
4507
  }
4464
4508
 
4465
4509
  // src/generate-text/stream-text.ts
4466
- var originalGenerateId2 = (0, import_provider_utils13.createIdGenerator)({
4510
+ var originalGenerateId2 = (0, import_provider_utils14.createIdGenerator)({
4467
4511
  prefix: "aitxt",
4468
4512
  size: 24
4469
4513
  });
@@ -4873,7 +4917,7 @@ var DefaultStreamTextResult = class {
4873
4917
  }
4874
4918
  controller.enqueue(value);
4875
4919
  } catch (error) {
4876
- if ((0, import_provider_utils13.isAbortError)(error) && (abortSignal == null ? void 0 : abortSignal.aborted)) {
4920
+ if ((0, import_provider_utils14.isAbortError)(error) && (abortSignal == null ? void 0 : abortSignal.aborted)) {
4877
4921
  abort();
4878
4922
  } else {
4879
4923
  controller.error(error);
@@ -5566,6 +5610,9 @@ var DefaultStreamTextResult = class {
5566
5610
  mediaType: part.mediaType,
5567
5611
  title: part.title,
5568
5612
  filename: part.filename,
5613
+ fileId: part.fileId,
5614
+ startIndex: part.startIndex,
5615
+ endIndex: part.endIndex,
5569
5616
  ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
5570
5617
  });
5571
5618
  }
@@ -5993,6 +6040,7 @@ var Agent = class {
5993
6040
  };
5994
6041
 
5995
6042
  // src/embed/embed.ts
6043
+ var import_provider_utils15 = require("@ai-sdk/provider-utils");
5996
6044
  async function embed({
5997
6045
  model: modelArg,
5998
6046
  value,
@@ -6007,10 +6055,14 @@ async function embed({
6007
6055
  maxRetries: maxRetriesArg,
6008
6056
  abortSignal
6009
6057
  });
6058
+ const headersWithUserAgent = (0, import_provider_utils15.withUserAgentSuffix)(
6059
+ headers != null ? headers : {},
6060
+ `ai/${VERSION}`
6061
+ );
6010
6062
  const baseTelemetryAttributes = getBaseTelemetryAttributes({
6011
6063
  model,
6012
6064
  telemetry,
6013
- headers,
6065
+ headers: headersWithUserAgent,
6014
6066
  settings: { maxRetries }
6015
6067
  });
6016
6068
  const tracer = getTracer(telemetry);
@@ -6049,7 +6101,7 @@ async function embed({
6049
6101
  const modelResponse = await model.doEmbed({
6050
6102
  values: [value],
6051
6103
  abortSignal,
6052
- headers,
6104
+ headers: headersWithUserAgent,
6053
6105
  providerOptions
6054
6106
  });
6055
6107
  const embedding2 = modelResponse.embeddings[0];
@@ -6106,6 +6158,9 @@ var DefaultEmbedResult = class {
6106
6158
  }
6107
6159
  };
6108
6160
 
6161
+ // src/embed/embed-many.ts
6162
+ var import_provider_utils16 = require("@ai-sdk/provider-utils");
6163
+
6109
6164
  // src/util/split-array.ts
6110
6165
  function splitArray(array, chunkSize) {
6111
6166
  if (chunkSize <= 0) {
@@ -6134,10 +6189,14 @@ async function embedMany({
6134
6189
  maxRetries: maxRetriesArg,
6135
6190
  abortSignal
6136
6191
  });
6192
+ const headersWithUserAgent = (0, import_provider_utils16.withUserAgentSuffix)(
6193
+ headers != null ? headers : {},
6194
+ `ai/${VERSION}`
6195
+ );
6137
6196
  const baseTelemetryAttributes = getBaseTelemetryAttributes({
6138
6197
  model,
6139
6198
  telemetry,
6140
- headers,
6199
+ headers: headersWithUserAgent,
6141
6200
  settings: { maxRetries }
6142
6201
  });
6143
6202
  const tracer = getTracer(telemetry);
@@ -6186,7 +6245,7 @@ async function embedMany({
6186
6245
  const modelResponse = await model.doEmbed({
6187
6246
  values,
6188
6247
  abortSignal,
6189
- headers,
6248
+ headers: headersWithUserAgent,
6190
6249
  providerOptions
6191
6250
  });
6192
6251
  const embeddings3 = modelResponse.embeddings;
@@ -6268,7 +6327,7 @@ async function embedMany({
6268
6327
  const modelResponse = await model.doEmbed({
6269
6328
  values: chunk,
6270
6329
  abortSignal,
6271
- headers,
6330
+ headers: headersWithUserAgent,
6272
6331
  providerOptions
6273
6332
  });
6274
6333
  const embeddings2 = modelResponse.embeddings;
@@ -6349,6 +6408,7 @@ var DefaultEmbedManyResult = class {
6349
6408
  };
6350
6409
 
6351
6410
  // src/generate-image/generate-image.ts
6411
+ var import_provider_utils17 = require("@ai-sdk/provider-utils");
6352
6412
  async function generateImage({
6353
6413
  model,
6354
6414
  prompt,
@@ -6370,6 +6430,10 @@ async function generateImage({
6370
6430
  modelId: model.modelId
6371
6431
  });
6372
6432
  }
6433
+ const headersWithUserAgent = (0, import_provider_utils17.withUserAgentSuffix)(
6434
+ headers != null ? headers : {},
6435
+ `ai/${VERSION}`
6436
+ );
6373
6437
  const { retry } = prepareRetries({
6374
6438
  maxRetries: maxRetriesArg,
6375
6439
  abortSignal
@@ -6390,7 +6454,7 @@ async function generateImage({
6390
6454
  prompt,
6391
6455
  n: callImageCount,
6392
6456
  abortSignal,
6393
- headers,
6457
+ headers: headersWithUserAgent,
6394
6458
  size,
6395
6459
  aspectRatio,
6396
6460
  seed,
@@ -6462,7 +6526,7 @@ async function invokeModelMaxImagesPerCall(model) {
6462
6526
  }
6463
6527
 
6464
6528
  // src/generate-object/generate-object.ts
6465
- var import_provider_utils16 = require("@ai-sdk/provider-utils");
6529
+ var import_provider_utils20 = require("@ai-sdk/provider-utils");
6466
6530
 
6467
6531
  // src/generate-text/extract-reasoning-content.ts
6468
6532
  function extractReasoningContent(content) {
@@ -6473,8 +6537,8 @@ function extractReasoningContent(content) {
6473
6537
  }
6474
6538
 
6475
6539
  // src/generate-object/output-strategy.ts
6476
- var import_provider24 = require("@ai-sdk/provider");
6477
- var import_provider_utils14 = require("@ai-sdk/provider-utils");
6540
+ var import_provider24 = require("@zenning/provider");
6541
+ var import_provider_utils18 = require("@ai-sdk/provider-utils");
6478
6542
  var noSchemaOutputStrategy = {
6479
6543
  type: "no-schema",
6480
6544
  jsonSchema: void 0,
@@ -6513,7 +6577,7 @@ var objectOutputStrategy = (schema) => ({
6513
6577
  };
6514
6578
  },
6515
6579
  async validateFinalResult(value) {
6516
- return (0, import_provider_utils14.safeValidateTypes)({ value, schema });
6580
+ return (0, import_provider_utils18.safeValidateTypes)({ value, schema });
6517
6581
  },
6518
6582
  createElementStream() {
6519
6583
  throw new import_provider24.UnsupportedFunctionalityError({
@@ -6557,7 +6621,7 @@ var arrayOutputStrategy = (schema) => {
6557
6621
  const resultArray = [];
6558
6622
  for (let i = 0; i < inputArray.length; i++) {
6559
6623
  const element = inputArray[i];
6560
- const result = await (0, import_provider_utils14.safeValidateTypes)({ value: element, schema });
6624
+ const result = await (0, import_provider_utils18.safeValidateTypes)({ value: element, schema });
6561
6625
  if (i === inputArray.length - 1 && !isFinalDelta) {
6562
6626
  continue;
6563
6627
  }
@@ -6598,7 +6662,7 @@ var arrayOutputStrategy = (schema) => {
6598
6662
  }
6599
6663
  const inputArray = value.elements;
6600
6664
  for (const element of inputArray) {
6601
- const result = await (0, import_provider_utils14.safeValidateTypes)({ value: element, schema });
6665
+ const result = await (0, import_provider_utils18.safeValidateTypes)({ value: element, schema });
6602
6666
  if (!result.success) {
6603
6667
  return result;
6604
6668
  }
@@ -6716,9 +6780,9 @@ function getOutputStrategy({
6716
6780
  }) {
6717
6781
  switch (output) {
6718
6782
  case "object":
6719
- return objectOutputStrategy((0, import_provider_utils14.asSchema)(schema));
6783
+ return objectOutputStrategy((0, import_provider_utils18.asSchema)(schema));
6720
6784
  case "array":
6721
- return arrayOutputStrategy((0, import_provider_utils14.asSchema)(schema));
6785
+ return arrayOutputStrategy((0, import_provider_utils18.asSchema)(schema));
6722
6786
  case "enum":
6723
6787
  return enumOutputStrategy(enumValues);
6724
6788
  case "no-schema":
@@ -6731,10 +6795,10 @@ function getOutputStrategy({
6731
6795
  }
6732
6796
 
6733
6797
  // src/generate-object/parse-and-validate-object-result.ts
6734
- var import_provider25 = require("@ai-sdk/provider");
6735
- var import_provider_utils15 = require("@ai-sdk/provider-utils");
6798
+ var import_provider25 = require("@zenning/provider");
6799
+ var import_provider_utils19 = require("@ai-sdk/provider-utils");
6736
6800
  async function parseAndValidateObjectResult(result, outputStrategy, context) {
6737
- const parseResult = await (0, import_provider_utils15.safeParseJSON)({ text: result });
6801
+ const parseResult = await (0, import_provider_utils19.safeParseJSON)({ text: result });
6738
6802
  if (!parseResult.success) {
6739
6803
  throw new NoObjectGeneratedError({
6740
6804
  message: "No object generated: could not parse the response.",
@@ -6906,7 +6970,7 @@ function validateObjectGenerationInput({
6906
6970
  }
6907
6971
 
6908
6972
  // src/generate-object/generate-object.ts
6909
- var originalGenerateId3 = (0, import_provider_utils16.createIdGenerator)({ prefix: "aiobj", size: 24 });
6973
+ var originalGenerateId3 = (0, import_provider_utils20.createIdGenerator)({ prefix: "aiobj", size: 24 });
6910
6974
  async function generateObject(options) {
6911
6975
  const {
6912
6976
  model: modelArg,
@@ -6951,10 +7015,14 @@ async function generateObject(options) {
6951
7015
  enumValues
6952
7016
  });
6953
7017
  const callSettings = prepareCallSettings(settings);
7018
+ const headersWithUserAgent = (0, import_provider_utils20.withUserAgentSuffix)(
7019
+ headers != null ? headers : {},
7020
+ `ai/${VERSION}`
7021
+ );
6954
7022
  const baseTelemetryAttributes = getBaseTelemetryAttributes({
6955
7023
  model,
6956
7024
  telemetry,
6957
- headers,
7025
+ headers: headersWithUserAgent,
6958
7026
  settings: { ...callSettings, maxRetries }
6959
7027
  });
6960
7028
  const tracer = getTracer(telemetry);
@@ -7039,7 +7107,7 @@ async function generateObject(options) {
7039
7107
  prompt: promptMessages,
7040
7108
  providerOptions,
7041
7109
  abortSignal,
7042
- headers
7110
+ headers: headersWithUserAgent
7043
7111
  });
7044
7112
  const responseData = {
7045
7113
  id: (_b = (_a18 = result2.response) == null ? void 0 : _a18.id) != null ? _b : generateId3(),
@@ -7166,7 +7234,7 @@ var DefaultGenerateObjectResult = class {
7166
7234
  };
7167
7235
 
7168
7236
  // src/generate-object/stream-object.ts
7169
- var import_provider_utils18 = require("@ai-sdk/provider-utils");
7237
+ var import_provider_utils22 = require("@ai-sdk/provider-utils");
7170
7238
 
7171
7239
  // src/util/cosine-similarity.ts
7172
7240
  function cosineSimilarity(vector1, vector2) {
@@ -7276,7 +7344,7 @@ var SerialJobExecutor = class {
7276
7344
  };
7277
7345
 
7278
7346
  // src/util/simulate-readable-stream.ts
7279
- var import_provider_utils17 = require("@ai-sdk/provider-utils");
7347
+ var import_provider_utils21 = require("@ai-sdk/provider-utils");
7280
7348
  function simulateReadableStream({
7281
7349
  chunks,
7282
7350
  initialDelayInMs = 0,
@@ -7284,7 +7352,7 @@ function simulateReadableStream({
7284
7352
  _internal
7285
7353
  }) {
7286
7354
  var _a17;
7287
- const delay2 = (_a17 = _internal == null ? void 0 : _internal.delay) != null ? _a17 : import_provider_utils17.delay;
7355
+ const delay2 = (_a17 = _internal == null ? void 0 : _internal.delay) != null ? _a17 : import_provider_utils21.delay;
7288
7356
  let index = 0;
7289
7357
  return new ReadableStream({
7290
7358
  async pull(controller) {
@@ -7299,7 +7367,7 @@ function simulateReadableStream({
7299
7367
  }
7300
7368
 
7301
7369
  // src/generate-object/stream-object.ts
7302
- var originalGenerateId4 = (0, import_provider_utils18.createIdGenerator)({ prefix: "aiobj", size: 24 });
7370
+ var originalGenerateId4 = (0, import_provider_utils22.createIdGenerator)({ prefix: "aiobj", size: 24 });
7303
7371
  function streamObject(options) {
7304
7372
  const {
7305
7373
  model,
@@ -7819,8 +7887,11 @@ var DefaultStreamObjectResult = class {
7819
7887
  }
7820
7888
  };
7821
7889
 
7890
+ // src/generate-speech/generate-speech.ts
7891
+ var import_provider_utils23 = require("@ai-sdk/provider-utils");
7892
+
7822
7893
  // src/error/no-speech-generated-error.ts
7823
- var import_provider26 = require("@ai-sdk/provider");
7894
+ var import_provider26 = require("@zenning/provider");
7824
7895
  var NoSpeechGeneratedError = class extends import_provider26.AISDKError {
7825
7896
  constructor(options) {
7826
7897
  super({
@@ -7878,6 +7949,10 @@ async function generateSpeech({
7878
7949
  modelId: model.modelId
7879
7950
  });
7880
7951
  }
7952
+ const headersWithUserAgent = (0, import_provider_utils23.withUserAgentSuffix)(
7953
+ headers != null ? headers : {},
7954
+ `ai/${VERSION}`
7955
+ );
7881
7956
  const { retry } = prepareRetries({
7882
7957
  maxRetries: maxRetriesArg,
7883
7958
  abortSignal
@@ -7891,7 +7966,7 @@ async function generateSpeech({
7891
7966
  speed,
7892
7967
  language,
7893
7968
  abortSignal,
7894
- headers,
7969
+ headers: headersWithUserAgent,
7895
7970
  providerOptions
7896
7971
  })
7897
7972
  );
@@ -7928,7 +8003,7 @@ __export(output_exports, {
7928
8003
  object: () => object,
7929
8004
  text: () => text
7930
8005
  });
7931
- var import_provider_utils19 = require("@ai-sdk/provider-utils");
8006
+ var import_provider_utils24 = require("@ai-sdk/provider-utils");
7932
8007
  var text = () => ({
7933
8008
  type: "text",
7934
8009
  responseFormat: { type: "text" },
@@ -7942,7 +8017,7 @@ var text = () => ({
7942
8017
  var object = ({
7943
8018
  schema: inputSchema
7944
8019
  }) => {
7945
- const schema = (0, import_provider_utils19.asSchema)(inputSchema);
8020
+ const schema = (0, import_provider_utils24.asSchema)(inputSchema);
7946
8021
  return {
7947
8022
  type: "object",
7948
8023
  responseFormat: {
@@ -7968,7 +8043,7 @@ var object = ({
7968
8043
  }
7969
8044
  },
7970
8045
  async parseOutput({ text: text2 }, context) {
7971
- const parseResult = await (0, import_provider_utils19.safeParseJSON)({ text: text2 });
8046
+ const parseResult = await (0, import_provider_utils24.safeParseJSON)({ text: text2 });
7972
8047
  if (!parseResult.success) {
7973
8048
  throw new NoObjectGeneratedError({
7974
8049
  message: "No object generated: could not parse the response.",
@@ -7979,7 +8054,7 @@ var object = ({
7979
8054
  finishReason: context.finishReason
7980
8055
  });
7981
8056
  }
7982
- const validationResult = await (0, import_provider_utils19.safeValidateTypes)({
8057
+ const validationResult = await (0, import_provider_utils24.safeValidateTypes)({
7983
8058
  value: parseResult.value,
7984
8059
  schema
7985
8060
  });
@@ -7999,8 +8074,8 @@ var object = ({
7999
8074
  };
8000
8075
 
8001
8076
  // src/generate-text/smooth-stream.ts
8002
- var import_provider_utils20 = require("@ai-sdk/provider-utils");
8003
- var import_provider27 = require("@ai-sdk/provider");
8077
+ var import_provider_utils25 = require("@ai-sdk/provider-utils");
8078
+ var import_provider27 = require("@zenning/provider");
8004
8079
  var CHUNKING_REGEXPS = {
8005
8080
  word: /\S+\s+/m,
8006
8081
  line: /\n+/m
@@ -8008,7 +8083,7 @@ var CHUNKING_REGEXPS = {
8008
8083
  function smoothStream({
8009
8084
  delayInMs = 10,
8010
8085
  chunking = "word",
8011
- _internal: { delay: delay2 = import_provider_utils20.delay } = {}
8086
+ _internal: { delay: delay2 = import_provider_utils25.delay } = {}
8012
8087
  } = {}) {
8013
8088
  let detectChunk;
8014
8089
  if (typeof chunking === "function") {
@@ -8402,7 +8477,7 @@ function wrapProvider({
8402
8477
  }
8403
8478
 
8404
8479
  // src/registry/custom-provider.ts
8405
- var import_provider28 = require("@ai-sdk/provider");
8480
+ var import_provider28 = require("@zenning/provider");
8406
8481
  function customProvider({
8407
8482
  languageModels,
8408
8483
  textEmbeddingModels,
@@ -8462,7 +8537,7 @@ function customProvider({
8462
8537
  var experimental_customProvider = customProvider;
8463
8538
 
8464
8539
  // src/registry/no-such-provider-error.ts
8465
- var import_provider29 = require("@ai-sdk/provider");
8540
+ var import_provider29 = require("@zenning/provider");
8466
8541
  var name16 = "AI_NoSuchProviderError";
8467
8542
  var marker16 = `vercel.ai.error.${name16}`;
8468
8543
  var symbol16 = Symbol.for(marker16);
@@ -8487,7 +8562,7 @@ var NoSuchProviderError = class extends import_provider29.NoSuchModelError {
8487
8562
  _a16 = symbol16;
8488
8563
 
8489
8564
  // src/registry/provider-registry.ts
8490
- var import_provider30 = require("@ai-sdk/provider");
8565
+ var import_provider30 = require("@zenning/provider");
8491
8566
  function createProviderRegistry(providers, {
8492
8567
  separator = ":",
8493
8568
  languageModelMiddleware
@@ -8607,10 +8682,10 @@ var DefaultProviderRegistry = class {
8607
8682
  };
8608
8683
 
8609
8684
  // src/tool/mcp/mcp-client.ts
8610
- var import_provider_utils22 = require("@ai-sdk/provider-utils");
8685
+ var import_provider_utils27 = require("@ai-sdk/provider-utils");
8611
8686
 
8612
8687
  // src/tool/mcp/mcp-sse-transport.ts
8613
- var import_provider_utils21 = require("@ai-sdk/provider-utils");
8688
+ var import_provider_utils26 = require("@ai-sdk/provider-utils");
8614
8689
 
8615
8690
  // src/tool/mcp/json-rpc-message.ts
8616
8691
  var import_v49 = require("zod/v4");
@@ -8769,8 +8844,14 @@ var SseMCPTransport = class {
8769
8844
  const establishConnection = async () => {
8770
8845
  var _a17, _b, _c;
8771
8846
  try {
8772
- const headers = new Headers(this.headers);
8773
- headers.set("Accept", "text/event-stream");
8847
+ const headers = (0, import_provider_utils26.withUserAgentSuffix)(
8848
+ {
8849
+ ...this.headers,
8850
+ Accept: "text/event-stream"
8851
+ },
8852
+ `ai-sdk/${VERSION}`,
8853
+ (0, import_provider_utils26.getRuntimeEnvironmentUserAgent)()
8854
+ );
8774
8855
  const response = await fetch(this.url.href, {
8775
8856
  headers,
8776
8857
  signal: (_a17 = this.abortController) == null ? void 0 : _a17.signal
@@ -8782,7 +8863,7 @@ var SseMCPTransport = class {
8782
8863
  (_b = this.onerror) == null ? void 0 : _b.call(this, error);
8783
8864
  return reject(error);
8784
8865
  }
8785
- const stream = response.body.pipeThrough(new TextDecoderStream()).pipeThrough(new import_provider_utils21.EventSourceParserStream());
8866
+ const stream = response.body.pipeThrough(new TextDecoderStream()).pipeThrough(new import_provider_utils26.EventSourceParserStream());
8786
8867
  const reader = stream.getReader();
8787
8868
  const processEvents = async () => {
8788
8869
  var _a18, _b2, _c2;
@@ -8861,8 +8942,14 @@ var SseMCPTransport = class {
8861
8942
  });
8862
8943
  }
8863
8944
  try {
8864
- const headers = new Headers(this.headers);
8865
- headers.set("Content-Type", "application/json");
8945
+ const headers = (0, import_provider_utils26.withUserAgentSuffix)(
8946
+ {
8947
+ ...this.headers,
8948
+ "Content-Type": "application/json"
8949
+ },
8950
+ `ai-sdk/${VERSION}`,
8951
+ (0, import_provider_utils26.getRuntimeEnvironmentUserAgent)()
8952
+ );
8866
8953
  const init = {
8867
8954
  method: "POST",
8868
8955
  headers,
@@ -9112,15 +9199,15 @@ var DefaultMCPClient = class {
9112
9199
  (_a18 = options == null ? void 0 : options.abortSignal) == null ? void 0 : _a18.throwIfAborted();
9113
9200
  return self.callTool({ name: name17, args, options });
9114
9201
  };
9115
- const toolWithExecute = schemas === "automatic" ? (0, import_provider_utils22.dynamicTool)({
9202
+ const toolWithExecute = schemas === "automatic" ? (0, import_provider_utils27.dynamicTool)({
9116
9203
  description,
9117
- inputSchema: (0, import_provider_utils22.jsonSchema)({
9204
+ inputSchema: (0, import_provider_utils27.jsonSchema)({
9118
9205
  ...inputSchema,
9119
9206
  properties: (_a17 = inputSchema.properties) != null ? _a17 : {},
9120
9207
  additionalProperties: false
9121
9208
  }),
9122
9209
  execute
9123
- }) : (0, import_provider_utils22.tool)({
9210
+ }) : (0, import_provider_utils27.tool)({
9124
9211
  description,
9125
9212
  inputSchema: schemas[name17].inputSchema,
9126
9213
  execute
@@ -9169,8 +9256,11 @@ var DefaultMCPClient = class {
9169
9256
  }
9170
9257
  };
9171
9258
 
9259
+ // src/transcribe/transcribe.ts
9260
+ var import_provider_utils28 = require("@ai-sdk/provider-utils");
9261
+
9172
9262
  // src/error/no-transcript-generated-error.ts
9173
- var import_provider31 = require("@ai-sdk/provider");
9263
+ var import_provider31 = require("@zenning/provider");
9174
9264
  var NoTranscriptGeneratedError = class extends import_provider31.AISDKError {
9175
9265
  constructor(options) {
9176
9266
  super({
@@ -9201,6 +9291,10 @@ async function transcribe({
9201
9291
  maxRetries: maxRetriesArg,
9202
9292
  abortSignal
9203
9293
  });
9294
+ const headersWithUserAgent = (0, import_provider_utils28.withUserAgentSuffix)(
9295
+ headers != null ? headers : {},
9296
+ `ai/${VERSION}`
9297
+ );
9204
9298
  const audioData = audio instanceof URL ? (await download({ url: audio })).data : convertDataContentToUint8Array(audio);
9205
9299
  const result = await retry(
9206
9300
  () => {
@@ -9208,7 +9302,7 @@ async function transcribe({
9208
9302
  return model.doGenerate({
9209
9303
  audio: audioData,
9210
9304
  abortSignal,
9211
- headers,
9305
+ headers: headersWithUserAgent,
9212
9306
  providerOptions,
9213
9307
  mediaType: (_a17 = detectMediaType({
9214
9308
  data: audioData,
@@ -9245,7 +9339,7 @@ var DefaultTranscriptionResult = class {
9245
9339
  };
9246
9340
 
9247
9341
  // src/ui/call-completion-api.ts
9248
- var import_provider_utils23 = require("@ai-sdk/provider-utils");
9342
+ var import_provider_utils29 = require("@ai-sdk/provider-utils");
9249
9343
 
9250
9344
  // src/ui/process-text-stream.ts
9251
9345
  async function processTextStream({
@@ -9293,10 +9387,14 @@ async function callCompletionApi({
9293
9387
  ...body
9294
9388
  }),
9295
9389
  credentials,
9296
- headers: {
9297
- "Content-Type": "application/json",
9298
- ...headers
9299
- },
9390
+ headers: (0, import_provider_utils29.withUserAgentSuffix)(
9391
+ {
9392
+ "Content-Type": "application/json",
9393
+ ...headers
9394
+ },
9395
+ `ai-sdk/${VERSION}`,
9396
+ (0, import_provider_utils29.getRuntimeEnvironmentUserAgent)()
9397
+ ),
9300
9398
  signal: abortController.signal
9301
9399
  }).catch((err) => {
9302
9400
  throw err;
@@ -9323,7 +9421,7 @@ async function callCompletionApi({
9323
9421
  }
9324
9422
  case "data": {
9325
9423
  await consumeStream({
9326
- stream: (0, import_provider_utils23.parseJsonEventStream)({
9424
+ stream: (0, import_provider_utils29.parseJsonEventStream)({
9327
9425
  stream: response.body,
9328
9426
  schema: uiMessageChunkSchema
9329
9427
  }).pipeThrough(
@@ -9375,7 +9473,7 @@ async function callCompletionApi({
9375
9473
  }
9376
9474
 
9377
9475
  // src/ui/chat.ts
9378
- var import_provider_utils26 = require("@ai-sdk/provider-utils");
9476
+ var import_provider_utils32 = require("@ai-sdk/provider-utils");
9379
9477
 
9380
9478
  // src/ui/convert-file-list-to-file-ui-parts.ts
9381
9479
  async function convertFileListToFileUIParts(files) {
@@ -9408,10 +9506,10 @@ async function convertFileListToFileUIParts(files) {
9408
9506
  }
9409
9507
 
9410
9508
  // src/ui/default-chat-transport.ts
9411
- var import_provider_utils25 = require("@ai-sdk/provider-utils");
9509
+ var import_provider_utils31 = require("@ai-sdk/provider-utils");
9412
9510
 
9413
9511
  // src/ui/http-chat-transport.ts
9414
- var import_provider_utils24 = require("@ai-sdk/provider-utils");
9512
+ var import_provider_utils30 = require("@ai-sdk/provider-utils");
9415
9513
  var HttpChatTransport = class {
9416
9514
  constructor({
9417
9515
  api = "/api/chat",
@@ -9435,9 +9533,9 @@ var HttpChatTransport = class {
9435
9533
  ...options
9436
9534
  }) {
9437
9535
  var _a17, _b, _c, _d, _e;
9438
- const resolvedBody = await (0, import_provider_utils24.resolve)(this.body);
9439
- const resolvedHeaders = await (0, import_provider_utils24.resolve)(this.headers);
9440
- const resolvedCredentials = await (0, import_provider_utils24.resolve)(this.credentials);
9536
+ const resolvedBody = await (0, import_provider_utils30.resolve)(this.body);
9537
+ const resolvedHeaders = await (0, import_provider_utils30.resolve)(this.headers);
9538
+ const resolvedCredentials = await (0, import_provider_utils30.resolve)(this.credentials);
9441
9539
  const preparedRequest = await ((_a17 = this.prepareSendMessagesRequest) == null ? void 0 : _a17.call(this, {
9442
9540
  api: this.api,
9443
9541
  id: options.chatId,
@@ -9463,10 +9561,14 @@ var HttpChatTransport = class {
9463
9561
  const fetch2 = (_d = this.fetch) != null ? _d : globalThis.fetch;
9464
9562
  const response = await fetch2(api, {
9465
9563
  method: "POST",
9466
- headers: {
9467
- "Content-Type": "application/json",
9468
- ...headers
9469
- },
9564
+ headers: (0, import_provider_utils30.withUserAgentSuffix)(
9565
+ {
9566
+ "Content-Type": "application/json",
9567
+ ...headers
9568
+ },
9569
+ `ai-sdk/${VERSION}`,
9570
+ (0, import_provider_utils30.getRuntimeEnvironmentUserAgent)()
9571
+ ),
9470
9572
  body: JSON.stringify(body),
9471
9573
  credentials,
9472
9574
  signal: abortSignal
@@ -9483,9 +9585,9 @@ var HttpChatTransport = class {
9483
9585
  }
9484
9586
  async reconnectToStream(options) {
9485
9587
  var _a17, _b, _c, _d, _e;
9486
- const resolvedBody = await (0, import_provider_utils24.resolve)(this.body);
9487
- const resolvedHeaders = await (0, import_provider_utils24.resolve)(this.headers);
9488
- const resolvedCredentials = await (0, import_provider_utils24.resolve)(this.credentials);
9588
+ const resolvedBody = await (0, import_provider_utils30.resolve)(this.body);
9589
+ const resolvedHeaders = await (0, import_provider_utils30.resolve)(this.headers);
9590
+ const resolvedCredentials = await (0, import_provider_utils30.resolve)(this.credentials);
9489
9591
  const preparedRequest = await ((_a17 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a17.call(this, {
9490
9592
  api: this.api,
9491
9593
  id: options.chatId,
@@ -9500,7 +9602,11 @@ var HttpChatTransport = class {
9500
9602
  const fetch2 = (_d = this.fetch) != null ? _d : globalThis.fetch;
9501
9603
  const response = await fetch2(api, {
9502
9604
  method: "GET",
9503
- headers,
9605
+ headers: (0, import_provider_utils30.withUserAgentSuffix)(
9606
+ headers,
9607
+ `ai-sdk/${VERSION}`,
9608
+ (0, import_provider_utils30.getRuntimeEnvironmentUserAgent)()
9609
+ ),
9504
9610
  credentials
9505
9611
  });
9506
9612
  if (response.status === 204) {
@@ -9524,7 +9630,7 @@ var DefaultChatTransport = class extends HttpChatTransport {
9524
9630
  super(options);
9525
9631
  }
9526
9632
  processResponseStream(stream) {
9527
- return (0, import_provider_utils25.parseJsonEventStream)({
9633
+ return (0, import_provider_utils31.parseJsonEventStream)({
9528
9634
  stream,
9529
9635
  schema: uiMessageChunkSchema
9530
9636
  }).pipeThrough(
@@ -9543,7 +9649,7 @@ var DefaultChatTransport = class extends HttpChatTransport {
9543
9649
  // src/ui/chat.ts
9544
9650
  var AbstractChat = class {
9545
9651
  constructor({
9546
- generateId: generateId3 = import_provider_utils26.generateId,
9652
+ generateId: generateId3 = import_provider_utils32.generateId,
9547
9653
  id = generateId3(),
9548
9654
  transport = new DefaultChatTransport(),
9549
9655
  messageMetadataSchema,
@@ -9973,8 +10079,8 @@ var TextStreamChatTransport = class extends HttpChatTransport {
9973
10079
  };
9974
10080
 
9975
10081
  // src/ui/validate-ui-messages.ts
9976
- var import_provider32 = require("@ai-sdk/provider");
9977
- var import_provider_utils27 = require("@ai-sdk/provider-utils");
10082
+ var import_provider32 = require("@zenning/provider");
10083
+ var import_provider_utils33 = require("@ai-sdk/provider-utils");
9978
10084
  var import_v410 = require("zod/v4");
9979
10085
  var textUIPartSchema = import_v410.z.object({
9980
10086
  type: import_v410.z.literal("text"),
@@ -10001,6 +10107,9 @@ var sourceDocumentUIPartSchema = import_v410.z.object({
10001
10107
  mediaType: import_v410.z.string(),
10002
10108
  title: import_v410.z.string(),
10003
10109
  filename: import_v410.z.string().optional(),
10110
+ fileId: import_v410.z.string().optional(),
10111
+ startIndex: import_v410.z.number().optional(),
10112
+ endIndex: import_v410.z.number().optional(),
10004
10113
  providerMetadata: providerMetadataSchema.optional()
10005
10114
  });
10006
10115
  var fileUIPartSchema = import_v410.z.object({
@@ -10065,6 +10174,7 @@ var toolUIPartSchemas = [
10065
10174
  type: import_v410.z.string().startsWith("tool-"),
10066
10175
  toolCallId: import_v410.z.string(),
10067
10176
  state: import_v410.z.literal("input-streaming"),
10177
+ providerExecuted: import_v410.z.boolean().optional(),
10068
10178
  input: import_v410.z.unknown().optional(),
10069
10179
  output: import_v410.z.never().optional(),
10070
10180
  errorText: import_v410.z.never().optional()
@@ -10073,6 +10183,7 @@ var toolUIPartSchemas = [
10073
10183
  type: import_v410.z.string().startsWith("tool-"),
10074
10184
  toolCallId: import_v410.z.string(),
10075
10185
  state: import_v410.z.literal("input-available"),
10186
+ providerExecuted: import_v410.z.boolean().optional(),
10076
10187
  input: import_v410.z.unknown(),
10077
10188
  output: import_v410.z.never().optional(),
10078
10189
  errorText: import_v410.z.never().optional(),
@@ -10082,6 +10193,7 @@ var toolUIPartSchemas = [
10082
10193
  type: import_v410.z.string().startsWith("tool-"),
10083
10194
  toolCallId: import_v410.z.string(),
10084
10195
  state: import_v410.z.literal("output-available"),
10196
+ providerExecuted: import_v410.z.boolean().optional(),
10085
10197
  input: import_v410.z.unknown(),
10086
10198
  output: import_v410.z.unknown(),
10087
10199
  errorText: import_v410.z.never().optional(),
@@ -10092,6 +10204,7 @@ var toolUIPartSchemas = [
10092
10204
  type: import_v410.z.string().startsWith("tool-"),
10093
10205
  toolCallId: import_v410.z.string(),
10094
10206
  state: import_v410.z.literal("output-error"),
10207
+ providerExecuted: import_v410.z.boolean().optional(),
10095
10208
  input: import_v410.z.unknown(),
10096
10209
  output: import_v410.z.never().optional(),
10097
10210
  errorText: import_v410.z.string(),
@@ -10129,13 +10242,13 @@ async function validateUIMessages({
10129
10242
  message: "messages parameter must be provided"
10130
10243
  });
10131
10244
  }
10132
- const validatedMessages = await (0, import_provider_utils27.validateTypes)({
10245
+ const validatedMessages = await (0, import_provider_utils33.validateTypes)({
10133
10246
  value: messages,
10134
10247
  schema: import_v410.z.array(uiMessageSchema)
10135
10248
  });
10136
10249
  if (metadataSchema) {
10137
10250
  for (const message of validatedMessages) {
10138
- await (0, import_provider_utils27.validateTypes)({
10251
+ await (0, import_provider_utils33.validateTypes)({
10139
10252
  value: message.metadata,
10140
10253
  schema: metadataSchema
10141
10254
  });
@@ -10155,7 +10268,7 @@ async function validateUIMessages({
10155
10268
  cause: `No data schema found for data part ${dataName}`
10156
10269
  });
10157
10270
  }
10158
- await (0, import_provider_utils27.validateTypes)({
10271
+ await (0, import_provider_utils33.validateTypes)({
10159
10272
  value: dataPart.data,
10160
10273
  schema: dataSchema
10161
10274
  });
@@ -10177,13 +10290,13 @@ async function validateUIMessages({
10177
10290
  });
10178
10291
  }
10179
10292
  if (toolPart.state === "input-available" || toolPart.state === "output-available" || toolPart.state === "output-error") {
10180
- await (0, import_provider_utils27.validateTypes)({
10293
+ await (0, import_provider_utils33.validateTypes)({
10181
10294
  value: toolPart.input,
10182
10295
  schema: tool3.inputSchema
10183
10296
  });
10184
10297
  }
10185
10298
  if (toolPart.state === "output-available" && tool3.outputSchema) {
10186
- await (0, import_provider_utils27.validateTypes)({
10299
+ await (0, import_provider_utils33.validateTypes)({
10187
10300
  value: toolPart.output,
10188
10301
  schema: tool3.outputSchema
10189
10302
  });
@@ -10195,13 +10308,13 @@ async function validateUIMessages({
10195
10308
  }
10196
10309
 
10197
10310
  // src/ui-message-stream/create-ui-message-stream.ts
10198
- var import_provider_utils28 = require("@ai-sdk/provider-utils");
10311
+ var import_provider_utils34 = require("@ai-sdk/provider-utils");
10199
10312
  function createUIMessageStream({
10200
10313
  execute,
10201
- onError = import_provider_utils28.getErrorMessage,
10314
+ onError = import_provider_utils34.getErrorMessage,
10202
10315
  originalMessages,
10203
10316
  onFinish,
10204
- generateId: generateId3 = import_provider_utils28.generateId
10317
+ generateId: generateId3 = import_provider_utils34.generateId
10205
10318
  }) {
10206
10319
  let controller;
10207
10320
  const ongoingStreamPromises = [];