acp-kernel 0.0.59 → 0.0.60-pr.236.83
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/hide-consumed.d.ts.map +1 -1
- package/dist/index.js +60 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hide-consumed.d.ts","sourceRoot":"","sources":["../src/hide-consumed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAYhE,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"hide-consumed.d.ts","sourceRoot":"","sources":["../src/hide-consumed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAYhE,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAClB;AA8FD,wBAAgB,yBAAyB,CACrC,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,WAAW,EAAE,GACxB,kBAAkB,CAwFpB"}
|
package/dist/index.js
CHANGED
|
@@ -666,25 +666,71 @@ var KEEP_LAST_ORPHANED = 2;
|
|
|
666
666
|
function rangeKey(startRef, endRef) {
|
|
667
667
|
return `${startRef}::${endRef}`;
|
|
668
668
|
}
|
|
669
|
-
function
|
|
669
|
+
function parseCallText(text) {
|
|
670
|
+
const raw = text ?? "";
|
|
671
|
+
const start = raw.indexOf("{");
|
|
672
|
+
if (start < 0) return null;
|
|
670
673
|
let parsed;
|
|
671
674
|
try {
|
|
672
|
-
parsed = JSON.parse(
|
|
675
|
+
parsed = JSON.parse(raw.slice(start));
|
|
673
676
|
} catch {
|
|
674
677
|
return null;
|
|
675
678
|
}
|
|
676
679
|
if (!parsed || typeof parsed !== "object") return null;
|
|
677
680
|
const obj = parsed;
|
|
678
|
-
|
|
679
|
-
|
|
681
|
+
let content = null;
|
|
682
|
+
let contentWasString = false;
|
|
683
|
+
if (Array.isArray(obj.content)) {
|
|
684
|
+
content = obj.content;
|
|
685
|
+
} else if (typeof obj.content === "string") {
|
|
686
|
+
contentWasString = true;
|
|
687
|
+
try {
|
|
688
|
+
const inner = JSON.parse(obj.content);
|
|
689
|
+
if (Array.isArray(inner)) content = inner;
|
|
690
|
+
} catch {
|
|
691
|
+
content = null;
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
if (!content || content.length === 0) return null;
|
|
695
|
+
return { prefix: raw.slice(0, start), obj, content, contentWasString };
|
|
696
|
+
}
|
|
697
|
+
function rewriteCompressText(text, liveKeys) {
|
|
698
|
+
const parsed = parseCallText(text);
|
|
699
|
+
if (!parsed) return null;
|
|
700
|
+
const { prefix, obj, content, contentWasString } = parsed;
|
|
680
701
|
const kept = content.filter((entry) => {
|
|
681
702
|
if (!entry || typeof entry !== "object") return false;
|
|
682
|
-
const
|
|
683
|
-
const
|
|
684
|
-
|
|
703
|
+
const e = entry;
|
|
704
|
+
const s = typeof e.startId === "string" ? e.startId : typeof e.messageId === "string" ? e.messageId : "";
|
|
705
|
+
const end = typeof e.endId === "string" ? e.endId : typeof e.messageId === "string" ? e.messageId : "";
|
|
706
|
+
return liveKeys.has(rangeKey(s, end));
|
|
685
707
|
});
|
|
686
|
-
if (kept.length ===
|
|
687
|
-
return
|
|
708
|
+
if (kept.length === 0) return null;
|
|
709
|
+
return prefix + serializeCompacted(obj, kept, contentWasString).text;
|
|
710
|
+
}
|
|
711
|
+
var SUMMARY_STUB_CHARS = 200;
|
|
712
|
+
function compactEntry(entry) {
|
|
713
|
+
if (!entry || typeof entry !== "object") return entry;
|
|
714
|
+
const e = entry;
|
|
715
|
+
if (typeof e.summary !== "string" || e.summary.length <= SUMMARY_STUB_CHARS) return entry;
|
|
716
|
+
return { ...e, summary: `${e.summary.slice(0, SUMMARY_STUB_CHARS - 1)}\u2026` };
|
|
717
|
+
}
|
|
718
|
+
function serializeCompacted(obj, content, contentWasString) {
|
|
719
|
+
let changed = false;
|
|
720
|
+
const compacted = content.map((entry) => {
|
|
721
|
+
const out = compactEntry(entry);
|
|
722
|
+
if (out !== entry) changed = true;
|
|
723
|
+
return out;
|
|
724
|
+
});
|
|
725
|
+
const outContent = contentWasString ? JSON.stringify(compacted) : compacted;
|
|
726
|
+
return { text: JSON.stringify({ ...obj, content: outContent }), changed };
|
|
727
|
+
}
|
|
728
|
+
function compactCompressText(text) {
|
|
729
|
+
const parsed = parseCallText(text);
|
|
730
|
+
if (!parsed) return null;
|
|
731
|
+
const { prefix, obj, content, contentWasString } = parsed;
|
|
732
|
+
const { text: out, changed } = serializeCompacted(obj, content, contentWasString);
|
|
733
|
+
return changed ? prefix + out : null;
|
|
688
734
|
}
|
|
689
735
|
function hideConsumedCompressCalls(state, messages) {
|
|
690
736
|
const allBlockCallIds = /* @__PURE__ */ new Set();
|
|
@@ -743,6 +789,11 @@ function hideConsumedCompressCalls(state, messages) {
|
|
|
743
789
|
continue;
|
|
744
790
|
}
|
|
745
791
|
}
|
|
792
|
+
const compacted = compactCompressText(message.text);
|
|
793
|
+
if (compacted !== null) {
|
|
794
|
+
result.push({ ...message, text: compacted });
|
|
795
|
+
continue;
|
|
796
|
+
}
|
|
746
797
|
}
|
|
747
798
|
result.push(message);
|
|
748
799
|
}
|