@claudexor/core 3.0.4 → 3.1.1

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 (45) hide show
  1. package/dist/answer-assembly.d.ts +17 -1
  2. package/dist/answer-assembly.d.ts.map +1 -1
  3. package/dist/answer-assembly.js +36 -10
  4. package/dist/answer-assembly.js.map +1 -1
  5. package/dist/effort.d.ts +54 -12
  6. package/dist/effort.d.ts.map +1 -1
  7. package/dist/effort.js +60 -39
  8. package/dist/effort.js.map +1 -1
  9. package/dist/env-scope.d.ts +1 -1
  10. package/dist/env-scope.d.ts.map +1 -1
  11. package/dist/env-scope.js +2 -2
  12. package/dist/env-scope.js.map +1 -1
  13. package/dist/errors.d.ts +11 -0
  14. package/dist/errors.d.ts.map +1 -1
  15. package/dist/errors.js +11 -0
  16. package/dist/errors.js.map +1 -1
  17. package/dist/inactivity.d.ts +7 -14
  18. package/dist/inactivity.d.ts.map +1 -1
  19. package/dist/inactivity.js +97 -10
  20. package/dist/inactivity.js.map +1 -1
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/native/claudexor-process-identity +0 -0
  26. package/dist/proc.d.ts +53 -0
  27. package/dist/proc.d.ts.map +1 -1
  28. package/dist/proc.js +150 -42
  29. package/dist/proc.js.map +1 -1
  30. package/dist/process-identity.d.ts.map +1 -1
  31. package/dist/process-identity.js +17 -7
  32. package/dist/process-identity.js.map +1 -1
  33. package/dist/process-tree.d.ts +116 -0
  34. package/dist/process-tree.d.ts.map +1 -0
  35. package/dist/process-tree.js +258 -0
  36. package/dist/process-tree.js.map +1 -0
  37. package/dist/runloop.d.ts +5 -0
  38. package/dist/runloop.d.ts.map +1 -1
  39. package/dist/runloop.js +41 -0
  40. package/dist/runloop.js.map +1 -1
  41. package/dist/runtime-env.d.ts +57 -3
  42. package/dist/runtime-env.d.ts.map +1 -1
  43. package/dist/runtime-env.js +187 -10
  44. package/dist/runtime-env.js.map +1 -1
  45. package/package.json +3 -3
package/dist/index.d.ts CHANGED
@@ -21,5 +21,6 @@ export * from "./instructions.js";
21
21
  export * from "./browser-mcp.js";
22
22
  export * from "./process-identity.js";
23
23
  export * from "./process-group.js";
24
+ export * from "./process-tree.js";
24
25
  export * from "./isolation-locator.js";
25
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -21,5 +21,6 @@ export * from "./instructions.js";
21
21
  export * from "./browser-mcp.js";
22
22
  export * from "./process-identity.js";
23
23
  export * from "./process-group.js";
24
+ export * from "./process-tree.js";
24
25
  export * from "./isolation-locator.js";
