@lesliechan721/agent-skill-eval 0.1.0-beta.7 → 0.1.0-beta.9

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 (98) hide show
  1. package/dist/bin.js +149 -39
  2. package/dist/bin.js.map +1 -1
  3. package/dist/codex-eval-app-server.d.ts +199 -0
  4. package/dist/codex-eval-app-server.js +1366 -0
  5. package/dist/codex-eval-app-server.js.map +1 -0
  6. package/dist/codex-eval-cases.d.ts +43 -0
  7. package/dist/codex-eval-cases.js +327 -0
  8. package/dist/codex-eval-cases.js.map +1 -0
  9. package/dist/codex-eval-isolation.d.ts +61 -0
  10. package/dist/codex-eval-isolation.js +318 -0
  11. package/dist/codex-eval-isolation.js.map +1 -0
  12. package/dist/codex-eval-process-tree.d.ts +38 -0
  13. package/dist/codex-eval-process-tree.js +803 -0
  14. package/dist/codex-eval-process-tree.js.map +1 -0
  15. package/dist/codex-eval-runtime-config.d.ts +43 -0
  16. package/dist/codex-eval-runtime-config.js +607 -0
  17. package/dist/codex-eval-runtime-config.js.map +1 -0
  18. package/dist/codex-trigger-eval.d.ts +82 -0
  19. package/dist/codex-trigger-eval.js +789 -0
  20. package/dist/codex-trigger-eval.js.map +1 -0
  21. package/dist/codex-workflow.d.ts +188 -0
  22. package/dist/codex-workflow.js +1790 -0
  23. package/dist/codex-workflow.js.map +1 -0
  24. package/dist/credentials.d.ts +5 -0
  25. package/dist/credentials.js +30 -0
  26. package/dist/credentials.js.map +1 -0
  27. package/dist/custom-process.d.ts +58 -0
  28. package/dist/custom-process.js +409 -0
  29. package/dist/custom-process.js.map +1 -0
  30. package/dist/eval-audit.d.ts +38 -0
  31. package/dist/eval-audit.js +71 -0
  32. package/dist/eval-audit.js.map +1 -0
  33. package/dist/eval-file.d.ts +9 -0
  34. package/dist/eval-file.js +15 -0
  35. package/dist/eval-file.js.map +1 -0
  36. package/dist/eval-result.d.ts +64 -0
  37. package/dist/eval-result.js +144 -0
  38. package/dist/eval-result.js.map +1 -0
  39. package/dist/eval-run.d.ts +23 -0
  40. package/dist/eval-run.js +539 -0
  41. package/dist/eval-run.js.map +1 -0
  42. package/dist/eval-spec.d.ts +57 -0
  43. package/dist/eval-spec.js +120 -0
  44. package/dist/eval-spec.js.map +1 -0
  45. package/dist/eval-suite-binding.d.ts +4 -0
  46. package/dist/eval-suite-binding.js +19 -0
  47. package/dist/eval-suite-binding.js.map +1 -0
  48. package/dist/index.d.ts +34 -9
  49. package/dist/index.js +18 -6
  50. package/dist/index.js.map +1 -1
  51. package/dist/json-schema.js +75 -5
  52. package/dist/json-schema.js.map +1 -1
  53. package/dist/output-path.js +2 -2
  54. package/dist/process-tree.d.ts +19 -1
  55. package/dist/process-tree.js +321 -66
  56. package/dist/process-tree.js.map +1 -1
  57. package/dist/process.d.ts +0 -2
  58. package/dist/process.js +76 -25
  59. package/dist/process.js.map +1 -1
  60. package/dist/provider-doctor.d.ts +33 -0
  61. package/dist/provider-doctor.js +86 -0
  62. package/dist/provider-doctor.js.map +1 -0
  63. package/dist/providers.d.ts +82 -0
  64. package/dist/providers.js +630 -0
  65. package/dist/providers.js.map +1 -0
  66. package/dist/run-paths.d.ts +8 -0
  67. package/dist/run-paths.js +71 -0
  68. package/dist/run-paths.js.map +1 -0
  69. package/dist/runtime-skill.d.ts +6 -0
  70. package/dist/runtime-skill.js +87 -3
  71. package/dist/runtime-skill.js.map +1 -1
  72. package/dist/schemas/digests.json +3 -3
  73. package/dist/schemas/eval-audit.schema.json +64 -0
  74. package/dist/schemas/eval-result.schema.json +202 -0
  75. package/dist/schemas/eval-spec.schema.json +109 -0
  76. package/dist/schemas.d.ts +1 -3
  77. package/dist/schemas.js +0 -17
  78. package/dist/schemas.js.map +1 -1
  79. package/dist/selected-cases.d.ts +30 -0
  80. package/dist/selected-cases.js +388 -0
  81. package/dist/selected-cases.js.map +1 -0
  82. package/dist/types.d.ts +2 -34
  83. package/package.json +6 -1
  84. package/dist/bundle.d.ts +0 -93
  85. package/dist/bundle.js +0 -216
  86. package/dist/bundle.js.map +0 -1
  87. package/dist/capabilities.d.ts +0 -2
  88. package/dist/capabilities.js +0 -38
  89. package/dist/capabilities.js.map +0 -1
  90. package/dist/plan.d.ts +0 -79
  91. package/dist/plan.js +0 -285
  92. package/dist/plan.js.map +0 -1
  93. package/dist/run.d.ts +0 -2
  94. package/dist/run.js +0 -592
  95. package/dist/run.js.map +0 -1
  96. package/dist/schemas/aw-skill-eval-execution-plan.schema.json +0 -220
  97. package/dist/schemas/eval-run-bundle.schema.json +0 -408
  98. package/dist/schemas/eval-runtime-capabilities.schema.json +0 -85
