ai 5.0.263 → 5.0.265

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.mjs CHANGED
@@ -727,7 +727,7 @@ import {
727
727
  } from "@ai-sdk/provider-utils";
728
728
 
729
729
  // src/version.ts
730
- var VERSION = true ? "5.0.263" : "0.0.0-test";
730
+ var VERSION = true ? "5.0.265" : "0.0.0-test";
731
731
 
732
732
  // src/util/download/download.ts
733
733
  var download = async ({
@@ -940,12 +940,14 @@ function convertToLanguageModelMessage({
940
940
  const { data, mediaType } = convertToLanguageModelV2DataContent(
941
941
  part.data
942
942
  );
943
+ const originalUrl = getOriginalUrl(part.data, data);
943
944
  return {
944
945
  type: "file",
945
946
  data,
946
947
  filename: part.filename,
947
948
  mediaType: mediaType != null ? mediaType : part.mediaType,
948
- providerOptions
949
+ providerOptions,
950
+ ...originalUrl != null ? { originalUrl } : {}
949
951
  };
950
952
  }
951
953
  case "reasoning": {
@@ -1041,6 +1043,9 @@ async function downloadAssets(messages, download2, supportedUrls) {
1041
1043
  ).filter((file) => file != null)
1042
1044
  );
1043
1045
  }
1046
+ function getOriginalUrl(originalData, convertedData) {
1047
+ return typeof originalData === "string" && convertedData instanceof URL && convertedData.toString() !== originalData ? originalData : void 0;
1048
+ }
1044
1049
  function convertPartToLanguageModelPart(part, downloadedAssets) {
1045
1050
  var _a16;
1046
1051
  if (part.type === "text") {
@@ -1065,11 +1070,13 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
1065
1070
  const { data: convertedData, mediaType: convertedMediaType } = convertToLanguageModelV2DataContent(originalData);
1066
1071
  let mediaType = convertedMediaType != null ? convertedMediaType : part.mediaType;
1067
1072
  let data = convertedData;
1073
+ let originalUrl = getOriginalUrl(originalData, convertedData);
1068
1074
  if (data instanceof URL) {
1069
1075
  const downloadedFile = downloadedAssets[data.toString()];
1070
1076
  if (downloadedFile) {
1071
1077
  data = downloadedFile.data;
1072
1078
  mediaType != null ? mediaType : mediaType = downloadedFile.mediaType;
1079
+ originalUrl = void 0;
1073
1080
  }
1074
1081
  }
1075
1082
  switch (type) {
@@ -1083,7 +1090,8 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
1083
1090
  // any image
1084
1091
  filename: void 0,
1085
1092
  data,
1086
- providerOptions: part.providerOptions
1093
+ providerOptions: part.providerOptions,
1094
+ ...originalUrl != null ? { originalUrl } : {}
1087
1095
  };
1088
1096
  }
1089
1097
  case "file": {
@@ -1095,7 +1103,8 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
1095
1103
  mediaType,
1096
1104
  filename: part.filename,
1097
1105
  data,
1098
- providerOptions: part.providerOptions
1106
+ providerOptions: part.providerOptions,
1107
+ ...originalUrl != null ? { originalUrl } : {}
1099
1108
  };
1100
1109
  }
1101
1110
  }
@@ -1935,8 +1944,8 @@ var DefaultGeneratedFile = class {
1935
1944
  }
1936
1945
  };
1937
1946
  var DefaultGeneratedFileWithType = class extends DefaultGeneratedFile {
1938
- constructor(options) {
1939
- super(options);
1947
+ constructor() {
1948
+ super(...arguments);
1940
1949
  this.type = "file";
1941
1950
  }
1942
1951
  };
@@ -2914,8 +2923,6 @@ function writeToServerResponse({
2914
2923
  });
2915
2924
  }
2916
2925
  }
2917
- } catch (error) {
2918
- throw error;
2919
2926
  } finally {
2920
2927
  response.end();
2921
2928
  }
@@ -4551,8 +4558,10 @@ function runToolsTransformation({
4551
4558
  }
4552
4559
  });
4553
4560
  }
