ai 3.3.8 → 3.3.9

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
@@ -842,13 +842,18 @@ function convertToLanguageModelMessage(message, downloadedImages) {
842
842
  const role = message.role;
843
843
  switch (role) {
844
844
  case "system": {
845
- return { role: "system", content: message.content };
845
+ return {
846
+ role: "system",
847
+ content: message.content,
848
+ providerMetadata: message.experimental_providerMetadata
849
+ };
846
850
  }
847
851
  case "user": {
848
852
  if (typeof message.content === "string") {
849
853
  return {
850
854
  role: "user",
851
- content: [{ type: "text", text: message.content }]
855
+ content: [{ type: "text", text: message.content }],
856
+ providerMetadata: message.experimental_providerMetadata
852
857
  };
853
858
  }
854
859
  return {
@@ -858,7 +863,11 @@ function convertToLanguageModelMessage(message, downloadedImages) {
858
863
  var _a12, _b, _c;
859
864
  switch (part.type) {
860
865
  case "text": {
861
- return part;
866
+ return {
867
+ type: "text",
868
+ text: part.text,
869
+ providerMetadata: part.experimental_providerMetadata
870
+ };
862
871
  }
863
872
  case "image": {
864
873
  if (part.image instanceof URL) {
@@ -866,14 +875,16 @@ function convertToLanguageModelMessage(message, downloadedImages) {
866
875
  return {
867
876
  type: "image",
868
877
  image: part.image,
869
- mimeType: part.mimeType
878
+ mimeType: part.mimeType,
879
+ providerMetadata: part.experimental_providerMetadata
870
880
  };
871
881
  } else {
872
882
  const downloadedImage = downloadedImages[part.image.toString()];
873
883
  return {
874
884
  type: "image",
875
885
  image: downloadedImage.data,
876
- mimeType: (_a12 = part.mimeType) != null ? _a12 : downloadedImage.mimeType
886
+ mimeType: (_a12 = part.mimeType) != null ? _a12 : downloadedImage.mimeType,
887
+ providerMetadata: part.experimental_providerMetadata
877
888
  };
878
889
  }
879
890
  }
@@ -887,14 +898,16 @@ function convertToLanguageModelMessage(message, downloadedImages) {
887
898
  return {
888
899
  type: "image",
889
900
  image: url,
890
- mimeType: part.mimeType
901
+ mimeType: part.mimeType,
902
+ providerMetadata: part.experimental_providerMetadata
891
903
  };
892
904
  } else {
893
905
  const downloadedImage = downloadedImages[part.image];
894
906
  return {
895
907
  type: "image",
896
908
  image: downloadedImage.data,
897
- mimeType: (_b = part.mimeType) != null ? _b : downloadedImage.mimeType
909
+ mimeType: (_b = part.mimeType) != null ? _b : downloadedImage.mimeType,
910
+ providerMetadata: part.experimental_providerMetadata
898
911
  };
899
912
  }
900
913
  }
@@ -908,7 +921,8 @@ function convertToLanguageModelMessage(message, downloadedImages) {
908
921
  return {
909
922
  type: "image",
910
923
  image: convertDataContentToUint8Array(base64Content),
911
- mimeType
924
+ mimeType,
925
+ providerMetadata: part.experimental_providerMetadata
912
926
  };
913
927
  } catch (error) {
914
928
  throw new Error(
@@ -931,19 +945,22 @@ function convertToLanguageModelMessage(message, downloadedImages) {
931
945
  return {
932
946
  type: "image",
933
947
  image: imageUint8,
934
- mimeType: (_c = part.mimeType) != null ? _c : detectImageMimeType(imageUint8)
948
+ mimeType: (_c = part.mimeType) != null ? _c : detectImageMimeType(imageUint8),
949
+ providerMetadata: part.experimental_providerMetadata
935
950
  };
936
951
  }
937
952
  }
938
953
  }
939
- )
954
+ ),
955
+ providerMetadata: message.experimental_providerMetadata
940
956
  };
941
957
  }
942
958
  case "assistant": {
943
959
  if (typeof message.content === "string") {
944
960
  return {
945
961
  role: "assistant",
946
- content: [{ type: "text", text: message.content }]
962
+ content: [{ type: "text", text: message.content }],
963
+ providerMetadata: message.experimental_providerMetadata
947
964
  };
948
965
  }
949
966
  return {
@@ -951,11 +968,22 @@ function convertToLanguageModelMessage(message, downloadedImages) {
951
968
  content: message.content.filter(
952
969
  // remove empty text parts:
953
970
  (part) => part.type !== "text" || part.text !== ""
954
- )
971
+ ),
972
+ providerMetadata: message.experimental_providerMetadata
955
973
  };
956
974
  }
957
975
  case "tool": {
958
- return message;
976
+ return {
977
+ role: "tool",
978
+ content: message.content.map((part) => ({
979
+ type: "tool-result",
980
+ toolCallId: part.toolCallId,
981
+ toolName: part.toolName,
982
+ result: part.result,
983
+ providerMetadata: part.experimental_providerMetadata
984
+ })),
985
+ providerMetadata: message.experimental_providerMetadata
986
+ };
959
987
  }
960
988
  default: {
961
989
  const _exhaustiveCheck = role;
@@ -1301,6 +1329,7 @@ async function generateObject({
1301
1329
  let warnings;
1302
1330
  let rawResponse;
1303
1331
  let logprobs;
1332
+ let providerMetadata;
1304
1333
  switch (mode) {
1305
1334
  case "json": {
1306
1335
  const validatedPrompt = getValidatedPrompt({
@@ -1385,6 +1414,7 @@ async function generateObject({
1385
1414
  warnings = generateResult.warnings;
1386
1415
  rawResponse = generateResult.rawResponse;
1387
1416
  logprobs = generateResult.logprobs;
1417
+ providerMetadata = generateResult.providerMetadata;
1388
1418
  break;
1389
1419
  }
1390
1420
  case "tool": {
@@ -1472,6 +1502,7 @@ async function generateObject({
1472
1502
  warnings = generateResult.warnings;
1473
1503
  rawResponse = generateResult.rawResponse;
1474
1504
  logprobs = generateResult.logprobs;
1505
+ providerMetadata = generateResult.providerMetadata;
1475
1506
  break;
1476
1507
  }
1477
1508
  case void 0: {
@@ -1507,7 +1538,8 @@ async function generateObject({
1507
1538
  usage: calculateCompletionTokenUsage(usage),
1508
1539
  warnings,
1509
1540
  rawResponse,
1510
- logprobs
1541
+ logprobs,
1542
+ providerMetadata
1511
1543
  });
1512
1544
  }
1513
1545
  });
@@ -1520,6 +1552,7 @@ var DefaultGenerateObjectResult = class {
1520
1552
  this.warnings = options.warnings;
1521
1553
  this.rawResponse = options.rawResponse;
1522
1554
  this.logprobs = options.logprobs;
1555
+ this.experimental_providerMetadata = options.providerMetadata;
1523
1556
  }
1524
1557
  toJsonResponse(init) {
1525
1558
  var _a12;
@@ -1823,8 +1856,14 @@ var DefaultStreamObjectResult = class {
1823
1856
  this.objectPromise = new DelayedPromise();
1824
1857
  const { resolve: resolveUsage, promise: usagePromise } = createResolvablePromise();
1825
1858
  this.usage = usagePromise;
1859
+ const {
1860
+ resolve: resolveProviderMetadata,
1861
+ promise: providerMetadataPromise
1862
+ } = createResolvablePromise();
1863
+ this.experimental_providerMetadata = providerMetadataPromise;
1826
1864
  let usage;
1827
1865
  let finishReason;
1866
+ let providerMetadata;
1828
1867
  let object;
1829
1868
  let error;
1830
1869
  let accumulatedText = "";
@@ -1869,8 +1908,10 @@ var DefaultStreamObjectResult = class {
1869
1908
  }
1870
1909
  finishReason = chunk.finishReason;
1871
1910
  usage = calculateCompletionTokenUsage(chunk.usage);
1911
+ providerMetadata = chunk.providerMetadata;
1872
1912
  controller.enqueue({ ...chunk, usage });
1873
1913
  resolveUsage(usage);
1914
+ resolveProviderMetadata(providerMetadata);
1874
1915
  const validationResult = safeValidateTypes({
1875
1916
  value: latestObject,
1876
1917
  schema
@@ -1933,7 +1974,8 @@ var DefaultStreamObjectResult = class {
1933
1974
  object,
1934
1975
  error,
1935
1976
  rawResponse,
1936
- warnings
1977
+ warnings,
1978
+ experimental_providerMetadata: providerMetadata
1937
1979
  }));
1938
1980
  } catch (error2) {
1939
1981
  controller.error(error2);
@@ -2385,7 +2427,8 @@ async function generateText({
2385
2427
  rawResponse: currentModelResponse.rawResponse,
2386
2428
  logprobs: currentModelResponse.logprobs,
2387
2429
  responseMessages,
2388
- roundtrips
2430
+ roundtrips,
2431
+ providerMetadata: currentModelResponse.providerMetadata
2389
2432
  });
2390
2433
  }
2391
2434
  });
@@ -2461,6 +2504,7 @@ var DefaultGenerateTextResult = class {
2461
2504
  this.logprobs = options.logprobs;
2462
2505
  this.responseMessages = options.responseMessages;
2463
2506
  this.roundtrips = options.roundtrips;
2507
+ this.experimental_providerMetadata = options.providerMetadata;
2464
2508
  }
2465
2509
  };
2466
2510
  function toResponseMessages({
@@ -2719,7 +2763,8 @@ function runToolsTransformation({
2719
2763
  type: "finish",
2720
2764
  finishReason: chunk.finishReason,
2721
2765
  logprobs: chunk.logprobs,
2722
- usage: calculateCompletionTokenUsage(chunk.usage)
2766
+ usage: calculateCompletionTokenUsage(chunk.usage),
2767
+ experimental_providerMetadata: chunk.providerMetadata
2723
2768
  });
2724
2769
  break;
2725
2770
  }
@@ -2900,8 +2945,14 @@ var DefaultStreamTextResult = class {
2900
2945
  this.toolCalls = toolCallsPromise;
2901
2946
  const { resolve: resolveToolResults, promise: toolResultsPromise } = createResolvablePromise();
2902
2947
  this.toolResults = toolResultsPromise;
2948
+ const {
2949
+ resolve: resolveProviderMetadata,
2950
+ promise: providerMetadataPromise
2951
+ } = createResolvablePromise();
2952
+ this.experimental_providerMetadata = providerMetadataPromise;
2903
2953
  let finishReason;
2904
2954
  let usage;
2955
+ let providerMetadata;
2905
2956
  let text = "";
2906
2957
  const toolCalls = [];
2907
2958
  const toolResults = [];
@@ -2934,10 +2985,12 @@ var DefaultStreamTextResult = class {
2934
2985
  case "finish":
2935
2986
  usage = chunk.usage;
2936
2987
  finishReason = chunk.finishReason;
2988
+ providerMetadata = chunk.experimental_providerMetadata;
2937
2989
  resolveUsage(usage);
2938
2990
  resolveFinishReason(finishReason);
2939
2991
  resolveText(text);
2940
2992
  resolveToolCalls(toolCalls);
2993
+ resolveProviderMetadata(providerMetadata);
2941
2994
  break;
2942
2995
  case "tool-call-streaming-start":
2943
2996
  case "tool-call-delta": {
@@ -3003,7 +3056,8 @@ var DefaultStreamTextResult = class {
3003
3056
  // The type exposed to the users will be correctly inferred.
3004
3057
  toolResults,
3005
3058
  rawResponse,
3006
- warnings
3059
+ warnings,
3060
+ experimental_providerMetadata: providerMetadata
3007
3061
  }));
3008
3062
  } catch (error) {
3009
3063
  controller.error(error);