greprag 5.41.0 → 5.42.0

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.
Files changed (70) hide show
  1. package/dist/archive/glyph-font.d.ts +22 -0
  2. package/dist/archive/glyph-font.js +72 -0
  3. package/dist/archive/glyph-font.js.map +1 -0
  4. package/dist/archive/page-renderer.d.ts +67 -0
  5. package/dist/archive/page-renderer.js +197 -0
  6. package/dist/archive/page-renderer.js.map +1 -0
  7. package/dist/archive/png-codec.d.ts +21 -0
  8. package/dist/archive/png-codec.js +197 -0
  9. package/dist/archive/png-codec.js.map +1 -0
  10. package/dist/archive/transcript-extract.d.ts +39 -0
  11. package/dist/archive/transcript-extract.js +187 -0
  12. package/dist/archive/transcript-extract.js.map +1 -0
  13. package/dist/ccr-store.d.ts +49 -0
  14. package/dist/ccr-store.js +171 -0
  15. package/dist/ccr-store.js.map +1 -0
  16. package/dist/commands/archive.d.ts +81 -0
  17. package/dist/commands/archive.js +358 -0
  18. package/dist/commands/archive.js.map +1 -0
  19. package/dist/commands/context-governor.d.ts +82 -0
  20. package/dist/commands/context-governor.js +344 -0
  21. package/dist/commands/context-governor.js.map +1 -0
  22. package/dist/commands/crush-stats.d.ts +36 -0
  23. package/dist/commands/crush-stats.js +142 -0
  24. package/dist/commands/crush-stats.js.map +1 -0
  25. package/dist/commands/crush.d.ts +24 -0
  26. package/dist/commands/crush.js +183 -0
  27. package/dist/commands/crush.js.map +1 -0
  28. package/dist/commands/inbox-watch-supervisor.js +8 -65
  29. package/dist/commands/inbox-watch-supervisor.js.map +1 -1
  30. package/dist/commands/init.js +93 -0
  31. package/dist/commands/init.js.map +1 -1
  32. package/dist/commands/pipe-wrap.d.ts +75 -0
  33. package/dist/commands/pipe-wrap.js +255 -0
  34. package/dist/commands/pipe-wrap.js.map +1 -0
  35. package/dist/commands/watcher-registry.d.ts +1 -8
  36. package/dist/commands/watcher-registry.js +10 -47
  37. package/dist/commands/watcher-registry.js.map +1 -1
  38. package/dist/crush/adaptive-sizer.d.ts +40 -0
  39. package/dist/crush/adaptive-sizer.js +156 -0
  40. package/dist/crush/adaptive-sizer.js.map +1 -0
  41. package/dist/crush/crush-keywords.d.ts +40 -0
  42. package/dist/crush/crush-keywords.js +110 -0
  43. package/dist/crush/crush-keywords.js.map +1 -0
  44. package/dist/crush/crush-types.d.ts +38 -0
  45. package/dist/crush/crush-types.js +36 -0
  46. package/dist/crush/crush-types.js.map +1 -0
  47. package/dist/crush/index.d.ts +16 -0
  48. package/dist/crush/index.js +48 -0
  49. package/dist/crush/index.js.map +1 -0
  50. package/dist/crush/json-crusher.d.ts +38 -0
  51. package/dist/crush/json-crusher.js +250 -0
  52. package/dist/crush/json-crusher.js.map +1 -0
  53. package/dist/crush/json-detectors.d.ts +48 -0
  54. package/dist/crush/json-detectors.js +211 -0
  55. package/dist/crush/json-detectors.js.map +1 -0
  56. package/dist/crush/log-compressor.d.ts +60 -0
  57. package/dist/crush/log-compressor.js +394 -0
  58. package/dist/crush/log-compressor.js.map +1 -0
  59. package/dist/crush/search-compressor.d.ts +60 -0
  60. package/dist/crush/search-compressor.js +210 -0
  61. package/dist/crush/search-compressor.js.map +1 -0
  62. package/dist/hook.js +49 -1
  63. package/dist/hook.js.map +1 -1
  64. package/dist/index.js +487 -449
  65. package/dist/index.js.map +1 -1
  66. package/dist/session-id.js +7 -12
  67. package/dist/session-id.js.map +1 -1
  68. package/package.json +2 -2
  69. package/skill/mechanic/SKILL.md +1 -1
  70. package/skill/templates/chip-spawn.md +4 -2
@@ -64,7 +64,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
64
64
  exports.writeWatcherPidfile = writeWatcherPidfile;
65
65
  exports.removeWatcherPidfile = removeWatcherPidfile;
66
66
  exports.watcherAuditLog = watcherAuditLog;
67
- exports.pidAlive = pidAlive;
68
67
  exports.isLocallyArmed = isLocallyArmed;
