@shapeshift-labs/frontier-swarm 0.5.20 → 0.5.22
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/README.md +123 -132
- package/benchmarks/package-bench.mjs +294 -20
- package/dist/index.d.ts +4801 -41
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10368 -40
- package/dist/index.js.map +1 -1
- package/package.json +6 -7
- package/benchmarks/package-bench-fixtures.mjs +0 -95
- package/benchmarks/package-bench-rows.mjs +0 -211
- package/benchmarks/package-bench-runtime.mjs +0 -94
- package/dist/adaptive-load-decisions.d.ts +0 -8
- package/dist/adaptive-load-decisions.d.ts.map +0 -1
- package/dist/adaptive-load-decisions.js +0 -133
- package/dist/adaptive-load-decisions.js.map +0 -1
- package/dist/adaptive-load-limits.d.ts +0 -8
- package/dist/adaptive-load-limits.d.ts.map +0 -1
- package/dist/adaptive-load-limits.js +0 -105
- package/dist/adaptive-load-limits.js.map +0 -1
- package/dist/adaptive-load-observations.d.ts +0 -17
- package/dist/adaptive-load-observations.d.ts.map +0 -1
- package/dist/adaptive-load-observations.js +0 -296
- package/dist/adaptive-load-observations.js.map +0 -1
- package/dist/adaptive-load-types.d.ts +0 -117
- package/dist/adaptive-load-types.d.ts.map +0 -1
- package/dist/adaptive-load-types.js +0 -3
- package/dist/adaptive-load-types.js.map +0 -1
- package/dist/adaptive-load.d.ts +0 -10
- package/dist/adaptive-load.d.ts.map +0 -1
- package/dist/adaptive-load.js +0 -98
- package/dist/adaptive-load.js.map +0 -1
- package/dist/adaptive-types.d.ts +0 -127
- package/dist/adaptive-types.d.ts.map +0 -1
- package/dist/adaptive-types.js +0 -2
- package/dist/adaptive-types.js.map +0 -1
- package/dist/artifact-routing-runtime.d.ts +0 -3
- package/dist/artifact-routing-runtime.d.ts.map +0 -1
- package/dist/artifact-routing-runtime.js +0 -72
- package/dist/artifact-routing-runtime.js.map +0 -1
- package/dist/auto-review.d.ts +0 -47
- package/dist/auto-review.d.ts.map +0 -1
- package/dist/auto-review.js +0 -69
- package/dist/auto-review.js.map +0 -1
- package/dist/blackboard.d.ts +0 -81
- package/dist/blackboard.d.ts.map +0 -1
- package/dist/blackboard.js +0 -60
- package/dist/blackboard.js.map +0 -1
- package/dist/coercion.d.ts +0 -12
- package/dist/coercion.d.ts.map +0 -1
- package/dist/coercion.js +0 -48
- package/dist/coercion.js.map +0 -1
- package/dist/constants.d.ts +0 -106
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -106
- package/dist/constants.js.map +0 -1
- package/dist/context-pack-runtime.d.ts +0 -3
- package/dist/context-pack-runtime.d.ts.map +0 -1
- package/dist/context-pack-runtime.js +0 -77
- package/dist/context-pack-runtime.js.map +0 -1
- package/dist/context-types.d.ts +0 -188
- package/dist/context-types.d.ts.map +0 -1
- package/dist/context-types.js +0 -2
- package/dist/context-types.js.map +0 -1
- package/dist/coordinator-dashboard-helpers.d.ts +0 -14
- package/dist/coordinator-dashboard-helpers.d.ts.map +0 -1
- package/dist/coordinator-dashboard-helpers.js +0 -106
- package/dist/coordinator-dashboard-helpers.js.map +0 -1
- package/dist/coordinator-dashboard-types.d.ts +0 -163
- package/dist/coordinator-dashboard-types.d.ts.map +0 -1
- package/dist/coordinator-dashboard-types.js +0 -3
- package/dist/coordinator-dashboard-types.js.map +0 -1
- package/dist/coordinator-dashboard.d.ts +0 -4
- package/dist/coordinator-dashboard.d.ts.map +0 -1
- package/dist/coordinator-dashboard.js +0 -163
- package/dist/coordinator-dashboard.js.map +0 -1
- package/dist/coordinator-scoring.d.ts +0 -8
- package/dist/coordinator-scoring.d.ts.map +0 -1
- package/dist/coordinator-scoring.js +0 -167
- package/dist/coordinator-scoring.js.map +0 -1
- package/dist/coordinator-types.d.ts +0 -166
- package/dist/coordinator-types.d.ts.map +0 -1
- package/dist/coordinator-types.js +0 -2
- package/dist/coordinator-types.js.map +0 -1
- package/dist/debug-runtime.d.ts +0 -4
- package/dist/debug-runtime.d.ts.map +0 -1
- package/dist/debug-runtime.js +0 -93
- package/dist/debug-runtime.js.map +0 -1
- package/dist/debug-types.d.ts +0 -194
- package/dist/debug-types.d.ts.map +0 -1
- package/dist/debug-types.js +0 -2
- package/dist/debug-types.js.map +0 -1
- package/dist/diagnostic-helpers.d.ts +0 -5
- package/dist/diagnostic-helpers.d.ts.map +0 -1
- package/dist/diagnostic-helpers.js +0 -54
- package/dist/diagnostic-helpers.js.map +0 -1
- package/dist/evidence-index-helpers.d.ts +0 -10
- package/dist/evidence-index-helpers.d.ts.map +0 -1
- package/dist/evidence-index-helpers.js +0 -78
- package/dist/evidence-index-helpers.js.map +0 -1
- package/dist/evidence-index.d.ts +0 -4
- package/dist/evidence-index.d.ts.map +0 -1
- package/dist/evidence-index.js +0 -59
- package/dist/evidence-index.js.map +0 -1
- package/dist/evidence-types.d.ts +0 -151
- package/dist/evidence-types.d.ts.map +0 -1
- package/dist/evidence-types.js +0 -2
- package/dist/evidence-types.js.map +0 -1
- package/dist/fixtures.d.ts +0 -45
- package/dist/fixtures.d.ts.map +0 -1
- package/dist/fixtures.js +0 -39
- package/dist/fixtures.js.map +0 -1
- package/dist/governance-types.d.ts +0 -172
- package/dist/governance-types.d.ts.map +0 -1
- package/dist/governance-types.js +0 -2
- package/dist/governance-types.js.map +0 -1
- package/dist/instrumentation-runtime.d.ts +0 -6
- package/dist/instrumentation-runtime.d.ts.map +0 -1
- package/dist/instrumentation-runtime.js +0 -111
- package/dist/instrumentation-runtime.js.map +0 -1
- package/dist/internal.d.ts +0 -11
- package/dist/internal.d.ts.map +0 -1
- package/dist/internal.js +0 -49
- package/dist/internal.js.map +0 -1
- package/dist/leases.d.ts +0 -32
- package/dist/leases.d.ts.map +0 -1
- package/dist/leases.js +0 -36
- package/dist/leases.js.map +0 -1
- package/dist/manifest-normalization.d.ts +0 -8
- package/dist/manifest-normalization.d.ts.map +0 -1
- package/dist/manifest-normalization.js +0 -191
- package/dist/manifest-normalization.js.map +0 -1
- package/dist/manifest-types.d.ts +0 -227
- package/dist/manifest-types.d.ts.map +0 -1
- package/dist/manifest-types.js +0 -2
- package/dist/manifest-types.js.map +0 -1
- package/dist/manifest.d.ts +0 -7
- package/dist/manifest.d.ts.map +0 -1
- package/dist/manifest.js +0 -126
- package/dist/manifest.js.map +0 -1
- package/dist/merge-admission.d.ts +0 -3
- package/dist/merge-admission.d.ts.map +0 -1
- package/dist/merge-admission.js +0 -71
- package/dist/merge-admission.js.map +0 -1
- package/dist/merge-bundles.d.ts +0 -13
- package/dist/merge-bundles.d.ts.map +0 -1
- package/dist/merge-bundles.js +0 -144
- package/dist/merge-bundles.js.map +0 -1
- package/dist/merge-classification.d.ts +0 -6
- package/dist/merge-classification.d.ts.map +0 -1
- package/dist/merge-classification.js +0 -36
- package/dist/merge-classification.js.map +0 -1
- package/dist/merge-index.d.ts +0 -3
- package/dist/merge-index.d.ts.map +0 -1
- package/dist/merge-index.js +0 -130
- package/dist/merge-index.js.map +0 -1
- package/dist/merge-plan-helpers.d.ts +0 -11
- package/dist/merge-plan-helpers.d.ts.map +0 -1
- package/dist/merge-plan-helpers.js +0 -97
- package/dist/merge-plan-helpers.js.map +0 -1
- package/dist/merge-plans-runtime.d.ts +0 -8
- package/dist/merge-plans-runtime.d.ts.map +0 -1
- package/dist/merge-plans-runtime.js +0 -106
- package/dist/merge-plans-runtime.js.map +0 -1
- package/dist/merge-review-types.d.ts +0 -76
- package/dist/merge-review-types.d.ts.map +0 -1
- package/dist/merge-review-types.js +0 -2
- package/dist/merge-review-types.js.map +0 -1
- package/dist/merge-review.d.ts +0 -7
- package/dist/merge-review.d.ts.map +0 -1
- package/dist/merge-review.js +0 -142
- package/dist/merge-review.js.map +0 -1
- package/dist/merge-types.d.ts +0 -196
- package/dist/merge-types.d.ts.map +0 -1
- package/dist/merge-types.js +0 -2
- package/dist/merge-types.js.map +0 -1
- package/dist/merge-wrappers.d.ts +0 -5
- package/dist/merge-wrappers.d.ts.map +0 -1
- package/dist/merge-wrappers.js +0 -231
- package/dist/merge-wrappers.js.map +0 -1
- package/dist/observability-types.d.ts +0 -164
- package/dist/observability-types.d.ts.map +0 -1
- package/dist/observability-types.js +0 -2
- package/dist/observability-types.js.map +0 -1
- package/dist/oracle-helpers.d.ts +0 -6
- package/dist/oracle-helpers.d.ts.map +0 -1
- package/dist/oracle-helpers.js +0 -73
- package/dist/oracle-helpers.js.map +0 -1
- package/dist/oracle-runtime.d.ts +0 -5
- package/dist/oracle-runtime.d.ts.map +0 -1
- package/dist/oracle-runtime.js +0 -154
- package/dist/oracle-runtime.js.map +0 -1
- package/dist/ownership-runtime.d.ts +0 -6
- package/dist/ownership-runtime.d.ts.map +0 -1
- package/dist/ownership-runtime.js +0 -49
- package/dist/ownership-runtime.js.map +0 -1
- package/dist/patch-stack-runtime.d.ts +0 -4
- package/dist/patch-stack-runtime.d.ts.map +0 -1
- package/dist/patch-stack-runtime.js +0 -97
- package/dist/patch-stack-runtime.js.map +0 -1
- package/dist/plan-helpers.d.ts +0 -13
- package/dist/plan-helpers.d.ts.map +0 -1
- package/dist/plan-helpers.js +0 -236
- package/dist/plan-helpers.js.map +0 -1
- package/dist/plan-selection.d.ts +0 -7
- package/dist/plan-selection.d.ts.map +0 -1
- package/dist/plan-selection.js +0 -86
- package/dist/plan-selection.js.map +0 -1
- package/dist/plan.d.ts +0 -126
- package/dist/plan.d.ts.map +0 -1
- package/dist/plan.js +0 -67
- package/dist/plan.js.map +0 -1
- package/dist/progress.d.ts +0 -42
- package/dist/progress.d.ts.map +0 -1
- package/dist/progress.js +0 -31
- package/dist/progress.js.map +0 -1
- package/dist/proof-runtime.d.ts +0 -16
- package/dist/proof-runtime.d.ts.map +0 -1
- package/dist/proof-runtime.js +0 -143
- package/dist/proof-runtime.js.map +0 -1
- package/dist/queue-overlays.d.ts +0 -7
- package/dist/queue-overlays.d.ts.map +0 -1
- package/dist/queue-overlays.js +0 -184
- package/dist/queue-overlays.js.map +0 -1
- package/dist/queue-types.d.ts +0 -194
- package/dist/queue-types.d.ts.map +0 -1
- package/dist/queue-types.js +0 -2
- package/dist/queue-types.js.map +0 -1
- package/dist/rebase-report.d.ts +0 -3
- package/dist/rebase-report.d.ts.map +0 -1
- package/dist/rebase-report.js +0 -52
- package/dist/rebase-report.js.map +0 -1
- package/dist/record-helpers.d.ts +0 -15
- package/dist/record-helpers.d.ts.map +0 -1
- package/dist/record-helpers.js +0 -78
- package/dist/record-helpers.js.map +0 -1
- package/dist/reference-oracle-runtime.d.ts +0 -4
- package/dist/reference-oracle-runtime.d.ts.map +0 -1
- package/dist/reference-oracle-runtime.js +0 -89
- package/dist/reference-oracle-runtime.js.map +0 -1
- package/dist/reference-types.d.ts +0 -204
- package/dist/reference-types.d.ts.map +0 -1
- package/dist/reference-types.js +0 -2
- package/dist/reference-types.js.map +0 -1
- package/dist/result-types.d.ts +0 -75
- package/dist/result-types.d.ts.map +0 -1
- package/dist/result-types.js +0 -2
- package/dist/result-types.js.map +0 -1
- package/dist/run-normalization.d.ts +0 -9
- package/dist/run-normalization.d.ts.map +0 -1
- package/dist/run-normalization.js +0 -126
- package/dist/run-normalization.js.map +0 -1
- package/dist/run-records.d.ts +0 -8
- package/dist/run-records.d.ts.map +0 -1
- package/dist/run-records.js +0 -145
- package/dist/run-records.js.map +0 -1
- package/dist/run-store-shards-runtime.d.ts +0 -3
- package/dist/run-store-shards-runtime.d.ts.map +0 -1
- package/dist/run-store-shards-runtime.js +0 -54
- package/dist/run-store-shards-runtime.js.map +0 -1
- package/dist/run-types.d.ts +0 -112
- package/dist/run-types.d.ts.map +0 -1
- package/dist/run-types.js +0 -2
- package/dist/run-types.js.map +0 -1
- package/dist/scheduler.d.ts +0 -94
- package/dist/scheduler.d.ts.map +0 -1
- package/dist/scheduler.js +0 -213
- package/dist/scheduler.js.map +0 -1
- package/dist/semantic-normalization.d.ts +0 -3
- package/dist/semantic-normalization.d.ts.map +0 -1
- package/dist/semantic-normalization.js +0 -195
- package/dist/semantic-normalization.js.map +0 -1
- package/dist/semantic-types.d.ts +0 -265
- package/dist/semantic-types.d.ts.map +0 -1
- package/dist/semantic-types.js +0 -2
- package/dist/semantic-types.js.map +0 -1
- package/dist/status-types.d.ts +0 -28
- package/dist/status-types.d.ts.map +0 -1
- package/dist/status-types.js +0 -2
- package/dist/status-types.js.map +0 -1
- package/dist/task-types.d.ts +0 -165
- package/dist/task-types.d.ts.map +0 -1
- package/dist/task-types.js +0 -2
- package/dist/task-types.js.map +0 -1
- package/dist/tournament-adaptive-feedback.d.ts +0 -22
- package/dist/tournament-adaptive-feedback.d.ts.map +0 -1
- package/dist/tournament-adaptive-feedback.js +0 -241
- package/dist/tournament-adaptive-feedback.js.map +0 -1
- package/dist/tournament-bandit-types.d.ts +0 -91
- package/dist/tournament-bandit-types.d.ts.map +0 -1
- package/dist/tournament-bandit-types.js +0 -2
- package/dist/tournament-bandit-types.js.map +0 -1
- package/dist/tournament-bandit.d.ts +0 -4
- package/dist/tournament-bandit.d.ts.map +0 -1
- package/dist/tournament-bandit.js +0 -212
- package/dist/tournament-bandit.js.map +0 -1
- package/dist/tournament-history-types.d.ts +0 -138
- package/dist/tournament-history-types.d.ts.map +0 -1
- package/dist/tournament-history-types.js +0 -2
- package/dist/tournament-history-types.js.map +0 -1
- package/dist/tournament-history.d.ts +0 -5
- package/dist/tournament-history.d.ts.map +0 -1
- package/dist/tournament-history.js +0 -210
- package/dist/tournament-history.js.map +0 -1
- package/dist/tournament-merge.d.ts +0 -7
- package/dist/tournament-merge.d.ts.map +0 -1
- package/dist/tournament-merge.js +0 -172
- package/dist/tournament-merge.js.map +0 -1
- package/dist/tournament-runtime-helpers.d.ts +0 -9
- package/dist/tournament-runtime-helpers.d.ts.map +0 -1
- package/dist/tournament-runtime-helpers.js +0 -114
- package/dist/tournament-runtime-helpers.js.map +0 -1
- package/dist/tournament-runtime.d.ts +0 -6
- package/dist/tournament-runtime.d.ts.map +0 -1
- package/dist/tournament-runtime.js +0 -202
- package/dist/tournament-runtime.js.map +0 -1
- package/dist/tournament-sample-observations.d.ts +0 -4
- package/dist/tournament-sample-observations.d.ts.map +0 -1
- package/dist/tournament-sample-observations.js +0 -19
- package/dist/tournament-sample-observations.js.map +0 -1
- package/dist/tournament-sample-quality-types.d.ts +0 -17
- package/dist/tournament-sample-quality-types.d.ts.map +0 -1
- package/dist/tournament-sample-quality-types.js +0 -2
- package/dist/tournament-sample-quality-types.js.map +0 -1
- package/dist/tournament-sample-quality.d.ts +0 -8
- package/dist/tournament-sample-quality.d.ts.map +0 -1
- package/dist/tournament-sample-quality.js +0 -66
- package/dist/tournament-sample-quality.js.map +0 -1
- package/dist/tournament-scoring.d.ts +0 -18
- package/dist/tournament-scoring.d.ts.map +0 -1
- package/dist/tournament-scoring.js +0 -136
- package/dist/tournament-scoring.js.map +0 -1
- package/dist/tournament-types.d.ts +0 -269
- package/dist/tournament-types.d.ts.map +0 -1
- package/dist/tournament-types.js +0 -2
- package/dist/tournament-types.js.map +0 -1
- package/dist/trace-helpers.d.ts +0 -22
- package/dist/trace-helpers.d.ts.map +0 -1
- package/dist/trace-helpers.js +0 -181
- package/dist/trace-helpers.js.map +0 -1
- package/dist/trace-runtime.d.ts +0 -7
- package/dist/trace-runtime.d.ts.map +0 -1
- package/dist/trace-runtime.js +0 -196
- package/dist/trace-runtime.js.map +0 -1
- package/dist/trace-types.d.ts +0 -168
- package/dist/trace-types.d.ts.map +0 -1
- package/dist/trace-types.js +0 -2
- package/dist/trace-types.js.map +0 -1
- package/dist/types.d.ts +0 -23
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/usage-governor.d.ts +0 -41
- package/dist/usage-governor.d.ts.map +0 -1
- package/dist/usage-governor.js +0 -43
- package/dist/usage-governor.js.map +0 -1
package/dist/merge-admission.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { stableHash, toJsonObject, uniqueStrings } from './internal.js';
|
|
2
|
-
export function createSwarmMergeAdmission(input) {
|
|
3
|
-
const generatedAt = input.generatedAt ?? Date.now();
|
|
4
|
-
const maxReady = Math.max(0, Math.floor(input.maxReady ?? input.index.entries.length));
|
|
5
|
-
const maxChangedPaths = input.maxChangedPaths === undefined ? undefined : Math.max(0, Math.floor(input.maxChangedPaths));
|
|
6
|
-
const maxChangedRegions = input.maxChangedRegions === undefined ? undefined : Math.max(0, Math.floor(input.maxChangedRegions));
|
|
7
|
-
const maxHighRisk = input.maxHighRisk === undefined ? undefined : Math.max(0, Math.floor(input.maxHighRisk));
|
|
8
|
-
const allowRisks = uniqueStrings(input.allowRisks ?? ['low', 'medium']);
|
|
9
|
-
const admitted = [];
|
|
10
|
-
const deferred = [];
|
|
11
|
-
const usedPaths = new Set();
|
|
12
|
-
const usedRegions = new Set();
|
|
13
|
-
let highRiskCount = 0;
|
|
14
|
-
for (const entry of input.index.entries) {
|
|
15
|
-
const reasons = [];
|
|
16
|
-
if (entry.disposition !== 'auto-mergeable' || !entry.autoMergeable)
|
|
17
|
-
reasons.push('not-auto-mergeable');
|
|
18
|
-
if (entry.staleAgainstHead)
|
|
19
|
-
reasons.push('stale-against-head');
|
|
20
|
-
if (entry.conflictingJobIds.length)
|
|
21
|
-
reasons.push('conflicting-changes');
|
|
22
|
-
if (!allowRisks.includes(entry.riskLevel))
|
|
23
|
-
reasons.push('risk-not-admitted');
|
|
24
|
-
if (admitted.length >= maxReady)
|
|
25
|
-
reasons.push('max-ready');
|
|
26
|
-
const nextPaths = new Set([...usedPaths, ...entry.changedPaths]);
|
|
27
|
-
const nextRegions = new Set([...usedRegions, ...entry.changedRegions]);
|
|
28
|
-
const nextHighRiskCount = highRiskCount + (entry.riskLevel === 'high' ? 1 : 0);
|
|
29
|
-
if (maxChangedPaths !== undefined && nextPaths.size > maxChangedPaths)
|
|
30
|
-
reasons.push('max-changed-paths');
|
|
31
|
-
if (maxChangedRegions !== undefined && nextRegions.size > maxChangedRegions)
|
|
32
|
-
reasons.push('max-changed-regions');
|
|
33
|
-
if (maxHighRisk !== undefined && nextHighRiskCount > maxHighRisk)
|
|
34
|
-
reasons.push('max-high-risk');
|
|
35
|
-
if (reasons.length) {
|
|
36
|
-
deferred.push({ jobId: entry.jobId, reasons: uniqueStrings(reasons) });
|
|
37
|
-
continue;
|
|
38
|
-
}
|
|
39
|
-
admitted.push(entry.jobId);
|
|
40
|
-
for (const file of entry.changedPaths)
|
|
41
|
-
usedPaths.add(file);
|
|
42
|
-
for (const region of entry.changedRegions)
|
|
43
|
-
usedRegions.add(region);
|
|
44
|
-
highRiskCount = nextHighRiskCount;
|
|
45
|
-
}
|
|
46
|
-
return {
|
|
47
|
-
kind: 'frontier.swarm.merge-admission',
|
|
48
|
-
version: 1,
|
|
49
|
-
id: input.id ?? 'swarm-merge-admission:' + stableHash([input.index.id, admitted, deferred, generatedAt]),
|
|
50
|
-
mergeIndexId: input.index.id,
|
|
51
|
-
generatedAt,
|
|
52
|
-
admitted,
|
|
53
|
-
deferred,
|
|
54
|
-
budget: {
|
|
55
|
-
maxReady,
|
|
56
|
-
...(maxChangedPaths !== undefined ? { maxChangedPaths } : {}),
|
|
57
|
-
...(maxChangedRegions !== undefined ? { maxChangedRegions } : {}),
|
|
58
|
-
...(maxHighRisk !== undefined ? { maxHighRisk } : {}),
|
|
59
|
-
allowRisks
|
|
60
|
-
},
|
|
61
|
-
summary: {
|
|
62
|
-
admittedCount: admitted.length,
|
|
63
|
-
deferredCount: deferred.length,
|
|
64
|
-
changedPathCount: usedPaths.size,
|
|
65
|
-
changedRegionCount: usedRegions.size,
|
|
66
|
-
highRiskCount
|
|
67
|
-
},
|
|
68
|
-
...(toJsonObject(input.metadata) ? { metadata: toJsonObject(input.metadata) } : {})
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=merge-admission.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge-admission.js","sourceRoot":"","sources":["../src/merge-admission.ts"],"names":[],"mappings":"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"}
|
package/dist/merge-bundles.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { FrontierSwarmJob, FrontierSwarmJobResult, FrontierSwarmJobResultInput, FrontierSwarmMergeBundle, FrontierSwarmMergeBundleInput, FrontierSwarmMergeDisposition, FrontierSwarmMergeReadiness, FrontierSwarmSemanticImportSummary, FrontierSwarmTraceShard, FrontierSwarmTraceShardInput } from './index.js';
|
|
2
|
-
export interface FrontierSwarmMergeBundleDeps {
|
|
3
|
-
normalizeResult(input: FrontierSwarmJobResultInput): FrontierSwarmJobResult;
|
|
4
|
-
normalizeSemanticImportSummary(input: unknown): FrontierSwarmSemanticImportSummary | undefined;
|
|
5
|
-
createSwarmTraceShard(input?: FrontierSwarmTraceShardInput): FrontierSwarmTraceShard;
|
|
6
|
-
resolveSwarmChangedRegions(job: FrontierSwarmJob, changedPaths: readonly string[]): string[];
|
|
7
|
-
}
|
|
8
|
-
export declare function classifySwarmMergeReadiness(result: FrontierSwarmJobResultInput | FrontierSwarmJobResult): FrontierSwarmMergeReadiness;
|
|
9
|
-
export declare function classifySwarmMergeDisposition(result: FrontierSwarmJobResultInput | FrontierSwarmJobResult, input?: {
|
|
10
|
-
staleAgainstHead?: boolean;
|
|
11
|
-
}): FrontierSwarmMergeDisposition;
|
|
12
|
-
export declare function createSwarmMergeBundle(input: FrontierSwarmMergeBundleInput, deps: FrontierSwarmMergeBundleDeps): FrontierSwarmMergeBundle;
|
|
13
|
-
//# sourceMappingURL=merge-bundles.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge-bundles.d.ts","sourceRoot":"","sources":["../src/merge-bundles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,6BAA6B,EAC7B,6BAA6B,EAC7B,2BAA2B,EAE3B,kCAAkC,EAClC,uBAAuB,EACvB,4BAA4B,EAC7B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,4BAA4B;IAC3C,eAAe,CAAC,KAAK,EAAE,2BAA2B,GAAG,sBAAsB,CAAC;IAC5E,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,kCAAkC,GAAG,SAAS,CAAC;IAC/F,qBAAqB,CAAC,KAAK,CAAC,EAAE,4BAA4B,GAAG,uBAAuB,CAAC;IACrF,0BAA0B,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;CAC9F;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,2BAA2B,GAAG,sBAAsB,GAAG,2BAA2B,CAYrI;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,2BAA2B,GAAG,sBAAsB,EAC5D,KAAK,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,6BAA6B,CAS/B;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,6BAA6B,EACpC,IAAI,EAAE,4BAA4B,GACjC,wBAAwB,CAwD1B"}
|
package/dist/merge-bundles.js
DELETED
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { cloneJsonValue, matchesGlob, stableHash, toJsonObject, uniqueStrings } from './internal.js';
|
|
2
|
-
export function classifySwarmMergeReadiness(result) {
|
|
3
|
-
if (result.mergeReadiness)
|
|
4
|
-
return result.mergeReadiness;
|
|
5
|
-
if (result.status === 'blocked')
|
|
6
|
-
return 'blocked';
|
|
7
|
-
if (result.status === 'failed' || result.exitCode !== undefined && result.exitCode !== 0)
|
|
8
|
-
return 'rejected';
|
|
9
|
-
const changedPaths = result.changedPaths ?? [];
|
|
10
|
-
if (changedPaths.length === 0)
|
|
11
|
-
return 'discovery-only';
|
|
12
|
-
const ownershipViolations = result.ownershipViolations ?? [];
|
|
13
|
-
if (ownershipViolations.length)
|
|
14
|
-
return 'rejected';
|
|
15
|
-
const verification = result.verification ?? [];
|
|
16
|
-
const failedRequired = verification.some((entry) => entry.required !== false && entry.status !== 0);
|
|
17
|
-
if (failedRequired)
|
|
18
|
-
return 'patch-candidate';
|
|
19
|
-
return verification.length > 0 || result.status === 'verified' ? 'verified-patch' : 'patch-candidate';
|
|
20
|
-
}
|
|
21
|
-
export function classifySwarmMergeDisposition(result, input = {}) {
|
|
22
|
-
if (result.mergeDisposition)
|
|
23
|
-
return result.mergeDisposition;
|
|
24
|
-
if (input.staleAgainstHead)
|
|
25
|
-
return 'stale-against-head';
|
|
26
|
-
const readiness = classifySwarmMergeReadiness(result);
|
|
27
|
-
if (readiness === 'discovery-only')
|
|
28
|
-
return 'discovery-only';
|
|
29
|
-
if (readiness === 'blocked')
|
|
30
|
-
return 'blocked';
|
|
31
|
-
if (readiness === 'rejected')
|
|
32
|
-
return 'rejected';
|
|
33
|
-
if (readiness === 'verified-patch')
|
|
34
|
-
return 'auto-mergeable';
|
|
35
|
-
return 'needs-port';
|
|
36
|
-
}
|
|
37
|
-
export function createSwarmMergeBundle(input, deps) {
|
|
38
|
-
const generatedAt = input.generatedAt ?? Date.now();
|
|
39
|
-
const result = isSwarmJobResult(input.result) ? cloneJsonValue(input.result) : deps.normalizeResult(input.result);
|
|
40
|
-
const job = input.job;
|
|
41
|
-
const inputMetadata = toJsonObject(input.metadata);
|
|
42
|
-
const semanticImport = deps.normalizeSemanticImportSummary(input.semanticImport ?? result.semanticImport ?? inputMetadata?.semanticImport);
|
|
43
|
-
const changedPaths = uniqueStrings(result.changedPaths);
|
|
44
|
-
const changedRegions = uniqueStrings([
|
|
45
|
-
...result.changedRegions,
|
|
46
|
-
...(job ? deps.resolveSwarmChangedRegions(job, changedPaths) : [])
|
|
47
|
-
]);
|
|
48
|
-
const evidencePaths = uniqueStrings([...(result.evidencePaths ?? []), ...(input.evidencePaths ?? [])]);
|
|
49
|
-
const queueItemIds = uniqueStrings([...(result.queueItemIds ?? []), ...(input.queueItemIds ?? []), ...(job ? [job.taskId] : [])]);
|
|
50
|
-
const disposition = input.disposition ?? classifySwarmMergeDisposition(result, { staleAgainstHead: input.staleAgainstHead });
|
|
51
|
-
const commandsPassed = result.verification.filter((entry) => entry.status === 0 || entry.required === false && entry.status === undefined);
|
|
52
|
-
const commandsFailed = result.verification.filter((entry) => entry.status !== undefined && entry.status !== 0 && entry.required !== false);
|
|
53
|
-
const ownedFilesTouched = job ? changedPaths.filter((file) => job.allowedWrites.some((glob) => matchesGlob(file, glob))) : changedPaths;
|
|
54
|
-
const traceShards = [
|
|
55
|
-
...(input.traceShards ?? []),
|
|
56
|
-
...traceShardInputsFromUnknown(result.metadata?.traceShards),
|
|
57
|
-
...traceShardInputsFromUnknown(inputMetadata?.traceShards)
|
|
58
|
-
].map((shard) => normalizeTraceShardForBundle(shard, result, job, generatedAt, deps));
|
|
59
|
-
const reasons = mergeBundleReasons(result, disposition, input.staleAgainstHead ?? false);
|
|
60
|
-
return {
|
|
61
|
-
kind: 'frontier.swarm.merge-bundle',
|
|
62
|
-
version: 1,
|
|
63
|
-
id: input.id ?? 'swarm-merge-bundle:' + stableHash([input.runId, input.planId, result.jobId, changedPaths, changedRegions, disposition, generatedAt]),
|
|
64
|
-
...(input.runId ? { runId: input.runId } : {}),
|
|
65
|
-
...(input.planId ? { planId: input.planId } : {}),
|
|
66
|
-
jobId: result.jobId,
|
|
67
|
-
...(job ? { taskId: job.taskId, lane: job.lane, title: job.title } : {}),
|
|
68
|
-
generatedAt,
|
|
69
|
-
status: result.status,
|
|
70
|
-
mergeReadiness: result.mergeReadiness,
|
|
71
|
-
disposition,
|
|
72
|
-
riskLevel: input.riskLevel ?? result.riskLevel ?? inferMergeRisk(result, disposition),
|
|
73
|
-
autoMergeable: disposition === 'auto-mergeable' && reasons.length === 0,
|
|
74
|
-
changedPaths,
|
|
75
|
-
changedRegions,
|
|
76
|
-
ownedFilesTouched,
|
|
77
|
-
allowedWrites: job ? [...job.allowedWrites] : [],
|
|
78
|
-
ownershipViolations: [...result.ownershipViolations],
|
|
79
|
-
...(input.patchPath ?? result.patchPath ? { patchPath: input.patchPath ?? result.patchPath } : {}),
|
|
80
|
-
...(input.patchHash ? { patchHash: input.patchHash } : {}),
|
|
81
|
-
evidencePaths,
|
|
82
|
-
commandsPassed,
|
|
83
|
-
commandsFailed,
|
|
84
|
-
queueItemIds,
|
|
85
|
-
...(input.branchName ? { branchName: input.branchName } : {}),
|
|
86
|
-
...(input.commit ? { commit: input.commit } : {}),
|
|
87
|
-
staleAgainstHead: input.staleAgainstHead ?? false,
|
|
88
|
-
reasons,
|
|
89
|
-
...(semanticImport ? { semanticImport } : {}),
|
|
90
|
-
traceShards,
|
|
91
|
-
...(inputMetadata ? { metadata: inputMetadata } : {})
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
function isSwarmJobResult(value) {
|
|
95
|
-
return Array.isArray(value.changedPaths)
|
|
96
|
-
&& Array.isArray(value.changedRegions)
|
|
97
|
-
&& Array.isArray(value.verification)
|
|
98
|
-
&& Array.isArray(value.queueItemIds)
|
|
99
|
-
&& typeof value.riskLevel === 'string'
|
|
100
|
-
&& typeof value.mergeDisposition === 'string';
|
|
101
|
-
}
|
|
102
|
-
function traceShardInputsFromUnknown(value) {
|
|
103
|
-
if (!Array.isArray(value))
|
|
104
|
-
return [];
|
|
105
|
-
return value.filter((entry) => !!entry && typeof entry === 'object');
|
|
106
|
-
}
|
|
107
|
-
function normalizeTraceShardForBundle(shard, result, job, generatedAt, deps) {
|
|
108
|
-
return deps.createSwarmTraceShard({
|
|
109
|
-
...cloneJsonValue(shard),
|
|
110
|
-
jobId: shard.jobId ?? result.jobId,
|
|
111
|
-
lane: shard.lane ?? job?.lane,
|
|
112
|
-
generatedAt: shard.generatedAt ?? generatedAt
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
function mergeBundleReasons(result, disposition, staleAgainstHead) {
|
|
116
|
-
const reasons = [];
|
|
117
|
-
if (staleAgainstHead)
|
|
118
|
-
reasons.push('stale-against-head');
|
|
119
|
-
if (result.status === 'blocked')
|
|
120
|
-
reasons.push('blocked');
|
|
121
|
-
if (result.status === 'failed')
|
|
122
|
-
reasons.push('failed');
|
|
123
|
-
if (result.ownershipViolations.length)
|
|
124
|
-
reasons.push('ownership-violations');
|
|
125
|
-
if (result.verification.some((entry) => entry.required !== false && entry.status !== 0))
|
|
126
|
-
reasons.push('failed-verification');
|
|
127
|
-
if (disposition === 'needs-port')
|
|
128
|
-
reasons.push('needs-human-port');
|
|
129
|
-
if (disposition === 'rejected')
|
|
130
|
-
reasons.push('rejected');
|
|
131
|
-
return uniqueStrings(reasons);
|
|
132
|
-
}
|
|
133
|
-
function inferMergeRisk(result, disposition) {
|
|
134
|
-
if (disposition === 'discovery-only')
|
|
135
|
-
return 'low';
|
|
136
|
-
if (disposition === 'rejected' || disposition === 'blocked' || disposition === 'stale-against-head')
|
|
137
|
-
return 'high';
|
|
138
|
-
if (result.changedPaths.length <= 2 && result.ownershipViolations.length === 0)
|
|
139
|
-
return 'low';
|
|
140
|
-
if (result.changedPaths.length <= 8)
|
|
141
|
-
return 'medium';
|
|
142
|
-
return 'high';
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=merge-bundles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge-bundles.js","sourceRoot":"","sources":["../src/merge-bundles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { FrontierSwarmJobResult, FrontierSwarmJobResultInput, FrontierSwarmMergeDisposition, FrontierSwarmMergeReadiness } from './index.js';
|
|
2
|
-
export declare function classifySwarmMergeReadiness(result: FrontierSwarmJobResultInput | FrontierSwarmJobResult): FrontierSwarmMergeReadiness;
|
|
3
|
-
export declare function classifySwarmMergeDisposition(result: FrontierSwarmJobResultInput | FrontierSwarmJobResult, input?: {
|
|
4
|
-
staleAgainstHead?: boolean;
|
|
5
|
-
}): FrontierSwarmMergeDisposition;
|
|
6
|
-
//# sourceMappingURL=merge-classification.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge-classification.d.ts","sourceRoot":"","sources":["../src/merge-classification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,YAAY,CAAC;AAEpB,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,2BAA2B,GAAG,sBAAsB,GAAG,2BAA2B,CAYrI;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,2BAA2B,GAAG,sBAAsB,EAC5D,KAAK,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,6BAA6B,CAS/B"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
export function classifySwarmMergeReadiness(result) {
|
|
2
|
-
if (result.mergeReadiness)
|
|
3
|
-
return result.mergeReadiness;
|
|
4
|
-
if (result.status === 'blocked')
|
|
5
|
-
return 'blocked';
|
|
6
|
-
if (result.status === 'failed' || result.exitCode !== undefined && result.exitCode !== 0)
|
|
7
|
-
return 'rejected';
|
|
8
|
-
const changedPaths = result.changedPaths ?? [];
|
|
9
|
-
if (changedPaths.length === 0)
|
|
10
|
-
return 'discovery-only';
|
|
11
|
-
const ownershipViolations = result.ownershipViolations ?? [];
|
|
12
|
-
if (ownershipViolations.length)
|
|
13
|
-
return 'rejected';
|
|
14
|
-
const verification = result.verification ?? [];
|
|
15
|
-
const failedRequired = verification.some((entry) => entry.required !== false && entry.status !== 0);
|
|
16
|
-
if (failedRequired)
|
|
17
|
-
return 'patch-candidate';
|
|
18
|
-
return verification.length > 0 || result.status === 'verified' ? 'verified-patch' : 'patch-candidate';
|
|
19
|
-
}
|
|
20
|
-
export function classifySwarmMergeDisposition(result, input = {}) {
|
|
21
|
-
if (result.mergeDisposition)
|
|
22
|
-
return result.mergeDisposition;
|
|
23
|
-
if (input.staleAgainstHead)
|
|
24
|
-
return 'stale-against-head';
|
|
25
|
-
const readiness = classifySwarmMergeReadiness(result);
|
|
26
|
-
if (readiness === 'discovery-only')
|
|
27
|
-
return 'discovery-only';
|
|
28
|
-
if (readiness === 'blocked')
|
|
29
|
-
return 'blocked';
|
|
30
|
-
if (readiness === 'rejected')
|
|
31
|
-
return 'rejected';
|
|
32
|
-
if (readiness === 'verified-patch')
|
|
33
|
-
return 'auto-mergeable';
|
|
34
|
-
return 'needs-port';
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=merge-classification.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge-classification.js","sourceRoot":"","sources":["../src/merge-classification.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,2BAA2B,CAAC,MAA4D;IACtG,IAAI,MAAM,CAAC,cAAc;QAAE,OAAO,MAAM,CAAC,cAAc,CAAC;IACxD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IAC5G,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;IAC/C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACvD,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC;IAC7D,IAAI,mBAAmB,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC;IAClD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;IAC/C,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IACpG,IAAI,cAAc;QAAE,OAAO,iBAAiB,CAAC;IAC7C,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC;AACxG,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,MAA4D,EAC5D,QAAwC,EAAE;IAE1C,IAAI,MAAM,CAAC,gBAAgB;QAAE,OAAO,MAAM,CAAC,gBAAgB,CAAC;IAC5D,IAAI,KAAK,CAAC,gBAAgB;QAAE,OAAO,oBAAoB,CAAC;IACxD,MAAM,SAAS,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,SAAS,KAAK,gBAAgB;QAAE,OAAO,gBAAgB,CAAC;IAC5D,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,SAAS,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAChD,IAAI,SAAS,KAAK,gBAAgB;QAAE,OAAO,gBAAgB,CAAC;IAC5D,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
package/dist/merge-index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge-index.d.ts","sourceRoot":"","sources":["../src/merge-index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,uBAAuB,EAEvB,4BAA4B,EAE7B,MAAM,YAAY,CAAC;AAEpB,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,4BAA4B,GAAG,uBAAuB,CAwElG"}
|
package/dist/merge-index.js
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { cloneJsonValue, stableHash, toJsonObject, uniqueStrings } from './internal.js';
|
|
2
|
-
export function createSwarmMergeIndex(input) {
|
|
3
|
-
const generatedAt = input.generatedAt ?? Date.now();
|
|
4
|
-
const entries = input.bundles.map((bundle) => {
|
|
5
|
-
const patchStatus = input.patchStatuses?.[bundle.jobId] ?? (bundle.staleAgainstHead ? 'stale' : bundle.patchPath ? 'unknown' : 'missing');
|
|
6
|
-
const staleAgainstHead = bundle.staleAgainstHead || patchStatus === 'stale' || patchStatus === 'failed-check';
|
|
7
|
-
return {
|
|
8
|
-
jobId: bundle.jobId,
|
|
9
|
-
...(bundle.taskId ? { taskId: bundle.taskId } : {}),
|
|
10
|
-
...(bundle.lane ? { lane: bundle.lane } : {}),
|
|
11
|
-
...(bundle.title ? { title: bundle.title } : {}),
|
|
12
|
-
status: bundle.status,
|
|
13
|
-
mergeReadiness: bundle.mergeReadiness,
|
|
14
|
-
disposition: staleAgainstHead ? 'stale-against-head' : bundle.disposition,
|
|
15
|
-
riskLevel: bundle.riskLevel,
|
|
16
|
-
patchStatus,
|
|
17
|
-
staleAgainstHead,
|
|
18
|
-
autoMergeable: bundle.autoMergeable && !staleAgainstHead,
|
|
19
|
-
changedPaths: [...bundle.changedPaths],
|
|
20
|
-
changedRegions: [...bundle.changedRegions],
|
|
21
|
-
conflictKeys: mergeIndexConflictKeys(bundle),
|
|
22
|
-
conflictingJobIds: [],
|
|
23
|
-
ownedFilesTouched: [...bundle.ownedFilesTouched],
|
|
24
|
-
ownershipViolations: [...bundle.ownershipViolations],
|
|
25
|
-
...(bundle.patchPath ? { patchPath: bundle.patchPath } : {}),
|
|
26
|
-
...(bundle.patchHash ? { patchHash: bundle.patchHash } : {}),
|
|
27
|
-
evidencePaths: [...bundle.evidencePaths],
|
|
28
|
-
queueItemIds: [...bundle.queueItemIds],
|
|
29
|
-
reasons: uniqueStrings([...bundle.reasons, ...(staleAgainstHead ? ['stale-against-head'] : [])]),
|
|
30
|
-
...(bundle.semanticImport ? { semanticImport: cloneJsonValue(bundle.semanticImport) } : {}),
|
|
31
|
-
generatedAt: bundle.generatedAt
|
|
32
|
-
};
|
|
33
|
-
});
|
|
34
|
-
const conflicts = createMergeIndexConflicts(entries);
|
|
35
|
-
const conflictsByJob = new Map();
|
|
36
|
-
for (const conflict of conflicts) {
|
|
37
|
-
for (const jobId of conflict.jobIds) {
|
|
38
|
-
const set = conflictsByJob.get(jobId) ?? new Set();
|
|
39
|
-
for (const other of conflict.jobIds)
|
|
40
|
-
if (other !== jobId)
|
|
41
|
-
set.add(other);
|
|
42
|
-
conflictsByJob.set(jobId, set);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
const indexed = entries.map((entry) => ({
|
|
46
|
-
...entry,
|
|
47
|
-
conflictingJobIds: Array.from(conflictsByJob.get(entry.jobId) ?? []).sort()
|
|
48
|
-
}));
|
|
49
|
-
const byDisposition = groupJobIdsBy(indexed, (entry) => entry.disposition);
|
|
50
|
-
const byPath = groupJobIdsByMany(indexed, (entry) => entry.changedPaths);
|
|
51
|
-
const byRegion = groupJobIdsByMany(indexed, (entry) => entry.changedRegions);
|
|
52
|
-
return {
|
|
53
|
-
kind: 'frontier.swarm.merge-index',
|
|
54
|
-
version: 1,
|
|
55
|
-
id: input.id ?? 'swarm-merge-index:' + stableHash([input.runId, input.planId, indexed, conflicts, generatedAt]),
|
|
56
|
-
...(input.runId ? { runId: input.runId } : {}),
|
|
57
|
-
...(input.planId ? { planId: input.planId } : {}),
|
|
58
|
-
generatedAt,
|
|
59
|
-
entries: indexed,
|
|
60
|
-
conflicts,
|
|
61
|
-
byDisposition,
|
|
62
|
-
byPath,
|
|
63
|
-
byRegion,
|
|
64
|
-
summary: {
|
|
65
|
-
entryCount: indexed.length,
|
|
66
|
-
readyToApplyCount: indexed.filter((entry) => entry.disposition === 'auto-mergeable' && entry.autoMergeable && !entry.conflictingJobIds.length).length,
|
|
67
|
-
needsHumanPortCount: indexed.filter((entry) => entry.disposition === 'needs-port').length,
|
|
68
|
-
failedEvidenceCount: indexed.filter((entry) => entry.disposition === 'rejected' || entry.disposition === 'blocked' || entry.ownershipViolations.length > 0).length,
|
|
69
|
-
staleAgainstHeadCount: indexed.filter((entry) => entry.staleAgainstHead || entry.disposition === 'stale-against-head').length,
|
|
70
|
-
discoveryOnlyCount: indexed.filter((entry) => entry.disposition === 'discovery-only').length,
|
|
71
|
-
conflictCount: conflicts.length,
|
|
72
|
-
conflictedJobCount: conflictsByJob.size
|
|
73
|
-
},
|
|
74
|
-
...(toJsonObject(input.metadata) ? { metadata: toJsonObject(input.metadata) } : {})
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
function mergeIndexConflictKeys(bundle) {
|
|
78
|
-
return bundle.changedRegions.length
|
|
79
|
-
? bundle.changedRegions.map((region) => `region:${region}`).sort()
|
|
80
|
-
: bundle.changedPaths.map((file) => `path:${file}`).sort();
|
|
81
|
-
}
|
|
82
|
-
function createMergeIndexConflicts(entries) {
|
|
83
|
-
const conflicts = [];
|
|
84
|
-
for (let leftIndex = 0; leftIndex < entries.length; leftIndex += 1) {
|
|
85
|
-
for (let rightIndex = leftIndex + 1; rightIndex < entries.length; rightIndex += 1) {
|
|
86
|
-
const left = entries[leftIndex];
|
|
87
|
-
const right = entries[rightIndex];
|
|
88
|
-
if (!left || !right)
|
|
89
|
-
continue;
|
|
90
|
-
const keys = pairConflictKeys(left, right);
|
|
91
|
-
for (const key of keys) {
|
|
92
|
-
const kind = key.startsWith('region:') ? 'region' : 'path';
|
|
93
|
-
const value = key.slice(key.indexOf(':') + 1);
|
|
94
|
-
conflicts.push({
|
|
95
|
-
jobIds: [left.jobId, right.jobId].sort(),
|
|
96
|
-
key,
|
|
97
|
-
kind,
|
|
98
|
-
...(kind === 'region' ? { region: value } : { path: value })
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
const deduped = new Map();
|
|
104
|
-
for (const conflict of conflicts)
|
|
105
|
-
deduped.set(`${conflict.key}:${conflict.jobIds.join(',')}`, conflict);
|
|
106
|
-
return Array.from(deduped.values()).sort((left, right) => left.key.localeCompare(right.key) || left.jobIds.join(',').localeCompare(right.jobIds.join(',')));
|
|
107
|
-
}
|
|
108
|
-
function pairConflictKeys(left, right) {
|
|
109
|
-
if (left.changedRegions.length > 0 && right.changedRegions.length > 0) {
|
|
110
|
-
const rightRegions = new Set(right.changedRegions);
|
|
111
|
-
return left.changedRegions.filter((region) => rightRegions.has(region)).map((region) => `region:${region}`).sort();
|
|
112
|
-
}
|
|
113
|
-
const rightPaths = new Set(right.changedPaths);
|
|
114
|
-
return left.changedPaths.filter((file) => rightPaths.has(file)).map((file) => `path:${file}`).sort();
|
|
115
|
-
}
|
|
116
|
-
function groupJobIdsBy(items, key) {
|
|
117
|
-
const out = {};
|
|
118
|
-
for (const item of items)
|
|
119
|
-
out[key(item)] = uniqueStrings([...(out[key(item)] ?? []), item.jobId]);
|
|
120
|
-
return out;
|
|
121
|
-
}
|
|
122
|
-
function groupJobIdsByMany(items, key) {
|
|
123
|
-
const out = {};
|
|
124
|
-
for (const item of items) {
|
|
125
|
-
for (const value of key(item))
|
|
126
|
-
out[value] = uniqueStrings([...(out[value] ?? []), item.jobId]);
|
|
127
|
-
}
|
|
128
|
-
return out;
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=merge-index.js.map
|
package/dist/merge-index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge-index.js","sourceRoot":"","sources":["../src/merge-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { FrontierSwarmArtifact, FrontierSwarmArtifactInput, FrontierSwarmBudgetDecision, FrontierSwarmJobResult, FrontierSwarmMergeGroup, FrontierSwarmMergeIndexEntry, FrontierSwarmReviewAssignment, FrontierSwarmRiskLevel } from './types.js';
|
|
2
|
-
import type { FrontierSwarmJob } from './plan.js';
|
|
3
|
-
export declare function normalizeArtifact(input: FrontierSwarmArtifactInput): FrontierSwarmArtifact;
|
|
4
|
-
export declare function reviewReason(job: FrontierSwarmJob, result: FrontierSwarmJobResult | undefined, budget: FrontierSwarmBudgetDecision | undefined, sampleSalt: string): FrontierSwarmReviewAssignment['reason'] | undefined;
|
|
5
|
-
export declare function selectReviewers(pool: readonly string[], required: number, salt: string): string[];
|
|
6
|
-
export declare function conflictMap(results: readonly FrontierSwarmJobResult[]): Map<string, Set<string>>;
|
|
7
|
-
export declare function groupMergeReadyJobs(ready: readonly string[], results: readonly FrontierSwarmJobResult[]): FrontierSwarmMergeGroup[];
|
|
8
|
-
export declare function patchStackKey(entry: FrontierSwarmMergeIndexEntry): string;
|
|
9
|
-
export declare function riskRank(risk: FrontierSwarmRiskLevel): number;
|
|
10
|
-
export declare function deterministicUnitInterval(value: unknown): number;
|
|
11
|
-
//# sourceMappingURL=merge-plan-helpers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge-plan-helpers.d.ts","sourceRoot":"","sources":["../src/merge-plan-helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACvP,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,0BAA0B,GAAG,qBAAqB,CAU1F;AACD,wBAAgB,YAAY,CAC1B,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,MAAM,EAAE,2BAA2B,GAAG,SAAS,EAC/C,UAAU,EAAE,MAAM,GACjB,6BAA6B,CAAC,QAAQ,CAAC,GAAG,SAAS,CAOrD;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAIjG;AACD,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAgBhG;AACD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,sBAAsB,EAAE,GAAG,uBAAuB,EAAE,CAUnI;AACD,wBAAgB,aAAa,CAAC,KAAK,EAAE,4BAA4B,GAAG,MAAM,CAKzE;AACD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,CAM7D;AACD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGhE"}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { positiveNumber, stableHash, toJsonObject, uniqueStrings } from './internal.js';
|
|
2
|
-
export function normalizeArtifact(input) {
|
|
3
|
-
return {
|
|
4
|
-
jobId: normalizeId(input.jobId, 'artifact job id'),
|
|
5
|
-
path: normalizeId(input.path, 'artifact path'),
|
|
6
|
-
kind: input.kind ?? 'artifact',
|
|
7
|
-
...(positiveNumber(input.bytes) ? { bytes: Math.floor(input.bytes) } : {}),
|
|
8
|
-
...(input.hash ? { hash: input.hash } : {}),
|
|
9
|
-
...(input.producedAt !== undefined ? { producedAt: input.producedAt } : {}),
|
|
10
|
-
...(toJsonObject(input.metadata) ? { metadata: toJsonObject(input.metadata) } : {})
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
export function reviewReason(job, result, budget, sampleSalt) {
|
|
14
|
-
if (result?.ownershipViolations.length)
|
|
15
|
-
return 'violations';
|
|
16
|
-
if (result?.status === 'failed' || result?.exitCode !== undefined && result.exitCode !== 0)
|
|
17
|
-
return 'failed';
|
|
18
|
-
if (budget && !budget.ok)
|
|
19
|
-
return 'budget';
|
|
20
|
-
if (job.review.alwaysReview)
|
|
21
|
-
return 'always-review';
|
|
22
|
-
if (job.review.sampleRate > 0 && deterministicUnitInterval([sampleSalt, job.id]) < job.review.sampleRate)
|
|
23
|
-
return 'sampled';
|
|
24
|
-
return undefined;
|
|
25
|
-
}
|
|
26
|
-
export function selectReviewers(pool, required, salt) {
|
|
27
|
-
if (required <= 0 || pool.length === 0)
|
|
28
|
-
return [];
|
|
29
|
-
const sorted = [...uniqueStrings(pool)].sort((left, right) => stableHash([salt, left]).localeCompare(stableHash([salt, right])));
|
|
30
|
-
return sorted.slice(0, Math.min(required, sorted.length));
|
|
31
|
-
}
|
|
32
|
-
export function conflictMap(results) {
|
|
33
|
-
const conflicts = new Map();
|
|
34
|
-
for (let leftIndex = 0; leftIndex < results.length; leftIndex += 1) {
|
|
35
|
-
for (let rightIndex = leftIndex + 1; rightIndex < results.length; rightIndex += 1) {
|
|
36
|
-
const left = results[leftIndex];
|
|
37
|
-
const right = results[rightIndex];
|
|
38
|
-
if (!left || !right || pairConflictKeys(left, right).length === 0)
|
|
39
|
-
continue;
|
|
40
|
-
const leftConflicts = conflicts.get(left.jobId) ?? new Set();
|
|
41
|
-
const rightConflicts = conflicts.get(right.jobId) ?? new Set();
|
|
42
|
-
leftConflicts.add(right.jobId);
|
|
43
|
-
rightConflicts.add(left.jobId);
|
|
44
|
-
conflicts.set(left.jobId, leftConflicts);
|
|
45
|
-
conflicts.set(right.jobId, rightConflicts);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return conflicts;
|
|
49
|
-
}
|
|
50
|
-
export function groupMergeReadyJobs(ready, results) {
|
|
51
|
-
const byJob = new Map(results.map((result) => [result.jobId, result]));
|
|
52
|
-
return ready.map((jobId) => {
|
|
53
|
-
const changedPaths = [...(byJob.get(jobId)?.changedPaths ?? [])].sort();
|
|
54
|
-
return {
|
|
55
|
-
id: 'merge-group:' + stableHash([jobId, changedPaths]),
|
|
56
|
-
jobIds: [jobId],
|
|
57
|
-
changedPaths
|
|
58
|
-
};
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
export function patchStackKey(entry) {
|
|
62
|
-
const lane = entry.lane ?? 'unassigned';
|
|
63
|
-
if (entry.changedRegions.length)
|
|
64
|
-
return `${lane}:${entry.changedRegions[0]}`;
|
|
65
|
-
const firstPath = entry.changedPaths[0] ?? 'evidence-only';
|
|
66
|
-
return `${lane}:${firstPath.split('/').slice(0, 2).join('/') || firstPath}`;
|
|
67
|
-
}
|
|
68
|
-
export function riskRank(risk) {
|
|
69
|
-
if (risk === 'low')
|
|
70
|
-
return 0;
|
|
71
|
-
if (risk === 'medium')
|
|
72
|
-
return 1;
|
|
73
|
-
if (risk === 'unknown')
|
|
74
|
-
return 2;
|
|
75
|
-
if (risk === 'high')
|
|
76
|
-
return 3;
|
|
77
|
-
return 4;
|
|
78
|
-
}
|
|
79
|
-
export function deterministicUnitInterval(value) {
|
|
80
|
-
const hex = stableHash(value).split(':')[1] ?? '0';
|
|
81
|
-
return parseInt(hex, 16) / 0xffffffff;
|
|
82
|
-
}
|
|
83
|
-
function normalizeId(value, label) {
|
|
84
|
-
const id = String(value || '').trim();
|
|
85
|
-
if (!id)
|
|
86
|
-
throw new Error(`Missing ${label}`);
|
|
87
|
-
return id;
|
|
88
|
-
}
|
|
89
|
-
function pairConflictKeys(left, right) {
|
|
90
|
-
if (left.changedRegions.length > 0 && right.changedRegions.length > 0) {
|
|
91
|
-
const rightRegions = new Set(right.changedRegions);
|
|
92
|
-
return left.changedRegions.filter((region) => rightRegions.has(region)).map((region) => `region:${region}`).sort();
|
|
93
|
-
}
|
|
94
|
-
const rightPaths = new Set(right.changedPaths);
|
|
95
|
-
return left.changedPaths.filter((file) => rightPaths.has(file)).map((file) => `path:${file}`).sort();
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=merge-plan-helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge-plan-helpers.js","sourceRoot":"","sources":["../src/merge-plan-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { FrontierSwarmDecomposeInput, FrontierSwarmMergePlan, FrontierSwarmMergePlanInput, FrontierSwarmReviewPlan, FrontierSwarmReviewPlanInput, FrontierSwarmTaskInput } from './types.js';
|
|
2
|
-
import type { JsonValue } from '@shapeshift-labs/frontier';
|
|
3
|
-
export declare function createSwarmReviewPlan(input: FrontierSwarmReviewPlanInput): FrontierSwarmReviewPlan;
|
|
4
|
-
export declare function createSwarmMergePlan(input: FrontierSwarmMergePlanInput): FrontierSwarmMergePlan;
|
|
5
|
-
export declare function decomposeSwarmFeature(input: FrontierSwarmDecomposeInput): FrontierSwarmTaskInput[];
|
|
6
|
-
export declare function encodeSwarmJsonl(records: readonly unknown[]): string;
|
|
7
|
-
export declare function decodeSwarmJsonl(jsonl: string): JsonValue[];
|
|
8
|
-
//# sourceMappingURL=merge-plans-runtime.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge-plans-runtime.d.ts","sourceRoot":"","sources":["../src/merge-plans-runtime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAA6B,sBAAsB,EAAE,2BAA2B,EAAiC,uBAAuB,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC5P,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,4BAA4B,GAAG,uBAAuB,CAgClG;AACD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,2BAA2B,GAAG,sBAAsB,CA8B/F;AACD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,2BAA2B,GAAG,sBAAsB,EAAE,CAmBlG;AACD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAEpE;AACD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CAE3D"}
|