@ykurilov/agent-chat-core 0.65.0 → 0.65.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @ykurilov/agent-chat-core
2
2
 
3
+ ## 0.65.1
4
+
5
+ ### Patch Changes
6
+
7
+ - ca56c29: Запись идущего ответа: «записать сейчас» (начатый вызов, итог инструмента) пишет только собранное к вызову; промежуточные результаты, пришедшие во время записи, идут окном 500 мс, а не второй записью следом.
8
+
3
9
  ## 0.65.0
4
10
 
5
11
  ### Minor Changes
@@ -5465,6 +5465,8 @@ function createAnswerSaver(storage, messageId, durations, usage, onTakenOver, ex
5465
5465
  let lastWriteAt = Date.now();
5466
5466
  let lastSignAt = lastWriteAt;
5467
5467
  let unsaved = false;
5468
+ let changes = 0;
5469
+ let savedChanges = 0;
5468
5470
  let closed = false;
5469
5471
  let writing = null;
5470
5472
  let lastFence = 0;
@@ -5484,6 +5486,7 @@ function createAnswerSaver(storage, messageId, durations, usage, onTakenOver, ex
5484
5486
  }
5485
5487
  async function write() {
5486
5488
  unsaved = false;
5489
+ const writtenChanges = changes;
5487
5490
  lastWriteAt = Date.now();
5488
5491
  lastSignAt = lastWriteAt;
5489
5492
  const parts = latest;
@@ -5497,6 +5500,7 @@ function createAnswerSaver(storage, messageId, durations, usage, onTakenOver, ex
5497
5500
  } catch (failure) {
5498
5501
  noteFailure(failure);
5499
5502
  }
5503
+ savedChanges = Math.max(savedChanges, writtenChanges);
5500
5504
  callsWritten(parts);
5501
5505
  }
5502
5506
  async function markAlive() {
@@ -5574,7 +5578,7 @@ function createAnswerSaver(storage, messageId, durations, usage, onTakenOver, ex
5574
5578
  reachedFence = fence;
5575
5579
  reachFence(fence);
5576
5580
  } else {
5577
- unsaved = true;
5581
+ noteChange();
5578
5582
  scheduleWrite();
5579
5583
  }
5580
5584
  }
@@ -5588,13 +5592,18 @@ function createAnswerSaver(storage, messageId, durations, usage, onTakenOver, ex
5588
5592
  if (waiting) waiting.push(chunk);
5589
5593
  else feed.enqueue(chunk);
5590
5594
  }
5595
+ function noteChange() {
5596
+ changes++;
5597
+ unsaved = true;
5598
+ }
5591
5599
  async function writeNow() {
5600
+ const target = changes;
5592
5601
  for (; ; ) {
5593
5602
  clearTimeout(timer);
5594
5603
  timer = void 0;
5595
5604
  if (writing) await writing;
5596
- else if (unsaved && !closed) startWrite();
5597
- else return;
5605
+ else if (savedChanges < target && !closed) startWrite();
5606
+ else return scheduleWrite();
5598
5607
  }
5599
5608
  }
5600
5609
  async function settleAssembly() {
@@ -5632,7 +5641,7 @@ function createAnswerSaver(storage, messageId, durations, usage, onTakenOver, ex
5632
5641
  const held = waiting;
5633
5642
  waiting = null;
5634
5643
  for (const chunk of held) feed.enqueue(chunk);
5635
- unsaved = true;
5644
+ noteChange();
5636
5645
  await writeNow();
5637
5646
  };
5638
5647
  const current = erase().finally(() => {
@@ -5651,7 +5660,7 @@ function createAnswerSaver(storage, messageId, durations, usage, onTakenOver, ex
5651
5660
  clearTimeout(aliveTimer);
5652
5661
  await rewinding?.catch(() => {
5653
5662
  });
5654
- unsaved = true;
5663
+ noteChange();
5655
5664
  await settleAssembly();
5656
5665
  await writeNow();
5657
5666
  },
@@ -14454,4 +14463,4 @@ export {
14454
14463
  InvalidWidgetAnswerError,
14455
14464
  createChatService
14456
14465
  };
14457
- //# sourceMappingURL=chunk-SA3DXJYB.js.map
14466
+ //# sourceMappingURL=chunk-4NQEQWGW.js.map