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.
- package/dist/archive/glyph-font.d.ts +22 -0
- package/dist/archive/glyph-font.js +72 -0
- package/dist/archive/glyph-font.js.map +1 -0
- package/dist/archive/page-renderer.d.ts +67 -0
- package/dist/archive/page-renderer.js +197 -0
- package/dist/archive/page-renderer.js.map +1 -0
- package/dist/archive/png-codec.d.ts +21 -0
- package/dist/archive/png-codec.js +197 -0
- package/dist/archive/png-codec.js.map +1 -0
- package/dist/archive/transcript-extract.d.ts +39 -0
- package/dist/archive/transcript-extract.js +187 -0
- package/dist/archive/transcript-extract.js.map +1 -0
- package/dist/ccr-store.d.ts +49 -0
- package/dist/ccr-store.js +171 -0
- package/dist/ccr-store.js.map +1 -0
- package/dist/commands/archive.d.ts +81 -0
- package/dist/commands/archive.js +358 -0
- package/dist/commands/archive.js.map +1 -0
- package/dist/commands/context-governor.d.ts +82 -0
- package/dist/commands/context-governor.js +344 -0
- package/dist/commands/context-governor.js.map +1 -0
- package/dist/commands/crush-stats.d.ts +36 -0
- package/dist/commands/crush-stats.js +142 -0
- package/dist/commands/crush-stats.js.map +1 -0
- package/dist/commands/crush.d.ts +24 -0
- package/dist/commands/crush.js +183 -0
- package/dist/commands/crush.js.map +1 -0
- package/dist/commands/inbox-watch-supervisor.js +8 -65
- package/dist/commands/inbox-watch-supervisor.js.map +1 -1
- package/dist/commands/init.js +93 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/pipe-wrap.d.ts +75 -0
- package/dist/commands/pipe-wrap.js +255 -0
- package/dist/commands/pipe-wrap.js.map +1 -0
- package/dist/commands/watcher-registry.d.ts +1 -8
- package/dist/commands/watcher-registry.js +10 -47
- package/dist/commands/watcher-registry.js.map +1 -1
- package/dist/crush/adaptive-sizer.d.ts +40 -0
- package/dist/crush/adaptive-sizer.js +156 -0
- package/dist/crush/adaptive-sizer.js.map +1 -0
- package/dist/crush/crush-keywords.d.ts +40 -0
- package/dist/crush/crush-keywords.js +110 -0
- package/dist/crush/crush-keywords.js.map +1 -0
- package/dist/crush/crush-types.d.ts +38 -0
- package/dist/crush/crush-types.js +36 -0
- package/dist/crush/crush-types.js.map +1 -0
- package/dist/crush/index.d.ts +16 -0
- package/dist/crush/index.js +48 -0
- package/dist/crush/index.js.map +1 -0
- package/dist/crush/json-crusher.d.ts +38 -0
- package/dist/crush/json-crusher.js +250 -0
- package/dist/crush/json-crusher.js.map +1 -0
- package/dist/crush/json-detectors.d.ts +48 -0
- package/dist/crush/json-detectors.js +211 -0
- package/dist/crush/json-detectors.js.map +1 -0
- package/dist/crush/log-compressor.d.ts +60 -0
- package/dist/crush/log-compressor.js +394 -0
- package/dist/crush/log-compressor.js.map +1 -0
- package/dist/crush/search-compressor.d.ts +60 -0
- package/dist/crush/search-compressor.js +210 -0
- package/dist/crush/search-compressor.js.map +1 -0
- package/dist/hook.js +49 -1
- package/dist/hook.js.map +1 -1
- package/dist/index.js +487 -449
- package/dist/index.js.map +1 -1
- package/dist/session-id.js +7 -12
- package/dist/session-id.js.map +1 -1
- package/package.json +2 -2
- package/skill/mechanic/SKILL.md +1 -1
- 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
|
|
97
|
-
//
|
|
98
|
-
//
|
|
99
|
-
//
|
|
100
|
-
//
|
|
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
|
|
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
|
|
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.
|
|
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
|
-
|
|
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 && !
|
|
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';
|