@overkill-dev/run 0.0.66 → 0.0.68
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/{run/attachment-json.js → attachments/json-snapshot.js} +4 -4
- package/attachments/json-snapshot.js.map +1 -0
- package/baselines/performance-adapter.d.ts +60 -0
- package/baselines/performance-adapter.d.ts.map +1 -0
- package/baselines/performance-baseline.d.ts +48 -0
- package/baselines/performance-baseline.d.ts.map +1 -0
- package/baselines/performance-baseline.js +9 -0
- package/baselines/performance-baseline.js.map +1 -0
- package/baselines/performance-evaluation.js +88 -0
- package/baselines/performance-evaluation.js.map +1 -0
- package/baselines/performance-plan.js +33 -0
- package/baselines/performance-plan.js.map +1 -0
- package/baselines/performance-report.js +57 -0
- package/baselines/performance-report.js.map +1 -0
- package/baselines/performance-schema.js +12 -0
- package/baselines/performance-schema.js.map +1 -0
- package/baselines/performance-store.js +134 -0
- package/baselines/performance-store.js.map +1 -0
- package/baselines/performance-workflow.js +180 -0
- package/baselines/performance-workflow.js.map +1 -0
- package/bench/calibration-schema.js +12 -0
- package/bench/calibration-schema.js.map +1 -0
- package/canonical-identity.js +54 -0
- package/canonical-identity.js.map +1 -0
- package/config/benchmark-execution.js +30 -0
- package/config/benchmark-execution.js.map +1 -0
- package/config/config-error.d.ts +4 -0
- package/config/config-error.d.ts.map +1 -0
- package/config/config-error.js +7 -0
- package/config/config-error.js.map +1 -0
- package/config/config.d.ts +57 -0
- package/config/config.d.ts.map +1 -0
- package/{run/run-config.js → config/config.js} +55 -19
- package/config/config.js.map +1 -0
- package/{run/coverage-config-schema.d.ts → config/coverage-schema.d.ts} +7 -7
- package/config/coverage-schema.d.ts.map +1 -0
- package/{run/coverage-config-schema.js → config/coverage-schema.js} +1 -1
- package/config/coverage-schema.js.map +1 -0
- package/{run/run-config-defaults.js → config/defaults.js} +6 -1
- package/config/defaults.js.map +1 -0
- package/{run/run-execution-config.d.ts → config/execution.d.ts} +5 -7
- package/config/execution.d.ts.map +1 -0
- package/config/host-process.js +41 -0
- package/config/host-process.js.map +1 -0
- package/config/performance-baselines.js +24 -0
- package/config/performance-baselines.js.map +1 -0
- package/config/profile-file-discovery.js +88 -0
- package/config/profile-file-discovery.js.map +1 -0
- package/{run/profile-config-normalization.js → config/profile-normalization.js} +13 -13
- package/config/profile-normalization.js.map +1 -0
- package/{run/profile-file-glob.js → config/profile-patterns.js} +6 -10
- package/config/profile-patterns.js.map +1 -0
- package/{run/run-config-schema.d.ts → config/schema.d.ts} +210 -28
- package/config/schema.d.ts.map +1 -0
- package/{run/run-config-schema.js → config/schema.js} +40 -12
- package/config/schema.js.map +1 -0
- package/config/snapshot.js +205 -0
- package/config/snapshot.js.map +1 -0
- package/config/types.d.ts +160 -0
- package/config/types.d.ts.map +1 -0
- package/config/validation.js +93 -0
- package/config/validation.js.map +1 -0
- package/{run/work-distribution-config.js → config/work-distribution.js} +3 -3
- package/config/work-distribution.js.map +1 -0
- package/{run/run-identity-schema.js → engine/identity-schema.js} +1 -1
- package/engine/identity-schema.js.map +1 -0
- package/file-store.js +48 -0
- package/file-store.js.map +1 -0
- package/package.json +23 -9
- package/packages/run/benchmark-calibration.entry-point.d.ts +22 -0
- package/packages/run/benchmark-calibration.entry-point.d.ts.map +1 -0
- package/packages/run/benchmark-calibration.entry-point.js +129 -0
- package/packages/run/benchmark-calibration.entry-point.js.map +1 -0
- package/packages/run/command-line.entry-point.d.ts +5 -3
- package/packages/run/command-line.entry-point.d.ts.map +1 -1
- package/packages/run/command-line.entry-point.js +28 -7
- package/packages/run/command-line.entry-point.js.map +1 -1
- package/packages/run/config.entry-point.d.ts +8 -6
- package/packages/run/config.entry-point.d.ts.map +1 -1
- package/packages/run/config.entry-point.js +4 -4
- package/packages/run/config.entry-point.js.map +1 -1
- package/packages/run/run.entry-point.d.ts +6 -4
- package/packages/run/run.entry-point.d.ts.map +1 -1
- package/packages/run/run.entry-point.js +3 -3
- package/packages/run/run.entry-point.js.map +1 -1
- package/readme.md +64 -13
- package/run/assertion-result-schema.js +1 -1
- package/run/assertion-result-schema.js.map +1 -1
- package/run/attachment-eligibility.js +1 -1
- package/run/attachment-eligibility.js.map +1 -1
- package/run/attachment-execution.js +2 -2
- package/run/attachment-execution.js.map +1 -1
- package/run/attachment-record.js +2 -2
- package/run/attachment-record.js.map +1 -1
- package/run/attachment-results.js.map +1 -1
- package/run/attachment-retention.js +2 -2
- package/run/attachment-retention.js.map +1 -1
- package/run/benchmark-baseline-commands.js +70 -0
- package/run/benchmark-baseline-commands.js.map +1 -0
- package/run/benchmark-baseline-finalization.js +67 -0
- package/run/benchmark-baseline-finalization.js.map +1 -0
- package/run/benchmark-baseline-operations.js +53 -0
- package/run/benchmark-baseline-operations.js.map +1 -0
- package/run/benchmark-baseline-run.js +58 -0
- package/run/benchmark-baseline-run.js.map +1 -0
- package/run/benchmark-baseline-session.js +72 -0
- package/run/benchmark-baseline-session.js.map +1 -0
- package/run/benchmark-calibration.entry-point.js +3 -0
- package/run/benchmark-calibration.entry-point.js.map +1 -0
- package/run/benchmark-calibration.js +41 -0
- package/run/benchmark-calibration.js.map +1 -0
- package/run/benchmark-command-policy.d.ts +8 -0
- package/run/benchmark-command-policy.d.ts.map +1 -0
- package/run/benchmark-command-policy.js +37 -0
- package/run/benchmark-command-policy.js.map +1 -0
- package/run/benchmark-commands.d.ts +4 -0
- package/run/benchmark-commands.d.ts.map +1 -0
- package/run/benchmark-commands.js +61 -0
- package/run/benchmark-commands.js.map +1 -0
- package/run/child-process-outbox.js +36 -0
- package/run/child-process-outbox.js.map +1 -0
- package/run/child-process-roles.js +1 -0
- package/run/child-process-roles.js.map +1 -1
- package/run/child-process.entry-point.js +5 -1
- package/run/child-process.entry-point.js.map +1 -1
- package/run/collected-run-plan-schema.js +1 -1
- package/run/collected-run-plan-schema.js.map +1 -1
- package/run/command-line-command-namespace.d.ts.map +1 -1
- package/run/command-line-command-namespace.js.map +1 -1
- package/run/command-line-command.d.ts +43 -18
- package/run/command-line-command.d.ts.map +1 -1
- package/run/command-line-command.js +3 -2
- package/run/command-line-command.js.map +1 -1
- package/run/command-line-config.d.ts +5 -0
- package/run/command-line-config.d.ts.map +1 -0
- package/run/command-line-config.js +51 -0
- package/run/command-line-config.js.map +1 -0
- package/run/command-line-execution.js +82 -0
- package/run/command-line-execution.js.map +1 -0
- package/run/command-line-runner.d.ts +4 -5
- package/run/command-line-runner.d.ts.map +1 -1
- package/run/command-line-runner.js +6 -124
- package/run/command-line-runner.js.map +1 -1
- package/run/command-line-unimplemented-commands.js +1 -8
- package/run/command-line-unimplemented-commands.js.map +1 -1
- package/run/coverage-loaded-sources.js +8 -9
- package/run/coverage-loaded-sources.js.map +1 -1
- package/run/coverage-method-ranges.js +100 -0
- package/run/coverage-method-ranges.js.map +1 -0
- package/run/coverage-paths.js.map +1 -1
- package/run/coverage-reporting.js.map +1 -1
- package/run/coverage-runtime-source.js +66 -28
- package/run/coverage-runtime-source.js.map +1 -1
- package/run/coverage-session.js.map +1 -1
- package/run/coverage-source-map.js +2 -3
- package/run/coverage-source-map.js.map +1 -1
- package/run/coverage-source-selection.js +9 -7
- package/run/coverage-source-selection.js.map +1 -1
- package/run/coverage-tokens.js +26 -0
- package/run/coverage-tokens.js.map +1 -0
- package/run/duration-history-schema.js +1 -1
- package/run/duration-history-schema.js.map +1 -1
- package/run/execution-plan-resolution.js +7 -0
- package/run/execution-plan-resolution.js.map +1 -1
- package/run/node-command-line-runner.d.ts +1 -1
- package/run/node-command-line-runner.d.ts.map +1 -1
- package/run/node-command-line-runner.js +18 -10
- package/run/node-command-line-runner.js.map +1 -1
- package/run/node-run-execution.js +2 -2
- package/run/node-run-execution.js.map +1 -1
- package/run/reporter-event-schema.js +1 -1
- package/run/reporter-event-schema.js.map +1 -1
- package/run/request-snapshot.js +40 -0
- package/run/request-snapshot.js.map +1 -0
- package/run/run-artifact-id-schema.js +1 -1
- package/run/run-artifact-id-schema.js.map +1 -1
- package/run/run-artifact-schema.js +1 -1
- package/run/run-artifact-schema.js.map +1 -1
- package/run/run-collected-planning.js +13 -7
- package/run/run-collected-planning.js.map +1 -1
- package/run/run-collected-resolution.js +1 -0
- package/run/run-collected-resolution.js.map +1 -1
- package/run/run-collection-error-result.js +3 -2
- package/run/run-collection-error-result.js.map +1 -1
- package/run/run-command-schema.js +1 -1
- package/run/run-command-schema.js.map +1 -1
- package/run/run-coverage.js.map +1 -1
- package/run/run-discovery-types.d.ts +2 -2
- package/run/run-discovery-types.d.ts.map +1 -1
- package/run/run-discovery.js +14 -96
- package/run/run-discovery.js.map +1 -1
- package/run/run-engine-primitives.d.ts.map +1 -1
- package/run/run-errors.d.ts +5 -7
- package/run/run-errors.d.ts.map +1 -1
- package/run/run-errors.js +0 -6
- package/run/run-errors.js.map +1 -1
- package/run/run-execution.js +54 -0
- package/run/run-execution.js.map +1 -0
- package/run/run-facts.js +6 -70
- package/run/run-facts.js.map +1 -1
- package/run/run-host-process.js +1 -40
- package/run/run-host-process.js.map +1 -1
- package/run/run-if-main-options.js.map +1 -1
- package/run/run-if-main-profile.d.ts +8 -10
- package/run/run-if-main-profile.d.ts.map +1 -1
- package/run/run-if-main-profile.js +25 -112
- package/run/run-if-main-profile.js.map +1 -1
- package/run/run-if-main.d.ts.map +1 -1
- package/run/run-if-main.js.map +1 -1
- package/run/run-in-process-execution.js +2 -0
- package/run/run-in-process-execution.js.map +1 -1
- package/run/run-input-resolution.js +32 -10
- package/run/run-input-resolution.js.map +1 -1
- package/run/run-isolated-command.js +3 -3
- package/run/run-isolated-command.js.map +1 -1
- package/run/run-isolated-process.js +24 -9
- package/run/run-isolated-process.js.map +1 -1
- package/run/run-local-command.js +12 -14
- package/run/run-local-command.js.map +1 -1
- package/run/run-local-execution.js.map +1 -1
- package/run/run-local-resolution.js +6 -5
- package/run/run-local-resolution.js.map +1 -1
- package/run/run-local-test-plan.js.map +1 -1
- package/run/run-orchestrator-dependencies.d.ts +4 -4
- package/run/run-orchestrator-dependencies.d.ts.map +1 -1
- package/run/run-ordering.js.map +1 -1
- package/run/run-process-engine.js.map +1 -1
- package/run/run-profile-facts.js +65 -0
- package/run/run-profile-facts.js.map +1 -0
- package/run/run-record-types.d.ts +5 -4
- package/run/run-record-types.d.ts.map +1 -1
- package/run/run-reporter-resolution.js +4 -1
- package/run/run-reporter-resolution.js.map +1 -1
- package/run/run-result-reporting.js.map +1 -1
- package/run/run-result-schema.js +2 -1
- package/run/run-result-schema.js.map +1 -1
- package/run/run-selection.js.map +1 -1
- package/run/run-sharding.js +3 -55
- package/run/run-sharding.js.map +1 -1
- package/run/run-supervised-finalization.js +2 -1
- package/run/run-supervised-finalization.js.map +1 -1
- package/run/run-supervised-process.js +6 -4
- package/run/run-supervised-process.js.map +1 -1
- package/run/run-support.js +1 -222
- package/run/run-support.js.map +1 -1
- package/run/run-types.d.ts +63 -168
- package/run/run-types.d.ts.map +1 -1
- package/run/run-types.js.map +1 -1
- package/run/run-validation.js +11 -63
- package/run/run-validation.js.map +1 -1
- package/run/run.d.ts.map +1 -1
- package/run/run.js +51 -21
- package/run/run.js.map +1 -1
- package/run/simulation-witness.js +2 -2
- package/run/simulation-witness.js.map +1 -1
- package/run/supervised-child-process.js +1 -1
- package/run/supervised-child-process.js.map +1 -1
- package/run/supervised-child.entry-point.js +9 -6
- package/run/supervised-child.entry-point.js.map +1 -1
- package/run/supervised-child.js +1 -1
- 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-resource-policy.js.map +1 -1
- package/run/supervised-run-state.js.map +1 -1
- package/run/test-profile.js +21 -0
- package/run/test-profile.js.map +1 -0
- package/run/work-unit-identity.js.map +1 -1
- package/run/work-unit-planning.js +6 -6
- package/run/work-unit-planning.js.map +1 -1
- package/run/work-unit-resource-constraints.js +1 -1
- package/run/work-unit-resource-constraints.js.map +1 -1
- package/run/worker-pool-host-protocol-schema.js +2 -2
- package/run/worker-pool-host-protocol-schema.js.map +1 -1
- package/run/worker-pool-host.entry-point.js +7 -4
- package/run/worker-pool-host.entry-point.js.map +1 -1
- package/run/worker-pool-lanes.js.map +1 -1
- package/run/worker-pool-lifecycle-lanes.js.map +1 -1
- package/run/worker-pool-placement-planning.js.map +1 -1
- package/run/worker-pool-protocol.js.map +1 -1
- package/run/worker-pool-results.js +2 -2
- package/run/worker-pool-results.js.map +1 -1
- package/run/worker-pool-routing.js.map +1 -1
- package/run/worker-pool-run.js +5 -4
- package/run/worker-pool-run.js.map +1 -1
- package/run/worker-pool-runtime.js.map +1 -1
- package/run/worker-pool-task-schema.js +1 -1
- package/run/worker-pool-task-schema.js.map +1 -1
- package/sbom.cdx.json +26 -43
- package/run/attachment-json.js.map +0 -1
- package/run/coverage-config-schema.d.ts.map +0 -1
- package/run/coverage-config-schema.js.map +0 -1
- package/run/node-runtime-state-store.js +0 -38
- package/run/node-runtime-state-store.js.map +0 -1
- package/run/profile-config-normalization.js.map +0 -1
- package/run/profile-file-glob.js.map +0 -1
- package/run/run-config-defaults.js.map +0 -1
- package/run/run-config-schema.d.ts.map +0 -1
- package/run/run-config-schema.js.map +0 -1
- package/run/run-config.d.ts +0 -62
- package/run/run-config.d.ts.map +0 -1
- package/run/run-config.js.map +0 -1
- package/run/run-execution-config.d.ts.map +0 -1
- package/run/run-identity-schema.js.map +0 -1
- package/run/work-distribution-config.js.map +0 -1
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { caseIdentityKey, createDefaultWorkId, workIdentityKey } from "../engine/identity.js";
|
|
2
|
+
import { runStatusFromPlan } from "../engine/run-result.js";
|
|
3
|
+
import { performanceBaselineIdentity } from "./performance-baseline.js";
|
|
4
|
+
import { evaluatePerformanceBaseline, performanceBaselineError } from "./performance-evaluation.js";
|
|
5
|
+
import { createPerformanceBaselineStore, performanceBaselineKey } from "./performance-store.js";
|
|
6
|
+
function createWorkflowState(existing) {
|
|
7
|
+
const changes = [];
|
|
8
|
+
const evaluated = new Map();
|
|
9
|
+
const participating = new Set();
|
|
10
|
+
return {
|
|
11
|
+
changes,
|
|
12
|
+
evaluated,
|
|
13
|
+
existing,
|
|
14
|
+
participating,
|
|
15
|
+
addChange(change) {
|
|
16
|
+
changes.push(change);
|
|
17
|
+
},
|
|
18
|
+
participate(key) {
|
|
19
|
+
participating.add(key);
|
|
20
|
+
},
|
|
21
|
+
remember(key, event) {
|
|
22
|
+
evaluated.set(key, event);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function baselineCaseResult(testResult, evaluated) {
|
|
27
|
+
const event = evaluated.get(workIdentityKey(testResult.workId));
|
|
28
|
+
if (event === undefined || event.verdict === 'pass' || testResult.verdict !== 'pass') {
|
|
29
|
+
return testResult;
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
...testResult,
|
|
33
|
+
attempts: [
|
|
34
|
+
{ ...testResult.attempts[0], outcome: event.outcome, verdict: event.verdict },
|
|
35
|
+
...testResult.attempts.slice(1)
|
|
36
|
+
],
|
|
37
|
+
outcome: event.outcome,
|
|
38
|
+
verdict: event.verdict
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function resultWithBaselineVerdicts(result, state) {
|
|
42
|
+
const perTest = result.perTest.map(function baselineResult(testResult) {
|
|
43
|
+
return baselineCaseResult(testResult, state.evaluated);
|
|
44
|
+
});
|
|
45
|
+
const summary = {
|
|
46
|
+
...result.summary,
|
|
47
|
+
failed: perTest
|
|
48
|
+
.filter(function failed(testResult) {
|
|
49
|
+
return testResult.verdict === 'fail';
|
|
50
|
+
})
|
|
51
|
+
.length,
|
|
52
|
+
passed: perTest
|
|
53
|
+
.filter(function passed(testResult) {
|
|
54
|
+
return testResult.verdict === 'pass';
|
|
55
|
+
})
|
|
56
|
+
.length
|
|
57
|
+
};
|
|
58
|
+
return { ...result, perTest, status: runStatusFromPlan(summary, result.runnerErrors, result.planStatus), summary };
|
|
59
|
+
}
|
|
60
|
+
function completedCase(testResult) {
|
|
61
|
+
return testResult.verdict === 'pass' || testResult.verdict === 'skip';
|
|
62
|
+
}
|
|
63
|
+
export function successfulPerformanceRun(result) {
|
|
64
|
+
return result.status === 'passed' && result.planStatus === 'planned' && result.runnerErrors.length === 0 &&
|
|
65
|
+
result.perTest.length === result.summary.planned && result.perTest.every(completedCase);
|
|
66
|
+
}
|
|
67
|
+
function staleBaselines(result, state) {
|
|
68
|
+
const skipped = new Set(result
|
|
69
|
+
.perTest
|
|
70
|
+
.filter(function skippedCase(testResult) {
|
|
71
|
+
return testResult.verdict === 'skip';
|
|
72
|
+
})
|
|
73
|
+
.map(function skippedIdentity(testResult) {
|
|
74
|
+
return caseIdentityKey(testResult.workId.case);
|
|
75
|
+
}));
|
|
76
|
+
return Array
|
|
77
|
+
.from(state.existing)
|
|
78
|
+
.filter(function stale([key, baseline]) {
|
|
79
|
+
return !state.participating.has(key) && !skipped.has(caseIdentityKey(baseline.work.case));
|
|
80
|
+
})
|
|
81
|
+
.map(function staleBaseline([, baseline]) {
|
|
82
|
+
return baseline;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function reconcileInventory(input, result, state) {
|
|
86
|
+
const stale = staleBaselines(result, state);
|
|
87
|
+
if (input.mode === 'apply' || input.mode === 'diff') {
|
|
88
|
+
for (const baseline of stale) {
|
|
89
|
+
state.addChange({ baseline, kind: 'remove' });
|
|
90
|
+
}
|
|
91
|
+
return [];
|
|
92
|
+
}
|
|
93
|
+
return stale.length === 0 ? [] : [performanceBaselineError(new Error(`Found ${stale.length.toString()} stale performance baselines. Use "overkill bench baseline apply".`), null)];
|
|
94
|
+
}
|
|
95
|
+
function evaluateAdapter(input, state, event, adapter) {
|
|
96
|
+
const work = event.workId ?? createDefaultWorkId(event.case);
|
|
97
|
+
const key = performanceBaselineKey({
|
|
98
|
+
adapter: adapter.id,
|
|
99
|
+
machineClass: input.calibration.machineClass,
|
|
100
|
+
profile: input.profile,
|
|
101
|
+
work
|
|
102
|
+
});
|
|
103
|
+
const evaluation = evaluatePerformanceBaseline({
|
|
104
|
+
adapter,
|
|
105
|
+
calibration: input.calibration,
|
|
106
|
+
event,
|
|
107
|
+
existing: state.existing.get(key) ?? null,
|
|
108
|
+
maxBytes: input.maxBytes,
|
|
109
|
+
mode: input.mode,
|
|
110
|
+
profile: input.profile
|
|
111
|
+
});
|
|
112
|
+
if (evaluation.participates) {
|
|
113
|
+
state.participate(key);
|
|
114
|
+
}
|
|
115
|
+
if (evaluation.change !== null) {
|
|
116
|
+
state.addChange(evaluation.change);
|
|
117
|
+
}
|
|
118
|
+
return evaluation.checks;
|
|
119
|
+
}
|
|
120
|
+
function evaluateAdapters(input, state, event) {
|
|
121
|
+
const checks = [];
|
|
122
|
+
const errors = [];
|
|
123
|
+
for (const adapter of input.adapters) {
|
|
124
|
+
try {
|
|
125
|
+
checks.push(...evaluateAdapter(input, state, event, adapter));
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
errors.push(performanceBaselineError(error, event));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
const [first, ...rest] = checks;
|
|
132
|
+
return {
|
|
133
|
+
errors,
|
|
134
|
+
event: first === undefined ? event : {
|
|
135
|
+
...event,
|
|
136
|
+
outcome: { failures: [{ checks: [first, ...rest], kind: 'assertion' }], kind: 'fail' },
|
|
137
|
+
verdict: 'fail'
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
function evaluateCase(input, state, event) {
|
|
142
|
+
if (event.completion !== 'final' || event.verdict !== 'pass') {
|
|
143
|
+
return { errors: [], event };
|
|
144
|
+
}
|
|
145
|
+
const key = workIdentityKey(event.workId ?? createDefaultWorkId(event.case));
|
|
146
|
+
const cached = state.evaluated.get(key);
|
|
147
|
+
if (cached !== undefined) {
|
|
148
|
+
return { errors: [], event: cached };
|
|
149
|
+
}
|
|
150
|
+
const evaluation = evaluateAdapters(input, state, event);
|
|
151
|
+
state.remember(key, evaluation.event);
|
|
152
|
+
return evaluation;
|
|
153
|
+
}
|
|
154
|
+
export async function createPerformanceWorkflow(input) {
|
|
155
|
+
const store = await createPerformanceBaselineStore(input);
|
|
156
|
+
const entries = await store.list();
|
|
157
|
+
const state = createWorkflowState(new Map(entries
|
|
158
|
+
.filter(function belongsToRun(entry) {
|
|
159
|
+
return entry.baseline.profile.normalize('NFC') === input.profile.normalize('NFC') &&
|
|
160
|
+
entry.baseline.expected.calibration.machineClass === input.calibration.machineClass;
|
|
161
|
+
})
|
|
162
|
+
.map(function baselineEntry(entry) {
|
|
163
|
+
return [performanceBaselineKey(performanceBaselineIdentity(entry.baseline)), entry.baseline];
|
|
164
|
+
})));
|
|
165
|
+
return {
|
|
166
|
+
changes: state.changes,
|
|
167
|
+
store,
|
|
168
|
+
evaluate(event) {
|
|
169
|
+
return evaluateCase(input, state, event);
|
|
170
|
+
},
|
|
171
|
+
finish(result, completeInventory) {
|
|
172
|
+
const evaluated = resultWithBaselineVerdicts(result, state);
|
|
173
|
+
const errors = completeInventory && successfulPerformanceRun(evaluated)
|
|
174
|
+
? reconcileInventory(input, evaluated, state)
|
|
175
|
+
: [];
|
|
176
|
+
return { errors, result: evaluated };
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=performance-workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-workflow.js","sourceRoot":"","sources":["../../../../source/baselines/performance-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
export const comparableCalibrationSchema = z.strictObject({
|
|
3
|
+
context: z.json(),
|
|
4
|
+
kind: z.literal('comparable'),
|
|
5
|
+
machineClass: z.string().min(1),
|
|
6
|
+
metadata: z.json()
|
|
7
|
+
});
|
|
8
|
+
export const benchmarkCalibrationSchema = z.union([
|
|
9
|
+
comparableCalibrationSchema,
|
|
10
|
+
z.strictObject({ kind: z.literal('non-comparable'), metadata: z.json(), reason: z.string().min(1) })
|
|
11
|
+
]);
|
|
12
|
+
//# sourceMappingURL=calibration-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calibration-schema.js","sourceRoot":"","sources":["../../../../source/bench/calibration-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAM3B,MAAM,CAAC,MAAM,2BAA2B,GAAqC,CAAC,CAAC,YAAY,CAAC;IACxF,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IAC7B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE;CACrB,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,0BAA0B,GAA0C,CAAC,CAAC,KAAK,CAAC;IACrF,2BAA2B;IAC3B,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;CACvG,CAAC,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
function sortedObjectKeys(value) {
|
|
2
|
+
return Object.keys(value).toSorted(function compareKeys(left, right) {
|
|
3
|
+
return left.localeCompare(right);
|
|
4
|
+
});
|
|
5
|
+
}
|
|
6
|
+
function canonicalNumber(value) {
|
|
7
|
+
if (Number.isFinite(value)) {
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
throw new TypeError('Cannot serialize number value for shard partitioning.');
|
|
11
|
+
}
|
|
12
|
+
function canonicalScalar(value) {
|
|
13
|
+
if (typeof value === 'boolean') {
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
if (typeof value === 'number') {
|
|
17
|
+
return canonicalNumber(value);
|
|
18
|
+
}
|
|
19
|
+
if (typeof value === 'string') {
|
|
20
|
+
return value.normalize('NFC');
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
function isRecord(value) {
|
|
25
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
26
|
+
}
|
|
27
|
+
function canonicalArray(value, canonicalize) {
|
|
28
|
+
return value.map(canonicalize);
|
|
29
|
+
}
|
|
30
|
+
function canonicalRecord(value, canonicalize) {
|
|
31
|
+
return Object.fromEntries(sortedObjectKeys(value).map(function toCanonicalEntry(key) {
|
|
32
|
+
return [key.normalize('NFC'), canonicalize(value[key])];
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
function canonicalJsonValue(value) {
|
|
36
|
+
const scalar = canonicalScalar(value);
|
|
37
|
+
if (scalar !== undefined) {
|
|
38
|
+
return scalar;
|
|
39
|
+
}
|
|
40
|
+
if (value === null) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
if (Array.isArray(value)) {
|
|
44
|
+
return canonicalArray(value, canonicalJsonValue);
|
|
45
|
+
}
|
|
46
|
+
if (isRecord(value)) {
|
|
47
|
+
return canonicalRecord(value, canonicalJsonValue);
|
|
48
|
+
}
|
|
49
|
+
throw new TypeError(`Cannot serialize ${typeof value} value for shard partitioning.`);
|
|
50
|
+
}
|
|
51
|
+
export function canonicalIdentityJson(value) {
|
|
52
|
+
return JSON.stringify(canonicalJsonValue(value));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=canonical-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-identity.js","sourceRoot":"","sources":["../../../source/canonical-identity.ts"],"names":[],"mappings":"AAIA,SAAS,gBAAgB,CAAC,KAAwC;IAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,WAAW,CAAC,IAAI,EAAE,KAAK;QAC/D,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IAClC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,cAAc,CACnB,KAAyB,EACzB,YAAmD;IAEnD,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,eAAe,CACpB,KAAwC,EACxC,YAAmD;IAEnD,OAAO,MAAM,CAAC,WAAW,CACrB,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,gBAAgB,CAAC,GAAG;QACrD,OAAO,CAAE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;IAC9D,CAAC,CAAC,CACL,CAAC;AACN,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACtC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,cAAc,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,IAAI,SAAS,CAAC,oBAAoB,OAAO,KAAK,gCAAgC,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAChD,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ConfigError } from "./config-error.js";
|
|
2
|
+
import { defaultBenchmarkTimeoutPolicy } from "./defaults.js";
|
|
3
|
+
function validateBenchmarkAdmission(execution) {
|
|
4
|
+
if (execution.scheduling !== 'serial' || execution.maxConcurrency !== 1) {
|
|
5
|
+
throw new ConfigError('Benchmark execution requires serial scheduling and maxConcurrency 1.');
|
|
6
|
+
}
|
|
7
|
+
if (execution.processModel !== 'supervised-process' && execution.processModel !== 'worker-pool') {
|
|
8
|
+
throw new ConfigError('Benchmark execution requires supervised-process or worker-pool.');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function validateBenchmarkWorkerPool(execution) {
|
|
12
|
+
if (execution.hedging.mode !== 'off') {
|
|
13
|
+
throw new ConfigError('Benchmark execution does not support hedging.');
|
|
14
|
+
}
|
|
15
|
+
if (execution.workDistribution.mode === 'group' && execution.workDistribution.groups.some(function hasConcurrentScheduling(group) {
|
|
16
|
+
return group.scheduling === 'concurrent';
|
|
17
|
+
})) {
|
|
18
|
+
throw new ConfigError('Benchmark work groups do not support concurrent scheduling.');
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export function validateBenchmarkExecution(execution, timeouts) {
|
|
22
|
+
validateBenchmarkAdmission(execution);
|
|
23
|
+
if (timeouts.hardMilliseconds > defaultBenchmarkTimeoutPolicy.hardMilliseconds) {
|
|
24
|
+
throw new ConfigError('Benchmark hard timeout must not exceed 60000 milliseconds.');
|
|
25
|
+
}
|
|
26
|
+
if (execution.processModel === 'worker-pool') {
|
|
27
|
+
validateBenchmarkWorkerPool(execution);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=benchmark-execution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark-execution.js","sourceRoot":"","sources":["../../../../source/config/benchmark-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAK9D,SAAS,0BAA0B,CAAC,SAA2B;IAC3D,IAAI,SAAS,CAAC,UAAU,KAAK,QAAQ,IAAI,SAAS,CAAC,cAAc,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,WAAW,CAAC,sEAAsE,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,SAAS,CAAC,YAAY,KAAK,oBAAoB,IAAI,SAAS,CAAC,YAAY,KAAK,aAAa,EAAE,CAAC;QAC9F,MAAM,IAAI,WAAW,CAAC,iEAAiE,CAAC,CAAC;IAC7F,CAAC;AACL,CAAC;AAED,SAAS,2BAA2B,CAChC,SAA+E;IAE/E,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACnC,MAAM,IAAI,WAAW,CAAC,+CAA+C,CAAC,CAAC;IAC3E,CAAC;IACD,IACI,SAAS,CAAC,gBAAgB,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CACjF,SAAS,uBAAuB,CAAC,KAAK;QAClC,OAAO,KAAK,CAAC,UAAU,KAAK,YAAY,CAAC;IAC7C,CAAC,CACJ,EACH,CAAC;QACC,MAAM,IAAI,WAAW,CAAC,6DAA6D,CAAC,CAAC;IACzF,CAAC;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,SAA2B,EAAE,QAAuB;IAC3F,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,QAAQ,CAAC,gBAAgB,GAAG,6BAA6B,CAAC,gBAAgB,EAAE,CAAC;QAC7E,MAAM,IAAI,WAAW,CAAC,4DAA4D,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,SAAS,CAAC,YAAY,KAAK,aAAa,EAAE,CAAC;QAC3C,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-error.d.ts","sourceRoot":"","sources":["../../../../source/config/config-error.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,SAAQ,KAAK;gBACf,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC;CAIvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-error.js","sourceRoot":"","sources":["../../../../source/config/config-error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAY,SAAQ,KAAK;IAClC,YAAmB,OAAe,EAAE,OAAgC;QAChE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC9B,CAAC;CACJ"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { z } from 'zod/v4';
|
|
2
|
+
import { type ProjectAttachmentLimits as ParsedProjectAttachmentLimits, type integrationProfileSchema, type Config as ParsedProjectConfig, type ProjectBenchmarkProfileConfig, type ProjectCoverageOutput as ParsedProjectCoverageOutput, type ProjectCoveragePolicy as ParsedProjectCoveragePolicy, type ProjectCoverageSources as ParsedProjectCoverageSources, type ProjectCoverageThresholds as ParsedProjectCoverageThresholds, type ProjectIntegrationExecution as ParsedProjectIntegrationExecution, type ProjectIntegrationProfileConfig as ParsedProjectIntegrationProfileConfig, type ProjectMeasuredResourceUsage as ParsedProjectMeasuredResourceUsage, type ProjectMicrotestExecution as ParsedProjectMicrotestExecution, type ProjectMicrotestProfileConfig as ParsedProjectMicrotestProfileConfig, type ProjectProfileFiles as ParsedProjectProfileFiles, type ProjectResourceBudgets as ParsedProjectResourceBudgets, type ProjectResourceUsageConfig as ParsedProjectResourceUsageConfig, type ProjectTimingProfilePolicy as ParsedProjectTimingProfilePolicy, type ProjectTimeoutConfig as ParsedProjectTimeoutConfig, type ProjectUnmeasuredResourceUsage as ParsedProjectUnmeasuredResourceUsage } from './schema.ts';
|
|
3
|
+
import type { NormalizedConfig } from './types.ts';
|
|
4
|
+
type ProjectHostProcessGuard = Readonly<Partial<Record<'hostProcess', never>>>;
|
|
5
|
+
type ProjectRetryPolicyGuard = Readonly<Partial<Record<'retries', never>>>;
|
|
6
|
+
export type LoadedConfig = NormalizedConfig & {
|
|
7
|
+
readonly configPath: string | null;
|
|
8
|
+
};
|
|
9
|
+
export type ProjectIntegrationExecution = ParsedProjectIntegrationExecution & ProjectHostProcessGuard;
|
|
10
|
+
type IntegrationArtifactSettings = Pick<z.input<typeof integrationProfileSchema>, 'attachments' | 'retries'>;
|
|
11
|
+
export type ProjectIntegrationProfileConfig = IntegrationArtifactSettings & {
|
|
12
|
+
readonly coverage?: never;
|
|
13
|
+
readonly execution?: ProjectIntegrationExecution | undefined;
|
|
14
|
+
readonly files: ParsedProjectIntegrationProfileConfig['files'];
|
|
15
|
+
readonly reporters?: ParsedProjectIntegrationProfileConfig['reporters'];
|
|
16
|
+
readonly resourceUsage?: ParsedProjectIntegrationProfileConfig['resourceUsage'];
|
|
17
|
+
readonly testFamily: ParsedProjectIntegrationProfileConfig['testFamily'];
|
|
18
|
+
readonly timings?: ParsedProjectIntegrationProfileConfig['timings'];
|
|
19
|
+
readonly timeouts?: ParsedProjectIntegrationProfileConfig['timeouts'];
|
|
20
|
+
};
|
|
21
|
+
export type ProjectMicrotestExecution = ParsedProjectMicrotestExecution;
|
|
22
|
+
export type ProjectMicrotestProfileConfig = ParsedProjectMicrotestProfileConfig & ProjectRetryPolicyGuard;
|
|
23
|
+
export type ProjectCoverageOutput = ParsedProjectCoverageOutput;
|
|
24
|
+
export type ProjectCoveragePolicy = ParsedProjectCoveragePolicy;
|
|
25
|
+
export type ProjectCoverageSources = ParsedProjectCoverageSources;
|
|
26
|
+
export type ProjectCoverageThresholds = ParsedProjectCoverageThresholds;
|
|
27
|
+
export type ProjectProfileFiles = ParsedProjectProfileFiles;
|
|
28
|
+
type ProjectTestProfileConfig = ProjectIntegrationProfileConfig | ProjectMicrotestProfileConfig;
|
|
29
|
+
export type ProjectProfileConfig = ProjectBenchmarkProfileConfig | ProjectTestProfileConfig;
|
|
30
|
+
export type ProjectProfilesConfig = Readonly<Record<string, ProjectProfileConfig>>;
|
|
31
|
+
export type ProjectResourceBudgets = ParsedProjectResourceBudgets;
|
|
32
|
+
export type ProjectMeasuredResourceUsage = ParsedProjectMeasuredResourceUsage;
|
|
33
|
+
export type ProjectUnmeasuredResourceUsage = ParsedProjectUnmeasuredResourceUsage;
|
|
34
|
+
export type ProjectResourceUsageConfig = ParsedProjectResourceUsageConfig;
|
|
35
|
+
export type ProjectTimingProfilePolicy = ParsedProjectTimingProfilePolicy;
|
|
36
|
+
export type ProjectTimeoutConfig = ParsedProjectTimeoutConfig;
|
|
37
|
+
export type Config = {
|
|
38
|
+
readonly loader?: ParsedProjectConfig['loader'];
|
|
39
|
+
readonly outputRenderer?: ParsedProjectConfig['outputRenderer'];
|
|
40
|
+
readonly profiles?: ProjectProfilesConfig | undefined;
|
|
41
|
+
readonly reporters?: ParsedProjectConfig['reporters'];
|
|
42
|
+
readonly runtimeStateDir?: ParsedProjectConfig['runtimeStateDir'];
|
|
43
|
+
};
|
|
44
|
+
export type ConfigLoadRequest = {
|
|
45
|
+
readonly configPath: string | null;
|
|
46
|
+
readonly cwd: string;
|
|
47
|
+
};
|
|
48
|
+
export type ConfigLoaderDependencies = {
|
|
49
|
+
readonly fileExists: (filePath: string) => Promise<boolean>;
|
|
50
|
+
readonly importModule: (configPath: string) => Promise<unknown>;
|
|
51
|
+
};
|
|
52
|
+
export type ConfigLoader = (request: ConfigLoadRequest) => Promise<LoadedConfig>;
|
|
53
|
+
export declare function defineConfig(config: Config): Config;
|
|
54
|
+
export declare function normalizeConfig(config: Config): NormalizedConfig;
|
|
55
|
+
export type ProjectAttachmentLimits = ParsedProjectAttachmentLimits;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../source/config/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import { parse } from '@schema-hub/zod-error-formatter';
|
|
3
3
|
import { createPlainOutputRenderer } from "../engine/reporter-output.js";
|
|
4
|
-
import { attachmentLimitsSchema, projectConfigSchema, workerPoolProjectExecution } from "./
|
|
5
|
-
import { assertValidProfileName, assertValidWorkDistribution, normalizeCoveragePolicy, normalizeProfileFiles, normalizeRequiredProfileFiles, normalizedWorkDistribution } from "./profile-
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
4
|
+
import { attachmentLimitsSchema, projectConfigSchema, workerPoolProjectExecution } from "./schema.js";
|
|
5
|
+
import { assertValidProfileName, assertValidWorkDistribution, normalizeCoveragePolicy, normalizeProfileFiles, normalizeRequiredProfileFiles, normalizedWorkDistribution } from "./profile-normalization.js";
|
|
6
|
+
import { ConfigError } from "./config-error.js";
|
|
7
|
+
import { validateBenchmarkExecution } from "./benchmark-execution.js";
|
|
8
|
+
import { defaultBenchmarkTimeoutPolicy, defaultConfigFileNames, defaultIntegrationProcessModel, defaultIntegrationScheduling, defaultIntegrationTimeoutPolicy, defaultLoader, normalizeMicrotestExecution, normalizedMaxConcurrency, defaultResourceUsagePolicy, defaultResourceUsageSamplingIntervalMilliseconds, defaultTimingProfilePolicy, defaultTimeoutPolicy, defaultWorkerLifecycle, defaultWorkerPoolAssignmentPolicy, defaultWorkerPoolDispatchPolicy, defaultWorkerPoolHedgingPolicy } from "./defaults.js";
|
|
8
9
|
export function defineConfig(config) {
|
|
9
10
|
return config;
|
|
10
11
|
}
|
|
@@ -28,7 +29,7 @@ async function importConfigModule(configPath, dependencies) {
|
|
|
28
29
|
return await dependencies.importModule(configPath);
|
|
29
30
|
}
|
|
30
31
|
catch (error) {
|
|
31
|
-
throw new
|
|
32
|
+
throw new ConfigError(`Failed to load config file "${configPath}".`, { cause: error });
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
function hasDefaultExport(configModule) {
|
|
@@ -42,18 +43,18 @@ function assertNoExtraConfigExports(configModule, configPath) {
|
|
|
42
43
|
return exportName !== 'config';
|
|
43
44
|
});
|
|
44
45
|
if (extraExports.length > 0) {
|
|
45
|
-
throw new
|
|
46
|
+
throw new ConfigError(`Config file "${configPath}" must only export a named config value.`);
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
function readNamedConfigExport(configModule, configPath) {
|
|
49
50
|
if (hasDefaultExport(configModule)) {
|
|
50
|
-
throw new
|
|
51
|
+
throw new ConfigError(`Config file "${configPath}" must not export a default config.`);
|
|
51
52
|
}
|
|
52
53
|
if (hasNamedConfigExport(configModule)) {
|
|
53
54
|
assertNoExtraConfigExports(configModule, configPath);
|
|
54
55
|
return configModule.config;
|
|
55
56
|
}
|
|
56
|
-
throw new
|
|
57
|
+
throw new ConfigError(`Config file "${configPath}" must export a named config value.`);
|
|
57
58
|
}
|
|
58
59
|
function normalizeReporters(reporters) {
|
|
59
60
|
return reporters ?? null;
|
|
@@ -117,7 +118,7 @@ function normalizeResourceUsage(profile) {
|
|
|
117
118
|
return normalizeMeasuredResourceUsage(profile);
|
|
118
119
|
}
|
|
119
120
|
function normalizeTimings(timings) {
|
|
120
|
-
return timings ?? defaultTimingProfilePolicy;
|
|
121
|
+
return { collection: timings?.collection ?? defaultTimingProfilePolicy.collection };
|
|
121
122
|
}
|
|
122
123
|
function timeoutValue(value, fallback) {
|
|
123
124
|
return value ?? fallback;
|
|
@@ -131,7 +132,7 @@ function normalizeTimeouts(timeouts, defaultPolicy) {
|
|
|
131
132
|
}
|
|
132
133
|
function assertValidTimeouts(timeouts) {
|
|
133
134
|
if (timeouts.softMilliseconds > timeouts.hardMilliseconds) {
|
|
134
|
-
throw new
|
|
135
|
+
throw new ConfigError('Invalid profile timeouts: softMilliseconds must be less than or equal to hardMilliseconds.');
|
|
135
136
|
}
|
|
136
137
|
}
|
|
137
138
|
function normalizeWorkerLifecycle(execution) {
|
|
@@ -156,7 +157,7 @@ function assertValidWorkerPoolHedging(execution) {
|
|
|
156
157
|
if (execution.processModel === 'worker-pool' &&
|
|
157
158
|
execution.hedging.mode === 'on' &&
|
|
158
159
|
execution.dispatchPolicy === 'static-assignment') {
|
|
159
|
-
throw new
|
|
160
|
+
throw new ConfigError('Invalid worker-pool hedging: hedging requires dynamic-lease dispatch.');
|
|
160
161
|
}
|
|
161
162
|
}
|
|
162
163
|
function normalizeWorkerPoolExecution(execution, scheduling) {
|
|
@@ -222,7 +223,39 @@ function normalizeIntegrationProfile(profile) {
|
|
|
222
223
|
timeouts
|
|
223
224
|
};
|
|
224
225
|
}
|
|
226
|
+
function normalizeBenchmarkExecution(execution) {
|
|
227
|
+
const serialExecution = {
|
|
228
|
+
...normalizeIntegrationExecution(execution),
|
|
229
|
+
maxConcurrency: 1,
|
|
230
|
+
scheduling: 'serial'
|
|
231
|
+
};
|
|
232
|
+
return serialExecution.processModel === 'worker-pool'
|
|
233
|
+
? { ...serialExecution, hedging: { mode: 'off' } }
|
|
234
|
+
: serialExecution;
|
|
235
|
+
}
|
|
236
|
+
function normalizeBenchmarkProfile(profile) {
|
|
237
|
+
const timeouts = normalizeTimeouts(profile.timeouts, defaultBenchmarkTimeoutPolicy);
|
|
238
|
+
const execution = normalizeBenchmarkExecution(profile.execution);
|
|
239
|
+
const files = normalizeRequiredProfileFiles(profile.files);
|
|
240
|
+
assertValidTimeouts(timeouts);
|
|
241
|
+
validateBenchmarkExecution(execution, timeouts);
|
|
242
|
+
assertValidWorkDistribution(execution, files);
|
|
243
|
+
return {
|
|
244
|
+
attachments: attachmentLimitsSchema.parse(profile.attachments),
|
|
245
|
+
baselines: profile.baselines ?? { adapters: [], directory: 'test-baselines' },
|
|
246
|
+
execution,
|
|
247
|
+
files,
|
|
248
|
+
reporters: normalizeReporters(profile.reporters),
|
|
249
|
+
resourceUsage: normalizeResourceUsage(profile.resourceUsage),
|
|
250
|
+
testFamily: 'benchmark',
|
|
251
|
+
timings: normalizeTimings(profile.timings),
|
|
252
|
+
timeouts
|
|
253
|
+
};
|
|
254
|
+
}
|
|
225
255
|
function normalizeProfile(profile, configPath) {
|
|
256
|
+
if (profile.testFamily === 'benchmark') {
|
|
257
|
+
return normalizeBenchmarkProfile(profile);
|
|
258
|
+
}
|
|
226
259
|
if (profile.testFamily === 'integration') {
|
|
227
260
|
return normalizeIntegrationProfile(profile);
|
|
228
261
|
}
|
|
@@ -243,9 +276,8 @@ function normalizeConfiguredProfiles(profiles, configPath) {
|
|
|
243
276
|
}
|
|
244
277
|
return normalizedProfiles;
|
|
245
278
|
}
|
|
246
|
-
function
|
|
279
|
+
function normalizeConfigForOrigin(parsedConfig, configPath) {
|
|
247
280
|
return {
|
|
248
|
-
configPath,
|
|
249
281
|
loader: parsedConfig.loader ?? defaultLoader,
|
|
250
282
|
outputRenderer: parsedConfig.outputRenderer ?? createPlainOutputRenderer(),
|
|
251
283
|
profiles: normalizeConfiguredProfiles(parsedConfig.profiles, configPath),
|
|
@@ -259,18 +291,22 @@ function parseConfig(configValue, configPath) {
|
|
|
259
291
|
return parsedConfig;
|
|
260
292
|
}
|
|
261
293
|
catch (error) {
|
|
262
|
-
|
|
294
|
+
const location = configPath === null ? 'Invalid config' : `Invalid config file "${configPath}"`;
|
|
295
|
+
throw new ConfigError(`${location}: ${String(error)}`, { cause: error });
|
|
263
296
|
}
|
|
264
297
|
}
|
|
265
|
-
export function
|
|
266
|
-
return
|
|
298
|
+
export function normalizeConfig(config) {
|
|
299
|
+
return normalizeConfigForOrigin(parseConfig(config, null), null);
|
|
300
|
+
}
|
|
301
|
+
export function createConfigLoader(dependencies) {
|
|
302
|
+
return async function loadConfig(request) {
|
|
267
303
|
const configPath = await resolveConfigPath(request, dependencies);
|
|
268
304
|
if (configPath === null) {
|
|
269
|
-
return
|
|
305
|
+
return { ...normalizeConfigForOrigin({}, null), configPath: null };
|
|
270
306
|
}
|
|
271
307
|
const configModule = await importConfigModule(configPath, dependencies);
|
|
272
308
|
const configValue = readNamedConfigExport(configModule, configPath);
|
|
273
|
-
return
|
|
309
|
+
return { ...normalizeConfigForOrigin(parseConfig(configValue, configPath), configPath), configPath };
|
|
274
310
|
};
|
|
275
311
|
}
|
|
276
|
-
//# sourceMappingURL=
|
|
312
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../source/config/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod/v4';
|
|
2
2
|
declare const coverageOutputSchema: z.ZodEnum<{
|
|
3
|
-
v8: "v8";
|
|
4
3
|
json: "json";
|
|
5
4
|
text: "text";
|
|
6
5
|
html: "html";
|
|
7
6
|
lcov: "lcov";
|
|
7
|
+
v8: "v8";
|
|
8
8
|
}>;
|
|
9
9
|
declare const coverageSourcesSchema: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
|
|
10
10
|
exclude: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
@@ -22,11 +22,11 @@ declare const coverageThresholdsSchema: z.ZodReadonly<z.ZodObject<{
|
|
|
22
22
|
export declare const coveragePolicySchema: z.ZodReadonly<z.ZodObject<{
|
|
23
23
|
outputDir: z.ZodOptional<z.ZodString>;
|
|
24
24
|
outputs: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodEnum<{
|
|
25
|
-
v8: "v8";
|
|
26
25
|
json: "json";
|
|
27
26
|
text: "text";
|
|
28
27
|
html: "html";
|
|
29
28
|
lcov: "lcov";
|
|
29
|
+
v8: "v8";
|
|
30
30
|
}>>>>;
|
|
31
31
|
sources: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
|
|
32
32
|
exclude: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
@@ -42,9 +42,9 @@ export declare const coveragePolicySchema: z.ZodReadonly<z.ZodObject<{
|
|
|
42
42
|
lines: z.ZodOptional<z.ZodNumber>;
|
|
43
43
|
}, z.core.$strict>>>;
|
|
44
44
|
}, z.core.$strict>>;
|
|
45
|
-
export type
|
|
46
|
-
export type
|
|
47
|
-
export type
|
|
48
|
-
export type
|
|
45
|
+
export type ProjectCoverageOutput = z.infer<typeof coverageOutputSchema>;
|
|
46
|
+
export type ProjectCoveragePolicy = z.infer<typeof coveragePolicySchema>;
|
|
47
|
+
export type ProjectCoverageSources = z.infer<typeof coverageSourcesSchema>;
|
|
48
|
+
export type ProjectCoverageThresholds = z.infer<typeof coverageThresholdsSchema>;
|
|
49
49
|
export {};
|
|
50
|
-
//# sourceMappingURL=coverage-
|
|
50
|
+
//# sourceMappingURL=coverage-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage-schema.d.ts","sourceRoot":"","sources":["../../../../source/config/coverage-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,QAAA,MAAM,oBAAoB;;;;;;EAAmD,CAAC;AAG9E,QAAA,MAAM,qBAAqB;;;;;;;6BAczB,CAAC;AAKH,QAAA,MAAM,wBAAwB;;;;mBAMf,CAAC;AAEhB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;mBAOlB,CAAC;AAEhB,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACzE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACzE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC3E,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage-schema.js","sourceRoot":"","sources":["../../../../source/config/coverage-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAE,CAAC,CAAC;AAC9E,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AAElC,MAAM,qBAAqB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACvD,CAAC;SACI,YAAY,CAAC;QACV,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;KAC5B,CAAC;SACD,QAAQ,EAAE;IACf,CAAC;SACI,YAAY,CAAC;QACV,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAE,cAAc,CAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;QACpE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;KACzB,CAAC;SACD,QAAQ,EAAE;CAClB,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAElF,MAAM,wBAAwB,GAAG,CAAC;KAC7B,YAAY,CAAC;IACV,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC9C,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CAC9C,CAAC;KACD,QAAQ,EAAE,CAAC;AAEhB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAChC,YAAY,CAAC;IACV,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7D,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CACnD,CAAC;KACD,QAAQ,EAAE,CAAC"}
|