greprag 5.40.1 → 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 (80) 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/email.js +158 -9
  29. package/dist/commands/email.js.map +1 -1
  30. package/dist/commands/inbox-watch-supervisor.js +8 -65
  31. package/dist/commands/inbox-watch-supervisor.js.map +1 -1
  32. package/dist/commands/init.js +93 -0
  33. package/dist/commands/init.js.map +1 -1
  34. package/dist/commands/pipe-wrap.d.ts +75 -0
  35. package/dist/commands/pipe-wrap.js +255 -0
  36. package/dist/commands/pipe-wrap.js.map +1 -0
  37. package/dist/commands/watcher-registry.d.ts +1 -8
  38. package/dist/commands/watcher-registry.js +10 -47
  39. package/dist/commands/watcher-registry.js.map +1 -1
  40. package/dist/crush/adaptive-sizer.d.ts +40 -0
  41. package/dist/crush/adaptive-sizer.js +156 -0
  42. package/dist/crush/adaptive-sizer.js.map +1 -0
  43. package/dist/crush/crush-keywords.d.ts +40 -0
  44. package/dist/crush/crush-keywords.js +110 -0
  45. package/dist/crush/crush-keywords.js.map +1 -0
  46. package/dist/crush/crush-types.d.ts +38 -0
  47. package/dist/crush/crush-types.js +36 -0
  48. package/dist/crush/crush-types.js.map +1 -0
  49. package/dist/crush/index.d.ts +16 -0
  50. package/dist/crush/index.js +48 -0
  51. package/dist/crush/index.js.map +1 -0
  52. package/dist/crush/json-crusher.d.ts +38 -0
  53. package/dist/crush/json-crusher.js +250 -0
  54. package/dist/crush/json-crusher.js.map +1 -0
  55. package/dist/crush/json-detectors.d.ts +48 -0
  56. package/dist/crush/json-detectors.js +211 -0
  57. package/dist/crush/json-detectors.js.map +1 -0
  58. package/dist/crush/log-compressor.d.ts +60 -0
  59. package/dist/crush/log-compressor.js +394 -0
  60. package/dist/crush/log-compressor.js.map +1 -0
  61. package/dist/crush/search-compressor.d.ts +60 -0
  62. package/dist/crush/search-compressor.js +210 -0
  63. package/dist/crush/search-compressor.js.map +1 -0
  64. package/dist/email-pull.d.ts +25 -3
  65. package/dist/email-pull.js +25 -5
  66. package/dist/email-pull.js.map +1 -1
  67. package/dist/email-send.d.ts +4 -0
  68. package/dist/email-send.js +2 -0
  69. package/dist/email-send.js.map +1 -1
  70. package/dist/hook.js +49 -1
  71. package/dist/hook.js.map +1 -1
  72. package/dist/index.js +487 -449
  73. package/dist/index.js.map +1 -1
  74. package/dist/session-id.js +7 -12
  75. package/dist/session-id.js.map +1 -1
  76. package/package.json +2 -2
  77. package/skill/greprag/SKILL.md +2 -2
  78. package/skill/greprag/docs/email.md +28 -4
  79. package/skill/mechanic/SKILL.md +1 -1
  80. package/skill/templates/chip-spawn.md +4 -2
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ // adr: adr/pipe-wrap-hook.md
3
+ /** Pipe-wrap — the write-time crush hook (Chip B of pre-LLM compression).
4
+ *
5
+ * PreToolUse[Bash] handler: inspect `tool_input.command`, and when it is a
6
+ * recognizably noisy producer (test/build runner, grep/rg search, --json
7
+ * emitter) rewrite it to pipe through `greprag crush`, so the tool output
8
+ * enters the model's context already compressed. The rewrite rides Claude
9
+ * Code's `hookSpecificOutput.updatedInput` — returned WITHOUT a
10
+ * permissionDecision so the normal permission flow still applies to the
11
+ * rewritten command.
12
+ *
13
+ * Posture is DEFAULT-DENY: a command is only wrapped when it positively
14
+ * classifies AND clears every structural safety gate (no pipes, redirects,
15
+ * subshells, groups, `;`/`||`/background `&`, heredocs, multiline, unbalanced
16
+ * quotes). False negatives are free — crush has its own below-threshold skip
17
+ * and token-validate-or-revert — but a broken user command is a P0, so when
18
+ * in doubt we don't wrap.
19
+ *
20
+ * Escape hatches: GREPRAG_NO_CRUSH=1 env, `crush_wrap: false` in
21
+ * .greprag/project.json (anchor-settings pattern, context-governor
22
+ * precedent), or a literal `# nocrush` in the command.
23
+ *
24
+ * docs/pre-llm-compression.md (§ Lever 1), adr/crush-engine.md (the consumed
25
+ * CLI contract: exit 0 always, passthrough on error — wrapping is never able
26
+ * to break the pipeline's output).
27
+ */
28
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
29
+ if (k2 === undefined) k2 = k;
30
+ var desc = Object.getOwnPropertyDescriptor(m, k);
31
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
32
+ desc = { enumerable: true, get: function() { return m[k]; } };
33
+ }
34
+ Object.defineProperty(o, k2, desc);
35
+ }) : (function(o, m, k, k2) {
36
+ if (k2 === undefined) k2 = k;
37
+ o[k2] = m[k];
38
+ }));
39
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
40
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
41
+ }) : function(o, v) {
42
+ o["default"] = v;
43
+ });
44
+ var __importStar = (this && this.__importStar) || (function () {
45
+ var ownKeys = function(o) {
46
+ ownKeys = Object.getOwnPropertyNames || function (o) {
47
+ var ar = [];
48
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
49
+ return ar;
50
+ };
51
+ return ownKeys(o);
52
+ };
53
+ return function (mod) {
54
+ if (mod && mod.__esModule) return mod;
55
+ var result = {};
56
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
57
+ __setModuleDefault(result, mod);
58
+ return result;
59
+ };
60
+ })();
61
+ Object.defineProperty(exports, "__esModule", { value: true });
62
+ exports.quotesBalanced = quotesBalanced;
63
+ exports.extractSearchQuery = extractSearchQuery;
64
+ exports.classifyCommand = classifyCommand;
65
+ exports.rewriteCommand = rewriteCommand;
66
+ exports.readPipeWrapConfig = readPipeWrapConfig;
67
+ exports.runPipeWrap = runPipeWrap;
68
+ const fs = __importStar(require("fs"));
69
+ const project_anchor_1 = require("../project-anchor");
70
+ // ---------- Structural safety gates (pure) ----------------------------------
71
+ /** True when single/double quotes balance with bash-style escaping
72
+ * (backslash escapes inside double quotes and bare text; not inside
73
+ * single quotes). Appending a suffix to a command with unbalanced quotes
74
+ * would land the suffix inside a string literal. */
75
+ function quotesBalanced(cmd) {
76
+ let inSingle = false;
77
+ let inDouble = false;
78
+ for (let i = 0; i < cmd.length; i++) {
79
+ const c = cmd[i];
80
+ if (!inSingle && c === '\\') {
81
+ i++;
82
+ continue;
83
+ }
84
+ if (!inSingle && c === '"')
85
+ inDouble = !inDouble;
86
+ else if (!inDouble && c === "'")
87
+ inSingle = !inSingle;
88
+ }
89
+ return !inSingle && !inDouble;
90
+ }
91
+ /** Structural gate: can a ` 2>&1 | greprag crush ...` suffix be appended
92
+ * without any chance of changing what the command means? Default-deny. */
93
+ function structurallySafe(cmd) {
94
+ if (/[\r\n]/.test(cmd))
95
+ return false; // multiline / heredoc bodies
96
+ if (cmd.includes('|'))
97
+ return false; // existing pipe consumer (also ||)
98
+ // Tolerate `2>&1` (we add it ourselves); any OTHER redirect disqualifies —
99
+ // output already feeds a file/heredoc/process.
100
+ if (/[<>]/.test(cmd.replace(/2>&1/g, '')))
101
+ return false;
102
+ // Subshells, substitution, brace groups — quoting/precedence can't be
103
+ // reasoned about cheaply, so don't try.
104
+ if (/[`(){}]/.test(cmd))
105
+ return false;
106
+ // `&&` chains are fine (pipe binds tighter — only the final stage is
107
+ // wrapped); a leftover `&` means backgrounding. `;` lists stay unwrapped.
108
+ if (cmd.replace(/2>&1/g, '').replace(/&&/g, '').includes('&'))
109
+ return false;
110
+ if (cmd.includes(';'))
111
+ return false;
112
+ if (cmd.endsWith('\\'))
113
+ return false; // line continuation
114
+ if (!quotesBalanced(cmd))
115
+ return false;
116
+ return true;
117
+ }
118
+ // ---------- Classifier (pure) ------------------------------------------------
119
+ /** grep/rg/ag flag clusters that switch output away from match lines
120
+ * (file lists, counts, JSON events, bare matches). */
121
+ const SEARCH_MODE_LONG_FLAGS = new Set([
122
+ '--files-with-matches', '--files-without-match', '--files',
123
+ '--count', '--count-matches', '--json', '--only-matching',
124
+ ]);
125
+ function searchFlagsDisqualify(tokens) {
126
+ for (const tok of tokens) {
127
+ if (!tok.startsWith('-'))
128
+ continue;
129
+ if (tok.startsWith('--')) {
130
+ const bare = tok.split('=')[0];
131
+ if (SEARCH_MODE_LONG_FLAGS.has(bare))
132
+ return true;
133
+ }
134
+ else if (/[lLco]/.test(tok.slice(1))) {
135
+ return true; // -l/-L/-c/-o anywhere in a short cluster
136
+ }
137
+ }
138
+ return false;
139
+ }
140
+ /** First non-flag token = the search pattern, sanitized into a crush
141
+ * `--query` hint: strip quotes, keep word chars/space/dot/dash only
142
+ * (safe inside double quotes), collapse whitespace, cap at 80 chars. */
143
+ function extractSearchQuery(tokens) {
144
+ for (const tok of tokens) {
145
+ if (tok.startsWith('-'))
146
+ continue;
147
+ const unquoted = tok.replace(/^["']|["']$/g, '');
148
+ const clean = unquoted.replace(/[^\w\s.-]/g, ' ').replace(/\s+/g, ' ').trim();
149
+ return clean.slice(0, 80);
150
+ }
151
+ return '';
152
+ }
153
+ /** Test/build runners whose output is log-shaped (errors + traces matter,
154
+ * passing spew doesn't). Watch modes never exit — excluded below. */
155
+ const LOG_RUNNERS = /^(npm test\b|npm run (build|test)[\w:.-]*|npx (jest|vitest|tsc)\b|jest\b|vitest\b|pytest\b|cargo (build|test)\b|go test\b|make\b|tsc\b)/;
156
+ /** Recursion guard — true when any `&&`-segment INVOKES greprag (first token
157
+ * starts with `greprag`: covers greprag, greprag-hook, greprag.cmd). A
158
+ * COMMAND-WORD check, not a substring match: `cd C:/greprag && npm test`
159
+ * merely mentions the path and must stay wrappable, while greprag CLI output
160
+ * (inbox/memory JSON) must always arrive verbatim. Pipes are already
161
+ * rejected structurally, so `| greprag crush` can't reach this point. */
162
+ function invokesGreprag(cmd) {
163
+ return cmd.split('&&').some(seg => {
164
+ const first = seg.trim().split(/\s+/)[0] || '';
165
+ return first === 'greprag' || first.startsWith('greprag-') || first.startsWith('greprag.');
166
+ });
167
+ }
168
+ /** Classify a Bash command. Returns the crush type + query hint when the
169
+ * command should be wrapped, null otherwise (null = don't touch it). */
170
+ function classifyCommand(command) {
171
+ const cmd = command.trim();
172
+ if (!cmd)
173
+ return null;
174
+ if (cmd.includes('# nocrush'))
175
+ return null; // per-command escape hatch
176
+ if (!structurallySafe(cmd))
177
+ return null;
178
+ if (invokesGreprag(cmd))
179
+ return null; // recursion guard
180
+ // Only the FINAL stage of a `&&` chain gets piped (bash precedence),
181
+ // so classify that segment alone: `cd pkg && npm test` wraps as log.
182
+ const segment = cmd.split('&&').pop().trim();
183
+ if (!segment)
184
+ return null;
185
+ // search — grep/rg/ag emitting match lines
186
+ const searchM = segment.match(/^(grep|rg|ag)\s+(.+)$/);
187
+ if (searchM) {
188
+ const tokens = searchM[2].split(/\s+/);
189
+ if (searchFlagsDisqualify(tokens))
190
+ return null;
191
+ return { type: 'search', query: extractSearchQuery(tokens) };
192
+ }
193
+ // log — test/build runners
194
+ if (LOG_RUNNERS.test(segment)) {
195
+ if (/(^|\s)--watch(All)?\b/.test(segment))
196
+ return null; // never exits
197
+ return { type: 'log', query: '' };
198
+ }
199
+ // json — CONSERVATIVE: only commands that explicitly asked for JSON output
200
+ if (/(^|\s)--json(=|\s|$)/.test(segment)) {
201
+ return { type: 'json', query: '' };
202
+ }
203
+ return null;
204
+ }
205
+ // ---------- Rewriter (pure) ---------------------------------------------------
206
+ /** Append the crush pipe. --ccr keeps the original recoverable
207
+ * (`greprag retrieve <hash>`); --stats feeds ~/.greprag/crush-stats.jsonl
208
+ * so `greprag crush stats` can validate real savings. */
209
+ function rewriteCommand(command, decision) {
210
+ let suffix = ` 2>&1 | greprag crush --type ${decision.type} --ccr --stats`;
211
+ if (decision.query)
212
+ suffix += ` --query "${decision.query}"`;
213
+ return command + suffix;
214
+ }
215
+ function parseBoolEnv(raw) {
216
+ return /^(1|true|yes|on)$/i.test(raw || '');
217
+ }
218
+ /** Off-switch resolution: GREPRAG_NO_CRUSH env beats the anchor key
219
+ * `crush_wrap` (read raw, additive — no ProjectAnchor type change; same
220
+ * pattern as the context governor's context_governor key). Default ON. */
221
+ function readPipeWrapConfig(cwd) {
222
+ let enabled = true;
223
+ try {
224
+ const anchor = (0, project_anchor_1.readAnchor)(cwd);
225
+ const raw = JSON.parse(fs.readFileSync(anchor.anchorPath, 'utf-8'));
226
+ if (raw.crush_wrap === false)
227
+ enabled = false;
228
+ }
229
+ catch { /* no anchor file — default stands */ }
230
+ if (parseBoolEnv(process.env.GREPRAG_NO_CRUSH))
231
+ enabled = false;
232
+ return { enabled };
233
+ }
234
+ /** PreToolUse[Bash] — returns the updatedInput envelope when the command
235
+ * qualifies for wrapping, null for silence. NO permissionDecision: the
236
+ * rewritten command still goes through the normal permission flow. */
237
+ function runPipeWrap(input) {
238
+ if (input.tool_name !== 'Bash')
239
+ return null;
240
+ const command = input.tool_input?.command;
241
+ if (typeof command !== 'string' || !command.trim())
242
+ return null;
243
+ if (!readPipeWrapConfig(input.cwd || process.cwd()).enabled)
244
+ return null;
245
+ const decision = classifyCommand(command);
246
+ if (!decision)
247
+ return null;
248
+ return {
249
+ hookSpecificOutput: {
250
+ hookEventName: 'PreToolUse',
251
+ updatedInput: { command: rewriteCommand(command, decision) },
252
+ },
253
+ };
254
+ }
255
+ //# sourceMappingURL=pipe-wrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipe-wrap.js","sourceRoot":"","sources":["../../src/commands/pipe-wrap.ts"],"names":[],"mappings":"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"}
@@ -31,13 +31,12 @@ export interface WatcherPidRecord {
31
31
  pid: number;
32
32
  startedAt: number;
33
33
  ownerPid?: number;
34
- monitorPid?: number;
35
34
  }
36
35
  /** Write the watcher pidfile (supervisor PID), keyed by the 8-hex session short.
37
36
  * `ownerPid` (the owning claude.exe) is recorded so the reaper can test liveness
38
37
  * without enumerating the process table. Best-effort: a failed write only means
39
38
  * `isLocallyArmed` falls back to re-arming, never a crash. */
40
- export declare function writeWatcherPidfile(short: string, pid: number, ownerPid?: number, monitorPid?: number): void;
39
+ export declare function writeWatcherPidfile(short: string, pid: number, ownerPid?: number): void;
41
40
  export declare function removeWatcherPidfile(short: string): void;
42
41
  /** Append-only diagnostic audit log at ~/.greprag/watchers/audit.log. ALWAYS ON
43
42
  * (not env-gated) so a watcher killed by a SIBLING session's SessionStart reap
@@ -46,12 +45,6 @@ export declare function removeWatcherPidfile(short: string): void;
46
45
  * pure observation, never gates a kill or an arm. Cheap (a few lines per
47
46
  * SessionStart + per watcher arm/exit). adr: adr/monitor-resilience.md */
48
47
  export declare function watcherAuditLog(event: string): void;
49
- /** True iff `pid` is a live process. `process.kill(pid, 0)` sends no signal —
50
- * it only probes existence. EPERM means the process exists but is owned by
51
- * another user (still alive); ESRCH means gone. Exported for the supervisor's
52
- * monitor-pid probe (one syscall per tick — never a process-table snapshot,
53
- * per the 2026-06-05b lesson). */
54
- export declare function pidAlive(pid: number): boolean;
55
48
  /** Local-first arm check: is there a live watcher PROCESS for this session on
56
49
  * THIS machine? This is ground truth for "armed" — the consumer (the Monitor
57
50
  * task) is local, so a live local pidfile means a live, consumed watcher.
@@ -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;