ai 5.0.263 → 5.0.264

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.264" : "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
  }
@@ -4551,8 +4560,10 @@ function runToolsTransformation({
4551
4560
  }
4552
4561
  });
4553
4562
  }
4563
+ const activeToolCallToolNames = /* @__PURE__ */ new Map();
4554
4564
  const forwardStream = new TransformStream({
4555
4565
  async transform(chunk, controller) {
4566
+ var _a16, _b, _c, _d;
4556
4567
  const chunkType = chunk.type;
4557
4568
  switch (chunkType) {
4558
4569
  case "stream-start":
@@ -4562,9 +4573,6 @@ function runToolsTransformation({
4562
4573
  case "reasoning-start":
4563
4574
  case "reasoning-delta":
4564
4575
  case "reasoning-end":
4565
- case "tool-input-start":
4566
- case "tool-input-delta":
4567
- case "tool-input-end":
4568
4576
  case "source":
4569
4577
  case "response-metadata":
4570
4578
  case "error":
@@ -4572,6 +4580,36 @@ function runToolsTransformation({
4572
4580
  controller.enqueue(chunk);
4573
4581
  break;
4574
4582
  }
4583
+ case "tool-input-start": {
4584
+ activeToolCallToolNames.set(chunk.id, chunk.toolName);
4585
+ await ((_b = (_a16 = tools == null ? void 0 : tools[chunk.toolName]) == null ? void 0 : _a16.onInputStart) == null ? void 0 : _b.call(_a16, {
4586
+ toolCallId: chunk.id,
4587
+ messages,
4588
+ abortSignal,
4589
+ experimental_context
4590
+ }));
4591
+ controller.enqueue(chunk);
4592
+ break;
4593
+ }
4594
+ case "tool-input-delta": {
4595
+ const toolName = activeToolCallToolNames.get(chunk.id);
4596
+ if (toolName != null) {
4597
+ await ((_d = (_c = tools == null ? void 0 : tools[toolName]) == null ? void 0 : _c.onInputDelta) == null ? void 0 : _d.call(_c, {
4598
+ inputTextDelta: chunk.delta,
4599
+ toolCallId: chunk.id,
4600
+ messages,
4601
+ abortSignal,
4602
+ experimental_context
4603
+ }));
4604
+ }
4605
+ controller.enqueue(chunk);
4606
+ break;
4607
+ }
4608
+ case "tool-input-end": {
4609
+ activeToolCallToolNames.delete(chunk.id);
4610
+ controller.enqueue(chunk);
4611
+ break;
4612
+ }
4575
4613
  case "file": {
4576
4614
  controller.enqueue({
4577
4615
  type: "file",
@@ -5316,7 +5354,6 @@ var DefaultStreamTextResult = class {
5316
5354
  const stepToolCalls = [];
5317
5355
  const stepToolOutputs = [];
5318
5356
  let warnings;
5319
- const activeToolCallToolNames = {};
5320
5357
  let stepFinishReason = "unknown";
5321
5358
  let stepUsage = {
5322
5359
  inputTokens: void 0,
@@ -5434,16 +5471,7 @@ var DefaultStreamTextResult = class {
5434
5471
  break;
5435
5472
  }
5436
5473
  case "tool-input-start": {
5437
- activeToolCallToolNames[chunk.id] = chunk.toolName;
5438
5474
  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
5475
  controller.enqueue({
5448
5476
  ...chunk,
5449
5477
  dynamic: (tool2 == null ? void 0 : tool2.type) === "dynamic"
@@ -5451,22 +5479,10 @@ var DefaultStreamTextResult = class {
5451
5479
  break;
5452
5480
  }
5453
5481
  case "tool-input-end": {
5454
- delete activeToolCallToolNames[chunk.id];
5455
5482
  controller.enqueue(chunk);
5456
5483
  break;
5457
5484
  }
5458
5485
  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
5486
  controller.enqueue(chunk);
5471
5487
  break;
5472
5488
  }
@@ -9601,7 +9617,7 @@ var HttpChatTransport = class {
9601
9617
  const response = await fetch2(api, {
9602
9618
  method: "POST",
9603
9619
  headers: {
9604
- "Content-Type": "application/json",
9620
+ "content-type": "application/json",
9605
9621
  ...headers
9606
9622
  },
9607
9623
  body: JSON.stringify(body),