25
26
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
package/dist/proc.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { type ProcessTreeTerminationOutcome, type ReapProcessTreeOptions } from "./process-tree.js";
2
+ import { type ProcessGroupService } from "./process-group.js";
1
3
  export interface SpawnOptions {
2
4
  cwd?: string;
3
5
  env?: Record<string, string | null | undefined>;
@@ -13,6 +15,41 @@ export interface SpawnOptions {
13
15
  cancelSignal?: NodeJS.Signals;
14
16
  /** Hard-kill delay after cancelSignal when the child ignores cooperative stop. */
15
17
  cancelKillDelayMs?: number;
18
+ /**
19
+ * Overall bound (ms) on the whole-tree death proof after a cancel. Past it the
20
+ * generator returns and `onTerminationUnconfirmed` fires rather than hanging.
21
+ * Defaults to `cancelKillDelayMs + 4000`.
22
+ */
23
+ cancelDeadlineMs?: number;
24
+ /**
25
+ * Fail-closed disclosure (QA-027) for a consumer that broke the stream EARLY
26
+ * (it is no longer iterating, so the typed `termination_unconfirmed` event
27
+ * cannot be delivered): called once when a proven-alive descendant group
28
+ * survives the bounded TERM->KILL escalation. An actively-iterating consumer
29
+ * receives the typed `termination_unconfirmed` ProcEvent instead — the primary,
30
+ * non-optional disclosure channel.
31
+ */
32
+ onTerminationUnconfirmed?: (info: {
33
+ rootPid: number;
34
+ survivors: number[];
35
+ unresolved: Array<{
36
+ pgid: number;
37
+ reason: string;
38
+ }>;
39
+ }) => void;
40
+ /**
41
+ * Injection seam for the whole-tree death proof (deterministic tests of the
42
+ * termination_unconfirmed disclosure). Defaults to the real `reapProcessTree`.
43
+ * Production callers never set this.
44
+ */
45
+ reap?: (opts: ReapProcessTreeOptions) => Promise<ProcessTreeTerminationOutcome>;
46
+ /**
47
+ * Injection seam for the identity-proven process-group service used by the
48
+ * direct-group cancel belt (deterministic tests of unknown-capture / stale-
49
+ * identity refusal). Defaults to the shared `defaultProcessGroupService`.
50
+ * Production callers never set this.
51
+ */
52
+ processGroups?: ProcessGroupService;
16
53
  /** Runtime abort signal for active daemon/orchestrator cancellation. */
17
54
  abortSignal?: AbortSignal;
18
55
  /**
@@ -41,6 +78,22 @@ export type ProcEvent = {
41
78
  type: "exit";
42
79
  code: number | null;
43
80
  signal: NodeJS.Signals | null;
81
+ }
82
+ /**
83
+ * QA-027 fail-closed death-proof disclosure: the process was cancelled and the
84
+ * whole-tree reap could NOT confirm death — a descendant group is proven-alive
85
+ * (`survivors`) or its leader identity was unreadable (`unresolved`). Emitted
86
+ * once, AFTER the terminal `exit`, so an actively-iterating consumer terminalizes
87
+ * over a typed unconfirmed-death fact instead of a silent clean cancel.
88
+ */
89
+ | {
90
+ type: "termination_unconfirmed";
91
+ rootPid: number;
92
+ survivors: number[];
93
+ unresolved: Array<{
94
+ pgid: number;
95
+ reason: string;
96
+ }>;
44
97
  };
45
98
  /**
46
99
  * Spawn a process and stream stdout/stderr lines as they arrive, ending with an
@@ -1 +1 @@
1
- {"version":3,"file":"proc.d.ts","sourceRoot":"","sources":["../src/proc.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAChD;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IAC9B,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wEAAwE;IACxE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,IAAI,CAAC;CACpC;AAED,iEAAiE;AACjE,MAAM,WAAW,UAAU;IACzB,6EAA6E;IAC7E,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,0EAA0E;IAC1E,GAAG,IAAI,IAAI,CAAC;CACb;AAED,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;CAAE,CAAC;AAEzE;;;;GAIG;AACH,wBAAuB,YAAY,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,YAAiB,GACtB,cAAc,CAAC,SAAS,CAAC,CAkJ3B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;CAAO,GAChE,MAAM,GAAG,IAAI,CAcf;AAED,mFAAmF;AACnF,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,aAAa,CAAC,CAcxB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,aAAa,CAAC,CA4ExB;AAED,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,iBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CAcnF"}
1
+ {"version":3,"file":"proc.d.ts","sourceRoot":"","sources":["../src/proc.ts"],"names":[],"mappings":"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"}
package/dist/proc.js CHANGED
@@ -2,6 +2,8 @@ import { spawn } from "node:child_process";
2
2
  import { registerChildProcess, unregisterChildProcess } from "./process-registry.js";
3
3
  import { createInterface } from "node:readline";
4
4
  import { composeBaseEnv } from "./env-scope.js";
5
+ import { reapProcessTree, } from "./process-tree.js";
6
+ import { defaultProcessGroupService, } from "./process-group.js";
5
7
  /**
6
8
  * Spawn a process and stream stdout/stderr lines as they arrive, ending with an
7
9
  * `exit` event. Throws (rejects the iterator) if the binary cannot be spawned
@@ -27,23 +29,33 @@ export async function* spawnProcess(cmd, args, opts = {}) {
27
29
  });
28
30
  if (typeof child.pid === "number")
29
31
  registerChildProcess(child.pid, cmd);
30
- // Signal the child's process GROUP (negative pid) so grandchildren die too;
31
- // fall back to the direct child if the group is already gone.
32
+ // Seed the DIRECT group identity NOW, while the child is provably alive and is
33
+ // its own group leader (detached => pgid == pid). If the direct child later
34
+ // exits before the cancel-time tree snapshot but a grandchild survives in the
35
+ // SAME pgid, that pgid is no longer reachable by ppid BFS (its chain to the
36
+ // root is gone) and would never be enumerated — so reapProcessTree could
37
+ // falsely report `confirmed` (round-2 #3). A seeded handle keeps the direct
38
+ // group tracked (and raw-probeable) until it is proven empty.
39
+ const groupService = opts.processGroups ?? defaultProcessGroupService;
40
+ let directGroupHandle;
41
+ if (typeof child.pid === "number") {
42
+ const capture = groupService.captureLeader(child.pid);
43
+ if (capture.status === "known")
44
+ directGroupHandle = capture.handle;
45
+ }
46
+ // Identity-proven-only direct-group belt (round-4 #1). A raw
47
+ // `process.kill(-child.pid, signal)` — including the delayed SIGKILL fallback —
48
+ // could signal an UNRELATED group if the child exited and its PID/PGID was
49
+ // reused before the escalation fires. So we signal ONLY through the captured,
50
+ // identity-verified handle: `ProcessGroupService.signal` re-checks the recorded
51
+ // leader identity and refuses (never signalling) when the group is gone,
52
+ // recycled, or unreadable. When capture never succeeded (no proven handle) we
53
+ // do not signal at all — the whole-tree reap remains the fail-closed disclosure
54
+ // channel (it reports `unconfirmed` for a group it cannot identity-prove).
32
55
  const killTree = (signal) => {
33
- try {
34
- if (typeof child.pid === "number")
35
- process.kill(-child.pid, signal);
36
- else
37
- child.kill(signal);
38
- }
39
- catch {
40
- try {
41
- child.kill(signal);
42
- }
43
- catch {
44
- /* already gone */
45
- }
46
- }
56
+ if (!directGroupHandle)
57
+ return;
58
+ groupService.signal(directGroupHandle, signal);
47
59
  };
