ai 6.0.206 → 6.0.208

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
@@ -1161,6 +1161,7 @@ function detectMediaType({
1161
1161
 
1162
1162
  // src/util/download/download.ts
1163
1163
  import {
1164
+ cancelResponseBody,
1164
1165
  DownloadError as DownloadError2,
1165
1166
  readResponseWithSizeLimit,
1166
1167
  DEFAULT_MAX_DOWNLOAD_SIZE,
@@ -1170,7 +1171,7 @@ import {
1170
1171
  } from "@ai-sdk/provider-utils";
1171
1172
 
1172
1173
  // src/version.ts
1173
- var VERSION = true ? "6.0.206" : "0.0.0-test";
1174
+ var VERSION = true ? "6.0.208" : "0.0.0-test";
1174
1175
 
1175
1176
  // src/util/download/download.ts
1176
1177
  var download = async ({
@@ -1192,6 +1193,7 @@ var download = async ({
1192
1193
  abortSignal
1193
1194
  });
1194
1195
  if (!response.ok) {
1196
+ await cancelResponseBody(response);
1195
1197
  throw new DownloadError2({
1196
1198
  url: urlText,
1197
1199
  statusCode: response.status,
@@ -3261,6 +3263,10 @@ function fixJson(input) {
3261
3263
  const stack = ["ROOT"];
3262
3264
  let lastValidIndex = -1;
3263
3265
  let literalStart = null;
3266
+ let unicodeEscapeDigits = 0;
3267
+ function isHexDigit(char) {
3268
+ return char >= "0" && char <= "9" || char >= "A" && char <= "F" || char >= "a" && char <= "f";
3269
+ }
3264
3270
  function processValueStart(char, i, swapState) {
3265
3271
  {
3266
3272
  switch (char) {
@@ -3465,7 +3471,22 @@ function fixJson(input) {
3465
3471
  }
3466
3472
  case "INSIDE_STRING_ESCAPE": {
3467
3473
  stack.pop();
3468
- lastValidIndex = i;
3474
+ if (char === "u") {
3475
+ unicodeEscapeDigits = 0;
3476
+ stack.push("INSIDE_STRING_UNICODE_ESCAPE");
3477
+ } else {
3478
+ lastValidIndex = i;
3479
+ }
3480
+ break;
3481
+ }
3482
+ case "INSIDE_STRING_UNICODE_ESCAPE": {
3483
+ if (isHexDigit(char)) {
3484
+ unicodeEscapeDigits++;
3485
+ if (unicodeEscapeDigits === 4) {
3486
+ stack.pop();
3487
+ lastValidIndex = i;
3488
+ }
3489
+ }
3469
3490
  break;
3470
3491
  }
3471
3492
  case "INSIDE_NUMBER": {
@@ -8361,7 +8382,9 @@ var DefaultStreamTextResult = class {
8361
8382
  controller.enqueue({
8362
8383
  type: "tool-output-available",
8363
8384
  toolCallId: part.toolCallId,
8364
- output: part.output,
8385
+ // UI stream chunks are serialized as JSON, which drops undefined
8386
+ // properties. Use null so tool outputs always keep the output field.
8387
+ output: part.output === void 0 ? null : part.output,
8365
8388
  ...part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {},
8366
8389
  ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {},
8367
8390
  ...part.toolMetadata != null ? { toolMetadata: part.toolMetadata } : {},