acp-kernel 0.0.77-pr.327.192 → 0.0.77-pr.328.193

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.
@@ -188,7 +188,15 @@ export interface FoldEconomicsInput {
188
188
  export declare function computeFoldEconomics(f: FoldEconomicsInput, price?: PriceProfile): FoldEconomics;
189
189
  export declare function summarizeFoldEconomics(foldEcon: readonly FoldEconomics[]): EconomicsSummary;
190
190
  export declare function buildCacheReport(samplesIn: readonly CacheSample[], foldsIn: readonly FoldEvent[], opts?: CacheReportOptions): CacheReport;
191
+ /** Render options: "summary" (default) distills to totals + verdicts +
192
+ * notable folds + anomalous lines; "full" keeps the legacy every-fold,
193
+ * every-line listing. */
194
+ export interface FormatCacheReportOptions {
195
+ detail?: "summary" | "full";
196
+ }
191
197
  /** Render the report as compact, model- and human-readable text.
192
- * The identity line is always printed so a broken implementation cannot hide. */
193
- export declare function formatCacheReport(report: CacheReport, sessionLabel?: string): string;
198
+ * The identity line is always printed so a broken implementation cannot hide.
199
+ * Default detail is "summary"; pass { detail: "full" } for the legacy
200
+ * every-fold, every-line listing. */
201
+ export declare function formatCacheReport(report: CacheReport, sessionLabel?: string, opts?: FormatCacheReportOptions): string;
194
202
  //# sourceMappingURL=cache-report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache-report.d.ts","sourceRoot":"","sources":["../src/cache-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache-report.d.ts","sourceRoot":"","sources":["../src/cache-report.ts"],"names":[],"mappings":"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"}
@@ -199,7 +199,7 @@ export declare const ACP_STATUS_TOOL_OPENAI: {
199
199
  };
200
200
  };
201
201
  };
202
- export declare const ACP_CACHE_TOOL_DESCRIPTION = "Prompt-cache reconciliation: grand ledger (total input/cached/output, overall hit rate) with every request's miss split into new content / compression re-pay / TTL expiry, plus per-fold economics (breakeven turns vs measured cadence). Read-only. Call when asked about cache hits, cache invalidation, or what compression costs.";
202
+ export declare const ACP_CACHE_TOOL_DESCRIPTION = "Prompt-cache reconciliation: grand ledger (total input/cached/output, overall hit rate) with every request's miss split into new content / compression re-pay / TTL expiry, plus per-fold economics (breakeven turns vs measured cadence). Defaults to a compact summary (totals + verdicts + anomalies only); pass detail=\"full\" for every fold and line item. Read-only. Call when asked about cache hits, cache invalidation, or what compression costs.";
203
203
  export declare const ACP_CACHE_TOOL_OPENAI: {
204
204
  type: "function";
205
205
  function: {
@@ -207,7 +207,13 @@ export declare const ACP_CACHE_TOOL_OPENAI: {
207
207
  description: string;
208
208
  parameters: {
209
209
  type: string;
210
- properties: {};
210
+ properties: {
211
+ detail: {
212
+ type: string;
213
+ enum: string[];
214
+ description: string;
215
+ };
216
+ };
211
217
  };
212
218
  };
213
219
  };
@@ -321,7 +327,13 @@ export declare const ACP_TOOLS_OPENAI: readonly [{
321
327
  description: string;
322
328
  parameters: {
323
329
  type: string;
324
- properties: {};
330
+ properties: {
331
+ detail: {
332
+ type: string;
333
+ enum: string[];
334
+ description: string;
335
+ };
336
+ };
325
337
  };
326
338
  };
327
339
  }];
@@ -383,7 +395,13 @@ export declare const ACP_CACHE_TOOL: {
383
395
  description: string;
384
396
  input_schema: {
385
397
  type: string;
386
- properties: {};
398
+ properties: {
399
+ detail: {
400
+ type: string;
401
+ enum: string[];
402
+ description: string;
403
+ };
404
+ };
387
405
  };
388
406
  };
