@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.
- package/dist/answer-assembly.d.ts +17 -1
- package/dist/answer-assembly.d.ts.map +1 -1
- package/dist/answer-assembly.js +36 -10
- package/dist/answer-assembly.js.map +1 -1
- package/dist/effort.d.ts +54 -12
- package/dist/effort.d.ts.map +1 -1
- package/dist/effort.js +60 -39
- package/dist/effort.js.map +1 -1
- package/dist/env-scope.d.ts +1 -1
- package/dist/env-scope.d.ts.map +1 -1
- package/dist/env-scope.js +2 -2
- package/dist/env-scope.js.map +1 -1
- package/dist/errors.d.ts +11 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +11 -0
- package/dist/errors.js.map +1 -1
- package/dist/inactivity.d.ts +7 -14
- package/dist/inactivity.d.ts.map +1 -1
- package/dist/inactivity.js +97 -10
- package/dist/inactivity.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/native/claudexor-process-identity +0 -0
- package/dist/proc.d.ts +53 -0
- package/dist/proc.d.ts.map +1 -1
- package/dist/proc.js +150 -42
- package/dist/proc.js.map +1 -1
- package/dist/process-identity.d.ts.map +1 -1
- package/dist/process-identity.js +17 -7
- package/dist/process-identity.js.map +1 -1
- package/dist/process-tree.d.ts +116 -0
- package/dist/process-tree.d.ts.map +1 -0
- package/dist/process-tree.js +258 -0
- package/dist/process-tree.js.map +1 -0
- package/dist/runloop.d.ts +5 -0
- package/dist/runloop.d.ts.map +1 -1
- package/dist/runloop.js +41 -0
- package/dist/runloop.js.map +1 -1
- package/dist/runtime-env.d.ts +57 -3
- package/dist/runtime-env.d.ts.map +1 -1
- package/dist/runtime-env.js +187 -10
- package/dist/runtime-env.js.map +1 -1
- 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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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"}
|
|
Binary file
|
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
|
package/dist/proc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proc.d.ts","sourceRoot":"","sources":["../src/proc.ts"],"names":[],"mappings":"
|
|
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
|
-
//
|
|
31
|
-
//
|
|
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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
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
|
-
//
|
|
125
|
-
//
|
|
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",
|
|
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
|
-
|
|
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",
|
|
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
|
-
|
|
240
|
-
process.kill(-child.pid, signal);
|
|
241
|
-
else
|
|
242
|
-
child.kill(signal);
|
|
355
|
+
child.kill(signal);
|
|
243
356
|
}
|
|
244
357
|
catch {
|
|
245
|
-
|
|
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":"AAIA,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,QAAQ,CAAC;AACzD,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,cAAc,CAAC;AACnE,MAAM,MAAM,4BAA4B,GACpC,aAAa,GACb,sBAAsB,GACtB,mBAAmB,GACnB,oBAAoB,GACpB,oBAAoB,GACpB,eAAe,GACf,UAAU,CAAC;AAEf,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,4BAA4B,CAAC;CACtC;AAED,MAAM,MAAM,eAAe,GACzB,oBAAoB,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;AACzE,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AAErF,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;IACnC,IAAI,IAAI,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,qBAAqB,CAAC;CACxE;AAwBD,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,CAsCpF;AAED,iFAAiF;AACjF,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,CA+BzF;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,EAAE,eAAe,GACxB,yBAAyB,CAU3B;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAwBpF;
|
|
1
|
+
{"version":3,"file":"process-identity.d.ts","sourceRoot":"","sources":["../src/process-identity.ts"],"names":[],"mappings":"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"}
|
package/dist/process-identity.js
CHANGED
|
@@ -119,14 +119,24 @@ export function isKnownProcessIdentity(value) {
|
|
|
119
119
|
return false;
|
|
120
120
|
}
|
|
121
121
|
function bundledDarwinHelperPath() {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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":"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
|
|
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
|