acp-kernel 0.0.81 → 0.0.82-pr.165.206

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.
@@ -1 +1 @@
1
- {"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkC,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAgBhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAcvD,OAAO,EAGL,KAAK,YAAY,EAGlB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAEhB,MAAM,EAEN,WAAW,EAGX,iBAAiB,EAEjB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,KAAK;IACpB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAAC;IACxD,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAAC;IACvE,YAAY,IAAI,YAAY,EAAE,CAAC;IAC/B,UAAU,CACR,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,GACtB,gBAAgB,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;IACnE,MAAM,CACJ,KAAK,EAAE,gBAAgB,EACvB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,YAAY,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,EAAE,CAAC;IACJ,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC;AA2GD,wBAAgB,UAAU,CAAC,KAAK,GAAE,KAAU,GAAG,eAAe,CAgV7D;AAwkCD,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkC,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAgBhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAcvD,OAAO,EAGL,KAAK,YAAY,EAGlB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAEhB,MAAM,EAEN,WAAW,EAGX,iBAAiB,EAEjB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,KAAK;IACpB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAAC;IACxD,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAAC;IACvE,YAAY,IAAI,YAAY,EAAE,CAAC;IAC/B,UAAU,CACR,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,GACtB,gBAAgB,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;IACnE,MAAM,CACJ,KAAK,EAAE,gBAAgB,EACvB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,YAAY,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,EAAE,CAAC;IACJ,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC;AA2GD,wBAAgB,UAAU,CAAC,KAAK,GAAE,KAAU,GAAG,eAAe,CAgV7D;AAmmCD,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -2938,10 +2938,29 @@ function applySingleRange(input) {
2938
2938
  messages: input.messages,
2939
2939
  state: input.state
2940
2940
  });
2941
- const rangeMessageIds = applyPairBoundaryAdjustments(
2942
- resolved,
2943
- input.messages
2944
- ).filter((id) => !isSummaryMessageId(id));
2941
+ const plainRange = resolved.boundaryKind !== "block";
2942
+ const liveCarrierIds = /* @__PURE__ */ new Set();
2943
+ if (plainRange) {
2944
+ for (const message of input.messages) {
2945
+ const carrierOf = message.summaryOfBlockId;
2946
+ if (carrierOf === void 0) continue;
2947
+ if (blockById(input.state, carrierOf)?.active) {
2948
+ liveCarrierIds.add(message.id);
2949
+ }
2950
+ }
2951
+ }
2952
+ const adjustedIds = applyPairBoundaryAdjustments(resolved, input.messages);
2953
+ const skippedCarriers = adjustedIds.filter((id) => liveCarrierIds.has(id));
2954
+ if (skippedCarriers.length > 0) {
2955
+ warnings.push(
2956
+ `Excluded ${skippedCarriers.length} checkpoint message(s) ${skippedCarriers.join(
2957
+ ", "
2958
+ )} from the compression range \u2014 they carry the visible summary of still-active block(s), which a plain message-ref range does not supersede. The checkpoints stay visible; to fold them, reference the block ids (bN..bM) instead.`
2959
+ );
2960
+ }
2961
+ const rangeMessageIds = adjustedIds.filter(
2962
+ (id) => !isSummaryMessageId(id) && !liveCarrierIds.has(id)
2963
+ );
2945
2964
  if (rangeMessageIds.length > resolved.messageIds.length) {
2946
2965
  const indexByMessageId = /* @__PURE__ */ new Map();
2947
2966
  input.messages.forEach((m, i) => indexByMessageId.set(m.id, i));
@@ -3885,7 +3904,7 @@ function collectVisible(messages, state, countTokens) {
3885
3904
  if (!ref) return;
3886
3905
  const tokens = countMessageTokens(message, countTokens);
3887
3906
  const tool = isToolMessage(message) ? message.toolName ?? (message.toolCallId ? toolCallNames.get(message.toolCallId) : void 0) ?? "tool" : "text";
3888
- if (tokens > 0) visible.push({ ref, tokens, tool, index });
3907
+ if (tokens > 0) visible.push({ ref, tokens, tool, index, isUser: message.role === "user" });
3889
3908
  });
3890
3909
  return { visible, summaryTokens };
3891
3910
  }
@@ -3904,7 +3923,7 @@ function buildStatusReport(state, messages, countTokens, options = {}) {
3904
3923
  if (view === "messages") {
3905
3924
  return renderMessageDrilldown(visible, toolFilter, sort, limit);
3906
3925
  }
3907
- return renderUncompressedRanges(visible);
3926
+ return renderUncompressedRanges(visible, sort, limit);
3908
3927
  }
3909
3928
  return renderOverview(visible, summaryTokens, activeBlocks2, state, countTokens, limit, options.meta);
3910
3929
  }
@@ -3972,7 +3991,7 @@ function renderOverview(visible, summaryTokens, blocks, state, countTokens, limi
3972
3991
  );
3973
3992
  return lines.join("\n");
3974
3993
  }
3975
- function renderUncompressedRanges(visible) {
3994
+ function renderUncompressedRanges(visible, sort, limit) {
3976
3995
  const lines = [];
3977
3996
  const totalTokens = visible.reduce((s, m) => s + m.tokens, 0);
3978
3997
  lines.push(`UNCOMPRESSED \u2014 ${formatTokens2(totalTokens)} | ${visible.length} visible messages`);
@@ -4000,7 +4019,9 @@ function renderUncompressedRanges(visible) {
4000
4019
  for (const m of visible) {
4001
4020
  const num = refNum2(m.ref);
4002
4021
  const last = merged[merged.length - 1];
4003
- if (last && num === last.startNum + last.count) {
4022
+ const contiguous = !!last && num === last.startNum + last.count;
4023
+ const turnBoundary = !!last && m.isUser && last.count >= 3;
4024
+ if (contiguous && !turnBoundary) {
4004
4025
  last.endRef = m.ref;
4005
4026
  last.count += 1;
4006
4027
  last.tokens += m.tokens;
@@ -4010,12 +4031,16 @@ function renderUncompressedRanges(visible) {
4010
4031
  merged.push({ startRef: m.ref, endRef: m.ref, startNum: num, count: 1, tokens: m.tokens, toolTokens });
4011
4032
  }
4012
4033
  }
4013
- for (const r of merged.slice(0, 30)) {
4034
+ if (sort !== "time") merged.sort((a, b) => b.tokens - a.tokens || a.startNum - b.startNum);
4035
+ lines.push(`Sorted by ${sort === "time" ? "time" : "size"}`);
4036
+ lines.push("");
4037
+ const shown = merged.slice(0, limit);
4038
+ for (const r of shown) {
4014
4039
  const range = r.count === 1 ? r.startRef : `${r.startRef}\u2013${r.endRef}`;
4015
4040
  lines.push(` ${range} (${r.count} msgs, ${formatTokens2(r.tokens)}${r.count > 1 ? ` (${Math.round(r.tokens / r.count)}/msg)` : ""}) ${dominantTool(r.toolTokens)}`);
4016
4041
  }
4017
- if (merged.length > 30) {
4018
- lines.push(` ... and ${merged.length - 30} more ranges`);
4042
+ if (merged.length > shown.length) {
4043
+ lines.push(` ... and ${merged.length - shown.length} more ranges`);
4019
4044
  }
4020
4045
  return lines.join("\n");
4021
4046
  }