ai 3.4.31 → 3.4.33

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
@@ -3333,7 +3333,7 @@ async function generateText({
3333
3333
  }),
3334
3334
  tracer,
3335
3335
  fn: async (span) => {
3336
- var _a11, _b, _c, _d, _e, _f, _g;
3336
+ var _a11, _b, _c, _d, _e, _f;
3337
3337
  const retry = retryWithExponentialBackoff({ maxRetries });
3338
3338
  const mode = {
3339
3339
  type: "regular",
@@ -3487,12 +3487,15 @@ async function generateText({
3487
3487
  nextStepType = "tool-result";
3488
3488
  }
3489
3489
  }
3490
- const stepText = nextStepType === "continue" ? removeTextAfterLastWhitespace((_b = currentModelResponse.text) != null ? _b : "") : (_c = currentModelResponse.text) != null ? _c : "";
3490
+ const originalText = (_b = currentModelResponse.text) != null ? _b : "";
3491
+ const stepTextLeadingWhitespaceTrimmed = stepType === "continue" && // only for continue steps
3492
+ text.trimEnd() !== text ? originalText.trimStart() : originalText;
3493
+ const stepText = nextStepType === "continue" ? removeTextAfterLastWhitespace(stepTextLeadingWhitespaceTrimmed) : stepTextLeadingWhitespaceTrimmed;
3491
3494
  text = nextStepType === "continue" || stepType === "continue" ? text + stepText : stepText;
3492
3495
  if (stepType === "continue") {
3493
3496
  const lastMessage = responseMessages[responseMessages.length - 1];
3494
3497
  if (typeof lastMessage.content === "string") {
3495
- lastMessage.content = text;
3498
+ lastMessage.content += stepText;
3496
3499
  } else {
3497
3500
  lastMessage.content.push({
3498
3501
  text: stepText,
@@ -3518,10 +3521,10 @@ async function generateText({
3518
3521
  usage: currentUsage,
3519
3522
  warnings: currentModelResponse.warnings,
3520
3523
  logprobs: currentModelResponse.logprobs,
3521
- request: (_d = currentModelResponse.request) != null ? _d : {},
3524
+ request: (_c = currentModelResponse.request) != null ? _c : {},
3522
3525
  response: {
3523
3526
  ...currentModelResponse.response,
3524
- headers: (_e = currentModelResponse.rawResponse) == null ? void 0 : _e.headers,
3527
+ headers: (_d = currentModelResponse.rawResponse) == null ? void 0 : _d.headers,
3525
3528
  // deep clone msgs to avoid mutating past messages in multi-step:
3526
3529
  messages: JSON.parse(JSON.stringify(responseMessages))
3527
3530
  },
@@ -3563,10 +3566,10 @@ async function generateText({
3563
3566
  finishReason: currentModelResponse.finishReason,
3564
3567
  usage,
3565
3568
  warnings: currentModelResponse.warnings,
3566
- request: (_f = currentModelResponse.request) != null ? _f : {},
3569
+ request: (_e = currentModelResponse.request) != null ? _e : {},
3567
3570
  response: {
3568
3571
  ...currentModelResponse.response,
3569
- headers: (_g = currentModelResponse.rawResponse) == null ? void 0 : _g.headers,
3572
+ headers: (_f = currentModelResponse.rawResponse) == null ? void 0 : _f.headers,
3570
3573
  messages: responseMessages
3571
3574
  },
3572
3575
  logprobs: currentModelResponse.logprobs,
@@ -4266,7 +4269,8 @@ var DefaultStreamTextResult = class {
4266
4269
  },
4267
4270
  stepType,
4268
4271
  previousStepText = "",
4269
- stepRequest
4272
+ stepRequest,
4273
+ hasLeadingWhitespace
4270
4274
  }) {
4271
4275
  const stepToolCalls = [];
4272
4276
  const stepToolResults = [];
@@ -4288,6 +4292,8 @@ var DefaultStreamTextResult = class {
4288
4292
  };
4289
4293
  let chunkBuffer = "";
4290
4294
  let chunkTextPublished = false;
4295
+ let inWhitespacePrefix = true;
4296
+ let hasWhitespaceSuffix = false;
4291
4297
  async function publishTextChunk({
4292
4298
  controller,
4293
4299
  chunk
@@ -4296,6 +4302,7 @@ var DefaultStreamTextResult = class {
4296
4302
  stepText += chunk.textDelta;
4297
4303
  fullStepText += chunk.textDelta;
4298
4304
  chunkTextPublished = true;
4305
+ hasWhitespaceSuffix = chunk.textDelta.trimEnd() !== chunk.textDelta;
4299
4306
  await (onChunk == null ? void 0 : onChunk({ chunk }));
4300
4307
  }
4301
4308
  addStream(
@@ -4324,7 +4331,12 @@ var DefaultStreamTextResult = class {
4324
4331
  switch (chunkType) {
4325
4332
  case "text-delta": {
4326
4333
  if (continueSteps) {
4327
- chunkBuffer += chunk.textDelta;
4334
+ const trimmedChunkText = inWhitespacePrefix && hasLeadingWhitespace ? chunk.textDelta.trimStart() : chunk.textDelta;
4335
+ if (trimmedChunkText.length === 0) {
4336
+ break;
4337
+ }
4338
+ inWhitespacePrefix = false;
4339
+ chunkBuffer += trimmedChunkText;
4328
4340
  const split = splitOnLastWhitespace(chunkBuffer);
4329
4341
  if (split != null) {
4330
4342
  chunkBuffer = split.suffix;
@@ -4467,7 +4479,7 @@ var DefaultStreamTextResult = class {
4467
4479
  if (stepType === "continue") {
4468
4480
  const lastMessage = responseMessages[responseMessages.length - 1];
4469
4481
  if (typeof lastMessage.content === "string") {
4470
- lastMessage.content = stepText;
4482
+ lastMessage.content += stepText;
4471
4483
  } else {
4472
4484
  lastMessage.content.push({
4473
4485
  text: stepText,
@@ -4528,7 +4540,8 @@ var DefaultStreamTextResult = class {
4528
4540
  usage: combinedUsage,
4529
4541
  stepType: nextStepType,
4530
4542
  previousStepText: fullStepText,
4531
- stepRequest: result.request
4543
+ stepRequest: result.request,
4544
+ hasLeadingWhitespace: hasWhitespaceSuffix
4532
4545
  });
4533
4546
  return;
4534
4547
  }
@@ -4573,7 +4586,8 @@ var DefaultStreamTextResult = class {
4573
4586
  resolveRequest(stepRequest);
4574
4587
  resolveResponse({
4575
4588
  ...stepResponse,
4576
- headers: rawResponse == null ? void 0 : rawResponse.headers
4589
+ headers: rawResponse == null ? void 0 : rawResponse.headers,
4590
+ messages: responseMessages
4577
4591
  });
4578
4592
  resolveSteps(stepResults);
4579
4593
  resolveResponseMessages(responseMessages);
@@ -4618,7 +4632,8 @@ var DefaultStreamTextResult = class {
4618
4632
  responseMessages: [],
4619
4633
  usage: void 0,
4620
4634
  stepType: "initial",
4621
- stepRequest: request
4635
+ stepRequest: request,
4636
+ hasLeadingWhitespace: false
4622
4637
  });
4623
4638
  }
4624
4639
  /**