@lesliechan721/agent-skill-eval 0.1.0-beta.8 → 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 -65
  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,4 +1,6 @@
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
6
  const PROCESS_TREE_OBSERVATION_INTERVAL_MS = 50;
@@ -32,13 +34,23 @@ function runCommand(command, args, execFileImpl, timeoutMs) {
32
34
  function parsePosixProcessTable(stdout) {
33
35
  const table = new Map();
34
36
  for (const line of stdout.split('\n')) {
35
- const match = /^\s*(\d+)\s+(\d+)\s+(\S+)\s+(.+?)\s*$/u.exec(line);
36
- 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
+ });
37
45
  continue;
38
- table.set(Number(match[1]), {
39
- ppid: Number(match[2]),
40
- state: match[3],
41
- 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],
42
54
  });
43
55
  }
44
56
  return table;
@@ -48,28 +60,118 @@ function parseMarkerProcessIds(stdout, markerEnvironmentVariable, marker) {
48
60
  const assignment = `${markerEnvironmentVariable}=${marker}`;
49
61
  for (const line of stdout.split('\n')) {
50
62
  const match = /^\s*(\d+)\s+(.+)$/u.exec(line);
51
- if (match?.[2].includes(assignment))
63
+ if (match?.[2].split(/\s+/u).includes(assignment))
52
64
  processIds.add(Number(match[1]));
53
65
  }
54
66
  return processIds;
55
67
  }
56
- async function readPosixProcessTable(execFileImpl, markerEnvironmentVariable, marker, timeoutMs = PROCESS_TREE_COMMAND_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='];
57
70
  const [identityOutput, markerOutput] = await Promise.all([
58
- runCommand('ps', ['-A', '-o', 'pid=,ppid=,state=,lstart='], execFileImpl, timeoutMs),
71
+ runCommand('ps', identityArgs, execFileImpl, timeoutMs),
59
72
  marker === undefined
60
73
  ? Promise.resolve('')
61
74
  : runCommand('ps', ['eww', '-A', '-o', 'pid=,command='], execFileImpl, timeoutMs),
62
75
  ]);
63
76
  if (identityOutput === null)
64
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
+ }
65
96
  return {
66
- table: parsePosixProcessTable(identityOutput),
67
- markerPids: marker === undefined || markerOutput === null
68
- ? new Set()
69
- : parseMarkerProcessIds(markerOutput, markerEnvironmentVariable, marker),
97
+ table,
98
+ markerPids,
70
99
  markerLookupSucceeded: marker === undefined || markerOutput !== null,
100
+ confirmedUnmarkedPids,
71
101
  };
