@overkill-dev/run 0.0.17 → 0.0.19

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 (83) hide show
  1. package/engine/case-execution.d.ts +22 -0
  2. package/engine/case-execution.d.ts.map +1 -0
  3. package/engine/case-execution.js +10 -1
  4. package/engine/case-execution.js.map +1 -1
  5. package/engine/execution-result.js +4 -0
  6. package/engine/execution-result.js.map +1 -1
  7. package/engine/execution-supervision.d.ts +2 -0
  8. package/engine/execution-supervision.d.ts.map +1 -1
  9. package/engine/execution-supervision.js +28 -21
  10. package/engine/execution-supervision.js.map +1 -1
  11. package/engine/execution.d.ts +4 -1
  12. package/engine/execution.d.ts.map +1 -1
  13. package/engine/execution.js +9 -1
  14. package/engine/execution.js.map +1 -1
  15. package/engine/resource-usage-growth.js +12 -0
  16. package/engine/resource-usage-growth.js.map +1 -0
  17. package/engine/run-result.d.ts +3 -1
  18. package/engine/run-result.d.ts.map +1 -1
  19. package/engine/run-result.js.map +1 -1
  20. package/package.json +6 -3
  21. package/packages/run/run.entry-point.d.ts +2 -2
  22. package/packages/run/run.entry-point.d.ts.map +1 -1
  23. package/packages/run/run.entry-point.js +1 -1
  24. package/packages/run/run.entry-point.js.map +1 -1
  25. package/readme.md +39 -2
  26. package/run/capability-policy.d.ts +47 -0
  27. package/run/capability-policy.d.ts.map +1 -0
  28. package/run/capability-policy.js +395 -0
  29. package/run/capability-policy.js.map +1 -0
  30. package/run/collected-run-plan.js +100 -0
  31. package/run/collected-run-plan.js.map +1 -0
  32. package/run/command-line-runner.d.ts.map +1 -1
  33. package/run/command-line-runner.js +6 -3
  34. package/run/command-line-runner.js.map +1 -1
  35. package/run/node-host-readers.js +13 -0
  36. package/run/node-host-readers.js.map +1 -0
  37. package/run/node-process-capability-restrictions.js +92 -0
  38. package/run/node-process-capability-restrictions.js.map +1 -0
  39. package/run/run-config-schema.d.ts +5 -0
  40. package/run/run-config-schema.d.ts.map +1 -1
  41. package/run/run-config-schema.js +1 -0
  42. package/run/run-config-schema.js.map +1 -1
  43. package/run/run-config.d.ts.map +1 -1
  44. package/run/run-config.js +8 -2
  45. package/run/run-config.js.map +1 -1
  46. package/run/run-engine-selection.js +92 -0
  47. package/run/run-engine-selection.js.map +1 -0
  48. package/run/run-facts.js +103 -0
  49. package/run/run-facts.js.map +1 -0
  50. package/run/run-local-test-plan.js +25 -0
  51. package/run/run-local-test-plan.js.map +1 -0
  52. package/run/run-orchestrator.entry-point.d.ts +2 -0
  53. package/run/run-orchestrator.entry-point.d.ts.map +1 -0
  54. package/run/run-orchestrator.entry-point.js +31 -0
  55. package/run/run-orchestrator.entry-point.js.map +1 -0
  56. package/run/run-orchestrator.js +27 -33
  57. package/run/run-orchestrator.js.map +1 -1
  58. package/run/run-process-engine.js +40 -0
  59. package/run/run-process-engine.js.map +1 -0
  60. package/run/run-support.js +133 -0
  61. package/run/run-support.js.map +1 -0
  62. package/run/run-test-plan.js +20 -0
  63. package/run/run-test-plan.js.map +1 -0
  64. package/run/run-types.d.ts +60 -4
  65. package/run/run-types.d.ts.map +1 -1
  66. package/run/run-types.js.map +1 -1
  67. package/run/run-validation.js +122 -0
  68. package/run/run-validation.js.map +1 -0
  69. package/run/run.js +191 -329
  70. package/run/run.js.map +1 -1
  71. package/run/supervised-child-process.js +127 -0
  72. package/run/supervised-child-process.js.map +1 -0
  73. package/run/supervised-run-resource-policy.js +64 -0
  74. package/run/supervised-run-resource-policy.js.map +1 -0
  75. package/run/supervised-run-runtime.js +257 -0
  76. package/run/supervised-run-runtime.js.map +1 -0
  77. package/run/supervised-run-state.js +109 -0
  78. package/run/supervised-run-state.js.map +1 -0
  79. package/run/supervised-run.js +209 -299
  80. package/run/supervised-run.js.map +1 -1
  81. package/sbom.cdx.json +4 -4
  82. package/run/run-orchestrator.d.ts +0 -3
  83. package/run/run-orchestrator.d.ts.map +0 -1
