@steipete/summarize 0.1.1 → 0.1.2

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
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to this project are documented here.
4
4
 
5
+ ## 0.1.2 - 2025-12-20
6
+
7
+ ### Fixes
8
+
9
+ - Avoid duplicate streamed output when providers emit cumulative chunks instead of deltas.
10
+
5
11
  ## 0.1.1 - 2025-12-19
6
12
 
7
13
  ### Fixes
package/dist/cli.cjs CHANGED
@@ -72528,7 +72528,7 @@ function startSpinner({
72528
72528
  var import_node_fs4 = __toESM(require("node:fs"), 1);
72529
72529
  var import_node_path5 = __toESM(require("node:path"), 1);
72530
72530
  var import_node_url = require("node:url");
72531
- var FALLBACK_VERSION = "0.1.1";
72531
+ var FALLBACK_VERSION = "0.1.2";
72532
72532
  function resolvePackageVersion(importMetaUrl) {
72533
72533
  const injected = typeof process !== "undefined" && typeof process.env.SUMMARIZE_VERSION === "string" ? process.env.SUMMARIZE_VERSION.trim() : "";
72534
72534
  if (injected.length > 0) return injected;
@@ -72885,6 +72885,13 @@ function formatUSD(value) {
72885
72885
  if (!Number.isFinite(value)) return "n/a";
72886
72886
  return `$${value.toFixed(4)}`;
72887
72887
  }
72888
+ function mergeStreamingChunk(previous3, chunk) {
72889
+ if (!chunk) return { next: previous3, appended: "" };
72890
+ if (chunk.startsWith(previous3)) {
72891
+ return { next: chunk, appended: chunk.slice(previous3.length) };
72892
+ }
72893
+ return { next: previous3 + chunk, appended: chunk };
72894
+ }
72888
72895
  function writeFinishLine({
72889
72896
  stderr,
72890
72897
  elapsedMs,
@@ -73246,9 +73253,10 @@ async function runCli(argv, { env: env3, fetch: fetch2, stdout, stderr }) {
73246
73253
  clearProgressForStdout();
73247
73254
  cleared = true;
73248
73255
  }
73249
- streamed += delta;
73256
+ const merged = mergeStreamingChunk(streamed, delta);
73257
+ streamed = merged.next;
73250
73258
  if (shouldStreamSummaryToStdout) {
73251
- stdout.write(delta);
73259
+ if (merged.appended) stdout.write(merged.appended);
73252
73260
  continue;
73253
73261
  }
73254
73262
  if (liveRenderer) {
@@ -73909,13 +73917,14 @@ async function runCli(argv, { env: env3, fetch: fetch2, stdout, stderr }) {
73909
73917
  try {
73910
73918
  let cleared = false;
73911
73919
  for await (const delta of streamResult.textStream) {
73912
- streamed += delta;
73920
+ const merged = mergeStreamingChunk(streamed, delta);
73921
+ streamed = merged.next;
73913
73922
  if (shouldStreamSummaryToStdout) {
73914
73923
  if (!cleared) {
73915
73924
  clearProgressForStdout();
73916
73925
  cleared = true;
73917
73926
  }
73918
- stdout.write(delta);
73927
+ if (merged.appended) stdout.write(merged.appended);
73919
73928
  continue;
73920
73929
  }
73921
73930
  if (liveRenderer) {
@@ -74100,9 +74109,10 @@ ${chunkNotes.filter((value) => value.length > 0).join("\n\n")}`;
74100
74109
  clearProgressForStdout();
74101
74110
  cleared = true;
74102
74111
  }
74103
- streamed += delta;
74112
+ const merged = mergeStreamingChunk(streamed, delta);
74113
+ streamed = merged.next;
74104
74114
  if (shouldStreamSummaryToStdout) {
74105
- stdout.write(delta);
74115
+ if (merged.appended) stdout.write(merged.appended);
74106
74116
  continue;
74107
74117
  }
74108
74118
  if (liveRenderer) {