72
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
+ }
73
175
  function parseWindowsProcessTable(stdout) {
74
176
  const table = new Map();
75
177
  for (const line of stdout.split('\n')) {
@@ -127,6 +229,8 @@ function refreshObservedProcesses(state, table, markerPids = new Set(), allowRoo
127
229
  }
128
230
  state.rootDiscoveryPending = false;
129
231
  for (const processId of markerPids) {
232
+ if (processId === state.lease?.sentinel.pid)
233
+ continue;
130
234
  if (processId === state.root?.pid)
131
235
  continue;
132
236
  const entry = table.get(processId);
@@ -139,9 +243,111 @@ function refreshObservedProcesses(state, table, markerPids = new Set(), allowRoo
139
243
  }
140
244
  refreshDescendants(state.root, state.descendants, table);
141
245
  }
142
- 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) {
143
340
  const observation = {
144
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
+ },
145
351
  dispose: () => {
146
352
  const state = observationStates.get(observation);
147
353
  if (state) {
@@ -156,9 +362,11 @@ function createProcessTreeObservation(pid, marker, dependencies, startLookup) {
156
362
  platform: dependencies.platform ?? process.platform,
157
363
  marker,
158
364
  markerEnvironmentVariable: dependencies.markerEnvironmentVariable ?? DEFAULT_PROCESS_MARKER_ENV,
365
+ lease,
159
366
  dependencies,
160
367
  rootDiscoveryPending: true,
161
368
  descendants: new Map(),
369
+ failureListeners: new Set(),
162
370
  disposed: false,
163
371
  initialLookup: Promise.resolve(),
164
372
  };
@@ -171,10 +379,16 @@ function createProcessTreeObservation(pid, marker, dependencies, startLookup) {
171
379
  if (!state.disposed && table)
172
380
  refreshObservedProcesses(state, table);
173
381
  })
174
- : readPosixProcessTable(execFileImpl, state.markerEnvironmentVariable, marker).then((snapshot) => {
175
- if (!state.disposed && snapshot) {
176
- 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;
177
390
  }
391
+ acceptPosixSnapshot(state, snapshot);
178
392
  });
179
393
  const scheduleRefresh = () => {
180
394
  if (state.disposed)
@@ -190,24 +404,12 @@ function createProcessTreeObservation(pid, marker, dependencies, startLookup) {
190
404
  void state.initialLookup.finally(scheduleRefresh);
191
405
  return observation;
192
406
  }
193
- export function observeProcessTree(pid, marker, dependencies = {}) {
194
- return createProcessTreeObservation(pid, marker, dependencies, true);
407
+ export function observeProcessTree(pid, marker, dependencies = {}, lease) {
408
+ return createProcessTreeObservation(pid, marker, dependencies, true, lease);
195
409
  }
196
410
  export async function assertProcessTreeInspectionAvailable(dependencies = {}) {
197
- const platform = dependencies.platform ?? process.platform;
198
- const execFileImpl = dependencies.execFile ?? defaultExecFile;
199
- if (platform === 'win32') {
200
- if (!(await readWindowsProcessTable(execFileImpl))) {
201
- throw cleanupUnconfirmed('Windows process identity lookup failed.');
202
- }
203
- return;
204
- }
205
- const snapshot = await readPosixProcessTable(execFileImpl, dependencies.markerEnvironmentVariable ?? DEFAULT_PROCESS_MARKER_ENV, 'preflight-marker');
206
- if (!snapshot)
207
- throw cleanupUnconfirmed('POSIX process identity lookup failed.');
208
- if (!snapshot.markerLookupSucceeded) {
209
- throw cleanupUnconfirmed('POSIX process marker lookup failed.');
210
- }
411
+ const lease = await acquireProcessTreeInspectionLease(dependencies);
412
+ await lease.release();
211
413
  }
212
414
  function cleanupUnconfirmed(detail) {
213
415
  return new Error(`Process tree cleanup unconfirmed: ${detail}`);
@@ -228,6 +430,42 @@ function signalIdentity(identity, snapshot, signal, kill) {
228
430
  // The process can exit between identity verification and the signal.
229
431
  }
230
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
+ }
231
469
  async function runTaskkill(pid, execFileImpl) {
232
470
  return (await runCommand('taskkill', ['/PID', String(pid), '/T', '/F'], execFileImpl, PROCESS_TREE_COMMAND_TIMEOUT_MS)) !== null;
233
471
  }
@@ -266,42 +504,61 @@ async function terminateWindowsProcessTree(state, requireConfirmedCleanup) {
266
504
  throw cleanupUnconfirmed('no inherited-pipe process identity was observed.');
267
505
  }
268
506
  }
269
- async function terminatePosixProcessTree(state, requireConfirmedCleanup, allowInspectionUnavailable) {
507
+ async function terminatePosixProcessTree(state, requireConfirmedCleanup, allowInspectionUnavailable, requireDescendantsExitedBeforeCompletion) {
270
508
  await state.initialLookup;
509
+ state.disposed = true;
510
+ if (state.pollTimer)
511
+ clearTimeout(state.pollTimer);
271
512
  const execFileImpl = state.dependencies.execFile ?? defaultExecFile;
272
513
  const kill = state.dependencies.kill ?? process.kill.bind(process);
273
514
  const deadline = Date.now() + PROCESS_TREE_COMMAND_TIMEOUT_MS;
274
- 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;
275
529
  if (!snapshot) {
276
530
  if (!requireConfirmedCleanup && allowInspectionUnavailable)
277
531
  return;
278
- throw cleanupUnconfirmed('POSIX process identity lookup failed.');
532
+ throw state.failure ?? cleanupUnconfirmed('POSIX process identity lookup failed.');
279
533
  }
280
- if (state.marker !== undefined && !snapshot.markerLookupSucceeded) {
281
- 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);
282
541
  }
283
- let markerLookupEverFailed = state.marker !== undefined && !snapshot.markerLookupSucceeded;
284
- refreshObservedProcesses(state, snapshot.table, snapshot.markerPids);
285
542
  const observedAtTermination = new Set([...state.descendants.values()]
286
543
  .filter((identity) => posixIdentityMatches(identity, snapshot))
287
544
  .map((identity) => `${identity.pid}:${identity.startTime}`));
288
545
  while (Date.now() < deadline) {
546
+ signalProcessGroup(processGroupCurrentlyVerified ? safelyOwnedProcessGroup(state, snapshot) : undefined, 'SIGSTOP', kill);
289
547
  if (posixIdentityMatches(state.root, snapshot)) {
290
548
  signalIdentity(state.root, snapshot, 'SIGSTOP', kill);
291
549
  }
292
550
  for (const identity of [...state.descendants.values()].reverse()) {
293
551
  signalIdentity(identity, snapshot, 'SIGSTOP', kill);
294
552
  }
295
- const next = await readPosixProcessTable(execFileImpl, state.markerEnvironmentVariable, state.marker, Math.max(1, deadline - Date.now()));
296
- if (!next)
297
- break;
298
- markerLookupEverFailed ||=
299
- state.marker !== undefined && !next.markerLookupSucceeded;
300
- if (markerLookupEverFailed)
553
+ const next = await inspect(Math.max(1, deadline - Date.now()));
554
+ if (!next) {
555
+ processGroupCurrentlyVerified = false;
301
556
  break;
557
+ }
302
558
  snapshot = next;
559
+ processGroupCurrentlyVerified = true;
303
560
  const previousSize = state.descendants.size;
304
- refreshObservedProcesses(state, snapshot.table, snapshot.markerPids);
561
+ signalProcessGroup(safelyOwnedProcessGroup(state, snapshot), 'SIGSTOP', kill);
305
562
  if (posixIdentityMatches(state.root, snapshot)) {
306
563
  signalIdentity(state.root, snapshot, 'SIGSTOP', kill);
307
564
  }
@@ -319,19 +576,21 @@ async function terminatePosixProcessTree(state, requireConfirmedCleanup, allowIn
319
576
  }
320
577
  const killed = [state.root, ...state.descendants.values()].filter((identity) => identity !== undefined &&
321
578
  posixIdentityMatches(identity, snapshot));
579
+ const ownedPgid = processGroupCurrentlyVerified
580
+ ? safelyOwnedProcessGroup(state, snapshot)
581
+ : undefined;
322
582
  for (const identity of killed.reverse()) {
323
583
  signalIdentity(identity, snapshot, 'SIGKILL', kill);
324
584
  }
325
- if (markerLookupEverFailed) {
326
- throw cleanupUnconfirmed('POSIX process marker lookup failed.');
327
- }
328
- if (!requireConfirmedCleanup)
585
+ signalProcessGroup(ownedPgid, 'SIGKILL', kill);
586
+ if (!requireConfirmedCleanup) {
587
+ if (state.failure)
588
+ throw state.failure;
329
589
  return;
330
- const verified = await readPosixProcessTable(execFileImpl, state.markerEnvironmentVariable, state.marker);
331
- if (!verified)
332
- throw cleanupUnconfirmed('POSIX termination verification failed.');
333
- if (!verified.markerLookupSucceeded) {
334
- 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.');
335
594
  }
336
595
  const stillRunning = killed.some((identity) => {
337
596
  if (!posixIdentityMatches(identity, verified))
@@ -342,19 +601,16 @@ async function terminatePosixProcessTree(state, requireConfirmedCleanup, allowIn
342
601
  throw cleanupUnconfirmed('a verified POSIX descendant is still running.');
343
602
  const unobservedMarkedProcess = state.marker === undefined
344
603
  ? false
345
- : [...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'));
346
606
  if (unobservedMarkedProcess) {
347
607
  throw cleanupUnconfirmed('an unverified marker process is still running.');
348
608
  }
349
- if (requireConfirmedCleanup &&
350
- state.marker !== undefined &&
351
- state.root === undefined &&
352
- state.descendants.size === 0) {
353
- throw cleanupUnconfirmed('no marked process identity was observed.');
354
- }
355
609
  if (requireConfirmedCleanup && state.marker === undefined && observedAtTermination.size === 0) {
356
610
  throw cleanupUnconfirmed('no inherited-pipe process identity was observed.');
357
611
  }
612
+ if (state.failure)
613
+ throw state.failure;
358
614
  }
359
615
  export async function terminateProcessTree(pid, killDirectChild, dependencies = {}, options = {}) {
360
616
  const platform = dependencies.platform ?? process.platform;
@@ -369,7 +625,7 @@ export async function terminateProcessTree(pid, killDirectChild, dependencies =
369
625
  await terminateWindowsProcessTree(state, options.requireConfirmedCleanup ?? false);
370
626
  return;
371
627
  }
372
- await terminatePosixProcessTree(state, options.requireConfirmedCleanup ?? false, options.allowInspectionUnavailable ?? false);
628
+ await terminatePosixProcessTree(state, options.requireConfirmedCleanup ?? false, options.allowInspectionUnavailable ?? false, options.requireDescendantsExitedBeforeCompletion ?? false);
373
629
  }
374
630
  finally {
375
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAInC,MAAM,0BAA0B,GAAG,8BAA8B,CAAC;AAClE,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAC9C,MAAM,oCAAoC,GAAG,EAAE,CAAC;AAChD,MAAM,6BAA6B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAkFvD,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAA4C,CAAC;AAElF,MAAM,eAAe,GAAqD,CACxE,OAAO,EACP,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAElF,SAAS,UAAU,CACjB,OAAe,EACf,IAAc,EACd,YAA8D,EAC9D,SAAiB;IAEjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,MAAqB,EAAQ,EAAE;YAC7C,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,IAAI,CAAC;YACH,YAAY,CACV,OAAO,EACP,IAAI,EACJ;gBACE,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,6BAA6B;aACzC,EACD,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CACjD,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAc;IAC5C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,gDAAgD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC/B,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC3B,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;gBACpB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;aACzB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,WAAW,GAAG,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,WAAW;YAAE,SAAS;QAC3B,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YAChC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5B,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;YACrB,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAAc,EACd,yBAAiC,EACjC,MAAc;IAEd,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,UAAU,GAAG,GAAG,yBAAyB,IAAI,MAAM,EAAE,CAAC;IAC5D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,YAA8D,EAC9D,yBAAiC,EACjC,MAAe,EACf,YAAoB,+BAA+B,EACnD,kBAA2B;IAE3B,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,iCAAiC,CAAC,CAAC;IACrE,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvD,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC;QACvD,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACrB,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC;KACpF,CAAC,CAAC;IACH,IAAI,cAAc,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,KAAK,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,MAAM,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI;QAC9D,CAAC,CAAC,IAAI,GAAG,EAAU;QACnB,CAAC,CAAC,qBAAqB,CAAC,YAAY,EAAE,yBAAyB,EAAE,MAAM,CAAC,CAAC;IAC3E,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;IAChD,MAAM,aAAa,GAAG,kBAAkB,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC1F,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAClC,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,kBAAkB,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QACzF,IAAI,kBAAkB,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC7C,MAAM,cAAc,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,kBAAmB,CAAC,CAAC;QAC3F,IACE,cAAc,EAAE,SAAS,KAAK,aAAa,CAAC,SAAS;YACrD,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EACtC,CAAC;YACD,qBAAqB,CAAC,GAAG,CAAC,kBAAmB,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO;QACL,KAAK;QACL,UAAU;QACV,qBAAqB,EAAE,MAAM,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI;QACpE,qBAAqB;KACtB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,yBAAiC,EACjC,MAAc;IAEd,MAAM,KAAK,GAAG,KAAK,CACjB,OAAO,CAAC,QAAQ,EAChB,CAAC,IAAI,EAAE,+BAA+B,CAAC,EACvC;QACE,GAAG,EAAE,EAAE,CAAC,yBAAyB,CAAC,EAAE,MAAM,EAAE;QAC5C,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,IAAI;KAClB,CACF,CAAC;IACF,MAAM,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3B,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;QAAE,MAAM,kBAAkB,CAAC,oCAAoC,CAAC,CAAC;IAC5F,OAAO;QACL,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;gBAAE,OAAO;YACjE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC1D,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,mDAAmD;YACrD,CAAC;YACD,MAAM,MAAM,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAA8B,EAC9B,KAAiC;IAEjC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACpC,OAAO,kBAAkB,CAAC,qCAAqC,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7D,IACE,aAAa,EAAE,SAAS,KAAK,KAAK,CAAC,QAAQ,CAAC,SAAS;QACrD,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC5C,CAAC;QACD,OAAO,kBAAkB,CAAC,kDAAkD,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACrD,eAAwC,EAAE;IAE1C,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IAC3D,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAClD,MAAM,kBAAkB,CAAC,wCAAwC,QAAQ,GAAG,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,yBAAyB,GAC7B,YAAY,CAAC,yBAAyB,IAAI,0BAA0B,CAAC;IACvE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,cAAc,IAAI,qBAAqB,CAAC,CAC3E,yBAAyB,EACzB,MAAM,CACP,CAAC;IACF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAC1C,YAAY,CAAC,QAAQ,IAAI,eAAe,EACxC,yBAAyB,EACzB,MAAM,CACP,CAAC;QACF,IAAI,CAAC,QAAQ;YAAE,MAAM,kBAAkB,CAAC,uCAAuC,CAAC,CAAC;QACjF,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YACpC,MAAM,kBAAkB,CAAC,qCAAqC,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,kBAAkB,CAAC,kDAAkD,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;YAC3D,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,IAAI,QAAQ;oBAAE,OAAO;gBACrB,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxB,CAAC;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAc;IAC9C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YAC1B,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAC9B,YAA8D;IAE9D,MAAM,MAAM,GAAG;QACb,kDAAkD;QAClD,4FAA4F;QAC5F,GAAG;KACJ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,OAAO,UAAU,CACf,gBAAgB,EAChB,CAAC,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,CAAC,EACrD,YAAY,EACZ,+BAA+B,CAChC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAiC,EACjC,gBAA8C,EAC9C,KAAwC;IAExC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAoB,CAAC;IACrD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzB,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACvD,CAAC,QAAQ,EAA+B,EAAE,CACxC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,KAAK,QAAQ,CAAC,SAAS,CACtF,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAG,CAAC;QAChC,KAAK,MAAM,aAAa,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/D,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;gBAAE,SAAS;YACzC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;YACxC,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC1D,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;gBAAE,SAAS;YAC3E,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACxF,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAuB,EACvB,KAAwC,EACxC,aAAkC,IAAI,GAAG,EAAE,EAC3C,yBAAkC,KAAK;IAEvC,IACE,KAAK,CAAC,IAAI,KAAK,SAAS;QACxB,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;YACxB,sBAAsB;YACtB,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAC7F,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IACzE,CAAC;IACD,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACnC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG;YAAE,SAAS;QACtD,IAAI,SAAS,KAAK,KAAK,CAAC,IAAI,EAAE,GAAG;YAAE,SAAS;QAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;YAClD,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IACD,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAuB,EAAE,KAAY;IACpE,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO;IAC1B,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,gBAAgB;QAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAuB,EACvB,QAA8B;IAE9B,IAAI,CAAC,QAAQ,CAAC,qBAAqB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClE,uBAAuB,CACrB,KAAK,EACL,kBAAkB,CAAC,qCAAqC,CAAC,CAC1D,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,YAAY,EAAE,CAAC;YACjB,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChD,IACE,KAAK,CAAC,MAAM,KAAK,SAAS;QAC1B,KAAK,CAAC,YAAY,CAAC,8BAA8B,KAAK,IAAI;QAC1D,SAAS,KAAK,SAAS;QACvB,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC;QACjC,QAAQ,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAC7C,CAAC;QACD,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;QAChE,uBAAuB,CACrB,KAAK,EACL,kBAAkB,CAChB,qFAAqF,CACtF,CACF,CAAC;IACJ,CAAC;IACD,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,kBAAkB,GAAG,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,CACxD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAC3C,CAAC;QACF,IACE,KAAK,CAAC,YAAY,CAAC,8BAA8B,KAAK,IAAI;YAC1D,KAAK,CAAC,YAAY,KAAK,SAAS,EAChC,CAAC;YACD,IACE,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,KAAK,CAAC,GAAG;gBAC7B,SAAS,EAAE,SAAS,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS;gBAC7C,SAAS,CAAC,IAAI,KAAK,SAAS;gBAC5B,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAClC,CAAC;gBACD,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;oBACjC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;oBAChC,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC;gBAChC,CAAC;YACH,CAAC;iBAAM,IACL,SAAS,KAAK,SAAS;gBACvB,CACE,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,KAAK,SAAS,CAAC;oBAC7E,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACxC,GAAG,KAAK,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG;wBACjC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG;wBACxB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAC9B,CACF,EACD,CAAC;gBACD,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC;gBAC3B,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC;YACjC,CAAC;QACH,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,KAAK,OAAO;YACjD,CAAC,CAAC,KAAK,CAAC,QAAQ;YAChB,CAAC,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS;gBAChC,CAAC,CAAC,KAAK,CAAC,GAAG;gBACX,CAAC,CAAC,SAAS,CAAC;QAChB,IACE,YAAY,KAAK,SAAS;YAC1B,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtC,OAAO,KAAK,EAAE,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;YAClE,CAAC,CAAC,EACF,CAAC;YACD,uBAAuB,CACrB,KAAK,EACL,kBAAkB,CAChB,qFAAqF,CACtF,CACF,CAAC;QACJ,CAAC;QACD,MAAM,mBAAmB,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAC5E,CAAC,QAAQ,EAA+B,EAAE,CACxC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC;YACzC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAC5D,CAAC;QACF,MAAM,uBAAuB,GAC3B,KAAK,CAAC,YAAY,CAAC,8BAA8B,KAAK,IAAI;YAC1D,mBAAmB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpC,QAAQ,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CACrE,CAAC;QACJ,IAAI,4BAA4B,GAAG,KAAK,CAAC;QACzC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC5E,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;oBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACzC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;wBAClD,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;oBAClE,CAAC;gBACH,CAAC;gBACD,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvD,4BAA4B,GAAG,IAAI,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,uBAAuB,IAAI,4BAA4B,EAAE,CAAC;YAC5D,uBAAuB,CACrB,KAAK,EACL,kBAAkB,CAChB,qFAAqF,CACtF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,4BAA4B,CACnC,GAAW,EACX,MAA0B,EAC1B,YAAqC,EACrC,WAAoB,EACpB,KAAkC;IAElC,MAAM,WAAW,GAA2B;QAC1C,GAAG;QACH,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;YACtB,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,CAAC,KAAK;gBAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;YACnC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,KAAK,CAAC,OAAO;gBAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACtB,IAAI,KAAK,CAAC,SAAS;oBAAE,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;KACF,CAAC;IACF,MAAM,KAAK,GAAqB;QAC9B,GAAG;QACH,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ;QACnD,MAAM;QACN,yBAAyB,EACvB,YAAY,CAAC,yBAAyB,IAAI,0BAA0B;QACtE,KAAK;QACL,YAAY;QACZ,oBAAoB,EAAE,IAAI;QAC1B,WAAW,EAAE,IAAI,GAAG,EAA2B;QAC/C,gBAAgB,EAAE,IAAI,GAAG,EAA0B;QACnD,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE;KACjC,CAAC;IACF,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,WAAW;QAAE,OAAO,WAAW,CAAC;IACrC,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,IAAI,eAAe,CAAC;IAC9D,MAAM,OAAO,GAAG,GAAkB,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO;QAC7D,CAAC,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACrD,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK;gBAAE,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC,CAAC;QACF,CAAC,CAAC,qBAAqB,CACrB,YAAY,EACZ,KAAK,CAAC,yBAAyB,EAC/B,MAAM,EACN,+BAA+B,EAC/B,YAAY,CAAC,8BAA8B,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;YAC1E,CAAC,CAAC,KAAK,CAAC,GAAG;YACX,CAAC,CAAC,SAAS,CACd,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAClB,IAAI,KAAK,CAAC,QAAQ;gBAAE,OAAO;YAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,uBAAuB,CACrB,KAAK,EACL,kBAAkB,CAAC,uCAAuC,CAAC,CAC5D,CAAC;gBACF,OAAO;YACT,CAAC;YACD,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,MAAM,eAAe,GAAG,GAAS,EAAE;QACjC,IAAI,KAAK,CAAC,QAAQ;YAAE,OAAO;QAC3B,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,KAAK,OAAO,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC1C,CAAC,EAAE,oCAAoC,CAAC,CAAC;QACzC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC,CAAC;IACF,KAAK,CAAC,aAAa,GAAG,OAAO,EAAE,CAAC;IAChC,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO;QAAE,KAAK,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAClF,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,GAAW,EACX,MAA0B,EAC1B,eAAwC,EAAE,EAC1C,KAAkC;IAElC,OAAO,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,eAAwC,EAAE;IAE1C,MAAM,KAAK,GAAG,MAAM,iCAAiC,CAAC,YAAY,CAAC,CAAC;IACpE,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,OAAO,IAAI,KAAK,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,eAAe,CACtB,QAAqC,EACrC,KAAwC;IAExC,OAAO,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC;AAC7F,CAAC;AAED,SAAS,oBAAoB,CAC3B,QAAqC,EACrC,QAA8B;IAE9B,OAAO,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,cAAc,CACrB,QAAyB,EACzB,QAA8B,EAC9B,MAAmB,EACnB,IAAkD;IAElD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAAE,OAAO;IACtD,IAAI,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAAuB,EACvB,QAA8B;IAE9B,IACE,KAAK,CAAC,YAAY,CAAC,8BAA8B,KAAK,IAAI;QAC1D,KAAK,CAAC,MAAM,KAAK,SAAS;QAC1B,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC5B,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,GAAG;QAC5B,OAAO,SAAS,CAAC;IACnB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC5B,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CACvD,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CACrD,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1D,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAChC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,GAAG,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAC3F;QAAE,OAAO,SAAS,CAAC;IACpB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAwB,EACxB,MAAmB,EACnB,IAAkD;IAElD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO;IAC/B,IAAI,CAAC;QACH,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;IAC3D,CAAC;AACH,CAAC;AAED,SAAS,oCAAoC,CAC3C,KAAuB,EACvB,QAA8B;IAE9B,IAAI,KAAK,CAAC,YAAY,CAAC,8BAA8B,KAAK,IAAI;QAAE,OAAO;IACvE,MAAM,cAAc,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACvE,QAAQ,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;QAC1B,QAAQ,CAAC,GAAG,KAAK,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG;QAC1C,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACxC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAC1D,CAAC;IACF,IAAI,CAAC,cAAc;QAAE,OAAO;IAC5B,uBAAuB,CACrB,KAAK,EACL,kBAAkB,CAChB,0FAA0F,CAC3F,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,GAAW,EACX,YAA8D;IAE9D,OAAO,CAAC,MAAM,UAAU,CACtB,UAAU,EACV,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EACjC,YAAY,EACZ,+BAA+B,CAChC,CAAC,KAAK,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,KAAuB,EACvB,uBAAgC;IAEhC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,IAAI,eAAe,CAAC;IACpE,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;YAClD,MAAM,kBAAkB,CAAC,uCAAuC,CAAC,CAAC;QACpE,CAAC;QACD,OAAO;IACT,CAAC;IACD,MAAM,KAAK,CAAC,aAAa,CAAC;IAC1B,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,kBAAkB,CAAC,yCAAyC,CAAC,CAAC;IACtE,CAAC;IACD,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1E,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CACjC,CAAC;IACF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,MAAM,OAAO,GAAG,UAAU;QACxB,CAAC,CAAC,CAAC,UAAU,CAAC;QACd,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpC,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,CACvD,CAAC;IACJ,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CACnE,CAAC;IACF,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,MAAM,kBAAkB,CAAC,uCAAuC,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAClE,IAAI,CAAC,aAAa;QAAE,MAAM,kBAAkB,CAAC,0CAA0C,CAAC,CAAC;IACzF,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,GAAG,eAAe,CAAC,CAAC,MAAM,CAChE,CAAC,QAAQ,EAA+B,EAAE,CAAC,QAAQ,KAAK,SAAS,CAClE,CAAC;IACF,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;QACpF,MAAM,kBAAkB,CAAC,8CAA8C,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,uBAAuB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,kBAAkB,CAAC,kDAAkD,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,KAAuB,EACvB,uBAAgC,EAChC,0BAAmC,EACnC,wCAAiD;IAEjD,MAAM,KAAK,CAAC,aAAa,CAAC;IAC1B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,IAAI,KAAK,CAAC,SAAS;QAAE,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,IAAI,eAAe,CAAC;IACpE,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,+BAA+B,CAAC;IAC9D,MAAM,OAAO,GAAG,KAAK,EAAE,SAAiB,EAA6C,EAAE;QACrF,MAAM,IAAI,GAAG,MAAM,qBAAqB,CACtC,YAAY,EACZ,KAAK,CAAC,yBAAyB,EAC/B,KAAK,CAAC,MAAM,EACZ,SAAS,EACT,KAAK,CAAC,YAAY,CAAC,8BAA8B,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YACtF,CAAC,CAAC,KAAK,CAAC,GAAG;YACX,CAAC,CAAC,SAAS,CACd,CAAC;QACF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,uBAAuB,CACrB,KAAK,EACL,kBAAkB,CAAC,uCAAuC,CAAC,CAC5D,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC,CAAC;IACF,IAAI,QAAQ,GAAG,MAAM,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC9D,IAAI,6BAA6B,GAAG,QAAQ,KAAK,SAAS,CAAC;IAC3D,IAAI,CAAC,QAAQ;QAAE,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC;IAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,CAAC,uBAAuB,IAAI,0BAA0B;YAAE,OAAO;QACnE,MAAM,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAC,uCAAuC,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,CAAC,6BAA6B,IAAI,uBAAuB,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;QAC7F,IAAI,CAAC,uBAAuB,IAAI,0BAA0B;YAAE,OAAO;QACnE,MAAM,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAC,uCAAuC,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,wCAAwC,EAAE,CAAC;QAC7C,oCAAoC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,qBAAqB,GAAG,IAAI,GAAG,CACnC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;SAC5B,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnB,oBAAoB,CAAC,QAAQ,EAAE,QAAS,CAAC,CAC1C;SACA,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,CAC9D,CAAC;IAEF,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,kBAAkB,CAChB,6BAA6B,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EACpF,SAAS,EACT,IAAI,CACL,CAAC;QACF,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC/C,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACjE,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,6BAA6B,GAAG,KAAK,CAAC;YACtC,MAAM;QACR,CAAC;QACD,QAAQ,GAAG,IAAI,CAAC;QAChB,6BAA6B,GAAG,IAAI,CAAC;QACrC,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;QAC5C,kBAAkB,CAAC,uBAAuB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9E,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC/C,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACjE,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC/E,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAS,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC5D,MAAM,YAAY,GAAG,QAAS,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;YAC9D,OAAO,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,IAAI,SAAS,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY;YAAE,MAAM;IAClE,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC7E,QAAQ,KAAK,SAAS;QACtB,oBAAoB,CAAC,QAAQ,EAAE,QAAS,CAAC,CAC1C,CAAC;IACF,MAAM,SAAS,GAAG,6BAA6B;QAC7C,CAAC,CAAC,uBAAuB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC;IACd,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,OAAO;YAAE,MAAM,KAAK,CAAC,OAAO,CAAC;QACvC,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAC,wCAAwC,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC5C,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IACH,IAAI,YAAY;QAAE,MAAM,kBAAkB,CAAC,+CAA+C,CAAC,CAAC;IAC5F,MAAM,uBAAuB,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS;QACxD,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,GAAG,KAAK,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG;YACjC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CACjD,CAAC;IACJ,IAAI,uBAAuB,EAAE,CAAC;QAC5B,MAAM,kBAAkB,CAAC,gDAAgD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,uBAAuB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,qBAAqB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC9F,MAAM,kBAAkB,CAAC,kDAAkD,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,KAAK,CAAC,OAAO;QAAE,MAAM,KAAK,CAAC,OAAO,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAW,EACX,eAA6C,EAC7C,eAAwC,EAAE,EAC1C,UAAyC,EAAE;IAE3C,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW;QACrC,4BAA4B,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC/D,MAAM,kBAAkB,CAAC,iCAAiC,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,2BAA2B,CAC/B,KAAK,EACL,OAAO,CAAC,uBAAuB,IAAI,KAAK,CACzC,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,yBAAyB,CAC7B,KAAK,EACL,OAAO,CAAC,uBAAuB,IAAI,KAAK,EACxC,OAAO,CAAC,0BAA0B,IAAI,KAAK,EAC3C,OAAO,CAAC,wCAAwC,IAAI,KAAK,CAC1D,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,WAAW,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,eAAe,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;IACH,CAAC;AACH,CAAC"}
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;