48
60
  // A child can exit before/while stdin is written (e.g. a failing `git apply`).
49
61
  // Without a handler the resulting EPIPE becomes an unhandled 'error' event and
@@ -111,33 +123,87 @@ export async function* spawnProcess(cmd, args, opts = {}) {
111
123
  }
112
124
  });
113
125
  let timer;
114
- if (opts.timeoutMs && opts.timeoutMs > 0) {
115
- timer = setTimeout(() => killTree("SIGKILL"), opts.timeoutMs);
116
- }
117
126
  let killTimer;
118
- const requestCancel = () => {
119
- if (finished)
120
- return;
121
- killTree(opts.cancelSignal ?? "SIGINT");
122
- const killDelay = opts.cancelKillDelayMs ?? 1_000;
127
+ // The whole-tree death proof (QA-027). A vendor tool can setsid into a NEW
128
+ // process group and reparent to pid 1; group-killing only the direct child
129
+ // leaks it. On the FIRST cancel we snapshot the tree while its ppid chain is
130
+ // still intact, then reap every owned group (TERM -> bounded KILL) with the
131
+ // identity-proven ProcessGroupService and probe to death. The generator's
132
+ // finally awaits this so an AWAITING consumer only observes completion once
133
+ // the tree is dead (or bounded-unconfirmed).
134
+ let cancelReap = null;
135
+ const requestCancel = (coopSignal, graceOverrideMs) => {
136
+ const coop = coopSignal ?? opts.cancelSignal ?? "SIGINT";
137
+ const killDelay = graceOverrideMs ?? opts.cancelKillDelayMs ?? 1_000;
138
+ // Kick the identity-proven whole-tree reap FIRST: reapProcessTree captures
139
+ // the process tree AND cooperatively signals every owned group
140
+ // synchronously (before its first await). Snapshotting before the direct
141
+ // group is torn down is what catches an ESCAPED descendant group while its
142
+ // ppid chain is still intact — the QA-027 orphan.
143
+ if (!cancelReap && typeof child.pid === "number") {
144
+ cancelReap = (opts.reap ?? reapProcessTree)({
145
+ rootPid: child.pid,
146
+ cooperativeSignal: coop,
147
+ graceMs: killDelay,
148
+ deadlineMs: opts.cancelDeadlineMs ?? killDelay + 4_000,
149
+ // Seed the direct group so a surviving same-pgid grandchild is proven
150
+ // dead even if the direct child's ppid chain is already gone, and bind
151
+ // the reap to the root's original identity so a mid-deadline PID reuse
152
+ // cannot enroll an unrelated replacement tree (round-4 #2).
153
+ ...(directGroupHandle
154
+ ? { seedHandles: [directGroupHandle], rootIdentity: directGroupHandle.leader }
155
+ : {}),
156
+ });
157
+ }
158
+ // Direct-group belt: an identity-verified cooperative nudge + SIGKILL
159
+ // escalation to the immediate child group (no proven handle = no signal;
160
+ // the whole-tree reap stays the fail-closed disclosure channel).
161
+ killTree(coop);
123
162
  if (killDelay >= 0 && !killTimer) {
124
- // Escalate to SIGKILL of the whole group if the cooperative signal is
125
- // ignored. NOT unref'd: the escalation must actually fire (a prior
126
- // unref let an ignoring child outlive the parent). It is cleared on a
127
- // clean finish below.
163
+ // NOT unref'd: the escalation must actually fire (a prior unref let an
164
+ // ignoring child outlive the parent).
128
165
  killTimer = setTimeout(() => {
129
166
  if (!finished)
130
167
  killTree("SIGKILL");
131
168
  }, killDelay);
132
169
  }
133
170
  };
171
+ // A wall-clock timeout is a hard stop: reap the whole tree immediately
172
+ // (SIGKILL, no grace) and still prove it dead.
173
+ if (opts.timeoutMs && opts.timeoutMs > 0) {
174
+ timer = setTimeout(() => requestCancel("SIGKILL", 0), opts.timeoutMs);
175
+ }
176
+ const onAbort = () => requestCancel();
134
177
  const abortSignal = opts.abortSignal;
135
178
  if (abortSignal) {
136
179
  if (abortSignal.aborted)
137
180
  requestCancel();
138
181
  else
139
- abortSignal.addEventListener("abort", requestCancel, { once: true });
182
+ abortSignal.addEventListener("abort", onAbort, { once: true });
140
183
  }
184
+ // Memoized whole-tree death proof: `cancelReap` is assigned inside the
185
+ // requestCancel closure, so narrow it through an explicitly-typed read (CFA
186
+ // otherwise collapses it to null). Awaited exactly once — from the normal
187
+ // completion path (so the typed event can be yielded to an active consumer) or
188
+ // the early-break finally (consumer gone → the optional callback fallback).
189
+ let reapSettled = false;
190
+ let reapOutcome = null;
191
+ let disclosedUnconfirmed = false;
192
+ const settleReap = async () => {
193
+ if (reapSettled)
194
+ return reapOutcome;
195
+ reapSettled = true;
196
+ const pendingReap = cancelReap;
197
+ if (pendingReap) {
198
+ try {
199
+ reapOutcome = await pendingReap;
200
+ }
201
+ catch {
202
+ /* the reap is best-effort death proof; never throw out of cleanup */
203
+ }
204
+ }
205
+ return reapOutcome;
206
+ };
141
207
  try {
142
208
  for (;;) {
143
209
  if (queue.length > 0) {
@@ -147,21 +213,52 @@ export async function* spawnProcess(cmd, args, opts = {}) {
147
213
  if (spawnError)
148
214
  throw spawnError;
149
215
  if (finished)
150
- return;
216
+ break;
151
217
  await new Promise((resolve) => {
152
218
  wake = resolve;
153
219
  });
154
220
  }
221
+ // Death proof (QA-027): the process closed, but an ESCAPED descendant group
222
+ // may survive. Await the whole-tree reap and DISCLOSE an unconfirmed survival
223
+ // as a typed event on the active stream (not merely the optional callback),
224
+ // so a consumer that terminalizes on our completion cannot silently do so over
225
+ // a proven-alive survivor or an unreadable-identity group.
226
+ if (killTimer)
227
+ clearTimeout(killTimer);
228
+ const outcome = await settleReap();
229
+ if (outcome?.state === "unconfirmed" && typeof child.pid === "number") {
230
+ disclosedUnconfirmed = true;
231
+ yield {
232
+ type: "termination_unconfirmed",
233
+ rootPid: child.pid,
234
+ survivors: outcome.survivors,
235
+ unresolved: outcome.unresolved,
236
+ };
237
+ }
155
238
  }
156
239
  finally {
157
240
  if (timer)
158
241
  clearTimeout(timer);
159
- abortSignal?.removeEventListener("abort", requestCancel);
242
+ abortSignal?.removeEventListener("abort", onAbort);
160
243
  if (!finished) {
244
+ // Consumer broke early (no abort/timeout): cancel and reap the tree.
161
245
  requestCancel();
162
246
  }
163
247
  if (finished && killTimer)
164
248
  clearTimeout(killTimer);
249
+ // Early-break path: the consumer is no longer iterating, so the typed
250
+ // termination_unconfirmed event above could not be delivered — fall back to
251
+ // the optional disclosure callback (only when it was not already yielded).
252
+ const outcome = await settleReap();
253
+ if (!disclosedUnconfirmed &&
254
+ outcome?.state === "unconfirmed" &&
255
+ typeof child.pid === "number") {
256
+ opts.onTerminationUnconfirmed?.({
257
+ rootPid: child.pid,
258
+ survivors: outcome.survivors,
259
+ unresolved: outcome.unresolved,
260
+ });
261
+ }
165
262
  rlOut.close();
166
263
  rlErr.close();
167
264
  }
@@ -203,10 +300,12 @@ export async function runCapture(cmd, args, opts = {}) {
203
300
  stdout += ev.line + "\n";
204
301
  else if (ev.type === "stderr")
205
302
  stderr += ev.line + "\n";
206
- else {
303
+ else if (ev.type === "exit") {
207
304
  code = ev.code;
208
305
  signal = ev.signal;
209
306
  }
307
+ // termination_unconfirmed is a disclosure-only event; runCapture callers do
308
+ // not carry cancellation death-proof state (they run to completion).
210
309
  }
211
310
  return { code, signal, stdout, stderr };
212
311
  }
@@ -234,20 +333,29 @@ export async function runCaptureRaw(cmd, args, opts = {}) {
234
333
  });
235
334
  if (typeof child.pid === "number")
236
335
  registerChildProcess(child.pid, cmd);
336
+ // Identity-proven-only group signalling for capture children too (round-4 #1
337
+ // residue): a raw `process.kill(-pid)` after the short-lived capture child
338
+ // exited could hit an unrelated recycled group. Group signals go only through
339
+ // the identity-verified handle captured at spawn; without a proven handle we
340
+ // fall back to `child.kill` — the ChildProcess OBJECT is pinned to this exact
341
+ // process by Node, so a direct-child signal can never target a recycled PID.
342
+ const captureGroupService = opts.processGroups ?? defaultProcessGroupService;
343
+ let captureGroupHandle;
344
+ if (typeof child.pid === "number") {
345
+ const capture = captureGroupService.captureLeader(child.pid);
346
+ if (capture.status === "known")
347
+ captureGroupHandle = capture.handle;
348
+ }
237
349
  const killTree = (signal) => {
350
+ if (captureGroupHandle) {
351
+ captureGroupService.signal(captureGroupHandle, signal);
352
+ return;
353
+ }
238
354
  try {
239
- if (typeof child.pid === "number")
240
- process.kill(-child.pid, signal);
241
- else
242
- child.kill(signal);
355
+ child.kill(signal);
243
356
  }
244
357
  catch {
245
- try {
246
- child.kill(signal);
247
- }
248
- catch {
249
- /* already gone */
250
- }
358
+ /* already gone */
251
359
  }
252
360
  };
253
361
  child.stdin.on("error", () => { });
package/dist/proc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"proc.js","sourceRoot":"","sources":["../src/proc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AA0ChD;;;;GAIG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,YAAY,CACjC,GAAW,EACX,IAAc,EACd,OAAqB,EAAE;IAEvB,MAAM,GAAG,GAAsB,cAAc,CAAC,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC,CAAC;IAClF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;;YACtD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;QAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,GAAG;QACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,0EAA0E;QAC1E,2EAA2E;QAC3E,uEAAuE;QACvE,yDAAyD;QACzD,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;QAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAExE,4EAA4E;IAC5E,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,CAAC,MAAsB,EAAQ,EAAE;QAChD,IAAI,CAAC;YACH,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;;gBAC/D,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,kBAAkB;YACpB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAC/E,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE;gBACtB,IAAI,CAAC;oBACH,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;gBAAC,MAAM,CAAC;oBACP,wDAAwD;gBAC1D,CAAC;YACH,CAAC;YACD,GAAG,EAAE,GAAG,EAAE;gBACR,IAAI,CAAC;oBACH,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACpB,CAAC;gBAAC,MAAM,CAAC;oBACP,oBAAoB;gBACtB,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,IAAI,IAAI,GAAwB,IAAI,CAAC;IACrC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAiB,IAAI,CAAC;IAEpC,MAAM,IAAI,GAAG,CAAC,CAAY,EAAQ,EAAE;QAClC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;YACP,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACvD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3D,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE3D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACxB,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;YAAE,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrE,UAAU,GAAG,GAAG,CAAC;QACjB,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;YACP,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACjC,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;YAAE,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACrC,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;YACP,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,KAAiC,CAAC;IACtC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QACzC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,SAAqC,CAAC;IAC1C,MAAM,aAAa,GAAG,GAAS,EAAE;QAC/B,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC;QAClD,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,sEAAsE;YACtE,mEAAmE;YACnE,sEAAsE;YACtE,sBAAsB;YACtB,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,IAAI,CAAC,QAAQ;oBAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,WAAW,CAAC,OAAO;YAAE,aAAa,EAAE,CAAC;;YACpC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,CAAC;QACH,SAAS,CAAC;YACR,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,KAAK,CAAC,KAAK,EAAe,CAAC;gBACjC,SAAS;YACX,CAAC;YACD,IAAI,UAAU;gBAAE,MAAM,UAAU,CAAC;YACjC,IAAI,QAAQ;gBAAE,OAAO;YACrB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,GAAG,OAAO,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,WAAW,EAAE,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;QAClB,CAAC;QACD,IAAI,QAAQ,IAAI,SAAS;YAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACnD,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AASD;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAc,EACd,MAAc,EACd,OAA+D,EAAE;IAEjE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAA4B;QACvC,CAAC,QAAQ,EAAE,MAAM,CAAC;QAClB,CAAC,QAAQ,EAAE,MAAM,CAAC;KACnB,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,OAAO,GAAG,KAAK,KAAK,KAAK,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAW,EACX,IAAc,EACd,OAAqB,EAAE;IAEvB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,MAAM,GAA0B,IAAI,CAAC;IACzC,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;aAC9C,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;aACnD,CAAC;YACJ,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;YACf,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC1C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,IAAc,EACd,OAAqB,EAAE;IAEvB,MAAM,GAAG,GAAsB,cAAc,CAAC,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC,CAAC;IAClF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;;YACtD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;QAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,GAAG;QACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;QAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,CAAC,MAAsB,EAAQ,EAAE;QAChD,IAAI,CAAC;YACH,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;;gBAC/D,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,kBAAkB;YACpB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAElB,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7D,IAAI,SAAqC,CAAC;IAC1C,MAAM,aAAa,GAAG,GAAS,EAAE;QAC/B,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC;QAClD,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;YAC7D,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IACF,IAAI,KAAiC,CAAC;IACtC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QACzC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,WAAW,CAAC,OAAO;YAAE,aAAa,EAAE,CAAC;;YACpC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,OAAO,CACtC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxB,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;oBAAE,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrE,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACzB,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;oBAAE,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QACF,OAAO;YACL,IAAI;YACJ,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YACpD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;SACrD,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,SAAS;YAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACvC,WAAW,EAAE,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAWD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,UAA6B,EAAE;IAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,OAAO,EAAE,KAAK,CAAC;YAAE,OAAO;QAC5B,IAAI,CAAC;YACH,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;QAC9C,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,CAAC;IAChC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAChB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"proc.js","sourceRoot":"","sources":["../src/proc.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"process-identity.d.ts","sourceRoot":"","sources":["../src/process-identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-identity.d.ts","sourceRoot":"","sources":["../src/process-identity.ts"],"names":[],"mappings":"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"}
@@ -119,14 +119,24 @@ export function isKnownProcessIdentity(value) {
119
119
  return false;
120
120
  }
121
121
  function bundledDarwinHelperPath() {
122
- const candidate = fileURLToPath(new URL("./native/claudexor-process-identity", import.meta.url));
123
- try {
124
- accessSync(candidate, constants.X_OK);
125
- return candidate;
126
- }
127
- catch {
128
- return null;
122
+ // The helper is built into `dist/native`. Resolve it whether this module runs
123
+ // from `dist` (production) or `src` (tsx/vitest) — the `dist` fallback keeps
124
+ // process-identity usable under the src-run test harness.
125
+ const candidates = [
126
+ new URL("./native/claudexor-process-identity", import.meta.url),
127
+ new URL("../dist/native/claudexor-process-identity", import.meta.url),
128
+ ];
129
+ for (const url of candidates) {
130
+ const candidate = fileURLToPath(url);
131
+ try {
132
+ accessSync(candidate, constants.X_OK);
133
+ return candidate;
134
+ }
135
+ catch {
136
+ /* try the next layout */
137
+ }
129
138
  }
139
+ return null;
130
140
  }
131
141
  function executeDarwinHelper(path, pid) {
132
142
  const result = spawnSync(path, ["--pid", String(pid)], {
@@ -1 +1 @@
1
- {"version":3,"file":"process-identity.js","sourceRoot":"","sources":["../src/process-identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA8DzC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEnG,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,OAAO,KAAK,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,OAAO,CACd,GAAW,EACX,QAAgB,EAChB,MAAoC;IAEpC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACtD,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,WAAmB;IACjE,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC;QAAE,OAAO,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAC5F,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,UAAU,IAAI,CAAC,IAAI,OAAO,IAAI,UAAU,GAAG,CAAC;QAC9C,OAAO,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC3C,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,WAAW,EAAE,CAAC;QACvE,OAAO,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QAC5D,OAAO,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,eAAe,GAAG,GAAG;SACxB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;SAClB,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC,CAAC;IACf,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IACvC,IACE,CAAC,KAAK;QACN,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC;QAChC,CAAC,YAAY;QACb,CAAC,iBAAiB,CAAC,YAAY,CAAC;QAChC,CAAC,UAAU;QACX,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAC9B,CAAC;QACD,OAAO,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO;QACL,MAAM,EAAE,OAAO;QACf,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,SAAS,UAAU,EAAE;QACjC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,uBAAuB,CAAC,GAAW,EAAE,WAAmB;IACtE,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC;QAAE,OAAO,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC7F,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC5C,OAAO,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,+BAA+B,EAAE,CAAC;QACzE,OAAO,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IACtD,IACE,CAAC,OAAO;QACR,CAAC,iBAAiB,CAAC,OAAO,CAAC;QAC3B,MAAM,CAAC,OAAO,CAAC,KAAK,WAAW;QAC/B,CAAC,QAAQ;QACT,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QAC5B,CAAC,OAAO;QACR,CAAC,iBAAiB,CAAC,OAAO,CAAC;QAC3B,CAAC,MAAM;QACP,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAC1B,CAAC;QACD,OAAO,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO;QACL,MAAM,EAAE,OAAO;QACf,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,UAAU,OAAO,IAAI,MAAM,EAAE;QACzC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,QAA8B,EAC9B,QAAyB;IAEzB,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG;QAClC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;QACvC,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QACnC,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU;QAC3C,QAAQ,CAAC,cAAc,KAAK,QAAQ,CAAC,cAAc;QACnD,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,WAAW,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,SAAS,GAAG,KAAsC,CAAC;IACzD,IACE,SAAS,CAAC,MAAM,KAAK,OAAO;QAC5B,CAAC,oBAAoB,CAAC,SAAS,CAAC,GAAa,CAAC;QAC9C,CAAC,oBAAoB,CAAC,SAAS,CAAC,cAAwB,CAAC;QAEzD,OAAO,KAAK,CAAC;IACf,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACnC,OAAO,CACL,SAAS,CAAC,MAAM,KAAK,aAAa;YAClC,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ;YACxC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CACrD,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,CACL,SAAS,CAAC,MAAM,KAAK,cAAc;YACnC,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ;YACxC,mCAAmC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB;IAC9B,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,qCAAqC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACjG,IAAI,CAAC;QACH,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,GAAW;IACpD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;QACrD,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,EAAE,GAAG,IAAI;QACpB,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;KACvD,CAAC,CAAC;IACH,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,SAAS,EAAG,MAAM,CAAC,KAA2C,EAAE,IAAI;KACrE,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,sBAAsB;IAChB,QAAQ,CAAS;IACjB,OAAO,CAAS;IAChB,YAAY,CAA2B;IACvC,gBAAgB,CAAgB;IAChC,eAAe,CAAuD;IAC/E,UAAU,CAA8B;IAEhD,YAAY,UAAyC,EAAE;QACrD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,gBAAgB;YACnB,OAAO,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAChG,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,mBAAmB,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,GAAW;QACd,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC5D,OAAO,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI;QACF,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEO,SAAS,CAAC,GAAW;QAC3B,IAAI,CAAC;YACH,OAAO,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,KAA+B,EAAE,IAAI,CAAC;YACpD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO;gBACvC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;YACvD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO;gBAAE,OAAO,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;YAC7F,OAAO,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,GAAW;QAC5B,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAChF,IAAI,SAAgC,CAAC;QACrC,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,SAAS,CAAC,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzE,OAAO,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAClF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAC/E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC3E,OAAO,uBAAuB,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,IAAI,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"process-identity.js","sourceRoot":"","sources":["../src/process-identity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import { type ProcessGroupHandle, type ProcessGroupService } from "./process-group.js";
2
+ import { type KnownProcessIdentity, type ProcessIdentityReader } from "./process-identity.js";
3
+ export interface ProcessTreeNode {
4
+ pid: number;
5
+ ppid: number;
6
+ pgid: number;
7
+ }
8
+ export interface ProcessTreeReader {
9
+ /** All live processes as {pid,ppid,pgid}; [] when unreadable (fail-closed). */
10
+ snapshot(): ProcessTreeNode[];
11
+ }
12
+ /**
13
+ * Read the live process table via `ps` (POSIX, present on both darwin and
14
+ * linux). C locale, bounded time/buffer, no shell. Any failure yields [] — the
15
+ * caller then falls back to the direct-group signal it already sends, and a
16
+ * genuinely alive-but-invisible group surfaces as `unconfirmed`.
17
+ */
18
+ export declare function readProcessTable(run?: (cmd: string, args: string[]) => {
19
+ status: number | null;
20
+ stdout: string;
21
+ }): ProcessTreeNode[];
22
+ export declare const defaultProcessTreeReader: ProcessTreeReader;
23
+ /**
24
+ * Distinct process-group ids of `rootPid` and every transitive descendant, per
25
+ * a tree snapshot. BFS over ppid so a grandchild that escaped into its own
26
+ * pgid is still discovered — as long as the snapshot was taken before its
27
+ * parent chain was torn down.
28
+ */
29
+ export declare function descendantProcessGroupIds(rootPid: number, nodes: ProcessTreeNode[]): number[];
30
+ export interface CapturedProcessGroups {
31
+ handles: ProcessGroupHandle[];
32
+ /** Live pgids whose leader identity could not be proven (fail-closed). */
33
+ unresolved: Array<{
34
+ pgid: number;
35
+ reason: string;
36
+ }>;
37
+ }
38
+ /**
39
+ * Identity-proven handles for every process group in `rootPid`'s tree. A pgid
40
+ * whose leader is gone/recycled/unreadable lands in `unresolved` — we never
41
+ * signal an unproven group.
42
+ */
43
+ export declare function captureProcessTreeGroups(rootPid: number, deps?: {
44
+ tree?: ProcessTreeReader;
45
+ groups?: ProcessGroupService;
46
+ probeGroupAlive?: (pgid: number) => boolean;
47
+ }): CapturedProcessGroups;
48
+ export type ProcessTreeTerminationOutcome =
49
+ /** Every owned process group was proven empty (ESRCH). */
50
+ {
51
+ state: "confirmed";
52
+ pgids: number[];
53
+ }
54
+ /**
55
+ * At least one group was still alive (or unprovable) after the bounded
56
+ * escalation ladder. `survivors` were proven-nonempty; `unresolved` could not
57
+ * be identity-verified so were never signalled.
58
+ */
59
+ | {
60
+ state: "unconfirmed";
61
+ survivors: number[];
62
+ unresolved: Array<{
63
+ pgid: number;
64
+ reason: string;
65
+ }>;
66
+ };
67
+ export interface ReapProcessTreeOptions {
68
+ /** The direct child pid; its whole descendant tree is reaped. */
69
+ rootPid: number;
70
+ /**
71
+ * The root's ORIGINAL identity, captured while it was provably alive (round-4
72
+ * #2). The fixed-point rescan discovers descendants from the numeric `rootPid`;
73
+ * if the child exits and its PID is reused mid-deadline, a rescan would capture
74
+ * an UNRELATED replacement tree. Binding the root identity stops NEW-descendant
75
+ * discovery the moment the root goes missing or its identity differs — already
76
+ * captured groups keep being probed to death. Absent (legacy callers): numeric
77
+ * behavior, no re-verification.
78
+ */
79
+ rootIdentity?: KnownProcessIdentity;
80
+ /** Reads live process identity for the root re-verification (default real). */
81
+ identity?: ProcessIdentityReader;
82
+ /** Handles captured elsewhere (e.g. the direct child at spawn) to include. */
83
+ seedHandles?: ProcessGroupHandle[];
84
+ /** Cooperative signal first (default SIGTERM). */
85
+ cooperativeSignal?: NodeJS.Signals;
86
+ /** Grace before SIGKILL escalation (default 1000ms). */
87
+ graceMs?: number;
88
+ /** Overall bound before returning `unconfirmed` (default graceMs + 4000). */
89
+ deadlineMs?: number;
90
+ /** Probe/re-scan cadence (default 100ms). */
91
+ probeIntervalMs?: number;
92
+ groups?: ProcessGroupService;
93
+ tree?: ProcessTreeReader;
94
+ sleep?: (ms: number) => Promise<void>;
95
+ now?: () => number;
96
+ /** Disclosed once per newly captured group (e.g. record for crash-GC). */
97
+ onCapture?: (handle: ProcessGroupHandle) => void;
98
+ /**
99
+ * Raw liveness probe for a pgid whose leader identity could NOT be proven
100
+ * (never a kill — signal 0 only). ESRCH -> gone (returns false); anything
101
+ * else -> keep waiting (fail-closed true). Lets a group we cannot safely
102
+ * signal still clear once it actually dies, instead of pinning the deadline.
103
+ */
104
+ probeGroupAlive?: (pgid: number) => boolean;
105
+ }
106
+ /**
107
+ * Reap `rootPid`'s whole process tree and PROVE it dead. Cooperative signal ->
108
+ * bounded grace -> SIGKILL, re-scanning for groups that fork/re-group during
109
+ * the race (fixed point) until every group probes empty or the deadline lapses.
110
+ *
111
+ * The initial capture runs synchronously (before the first await) so callers
112
+ * that invoke this the instant a cancel fires snapshot the tree while its ppid
113
+ * chain is still intact.
114
+ */
115
+ export declare function reapProcessTree(opts: ReapProcessTreeOptions): Promise<ProcessTreeTerminationOutcome>;
116
+ //# sourceMappingURL=process-tree.d.ts.map