ai 5.0.76 → 5.0.78

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
@@ -696,7 +696,7 @@ import {
696
696
  } from "@ai-sdk/provider-utils";
697
697
 
698
698
  // src/version.ts
699
- var VERSION = true ? "5.0.76" : "0.0.0-test";
699
+ var VERSION = true ? "5.0.78" : "0.0.0-test";
700
700
 
701
701
  // src/util/download/download.ts
702
702
  var download = async ({ url }) => {
@@ -3401,6 +3401,15 @@ async function parsePartialJson(jsonText) {
3401
3401
  function isDataUIPart(part) {
3402
3402
  return part.type.startsWith("data-");
3403
3403
  }
3404
+ function isTextUIPart(part) {
3405
+ return part.type === "text";
3406
+ }
3407
+ function isFileUIPart(part) {
3408
+ return part.type === "file";
3409
+ }
3410
+ function isReasoningUIPart(part) {
3411
+ return part.type === "reasoning";
3412
+ }
3404
3413
  function isToolUIPart(part) {
3405
3414
  return part.type.startsWith("tool-");
3406
3415
  }
@@ -5781,7 +5790,9 @@ function convertToModelMessages(messages, options) {
5781
5790
  for (const message of messages) {
5782
5791
  switch (message.role) {
5783
5792
  case "system": {
5784
- const textParts = message.parts.filter((part) => part.type === "text");
5793
+ const textParts = message.parts.filter(
5794
+ (part) => part.type === "text"
5795
+ );
5785
5796
  const providerMetadata = textParts.reduce((acc, part) => {
5786
5797
  if (part.providerMetadata != null) {
5787
5798
  return { ...acc, ...part.providerMetadata };
@@ -5798,60 +5809,63 @@ function convertToModelMessages(messages, options) {
5798
5809
  case "user": {
5799
5810
  modelMessages.push({
5800
5811
  role: "user",
5801
- content: message.parts.filter(
5802
- (part) => part.type === "text" || part.type === "file"
5803
- ).map((part) => {
5804
- switch (part.type) {
5805
- case "text":
5806
- return {
5807
- type: "text",
5808
- text: part.text,
5809
- ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
5810
- };
5811
- case "file":
5812
- return {
5813
- type: "file",
5814
- mediaType: part.mediaType,
5815
- filename: part.filename,
5816
- data: part.url,
5817
- ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
5818
- };
5819
- default:
5820
- return part;
5812
+ content: message.parts.map((part) => {
5813
+ var _a17;
5814
+ if (isTextUIPart(part)) {
5815
+ return {
5816
+ type: "text",
5817
+ text: part.text,
5818
+ ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
5819
+ };
5821
5820
  }
5822
- })
5821
+ if (isFileUIPart(part)) {
5822
+ return {
5823
+ type: "file",
5824
+ mediaType: part.mediaType,
5825
+ filename: part.filename,
5826
+ data: part.url,
5827
+ ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
5828
+ };
5829
+ }
5830
+ if (isDataUIPart(part)) {
5831
+ return (_a17 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a17.call(
5832
+ options,
5833
+ part
5834
+ );
5835
+ }
5836
+ }).filter((part) => part != null)
5823
5837
  });
5824
5838
  break;
5825
5839
  }
5826
5840
  case "assistant": {
5827
5841
  if (message.parts != null) {
5828
5842
  let processBlock2 = function() {
5829
- var _a17, _b;
5843
+ var _a17, _b, _c;
5830
5844
  if (block.length === 0) {
5831
5845
  return;
5832
5846
  }
5833
5847
  const content = [];
5834
5848
  for (const part of block) {
5835
- if (part.type === "text") {
5849
+ if (isTextUIPart(part)) {
5836
5850
  content.push({
5837
5851
  type: "text",
5838
5852
  text: part.text,
5839
5853
  ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
5840
5854
  });
5841
- } else if (part.type === "file") {
5855
+ } else if (isFileUIPart(part)) {
5842
5856
  content.push({
5843
5857
  type: "file",
5844
5858
  mediaType: part.mediaType,
5845
5859
  filename: part.filename,
5846
5860
  data: part.url
5847
5861
  });
5848
- } else if (part.type === "reasoning") {
5862
+ } else if (isReasoningUIPart(part)) {
5849
5863
  content.push({
5850
5864
  type: "reasoning",
5851
5865
  text: part.text,
5852
5866
  providerOptions: part.providerMetadata
5853
5867
  });
5854
- } else if (part.type === "dynamic-tool") {
5868
+ } else if (isDynamicToolUIPart(part)) {
5855
5869
  const toolName = part.toolName;
5856
5870
  if (part.state !== "input-streaming") {
5857
5871
  content.push({
@@ -5886,6 +5900,14 @@ function convertToModelMessages(messages, options) {
5886
5900
  });
5887
5901
  }
5888
5902
  }
5903
+ } else if (isDataUIPart(part)) {
5904
+ const dataPart = (_c = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _c.call(
5905
+ options,
5906
+ part
5907
+ );
5908
+ if (dataPart != null) {
5909
+ content.push(dataPart);
5910
+ }
5889
5911
  } else {
5890
5912
  const _exhaustiveCheck = part;
5891
5913
  throw new Error(`Unsupported part: ${_exhaustiveCheck}`);
@@ -5906,7 +5928,7 @@ function convertToModelMessages(messages, options) {
5906
5928
  switch (toolPart.state) {
5907
5929
  case "output-error":
5908
5930
  case "output-available": {
5909
- const toolName = toolPart.type === "dynamic-tool" ? toolPart.toolName : getToolName(toolPart);
5931
+ const toolName = getToolOrDynamicToolName(toolPart);
5910
5932
  return {
5911
5933
  type: "tool-result",
5912
5934
  toolCallId: toolPart.toolCallId,
@@ -5932,7 +5954,7 @@ function convertToModelMessages(messages, options) {
5932
5954
  var processBlock = processBlock2;
5933
5955
  let block = [];
5934
5956
  for (const part of message.parts) {
5935
- if (part.type === "text" || part.type === "reasoning" || part.type === "file" || part.type === "dynamic-tool" || isToolUIPart(part)) {
5957
+ if (isTextUIPart(part) || isReasoningUIPart(part) || isFileUIPart(part) || isToolOrDynamicToolUIPart(part) || isDataUIPart(part)) {
5936
5958
  block.push(part);
5937
5959
  } else if (part.type === "step-start") {
5938
5960
  processBlock2();
@@ -10609,6 +10631,9 @@ export {
10609
10631
  hasToolCall,
10610
10632
  isDataUIPart,
10611
10633
  isDeepEqualData,
10634
+ isFileUIPart,
10635
+ isReasoningUIPart,
10636
+ isTextUIPart,
10612
10637
  isToolOrDynamicToolUIPart,
10613
10638
  isToolUIPart,
10614
10639
  jsonSchema2 as jsonSchema,