@overkill-dev/run 0.0.41 → 0.0.43

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 (140) hide show
  1. package/assertion-protocol/source-location-forwarding.d.ts +4 -0
  2. package/assertion-protocol/source-location-forwarding.d.ts.map +1 -0
  3. package/engine/case-execution.d.ts +1 -0
  4. package/engine/case-execution.d.ts.map +1 -1
  5. package/engine/case-execution.js +112 -27
  6. package/engine/case-execution.js.map +1 -1
  7. package/engine/execution-async-leak-policy.d.ts.map +1 -1
  8. package/engine/execution-async-leak-policy.js +1 -0
  9. package/engine/execution-async-leak-policy.js.map +1 -1
  10. package/engine/execution-supervision.d.ts +1 -0
  11. package/engine/execution-supervision.d.ts.map +1 -1
  12. package/engine/execution-supervision.js +8 -1
  13. package/engine/execution-supervision.js.map +1 -1
  14. package/engine/execution.d.ts.map +1 -1
  15. package/engine/execution.js +37 -4
  16. package/engine/execution.js.map +1 -1
  17. package/engine/run-result.d.ts +11 -0
  18. package/engine/run-result.d.ts.map +1 -1
  19. package/engine/run-result.js +32 -0
  20. package/engine/run-result.js.map +1 -1
  21. package/engine/test-body-resource-attachment.d.ts +36 -0
  22. package/engine/test-body-resource-attachment.d.ts.map +1 -0
  23. package/engine/test-body-resource-attachment.js +81 -5
  24. package/engine/test-body-resource-attachment.js.map +1 -1
  25. package/engine/test-plan.d.ts +2 -0
  26. package/engine/test-plan.d.ts.map +1 -1
  27. package/engine/test-plan.js +9 -0
  28. package/engine/test-plan.js.map +1 -1
  29. package/package.json +5 -3
  30. package/packages/engine/engine.entry-point.d.ts +54 -0
  31. package/packages/engine/engine.entry-point.d.ts.map +1 -0
  32. package/packages/engine/engine.entry-point.js +2 -1
  33. package/packages/engine/engine.entry-point.js.map +1 -1
  34. package/packages/run/command-line.entry-point.d.ts.map +1 -1
  35. package/packages/run/command-line.entry-point.js +3 -2
  36. package/packages/run/command-line.entry-point.js.map +1 -1
  37. package/packages/run/run.entry-point.d.ts +1 -1
  38. package/packages/run/run.entry-point.d.ts.map +1 -1
  39. package/readme.md +19 -7
  40. package/run/child-process-protocol.js +30 -0
  41. package/run/child-process-protocol.js.map +1 -0
  42. package/run/child-process-roles.js +13 -0
  43. package/run/child-process-roles.js.map +1 -0
  44. package/run/child-process.entry-point.js +15 -0
  45. package/run/child-process.entry-point.js.map +1 -0
  46. package/run/collected-run-plan.js +1 -0
  47. package/run/collected-run-plan.js.map +1 -1
  48. package/run/current-process-run-orchestrator.d.ts +1 -0
  49. package/run/current-process-run-orchestrator.d.ts.map +1 -1
  50. package/run/current-process-run-orchestrator.js +1 -0
  51. package/run/current-process-run-orchestrator.js.map +1 -1
  52. package/run/node-command-line-runner.d.ts +2 -0
  53. package/run/node-command-line-runner.d.ts.map +1 -1
  54. package/run/node-command-line-runner.js +2 -1
  55. package/run/node-command-line-runner.js.map +1 -1
  56. package/run/node-worker-pool-factory.js +13 -0
  57. package/run/node-worker-pool-factory.js.map +1 -0
  58. package/run/resource-usage.d.ts +3 -1
  59. package/run/resource-usage.d.ts.map +1 -1
  60. package/run/resource-usage.js +2 -2
  61. package/run/resource-usage.js.map +1 -1
  62. package/run/run-collected-resolution.js +18 -2
  63. package/run/run-collected-resolution.js.map +1 -1
  64. package/run/run-config-schema.d.ts +45 -162
  65. package/run/run-config-schema.d.ts.map +1 -1
  66. package/run/run-config-schema.js +26 -0
  67. package/run/run-config-schema.js.map +1 -1
  68. package/run/run-config.d.ts +29 -14
  69. package/run/run-config.d.ts.map +1 -1
  70. package/run/run-config.js +20 -10
  71. package/run/run-config.js.map +1 -1
  72. package/run/run-facts.js +4 -0
  73. package/run/run-facts.js.map +1 -1
  74. package/run/run-host-process.js +86 -0
  75. package/run/run-host-process.js.map +1 -0
  76. package/run/run-if-main-facts.js +1 -0
  77. package/run/run-if-main-facts.js.map +1 -1
  78. package/run/run-isolated-command.js +7 -1
  79. package/run/run-isolated-command.js.map +1 -1
  80. package/run/run-local-resolution.js +3 -2
  81. package/run/run-local-resolution.js.map +1 -1
  82. package/run/run-orchestrator-dependencies.d.ts +20 -6
  83. package/run/run-orchestrator-dependencies.d.ts.map +1 -1
  84. package/run/run-orchestrator.d.ts +3 -3
  85. package/run/run-orchestrator.d.ts.map +1 -1
  86. package/run/run-orchestrator.entry-point.d.ts +1 -0
  87. package/run/run-orchestrator.entry-point.d.ts.map +1 -1
  88. package/run/run-orchestrator.entry-point.js +47 -40
  89. package/run/run-orchestrator.entry-point.js.map +1 -1
  90. package/run/run-orchestrator.js +7 -2
  91. package/run/run-orchestrator.js.map +1 -1
  92. package/run/run-selection.js +17 -10
  93. package/run/run-selection.js.map +1 -1
  94. package/run/run-support.js +30 -0
  95. package/run/run-support.js.map +1 -1
  96. package/run/run-types.d.ts +120 -0
  97. package/run/run-types.d.ts.map +1 -1
  98. package/run/run-types.js.map +1 -1
  99. package/run/run-validation.js +4 -0
  100. package/run/run-validation.js.map +1 -1
  101. package/run/supervised-child-process.d.ts +3 -3
  102. package/run/supervised-child-process.d.ts.map +1 -1
  103. package/run/supervised-child-process.js +4 -4
  104. package/run/supervised-child-process.js.map +1 -1
  105. package/run/supervised-child.entry-point.js +14 -7
  106. package/run/supervised-child.entry-point.js.map +1 -1
  107. package/run/supervised-protocol.js +9 -0
  108. package/run/supervised-protocol.js.map +1 -0
  109. package/run/supervised-run-runtime.js +8 -4
  110. package/run/supervised-run-runtime.js.map +1 -1
  111. package/run/supervised-run.js +17 -6
  112. package/run/supervised-run.js.map +1 -1
  113. package/run/tinypool-node-compatibility.js.map +1 -1
  114. package/run/work-distribution-config.js +81 -0
  115. package/run/work-distribution-config.js.map +1 -0
  116. package/run/work-unit-planning.js +212 -0
  117. package/run/work-unit-planning.js.map +1 -0
  118. package/run/worker-pool-collection.js +18 -6
  119. package/run/worker-pool-collection.js.map +1 -1
  120. package/run/worker-pool-execution.js +58 -29
  121. package/run/worker-pool-execution.js.map +1 -1
  122. package/run/worker-pool-host-process.js +328 -0
  123. package/run/worker-pool-host-process.js.map +1 -0
  124. package/run/worker-pool-host-protocol.js +50 -0
  125. package/run/worker-pool-host-protocol.js.map +1 -0
  126. package/run/worker-pool-host.entry-point.js +164 -0
  127. package/run/worker-pool-host.entry-point.js.map +1 -0
  128. package/run/worker-pool-run.js +38 -11
  129. package/run/worker-pool-run.js.map +1 -1
  130. package/run/worker-pool-runtime.js +38 -35
  131. package/run/worker-pool-runtime.js.map +1 -1
  132. package/run/worker-pool-worker-plan.js +5 -0
  133. package/run/worker-pool-worker-plan.js.map +1 -1
  134. package/run/worker-pool-worker.js +3 -3
  135. package/run/worker-pool-worker.js.map +1 -1
  136. package/sbom.cdx.json +4 -4
  137. package/run/supervised-child-process.entry-point.js +0 -6
  138. package/run/supervised-child-process.entry-point.js.map +0 -1
  139. package/run/supervised-protocol.d.ts +0 -49
  140. package/run/supervised-protocol.d.ts.map +0 -1