@@ -0,0 +1,47 @@
1
+ import type { TestRuntimePolicy } from '../engine/case-execution.ts';
2
+ export type RuntimeCapabilityPolicy = TestRuntimePolicy & {
3
+ readonly recordViolation: (capability: RuntimePolicyCapability, message: string, strictness: RuntimePolicyStrictness) => void;
4
+ };
5
+ export type RuntimeCapabilityPolicyEnvironment = Readonly<Record<string, string | undefined>>;
6
+ declare const runtimePolicyCapabilities: {
7
+ readonly childProcess: "child-process";
8
+ readonly console: "console";
9
+ readonly cryptoRandom: "crypto-random";
10
+ readonly dynamicModuleLoad: "dynamic-module-load";
11
+ readonly fileRead: "fs-read";
12
+ readonly fileWrite: "fs-write";
13
+ readonly inspector: "inspector";
14
+ readonly network: "net";
15
+ readonly openSslStore: "openssl-store";
16
+ readonly processEnvironment: "process-env";
17
+ readonly processExecute: "process-execute";
18
+ readonly rawStderr: "raw-stderr";
19
+ readonly rawStdout: "raw-stdout";
20
+ readonly timer: "timer";
21
+ readonly wasi: "wasi";
22
+ readonly webLocks: "web-locks";
23
+ readonly worker: "worker";
24
+ };
25
+ type RuntimePolicyCapability = typeof runtimePolicyCapabilities[keyof typeof runtimePolicyCapabilities];
26
+ type RuntimePolicyStrictness = 'blocked' | 'observed';
27
+ type CapabilityPolicyOptions = {
28
+ readonly dependencies: RuntimeCapabilityPolicyDependencies;
29
+ readonly observedStderr: boolean;
30
+ readonly observedStdout: boolean;
31
+ };
32
+ export type WebStorageLike = {
33
+ readonly length: number;
34
+ readonly getItem: (key: string) => string | null;
35
+ readonly key: (index: number) => string | null;
36
+ };
37
+ export type RuntimeCapabilityPolicyDependencies = {
38
+ readonly installIpcRestriction: (record: (message: string) => void) => () => void;
39
+ readonly installProcessExecutionRestriction: (record: (message: string) => void) => () => void;
40
+ readonly readEnvironment: () => RuntimeCapabilityPolicyEnvironment;
41
+ readonly readStorage: (name: 'localStorage' | 'sessionStorage') => WebStorageLike | null;
42
+ };
43
+ export declare function isRuntimeCapabilityPolicyEnvironment(value: unknown): value is RuntimeCapabilityPolicyEnvironment;
44
+ export declare function isWebStorageLike(value: unknown): value is WebStorageLike;
45
+ export declare function createRuntimeCapabilityPolicy(options: CapabilityPolicyOptions): RuntimeCapabilityPolicy;
46
+ export {};
47
+ //# sourceMappingURL=capability-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-policy.d.ts","sourceRoot":"","sources":["../../../../source/run/capability-policy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GAAG;IACtD,QAAQ,CAAC,eAAe,EAAE,CACtB,UAAU,EAAE,uBAAuB,EACnC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,uBAAuB,KAClC,IAAI,CAAC;CACb,CAAC;AACF,MAAM,MAAM,kCAAkC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAE9F,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;CAkBrB,CAAC;AAEX,KAAK,uBAAuB,GAAG,OAAO,yBAAyB,CAAC,MAAM,OAAO,yBAAyB,CAAC,CAAC;AAGxG,KAAK,uBAAuB,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtD,KAAK,uBAAuB,GAAG;IAC3B,QAAQ,CAAC,YAAY,EAAE,mCAAmC,CAAC;IAC3D,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CACpC,CAAC;AAiBF,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAC9C,QAAQ,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAClF,QAAQ,CAAC,kCAAkC,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAC/F,QAAQ,CAAC,eAAe,EAAE,MAAM,kCAAkC,CAAC;IACnE,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,KAAK,cAAc,GAAG,IAAI,CAAC;CAC5F,CAAC;AA6GF,wBAAgB,oCAAoC,CAChD,KAAK,EAAE,OAAO,GACf,KAAK,IAAI,kCAAkC,CAM7C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAYxE;AAoSD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,uBAAuB,GAAG,uBAAuB,CAoFvG"}
@@ -0,0 +1,395 @@
1
+ import asyncHooks, { AsyncLocalStorage } from 'node:async_hooks';
2
+ import diagnosticsChannel from 'node:diagnostics_channel';
3
+ import { caseIdentityKey } from "../engine/identity.js";
4
+ const runtimePolicyCapabilities = {
5
+ childProcess: 'child-process',
6
+ console: 'console',
7
+ cryptoRandom: 'crypto-random',
8
+ dynamicModuleLoad: 'dynamic-module-load',
9
+ fileRead: 'fs-read',
10
+ fileWrite: 'fs-write',
11
+ inspector: 'inspector',
12
+ network: 'net',
13
+ openSslStore: 'openssl-store',
14
+ processEnvironment: 'process-env',
15
+ processExecute: 'process-execute',
16
+ rawStderr: 'raw-stderr',
17
+ rawStdout: 'raw-stdout',
18
+ timer: 'timer',
19
+ wasi: 'wasi',
20
+ webLocks: 'web-locks',
21
+ worker: 'worker'
22
+ };
23
+ const asyncFileResourceTypes = new Set([
24
+ 'FILEHANDLE',
25
+ 'FILEHANDLECLOSEREQ',
26
+ `${['FS', 'REQ'].join('')}CALLBACK`,
27
+ `${['FS', 'REQ'].join('')}PROMISE`
28
+ ]);
29
+ const processExecuteChannel = ['process.', 'exec', 've'].join('');
30
+ const randomResourceReport = {
31
+ capability: runtimePolicyCapabilities.cryptoRandom,
32
+ message: 'Runtime policy violation: asynchronous random resource.',
33
+ strictness: 'observed'
34
+ };
35
+ const staticAsyncResourceReports = {
36
+ RANDOMBYTESREQUEST: randomResourceReport,
37
+ RANDOMPRIMEREQUEST: randomResourceReport,
38
+ WORKER: {
39
+ capability: runtimePolicyCapabilities.worker,
40
+ message: 'Runtime policy violation: worker resource created.',
41
+ strictness: 'observed'
42
+ }
43
+ };
44
+ const diagnosticsCapabilities = {
45
+ 'console.debug': runtimePolicyCapabilities.console,
46
+ 'console.error': runtimePolicyCapabilities.console,
47
+ 'console.info': runtimePolicyCapabilities.console,
48
+ 'console.log': runtimePolicyCapabilities.console,
49
+ 'console.warn': runtimePolicyCapabilities.console,
50
+ 'http.client.request.created': runtimePolicyCapabilities.network,
51
+ 'http.client.request.error': runtimePolicyCapabilities.network,
52
+ 'http.client.request.start': runtimePolicyCapabilities.network,
53
+ 'locks.request.end': runtimePolicyCapabilities.webLocks,
54
+ 'locks.request.grant': runtimePolicyCapabilities.webLocks,
55
+ 'locks.request.miss': runtimePolicyCapabilities.webLocks,
56
+ 'locks.request.start': runtimePolicyCapabilities.webLocks,
57
+ 'net.client.socket': runtimePolicyCapabilities.network,
58
+ 'node:permission-model:child': runtimePolicyCapabilities.childProcess,
59
+ 'node:permission-model:ffi': runtimePolicyCapabilities.worker,
60
+ 'node:permission-model:fs': runtimePolicyCapabilities.fileRead,
61
+ 'node:permission-model:inspector': runtimePolicyCapabilities.inspector,
62
+ 'node:permission-model:net': runtimePolicyCapabilities.network,
63
+ 'node:permission-model:openssl-store': runtimePolicyCapabilities.openSslStore,
64
+ 'node:permission-model:wasi': runtimePolicyCapabilities.wasi,
65
+ 'node:permission-model:worker': runtimePolicyCapabilities.worker,
66
+ [processExecuteChannel]: runtimePolicyCapabilities.processExecute,
67
+ 'tracing:module.import:asyncStart': runtimePolicyCapabilities.dynamicModuleLoad,
68
+ 'tracing:module.import:start': runtimePolicyCapabilities.dynamicModuleLoad,
69
+ 'tracing:module.require:start': runtimePolicyCapabilities.dynamicModuleLoad,
70
+ 'udp.socket': runtimePolicyCapabilities.network,
71
+ worker_threads: runtimePolicyCapabilities.worker
72
+ };
73
+ function sortedEnvironmentEntries(environment) {
74
+ return Object
75
+ .entries(environment)
76
+ .filter(function hasValue(entry) {
77
+ return entry[1] !== undefined;
78
+ })
79
+ .toSorted(function compareEnvironmentEntries(first, second) {
80
+ return first[0].localeCompare(second[0]);
81
+ });
82
+ }
83
+ function environmentSnapshot(dependencies) {
84
+ const environment = dependencies.readEnvironment();
85
+ return {
86
+ entries: sortedEnvironmentEntries(environment),
87
+ object: environment
88
+ };
89
+ }
90
+ export function isRuntimeCapabilityPolicyEnvironment(value) {
91
+ return typeof value === 'object' &&
92
+ value !== null &&
93
+ Object.values(value).every(function validEnvironmentValue(entry) {
94
+ return typeof entry === 'string' || entry === undefined;
95
+ });
96
+ }
97
+ export function isWebStorageLike(value) {
98
+ if (typeof value !== 'object' || value === null) {
99
+ return false;
100
+ }
101
+ const length = Reflect.get(value, 'length');
102
+ const getItem = Reflect.get(value, 'getItem');
103
+ const key = Reflect.get(value, 'key');
104
+ return typeof length === 'number' &&
105
+ typeof getItem === 'function' &&
106
+ typeof key === 'function';
107
+ }
108
+ function storageSnapshot(dependencies, name) {
109
+ const storage = dependencies.readStorage(name);
110
+ if (!isWebStorageLike(storage)) {
111
+ return {
112
+ entries: [],
113
+ object: null
114
+ };
115
+ }
116
+ const entries = Array
117
+ .from({ length: storage.length }, function toStorageEntry(_unusedValue, index) {
118
+ const key = storage.key(index);
119
+ return key === null ? null : [key, storage.getItem(key) ?? ''];
120
+ })
121
+ .filter(function isEntry(entry) {
122
+ return entry !== null;
123
+ })
124
+ .toSorted(function compareStorageEntries(first, second) {
125
+ return first[0].localeCompare(second[0]);
126
+ });
127
+ return {
128
+ entries,
129
+ object: storage
130
+ };
131
+ }
132
+ function entriesChanged(before, after) {
133
+ if (before.length !== after.length) {
134
+ return true;
135
+ }
136
+ return before.some(function changed(entry, index) {
137
+ const afterEntry = after[index];
138
+ return afterEntry?.[0] !== entry[0] || afterEntry[1] !== entry[1];
139
+ });
140
+ }
141
+ function permissionCapability(message, fallback) {
142
+ if (typeof message !== 'object' || message === null) {
143
+ return fallback;
144
+ }
145
+ const permission = String(Reflect.get(message, 'permission'));
146
+ if (permission === 'FileSystemWrite') {
147
+ return runtimePolicyCapabilities.fileWrite;
148
+ }
149
+ if (permission === 'FileSystemRead') {
150
+ return runtimePolicyCapabilities.fileRead;
151
+ }
152
+ return fallback;
153
+ }
154
+ function asyncResourceReport(type, hasActiveCase) {
155
+ if (type === 'Timeout' && hasActiveCase) {
156
+ return {
157
+ capability: runtimePolicyCapabilities.timer,
158
+ message: 'Runtime policy violation: setTimeout/setInterval created a timer.',
159
+ strictness: 'observed'
160
+ };
161
+ }
162
+ if (asyncFileResourceTypes.has(type)) {
163
+ return {
164
+ capability: runtimePolicyCapabilities.fileRead,
165
+ message: `Runtime policy violation: asynchronous file resource ${type}.`,
166
+ strictness: 'observed'
167
+ };
168
+ }
169
+ return staticAsyncResourceReports[type] ?? null;
170
+ }
171
+ function createAsyncResourceHook(activeCaseStorage, recordViolation) {
172
+ const createHookKey = 'createHook';
173
+ const createHook = asyncHooks[createHookKey];
174
+ return createHook({
175
+ init(_asyncId, type) {
176
+ const report = asyncResourceReport(type, activeCaseStorage.getStore() !== undefined);
177
+ if (report !== null) {
178
+ recordViolation(report);
179
+ }
180
+ }
181
+ });
182
+ }
183
+ function runtimePolicyError(violation) {
184
+ return {
185
+ attributedTo: violation.caseId,
186
+ cause: violation,
187
+ message: violation.message,
188
+ subtype: 'runtime-policy'
189
+ };
190
+ }
191
+ function ignoredLoadCapability(capability) {
192
+ return capability === runtimePolicyCapabilities.dynamicModuleLoad ||
193
+ capability === runtimePolicyCapabilities.fileRead;
194
+ }
195
+ function ignoredViolation(violation, activeCase, loadComplete) {
196
+ return activeCase === undefined &&
197
+ (violation.capability === runtimePolicyCapabilities.fileRead ||
198
+ !loadComplete && ignoredLoadCapability(violation.capability));
199
+ }
200
+ function violationPhase(activeCase, loadComplete) {
201
+ if (activeCase !== undefined) {
202
+ return 'body';
203
+ }
204
+ return loadComplete ? 'out-of-test' : 'load';
205
+ }
206
+ function createDiagnosticsSubscriptions(recordViolation) {
207
+ return Object.entries(diagnosticsCapabilities).map(function subscribeToChannel([name, capability]) {
208
+ const channel = diagnosticsChannel.channel(name);
209
+ const listener = function recordDiagnostic(message) {
210
+ const resolvedCapability = name.startsWith('node:permission-model:')
211
+ ? permissionCapability(message, capability)
212
+ : capability;
213
+ recordViolation({
214
+ capability: resolvedCapability,
215
+ message: `Runtime policy violation: ${resolvedCapability}.`,
216
+ strictness: name.startsWith('node:permission-model:') ? 'blocked' : 'observed'
217
+ });
218
+ };
219
+ channel.subscribe(listener);
220
+ return {
221
+ unsubscribe() {
222
+ channel.unsubscribe(listener);
223
+ }
224
+ };
225
+ });
226
+ }
227
+ function environmentChanged(before, after) {
228
+ return before.environment.object !== after.object ||
229
+ entriesChanged(before.environment.entries, after.entries);
230
+ }
231
+ function storageChanged(before, after) {
232
+ return before.object !== after.object || entriesChanged(before.entries, after.entries);
233
+ }
234
+ function takeSnapshots(dependencies) {
235
+ return {
236
+ environment: environmentSnapshot(dependencies),
237
+ localStorage: storageSnapshot(dependencies, 'localStorage'),
238
+ sessionStorage: storageSnapshot(dependencies, 'sessionStorage')
239
+ };
240
+ }
241
+ function recordSnapshotChanges(before, dependencies, record) {
242
+ const afterEnvironment = environmentSnapshot(dependencies);
243
+ const afterSessionStorage = storageSnapshot(dependencies, 'sessionStorage');
244
+ const afterLocalStorage = storageSnapshot(dependencies, 'localStorage');
245
+ if (environmentChanged(before, afterEnvironment)) {
246
+ record({
247
+ capability: runtimePolicyCapabilities.processEnvironment,
248
+ message: 'Runtime policy violation: process.env changed.',
249
+ strictness: 'observed'
250
+ });
251
+ }
252
+ if (storageChanged(before.sessionStorage, afterSessionStorage)) {
253
+ record({
254
+ capability: runtimePolicyCapabilities.fileWrite,
255
+ message: 'Runtime policy violation: sessionStorage changed.',
256
+ strictness: 'observed'
257
+ });
258
+ }
259
+ if (storageChanged(before.localStorage, afterLocalStorage)) {
260
+ record({
261
+ capability: runtimePolicyCapabilities.fileWrite,
262
+ message: 'Runtime policy violation: localStorage changed.',
263
+ strictness: 'observed'
264
+ });
265
+ }
266
+ }
267
+ function installRuntimePolicyRestrictions(dependencies, record) {
268
+ const restoreProcessExecution = dependencies.installProcessExecutionRestriction(function recordProcessExecutionViolation(message) {
269
+ record({
270
+ capability: runtimePolicyCapabilities.processExecute,
271
+ message,
272
+ strictness: 'blocked'
273
+ });
274
+ });
275
+ const restoreIpc = dependencies.installIpcRestriction(function recordIpcViolation(message) {
276
+ record({
277
+ capability: runtimePolicyCapabilities.childProcess,
278
+ message,
279
+ strictness: 'blocked'
280
+ });
281
+ });
282
+ return function restoreRuntimePolicyRestrictions() {
283
+ restoreIpc();
284
+ restoreProcessExecution();
285
+ };
286
+ }
287
+ function startRuntimePolicyMonitoring(activeCaseStorage, record, dependencies) {
288
+ const subscriptions = createDiagnosticsSubscriptions(record);
289
+ const hook = createAsyncResourceHook(activeCaseStorage, record);
290
+ const restoreRestrictions = installRuntimePolicyRestrictions(dependencies, record);
291
+ hook.enable();
292
+ return { hook, restoreRestrictions, subscriptions };
293
+ }
294
+ function stopRuntimePolicyMonitoring(monitoring) {
295
+ monitoring.hook.disable();
296
+ monitoring.restoreRestrictions();
297
+ for (const subscription of monitoring.subscriptions) {
298
+ subscription.unsubscribe();
299
+ }
300
+ }
301
+ function rawOutputPolicyError(capability, message) {
302
+ return runtimePolicyError({
303
+ capability,
304
+ caseId: null,
305
+ message,
306
+ phase: 'out-of-test',
307
+ strictness: 'observed'
308
+ });
309
+ }
310
+ function rawOutputPolicyErrors(options) {
311
+ const errors = [];
312
+ if (options.observedStdout) {
313
+ errors.push(rawOutputPolicyError('raw-stdout', 'Runtime policy violation: unexpected stdout output.'));
314
+ }
315
+ if (options.observedStderr) {
316
+ errors.push(rawOutputPolicyError('raw-stderr', 'Runtime policy violation: unexpected stderr output.'));
317
+ }
318
+ return errors;
319
+ }
320
+ export function createRuntimeCapabilityPolicy(options) {
321
+ const activeCaseStorage = new AsyncLocalStorage();
322
+ const caseErrors = new Map();
323
+ const runErrors = [];
324
+ let loadComplete = false;
325
+ function record(violation) {
326
+ const activeCase = activeCaseStorage.getStore();
327
+ if (ignoredViolation(violation, activeCase, loadComplete)) {
328
+ return;
329
+ }
330
+ const completedViolation = {
331
+ ...violation,
332
+ caseId: activeCase?.id ?? null,
333
+ phase: violationPhase(activeCase, loadComplete)
334
+ };
335
+ const error = runtimePolicyError(completedViolation);
336
+ if (activeCase === undefined) {
337
+ runErrors.push(error);
338
+ return;
339
+ }
340
+ caseErrors.set(activeCase.key, [...caseErrors.get(activeCase.key) ?? [], error]);
341
+ }
342
+ function tryRecord(violation) {
343
+ try {
344
+ record(violation);
345
+ }
346
+ catch {
347
+ }
348
+ }
349
+ const monitoring = startRuntimePolicyMonitoring(activeCaseStorage, tryRecord, options.dependencies);
350
+ return {
351
+ recordViolation(capability, message, strictness) {
352
+ record({ capability, message, strictness });
353
+ },
354
+ async runCase(testCase, run) {
355
+ loadComplete = true;
356
+ const activeCase = {
357
+ id: testCase.id,
358
+ key: caseIdentityKey(testCase.id)
359
+ };
360
+ const before = takeSnapshots(options.dependencies);
361
+ try {
362
+ return await activeCaseStorage.run(activeCase, run);
363
+ }
364
+ finally {
365
+ activeCaseStorage.run(activeCase, function recordCaseSnapshotChanges() {
366
+ recordSnapshotChanges(before, options.dependencies, record);
367
+ });
368
+ }
369
+ },
370
+ async runLoad(run) {
371
+ const before = takeSnapshots(options.dependencies);
372
+ try {
373
+ return await run();
374
+ }
375
+ finally {
376
+ recordSnapshotChanges(before, options.dependencies, record);
377
+ loadComplete = true;
378
+ }
379
+ },
380
+ takeCaseErrors(testCase) {
381
+ const key = caseIdentityKey(testCase.id);
382
+ const errors = caseErrors.get(key) ?? [];
383
+ caseErrors.delete(key);
384
+ return errors;
385
+ },
386
+ takeRunErrors() {
387
+ stopRuntimePolicyMonitoring(monitoring);
388
+ runErrors.push(...rawOutputPolicyErrors(options));
389
+ const errors = Array.from(runErrors);
390
+ runErrors.length = 0;
391
+ return errors;
392
+ }
393
+ };
394
+ }
395
+ //# sourceMappingURL=capability-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-policy.js","sourceRoot":"","sources":["../../../../source/run/capability-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import "../compare/serialized-value.js";
2
+ import { caseIdentityKey, createCaseId } from "../engine/identity.js";
3
+ function collectedCaseId(file, testCase) {
4
+ return createCaseId(file, testCase.suite, testCase.name, testCase.params);
5
+ }
6
+ function collectedCases(plan) {
7
+ return plan.files.flatMap(function collectFileCases(file) {
8
+ return file.cases.map(function collectCase(testCase) {
9
+ return {
10
+ file: file.file,
11
+ testCase
12
+ };
13
+ });
14
+ });
15
+ }
16
+ function hasVerdict(verdict) {
17
+ return function resultHasVerdict(testResult) {
18
+ return testResult.verdict === verdict;
19
+ };
20
+ }
21
+ function suiteKey(suitePath) {
22
+ return suitePath.join(' > ');
23
+ }
24
+ function emptySuiteRunCounts() {
25
+ return { discovered: 0, executed: 0, planned: 0 };
26
+ }
27
+ function incrementSuiteRunCounts(counts, field) {
28
+ return {
29
+ discovered: counts.discovered + (field === 'discovered' ? 1 : 0),
30
+ executed: counts.executed + (field === 'executed' ? 1 : 0),
31
+ planned: counts.planned + (field === 'planned' ? 1 : 0)
32
+ };
33
+ }
34
+ function countSuitePath(counts, suitePath, field) {
35
+ let updatedCounts = counts;
36
+ for (let pathLength = 1; pathLength <= suitePath.length; pathLength += 1) {
37
+ const key = suiteKey(suitePath.slice(0, pathLength));
38
+ updatedCounts = {
39
+ ...updatedCounts,
40
+ [key]: incrementSuiteRunCounts(updatedCounts[key] ?? emptySuiteRunCounts(), field)
41
+ };
42
+ }
43
+ return updatedCounts;
44
+ }
45
+ function countSuites(plan, perTest) {
46
+ let counts = {};
47
+ const executedIds = new Set(perTest.map(function toIdentityKey(testResult) {
48
+ return caseIdentityKey(testResult.id);
49
+ }));
50
+ for (const collectedCase of collectedCases(plan)) {
51
+ counts = countSuitePath(counts, collectedCase.testCase.suite, 'discovered');
52
+ counts = countSuitePath(counts, collectedCase.testCase.suite, 'planned');
53
+ if (executedIds.has(caseIdentityKey(collectedCaseId(collectedCase.file, collectedCase.testCase)))) {
54
+ counts = countSuitePath(counts, collectedCase.testCase.suite, 'executed');
55
+ }
56
+ }
57
+ return counts;
58
+ }
59
+ function countOutcomes(plan, perTest) {
60
+ const planned = collectedCases(plan).length;
61
+ return {
62
+ crashed: perTest.filter(hasVerdict('crashed')).length,
63
+ defined: plan.defined,
64
+ discovered: planned,
65
+ failed: perTest.filter(hasVerdict('fail')).length,
66
+ inconclusive: perTest.filter(hasVerdict('inconclusive')).length,
67
+ passed: perTest.filter(hasVerdict('pass')).length,
68
+ planned,
69
+ resourceExhausted: perTest.filter(hasVerdict('resource-exhausted')).length,
70
+ runtimePolicy: perTest.filter(hasVerdict('runtime-policy')).length,
71
+ skipped: perTest.filter(hasVerdict('skip')).length
72
+ };
73
+ }
74
+
75
+ export function collectedRunCaseFacts(plan) {
76
+ return collectedCases(plan).map(function toRunCaseFacts(collectedCase) {
77
+ return {
78
+ id: collectedCaseId(collectedCase.file, collectedCase.testCase),
79
+ metadata: collectedCase.testCase.metadata
80
+ };
81
+ });
82
+ }
83
+ export function collectedRunCaseIds(plan) {
84
+ return collectedCases(plan).map(function toCaseId(collectedCase) {
85
+ return collectedCaseId(collectedCase.file, collectedCase.testCase);
86
+ });
87
+ }
88
+ export function createRunResultFromCollectedPlan(plan, perTest, runnerErrors, timing) {
89
+ return {
90
+ artifacts: [],
91
+ bySuite: countSuites(plan, perTest),
92
+ orphans: plan.orphans,
93
+ perTest,
94
+ resourceUsage: timing.resourceUsage,
95
+ runnerErrors,
96
+ summary: countOutcomes(plan, perTest),
97
+ wallTimeMs: timing.wallClock.currentTimestampInMilliseconds - timing.startedAtMs
98
+ };
99
+ }
100
+ //# sourceMappingURL=collected-run-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collected-run-plan.js","sourceRoot":"","sources":["../../../../source/run/collected-run-plan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"command-line-runner.d.ts","sourceRoot":"","sources":["../../../../source/run/command-line-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAmB,MAAM,uBAAuB,CAAC;AAEvE,OAAO,KAAK,EAAyB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE7E,OAAO,EAEH,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAIH,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,IAAI,4BAA4B,EAC/D,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEH,KAAK,yBAAyB,EACjC,MAAM,qCAAqC,CAAC;AAO7C,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,4BAA4B,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAChG,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,4BAA4B,CAAC;AAEnE,MAAM,MAAM,6BAA6B,GAAG,yBAAyB,GAAG;IACpE,QAAQ,CAAC,qBAAqB,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxD,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACpF,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;CAC1C,CAAC;AAyEF,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,6BAA6B,GAAG,iBAAiB,CAkBtG;AAQD,eAAO,MAAM,iBAAiB,EAAE,iBAM9B,CAAC"}
1
+ {"version":3,"file":"command-line-runner.d.ts","sourceRoot":"","sources":["../../../../source/run/command-line-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAmB,MAAM,uBAAuB,CAAC;AAEvE,OAAO,KAAK,EAAyB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE7E,OAAO,EAEH,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAIH,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,IAAI,4BAA4B,EAC/D,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEH,KAAK,yBAAyB,EACjC,MAAM,qCAAqC,CAAC;AAO7C,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,4BAA4B,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAChG,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,4BAA4B,CAAC;AAEnE,MAAM,MAAM,6BAA6B,GAAG,yBAAyB,GAAG;IACpE,QAAQ,CAAC,qBAAqB,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxD,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACpF,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;CAC1C,CAAC;AA4EF,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,6BAA6B,GAAG,iBAAiB,CAkBtG;AAQD,eAAO,MAAM,iBAAiB,EAAE,iBAM9B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { orchestrator } from "./run-orchestrator.js";
1
+ import { orchestrator } from "./run-orchestrator.entry-point.js";
2
2
  import { loadRunConfig } from "./run-config.js";
3
3
  import { createCommandLineErrorResultFromUnknown, formatFallbackDiagnostics, readExitCodeFromRunResult } from "./command-line-command.js";
4
4
  import { createCommandLineCommandNamespace } from "./command-line-command-namespace.js";
@@ -36,8 +36,11 @@ async function createCommandFromRequest(request, loadedConfig, dependencies) {
36
36
  return {
37
37
  config: await createCommandLineConfig(loadedConfig, request, dependencies),
38
38
  cwd: request.cwd,
39
- engine: null,
40
- request: request.request
39
+ engine: { kind: 'default' },
40
+ request: {
41
+ ...request.request,
42
+ capabilityRestrictions: { mode: 'enabled' }
43
+ }
41
44
  };
42
45
  }
43
46
  async function runTestsWithLoadedConfig(request, dependencies, loadedConfig) {
@@ -1 +1 @@
1
- {"version":3,"file":"command-line-runner.js","sourceRoot":"","sources":["../../../../source/run/command-line-runner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACH,aAAa,EAGhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,uCAAuC,EACvC,yBAAyB,EACzB,yBAAyB,EAM5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,iCAAiC,EAEpC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACH,0BAA0B,EAC1B,iCAAiC,EACjC,kCAAkC,EACrC,MAAM,0CAA0C,CAAC;AAmBlD,SAAS,eAAe,CAAC,IAAqB;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,mBAAmB,CAAC,SAA8B;IACvD,OAAO,SAAS,CAAC,IAAI,CAAC,SAAS,sBAAsB,CAAC,QAAQ;QAC1D,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAiB,EAAE,SAA8B;IAC9E,OAAO,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,KAAK,UAAU,wBAAwB,CACnC,YAA6B,EAC7B,YAA2C;IAE3C,IAAI,YAAY,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAClC,OAAO,YAAY,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,OAAO,CAAE,MAAM,YAAY,CAAC,qBAAqB,EAAE,CAAE,CAAC;AAC1D,CAAC;AAED,KAAK,UAAU,uBAAuB,CAClC,YAA6B,EAC7B,OAAmC,EACnC,YAA2C;IAE3C,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvE,OAAO;QACH,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,cAAc,EAAE,YAAY,CAAC,cAAc;QAC3C,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,SAAS,EAAE,eAAe,EAAE,SAAS,KAAK,IAAI,IAAI,eAAe,KAAK,SAAS;YAC3E,CAAC,CAAC,MAAM,wBAAwB,CAAC,YAAY,EAAE,YAAY,CAAC;YAC5D,CAAC,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE;QAClC,eAAe,EAAE,YAAY,CAAC,eAAe;KAChD,CAAC;AACN,CAAC;AAED,KAAK,UAAU,wBAAwB,CACnC,OAAmC,EACnC,YAA6B,EAC7B,YAA2C;IAE3C,OAAO;QACH,MAAM,EAAE,MAAM,uBAAuB,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC;QAC1E,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAC;AACN,CAAC;AAED,KAAK,UAAU,wBAAwB,CACnC,OAAmC,EACnC,YAA2C,EAC3C,YAA6B;IAE7B,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAE/D,OAAO;QACH,QAAQ,EAAE,yBAAyB,CAAC,SAAS,CAAC;QAC9C,mBAAmB,EAAE,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;QACjF,SAAS;KACZ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,YAA2C;IAC/E,MAAM,gBAAgB,GAAG,iCAAiC,CAAC,YAAY,CAAC,CAAC;IAEzE,OAAO;QACH,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;QACnC,KAAK,EAAE,gBAAgB,CAAC,KAAK;QAC7B,SAAS,EAAE,0BAA0B,CAAC,MAAM,CAAC;QAC7C,SAAS,EAAE,0BAA0B,CAAC,QAAQ,CAAC;QAC/C,aAAa,EAAE,0BAA0B,CAAC,gBAAgB,CAAC;QAC3D,KAAK,CAAC,QAAQ,CAAC,OAAO;YAClB,IAAI,CAAC;gBACD,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC/D,OAAO,MAAM,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,OAAO,uCAAuC,CAAC,KAAK,CAAC,CAAC;YAC1D,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC;AAED,KAAK,UAAU,uBAAuB;IAClC,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,wDAAwD,CAAC,CAAC;IAE9F,OAAO,cAAc,CAAC,kBAAkB,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAsB,uBAAuB,CAAC;IACxE,qBAAqB,EAAE,uBAAuB;IAC9C,oBAAoB,EAAE,iCAAiC;IACvD,qBAAqB,EAAE,kCAAkC;IACzD,aAAa;IACb,YAAY;CACf,CAAC,CAAC"}
1
+ {"version":3,"file":"command-line-runner.js","sourceRoot":"","sources":["../../../../source/run/command-line-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { isRuntimeCapabilityPolicyEnvironment, isWebStorageLike } from "./capability-policy.js";
2
+ export function readProcessEnvironment(processObject) {
3
+ const environment = Reflect.get(processObject, 'env');
4
+ return isRuntimeCapabilityPolicyEnvironment(environment) ? environment : {};
5
+ }
6
+ export function readWebStorage(host, name) {
7
+ if (name === 'localStorage') {
8
+ return null;
9
+ }
10
+ const storage = Reflect.get(host, name);
11
+ return isWebStorageLike(storage) ? storage : null;
12
+ }
13
+ //# sourceMappingURL=node-host-readers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-host-readers.js","sourceRoot":"","sources":["../../../../source/run/node-host-readers.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oCAAoC,EACpC,gBAAgB,EAGnB,MAAM,wBAAwB,CAAC;AAWhC,MAAM,UAAU,sBAAsB,CAAC,aAAqC;IACxE,MAAM,WAAW,GAAY,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAE/D,OAAO,oCAAoC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,cAAc,CAC1B,IAAoB,EACpB,IAAuC;IAEvC,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAY,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEjD,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC"}