@@ -1,7 +1,8 @@
1
- import { execFile } from 'node:child_process';
1
+ import { execFile, spawn } from 'node:child_process';
2
+ import { randomUUID } from 'node:crypto';
3
+ import { once } from 'node:events';
2
4
  const DEFAULT_PROCESS_MARKER_ENV = 'AW_NATIVE_CLI_PROCESS_MARKER';
3
5
  const PROCESS_TREE_COMMAND_TIMEOUT_MS = 1_000;
4
- const PROCESS_TREE_LOOKUP_TIMEOUT_MS = 250;
5
6
  const PROCESS_TREE_OBSERVATION_INTERVAL_MS = 50;
6
7
  const PROCESS_TREE_MAX_BUFFER_BYTES = 16 * 1024 * 1024;
7
8
  const observationStates = new WeakMap();
@@ -33,13 +34,23 @@ function runCommand(command, args, execFileImpl, timeoutMs) {
33
34
  function parsePosixProcessTable(stdout) {
34
35
  const table = new Map();
35
36
  for (const line of stdout.split('\n')) {
36
- const match = /^\s*(\d+)\s+(\d+)\s+(\S+)\s+(.+?)\s*$/u.exec(line);
37
- if (!match)
37
+ const groupMatch = /^\s*(\d+)\s+(\d+)\s+(\d+)\s+(\S+)\s+(.+?)\s*$/u.exec(line);
38
+ if (groupMatch) {
39
+ table.set(Number(groupMatch[1]), {
40
+ ppid: Number(groupMatch[2]),
41
+ pgid: Number(groupMatch[3]),
42
+ state: groupMatch[4],
43
+ startTime: groupMatch[5],
44
+ });
38
45
  continue;
39
- table.set(Number(match[1]), {
40
- ppid: Number(match[2]),
41
- state: match[3],
42
- startTime: match[4],
46
+ }
47
+ const legacyMatch = /^\s*(\d+)\s+(\d+)\s+(\S+)\s+(.+?)\s*$/u.exec(line);
48
+ if (!legacyMatch)
49
+ continue;
50
+ table.set(Number(legacyMatch[1]), {
51
+ ppid: Number(legacyMatch[2]),
52
+ state: legacyMatch[3],
53
+ startTime: legacyMatch[4],
43
54
  });
44
55
  }
45
56
  return table;
@@ -49,28 +60,118 @@ function parseMarkerProcessIds(stdout, markerEnvironmentVariable, marker) {
49
60
  const assignment = `${markerEnvironmentVariable}=${marker}`;
50
61
  for (const line of stdout.split('\n')) {
51
62
  const match = /^\s*(\d+)\s+(.+)$/u.exec(line);
52
- if (match?.[2].includes(assignment))
63
+ if (match?.[2].split(/\s+/u).includes(assignment))
53
64
  processIds.add(Number(match[1]));
54
65
  }
55
66
  return processIds;
56
67
  }
57
- async function readPosixProcessTable(execFileImpl, markerEnvironmentVariable, marker, timeoutMs = PROCESS_TREE_LOOKUP_TIMEOUT_MS) {
68
+ async function readPosixProcessTable(execFileImpl, markerEnvironmentVariable, marker, timeoutMs = PROCESS_TREE_COMMAND_TIMEOUT_MS, confirmUnmarkedPid) {
69
+ const identityArgs = ['-A', '-o', 'pid=,ppid=,pgid=,state=,lstart='];
58
70
  const [identityOutput, markerOutput] = await Promise.all([
59
- runCommand('ps', ['-A', '-o', 'pid=,ppid=,state=,lstart='], execFileImpl, timeoutMs),
71
+ runCommand('ps', identityArgs, execFileImpl, timeoutMs),
60
72
  marker === undefined
61
73
  ? Promise.resolve('')
62
74
  : runCommand('ps', ['eww', '-A', '-o', 'pid=,command='], execFileImpl, timeoutMs),
63
75
  ]);
64
76
  if (identityOutput === null)
65
77
  return null;
78
+ const table = parsePosixProcessTable(identityOutput);
79
+ const markerPids = marker === undefined || markerOutput === null
80
+ ? new Set()
81
+ : parseMarkerProcessIds(markerOutput, markerEnvironmentVariable, marker);
82
+ const confirmedUnmarkedPids = new Set();
83
+ const unmarkedEntry = confirmUnmarkedPid === undefined || markerPids.has(confirmUnmarkedPid)
84
+ ? undefined
85
+ : table.get(confirmUnmarkedPid);
86
+ if (unmarkedEntry && !unmarkedEntry.state?.startsWith('Z')) {
87
+ const confirmationOutput = await runCommand('ps', identityArgs, execFileImpl, timeoutMs);
88
+ if (confirmationOutput === null)
89
+ return null;
90
+ const confirmedEntry = parsePosixProcessTable(confirmationOutput).get(confirmUnmarkedPid);
91
+ if (confirmedEntry?.startTime === unmarkedEntry.startTime &&
92
+ !confirmedEntry.state?.startsWith('Z')) {
93
+ confirmedUnmarkedPids.add(confirmUnmarkedPid);
94
+ }
95
+ }
66
96
  return {
67
- table: parsePosixProcessTable(identityOutput),
68
- markerPids: marker === undefined || markerOutput === null
69
- ? new Set()
70
- : parseMarkerProcessIds(markerOutput, markerEnvironmentVariable, marker),
97
+ table,
98
+ markerPids,
71
99
  markerLookupSucceeded: marker === undefined || markerOutput !== null,
100
+ confirmedUnmarkedPids,
72
101
  };
73
102
  }
103
+ async function defaultCreateSentinel(markerEnvironmentVariable, marker) {
104
+ const child = spawn(process.execPath, ['-e', 'setInterval(() => {}, 60_000)'], {
105
+ env: { [markerEnvironmentVariable]: marker },
106
+ stdio: 'ignore',
107
+ windowsHide: true,
108
+ });
109
+ await once(child, 'spawn');
110
+ if (child.pid === undefined)
111
+ throw cleanupUnconfirmed('inspection sentinel did not start.');
112
+ return {
113
+ pid: child.pid,
114
+ stop: async () => {
115
+ if (child.exitCode !== null || child.signalCode !== null)
116
+ return;
117
+ const closed = once(child, 'close').then(() => undefined);
118
+ try {
119
+ child.kill('SIGKILL');
120
+ }
121
+ catch {
122
+ // The controlled sentinel can exit before release.
123
+ }
124
+ await closed;
125
+ },
126
+ };
127
+ }
128
+ function validateLeaseSnapshot(snapshot, lease) {
129
+ if (!snapshot.markerLookupSucceeded) {
130
+ return cleanupUnconfirmed('POSIX process marker lookup failed.');
131
+ }
132
+ const sentinelEntry = snapshot.table.get(lease.sentinel.pid);
133
+ if (sentinelEntry?.startTime !== lease.sentinel.startTime ||
134
+ !snapshot.markerPids.has(lease.sentinel.pid)) {
135
+ return cleanupUnconfirmed('POSIX inspection sentinel could not be verified.');
136
+ }
137
+ return undefined;
138
+ }
139
+ export async function acquireProcessTreeInspectionLease(dependencies = {}) {
140
+ const platform = dependencies.platform ?? process.platform;
141
+ if (platform !== 'darwin' && platform !== 'linux') {
142
+ throw cleanupUnconfirmed(`process inspection is unsupported on ${platform}.`);
143
+ }
144
+ const markerEnvironmentVariable = dependencies.markerEnvironmentVariable ?? DEFAULT_PROCESS_MARKER_ENV;
145
+ const marker = randomUUID();
146
+ const sentinel = await (dependencies.createSentinel ?? defaultCreateSentinel)(markerEnvironmentVariable, marker);
147
+ try {
148
+ const snapshot = await readPosixProcessTable(dependencies.execFile ?? defaultExecFile, markerEnvironmentVariable, marker);
149
+ if (!snapshot)
150
+ throw cleanupUnconfirmed('POSIX process identity lookup failed.');
151
+ if (!snapshot.markerLookupSucceeded) {
152
+ throw cleanupUnconfirmed('POSIX process marker lookup failed.');
153
+ }
154
+ const entry = snapshot.table.get(sentinel.pid);
155
+ if (!entry || !snapshot.markerPids.has(sentinel.pid)) {
156
+ throw cleanupUnconfirmed('POSIX inspection sentinel could not be verified.');
157
+ }
158
+ let released = false;
159
+ return {
160
+ marker,
161
+ sentinel: { pid: sentinel.pid, startTime: entry.startTime },
162
+ release: async () => {
163
+ if (released)
164
+ return;
165
+ released = true;
166
+ await sentinel.stop();
167
+ },
168
+ };
169
+ }
170
+ catch (error) {
171
+ await sentinel.stop();
172
+ throw error;
173
+ }
174
+ }
74
175
  function parseWindowsProcessTable(stdout) {
75
176
  const table = new Map();
76
177
  for (const line of stdout.split('\n')) {
@@ -128,6 +229,8 @@ function refreshObservedProcesses(state, table, markerPids = new Set(), allowRoo
128
229
  }
129
230
  state.rootDiscoveryPending = false;
130
231
  for (const processId of markerPids) {
232
+ if (processId === state.lease?.sentinel.pid)
233
+ continue;
131
234
  if (processId === state.root?.pid)
132
235
  continue;
133
236
  const entry = table.get(processId);
@@ -140,9 +243,111 @@ function refreshObservedProcesses(state, table, markerPids = new Set(), allowRoo
140
243
  }
141
244
  refreshDescendants(state.root, state.descendants, table);
142
245
  }
143
- function createProcessTreeObservation(pid, marker, dependencies, startLookup) {
246
+ function latchObservationFailure(state, error) {
247
+ if (state.failure)
248
+ return;
249
+ state.failure = error;
250
+ for (const listener of state.failureListeners)
251
+ listener(error);
252
+ }
253
+ function acceptPosixSnapshot(state, snapshot) {
254
+ if (!snapshot.markerLookupSucceeded && state.marker !== undefined) {
255
+ latchObservationFailure(state, cleanupUnconfirmed('POSIX process marker lookup failed.'));
256
+ return false;
257
+ }
258
+ if (state.lease) {
259
+ const leaseFailure = validateLeaseSnapshot(snapshot, state.lease);
260
+ if (leaseFailure) {
261
+ latchObservationFailure(state, leaseFailure);
262
+ return false;
263
+ }
264
+ }
265
+ const rootEntry = snapshot.table.get(state.pid);
266
+ if (state.marker !== undefined &&
267
+ state.dependencies.enforceCooperativeProcessGroup === true &&
268
+ rootEntry !== undefined &&
269
+ !rootEntry.state?.startsWith('Z') &&
270
+ snapshot.confirmedUnmarkedPids.has(state.pid)) {
271
+ state.root = { pid: state.pid, startTime: rootEntry.startTime };
272
+ latchObservationFailure(state, cleanupUnconfirmed('custom process contract violation: a live provider process lost its process marker.'));
273
+ }
274
+ refreshObservedProcesses(state, snapshot.table, snapshot.markerPids);
275
+ if (state.marker !== undefined) {
276
+ const providerMarkerPids = [...snapshot.markerPids].filter((pid) => pid !== state.lease?.sentinel.pid);
277
+ if (state.dependencies.enforceCooperativeProcessGroup === true &&
278
+ state.rootPgidMode === undefined) {
279
+ if (state.root?.pid === state.pid &&
280
+ rootEntry?.startTime === state.root.startTime &&
281
+ rootEntry.pgid !== undefined &&
282
+ snapshot.markerPids.has(state.pid)) {
283
+ if (rootEntry.pgid === state.pid) {
284
+ state.rootPgid = rootEntry.pgid;
285
+ state.rootPgidMode = 'owned';
286
+ }
287
+ else {
288
+ state.rootPgidMode = 'shared';
289
+ }
290
+ }
291
+ else if (rootEntry === undefined &&
292
+ (providerMarkerPids.some((pid) => snapshot.table.get(pid)?.pgid !== undefined) ||
293
+ [...snapshot.table].some(([pid, entry]) => pid !== state.lease?.sentinel.pid &&
294
+ entry.pgid === state.pid &&
295
+ !entry.state?.startsWith('Z')))) {
296
+ state.rootPgid = state.pid;
297
+ state.rootPgidMode = 'missing';
298
+ }
299
+ }
300
+ const expectedPgid = state.rootPgidMode === 'owned'
301
+ ? state.rootPgid
302
+ : state.rootPgidMode === 'missing'
303
+ ? state.pid
304
+ : undefined;
305
+ if (expectedPgid !== undefined &&
306
+ providerMarkerPids.some((pid) => {
307
+ const entry = snapshot.table.get(pid);
308
+ return entry?.pgid !== undefined && entry.pgid !== expectedPgid;
309
+ })) {
310
+ latchObservationFailure(state, cleanupUnconfirmed('custom process contract violation: a marked process left its initial process group.'));
311
+ }
312
+ const liveKnownIdentities = [state.root, ...state.descendants.values()].filter((identity) => identityMatches(identity, snapshot.table) &&
313
+ !snapshot.table.get(identity.pid)?.state?.startsWith('Z'));
314
+ const markerlessKnownIdentity = state.dependencies.enforceCooperativeProcessGroup === true &&
315
+ liveKnownIdentities.some((identity) => identity.pid !== state.pid && !snapshot.markerPids.has(identity.pid));
316
+ let markerlessInitialGroupMember = false;
317
+ if (state.rootPgid !== undefined) {
318
+ for (const [pid, entry] of snapshot.table) {
319
+ if (entry.pgid !== state.rootPgid || entry.state?.startsWith('Z'))
320
+ continue;
321
+ if (pid !== state.root?.pid) {
322
+ const known = state.descendants.get(pid);
323
+ if (!known || known.startTime === entry.startTime) {
324
+ state.descendants.set(pid, { pid, startTime: entry.startTime });
325
+ }
326
+ }
327
+ if (pid !== state.pid && !snapshot.markerPids.has(pid)) {
328
+ markerlessInitialGroupMember = true;
329
+ }
330
+ }
331
+ }
332
+ if (markerlessKnownIdentity || markerlessInitialGroupMember) {
333
+ latchObservationFailure(state, cleanupUnconfirmed('custom process contract violation: a live provider process lost its process marker.'));
334
+ }
335
+ }
336
+ state.lastSnapshot = snapshot;
337
+ return true;
338
+ }
339
+ function createProcessTreeObservation(pid, marker, dependencies, startLookup, lease) {
144
340
  const observation = {
145
341
  pid,
342
+ onFailure: (listener) => {
343
+ const state = observationStates.get(observation);
344
+ if (!state)
345
+ return () => undefined;
346
+ state.failureListeners.add(listener);
347
+ if (state.failure)
348
+ listener(state.failure);
349
+ return () => state.failureListeners.delete(listener);
350
+ },
146
351
  dispose: () => {
147
352
  const state = observationStates.get(observation);
148
353
  if (state) {
@@ -157,9 +362,11 @@ function createProcessTreeObservation(pid, marker, dependencies, startLookup) {
157
362
  platform: dependencies.platform ?? process.platform,
158
363
  marker,
159
364
  markerEnvironmentVariable: dependencies.markerEnvironmentVariable ?? DEFAULT_PROCESS_MARKER_ENV,
365
+ lease,
160
366
  dependencies,
161
367
  rootDiscoveryPending: true,
162
368
  descendants: new Map(),
369
+ failureListeners: new Set(),
163
370
  disposed: false,
164
371
  initialLookup: Promise.resolve(),
165
372
  };
@@ -172,10 +379,16 @@ function createProcessTreeObservation(pid, marker, dependencies, startLookup) {
172
379
  if (!state.disposed && table)
173
380
  refreshObservedProcesses(state, table);
174
381
  })
175
- : readPosixProcessTable(execFileImpl, state.markerEnvironmentVariable, marker).then((snapshot) => {
176
- if (!state.disposed && snapshot) {
177
- refreshObservedProcesses(state, snapshot.table, snapshot.markerPids, !snapshot.markerLookupSucceeded);
382
+ : readPosixProcessTable(execFileImpl, state.markerEnvironmentVariable, marker, PROCESS_TREE_COMMAND_TIMEOUT_MS, dependencies.enforceCooperativeProcessGroup === true && marker !== undefined
383
+ ? state.pid
384
+ : undefined).then((snapshot) => {
385
+ if (state.disposed)
386
+ return;
387
+ if (!snapshot) {
388
+ latchObservationFailure(state, cleanupUnconfirmed('POSIX process identity lookup failed.'));
389
+ return;
178
390
  }
391
+ acceptPosixSnapshot(state, snapshot);
179
392
  });
180
393
  const scheduleRefresh = () => {
181
394
  if (state.disposed)
@@ -191,24 +404,12 @@ function createProcessTreeObservation(pid, marker, dependencies, startLookup) {
191
404
  void state.initialLookup.finally(scheduleRefresh);
192
405
  return observation;
193
406
  }
194
- export function observeProcessTree(pid, marker, dependencies = {}) {
195
- return createProcessTreeObservation(pid, marker, dependencies, true);
407
+ export function observeProcessTree(pid, marker, dependencies = {}, lease) {
408
+ return createProcessTreeObservation(pid, marker, dependencies, true, lease);
196
409
  }
197
410
  export async function assertProcessTreeInspectionAvailable(dependencies = {}) {
198
- const platform = dependencies.platform ?? process.platform;
199
- const execFileImpl = dependencies.execFile ?? defaultExecFile;
200
- if (platform === 'win32') {
201
- if (!(await readWindowsProcessTable(execFileImpl))) {
202
- throw cleanupUnconfirmed('Windows process identity lookup failed.');
203
- }
204
- return;
205
- }
206
- const snapshot = await readPosixProcessTable(execFileImpl, dependencies.markerEnvironmentVariable ?? DEFAULT_PROCESS_MARKER_ENV, 'preflight-marker');
207
- if (!snapshot)
208
- throw cleanupUnconfirmed('POSIX process identity lookup failed.');
209
- if (!snapshot.markerLookupSucceeded) {
210
- throw cleanupUnconfirmed('POSIX process marker lookup failed.');
211
- }
411
+ const lease = await acquireProcessTreeInspectionLease(dependencies);
412
+ await lease.release();
212
413
  }
213
414
  function cleanupUnconfirmed(detail) {
214
415
  return new Error(`Process tree cleanup unconfirmed: ${detail}`);
@@ -229,6 +430,42 @@ function signalIdentity(identity, snapshot, signal, kill) {
229
430
  // The process can exit between identity verification and the signal.
230
431
  }
231
432
  }
433
+ function safelyOwnedProcessGroup(state, snapshot) {
434
+ if (state.dependencies.enforceCooperativeProcessGroup !== true ||
435
+ state.marker === undefined ||
436
+ state.rootPgid === undefined ||
437
+ state.rootPgid !== state.pid)
438
+ return undefined;
439
+ const pgid = state.rootPgid;
440
+ const members = [...snapshot.table].filter(([, entry]) => entry.pgid === pgid && !entry.state?.startsWith('Z'));
441
+ if (members.length === 0)
442
+ return undefined;
443
+ const known = [state.root, ...state.descendants.values()];
444
+ if (members.some(([pid, entry]) => !known.some((identity) => identity?.pid === pid && identity.startTime === entry.startTime)))
445
+ return undefined;
446
+ return pgid;
447
+ }
448
+ function signalProcessGroup(pgid, signal, kill) {
449
+ if (pgid === undefined)
450
+ return;
451
+ try {
452
+ kill(-pgid, signal);
453
+ }
454
+ catch {
455
+ // The verified process group can exit before the signal.
456
+ }
457
+ }
458
+ function latchLiveDescendantCompletionFailure(state, snapshot) {
459
+ if (state.dependencies.enforceCooperativeProcessGroup !== true)
460
+ return;
461
+ const liveDescendant = [...state.descendants.values()].some((identity) => identity.pid !== state.pid &&
462
+ identity.pid !== state.lease?.sentinel.pid &&
463
+ posixIdentityMatches(identity, snapshot) &&
464
+ !snapshot.table.get(identity.pid)?.state?.startsWith('Z'));
465
+ if (!liveDescendant)
466
+ return;
467
+ latchObservationFailure(state, cleanupUnconfirmed('custom process contract violation: all provider descendants must exit before completion.'));
468
+ }
232
469
  async function runTaskkill(pid, execFileImpl) {
233
470
  return (await runCommand('taskkill', ['/PID', String(pid), '/T', '/F'], execFileImpl, PROCESS_TREE_COMMAND_TIMEOUT_MS)) !== null;
234
471
  }
@@ -267,42 +504,61 @@ async function terminateWindowsProcessTree(state, requireConfirmedCleanup) {
267
504
  throw cleanupUnconfirmed('no inherited-pipe process identity was observed.');
268
505
  }
269
506
  }
270
- async function terminatePosixProcessTree(state, requireConfirmedCleanup, allowInspectionUnavailable) {
507
+ async function terminatePosixProcessTree(state, requireConfirmedCleanup, allowInspectionUnavailable, requireDescendantsExitedBeforeCompletion) {
271
508
  await state.initialLookup;
509
+ state.disposed = true;
510
+ if (state.pollTimer)
511
+ clearTimeout(state.pollTimer);
272
512
  const execFileImpl = state.dependencies.execFile ?? defaultExecFile;
273
513
  const kill = state.dependencies.kill ?? process.kill.bind(process);
274
514
  const deadline = Date.now() + PROCESS_TREE_COMMAND_TIMEOUT_MS;
275
- let snapshot = await readPosixProcessTable(execFileImpl, state.markerEnvironmentVariable, state.marker, PROCESS_TREE_COMMAND_TIMEOUT_MS);
515
+ const inspect = async (timeoutMs) => {
516
+ const next = await readPosixProcessTable(execFileImpl, state.markerEnvironmentVariable, state.marker, timeoutMs, state.dependencies.enforceCooperativeProcessGroup === true && state.marker !== undefined
517
+ ? state.pid
518
+ : undefined);
519
+ if (!next) {
520
+ latchObservationFailure(state, cleanupUnconfirmed('POSIX process identity lookup failed.'));
521
+ return undefined;
522
+ }
523
+ return acceptPosixSnapshot(state, next) ? next : undefined;
524
+ };
525
+ let snapshot = await inspect(PROCESS_TREE_COMMAND_TIMEOUT_MS);
526
+ let processGroupCurrentlyVerified = snapshot !== undefined;
527
+ if (!snapshot)
528
+ snapshot = state.lastSnapshot;
276
529
  if (!snapshot) {
277
530
  if (!requireConfirmedCleanup && allowInspectionUnavailable)
278
531
  return;
279
- throw cleanupUnconfirmed('POSIX process identity lookup failed.');
532
+ throw state.failure ?? cleanupUnconfirmed('POSIX process identity lookup failed.');
280
533
  }
281
- if (state.marker !== undefined && !snapshot.markerLookupSucceeded) {
282
- throw cleanupUnconfirmed('POSIX process marker lookup failed.');
534
+ if (!processGroupCurrentlyVerified && safelyOwnedProcessGroup(state, snapshot) === undefined) {
535
+ if (!requireConfirmedCleanup && allowInspectionUnavailable)
536
+ return;
537
+ throw state.failure ?? cleanupUnconfirmed('POSIX process identity lookup failed.');
538
+ }
539
+ if (requireDescendantsExitedBeforeCompletion) {
540
+ latchLiveDescendantCompletionFailure(state, snapshot);
283
541
  }
284
- let markerLookupEverFailed = state.marker !== undefined && !snapshot.markerLookupSucceeded;
285
- refreshObservedProcesses(state, snapshot.table, snapshot.markerPids);
286
542
  const observedAtTermination = new Set([...state.descendants.values()]
287
543
  .filter((identity) => posixIdentityMatches(identity, snapshot))
288
544
  .map((identity) => `${identity.pid}:${identity.startTime}`));
289
545
  while (Date.now() < deadline) {
546
+ signalProcessGroup(processGroupCurrentlyVerified ? safelyOwnedProcessGroup(state, snapshot) : undefined, 'SIGSTOP', kill);
290
547
  if (posixIdentityMatches(state.root, snapshot)) {
291
548
  signalIdentity(state.root, snapshot, 'SIGSTOP', kill);
292
549
  }
293
550
  for (const identity of [...state.descendants.values()].reverse()) {
294
551
  signalIdentity(identity, snapshot, 'SIGSTOP', kill);
295
552
  }
296
- const next = await readPosixProcessTable(execFileImpl, state.markerEnvironmentVariable, state.marker, Math.min(PROCESS_TREE_LOOKUP_TIMEOUT_MS, Math.max(1, deadline - Date.now())));
297
- if (!next)
298
- break;
299
- markerLookupEverFailed ||=
300
- state.marker !== undefined && !next.markerLookupSucceeded;
301
- if (markerLookupEverFailed)
553
+ const next = await inspect(Math.max(1, deadline - Date.now()));
554
+ if (!next) {
555
+ processGroupCurrentlyVerified = false;
302
556
  break;
557
+ }
303
558
  snapshot = next;
559
+ processGroupCurrentlyVerified = true;
304
560
  const previousSize = state.descendants.size;
305
- refreshObservedProcesses(state, snapshot.table, snapshot.markerPids);
561
+ signalProcessGroup(safelyOwnedProcessGroup(state, snapshot), 'SIGSTOP', kill);
306
562
  if (posixIdentityMatches(state.root, snapshot)) {
307
563
  signalIdentity(state.root, snapshot, 'SIGSTOP', kill);
308
564
  }
@@ -320,19 +576,21 @@ async function terminatePosixProcessTree(state, requireConfirmedCleanup, allowIn
320
576
  }
321
577
  const killed = [state.root, ...state.descendants.values()].filter((identity) => identity !== undefined &&
322
578
  posixIdentityMatches(identity, snapshot));
579
+ const ownedPgid = processGroupCurrentlyVerified
580
+ ? safelyOwnedProcessGroup(state, snapshot)
581
+ : undefined;
323
582
  for (const identity of killed.reverse()) {
324
583
  signalIdentity(identity, snapshot, 'SIGKILL', kill);
325
584
  }
326
- if (markerLookupEverFailed) {
327
- throw cleanupUnconfirmed('POSIX process marker lookup failed.');
328
- }
329
- if (!requireConfirmedCleanup)
585
+ signalProcessGroup(ownedPgid, 'SIGKILL', kill);
586
+ if (!requireConfirmedCleanup) {
587
+ if (state.failure)
588
+ throw state.failure;
330
589
  return;
331
- const verified = await readPosixProcessTable(execFileImpl, state.markerEnvironmentVariable, state.marker);
332
- if (!verified)
333
- throw cleanupUnconfirmed('POSIX termination verification failed.');
334
- if (!verified.markerLookupSucceeded) {
335
- throw cleanupUnconfirmed('POSIX process marker verification failed.');
590
+ }
591
+ const verified = await inspect(PROCESS_TREE_COMMAND_TIMEOUT_MS);
592
+ if (!verified) {
593
+ throw state.failure ?? cleanupUnconfirmed('POSIX termination verification failed.');
336
594
  }
337
595
  const stillRunning = killed.some((identity) => {
338
596
  if (!posixIdentityMatches(identity, verified))
@@ -343,19 +601,16 @@ async function terminatePosixProcessTree(state, requireConfirmedCleanup, allowIn
343
601
  throw cleanupUnconfirmed('a verified POSIX descendant is still running.');
344
602
  const unobservedMarkedProcess = state.marker === undefined
345
603
  ? false
346
- : [...verified.markerPids].some((pid) => !verified.table.get(pid)?.state?.startsWith('Z'));
604
+ : [...verified.markerPids].some((pid) => pid !== state.lease?.sentinel.pid &&
605
+ !verified.table.get(pid)?.state?.startsWith('Z'));
347
606
  if (unobservedMarkedProcess) {
348
607
  throw cleanupUnconfirmed('an unverified marker process is still running.');
349
608
  }
350
- if (requireConfirmedCleanup &&
351
- state.marker !== undefined &&
352
- state.root === undefined &&
353
- state.descendants.size === 0) {
354
- throw cleanupUnconfirmed('no marked process identity was observed.');
355
- }
356
609
  if (requireConfirmedCleanup && state.marker === undefined && observedAtTermination.size === 0) {
357
610
  throw cleanupUnconfirmed('no inherited-pipe process identity was observed.');
358
611
  }
612
+ if (state.failure)
613
+ throw state.failure;
359
614
  }
360
615
  export async function terminateProcessTree(pid, killDirectChild, dependencies = {}, options = {}) {
361
616
  const platform = dependencies.platform ?? process.platform;
@@ -370,7 +625,7 @@ export async function terminateProcessTree(pid, killDirectChild, dependencies =
370
625
  await terminateWindowsProcessTree(state, options.requireConfirmedCleanup ?? false);
371
626
  return;
372
627
  }
373
- await terminatePosixProcessTree(state, options.requireConfirmedCleanup ?? false, options.allowInspectionUnavailable ?? false);
628
+ await terminatePosixProcessTree(state, options.requireConfirmedCleanup ?? false, options.allowInspectionUnavailable ?? false, options.requireDescendantsExitedBeforeCompletion ?? false);
374
629
  }
375
630
  finally {
376
631
  observation.dispose();
@@ -1 +1 @@
1
- {"version":3,"file":"process-tree.js","sourceRoot":"","sources":["../src/process-tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-tree.js","sourceRoot":"","sources":["../src/process-tree.ts"],"names":[],"mappings":"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"}
package/dist/process.d.ts CHANGED
@@ -8,7 +8,5 @@ export declare class ProviderProcessCleanupError extends Error {
8
8
  readonly result?: ProcessResult | undefined;
9
9
  constructor(message: string, cause: unknown, result?: ProcessResult | undefined);
10
10
  }
11
- export declare function hasCoreProcessReceipt(result: ProcessResult): boolean;
12
- export declare function hasCoreManagedProcessReceipt(result: ProcessResult): boolean;
13
11
  export declare function runProviderProcess(request: ProcessRequest, hooks?: ProcessLifecycleHooks, dependencies?: ProviderProcessDependencies): Promise<ProcessResult>;
14
12
  export declare function assertProviderProcessSupported(platform: NodeJS.Platform, hooks?: ProcessLifecycleHooks): void;