@@ -0,0 +1,328 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { childProcessEnvelope, envelopeMessage } from "./child-process-protocol.js";
3
+ import { childRoleArgument, workerPoolHostRole } from "./child-process-roles.js";
4
+ import { createResourceUsageFromSamples } from "./resource-usage.js";
5
+ import { sanitizedChildEnvironment } from "./supervised-child-process.js";
6
+ import { deserializeError, deserializeWorkerPoolMessage, workerPoolHostCorrelationId } from "./worker-pool-host-protocol.js";
7
+ function nextTaskId() {
8
+ return `worker-pool-task-${randomUUID()}`;
9
+ }
10
+ function signalNotReady() {
11
+ throw new Error('Hosted worker-pool signal was used before initialization.');
12
+ }
13
+ function createCompletionSignal() {
14
+ let resolveSignal = signalNotReady;
15
+ let rejectSignal = signalNotReady;
16
+ const promise = new Promise(function createSignal(resolve, reject) {
17
+ resolveSignal = resolve;
18
+ rejectSignal = reject;
19
+ });
20
+ return {
21
+ promise,
22
+ reject(error) {
23
+ rejectSignal(error);
24
+ },
25
+ resolve() {
26
+ resolveSignal();
27
+ }
28
+ };
29
+ }
30
+ function createStoredValue(initialValue) {
31
+ let currentValue = initialValue;
32
+ return {
33
+ read() {
34
+ return currentValue;
35
+ },
36
+ write(value) {
37
+ currentValue = value;
38
+ }
39
+ };
40
+ }
41
+ function createPendingHostTasks() {
42
+ const tasks = new Map();
43
+ return {
44
+ clear() {
45
+ tasks.clear();
46
+ },
47
+ delete(taskId) {
48
+ return tasks.delete(taskId);
49
+ },
50
+ get(taskId) {
51
+ return tasks.get(taskId);
52
+ },
53
+ set(taskId, task) {
54
+ tasks.set(taskId, task);
55
+ },
56
+ values() {
57
+ return tasks.values();
58
+ }
59
+ };
60
+ }
61
+ function createResourceUsageSamples() {
62
+ const samples = [];
63
+ return {
64
+ clear() {
65
+ samples.length = 0;
66
+ },
67
+ hasAny() {
68
+ return samples.length > 0;
69
+ },
70
+ push(sample) {
71
+ samples.push(sample);
72
+ },
73
+ read() {
74
+ return samples;
75
+ }
76
+ };
77
+ }
78
+ function createHostedWorkerPoolState() {
79
+ return {
80
+ outputSink: createStoredValue(null),
81
+ pendingTasks: createPendingHostTasks(),
82
+ resourceUsage: {
83
+ sampleListener: createStoredValue(null),
84
+ resolveFirstSample: createStoredValue(null),
85
+ samples: createResourceUsageSamples(),
86
+ start: createStoredValue(null)
87
+ },
88
+ runtime: createStoredValue(null)
89
+ };
90
+ }
91
+ function sendCommand(child, command) {
92
+ child?.send(childProcessEnvelope(workerPoolHostCorrelationId, command));
93
+ }
94
+ function taskWithoutPort(task) {
95
+ if (task.kind === 'collect') {
96
+ return {
97
+ command: task.command,
98
+ kind: 'collect'
99
+ };
100
+ }
101
+ return {
102
+ assignedWork: task.assignedWork,
103
+ command: task.command,
104
+ kind: 'run',
105
+ startedAtMilliseconds: task.startedAtMilliseconds
106
+ };
107
+ }
108
+ function createResourceUsage(samples) {
109
+ const first = samples[0];
110
+ const last = samples.at(-1);
111
+ if (first === undefined || last === undefined) {
112
+ throw new Error('Hosted worker-pool resource tracking did not receive samples.');
113
+ }
114
+ return createResourceUsageFromSamples(first, last, samples);
115
+ }
116
+ function observeChildOutput(child, readOutputSink) {
117
+ child.stdout?.on('data', function writeStdout(chunk) {
118
+ readOutputSink()?.('stdout', chunk);
119
+ });
120
+ child.stderr?.on('data', function writeStderr(chunk) {
121
+ readOutputSink()?.('stderr', chunk);
122
+ });
123
+ }
124
+ function rejectPendingTasks(state, error) {
125
+ for (const pendingTask of state.pendingTasks.values()) {
126
+ pendingTask.reject(error);
127
+ }
128
+ state.pendingTasks.clear();
129
+ }
130
+ function handleTaskResult(state, message) {
131
+ const pendingTask = state.pendingTasks.get(message.taskId);
132
+ state.pendingTasks.delete(message.taskId);
133
+ pendingTask?.resolve(message.result);
134
+ }
135
+ function handleTaskError(state, message) {
136
+ const pendingTask = state.pendingTasks.get(message.taskId);
137
+ state.pendingTasks.delete(message.taskId);
138
+ pendingTask?.reject(deserializeError(message.error));
139
+ }
140
+ function handleTaskMessage(state, message) {
141
+ state
142
+ .pendingTasks
143
+ .get(message.taskId)
144
+ ?.port
145
+ .postMessage(deserializeWorkerPoolMessage(message.message), []);
146
+ }
147
+ function handleResourceSample(state, message) {
148
+ state.resourceUsage.samples.push(message.sample);
149
+ state.resourceUsage.sampleListener.read()?.(message.sample);
150
+ state.resourceUsage.resolveFirstSample.read()?.();
151
+ state.resourceUsage.resolveFirstSample.write(null);
152
+ }
153
+ function handleHostMessage(state, message) {
154
+ if (message.kind === 'resource-sample') {
155
+ handleResourceSample(state, message);
156
+ }
157
+ else if (message.kind === 'task-error') {
158
+ handleTaskError(state, message);
159
+ }
160
+ else if (message.kind === 'task-message') {
161
+ handleTaskMessage(state, message);
162
+ }
163
+ else if (message.kind === 'task-result') {
164
+ handleTaskResult(state, message);
165
+ }
166
+ }
167
+ function hostNodeArguments(options) {
168
+ return options.hostProcess.kind === 'child' ? options.hostProcess.nodeArguments : [];
169
+ }
170
+ function handleRuntimeFailure(context, error) {
171
+ if (context.state.runtime.read()?.child === context.child) {
172
+ context.state.runtime.write(null);
173
+ }
174
+ context.configured.reject(error);
175
+ rejectPendingTasks(context.state, error);
176
+ context.finished.resolve();
177
+ }
178
+ function createRuntime(input, state) {
179
+ const child = input.startWorkerPoolHost({
180
+ cwd: input.options.cwd,
181
+ environmentVariables: input.environmentVariables,
182
+ nodeArguments: hostNodeArguments(input.options)
183
+ });
184
+ const configured = createCompletionSignal();
185
+ const finished = createCompletionSignal();
186
+ const failureContext = { child, configured, finished, state };
187
+ child.on('message', function receiveMessage(message) {
188
+ const hostMessage = envelopeMessage(message, workerPoolHostCorrelationId);
189
+ if (hostMessage?.kind === 'configured') {
190
+ configured.resolve();
191
+ }
192
+ else if (hostMessage !== null) {
193
+ handleHostMessage(state, hostMessage);
194
+ }
195
+ });
196
+ observeChildOutput(child, function readOutputSink() {
197
+ return state.outputSink.read();
198
+ });
199
+ child.on('error', function rejectTasks(error) {
200
+ handleRuntimeFailure(failureContext, error);
201
+ });
202
+ child.on('exit', function rejectTasksAfterExit() {
203
+ handleRuntimeFailure(failureContext, new Error('Hosted worker-pool process exited.'));
204
+ });
205
+ sendCommand(child, { kind: 'configure', options: input.options });
206
+ return { child, configured: configured.promise, finished: finished.promise };
207
+ }
208
+ async function activeRuntime(input, state) {
209
+ const currentRuntime = state.runtime.read() ?? createRuntime(input, state);
210
+ state.runtime.write(currentRuntime);
211
+ await currentRuntime.configured;
212
+ return currentRuntime;
213
+ }
214
+ function isWorkerPoolTask(value) {
215
+ return typeof value === 'object' &&
216
+ value !== null &&
217
+ Object.hasOwn(value, 'kind') &&
218
+ Object.hasOwn(value, 'port') &&
219
+ (Reflect.get(value, 'kind') === 'collect' || Reflect.get(value, 'kind') === 'run');
220
+ }
221
+ function readWorkerPoolTask(value) {
222
+ if (!isWorkerPoolTask(value)) {
223
+ throw new Error('Hosted worker-pool received an invalid task.');
224
+ }
225
+ return value;
226
+ }
227
+ async function requestHostResourceTracking(input, state, options) {
228
+ const hostRuntime = await activeRuntime(input, state);
229
+ sendCommand(hostRuntime.child, {
230
+ kind: 'start-resource-tracking',
231
+ samplingIntervalMilliseconds: options.samplingIntervalMilliseconds
232
+ });
233
+ }
234
+ async function waitForHostResourceTrackingStart(input, state, options, firstSample) {
235
+ await requestHostResourceTracking(input, state, options);
236
+ await firstSample;
237
+ }
238
+ function createTracker(input, state, options) {
239
+ return {
240
+ finish() {
241
+ state.resourceUsage.sampleListener.write(null);
242
+ state.resourceUsage.start.write(null);
243
+ sendCommand(state.runtime.read()?.child, { kind: 'finish-resource-tracking' });
244
+ return createResourceUsage(state.resourceUsage.samples.read());
245
+ },
246
+ start(onSample) {
247
+ state.resourceUsage.samples.clear();
248
+ state.resourceUsage.sampleListener.write(onSample ?? null);
249
+ const firstSample = new Promise(function waitForFirstSample(resolve) {
250
+ state.resourceUsage.resolveFirstSample.write(resolve);
251
+ });
252
+ state.resourceUsage.start.write(waitForHostResourceTrackingStart(input, state, options, firstSample));
253
+ },
254
+ async waitForStart() {
255
+ if (state.resourceUsage.samples.hasAny()) {
256
+ return;
257
+ }
258
+ await state.resourceUsage.start.read();
259
+ }
260
+ };
261
+ }
262
+ async function destroyHostedPool(state) {
263
+ const closingRuntime = state.runtime.read();
264
+ if (closingRuntime === null) {
265
+ return;
266
+ }
267
+ sendCommand(closingRuntime.child, { kind: 'destroy' });
268
+ state.runtime.write(null);
269
+ await closingRuntime.finished;
270
+ }
271
+ async function runHostedTask(input, state, task, options) {
272
+ const taskId = nextTaskId();
273
+ const workerPoolTask = readWorkerPoolTask(task);
274
+ const hostRuntime = await activeRuntime(input, state);
275
+ function abortHostTask() {
276
+ sendCommand(hostRuntime.child, { kind: 'abort-task', taskId });
277
+ }
278
+ try {
279
+ return await new Promise(function waitForHostTask(resolve, reject) {
280
+ state.pendingTasks.set(taskId, {
281
+ port: workerPoolTask.port,
282
+ reject,
283
+ resolve
284
+ });
285
+ options.signal.addEventListener('abort', abortHostTask, { once: true });
286
+ sendCommand(hostRuntime.child, {
287
+ kind: 'run-task',
288
+ task: taskWithoutPort(workerPoolTask),
289
+ taskId
290
+ });
291
+ });
292
+ }
293
+ finally {
294
+ options.signal.removeEventListener('abort', abortHostTask);
295
+ }
296
+ }
297
+ export function createWorkerPoolHostProcessStarter(dependencies) {
298
+ return function startWorkerPoolHost(options) {
299
+ return dependencies.fork(dependencies.childProcessEntryPoint, [childRoleArgument(workerPoolHostRole)], {
300
+ cwd: options.cwd,
301
+ env: sanitizedChildEnvironment(options.environmentVariables),
302
+ execArgv: Array.from(options.nodeArguments),
303
+ stdio: ['ignore', 'pipe', 'pipe', 'ipc']
304
+ });
305
+ };
306
+ }
307
+ export function createHostedWorkerPool(input) {
308
+ const state = createHostedWorkerPoolState();
309
+ return {
310
+ createResourceUsageTracker(options) {
311
+ return createTracker(input, state, options);
312
+ },
313
+ async destroy() {
314
+ return destroyHostedPool(state);
315
+ },
316
+ options: {
317
+ isolateWorkers: input.options.workerLifecycle === 'fresh-worker-per-unit',
318
+ maxThreads: input.options.workerCount
319
+ },
320
+ async run(task, options) {
321
+ return runHostedTask(input, state, task, options);
322
+ },
323
+ setHostOutputSink(sink) {
324
+ state.outputSink.write(sink);
325
+ }
326
+ };
327
+ }
328
+ //# sourceMappingURL=worker-pool-host-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-pool-host-process.js","sourceRoot":"","sources":["../../../../source/run/worker-pool-host-process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ export const workerPoolHostCorrelationId = 'worker-pool-host';
2
+ export function serializeError(error) {
3
+ if (error instanceof Error) {
4
+ return {
5
+ message: error.message,
6
+ name: error.name,
7
+ stack: error.stack ?? null
8
+ };
9
+ }
10
+ return {
11
+ message: String(error),
12
+ name: 'Error',
13
+ stack: null
14
+ };
15
+ }
16
+ export function deserializeError(error) {
17
+ const deserializedError = new Error(error.message);
18
+ Object.defineProperties(deserializedError, {
19
+ name: {
20
+ value: error.name
21
+ },
22
+ stack: {
23
+ value: error.stack ?? deserializedError.stack
24
+ }
25
+ });
26
+ return deserializedError;
27
+ }
28
+ export function serializeWorkerPoolMessage(message) {
29
+ if (message.kind === 'event') {
30
+ return message;
31
+ }
32
+ return {
33
+ capturedAtMilliseconds: message.capturedAtMilliseconds,
34
+ chunkBase64: Buffer.from(message.chunk).toString('base64'),
35
+ kind: 'output',
36
+ stream: message.stream
37
+ };
38
+ }
39
+ export function deserializeWorkerPoolMessage(message) {
40
+ if (message.kind === 'event') {
41
+ return message;
42
+ }
43
+ return {
44
+ capturedAtMilliseconds: message.capturedAtMilliseconds,
45
+ chunk: Buffer.from(message.chunkBase64, 'base64'),
46
+ kind: 'output',
47
+ stream: message.stream
48
+ };
49
+ }
50
+ //# sourceMappingURL=worker-pool-host-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-pool-host-protocol.js","sourceRoot":"","sources":["../../../../source/run/worker-pool-host-protocol.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,2BAA2B,GAAG,kBAAkB,CAAC;AAwE9D,MAAM,UAAU,cAAc,CAAC,KAAc;IACzC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO;YACH,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;SAC7B,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;QACtB,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,IAAI;KACd,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAsB;IACnD,MAAM,iBAAiB,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,EAAE;QACvC,IAAI,EAAE;YACF,KAAK,EAAE,KAAK,CAAC,IAAI;SACpB;QACD,KAAK,EAAE;YACH,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,iBAAiB,CAAC,KAAK;SAChD;KACJ,CAAC,CAAC;IAEH,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAA0B;IACjE,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO;QACH,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;QACtD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1D,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,OAAO,CAAC,MAAM;KACzB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,OAAoC;IAC7E,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO;QACH,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;QACtD,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC;QACjD,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,OAAO,CAAC,MAAM;KACzB,CAAC;AACN,CAAC"}
@@ -0,0 +1,164 @@
1
+ import { MessageChannel as NodeMessageChannel } from 'node:worker_threads';
2
+ import { createWallClock } from '@enormora/wall-clock';
3
+ import { childProcessEnvelope, envelopeMessage } from "./child-process-protocol.js";
4
+ import { createNodeResourceUsageTracker } from "./resource-usage.js";
5
+ import { createTinypoolWorkerPool, workerPoolEntryPoint } from "./worker-pool-runtime.js";
6
+ import { serializeError, serializeWorkerPoolMessage, workerPoolHostCorrelationId } from "./worker-pool-host-protocol.js";
7
+ const sendMessage = process.send?.bind(process);
8
+ function createStoredValue(initialValue) {
9
+ let currentValue = initialValue;
10
+ return {
11
+ read() {
12
+ return currentValue;
13
+ },
14
+ write(value) {
15
+ currentValue = value;
16
+ }
17
+ };
18
+ }
19
+ function createActiveHostTasks() {
20
+ const tasks = new Map();
21
+ return {
22
+ delete(taskId) {
23
+ return tasks.delete(taskId);
24
+ },
25
+ get(taskId) {
26
+ return tasks.get(taskId);
27
+ },
28
+ set(taskId, task) {
29
+ tasks.set(taskId, task);
30
+ }
31
+ };
32
+ }
33
+ const state = {
34
+ activeTasks: createActiveHostTasks(),
35
+ commandHandling: createStoredValue(null),
36
+ pool: createStoredValue(null),
37
+ resourceUsageTracker: createStoredValue(null)
38
+ };
39
+ function send(message) {
40
+ sendMessage?.(childProcessEnvelope(workerPoolHostCorrelationId, message));
41
+ }
42
+ function portTransferList(port) {
43
+ return [port];
44
+ }
45
+ function configuredPool(hostState) {
46
+ const pool = hostState.pool.read();
47
+ if (pool === null) {
48
+ throw new Error('Hosted worker pool was not configured.');
49
+ }
50
+ return pool;
51
+ }
52
+ function configure(command) {
53
+ state.pool.write(createTinypoolWorkerPool({
54
+ ...command.options,
55
+ filename: workerPoolEntryPoint
56
+ }));
57
+ send({ kind: 'configured' });
58
+ }
59
+ function forwardTaskMessage(taskId, message) {
60
+ send({
61
+ kind: 'task-message',
62
+ message: serializeWorkerPoolMessage(message),
63
+ taskId
64
+ });
65
+ }
66
+ function taskWithHostPort(command) {
67
+ const { port1, port2 } = new NodeMessageChannel();
68
+ const controller = new AbortController();
69
+ state.activeTasks.set(command.taskId, { controller, port: port2 });
70
+ port2.on('message', function receiveTaskMessage(message) {
71
+ forwardTaskMessage(command.taskId, message);
72
+ });
73
+ return {
74
+ controller,
75
+ port1,
76
+ task: {
77
+ ...command.task,
78
+ port: port1
79
+ }
80
+ };
81
+ }
82
+ async function runTask(command) {
83
+ const task = taskWithHostPort(command);
84
+ try {
85
+ send({
86
+ kind: 'task-result',
87
+ result: await configuredPool(state).run(task.task, {
88
+ name: 'runTask',
89
+ signal: task.controller.signal,
90
+ transferList: portTransferList(task.port1)
91
+ }),
92
+ taskId: command.taskId
93
+ });
94
+ }
95
+ catch (error) {
96
+ send({
97
+ error: serializeError(error),
98
+ kind: 'task-error',
99
+ taskId: command.taskId
100
+ });
101
+ }
102
+ finally {
103
+ task.port1.close();
104
+ state.activeTasks.get(command.taskId)?.port.close();
105
+ state.activeTasks.delete(command.taskId);
106
+ }
107
+ }
108
+ function abortTask(command) {
109
+ state.activeTasks.get(command.taskId)?.controller.abort();
110
+ }
111
+ function startResourceTracking(command) {
112
+ state.resourceUsageTracker.write(createNodeResourceUsageTracker(createWallClock(), {
113
+ samplingIntervalMilliseconds: command.samplingIntervalMilliseconds
114
+ }));
115
+ state.resourceUsageTracker.read()?.start(function sendSample(sample) {
116
+ send({ kind: 'resource-sample', sample });
117
+ });
118
+ }
119
+ function finishResourceTracking() {
120
+ const resourceUsageTracker = state.resourceUsageTracker.read();
121
+ if (resourceUsageTracker === null) {
122
+ return;
123
+ }
124
+ send({
125
+ kind: 'resource-usage',
126
+ resourceUsage: resourceUsageTracker.finish()
127
+ });
128
+ state.resourceUsageTracker.write(null);
129
+ }
130
+ async function destroy() {
131
+ const poolToDestroy = state.pool.read();
132
+ state.pool.write(null);
133
+ finishResourceTracking();
134
+ await poolToDestroy?.destroy();
135
+ send({ kind: 'destroyed' });
136
+ process.disconnect?.();
137
+ }
138
+ function handleCommand(command) {
139
+ if (command.kind === 'configure') {
140
+ configure(command);
141
+ }
142
+ else if (command.kind === 'run-task') {
143
+ state.commandHandling.write(runTask(command));
144
+ }
145
+ else if (command.kind === 'abort-task') {
146
+ abortTask(command);
147
+ }
148
+ else if (command.kind === 'start-resource-tracking') {
149
+ startResourceTracking(command);
150
+ }
151
+ else if (command.kind === 'finish-resource-tracking') {
152
+ finishResourceTracking();
153
+ }
154
+ else {
155
+ state.commandHandling.write(destroy());
156
+ }
157
+ }
158
+ process.on('message', function receiveHostCommand(message) {
159
+ const command = envelopeMessage(message, workerPoolHostCorrelationId);
160
+ if (command !== null) {
161
+ handleCommand(command);
162
+ }
163
+ });
164
+ //# sourceMappingURL=worker-pool-host.entry-point.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-pool-host.entry-point.js","sourceRoot":"","sources":["../../../../source/run/worker-pool-host.entry-point.ts"],"names":[],"mappings":"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"}
@@ -2,24 +2,38 @@ import { createSupervisedRunState } from "./supervised-run-state.js";
2
2
  import { collectInWorkerPool } from "./worker-pool-collection.js";