69
68
  exports.listLocalLiveWatchers = listLocalLiveWatchers;
70
69
  exports.resolveClaudeOwnerPid = resolveClaudeOwnerPid;
@@ -93,15 +92,11 @@ const CLAUDE_PROC_RE = /^claude(\.exe)?$/i;
93
92
  // LIVE watchers. "Is the specific claude.exe that armed me still alive?" does
94
93
  // not. adr: adr/monitor-resilience.md
95
94
  const OWNER_PID_RE = /--owner-pid[=\s]+(\d+)/;
96
- // The Monitor task's own bash PID (Windows pid space — resolved from
97
- // /proc/$$/winpid at arm time; see armMonitorCommand in session-id.ts). The
98
- // owner-pid test is blind to a dead Monitor task whose claude.exe survives
99
- // (TaskStop, host restart on model switch): proven live 2026-06-10 the reaper
100
- // kept a TaskStop'd stack `ok→keep via=owner=6728:live-claude` while its
101
- // Monitor was gone. This stamp closes that gap. Value 0 is the arm-time "no
102
- // stamp" fallback and is never a verdict input.
103
- // adr: adr/monitor-resilience.md (2026-06-10)
104
- const MONITOR_PID_RE = /--monitor-pid[=\s]+(\d+)/;
95
+ // The --monitor-pid monitor-task backstop (ff681bb, 2026-06-10) was reverted
96
+ // 2026-06-11: the arm-time stamp came from /proc/$$/winpid of the transient
97
+ // arm-line bash, not the persistent Monitor task, so a dead stamp under a live
98
+ // owner false-flagged live watchers as orphans. Owner-pid liveness is the test.
99
+ // adr: adr/monitor-resilience.md
105
100
  // LIVE as of 2026-06-05 (before/after passed: keeps live watchers, still reaps
106
101
  // genuine orphans, falls back to the ancestry walk for legacy watchers with no
107
102
  // `--owner-pid`). Default ON; set GREPRAG_REAP_BY_OWNER=0 as an escape hatch to
