@overkill-dev/run 0.0.80 → 0.0.82
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/baselines/calibration-reference.js +10 -0
- package/baselines/calibration-reference.js.map +1 -0
- package/baselines/calibration-store.js +185 -0
- package/baselines/calibration-store.js.map +1 -0
- package/baselines/performance-adapter.d.ts +1 -1
- package/baselines/performance-adapter.d.ts.map +1 -1
- package/baselines/performance-baseline.d.ts +17 -3
- package/baselines/performance-baseline.d.ts.map +1 -1
- package/baselines/performance-baseline.js +13 -1
- package/baselines/performance-baseline.js.map +1 -1
- package/baselines/performance-evaluation.js +12 -11
- package/baselines/performance-evaluation.js.map +1 -1
- package/baselines/performance-observation.js +74 -0
- package/baselines/performance-observation.js.map +1 -0
- package/baselines/performance-plan.js +28 -2
- package/baselines/performance-plan.js.map +1 -1
- package/baselines/performance-schema.js +14 -1
- package/baselines/performance-schema.js.map +1 -1
- package/baselines/performance-store.js +2 -14
- package/baselines/performance-store.js.map +1 -1
- package/baselines/performance-workflow.js +18 -10
- package/baselines/performance-workflow.js.map +1 -1
- package/bench/benchmark-run-report.js +14 -5
- package/bench/benchmark-run-report.js.map +1 -1
- package/bench/benchmark-statistics-schema.d.ts +4 -0
- package/bench/benchmark-statistics-schema.d.ts.map +1 -0
- package/bench/benchmark-statistics-schema.js +40 -0
- package/bench/benchmark-statistics-schema.js.map +1 -0
- package/bench/calibration-evidence.js +80 -0
- package/bench/calibration-evidence.js.map +1 -0
- package/bench/calibration-machine.d.ts +14 -0
- package/bench/calibration-machine.d.ts.map +1 -0
- package/bench/calibration-machine.js +43 -0
- package/bench/calibration-machine.js.map +1 -0
- package/bench/calibration-report.d.ts +24 -0
- package/bench/calibration-report.d.ts.map +1 -0
- package/bench/calibration-report.js +28 -0
- package/bench/calibration-report.js.map +1 -0
- package/bench/cpu-reference-workload.d.ts +2 -0
- package/bench/cpu-reference-workload.d.ts.map +1 -0
- package/bench/cpu-reference-workload.js +12 -0
- package/bench/cpu-reference-workload.js.map +1 -0
- package/bench/host-calibration-result.d.ts +15 -0
- package/bench/host-calibration-result.d.ts.map +1 -0
- package/engine/async-leak-diagnostics.js +18 -5
- package/engine/async-leak-diagnostics.js.map +1 -1
- package/engine/benchmark-environment.d.ts +8 -0
- package/engine/benchmark-environment.d.ts.map +1 -0
- package/engine/benchmark-garbage-collection.d.ts +0 -5
- package/engine/benchmark-garbage-collection.d.ts.map +1 -1
- package/engine/benchmark-garbage-collection.js.map +1 -1
- package/engine/benchmark-node.d.ts +3 -2
- package/engine/benchmark-node.d.ts.map +1 -1
- package/engine/benchmark-node.js +9 -0
- package/engine/benchmark-node.js.map +1 -0
- package/engine/benchmark-result.d.ts +85 -1
- package/engine/benchmark-result.d.ts.map +1 -1
- package/engine/benchmark-result.js.map +1 -1
- package/engine/case-attempt-execution.js +25 -17
- package/engine/case-attempt-execution.js.map +1 -1
- package/engine/case-body-execution.js +1 -0
- package/engine/case-body-execution.js.map +1 -1
- package/engine/execution-async-leak-policy.d.ts +3 -0
- package/engine/execution-async-leak-policy.d.ts.map +1 -0
- package/engine/execution-async-leak-policy.js +38 -23
- package/engine/execution-async-leak-policy.js.map +1 -1
- package/engine/execution-error-ownership.d.ts +6 -0
- package/engine/execution-error-ownership.d.ts.map +1 -0
- package/engine/execution-error-ownership.js +83 -0
- package/engine/execution-error-ownership.js.map +1 -0
- package/engine/execution-global-error-observer.d.ts +1 -4
- package/engine/execution-global-error-observer.d.ts.map +1 -1
- package/engine/execution-global-error-observer.js +41 -81
- package/engine/execution-global-error-observer.js.map +1 -1
- package/engine/execution-observation.js +198 -0
- package/engine/execution-observation.js.map +1 -0
- package/engine/execution-options.d.ts +9 -0
- package/engine/execution-options.d.ts.map +1 -1
- package/engine/execution-preparation.d.ts +13 -0
- package/engine/execution-preparation.d.ts.map +1 -0
- package/engine/execution-preparation.js +34 -0
- package/engine/execution-preparation.js.map +1 -0
- package/engine/execution-supervision-state.js +8 -0
- package/engine/execution-supervision-state.js.map +1 -1
- package/engine/execution-supervision.d.ts +1 -1
- package/engine/execution-supervision.d.ts.map +1 -1
- package/engine/execution-supervision.js +3 -3
- package/engine/execution-supervision.js.map +1 -1
- package/engine/execution-test-plan-cases.js +11 -9
- package/engine/execution-test-plan-cases.js.map +1 -1
- package/engine/execution.d.ts +3 -1
- package/engine/execution.d.ts.map +1 -1
- package/engine/execution.js +3 -27
- package/engine/execution.js.map +1 -1
- package/engine/infrastructure-resource-observation.js +55 -0
- package/engine/infrastructure-resource-observation.js.map +1 -0
- package/engine/reporter-dispatcher.d.ts.map +1 -1
- package/engine/reporter-dispatcher.js +6 -3
- package/engine/reporter-dispatcher.js.map +1 -1
- package/engine/reporter-output-scope.js +7 -2
- package/engine/reporter-output-scope.js.map +1 -1
- package/engine/resource-owner-observation.js +97 -7
- package/engine/resource-owner-observation.js.map +1 -1
- package/execution-termination.d.ts +2 -0
- package/execution-termination.d.ts.map +1 -0
- package/execution-termination.js +8 -0
- package/execution-termination.js.map +1 -0
- package/invocation-budget.d.ts +13 -0
- package/invocation-budget.d.ts.map +1 -0
- package/invocation-budget.js +35 -0
- package/invocation-budget.js.map +1 -0
- package/package.json +13 -1
- package/packages/run/benchmark-calibration.entry-point.d.ts +12 -14
- package/packages/run/benchmark-calibration.entry-point.d.ts.map +1 -1
- package/packages/run/benchmark-calibration.entry-point.js +11 -54
- package/packages/run/benchmark-calibration.entry-point.js.map +1 -1
- package/packages/run/command-line.entry-point.d.ts.map +1 -1
- package/packages/run/command-line.entry-point.js +4 -0
- package/packages/run/command-line.entry-point.js.map +1 -1
- package/packages/run/run.entry-point.d.ts +2 -0
- package/packages/run/run.entry-point.d.ts.map +1 -1
- package/packages/run/run.entry-point.js +2 -0
- package/packages/run/run.entry-point.js.map +1 -1
- package/readme.md +27 -0
- package/run/benchmark-baseline-commands.js +9 -4
- package/run/benchmark-baseline-commands.js.map +1 -1
- package/run/benchmark-baseline-execution.js +20 -0
- package/run/benchmark-baseline-execution.js.map +1 -0
- package/run/benchmark-baseline-operations.js +0 -14
- package/run/benchmark-baseline-operations.js.map +1 -1
- package/run/benchmark-baseline-preparation.js +63 -0
- package/run/benchmark-baseline-preparation.js.map +1 -0
- package/run/benchmark-baseline-run.js +1 -44
- package/run/benchmark-baseline-run.js.map +1 -1
- package/run/benchmark-calibration.js +7 -0
- package/run/benchmark-calibration.js.map +1 -1
- package/run/benchmark-commands.d.ts.map +1 -1
- package/run/benchmark-commands.js +31 -0
- package/run/benchmark-commands.js.map +1 -1
- package/run/benchmark-definition-schema.js +4 -1
- package/run/benchmark-definition-schema.js.map +1 -1
- package/run/benchmark-execution-environment.js +2 -1
- package/run/benchmark-execution-environment.js.map +1 -1
- package/run/benchmark-garbage-collection.js +14 -3
- package/run/benchmark-garbage-collection.js.map +1 -1
- package/run/benchmark-normalization-preparation.js +59 -0
- package/run/benchmark-normalization-preparation.js.map +1 -0
- package/run/benchmark-placement.js +1 -1
- package/run/benchmark-placement.js.map +1 -1
- package/run/benchmark-policy-schema.js +30 -0
- package/run/benchmark-policy-schema.js.map +1 -0
- package/run/benchmark-report-metadata.js +5 -3
- package/run/benchmark-report-metadata.js.map +1 -1
- package/run/benchmark-result-schema.js +5 -53
- package/run/benchmark-result-schema.js.map +1 -1
- package/run/calibration-baseline-references.js +39 -0
- package/run/calibration-baseline-references.js.map +1 -0
- package/run/calibration-capture-session.js +97 -0
- package/run/calibration-capture-session.js.map +1 -0
- package/run/calibration-inventory.js +27 -0
- package/run/calibration-inventory.js.map +1 -0
- package/run/calibration-maintenance.js +88 -0
- package/run/calibration-maintenance.js.map +1 -0
- package/run/capability-policy.js +82 -79
- package/run/capability-policy.js.map +1 -1
- package/run/child-process-outbox.js +13 -5
- package/run/child-process-outbox.js.map +1 -1
- package/run/collected-run-execution.js +3 -7
- package/run/collected-run-execution.js.map +1 -1
- package/run/command-line-command-namespace.js +3 -0
- package/run/command-line-command-namespace.js.map +1 -1
- package/run/command-line-command.d.ts +1 -0
- package/run/command-line-command.d.ts.map +1 -1
- package/run/command-line-command.js.map +1 -1
- package/run/default-run-engine.js +25 -0
- package/run/default-run-engine.js.map +1 -1
- package/run/execution-session-child.js +9 -2
- package/run/execution-session-child.js.map +1 -1
- package/run/execution-session-collected.js +7 -1
- package/run/execution-session-collected.js.map +1 -1
- package/run/execution-session-environment.js +1 -1
- package/run/execution-session-environment.js.map +1 -1
- package/run/execution-session-host.js +17 -0
- package/run/execution-session-host.js.map +1 -1
- package/run/execution-session-lifecycle.js +38 -10
- package/run/execution-session-lifecycle.js.map +1 -1
- package/run/execution-session-observation.js +95 -0
- package/run/execution-session-observation.js.map +1 -0
- package/run/execution-session-ownership.js +23 -0
- package/run/execution-session-ownership.js.map +1 -0
- package/run/execution-session-process.js +26 -4
- package/run/execution-session-process.js.map +1 -1
- package/run/execution-session-schema.js +2 -0
- package/run/execution-session-schema.js.map +1 -1
- package/run/execution-session-supervised.js +21 -75
- package/run/execution-session-supervised.js.map +1 -1
- package/run/execution-session.js +37 -35
- package/run/execution-session.js.map +1 -1
- package/run/frozen-policy-validation.js +8 -2
- package/run/frozen-policy-validation.js.map +1 -1
- package/run/frozen-supervised-command-schema.js +2 -2
- package/run/frozen-supervised-command-schema.js.map +1 -1
- package/run/initialized-run-collection.js +80 -0
- package/run/initialized-run-collection.js.map +1 -0
- package/run/initialized-run.js +2 -49
- package/run/initialized-run.js.map +1 -1
- package/run/node-child-process-starters.js +2 -0
- package/run/node-child-process-starters.js.map +1 -1
- package/run/path-containment.js +13 -0
- package/run/path-containment.js.map +1 -1
- package/run/permission-denial-runtime-policy.js +30 -50
- package/run/permission-denial-runtime-policy.js.map +1 -1
- package/run/run-cancellation.js.map +1 -1
- package/run/run-collected-resolution.js +7 -0
- package/run/run-collected-resolution.js.map +1 -1
- package/run/run-command-schema.js +2 -0
- package/run/run-command-schema.js.map +1 -1
- package/run/run-engine-primitives.d.ts +2 -1
- package/run/run-engine-primitives.d.ts.map +1 -1
- package/run/run-execution.js +1 -1
- package/run/run-execution.js.map +1 -1
- package/run/run-facts.js +1 -0
- package/run/run-facts.js.map +1 -1
- package/run/run-input-resolution.js +5 -3
- package/run/run-input-resolution.js.map +1 -1
- package/run/run-isolated-command.js +8 -2
- package/run/run-isolated-command.js.map +1 -1
- package/run/run-isolated-process.js +5 -0
- package/run/run-isolated-process.js.map +1 -1
- package/run/run-local-command.js +3 -7
- package/run/run-local-command.js.map +1 -1
- package/run/run-local-coverage.js +3 -7
- package/run/run-local-coverage.js.map +1 -1
- package/run/run-local-planning.js +2 -0
- package/run/run-local-planning.js.map +1 -1
- package/run/run-supervised-process.js +14 -3
- package/run/run-supervised-process.js.map +1 -1
- package/run/run-support.js +11 -9
- package/run/run-support.js.map +1 -1
- package/run/run-types.d.ts +5 -2
- package/run/run-types.d.ts.map +1 -1
- package/run/run-types.js.map +1 -1
- package/run/run.js +3 -1
- package/run/run.js.map +1 -1
- package/run/supervised-child-execution.js +1 -1
- package/run/supervised-child-execution.js.map +1 -1
- package/run/supervised-child-failure.js +9 -3
- package/run/supervised-child-failure.js.map +1 -1
- package/run/supervised-child-process.d.ts.map +1 -1
- package/run/supervised-child-process.js +2 -2
- package/run/supervised-child-process.js.map +1 -1
- package/run/supervised-child-test-plan.js +3 -3
- package/run/supervised-child-test-plan.js.map +1 -1
- package/run/supervised-child-transport.js +10 -5
- package/run/supervised-child-transport.js.map +1 -1
- package/run/supervised-child.entry-point.js +1 -0
- package/run/supervised-child.entry-point.js.map +1 -1
- package/run/supervised-child.js +49 -35
- package/run/supervised-child.js.map +1 -1
- package/run/supervised-protocol-schema.js +1 -1
- package/run/supervised-protocol-schema.js.map +1 -1
- package/run/supervised-protocol.js.map +1 -1
- package/run/supervised-run-process-policy.js +11 -0
- package/run/supervised-run-process-policy.js.map +1 -1
- package/run/supervised-run-runtime.js +1 -1
- package/run/supervised-run-runtime.js.map +1 -1
- package/run/worker-execution-engine.js +1 -1
- package/run/worker-execution-engine.js.map +1 -1
- package/run/worker-pool-command.js +4 -6
- package/run/worker-pool-command.js.map +1 -1
- package/run/worker-pool-host.entry-point.js +1 -1
- package/run/worker-pool-host.entry-point.js.map +1 -1
- package/run/worker-pool-protocol.js.map +1 -1
- package/run/worker-pool-worker-plan.js +2 -2
- package/run/worker-pool-worker-plan.js.map +1 -1
- package/software-bill-of-materials.cyclonedx.json +4 -4
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { canonicalIdentityJson } from "../canonical-identity.js";
|
|
2
|
+
import { CalibrationPublicationError } from "../baselines/calibration-store.js";
|
|
3
|
+
import { successfulPerformanceRun } from "../baselines/performance-workflow.js";
|
|
4
|
+
import { appendRunnerErrors } from "../engine/execution-result.js";
|
|
5
|
+
import { performanceBaselineError } from "../baselines/performance-evaluation.js";
|
|
6
|
+
import { calibrationReferenceReportArtifact } from "../bench/calibration-report.js";
|
|
7
|
+
function capturedReferences(result) {
|
|
8
|
+
const snapshots = new Map();
|
|
9
|
+
const candidates = result.perTest.flatMap(function references(test) {
|
|
10
|
+
return test.benchmark?.normalization?.calibrations ?? [];
|
|
11
|
+
});
|
|
12
|
+
for (const snapshot of candidates) {
|
|
13
|
+
const key = canonicalIdentityJson(snapshot.identity);
|
|
14
|
+
if (!snapshots.has(key)) {
|
|
15
|
+
snapshots.set(key, snapshot);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return Array.from(snapshots.values());
|
|
19
|
+
}
|
|
20
|
+
function captureReport(input, result, snapshots) {
|
|
21
|
+
const owners = result.perTest.map(function owner(test) {
|
|
22
|
+
return test.workId;
|
|
23
|
+
});
|
|
24
|
+
return {
|
|
25
|
+
version: 1,
|
|
26
|
+
changes: snapshots.map(function writtenReference(snapshot) {
|
|
27
|
+
return {
|
|
28
|
+
kind: 'write',
|
|
29
|
+
path: input.store.pathOf({ profile: input.profile, snapshot, owners, version: 1 })
|
|
30
|
+
};
|
|
31
|
+
}),
|
|
32
|
+
completed: [],
|
|
33
|
+
outcome: 'read-only'
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function appendCaptureReport(input, result, report) {
|
|
37
|
+
const artifact = calibrationReferenceReportArtifact({
|
|
38
|
+
result,
|
|
39
|
+
report,
|
|
40
|
+
maxBytes: input.maxBytes,
|
|
41
|
+
capturedAtMicroseconds: Number(input.dependencies.wallClock.currentMonotonicMicroseconds)
|
|
42
|
+
});
|
|
43
|
+
return { ...result, artifacts: [...result.artifacts, artifact] };
|
|
44
|
+
}
|
|
45
|
+
function referenceOwners(result, snapshot) {
|
|
46
|
+
const key = canonicalIdentityJson(snapshot.identity);
|
|
47
|
+
return result
|
|
48
|
+
.perTest
|
|
49
|
+
.filter(function ownsReference(test) {
|
|
50
|
+
return test.benchmark?.normalization?.calibrations.some(function matchingReference(actual) {
|
|
51
|
+
return canonicalIdentityJson(actual.identity) === key;
|
|
52
|
+
}) ?? false;
|
|
53
|
+
})
|
|
54
|
+
.map(function work(test) {
|
|
55
|
+
return test.workId;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
async function publishCapture(input, result, report, snapshots) {
|
|
59
|
+
appendCaptureReport(input, result, report);
|
|
60
|
+
const completed = snapshots.length === 0
|
|
61
|
+
? []
|
|
62
|
+
: await input.store.write(input.profile, snapshots, function owners(snapshot) {
|
|
63
|
+
return referenceOwners(result, snapshot);
|
|
64
|
+
});
|
|
65
|
+
return appendCaptureReport(input, result, { ...report, completed, outcome: 'written' });
|
|
66
|
+
}
|
|
67
|
+
async function completeCapture(input, result, report, snapshots) {
|
|
68
|
+
return successfulPerformanceRun(result)
|
|
69
|
+
? await publishCapture(input, result, report, snapshots)
|
|
70
|
+
: appendCaptureReport(input, result, { ...report, outcome: 'blocked' });
|
|
71
|
+
}
|
|
72
|
+
async function finalizeCapture(input, result) {
|
|
73
|
+
const snapshots = capturedReferences(result);
|
|
74
|
+
const report = captureReport(input, result, snapshots);
|
|
75
|
+
try {
|
|
76
|
+
return await completeCapture(input, result, report, snapshots);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
const failed = appendRunnerErrors(result, [performanceBaselineError(error, null)]);
|
|
80
|
+
const completed = error instanceof CalibrationPublicationError ? error.completed() : [];
|
|
81
|
+
try {
|
|
82
|
+
return appendCaptureReport(input, failed, { ...report, completed, outcome: 'failed' });
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return failed;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
export function createCalibrationCaptureSession(input) {
|
|
90
|
+
return {
|
|
91
|
+
reporterDispatcher: input.dependencies.reporterDispatcher,
|
|
92
|
+
async finalize(result) {
|
|
93
|
+
return await finalizeCapture(input, result);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=calibration-capture-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calibration-capture-session.js","sourceRoot":"","sources":["../../../../source/run/calibration-capture-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { canonicalIdentityJson } from "../canonical-identity.js";
|
|
2
|
+
import { caseIdentityKey } from "../engine/identity.js";
|
|
3
|
+
export function staleCalibrationReferences(input) {
|
|
4
|
+
const { result, references } = input;
|
|
5
|
+
const active = new Set(result.perTest.flatMap(function usedReferences(test) {
|
|
6
|
+
return (test.benchmark?.normalization?.calibrations ?? []).map(function identity(snapshot) {
|
|
7
|
+
return canonicalIdentityJson(snapshot.identity);
|
|
8
|
+
});
|
|
9
|
+
}));
|
|
10
|
+
const skipped = new Set(result
|
|
11
|
+
.perTest
|
|
12
|
+
.filter(function skippedCase(test) {
|
|
13
|
+
return test.verdict === 'skip';
|
|
14
|
+
})
|
|
15
|
+
.map(function identity(test) {
|
|
16
|
+
return caseIdentityKey(test.id);
|
|
17
|
+
}));
|
|
18
|
+
return references.filter(function staleReference(reference) {
|
|
19
|
+
const preserved = active.has(canonicalIdentityJson(reference.snapshot.identity)) ||
|
|
20
|
+
reference.owners.some(function skippedOwner(owner) {
|
|
21
|
+
return skipped.has(caseIdentityKey(owner.case));
|
|
22
|
+
});
|
|
23
|
+
const sameScope = reference.profile === input.profile && reference.snapshot.machineClass === input.machineClass;
|
|
24
|
+
return sameScope && reference.owners.length > 0 && !preserved;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=calibration-inventory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calibration-inventory.js","sourceRoot":"","sources":["../../../../source/run/calibration-inventory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAWxD,MAAM,UAAU,0BAA0B,CAAC,KAAgC;IACvE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,cAAc,CAAC,IAAI;QACtE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,QAAQ;YACrF,OAAO,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,CAAC;IACJ,MAAM,OAAO,GAAG,IAAI,GAAG,CACnB,MAAM;SACD,OAAO;SACP,MAAM,CAAC,SAAS,WAAW,CAAC,IAAI;QAC7B,OAAO,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC;IACnC,CAAC,CAAC;SACD,GAAG,CAAC,SAAS,QAAQ,CAAC,IAAI;QACvB,OAAO,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CACT,CAAC;IACF,OAAO,UAAU,CAAC,MAAM,CAAC,SAAS,cAAc,CAAC,SAAS;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC5E,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,KAAK;gBAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;QACP,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,CAAC;QAChH,OAAO,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;IAClE,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { appendRunnerErrors } from "../engine/execution-result.js";
|
|
2
|
+
import { performanceBaselineError } from "../baselines/performance-evaluation.js";
|
|
3
|
+
import { successfulPerformanceRun } from "../baselines/performance-workflow.js";
|
|
4
|
+
import { CalibrationPublicationError } from "../baselines/calibration-store.js";
|
|
5
|
+
import { calibrationReferenceReportArtifact } from "../bench/calibration-report.js";
|
|
6
|
+
import { staleCalibrationReferences } from "./calibration-inventory.js";
|
|
7
|
+
function completeInventory(input) {
|
|
8
|
+
return input.request.paths.length === 0 && input.request.selection.kind === 'all' &&
|
|
9
|
+
input.request.shard.total === 1;
|
|
10
|
+
}
|
|
11
|
+
function appendReport(session, result, report) {
|
|
12
|
+
const { profile } = session.input;
|
|
13
|
+
if (profile.testFamily !== 'benchmark') {
|
|
14
|
+
throw new TypeError('Calibration maintenance requires a benchmark profile.');
|
|
15
|
+
}
|
|
16
|
+
const artifact = calibrationReferenceReportArtifact({
|
|
17
|
+
result,
|
|
18
|
+
report,
|
|
19
|
+
maxBytes: profile.attachments.maxArtifactBytes,
|
|
20
|
+
capturedAtMicroseconds: Number(session.dependencies.wallClock.currentMonotonicMicroseconds)
|
|
21
|
+
});
|
|
22
|
+
return { ...result, artifacts: [...result.artifacts, artifact] };
|
|
23
|
+
}
|
|
24
|
+
async function publishRemovals(session, result, stale, report) {
|
|
25
|
+
appendReport(session, result, report);
|
|
26
|
+
const completed = session.input.request.baselineUpdateMode === 'apply' && successfulPerformanceRun(result)
|
|
27
|
+
? await session.store.remove(stale)
|
|
28
|
+
: [];
|
|
29
|
+
return appendReport(session, result, {
|
|
30
|
+
...report,
|
|
31
|
+
completed,
|
|
32
|
+
outcome: completed.length > 0 ? 'written' : 'read-only'
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
async function retainMaintenance(session, result, stale) {
|
|
36
|
+
const report = {
|
|
37
|
+
version: 1,
|
|
38
|
+
completed: [],
|
|
39
|
+
outcome: 'read-only',
|
|
40
|
+
changes: stale.map(function removal(reference) {
|
|
41
|
+
return { kind: 'remove', path: session.store.pathOf(reference) };
|
|
42
|
+
})
|
|
43
|
+
};
|
|
44
|
+
try {
|
|
45
|
+
return await publishRemovals(session, result, stale, report);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
const failed = appendRunnerErrors(result, [performanceBaselineError(error, null)]);
|
|
49
|
+
const completed = error instanceof CalibrationPublicationError ? error.completed() : [];
|
|
50
|
+
try {
|
|
51
|
+
return appendReport(session, failed, { ...report, completed, outcome: 'failed' });
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return failed;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function checkedResult(session, result, stale) {
|
|
59
|
+
const mode = session.input.request.baselineUpdateMode;
|
|
60
|
+
return stale.length > 0 && mode !== 'apply' && mode !== 'diff'
|
|
61
|
+
? appendRunnerErrors(result, [performanceBaselineError(new Error('Stale calibration references require overkill bench baseline apply.'), null)])
|
|
62
|
+
: result;
|
|
63
|
+
}
|
|
64
|
+
async function finalizeMaintenance(session, result) {
|
|
65
|
+
const stale = successfulPerformanceRun(result)
|
|
66
|
+
? staleCalibrationReferences({
|
|
67
|
+
profile: session.input.request.profile,
|
|
68
|
+
machineClass: session.input.benchmarkNormalization?.machine.machineClass ?? null,
|
|
69
|
+
references: session.references,
|
|
70
|
+
result
|
|
71
|
+
})
|
|
72
|
+
: [];
|
|
73
|
+
const checked = checkedResult(session, result, stale);
|
|
74
|
+
const finalized = session.baseline === null ? checked : await session.baseline.finalize(checked);
|
|
75
|
+
return stale.length === 0 ? finalized : await retainMaintenance(session, finalized, stale);
|
|
76
|
+
}
|
|
77
|
+
export function calibrationMaintenanceSession(session) {
|
|
78
|
+
if (session.references.length === 0 || !completeInventory(session.input)) {
|
|
79
|
+
return session.baseline;
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
reporterDispatcher: session.baseline?.reporterDispatcher ?? session.dependencies.reporterDispatcher,
|
|
83
|
+
async finalize(result) {
|
|
84
|
+
return await finalizeMaintenance(session, result);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=calibration-maintenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calibration-maintenance.js","sourceRoot":"","sources":["../../../../source/run/calibration-maintenance.ts"],"names":[],"mappings":"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"}
|
package/run/capability-policy.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import asyncHooks
|
|
1
|
+
import asyncHooks from 'node:async_hooks';
|
|
2
2
|
import diagnosticsChannel from 'node:diagnostics_channel';
|
|
3
3
|
import { workIdentityKey } from "../engine/identity.js";
|
|
4
|
+
import { createExecutionObservation, withExecutionObservation } from "../engine/execution-observation.js";
|
|
4
5
|
import { recordReporterConsoleDiagnostic } from "../engine/reporter-output-scope.js";
|
|
5
6
|
import { createPermissionDenialRuntimePolicy as createPermissionDenialRuntimePolicyCore, createPermissionDiagnosticsSubscriptions } from "./permission-denial-runtime-policy.js";
|
|
6
7
|
import { environmentChanged, localStorageChanged, sessionStorageChanged, takeSnapshots } from "./capability-policy-snapshots.js";
|
|
@@ -82,12 +83,12 @@ function asyncResourceReport(type, hasActiveCase) {
|
|
|
82
83
|
}
|
|
83
84
|
return staticAsyncResourceReports[type] ?? null;
|
|
84
85
|
}
|
|
85
|
-
function createAsyncResourceHook(
|
|
86
|
+
function createAsyncResourceHook(observation, recordViolation) {
|
|
86
87
|
const createHookKey = 'createHook';
|
|
87
88
|
const createHook = asyncHooks[createHookKey];
|
|
88
89
|
return createHook({
|
|
89
90
|
init(_asyncId, type) {
|
|
90
|
-
const report = asyncResourceReport(type,
|
|
91
|
+
const report = asyncResourceReport(type, observation.hasActiveAttempt());
|
|
91
92
|
if (report !== null) {
|
|
92
93
|
recordViolation(report);
|
|
93
94
|
}
|
|
@@ -109,17 +110,27 @@ function runtimePolicyError(violation) {
|
|
|
109
110
|
subtype: 'runtime-policy'
|
|
110
111
|
};
|
|
111
112
|
}
|
|
113
|
+
function observedPolicyError(violation, observation, phase) {
|
|
114
|
+
const error = observation.attribute(runtimePolicyError({ ...violation, caseId: null, workId: null, phase }));
|
|
115
|
+
if (error.subtype !== 'runtime-policy') {
|
|
116
|
+
return error;
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
...error,
|
|
120
|
+
cause: { ...violation, caseId: error.attributedTo, workId: error.attributedToWork ?? null, phase }
|
|
121
|
+
};
|
|
122
|
+
}
|
|
112
123
|
function ignoredLoadCapability(capability) {
|
|
113
124
|
return capability === runtimePolicyCapabilities.dynamicModuleLoad ||
|
|
114
125
|
capability === runtimePolicyCapabilities.fileRead;
|
|
115
126
|
}
|
|
116
|
-
function ignoredViolation(violation,
|
|
117
|
-
return
|
|
127
|
+
function ignoredViolation(violation, hasActiveCase, loadComplete) {
|
|
128
|
+
return !hasActiveCase &&
|
|
118
129
|
(violation.capability === runtimePolicyCapabilities.fileRead ||
|
|
119
130
|
!loadComplete && ignoredLoadCapability(violation.capability));
|
|
120
131
|
}
|
|
121
|
-
function violationPhase(
|
|
122
|
-
if (
|
|
132
|
+
function violationPhase(hasActiveCase, loadComplete) {
|
|
133
|
+
if (hasActiveCase) {
|
|
123
134
|
return 'body';
|
|
124
135
|
}
|
|
125
136
|
return loadComplete ? 'out-of-test' : 'load';
|
|
@@ -169,7 +180,7 @@ function recordSnapshotChanges(before, dependencies, record) {
|
|
|
169
180
|
});
|
|
170
181
|
}
|
|
171
182
|
}
|
|
172
|
-
function observeRuntimeProcessEvents(dependencies, record) {
|
|
183
|
+
function observeRuntimeProcessEvents(dependencies, record, observation) {
|
|
173
184
|
const stopObservingExit = dependencies.observeProcessExit(function recordProcessExecutionViolation(message) {
|
|
174
185
|
return record({
|
|
175
186
|
capability: runtimePolicyCapabilities.processExecute,
|
|
@@ -177,6 +188,7 @@ function observeRuntimeProcessEvents(dependencies, record) {
|
|
|
177
188
|
strictness: 'observed'
|
|
178
189
|
});
|
|
179
190
|
});
|
|
191
|
+
observation.register(stopObservingExit);
|
|
180
192
|
const stopObservingIpc = dependencies.observeIpcListeners(function recordIpcViolation(message) {
|
|
181
193
|
record({
|
|
182
194
|
capability: runtimePolicyCapabilities.childProcess,
|
|
@@ -184,12 +196,9 @@ function observeRuntimeProcessEvents(dependencies, record) {
|
|
|
184
196
|
strictness: 'observed'
|
|
185
197
|
});
|
|
186
198
|
});
|
|
187
|
-
|
|
188
|
-
stopObservingIpc();
|
|
189
|
-
stopObservingExit();
|
|
190
|
-
};
|
|
199
|
+
observation.register(stopObservingIpc);
|
|
191
200
|
}
|
|
192
|
-
function startRuntimePolicyMonitoring(
|
|
201
|
+
function startRuntimePolicyMonitoring(observation, record, dependencies) {
|
|
193
202
|
function recordObservedViolation(violation) {
|
|
194
203
|
try {
|
|
195
204
|
record(violation);
|
|
@@ -198,17 +207,15 @@ function startRuntimePolicyMonitoring(activeCaseStorage, record, dependencies) {
|
|
|
198
207
|
}
|
|
199
208
|
}
|
|
200
209
|
const subscriptions = createDiagnosticsSubscriptions(recordObservedViolation);
|
|
201
|
-
const
|
|
202
|
-
|
|
203
|
-
hook.enable();
|
|
204
|
-
return { hook, stopObservingProcess, subscriptions };
|
|
205
|
-
}
|
|
206
|
-
function stopRuntimePolicyMonitoring(monitoring) {
|
|
207
|
-
monitoring.hook.disable();
|
|
208
|
-
monitoring.stopObservingProcess();
|
|
209
|
-
for (const subscription of monitoring.subscriptions) {
|
|
210
|
-
subscription.unsubscribe();
|
|
210
|
+
for (const subscription of subscriptions) {
|
|
211
|
+
observation.register(subscription.unsubscribe);
|
|
211
212
|
}
|
|
213
|
+
const hook = createAsyncResourceHook(observation, recordObservedViolation);
|
|
214
|
+
observation.register(function stopAsyncResources() {
|
|
215
|
+
hook.disable();
|
|
216
|
+
});
|
|
217
|
+
observeRuntimeProcessEvents(dependencies, record, observation);
|
|
218
|
+
hook.enable();
|
|
212
219
|
}
|
|
213
220
|
function rawOutputPolicyError(capability, message) {
|
|
214
221
|
return runtimePolicyError({
|
|
@@ -230,50 +237,49 @@ function rawOutputPolicyErrors(options) {
|
|
|
230
237
|
}
|
|
231
238
|
return errors;
|
|
232
239
|
}
|
|
233
|
-
function completedRuntimePolicyViolation(violation, activeCase, loadComplete) {
|
|
234
|
-
return {
|
|
235
|
-
...violation,
|
|
236
|
-
caseId: activeCase?.id ?? null,
|
|
237
|
-
workId: activeCase?.workId ?? null,
|
|
238
|
-
phase: violationPhase(activeCase, loadComplete)
|
|
239
|
-
};
|
|
240
|
-
}
|
|
241
240
|
function permissionDiagnosticsPhase(loadComplete) {
|
|
242
241
|
return loadComplete ? 'out-of-test' : 'load';
|
|
243
242
|
}
|
|
244
243
|
export const createPermissionDenialRuntimePolicy = createPermissionDenialRuntimePolicyCore;
|
|
244
|
+
export async function withRuntimePolicy(create, execute) {
|
|
245
|
+
return await withExecutionObservation(async function observeRuntimePolicy() {
|
|
246
|
+
const policy = create();
|
|
247
|
+
try {
|
|
248
|
+
return await execute(policy);
|
|
249
|
+
}
|
|
250
|
+
finally {
|
|
251
|
+
policy.takeRunErrors();
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
}
|
|
245
255
|
export function createRuntimeCapabilityPolicy(options) {
|
|
246
|
-
const
|
|
256
|
+
const observation = createExecutionObservation();
|
|
247
257
|
const caseErrors = new Map();
|
|
248
258
|
const runErrors = [];
|
|
249
259
|
const lifecycle = { loadComplete: false, stopped: false };
|
|
250
|
-
function record(violation) {
|
|
251
|
-
const activeCase = activeCaseStorage.getStore();
|
|
252
|
-
const completedViolation = completedRuntimePolicyViolation(violation, activeCase, lifecycle.loadComplete);
|
|
253
|
-
const error = { ...runtimePolicyError(completedViolation), attributedToAttempt: activeCase?.attempt ?? null };
|
|
254
|
-
if (!ignoredViolation(violation, activeCase, lifecycle.loadComplete)) {
|
|
255
|
-
if (activeCase === undefined) {
|
|
256
|
-
runErrors.push(error);
|
|
257
|
-
}
|
|
258
|
-
else {
|
|
259
|
-
caseErrors.set(activeCase.key, [...caseErrors.get(activeCase.key) ?? [], error]);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
return error;
|
|
263
|
-
}
|
|
264
260
|
function recordPermissionError(error) {
|
|
265
|
-
|
|
266
|
-
|
|
261
|
+
if (error.attributedToWork === null || error.attributedToWork === undefined ||
|
|
262
|
+
error.attributedToAttempt === null) {
|
|
267
263
|
runErrors.push(error);
|
|
268
264
|
return;
|
|
269
265
|
}
|
|
270
|
-
|
|
266
|
+
const key = `${workIdentityKey(error.attributedToWork)}:${error.attributedToAttempt.index}`;
|
|
267
|
+
caseErrors.set(key, [...caseErrors.get(key) ?? [], error]);
|
|
268
|
+
}
|
|
269
|
+
function record(violation) {
|
|
270
|
+
const phase = violationPhase(observation.hasActiveAttempt(), lifecycle.loadComplete);
|
|
271
|
+
const error = observedPolicyError(violation, observation, phase);
|
|
272
|
+
if (observation.accepts() &&
|
|
273
|
+
!ignoredViolation(violation, observation.hasActiveAttempt(), lifecycle.loadComplete)) {
|
|
274
|
+
recordPermissionError(error);
|
|
275
|
+
}
|
|
276
|
+
return error;
|
|
271
277
|
}
|
|
272
278
|
function recordWithoutReturning(violation) {
|
|
273
279
|
record(violation);
|
|
274
280
|
}
|
|
275
|
-
|
|
276
|
-
|
|
281
|
+
startRuntimePolicyMonitoring(observation, record, options.dependencies);
|
|
282
|
+
createPermissionDiagnosticsSubscriptions(observation, function currentPermissionDiagnosticsPhase() {
|
|
277
283
|
return permissionDiagnosticsPhase(lifecycle.loadComplete);
|
|
278
284
|
}, function recordPermissionErrorWithoutThrowing(error) {
|
|
279
285
|
try {
|
|
@@ -284,7 +290,11 @@ export function createRuntimeCapabilityPolicy(options) {
|
|
|
284
290
|
});
|
|
285
291
|
return {
|
|
286
292
|
recordViolation(capability, message, strictness) {
|
|
287
|
-
|
|
293
|
+
if (!observation.open()) {
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
const error = observedPolicyError({ capability, message, strictness }, observation, violationPhase(observation.hasActiveAttempt(), lifecycle.loadComplete));
|
|
297
|
+
recordPermissionError(error);
|
|
288
298
|
},
|
|
289
299
|
async prepareAttempt() {
|
|
290
300
|
return undefined;
|
|
@@ -294,31 +304,27 @@ export function createRuntimeCapabilityPolicy(options) {
|
|
|
294
304
|
},
|
|
295
305
|
async runAttempt(testCase, attempt, run) {
|
|
296
306
|
lifecycle.loadComplete = true;
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
const before = takeSnapshots(options.dependencies);
|
|
304
|
-
try {
|
|
305
|
-
return await activeCaseStorage.run(activeCase, run);
|
|
306
|
-
}
|
|
307
|
-
finally {
|
|
308
|
-
activeCaseStorage.run(activeCase, function recordCaseSnapshotChanges() {
|
|
307
|
+
return await observation.runAttempt(testCase, attempt, async function observeCaseSnapshots() {
|
|
308
|
+
const before = takeSnapshots(options.dependencies);
|
|
309
|
+
try {
|
|
310
|
+
return await run();
|
|
311
|
+
}
|
|
312
|
+
finally {
|
|
309
313
|
recordSnapshotChanges(before, options.dependencies, recordWithoutReturning);
|
|
310
|
-
}
|
|
311
|
-
}
|
|
314
|
+
}
|
|
315
|
+
});
|
|
312
316
|
},
|
|
313
317
|
async runLoad(run) {
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
318
|
+
return await observation.run(async function observeLoadSnapshots() {
|
|
319
|
+
const before = takeSnapshots(options.dependencies);
|
|
320
|
+
try {
|
|
321
|
+
return await run();
|
|
322
|
+
}
|
|
323
|
+
finally {
|
|
324
|
+
recordSnapshotChanges(before, options.dependencies, recordWithoutReturning);
|
|
325
|
+
lifecycle.loadComplete = true;
|
|
326
|
+
}
|
|
327
|
+
});
|
|
322
328
|
},
|
|
323
329
|
takeAttemptErrors(testCase, attempt) {
|
|
324
330
|
const key = `${workIdentityKey(testCase.workId)}:${attempt.index}`;
|
|
@@ -334,12 +340,9 @@ export function createRuntimeCapabilityPolicy(options) {
|
|
|
334
340
|
takeRunErrors() {
|
|
335
341
|
if (!lifecycle.stopped) {
|
|
336
342
|
lifecycle.stopped = true;
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
subscription.unsubscribe();
|
|
340
|
-
}
|
|
343
|
+
observation.stop();
|
|
344
|
+
runErrors.push(...rawOutputPolicyErrors(options));
|
|
341
345
|
}
|
|
342
|
-
runErrors.push(...rawOutputPolicyErrors(options));
|
|
343
346
|
const errors = Array.from(runErrors);
|
|
344
347
|
runErrors.length = 0;
|
|
345
348
|
return errors;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-policy.js","sourceRoot":"","sources":["../../../../source/run/capability-policy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capability-policy.js","sourceRoot":"","sources":["../../../../source/run/capability-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,14 @@ import { childProcessEnvelope } from "./child-process-protocol.js";
|
|
|
2
2
|
export function createChildProcessOutbox(correlationId, ipc) {
|
|
3
3
|
const pending = new Set();
|
|
4
4
|
let failure = null;
|
|
5
|
+
async function flush() {
|
|
6
|
+
while (pending.size > 0) {
|
|
7
|
+
await Promise.all(pending);
|
|
8
|
+
}
|
|
9
|
+
if (failure !== null) {
|
|
10
|
+
throw failure;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
5
13
|
return {
|
|
6
14
|
send(message) {
|
|
7
15
|
const delivery = Promise.withResolvers();
|
|
@@ -22,13 +30,13 @@ export function createChildProcessOutbox(correlationId, ipc) {
|
|
|
22
30
|
complete(error instanceof Error ? error : new Error('Child IPC send failed.', { cause: error }));
|
|
23
31
|
}
|
|
24
32
|
},
|
|
33
|
+
flush,
|
|
25
34
|
async disconnect() {
|
|
26
|
-
|
|
27
|
-
await
|
|
35
|
+
try {
|
|
36
|
+
await flush();
|
|
28
37
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
throw failure;
|
|
38
|
+
finally {
|
|
39
|
+
ipc.disconnect?.();
|
|
32
40
|
}
|
|
33
41
|
}
|
|
34
42
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"child-process-outbox.js","sourceRoot":"","sources":["../../../../source/run/child-process-outbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAA6B,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"child-process-outbox.js","sourceRoot":"","sources":["../../../../source/run/child-process-outbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAA6B,MAAM,6BAA6B,CAAC;AAiB9F,MAAM,UAAU,wBAAwB,CAAC,aAAqB,EAAE,GAAoB;IAChF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IACzC,IAAI,OAAO,GAAiB,IAAI,CAAC;IACjC,KAAK,UAAU,KAAK;QAChB,OAAO,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,OAAO,CAAC;QAClB,CAAC;IACL,CAAC;IAED,OAAO;QACH,IAAI,CAAC,OAAO;YACR,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAQ,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9B,SAAS,QAAQ,CAAC,KAAmB;gBACjC,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACjC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,OAAO;YACX,CAAC;YACD,IAAI,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,QAAQ,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACrG,CAAC;QACL,CAAC;QACD,KAAK;QACL,KAAK,CAAC,UAAU;YACZ,IAAI,CAAC;gBACD,MAAM,KAAK,EAAE,CAAC;YAClB,CAAC;oBAAS,CAAC;gBACP,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;YACvB,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { appendRunnerErrors } from "../engine/execution-result.js";
|
|
|
2
2
|
import { reportCollectionErrorResult } from "./run-collection-error-result.js";
|
|
3
3
|
import { executeInProcessResolvedRun } from "./run-in-process-execution.js";
|
|
4
4
|
import { executeWithRuntimeAttachments } from "./runtime-attachment-boundary.js";
|
|
5
|
-
import {
|
|
5
|
+
import { observeRunRuntimePolicy, finalizeResultWithDurationHistory } from "./run-support.js";
|
|
6
6
|
async function executeObservedCollectedPlan(execution) {
|
|
7
7
|
const { context, finalizeResult, plan, runtimePolicy, timing } = execution;
|
|
8
8
|
const { dependencies } = context;
|
|
@@ -22,13 +22,9 @@ async function executeObservedCollectedPlan(execution) {
|
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
async function executeCollectedPlan(context, plan, timing, finalizeResult) {
|
|
25
|
-
|
|
26
|
-
try {
|
|
25
|
+
return await observeRunRuntimePolicy(plan.resolved.request, context.dependencies, async function executeObservedInvocation(runtimePolicy) {
|
|
27
26
|
return await executeObservedCollectedPlan({ context, finalizeResult, plan, runtimePolicy, timing });
|
|
28
|
-
}
|
|
29
|
-
finally {
|
|
30
|
-
runtimePolicy.takeRunErrors();
|
|
31
|
-
}
|
|
27
|
+
});
|
|
32
28
|
}
|
|
33
29
|
export async function executeCollectedInvocation(context, plan, timing) {
|
|
34
30
|
const { dependencies } = context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collected-run-execution.js","sourceRoot":"","sources":["../../../../source/run/collected-run-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"collected-run-execution.js","sourceRoot":"","sources":["../../../../source/run/collected-run-execution.ts"],"names":[],"mappings":"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"}
|