389
407
  export declare const ACP_TOOLS_ANTHROPIC: readonly [{
@@ -482,7 +500,13 @@ export declare const ACP_TOOLS_ANTHROPIC: readonly [{
482
500
  description: string;
483
501
  input_schema: {
484
502
  type: string;
485
- properties: {};
503
+ properties: {
504
+ detail: {
505
+ type: string;
506
+ enum: string[];
507
+ description: string;
508
+ };
509
+ };
486
510
  };
487
511
  }];
488
512
  export declare const COMPRESS_TOOL_RESPONSES: {
@@ -590,7 +614,13 @@ export declare const ACP_CACHE_TOOL_RESPONSES: {
590
614
  description: string;
591
615
  parameters: {
592
616
  type: string;
593
- properties: {};
617
+ properties: {
618
+ detail: {
619
+ type: string;
620
+ enum: string[];
621
+ description: string;
622
+ };
623
+ };
594
624
  };
595
625
  };
596
626
  /** All ACP tools in Responses API flat format, matching ACP_TOOL_NAMES. */
@@ -695,7 +725,13 @@ export declare const ACP_TOOLS_RESPONSES: readonly [{
695
725
  description: string;
696
726
  parameters: {
697
727
  type: string;
698
- properties: {};
728
+ properties: {
729
+ detail: {
730
+ type: string;
731
+ enum: string[];
732
+ description: string;
733
+ };
734
+ };
699
735
  };
700
736
  }];
701
737
  /** Read-only ACP tools (no compress) in Responses flat format. Used for the
@@ -758,7 +794,13 @@ export declare const ACP_READONLY_TOOLS_RESPONSES: readonly [{
758
794
  description: string;
759
795
  parameters: {
760
796
  type: string;
761
- properties: {};
797
+ properties: {
798
+ detail: {
799
+ type: string;
800
+ enum: string[];
801
+ description: string;
802
+ };
803
+ };
762
804
  };
763
805
  }];
764
806
  /** All ACP tool names (dynamic membership — Set, not a static record). Does
@@ -1 +1 @@
1
- {"version":3,"file":"compress-tools.d.ts","sourceRoot":"","sources":["../src/compress-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAC7C,eAAO,MAAM,oBAAoB,eAAe,CAAC;AACjD,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AACzD,eAAO,MAAM,oBAAoB,eAAe,CAAC;AACjD,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC;;;6DAG6D;AAC7D,eAAO,MAAM,aAAa,mBAAmB,CAAC;AAC9C,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAChD,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAC9C,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAChD,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAC9C,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAChD,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AACtD,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAExD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CzB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;qDAKqD;AACrD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACjC,WAAW,EAAE,CAgCf;AAwBD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDhC,CAAC;AAkCF,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,OAAwB,EACjC,QAAQ,CAAC,EAAE,sBAAsB,GAChC,MAAM,CAMR;AAyDD,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,OAAwB,EACjC,QAAQ,CAAC,EAAE,sBAAsB,GAChC,MAAM,CAMR;AA6CD,wBAAgB,+BAA+B,CAC7C,OAAO,GAAE,OAAwB,EACjC,QAAQ,CAAC,EAAE,sBAAsB,GAChC,MAAM,CAMR;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;CAyBlC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;CAetC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;CAWlC,CAAC;AAEF,eAAO,MAAM,0BAA0B,2UACmS,CAAC;AAE3U,eAAO,MAAM,qBAAqB;;;;;;;;;;CAUjC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMnB,CAAC;AAEX;;;;wDAIwD;AACxD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;CAI3B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;CAI/B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;CAI3B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;CAI1B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMtB,CAAC;AAGX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKnC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;CAKzC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;CAKrC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;CAKpC,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMtB,CAAC;AAEX;;;;;gFAKgF;AAChF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK/B,CAAC;AAEX;;iDAEiD;AACjD,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAM7C,CAAC;AAEH;qEACqE;AACrE,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAGjD,CAAC;AAEH;8EAC8E;AAC9E,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAIjD,CAAC;AAEH;mEACmE;AACnE,eAAO,MAAM,uBAAuB,mUAC8R,CAAC;AAmBnU,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;CAIvB,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;CAO9B,CAAC;AAKF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyChC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;CAIlC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;CAItC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;CAIlC,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKnB,CAAC;AAEX,wEAAwE;AACxE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;CAI9B,CAAC"}
1
+ {"version":3,"file":"compress-tools.d.ts","sourceRoot":"","sources":["../src/compress-tools.ts"],"names":[],"mappings":"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"}
@@ -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;AAUvD,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;AA0jCD,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;AAUvD,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;AA2DD,wBAAgB,UAAU,CAAC,KAAK,GAAE,KAAU,GAAG,eAAe,CA+U7D;AA0jCD,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -27,7 +27,7 @@ export type { DeactivateOptions, CollectedContentResult, CollectContentOptions,
27
27
  export { buildStatusReport, buildRecap } from "./report.js";
28
28
  export type { StatusReportOptions, StatusReportMeta } from "./report.js";
29
29
  export { buildCacheReport, computeFoldEconomics, decomposeSample, formatCacheReport, summarizeFoldEconomics, } from "./cache-report.js";
30
- export type { CacheSample, FoldEvent, FoldEconomicsInput, PriceProfile, SampleDecomposition, CacheTotals, FoldEconomics, EconomicsSummary, CacheReportLine, CacheReportOptions, CacheReport, } from "./cache-report.js";
30
+ export type { CacheSample, FoldEvent, FoldEconomicsInput, PriceProfile, SampleDecomposition, CacheTotals, FoldEconomics, EconomicsSummary, CacheReportLine, CacheReportOptions, CacheReport, FormatCacheReportOptions, } from "./cache-report.js";
31
31
  export { renderHandoff, renderMessage, matchSession } from "./handoff.js";
32
32
  export type { HandoffInput, HandoffMeta, HandoffBlockFull } from "./handoff.js";
33
33
  export { hideConsumedCompressCalls } from "./hide-consumed.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1258,7 +1258,7 @@ var ACP_STATUS_TOOL_OPENAI = {
1258
1258
  }
1259
1259
  }
1260
1260
  };
1261
- var ACP_CACHE_TOOL_DESCRIPTION = "Prompt-cache reconciliation: grand ledger (total input/cached/output, overall hit rate) with every request's miss split into new content / compression re-pay / TTL expiry, plus per-fold economics (breakeven turns vs measured cadence). Read-only. Call when asked about cache hits, cache invalidation, or what compression costs.";
1261
+ var ACP_CACHE_TOOL_DESCRIPTION = `Prompt-cache reconciliation: grand ledger (total input/cached/output, overall hit rate) with every request's miss split into new content / compression re-pay / TTL expiry, plus per-fold economics (breakeven turns vs measured cadence). Defaults to a compact summary (totals + verdicts + anomalies only); pass detail="full" for every fold and line item. Read-only. Call when asked about cache hits, cache invalidation, or what compression costs.`;
1262
1262
  var ACP_CACHE_TOOL_OPENAI = {
1263
1263
  type: "function",
1264
1264
  function: {
@@ -1266,7 +1266,13 @@ var ACP_CACHE_TOOL_OPENAI = {
1266
1266
  description: ACP_CACHE_TOOL_DESCRIPTION,
1267
1267
  parameters: {
1268
1268
  type: "object",
1269
- properties: {}
1269
+ properties: {
1270
+ detail: {
1271
+ type: "string",
1272
+ enum: ["summary", "full"],
1273
+ description: '"summary" (default): totals, verdicts, notable folds, anomalous requests only. "full": every retained fold and line item.'
1274
+ }
1275
+ }
1270
1276
  }
1271
1277
  }
1272
1278
  };
@@ -2411,39 +2417,6 @@ function danglingMessageRefs(state, messages, spec) {
2411
2417
  }
2412
2418
  return dangling;
2413
2419
  }
2414
- function coveringBlockIds(state, spec) {
2415
- const found = /* @__PURE__ */ new Set();
2416
- for (const ref of [spec.startRef, spec.endRef]) {
2417
- const parsed = parseBoundary(ref);
2418
- if (!parsed) continue;
2419
- let rawIds = [];
2420
- if (parsed.kind === "message") {
2421
- const rawId = state.messageRefs.byRef[parsed.raw] ?? state.messageRefs.byRef[indexToRef(parsed.numericId)];
2422
- if (rawId) rawIds = [rawId];
2423
- } else {
2424
- rawIds = blockById(state, `b${parsed.numericId}`)?.effectiveMessageIds ?? [];
2425
- }
2426
- if (rawIds.length === 0) continue;
2427
- for (const candidate of activeBlocks(state)) {
2428
- if (rawIds.some((id) => candidate.effectiveMessageIds.includes(id))) {
2429
- found.add(candidate.blockId);
2430
- }
2431
- }
2432
- }
2433
- return [...found].sort((x, y) => numericBlockId(x) - numericBlockId(y));
2434
- }
2435
- function tierActionHint(config, state) {
2436
- if (!config.tiers.enabled) return "";
2437
- const t2 = activeBlocks(state).filter((b) => b.tier === 2);
2438
- if (t2.length >= config.tiers.tier3Trigger) {
2439
- return ` Tier condensation is actionable now: compress({ content: [{ startId: "${t2[0].blockId}", endId: "${t2[t2.length - 1].blockId}", summary: "...", topic: "..." }] }) merges those tier-2 blocks into one tier-3 block.`;
2440
- }
2441
- const t1 = activeBlocks(state).filter((b) => b.tier === 1);
2442
- if (t1.length >= config.tiers.tier2Trigger) {
2443
- return ` Tier distillation is actionable now: compress({ content: [{ startId: "${t1[0].blockId}", endId: "${t1[t1.length - 1].blockId}", summary: "...", topic: "..." }] }) merges those tier-1 blocks into one tier-2 block.`;
2444
- }
2445
- return "";
2446
- }
2447
2420
  function createCore(ports = {}) {
2448
2421
  const countTokens = ports.countTokens ?? defaultCountTokens;
2449
2422
  function applyCompression(input) {
@@ -2542,18 +2515,17 @@ function createCore(ports = {}) {
2542
2515
  }
2543
2516
  }
2544
2517
  if (!hasBlockBoundaryRange && totalRangeChars < input.config.compress.minCompressRange) {
2518
+ const live = activeBlocks(state).map((b) => b.blockId).sort((x, y) => numericBlockId(x) - numericBlockId(y));
2519
+ const liveHint = live.length > 0 ? ` Current active blocks span ${live[0]}..${live[live.length - 1]} \u2014 retry with startId/endId set to active block IDs in that span.` : "";
2545
2520
  const diagnostics = refGateDiagnostics(
2546
2521
  state,
2547
2522
  input.ranges.length,
2548
2523
  unknownCount
2549
2524
  );
2550
- const firstConsumed = consumedRanges[0];
2551
- const covering = firstConsumed ? coveringBlockIds(state, firstConsumed) : [];
2552
- const coverDetail = covering.length > 0 ? `its content is already summarized in active block(s) ${covering.join(", ")}${covering.length === 1 ? ` \u2014 use search_context or decompress ${covering[0]} if you need details from it` : ""}` : `its refs no longer point to directly compressible content (stale block ref(s) distilled or consumed by higher-tier blocks)`;
2553
2525
  const danglingRefs = consumedRanges.flatMap(
2554
2526
  (spec) => danglingMessageRefs(state, input.messages, spec)
2555
2527
  );
2556
- const gateMessage = resolvableCount === 0 && consumedRanges.length === 0 && unknownCount > 0 ? `None of the ${input.ranges.length} requested range(s) resolved \u2014 every ref is unknown to this session. Refs are per-session snapshots, assigned once when a message is first rendered; no compress reassigns them, so unknown refs cannot come from an earlier compress in this session. They come from a different generation: a previous session instance (switching model or upstream mid-conversation starts a fresh session whose refs restart at m00001), the generation before a native-compaction rebase (which also resets refs to m00001), or a typo. ${diagnostics} Run acp_status, then call the compress tool again using only the refs it reports.` : consumedRanges.length > 0 ? danglingRefs.length > 0 ? `Requested range(s) cannot be anchored (e.g. ${firstConsumed.startRef}..${firstConsumed.endRef}) \u2014 the refs exist in this session's ref map, but the messages they point to are no longer in the visible context and no active block covers them: the message content changed (or the message was filtered out of the view) and now carries a new ref, leaving your old refs dangling. ${diagnostics} Run acp_status, then call the compress tool again using only the refs it reports.` : `Requested range(s) already compressed (e.g. ${firstConsumed.startRef}..${firstConsumed.endRef}) \u2014 ${coverDetail}. Nothing new to compress in that window. ${diagnostics} Continue the task, or run acp_status and target one of the CURRENT compressible ranges it reports.${tierActionHint(input.config, state)}` : `Total compressible content too small (${totalRangeChars} chars across ${countedRanges} range(s), min ${input.config.compress.minCompressRange}). Combine more messages into your range(s) to meet the threshold.`;
2528
+ const gateMessage = resolvableCount === 0 && consumedRanges.length === 0 && unknownCount > 0 ? `None of the ${input.ranges.length} requested range(s) resolved \u2014 every ref is unknown to this session. Refs are per-session snapshots, assigned once when a message is first rendered; no compress reassigns them, so unknown refs cannot come from an earlier compress in this session. They come from a different generation: a previous session instance (switching model or upstream mid-conversation starts a fresh session whose refs restart at m00001), the generation before a native-compaction rebase (which also resets refs to m00001), or a typo. ${diagnostics} Run acp_status, then call the compress tool again using only the refs it reports.` : consumedRanges.length > 0 ? danglingRefs.length > 0 ? `Requested range(s) cannot be anchored (e.g. ${consumedRanges[0].startRef}..${consumedRanges[0].endRef}) \u2014 the refs exist in this session's ref map, but the messages they point to are no longer in the visible context and no active block covers them: the message content changed (or the message was filtered out of the view) and now carries a new ref, leaving your old refs dangling. ${diagnostics} Run acp_status, then call the compress tool again using only the refs it reports.` : `Requested range(s) already compressed (e.g. ${consumedRanges[0].startRef}..${consumedRanges[0].endRef}) \u2014 those refs no longer point to directly compressible content: the range is covered by active block(s) or the block ref(s) are stale (distilled or consumed). ${diagnostics} Run acp_status, then call the compress tool again using only the CURRENT compressible ranges it reports.${liveHint}` : `Total compressible content too small (${totalRangeChars} chars across ${countedRanges} range(s), min ${input.config.compress.minCompressRange}). Combine more messages into your range(s) to meet the threshold.`;
2557
2529
  return {
2558
2530
  state: input.state,
2559
2531
  result: {
@@ -2960,7 +2932,7 @@ function applySingleRange(input) {
2960
2932
  warnings.push(
2961
2933
  `Excluded ${hitProtectedRaw.length} protected message(s) ${hitRefs.join(
2962
2934
  ", "
2963
- )} from compression range (recent/last-user zone) \u2014 they stay visible outside the new block; do not target them in another compress call.`
2935
+ )} from compression range (recent/last-user zone).`
2964
2936
  );
2965
2937
  }
2966
2938
  {
@@ -4262,13 +4234,35 @@ function fmtTime(at) {
4262
4234
  const p = (x) => String(x).padStart(2, "0");
4263
4235
  return `${p(d.getHours())}:${p(d.getMinutes())}:${p(d.getSeconds())}`;
4264
4236
  }
4265
- function formatCacheReport(report, sessionLabel) {
4237
+ var HIT_HEALTHY_PCT = 90;
4238
+ var HIT_WATCH_PCT = 70;
4239
+ var ANOMALY_HIT_PCT = 85;
4240
+ var ANOMALY_MISS_TOK = 5e3;
4241
+ var TTL_SPIKE_TOK = 1e4;
4242
+ var SUMMARY_FOLD_TOPS = 3;
4243
+ var SUMMARY_ANOMALY_CAP = 20;
4244
+ function hitVerdict(pct2) {
4245
+ if (pct2 >= HIT_HEALTHY_PCT) return "HEALTHY";
4246
+ if (pct2 >= HIT_WATCH_PCT) return "WATCH";
4247
+ return "INVESTIGATE";
4248
+ }
4249
+ function medianHitPct(lines) {
4250
+ if (lines.length === 0) return null;
4251
+ const xs = lines.map((l) => l.hitPct).sort((a, b) => a - b);
4252
+ return xs[Math.floor(xs.length / 2)] ?? null;
4253
+ }
4254
+ function fmtIdleGap(ms) {
4255
+ if (ms < 9e4) return `${Math.max(1, Math.round(ms / 1e3))}s`;
4256
+ if (ms < 90 * 6e4) return `${Math.round(ms / 6e4)}m`;
4257
+ if (ms < 36 * 36e5) return `${(ms / 36e5).toFixed(1)}h`;
4258
+ return `${(ms / 864e5).toFixed(1)}d`;
4259
+ }
4260
+ function foldVerdict(f) {
4261
+ return f.paidBack === null ? "?" : f.paidBack ? "PAID BACK" : "NOT PAID BACK";
4262
+ }
4263
+ function formatCacheReportFull(report) {
4266
4264
  const t = report.totals;
4267
4265
  const out = [];
4268
- out.push(
4269
- `ACP CACHE REPORT${sessionLabel ? ` (${sessionLabel})` : ""} \u2014 ${t.requests} requests`
4270
- );
4271
- out.push("");
4272
4266
  out.push("GRAND LEDGER");
4273
4267
  out.push(` total input ${fmtTok(t.input)} tok`);
4274
4268
  out.push(
@@ -4328,6 +4322,145 @@ function formatCacheReport(report, sessionLabel) {
4328
4322
  }
4329
4323
  return out.join("\n");
4330
4324
  }
4325
+ function formatCacheReportSummary(report) {
4326
+ const t = report.totals;
4327
+ const out = [];
4328
+ out.push("GRAND LEDGER");
4329
+ out.push(` total input ${fmtTok(t.input)} tok`);
4330
+ out.push(
4331
+ ` total cached ${fmtTok(t.cached)} tok (hit ${t.hitPct.toFixed(1)}% \u2192 ${hitVerdict(t.hitPct)})`
4332
+ );
4333
+ out.push(` total output ${fmtTok(t.output)} tok`);
4334
+ out.push(
4335
+ ` miss breakdown (input \u2212 cached = ${fmtTok(Math.max(0, t.input - t.cached))} tok):`
4336
+ );
4337
+ const avgNew = t.requests > 0 ? t.newContent / t.requests : 0;
4338
+ out.push(
4339
+ ` new content ${fmtTok(t.newContent)} tok (~${fmtTok(avgNew)}/req fresh append \u2014 not an invalidation)`
4340
+ );
4341
+ out.push(
4342
+ ` compress re-pay ${fmtTok(t.compRepay)} tok (${report.economics.folds} folds \u2014 re-billed prefix)`
4343
+ );
4344
+ const spikeIdx = [];
4345
+ report.lines.forEach((l, i) => {
4346
+ if (l.ttlRepay >= TTL_SPIKE_TOK) spikeIdx.push(i);
4347
+ });
4348
+ const spikes = [...spikeIdx].sort(
4349
+ (a, b) => (report.lines[b]?.ttlRepay ?? 0) - (report.lines[a]?.ttlRepay ?? 0)
4350
+ ).slice(0, SUMMARY_FOLD_TOPS).sort((a, b) => a - b);
4351
+ const spikeText = spikes.map((i) => {
4352
+ const l = report.lines[i];
4353
+ if (!l) return "";
4354
+ let idle = "";
4355
+ const prev = report.lines[i - 1];
4356
+ if (prev && l.at > prev.at) idle = `, idle ${fmtIdleGap(l.at - prev.at)}`;
4357
+ return `#${l.seq} ${fmtTok(l.ttlRepay)}${idle}`;
4358
+ }).join(" \xB7 ");
4359
+ out.push(
4360
+ ` ttl/other ${fmtTok(t.ttlRepay)} tok (stable-prefix misses: TTL expiry / eviction${spikeText ? `; top spikes: ${spikeText}` : ""})`
4361
+ );
4362
+ out.push(
4363
+ ` identity check ${t.balanced ? "OK" : "BROKEN"} \u2014 ${fmtTok(t.input)} = ${fmtTok(t.cached)} + ${fmtTok(t.newContent)} + ${fmtTok(t.compRepay)} + ${fmtTok(t.ttlRepay)} (residual ${t.residual})`
4364
+ );
4365
+ const e = report.economics;
4366
+ if (e.folds > 0) {
4367
+ const p = report.profile;
4368
+ out.push("");
4369
+ out.push(`FOLD ECONOMICS (${e.folds} folds @ w=${p.w} r=${p.r} q=${p.q})`);
4370
+ out.push(
4371
+ ` gross saved ${fmtTok(e.grossSaved)} tok \xB7 repay cost ${fmtTok(e.repayCost)} tok \xB7 summary cost ${fmtTok(e.summaryCost)} tok \u2192 net ${e.netTokens >= 0 ? "+" : ""}${fmtTok(e.netTokens)} tok`
4372
+ );
4373
+ out.push(
4374
+ ` verdict: ${e.paidBackCount} PAID BACK / ${e.notPaidBackCount} NOT PAID BACK / ${e.unobservedCount} unobserved`
4375
+ );
4376
+ if (e.notPaidBackCount > 0)
4377
+ out.push(
4378
+ ` NOT PAID BACK = measured post-fold cadence never reached n* (end-of-session / back-to-back folds \u2014 one-time cost, not data loss)`
4379
+ );
4380
+ if (report.folds.length <= SUMMARY_FOLD_TOPS * 2) {
4381
+ for (const f of report.folds) {
4382
+ const nstar = f.breakevenTurns === null ? "n/a" : f.breakevenTurns.toFixed(1);
4383
+ const k = f.turnsToNextFold === null ? "\u2014" : String(f.turnsToNextFold);
4384
+ const h = f.hPct === null ? "n/a" : `${f.hPct.toFixed(1)}%`;
4385
+ out.push(
4386
+ ` #${f.seq} ${fmtTime(f.at)} S=${fmtTok(f.S)} \u03C3=${fmtTok(f.sigma)} h=${h} T=${fmtTok(f.T)} \u0394C\u2081=${fmtTok(f.oneTimeCostUnits)} \u0394s=${fmtTok(f.perTurnSavingUnits)}/turn n*=${nstar} k=${k} \u2192 ${foldVerdict(f)}`
4387
+ );
4388
+ }
4389
+ } else {
4390
+ const largest = [...report.folds].sort((a, b) => b.S - a.S).slice(0, SUMMARY_FOLD_TOPS);
4391
+ const worst = [...report.folds].sort((a, b) => b.oneTimeCostUnits - a.oneTimeCostUnits).slice(0, SUMMARY_FOLD_TOPS);
4392
+ out.push(
4393
+ ` largest folds: ${largest.map((f) => `#${f.seq} S=${fmtTok(f.S)} ${foldVerdict(f)}`).join(" \xB7 ")}`
4394
+ );
4395
+ out.push(
4396
+ ` worst one-time: ${worst.map((f) => `#${f.seq} \u0394C\u2081=${fmtTok(f.oneTimeCostUnits)} (${foldVerdict(f)}${f.turnsToNextFold !== null ? `, k=${f.turnsToNextFold}` : ""})`).join(" \xB7 ")}`
4397
+ );
4398
+ const shown = /* @__PURE__ */ new Set([...largest, ...worst]);
4399
+ if (report.folds.length > shown.size)
4400
+ out.push(
4401
+ ` \u2192 ${report.folds.length - shown.size} more folds omitted (detail:"full" lists every fold)`
4402
+ );
4403
+ }
4404
+ }
4405
+ if (report.lines.length > 0) {
4406
+ out.push("");
4407
+ const shownIdx = [];
4408
+ report.lines.forEach((l, i) => {
4409
+ if (l.hitPct < ANOMALY_HIT_PCT || l.missed >= ANOMALY_MISS_TOK)
4410
+ shownIdx.push(i);
4411
+ });
4412
+ const last = report.lines.length - 1;
4413
+ if (!shownIdx.includes(last)) shownIdx.push(last);
4414
+ const kept = shownIdx.slice(Math.max(0, shownIdx.length - SUMMARY_ANOMALY_CAP));
4415
+ const anomalies = kept.filter((i) => {
4416
+ const l = report.lines[i];
4417
+ if (!l) return false;
4418
+ return l.hitPct < ANOMALY_HIT_PCT || l.missed >= ANOMALY_MISS_TOK;
4419
+ }).length;
4420
+ if (anomalies === 0) {
4421
+ const med = medianHitPct(report.lines);
4422
+ out.push(
4423
+ `LINE ITEMS \u2014 no anomalies (${report.lines.length} requests, median hit ${med !== null ? med.toFixed(1) : "n/a"}%${report.linesOmitted > 0 ? `, ${report.linesOmitted} older outside window` : ""})`
4424
+ );
4425
+ } else {
4426
+ out.push(
4427
+ `LINE ITEMS (anomalies: hit<${ANOMALY_HIT_PCT}% or miss\u2265${fmtTok(ANOMALY_MISS_TOK)}):`
4428
+ );
4429
+ out.push(
4430
+ " # time input cached hit% new comp ttl fold"
4431
+ );
4432
+ for (const i of kept) {
4433
+ const l = report.lines[i];
4434
+ if (!l) continue;
4435
+ const fold = l.foldSeq !== null ? `#${l.foldSeq}` : "";
4436
+ out.push(
4437
+ ` ${String(l.seq).padStart(4)} ${fmtTime(l.at)} ${fmtTok(l.input).padStart(7)} ${fmtTok(l.cached).padStart(7)} ${l.hitPct.toFixed(1).padStart(5)}% ${fmtTok(l.newContent).padStart(6)} ${fmtTok(l.compRepay).padStart(6)} ${fmtTok(l.ttlRepay).padStart(6)} ${fold}`
4438
+ );
4439
+ }
4440
+ const omitted = report.lines.length - kept.length;
4441
+ if (omitted > 0) {
4442
+ const rest = report.lines.filter((_, i) => !kept.includes(i));
4443
+ const med = medianHitPct(rest);
4444
+ out.push(
4445
+ ` \u2026 ${omitted} lines omitted (median hit ${med !== null ? med.toFixed(1) : "n/a"}%${report.linesOmitted > 0 ? `, ${report.linesOmitted} older outside window` : ""} \u2014 detail:"full" lists all)`
4446
+ );
4447
+ }
4448
+ }
4449
+ }
4450
+ return out.join("\n");
4451
+ }
4452
+ function formatCacheReport(report, sessionLabel, opts) {
4453
+ const t = report.totals;
4454
+ const header = `ACP CACHE REPORT${sessionLabel ? ` (${sessionLabel})` : ""} \u2014 ${t.requests} requests`;
4455
+ if (opts?.detail === "full") {
4456
+ return [header, "", formatCacheReportFull(report)].join("\n");
4457
+ }
4458
+ return [
4459
+ header + ` [summary \u2014 detail:"full" for every fold & line]`,
4460
+ "",
4461
+ formatCacheReportSummary(report)
4462
+ ].join("\n");
4463
+ }
4331
4464
 
4332
4465
  // src/handoff.ts
4333
4466
  function renderMessage2(m) {