@@ -120,13 +115,13 @@ function watchersDir() {
120
115
  * `ownerPid` (the owning claude.exe) is recorded so the reaper can test liveness
121
116
  * without enumerating the process table. Best-effort: a failed write only means
122
117
  * `isLocallyArmed` falls back to re-arming, never a crash. */
123
- function writeWatcherPidfile(short, pid, ownerPid, monitorPid) {
118
+ function writeWatcherPidfile(short, pid, ownerPid) {
124
119
  try {
125
120
  const dir = watchersDir();
126
121
  if (!dir)
127
122
  return;
128
123
  fs.mkdirSync(dir, { recursive: true });
129
- const rec = { short, pid, startedAt: Date.now(), ownerPid, monitorPid };
124
+ const rec = { short, pid, startedAt: Date.now(), ownerPid };
130
125
  fs.writeFileSync(path.join(dir, `${short}.json`), JSON.stringify(rec));
131
126
  }
132
127
  catch { /* best-effort */ }
@@ -231,9 +226,7 @@ function watcherAuditLog(event) {
231
226
  }
232
227
  /** True iff `pid` is a live process. `process.kill(pid, 0)` sends no signal —
233
228
  * it only probes existence. EPERM means the process exists but is owned by
234
- * another user (still alive); ESRCH means gone. Exported for the supervisor's
235
- * monitor-pid probe (one syscall per tick — never a process-table snapshot,
236
- * per the 2026-06-05b lesson). */
229
+ * another user (still alive); ESRCH means gone. */
237
230
  function pidAlive(pid) {
238
231
  if (!Number.isFinite(pid) || pid <= 0)
239
232
  return false;
@@ -346,16 +339,6 @@ function ownerPidFromCmd(cmd) {
346
339
  const m = OWNER_PID_RE.exec(cmd || '');
347
340
  return m ? Number(m[1]) : null;
348
341
  }
349
- /** Monitor-task bash PID parsed from a watcher's command line
350
- * (`--monitor-pid N`), or null if absent OR 0 (the arm-time "no stamp"
351
- * fallback when /proc/$$/winpid was unavailable). */
352
- function monitorPidFromCmd(cmd) {
353
- const m = MONITOR_PID_RE.exec(cmd || '');
354
- if (!m)
355
- return null;
356
- const n = Number(m[1]);
357
- return Number.isFinite(n) && n > 0 ? n : null;
358
- }
359
342
  /** Resolve the owning claude.exe PID for the CURRENT process by walking its
360
343
  * parent chain in a fresh snapshot. MUST be called from a hook — a direct, live
361
344
  * descendant of the session's claude.exe whose chain is intact — NOT from the
@@ -417,24 +400,7 @@ function severedVerdict(w, byPid) {
417
400
  const owner = ownerPidFromCmd(w.cmd);
418
401
  if (owner !== null) {
419
402
  const live = isLiveClaude(owner, byPid);
420
- if (!live)
421
- return { severed: true, reason: `owner=${owner}:dead` };
422
- // Owner alive ≠ Monitor task alive: TaskStop and model-switch host
423
- // restarts kill the Monitor's bash while claude.exe survives (live repro
424
- // 2026-06-10 — a TaskStop'd stack read `ok→keep` and needed a manual
425
- // taskkill). If the arm stamped the Monitor's bash PID, a dead stamp is
426
- // an orphan even under a live owner. Snapshot membership, not name-
427
- // matched: the stamped pid may be any layer of the Monitor's shell tree.
428
- // Fail-open on recycling (pid reused by anything → keep — the supervisor's
429
- // own monitor-pid probe is the primary kill path; this is the backstop).
430
- const monitor = monitorPidFromCmd(w.cmd);
431
- if (monitor !== null && !byPid.has(monitor)) {
432
- return { severed: true, reason: `owner=${owner}:live-claude monitor=${monitor}:dead` };
433
- }
434
- return {
435
- severed: false,
436
- reason: `owner=${owner}:live-claude${monitor !== null ? ` monitor=${monitor}:live` : ''}`,
437
- };
403
+ return { severed: !live, reason: `owner=${owner}:${live ? 'live-claude' : 'dead'}` };
438
404
  }
439
405
  return { severed: !hasLiveClaudeAncestor(w, byPid), reason: 'no-owner-flag→ancestry' };
440
406
  }
@@ -463,11 +429,8 @@ function reapOrphanWatchers() {
463
429
  // adr: adr/monitor-resilience.md
464
430
  const pidfiles = readAllPidfiles();
465
431
  const severedByOwner = pidfiles.some(r => typeof r.ownerPid === 'number' && !pidAlive(r.ownerPid));
466
- // A dead monitorPid under a live owner (TaskStop'd / host-restart-orphaned
467
- // stack) also justifies the snapshot. adr: adr/monitor-resilience.md (06-10)
468
- const severedByMonitor = pidfiles.some(r => typeof r.monitorPid === 'number' && r.monitorPid > 0 && !pidAlive(r.monitorPid));
469
432
  const hasLegacy = pidfiles.some(r => typeof r.ownerPid !== 'number');
470
- if (!severedByOwner && !severedByMonitor && !hasLegacy) {
433
+ if (!severedByOwner && !hasLegacy) {
471
434
  watcherAuditLog(`reap-summary gated no-severed-owner pidfiles=${pidfiles.length} (snapshot skipped)`);
472
435
  return { scanned: 0, orphans: 0, killed: [] };
473
436
  }
@@ -1 +1 @@
1
- {"version":3,"file":"watcher-registry.js","sourceRoot":"","sources":["../../src/commands/watcher-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watcher-registry.js","sourceRoot":"","sources":["../../src/commands/watcher-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * MIRRORED FILE — canonical source: packages/core/src/crush/adaptive-sizer.ts.
3
+ * Byte-identical copy lives at packages/cli/src/crush/adaptive-sizer.ts (the CLI is a
4
+ * zero-dep artifact and cannot import @greprag/core). KEEP IN SYNC —
5
+ * the sync guard in tests/test-crush.cjs fails the build on drift.
6
+ *
7
+ * Adaptive keep-count via information saturation — port of Headroom's
8
+ * transforms/adaptive_sizer.rs (itself a port of adaptive_sizer.py).
9
+ *
10
+ * Decides HOW MANY items to keep, statistically: find the knee of the
11
+ * cumulative unique-bigram coverage curve (Kneedle). Coverage stops
12
+ * growing -> that's the knee -> keep that many.
13
+ *
14
+ * Deliberate divergence from Headroom: the zlib-ratio validation tier
15
+ * is dropped (it nudged k up ~20% on pathological subsets; not worth a
16
+ * compression dependency in a zero-dep core). Simhash is replaced with
17
+ * a plain FNV-1a 4-gram sketch — it only feeds the "near-total
18
+ * redundancy" fast path, where any stable hash works.
19
+ */
20
+ /**
21
+ * Cumulative unique word-bigram coverage: curve[i] = distinct bigrams
22
+ * seen across items[0..=i]. Single-word items emit `(word, "")`;
23
+ * empty items emit `("", "")` — mirrors the Python/Rust cardinality.
24
+ */
25
+ export declare function computeUniqueBigramCurve(items: readonly string[]): number[];
26
+ /**
27
+ * Kneedle knee finder on a monotonically-increasing curve. Returns the
28
+ * 1-indexed keep-count, or null when no knee clears the 0.05 deviation
29
+ * threshold. Flat curve (all items identical) -> 1.
30
+ */
31
+ export declare function findKnee(curve: readonly number[]): number | null;
32
+ /**
33
+ * Compute the optimal number of items to keep.
34
+ *
35
+ * @param items string representations of items in importance order
36
+ * @param bias multiplier on the knee (>1 keep more, <1 compress harder)
37
+ * @param minK lower bound
38
+ * @param maxK upper bound (undefined = items.length)
39
+ */
40
+ export declare function computeOptimalK(items: readonly string[], bias: number, minK: number, maxK?: number): number;
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ /**
3
+ * MIRRORED FILE — canonical source: packages/core/src/crush/adaptive-sizer.ts.
4
+ * Byte-identical copy lives at packages/cli/src/crush/adaptive-sizer.ts (the CLI is a
5
+ * zero-dep artifact and cannot import @greprag/core). KEEP IN SYNC —
6
+ * the sync guard in tests/test-crush.cjs fails the build on drift.
7
+ *
8
+ * Adaptive keep-count via information saturation — port of Headroom's
9
+ * transforms/adaptive_sizer.rs (itself a port of adaptive_sizer.py).
10
+ *
11
+ * Decides HOW MANY items to keep, statistically: find the knee of the
12
+ * cumulative unique-bigram coverage curve (Kneedle). Coverage stops
13
+ * growing -> that's the knee -> keep that many.
14
+ *
15
+ * Deliberate divergence from Headroom: the zlib-ratio validation tier
16
+ * is dropped (it nudged k up ~20% on pathological subsets; not worth a
17
+ * compression dependency in a zero-dep core). Simhash is replaced with
18
+ * a plain FNV-1a 4-gram sketch — it only feeds the "near-total
19
+ * redundancy" fast path, where any stable hash works.
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.computeUniqueBigramCurve = computeUniqueBigramCurve;
23
+ exports.findKnee = findKnee;
24
+ exports.computeOptimalK = computeOptimalK;
25
+ /** FNV-1a 32-bit over a string, with a seed offset. Stable, dependency-free. */
26
+ function fnv1a(s, seed) {
27
+ let h = (0x811c9dc5 ^ seed) >>> 0;
28
+ for (let i = 0; i < s.length; i++) {
29
+ h ^= s.charCodeAt(i);
30
+ h = Math.imul(h, 0x01000193);
31
+ }
32
+ return h >>> 0;
33
+ }
34
+ /** 64-bit-ish simhash over character 4-grams (two independent FNV seeds). */
35
+ function simhash(s) {
36
+ const votes1 = new Array(32).fill(0);
37
+ const votes2 = new Array(32).fill(0);
38
+ const text = s.length < 4 ? s + ' '.repeat(4 - s.length) : s;
39
+ for (let i = 0; i + 4 <= text.length; i++) {
40
+ const gram = text.slice(i, i + 4);
41
+ const h1 = fnv1a(gram, 0);
42
+ const h2 = fnv1a(gram, 0x9e3779b9);
43
+ for (let b = 0; b < 32; b++) {
44
+ votes1[b] += (h1 >>> b) & 1 ? 1 : -1;
45
+ votes2[b] += (h2 >>> b) & 1 ? 1 : -1;
46
+ }
47
+ }
48
+ let out = '';
49
+ for (let b = 0; b < 32; b++)
50
+ out += votes1[b] >= 0 ? '1' : '0';
51
+ for (let b = 0; b < 32; b++)
52
+ out += votes2[b] >= 0 ? '1' : '0';
53
+ return out;
54
+ }
55
+ /**
56
+ * Count distinct simhash groups. No early exit — the count also feeds
57
+ * the diversity ratio, which needs the true cardinality.
58
+ */
59
+ function countUniqueSimhash(items) {
60
+ const seen = new Set();
61
+ for (const item of items)
62
+ seen.add(simhash(item));
63
+ return seen.size;
64
+ }
65
+ /**
66
+ * Cumulative unique word-bigram coverage: curve[i] = distinct bigrams
67
+ * seen across items[0..=i]. Single-word items emit `(word, "")`;
68
+ * empty items emit `("", "")` — mirrors the Python/Rust cardinality.
69
+ */
70
+ function computeUniqueBigramCurve(items) {
71
+ const seen = new Set();
72
+ const curve = [];
73
+ for (const item of items) {
74
+ const words = item.split(/\s+/).filter((w) => w.length > 0);
75
+ if (words.length === 0) {
76
+ seen.add(' ');
77
+ }
78
+ else if (words.length === 1) {
79
+ seen.add(words[0] + ' ');
80
+ }
81
+ else {
82
+ for (let i = 0; i + 1 < words.length; i++) {
83
+ seen.add(words[i] + ' ' + words[i + 1]);
84
+ }
85
+ }
86
+ curve.push(seen.size);
87
+ }
88
+ return curve;
89
+ }
90
+ /**
91
+ * Kneedle knee finder on a monotonically-increasing curve. Returns the
92
+ * 1-indexed keep-count, or null when no knee clears the 0.05 deviation
93
+ * threshold. Flat curve (all items identical) -> 1.
94
+ */
95
+ function findKnee(curve) {
96
+ const n = curve.length;
97
+ if (n < 3)
98
+ return null;
99
+ const yMin = curve[0];
100
+ const yMax = curve[n - 1];
101
+ if (Math.abs(yMax - yMin) < Number.EPSILON)
102
+ return 1;
103
+ const xRange = n - 1;
104
+ const yRange = yMax - yMin;
105
+ let maxDiff = -1;
106
+ let kneeIdx = null;
107
+ for (let i = 0; i < n; i++) {
108
+ const xNorm = i / xRange;
109
+ const yNorm = (curve[i] - yMin) / yRange;
110
+ const diff = yNorm - xNorm;
111
+ if (diff > maxDiff) {
112
+ maxDiff = diff;
113
+ kneeIdx = i;
114
+ }
115
+ }
116
+ if (maxDiff < 0.05)
117
+ return null;
118
+ return kneeIdx === null ? null : kneeIdx + 1;
119
+ }
120
+ /**
121
+ * Compute the optimal number of items to keep.
122
+ *
123
+ * @param items string representations of items in importance order
124
+ * @param bias multiplier on the knee (>1 keep more, <1 compress harder)
125
+ * @param minK lower bound
126
+ * @param maxK upper bound (undefined = items.length)
127
+ */
128
+ function computeOptimalK(items, bias, minK, maxK) {
129
+ const n = items.length;
130
+ const effectiveMax = maxK ?? n;
131
+ // Tier 1: trivial.
132
+ if (n <= 8)
133
+ return n;
134
+ // Near-total redundancy: <=3 unique groups -> keep that many.
135
+ const uniqueCount = countUniqueSimhash(items);
136
+ if (uniqueCount <= 3) {
137
+ return Math.min(Math.max(minK, uniqueCount), effectiveMax);
138
+ }
139
+ // Tier 2: Kneedle on the bigram coverage curve.
140
+ const curve = computeUniqueBigramCurve(items);
141
+ let knee = findKnee(curve);
142
+ const diversityRatio = uniqueCount / n;
143
+ if (knee === null) {
144
+ // No saturation — scale keep-fraction with diversity.
145
+ const keepFraction = 0.3 + 0.7 * diversityRatio;
146
+ knee = Math.max(minK, Math.floor(n * keepFraction));
147
+ }
148
+ else if (diversityRatio > 0.7) {
149
+ const floor = Math.max(minK, Math.floor(n * (0.3 + 0.7 * diversityRatio)));
150
+ knee = Math.max(knee, floor);
151
+ }
152
+ let k = Math.max(minK, Math.floor(knee * bias));
153
+ k = Math.min(k, effectiveMax);
154
+ return Math.max(minK, Math.min(k, effectiveMax));
155
+ }
156
+ //# sourceMappingURL=adaptive-sizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adaptive-sizer.js","sourceRoot":"","sources":["../../src/crush/adaptive-sizer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;AA+CH,4DAiBC;AAOD,4BAqBC;AAUD,0CAmCC;AAvID,gFAAgF;AAChF,SAAS,KAAK,CAAC,CAAS,EAAE,IAAY;IACpC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAED,6EAA6E;AAC7E,SAAS,OAAO,CAAC,CAAS;IACxB,MAAM,MAAM,GAAG,IAAI,KAAK,CAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,KAAK,CAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;QAAE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;QAAE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/D,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,KAAwB;IAClD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAgB,wBAAwB,CAAC,KAAwB;IAC/D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,KAAwB;IAC/C,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3B,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;IACjB,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;QACzB,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;QACzC,MAAM,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;QAC3B,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;YACnB,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,GAAG,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IACD,IAAI,OAAO,GAAG,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,eAAe,CAC7B,KAAwB,EACxB,IAAY,EACZ,IAAY,EACZ,IAAa;IAEb,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,CAAC;IAE/B,mBAAmB;IACnB,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAErB,8DAA8D;IAC9D,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED,gDAAgD;IAChD,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,cAAc,GAAG,WAAW,GAAG,CAAC,CAAC;IAEvC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,sDAAsD;QACtD,MAAM,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,cAAc,CAAC;QAChD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IACtD,CAAC;SAAM,IAAI,cAAc,GAAG,GAAG,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * MIRRORED FILE — canonical source: packages/core/src/crush/crush-keywords.ts.
3
+ * Byte-identical copy lives at packages/cli/src/crush/crush-keywords.ts (the CLI is a
4
+ * zero-dep artifact and cannot import @greprag/core). KEEP IN SYNC —
5
+ * the sync guard in tests/test-crush.cjs fails the build on drift.
6
+ *
7
+ * Keyword registries + word-boundary classification shared by the crush
8
+ * compressors. Port of Headroom's signals/keyword_detector.rs +
9
+ * smart_crusher/error_keywords.rs.
10
+ *
11
+ * Carries Headroom's documented fixes:
12
+ * - the error set includes abort/timeout/denied/rejected (the Python
13
+ * regex omitted them while the keyword list had them);
14
+ * - `token` is NOT in the security set (false-positives on every LLM
15
+ * token count in agent logs).
16
+ */
17
+ /** Error/failure keywords used for line scoring and JSON item preservation. */
18
+ export declare const ERROR_KEYWORDS: readonly string[];
19
+ /**
20
+ * The 12-keyword preservation set for JSON items (smart_crusher's
21
+ * fallback signal — intentionally broad; over-preserving beats dropping
22
+ * a real error). Differs from ERROR_KEYWORDS by omitting bare 'fail'
23
+ * (too noisy inside serialized JSON, where 'failed'/'failure' cover it).
24
+ */
25
+ export declare const JSON_ERROR_KEYWORDS: readonly string[];
26
+ export declare const WARNING_KEYWORDS: readonly string[];
27
+ export declare const IMPORTANCE_KEYWORDS: readonly string[];
28
+ /**
29
+ * Case-insensitive whole-word containment check ("errorless" does not
30
+ * match "error"; "ERROR:" does).
31
+ */
32
+ export declare function containsKeyword(line: string, keyword: string): boolean;
33
+ export declare function containsAnyKeyword(line: string, keywords: readonly string[]): boolean;
34
+ export type ImportanceCategory = 'error' | 'warning' | 'importance';
35
+ /**
36
+ * Classify a line's importance category for search-match scoring.
37
+ * Error outranks warning outranks importance (matches Headroom's
38
+ * priority-pattern ordering: 0.5 / 0.4 / 0.3 boosts).
39
+ */
40
+ export declare function classifyImportance(line: string): ImportanceCategory | null;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ /**
3
+ * MIRRORED FILE — canonical source: packages/core/src/crush/crush-keywords.ts.
4
+ * Byte-identical copy lives at packages/cli/src/crush/crush-keywords.ts (the CLI is a
5
+ * zero-dep artifact and cannot import @greprag/core). KEEP IN SYNC —
6
+ * the sync guard in tests/test-crush.cjs fails the build on drift.
7
+ *
8
+ * Keyword registries + word-boundary classification shared by the crush
9
+ * compressors. Port of Headroom's signals/keyword_detector.rs +
10
+ * smart_crusher/error_keywords.rs.
11
+ *
12
+ * Carries Headroom's documented fixes:
13
+ * - the error set includes abort/timeout/denied/rejected (the Python
14
+ * regex omitted them while the keyword list had them);
15
+ * - `token` is NOT in the security set (false-positives on every LLM
16
+ * token count in agent logs).
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.IMPORTANCE_KEYWORDS = exports.WARNING_KEYWORDS = exports.JSON_ERROR_KEYWORDS = exports.ERROR_KEYWORDS = void 0;
20
+ exports.containsKeyword = containsKeyword;
21
+ exports.containsAnyKeyword = containsAnyKeyword;
22
+ exports.classifyImportance = classifyImportance;
23
+ /** Error/failure keywords used for line scoring and JSON item preservation. */
24
+ exports.ERROR_KEYWORDS = [
25
+ 'error',
26
+ 'exception',
27
+ 'fail',
28
+ 'failed',
29
+ 'failure',
30
+ 'fatal',
31
+ 'critical',
32
+ 'crash',
33
+ 'panic',
34
+ 'abort',
35
+ 'timeout',
36
+ 'denied',
37
+ 'rejected',
38
+ ];
39
+ /**
40
+ * The 12-keyword preservation set for JSON items (smart_crusher's
41
+ * fallback signal — intentionally broad; over-preserving beats dropping
42
+ * a real error). Differs from ERROR_KEYWORDS by omitting bare 'fail'
43
+ * (too noisy inside serialized JSON, where 'failed'/'failure' cover it).
44
+ */
45
+ exports.JSON_ERROR_KEYWORDS = [
46
+ 'error',
47
+ 'exception',
48
+ 'failed',
49
+ 'failure',
50
+ 'critical',
51
+ 'fatal',
52
+ 'crash',
53
+ 'panic',
54
+ 'abort',
55
+ 'timeout',
56
+ 'denied',
57
+ 'rejected',
58
+ ];
59
+ exports.WARNING_KEYWORDS = ['warn', 'warning'];
60
+ exports.IMPORTANCE_KEYWORDS = [
61
+ 'important',
62
+ 'note',
63
+ 'todo',
64
+ 'fixme',
65
+ 'hack',
66
+ 'xxx',
67
+ 'bug',
68
+ 'fix',
69
+ ];
70
+ function isWordChar(ch) {
71
+ return /[A-Za-z0-9_]/.test(ch);
72
+ }
73
+ /**
74
+ * Case-insensitive whole-word containment check ("errorless" does not
75
+ * match "error"; "ERROR:" does).
76
+ */
77
+ function containsKeyword(line, keyword) {
78
+ const haystack = line.toLowerCase();
79
+ const needle = keyword.toLowerCase();
80
+ let from = 0;
81
+ for (;;) {
82
+ const idx = haystack.indexOf(needle, from);
83
+ if (idx === -1)
84
+ return false;
85
+ const leftOk = idx === 0 || !isWordChar(haystack[idx - 1]);
86
+ const right = idx + needle.length;
87
+ const rightOk = right === haystack.length || !isWordChar(haystack[right]);
88
+ if (leftOk && rightOk)
89
+ return true;
90
+ from = idx + 1;
91
+ }
92
+ }
93
+ function containsAnyKeyword(line, keywords) {
94
+ return keywords.some((kw) => containsKeyword(line, kw));
95
+ }
96
+ /**
97
+ * Classify a line's importance category for search-match scoring.
98
+ * Error outranks warning outranks importance (matches Headroom's
99
+ * priority-pattern ordering: 0.5 / 0.4 / 0.3 boosts).
100
+ */
101
+ function classifyImportance(line) {
102
+ if (containsAnyKeyword(line, exports.ERROR_KEYWORDS))
103
+ return 'error';
104
+ if (containsAnyKeyword(line, exports.WARNING_KEYWORDS))
105
+ return 'warning';
106
+ if (containsAnyKeyword(line, exports.IMPORTANCE_KEYWORDS))
107
+ return 'importance';
108
+ return null;
109
+ }
110
+ //# sourceMappingURL=crush-keywords.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crush-keywords.js","sourceRoot":"","sources":["../../src/crush/crush-keywords.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AA6DH,0CAaC;AAED,gDAEC;AASD,gDAKC;AA1FD,+EAA+E;AAClE,QAAA,cAAc,GAAsB;IAC/C,OAAO;IACP,WAAW;IACX,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,QAAQ;IACR,UAAU;CACX,CAAC;AAEF;;;;;GAKG;AACU,QAAA,mBAAmB,GAAsB;IACpD,OAAO;IACP,WAAW;IACX,QAAQ;IACR,SAAS;IACT,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,QAAQ;IACR,UAAU;CACX,CAAC;AAEW,QAAA,gBAAgB,GAAsB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE1D,QAAA,mBAAmB,GAAsB;IACpD,WAAW;IACX,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC;AAEF,SAAS,UAAU,CAAC,EAAU;IAC5B,OAAO,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,IAAY,EAAE,OAAe;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,SAAS,CAAC;QACR,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7B,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QAClC,MAAM,OAAO,GAAG,KAAK,KAAK,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,IAAI,MAAM,IAAI,OAAO;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAY,EAAE,QAA2B;IAC1E,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAID;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,IAAI,kBAAkB,CAAC,IAAI,EAAE,sBAAc,CAAC;QAAE,OAAO,OAAO,CAAC;IAC7D,IAAI,kBAAkB,CAAC,IAAI,EAAE,wBAAgB,CAAC;QAAE,OAAO,SAAS,CAAC;IACjE,IAAI,kBAAkB,CAAC,IAAI,EAAE,2BAAmB,CAAC;QAAE,OAAO,YAAY,CAAC;IACvE,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * MIRRORED FILE — canonical source: packages/core/src/crush/crush-types.ts.
3
+ * Byte-identical copy lives at packages/cli/src/crush/crush-types.ts (the CLI is a
4
+ * zero-dep artifact and cannot import @greprag/core). KEEP IN SYNC —
5
+ * the sync guard in tests/test-crush.cjs fails the build on drift.
6
+ *
7
+ * Shared types for the crush engine — pure tool-output compressors
8
+ * (TypeScript ports of Headroom's search/log/smart-crusher transforms).
9
+ *
10
+ * Every compressor is a pure function: string in → { output, stats } out.
11
+ * No I/O, no deps. CCR storage and CLI plumbing live in packages/cli.
12
+ */
13
+ export type CrushSourceType = 'search' | 'log' | 'json';
14
+ export interface CrushStats {
15
+ /** Source type the compressor handled. */
16
+ sourceType: CrushSourceType;
17
+ /** Input size in characters. */
18
+ originalChars: number;
19
+ /** Output size in characters. */
20
+ compressedChars: number;
21
+ /** compressedChars / originalChars (1.0 = no compression). */
22
+ compressionRatio: number;
23
+ /** Units the compressor reasons in (matches/lines/items) before selection. */
24
+ originalUnits: number;
25
+ /** Units surviving selection. */
26
+ keptUnits: number;
27
+ /** True when the compressor passed input through unchanged. */
28
+ passthrough: boolean;
29
+ /** Why passthrough happened (when it did). */
30
+ passthroughReason?: string;
31
+ }
32
+ export interface CrushResult {
33
+ output: string;
34
+ stats: CrushStats;
35
+ }
36
+ /** Rough token estimate shared by validate-or-revert checks: 1 token ≈ 4 chars. */
37
+ export declare function estimateTokens(text: string): number;
38
+ export declare function makePassthrough(content: string, sourceType: CrushSourceType, reason: string, units?: number): CrushResult;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * MIRRORED FILE — canonical source: packages/core/src/crush/crush-types.ts.
4
+ * Byte-identical copy lives at packages/cli/src/crush/crush-types.ts (the CLI is a
5
+ * zero-dep artifact and cannot import @greprag/core). KEEP IN SYNC —
6
+ * the sync guard in tests/test-crush.cjs fails the build on drift.
7
+ *
8
+ * Shared types for the crush engine — pure tool-output compressors
9
+ * (TypeScript ports of Headroom's search/log/smart-crusher transforms).
10
+ *
11
+ * Every compressor is a pure function: string in → { output, stats } out.
12
+ * No I/O, no deps. CCR storage and CLI plumbing live in packages/cli.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.estimateTokens = estimateTokens;
16
+ exports.makePassthrough = makePassthrough;
17
+ /** Rough token estimate shared by validate-or-revert checks: 1 token ≈ 4 chars. */
18
+ function estimateTokens(text) {
19
+ return Math.ceil(text.length / 4);
20
+ }
21
+ function makePassthrough(content, sourceType, reason, units = 0) {
22
+ return {
23
+ output: content,
24
+ stats: {
25
+ sourceType,
26
+ originalChars: content.length,
27
+ compressedChars: content.length,
28
+ compressionRatio: 1.0,
29
+ originalUnits: units,
30
+ keptUnits: units,
31
+ passthrough: true,
32
+ passthroughReason: reason,
33
+ },
34
+ };
35
+ }
36
+ //# sourceMappingURL=crush-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crush-types.js","sourceRoot":"","sources":["../../src/crush/crush-types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;AA6BH,wCAEC;AAED,0CAmBC;AAxBD,mFAAmF;AACnF,SAAgB,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,eAAe,CAC7B,OAAe,EACf,UAA2B,EAC3B,MAAc,EACd,KAAK,GAAG,CAAC;IAET,OAAO;QACL,MAAM,EAAE,OAAO;QACf,KAAK,EAAE;YACL,UAAU;YACV,aAAa,EAAE,OAAO,CAAC,MAAM;YAC7B,eAAe,EAAE,OAAO,CAAC,MAAM;YAC/B,gBAAgB,EAAE,GAAG;YACrB,aAAa,EAAE,KAAK;YACpB,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,IAAI;YACjB,iBAAiB,EAAE,MAAM;SAC1B;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * MIRRORED FILE — canonical source: packages/core/src/crush/index.ts.
3
+ * Byte-identical copy lives at packages/cli/src/crush/index.ts (the CLI is a
4
+ * zero-dep artifact and cannot import @greprag/core). KEEP IN SYNC —
5
+ * the sync guard in tests/test-crush.cjs fails the build on drift.
6
+ *
7
+ * Crush engine — pure tool-output compressors (Headroom ports).
8
+ * String in -> { output, stats } out. Zero deps, no I/O.
9
+ */
10
+ export { CrushResult, CrushStats, CrushSourceType, estimateTokens, makePassthrough } from './crush-types';
11
+ export { crushSearch, parseMatchLine, DEFAULT_SEARCH_CONFIG, SearchCompressorConfig } from './search-compressor';
12
+ export { crushLog, detectFormat, classifyLevel, isSummaryLine, parseLogLines, normalizeForDedupe, DEFAULT_LOG_CONFIG, LogCompressorConfig, LogFormat, LogLevel, LogLine, } from './log-compressor';
13
+ export { crushJson, computeKSplit, DEFAULT_JSON_CONFIG, JsonCrusherConfig } from './json-crusher';
14
+ export { classifyArray, detectErrorItems, detectRareStatusValues, detectSequentialPattern, detectStructuralOutliers, ArrayType, JsonValue, } from './json-detectors';
15
+ export { computeOptimalK, computeUniqueBigramCurve, findKnee } from './adaptive-sizer';
16
+ export { ERROR_KEYWORDS, JSON_ERROR_KEYWORDS, containsKeyword, containsAnyKeyword, classifyImportance, } from './crush-keywords';