ai 3.2.36 → 3.2.38

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
@@ -887,12 +887,18 @@ function calculateCompletionTokenUsage(usage) {
887
887
  }
888
888
 
889
889
  // core/util/prepare-response-headers.ts
890
- function prepareResponseHeaders(init, { contentType }) {
890
+ function prepareResponseHeaders(init, {
891
+ contentType,
892
+ dataStreamVersion
893
+ }) {
891
894
  var _a;
892
895
  const headers = new Headers((_a = init == null ? void 0 : init.headers) != null ? _a : {});
893
896
  if (!headers.has("Content-Type")) {
894
897
  headers.set("Content-Type", contentType);
895
898
  }
899
+ if (dataStreamVersion !== void 0) {
900
+ headers.set("X-Vercel-AI-Data-Stream", dataStreamVersion);
901
+ }
896
902
  return headers;
897
903
  }
898
904
 
@@ -985,7 +991,6 @@ async function generateObject({
985
991
  },
986
992
  tracer,
987
993
  fn: async (span) => {
988
- var _a2, _b;
989
994
  const retry = retryWithExponentialBackoff({ maxRetries });
990
995
  if (mode === "auto" || mode == null) {
991
996
  mode = model.defaultObjectGenerationMode;
@@ -1030,20 +1035,20 @@ async function generateObject({
1030
1035
  abortSignal,
1031
1036
  headers
1032
1037
  });
1038
+ if (result2.text === void 0) {
1039
+ throw new NoObjectGeneratedError();
1040
+ }
1033
1041
  span2.setAttributes({
1034
1042
  "ai.finishReason": result2.finishReason,
1035
1043
  "ai.usage.promptTokens": result2.usage.promptTokens,
1036
1044
  "ai.usage.completionTokens": result2.usage.completionTokens,
1037
- "ai.result.text": result2.text
1045
+ "ai.result.object": result2.text
1038
1046
  });
1039
- return result2;
1047
+ return { ...result2, objectText: result2.text };
1040
1048
  }
1041
1049
  })
1042
1050
  );
1043
- if (generateResult.text === void 0) {
1044
- throw new NoObjectGeneratedError();
1045
- }
1046
- result = generateResult.text;
1051
+ result = generateResult.objectText;
1047
1052
  finishReason = generateResult.finishReason;
1048
1053
  usage = generateResult.usage;
1049
1054
  warnings = generateResult.warnings;
@@ -1073,6 +1078,7 @@ async function generateObject({
1073
1078
  },
1074
1079
  tracer,
1075
1080
  fn: async (span2) => {
1081
+ var _a2, _b;
1076
1082
  const result2 = await model.doGenerate({
1077
1083
  mode: {
1078
1084
  type: "object-tool",
@@ -1089,22 +1095,21 @@ async function generateObject({
1089
1095
  abortSignal,
1090
1096
  headers
1091
1097
  });
1098
+ const objectText = (_b = (_a2 = result2.toolCalls) == null ? void 0 : _a2[0]) == null ? void 0 : _b.args;
1099
+ if (objectText === void 0) {
1100
+ throw new NoObjectGeneratedError();
1101
+ }
1092
1102
  span2.setAttributes({
1093
1103
  "ai.finishReason": result2.finishReason,
1094
1104
  "ai.usage.promptTokens": result2.usage.promptTokens,
1095
1105
  "ai.usage.completionTokens": result2.usage.completionTokens,
1096
- "ai.result.text": result2.text,
1097
- "ai.result.toolCalls": JSON.stringify(result2.toolCalls)
1106
+ "ai.result.object": objectText
1098
1107
  });
1099
- return result2;
1108
+ return { ...result2, objectText };
1100
1109
  }
1101
1110
  })
1102
1111
  );
1103
- const functionArgs = (_b = (_a2 = generateResult.toolCalls) == null ? void 0 : _a2[0]) == null ? void 0 : _b.args;
1104
- if (functionArgs === void 0) {
1105
- throw new NoObjectGeneratedError();
1106
- }
1107
- result = functionArgs;
1112
+ result = generateResult.objectText;
1108
1113
  finishReason = generateResult.finishReason;
1109
1114
  usage = generateResult.usage;
1110
1115
  warnings = generateResult.warnings;
@@ -2483,6 +2488,15 @@ var DefaultStreamTextResult = class {
2483
2488
  );
2484
2489
  break;
2485
2490
  case "finish":
2491
+ controller.enqueue(
2492
+ formatStreamPart("finish_message", {
2493
+ finishReason: chunk.finishReason,
2494
+ usage: {
2495
+ promptTokens: chunk.usage.promptTokens,
2496
+ completionTokens: chunk.usage.completionTokens
2497
+ }
2498
+ })
2499
+ );
2486
2500
  break;
2487
2501
  default: {
2488
2502
  const exhaustiveCheck = chunkType;
@@ -2494,6 +2508,9 @@ var DefaultStreamTextResult = class {
2494
2508
  return this.fullStream.pipeThrough(callbackTransformer).pipeThrough(streamPartsTransformer).pipeThrough(new TextEncoderStream());
2495
2509
  }
2496
2510
  pipeAIStreamToResponse(response, init) {
2511
+ return this.pipeDataStreamToResponse(response, init);
2512
+ }
2513
+ pipeDataStreamToResponse(response, init) {
2497
2514
  var _a;
2498
2515
  response.writeHead((_a = init == null ? void 0 : init.status) != null ? _a : 200, {
2499
2516
  "Content-Type": "text/plain; charset=utf-8",
@@ -2540,6 +2557,9 @@ var DefaultStreamTextResult = class {
2540
2557
  read();
2541
2558
  }
2542
2559
  toAIStreamResponse(options) {
2560
+ return this.toDataStreamResponse(options);
2561
+ }
2562
+ toDataStreamResponse(options) {
2543
2563
  var _a;
2544
2564
  const init = options == null ? void 0 : "init" in options ? options.init : {
2545
2565
  headers: "headers" in options ? options.headers : void 0,
@@ -2552,7 +2572,8 @@ var DefaultStreamTextResult = class {
2552
2572
  status: (_a = init == null ? void 0 : init.status) != null ? _a : 200,
2553
2573
  statusText: init == null ? void 0 : init.statusText,
2554
2574
  headers: prepareResponseHeaders(init, {
2555
- contentType: "text/plain; charset=utf-8"
2575
+ contentType: "text/plain; charset=utf-8",
2576
+ dataStreamVersion: "v1"
2556
2577
  })
2557
2578
  });
2558
2579
  }
@@ -3390,9 +3411,13 @@ function InkeepStream(res, callbacks) {
3390
3411
  // streams/langchain-adapter.ts
3391
3412
  var langchain_adapter_exports = {};
3392
3413
  __export(langchain_adapter_exports, {
3393
- toAIStream: () => toAIStream
3414
+ toAIStream: () => toAIStream,
3415
+ toDataStream: () => toDataStream
3394
3416
  });
3395
3417
  function toAIStream(stream, callbacks) {
3418
+ return toDataStream(stream, callbacks);
3419
+ }
3420
+ function toDataStream(stream, callbacks) {
3396
3421
  return stream.pipeThrough(
3397
3422
  new TransformStream({
3398
3423
  transform: async (value, controller) => {