3
3
  import { executeWorkerPoolUnits, reportRunStart, startPoolResourceTracking } from "./worker-pool-execution.js";
4
4
  import { createEmptyWorkerPoolResult, finishWorkerPoolRun } from "./worker-pool-results.js";
5
- import { createWorkerPoolRuntime, fileUnits, workerPoolCollectedPlan } from "./worker-pool-runtime.js";
5
+ import { createWorkerPoolRuntime, workerPoolPlacementPlan } from "./worker-pool-runtime.js";
6
6
  export async function collectWorkerPoolRun(command, dependencies) {
7
7
  return await collectInWorkerPool(command, dependencies, createSupervisedRunState());
8
8
  }
9
- async function executeWorkerPoolRunWithState(resolvedRun, dependencies, collectionRunState) {
10
- if (fileUnits(workerPoolCollectedPlan(resolvedRun)).length === 0) {
9
+ async function releaseRuntimePool(runtime, shouldDestroy) {
10
+ runtime.pool.setHostOutputSink?.(null);
11
+ if (shouldDestroy) {
12
+ await runtime.pool.destroy();
13
+ }
14
+ }
15
+ async function finishExecution(runtime, resolvedRun, startedAtMilliseconds) {
16
+ await reportRunStart(runtime, startedAtMilliseconds);
17
+ await startPoolResourceTracking(runtime);
18
+ return await finishWorkerPoolRun(runtime, await executeWorkerPoolUnits(runtime, workerPoolPlacementPlan(resolvedRun), startedAtMilliseconds), startedAtMilliseconds);
19
+ }
20
+ async function executeWorkerPoolRunWithState(resolvedRun, dependencies, collectionRunState, createdPool = null) {
21
+ if (workerPoolPlacementPlan(resolvedRun).units.length === 0) {
11
22
  return await createEmptyWorkerPoolResult(resolvedRun, dependencies, collectionRunState);
12
23
  }
13
- const runtime = await createWorkerPoolRuntime(resolvedRun, dependencies, resolvedRun.collectionRunnerErrors, collectionRunState);
24
+ const runtime = await createWorkerPoolRuntime({
25
+ collectionRunnerErrors: resolvedRun.collectionRunnerErrors,
26
+ createdPool,
27
+ dependencies,
28
+ resolvedRun,
29
+ runState: collectionRunState
30
+ });
14
31
  const startedAtMilliseconds = dependencies.wallClock.currentTimestampInMilliseconds;
15
32
  try {
16
- await reportRunStart(runtime, startedAtMilliseconds);
17
- startPoolResourceTracking(runtime);
18
- const completedTaskRuns = await executeWorkerPoolUnits(runtime, fileUnits(runtime.collectedPlan), startedAtMilliseconds);
19
- return await finishWorkerPoolRun(runtime, completedTaskRuns, startedAtMilliseconds);
33
+ return await finishExecution(runtime, resolvedRun, startedAtMilliseconds);
20
34
  }
21
35
  finally {
22
- await runtime.pool.destroy();
36
+ await releaseRuntimePool(runtime, createdPool === null);
23
37
  }
24
38
  }
25
39
  export async function executeWorkerPoolRun(resolvedRun, dependencies) {
@@ -27,7 +41,20 @@ export async function executeWorkerPoolRun(resolvedRun, dependencies) {
27
41
  }
28
42
  export async function runWorkerPoolCommand(command, dependencies, createResolvedRun) {
29
43
  const collectionRunState = createSupervisedRunState();
30
- const collection = await collectInWorkerPool(command, dependencies, collectionRunState);
31
- return await executeWorkerPoolRunWithState(createResolvedRun(collection), dependencies, collectionRunState);
44
+ const pool = command.hostProcess.kind === 'child'
45
+ ? dependencies.createWorkerPool({
46
+ cwd: command.cwd,
47
+ hostProcess: command.hostProcess,
48
+ workerCount: dependencies.availableParallelism,
49
+ workerLifecycle: command.workerLifecycle
50
+ })
51
+ : null;
52
+ try {
53
+ const collection = await collectInWorkerPool(command, dependencies, collectionRunState, pool);
54
+ return await executeWorkerPoolRunWithState(createResolvedRun(collection), dependencies, collectionRunState, pool);
55
+ }
56
+ finally {
57
+ await pool?.destroy();
58
+ }
32
59
  }
33
60
  //# sourceMappingURL=worker-pool-run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-pool-run.js","sourceRoot":"","sources":["../../../../source/run/worker-pool-run.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,wBAAwB,EAE3B,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACH,sBAAsB,EACtB,cAAc,EACd,yBAAyB,EAC5B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACH,2BAA2B,EAC3B,mBAAmB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,uBAAuB,EACvB,SAAS,EACT,uBAAuB,EAE1B,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,OAA0B,EAC1B,YAAyC;IAEzC,OAAO,MAAM,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,KAAK,UAAU,6BAA6B,CACxC,WAAwB,EACxB,YAAyC,EACzC,kBAAsC;IAEtC,IAAI,SAAS,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,OAAO,MAAM,2BAA2B,CAAC,WAAW,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,uBAAuB,CACzC,WAAW,EACX,YAAY,EACZ,WAAW,CAAC,sBAAsB,EAClC,kBAAkB,CACrB,CAAC;IACF,MAAM,qBAAqB,GAAG,YAAY,CAAC,SAAS,CAAC,8BAA8B,CAAC;IAEpF,IAAI,CAAC;QACD,MAAM,cAAc,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;QACrD,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,iBAAiB,GAAG,MAAM,sBAAsB,CAClD,OAAO,EACP,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,EAChC,qBAAqB,CACxB,CAAC;QAEF,OAAO,MAAM,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;IACxF,CAAC;YAAS,CAAC;QACP,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,WAAwB,EACxB,YAAyC;IAEzC,OAAO,MAAM,6BAA6B,CAAC,WAAW,EAAE,YAAY,EAAE,wBAAwB,EAAE,CAAC,CAAC;AACtG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,OAA0B,EAC1B,YAAyC,EACzC,iBAA0E;IAE1E,MAAM,kBAAkB,GAAG,wBAAwB,EAAE,CAAC;IACtD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC;IAExF,OAAO,MAAM,6BAA6B,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC;AAChH,CAAC"}
1
+ {"version":3,"file":"worker-pool-run.js","sourceRoot":"","sources":["../../../../source/run/worker-pool-run.ts"],"names":[],"mappings":"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"}