4561
+ const activeToolCallToolNames = /* @__PURE__ */ new Map();
4554
4562
  const forwardStream = new TransformStream({
4555
4563
  async transform(chunk, controller) {
4564
+ var _a16, _b, _c, _d;
4556
4565
  const chunkType = chunk.type;
4557
4566
  switch (chunkType) {
4558
4567
  case "stream-start":
@@ -4562,9 +4571,6 @@ function runToolsTransformation({
4562
4571
  case "reasoning-start":
4563
4572
  case "reasoning-delta":
4564
4573
  case "reasoning-end":
4565
- case "tool-input-start":
4566
- case "tool-input-delta":
4567
- case "tool-input-end":
4568
4574
  case "source":
4569
4575
  case "response-metadata":
4570
4576
  case "error":
@@ -4572,6 +4578,36 @@ function runToolsTransformation({
4572
4578
  controller.enqueue(chunk);
4573
4579
  break;
4574
4580
  }
4581
+ case "tool-input-start": {
4582
+ activeToolCallToolNames.set(chunk.id, chunk.toolName);
4583
+ await ((_b = (_a16 = tools == null ? void 0 : tools[chunk.toolName]) == null ? void 0 : _a16.onInputStart) == null ? void 0 : _b.call(_a16, {
4584
+ toolCallId: chunk.id,
4585
+ messages,
4586
+ abortSignal,
4587
+ experimental_context
4588
+ }));
4589
+ controller.enqueue(chunk);
4590
+ break;
4591
+ }
4592
+ case "tool-input-delta": {
4593
+ const toolName = activeToolCallToolNames.get(chunk.id);
4594
+ if (toolName != null) {
4595
+ await ((_d = (_c = tools == null ? void 0 : tools[toolName]) == null ? void 0 : _c.onInputDelta) == null ? void 0 : _d.call(_c, {
4596
+ inputTextDelta: chunk.delta,
4597
+ toolCallId: chunk.id,
4598
+ messages,
4599
+ abortSignal,
4600
+ experimental_context
4601
+ }));
4602
+ }
4603
+ controller.enqueue(chunk);
4604
+ break;
4605
+ }
4606
+ case "tool-input-end": {
4607
+ activeToolCallToolNames.delete(chunk.id);
4608
+ controller.enqueue(chunk);
4609
+ break;
4610
+ }
4575
4611
  case "file": {
4576
4612
  controller.enqueue({
4577
4613
  type: "file",
@@ -5316,7 +5352,6 @@ var DefaultStreamTextResult = class {
5316
5352
  const stepToolCalls = [];
5317
5353
  const stepToolOutputs = [];
5318
5354
  let warnings;
5319
- const activeToolCallToolNames = {};
5320
5355
  let stepFinishReason = "unknown";
5321
5356
  let stepUsage = {
5322
5357
  inputTokens: void 0,
@@ -5434,16 +5469,7 @@ var DefaultStreamTextResult = class {
5434
5469
  break;
5435
5470
  }
5436
5471
  case "tool-input-start": {
5437
- activeToolCallToolNames[chunk.id] = chunk.toolName;
5438
5472
  const tool2 = stepToolSet == null ? void 0 : stepToolSet[chunk.toolName];
5439
- if ((tool2 == null ? void 0 : tool2.onInputStart) != null) {
5440
- await tool2.onInputStart({
5441
- toolCallId: chunk.id,
5442
- messages: stepInputMessages,
5443
- abortSignal,
5444
- experimental_context
5445
- });
5446
- }
5447
5473
  controller.enqueue({
5448
5474
  ...chunk,
5449
5475
  dynamic: (tool2 == null ? void 0 : tool2.type) === "dynamic"
@@ -5451,22 +5477,10 @@ var DefaultStreamTextResult = class {
5451
5477
  break;
5452
5478
  }
5453
5479
  case "tool-input-end": {
5454
- delete activeToolCallToolNames[chunk.id];
5455
5480
  controller.enqueue(chunk);
5456
5481
  break;
5457
5482
  }
5458
5483
  case "tool-input-delta": {
5459
- const toolName = activeToolCallToolNames[chunk.id];
5460
- const tool2 = stepToolSet == null ? void 0 : stepToolSet[toolName];
5461
- if ((tool2 == null ? void 0 : tool2.onInputDelta) != null) {
5462
- await tool2.onInputDelta({
5463
- inputTextDelta: chunk.delta,
5464
- toolCallId: chunk.id,
5465
- messages: stepInputMessages,
5466
- abortSignal,
5467
- experimental_context
5468
- });
5469
- }
5470
5484
  controller.enqueue(chunk);
5471
5485
  break;
5472
5486
  }
@@ -6576,7 +6590,6 @@ async function embedMany({
6576
6590
  }),
6577
6591
  tracer,
6578
6592
  fn: async (span) => {
6579
- var _a16;
6580
6593
  const [
6581
6594
  maxEmbeddingsPerCall,
6582
6595
  maxInputBytesPerCall,
@@ -6609,7 +6622,7 @@ async function embedMany({
6609
6622
  }),
6610
6623
  tracer,
6611
6624
  fn: async (doEmbedSpan) => {
6612
- var _a17;
6625
+ var _a16;
6613
6626
  const modelResponse = await model.doEmbed({
6614
6627
  values,
6615
6628
  abortSignal,
@@ -6617,7 +6630,7 @@ async function embedMany({
6617
6630
  providerOptions
6618
6631
  });
6619
6632
  const embeddings3 = modelResponse.embeddings;
6620
- const usage2 = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
6633
+ const usage2 = (_a16 = modelResponse.usage) != null ? _a16 : { tokens: NaN };
6621
6634
  doEmbedSpan.setAttributes(
6622
6635
  selectTelemetryAttributes({
6623
6636
  telemetry,
@@ -6695,7 +6708,7 @@ async function embedMany({
6695
6708
  }),
6696
6709
  tracer,
6697
6710
  fn: async (doEmbedSpan) => {
6698
- var _a17;
6711
+ var _a16;
6699
6712
  const modelResponse = await model.doEmbed({
6700
6713
  values: chunk,
6701
6714
  abortSignal,
@@ -6703,7 +6716,7 @@ async function embedMany({
6703
6716
  providerOptions
6704
6717
  });
6705
6718
  const embeddings2 = modelResponse.embeddings;
6706
- const usage = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
6719
+ const usage = (_a16 = modelResponse.usage) != null ? _a16 : { tokens: NaN };
6707
6720
  doEmbedSpan.setAttributes(
6708
6721
  selectTelemetryAttributes({
6709
6722
  telemetry,
@@ -6740,7 +6753,7 @@ async function embedMany({
6740
6753
  result.providerMetadata
6741
6754
  )) {
6742
6755
  providerMetadata[providerName] = {
6743
- ...(_a16 = providerMetadata[providerName]) != null ? _a16 : {},
6756
+ ...providerMetadata[providerName],
6744
6757
  ...metadata
6745
6758
  };
6746
6759
  }
@@ -9601,7 +9614,7 @@ var HttpChatTransport = class {
9601
9614
  const response = await fetch2(api, {
9602
9615
  method: "POST",
9603
9616
  headers: {
9604
- "Content-Type": "application/json",
9617
+ "content-type": "application/json",
9605
9618
  ...headers
9606
9619
  },
9607
9620
  body: JSON.stringify(body),
@@ -10404,7 +10417,7 @@ async function safeValidateUIMessages({
10404
10417
  }
10405
10418
  if (metadataSchema) {
10406
10419
  for (const message of validatedMessages) {
10407
- await validateTypes2({
10420
+ message.metadata = await validateTypes2({
10408
10421
  value: message.metadata,
10409
10422
  schema: metadataSchema
10410
10423
  });
@@ -10427,7 +10440,7 @@ async function safeValidateUIMessages({
10427
10440
  })
10428
10441
  };
10429
10442
  }
10430
- await validateTypes2({
10443
+ dataPart.data = await validateTypes2({
10431
10444
  value: dataPart.data,
10432
10445
  schema: dataSchema
10433
10446
  });