acp-kernel 0.0.73-pr.302.168 → 0.0.73-pr.305.170
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 +27 -7
- package/dist/index.js.map +1 -1
- package/dist/parse-compress-input.d.ts.map +1 -1
- package/dist/report.d.ts.map +1 -1
- package/dist/search/index.d.ts.map +1 -1
- package/dist/truncate.d.ts +5 -0
- package/dist/truncate.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hide-consumed.d.ts","sourceRoot":"","sources":["../src/hide-consumed.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hide-consumed.d.ts","sourceRoot":"","sources":["../src/hide-consumed.ts"],"names":[],"mappings":"AACA,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
|
@@ -723,6 +723,26 @@ ${suffix}`;
|
|
|
723
723
|
};
|
|
724
724
|
}
|
|
725
725
|
|
|
726
|
+
// src/truncate.ts
|
|
727
|
+
function isHighSurrogate(c) {
|
|
728
|
+
return c >= 55296 && c <= 56319;
|
|
729
|
+
}
|
|
730
|
+
function isLowSurrogate(c) {
|
|
731
|
+
return c >= 56320 && c <= 57343;
|
|
732
|
+
}
|
|
733
|
+
function clampPrefix(text, maxUnits) {
|
|
734
|
+
const cut = Math.min(maxUnits, text.length);
|
|
735
|
+
if (cut > 0 && isHighSurrogate(text.charCodeAt(cut - 1))) return text.slice(0, cut - 1);
|
|
736
|
+
return text.slice(0, cut);
|
|
737
|
+
}
|
|
738
|
+
function clampWindow(text, start, end) {
|
|
739
|
+
let s = Math.max(0, Math.min(start, text.length));
|
|
740
|
+
let e = Math.min(text.length, Math.max(s, end));
|
|
741
|
+
if (s > 0 && isLowSurrogate(text.charCodeAt(s))) s += 1;
|
|
742
|
+
if (e > s && isHighSurrogate(text.charCodeAt(e - 1))) e -= 1;
|
|
743
|
+
return text.slice(s, Math.max(s, e));
|
|
744
|
+
}
|
|
745
|
+
|
|
726
746
|
// src/hide-consumed.ts
|
|
727
747
|
var KEEP_LAST_ORPHANED = 2;
|
|
728
748
|
function rangeKey(startRef, endRef) {
|
|
@@ -775,7 +795,7 @@ function compactEntry(entry) {
|
|
|
775
795
|
if (!entry || typeof entry !== "object") return entry;
|
|
776
796
|
const e = entry;
|
|
777
797
|
if (typeof e.summary !== "string" || e.summary.length <= SUMMARY_STUB_CHARS) return entry;
|
|
778
|
-
return { ...e, summary: `${e.summary
|
|
798
|
+
return { ...e, summary: `${clampPrefix(e.summary, SUMMARY_STUB_CHARS - 1)}\u2026` };
|
|
779
799
|
}
|
|
780
800
|
function serializeCompacted(obj, content, contentWasString) {
|
|
781
801
|
let changed = false;
|
|
@@ -3825,7 +3845,7 @@ ${block.summary}
|
|
|
3825
3845
|
const lines = [`Active compression blocks (${activeBlocks2.length}):`];
|
|
3826
3846
|
for (const block of activeBlocks2) {
|
|
3827
3847
|
const range = `${block.effectiveMessageIds.length} messages`;
|
|
3828
|
-
const preview = block.summary
|
|
3848
|
+
const preview = clampPrefix(block.summary, 200);
|
|
3829
3849
|
lines.push(`
|
|
3830
3850
|
${block.blockId} | ${range} | "${block.topic ?? "(none)"}"`);
|
|
3831
3851
|
lines.push(` ${preview}${block.summary.length > 200 ? "..." : ""}`);
|
|
@@ -4107,7 +4127,7 @@ function deriveTopicFromSummary(summary) {
|
|
|
4107
4127
|
const source = heading !== null ? heading[1] : summary.split("\n").find((l) => l.trim().length > 0) ?? "";
|
|
4108
4128
|
const text = source.trim().replace(/^[\u2022\-*]\s+/, "");
|
|
4109
4129
|
if (text.length === 0) return void 0;
|
|
4110
|
-
return text.length > 60 ? text
|
|
4130
|
+
return text.length > 60 ? clampPrefix(text, 60).trimEnd() : text;
|
|
4111
4131
|
}
|
|
4112
4132
|
function splitLineEntries(content) {
|
|
4113
4133
|
const parts = content.split(/\n(?=\s*(?:["']\s*,\s*)?["']?\s*[mb]\d{1,7}\s*(?:[-\u2013\u2014\u2026~]|\.\.\.|to)\s*[mb]\d{1,7}\b)/i).map((p) => p.trim().replace(/^(?:["']\s*,?\s*)+/, "").replace(/["']\s*$/, "")).filter((p) => p.length > 0);
|
|
@@ -4691,7 +4711,7 @@ function messageDocs(msgs) {
|
|
|
4691
4711
|
kind: "message",
|
|
4692
4712
|
ref: m.ref,
|
|
4693
4713
|
text: m.text,
|
|
4694
|
-
title: `${m.role}: ${m.text
|
|
4714
|
+
title: `${m.role}: ${clampPrefix(m.text, 60)}`,
|
|
4695
4715
|
role: m.role,
|
|
4696
4716
|
blockId: m.blockId,
|
|
4697
4717
|
tier: m.tier,
|
|
@@ -4756,7 +4776,7 @@ async function searchBlocksAsync(docs, query, options = {}) {
|
|
|
4756
4776
|
function makePreview(text, query, len) {
|
|
4757
4777
|
if (!text) return "";
|
|
4758
4778
|
const terms = query.toLowerCase().trim().split(/\s+/).filter((t) => t.length > 1);
|
|
4759
|
-
if (terms.length === 0) return text
|
|
4779
|
+
if (terms.length === 0) return clampPrefix(text, len);
|
|
4760
4780
|
const lower = text.toLowerCase();
|
|
4761
4781
|
let hitIdx = -1;
|
|
4762
4782
|
for (const term of terms) {
|
|
@@ -4766,13 +4786,13 @@ function makePreview(text, query, len) {
|
|
|
4766
4786
|
break;
|
|
4767
4787
|
}
|
|
4768
4788
|
}
|
|
4769
|
-
if (hitIdx < 0) return text
|
|
4789
|
+
if (hitIdx < 0) return clampPrefix(text, len);
|
|
4770
4790
|
const half = Math.max(0, Math.floor(len / 2) - 10);
|
|
4771
4791
|
const start = Math.max(0, hitIdx - half);
|
|
4772
4792
|
const end = Math.min(text.length, start + len);
|
|
4773
4793
|
const prefix = start > 0 ? "\u2026" : "";
|
|
4774
4794
|
const suffix = end < text.length ? "\u2026" : "";
|
|
4775
|
-
return prefix + text
|
|
4795
|
+
return prefix + clampWindow(text, start, end).trim() + suffix;
|
|
4776
4796
|
}
|
|
4777
4797
|
export {
|
|
4778
4798
|
ABSORB_PROMPT_MARKER,
|