@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
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import type { JsonObject } from '@shapeshift-labs/frontier';
|
|
2
|
-
import type { FrontierSwarmAdaptiveObservationInput } from './adaptive-load-types.js';
|
|
3
|
-
import type { FRONTIER_SWARM_STRATEGY_TOURNAMENT_COMPARISON_KIND, FRONTIER_SWARM_STRATEGY_TOURNAMENT_COMPARISON_VERSION, FRONTIER_SWARM_STRATEGY_TOURNAMENT_HISTORY_KIND, FRONTIER_SWARM_STRATEGY_TOURNAMENT_HISTORY_VERSION, FRONTIER_SWARM_TOURNAMENT_ADAPTIVE_FEEDBACK_KIND, FRONTIER_SWARM_TOURNAMENT_ADAPTIVE_FEEDBACK_VERSION } from './constants.js';
|
|
4
|
-
import type { FrontierSwarmContextualBanditPolicyInput, FrontierSwarmContextualBanditRecommendations } from './tournament-bandit-types.js';
|
|
5
|
-
import type { FrontierSwarmStrategyTournament } from './tournament-types.js';
|
|
6
|
-
export type FrontierSwarmTournamentTrendStatus = 'new' | 'removed' | 'regressed' | 'improved' | 'stable';
|
|
7
|
-
export interface FrontierSwarmStrategyTournamentHistoryInput {
|
|
8
|
-
id?: string;
|
|
9
|
-
tournaments?: readonly FrontierSwarmStrategyTournament[];
|
|
10
|
-
generatedAt?: number;
|
|
11
|
-
metadata?: unknown;
|
|
12
|
-
}
|
|
13
|
-
export interface FrontierSwarmStrategyTournamentHistoryEntry {
|
|
14
|
-
strategyId: string;
|
|
15
|
-
tournamentIds: string[];
|
|
16
|
-
runCount: number;
|
|
17
|
-
matchCount: number;
|
|
18
|
-
verifiedCount: number;
|
|
19
|
-
rejectedCount: number;
|
|
20
|
-
undefinedCount: number;
|
|
21
|
-
averageScore: number;
|
|
22
|
-
bestScore: number;
|
|
23
|
-
worstScore: number;
|
|
24
|
-
firstScore: number;
|
|
25
|
-
latestScore: number;
|
|
26
|
-
scoreDelta: number;
|
|
27
|
-
latestRank?: number;
|
|
28
|
-
lanes: string[];
|
|
29
|
-
concurrencyKeys: string[];
|
|
30
|
-
tags: string[];
|
|
31
|
-
evidencePaths: string[];
|
|
32
|
-
outcomeCounts: Record<string, number>;
|
|
33
|
-
}
|
|
34
|
-
export interface FrontierSwarmStrategyTournamentHistory {
|
|
35
|
-
kind: typeof FRONTIER_SWARM_STRATEGY_TOURNAMENT_HISTORY_KIND;
|
|
36
|
-
version: typeof FRONTIER_SWARM_STRATEGY_TOURNAMENT_HISTORY_VERSION;
|
|
37
|
-
id: string;
|
|
38
|
-
generatedAt: number;
|
|
39
|
-
tournamentIds: string[];
|
|
40
|
-
entries: FrontierSwarmStrategyTournamentHistoryEntry[];
|
|
41
|
-
byStrategy: Record<string, FrontierSwarmStrategyTournamentHistoryEntry>;
|
|
42
|
-
summary: {
|
|
43
|
-
tournamentCount: number;
|
|
44
|
-
strategyCount: number;
|
|
45
|
-
matchCount: number;
|
|
46
|
-
verifiedCount: number;
|
|
47
|
-
rejectedCount: number;
|
|
48
|
-
undefinedCount: number;
|
|
49
|
-
topStrategyId?: string;
|
|
50
|
-
topAverageScore?: number;
|
|
51
|
-
regressedCount: number;
|
|
52
|
-
improvedCount: number;
|
|
53
|
-
};
|
|
54
|
-
metadata?: JsonObject;
|
|
55
|
-
}
|
|
56
|
-
export interface FrontierSwarmStrategyTournamentComparisonInput {
|
|
57
|
-
id?: string;
|
|
58
|
-
baseline: FrontierSwarmStrategyTournament;
|
|
59
|
-
current: FrontierSwarmStrategyTournament;
|
|
60
|
-
scoreThreshold?: number;
|
|
61
|
-
generatedAt?: number;
|
|
62
|
-
metadata?: unknown;
|
|
63
|
-
}
|
|
64
|
-
export interface FrontierSwarmStrategyTournamentComparisonEntry {
|
|
65
|
-
strategyId: string;
|
|
66
|
-
status: FrontierSwarmTournamentTrendStatus;
|
|
67
|
-
baselineRank?: number;
|
|
68
|
-
currentRank?: number;
|
|
69
|
-
rankDelta?: number;
|
|
70
|
-
baselineScore?: number;
|
|
71
|
-
currentScore?: number;
|
|
72
|
-
scoreDelta: number;
|
|
73
|
-
baselineMatchCount: number;
|
|
74
|
-
currentMatchCount: number;
|
|
75
|
-
baselineVerifiedCount: number;
|
|
76
|
-
currentVerifiedCount: number;
|
|
77
|
-
reasons: string[];
|
|
78
|
-
}
|
|
79
|
-
export interface FrontierSwarmStrategyTournamentComparison {
|
|
80
|
-
kind: typeof FRONTIER_SWARM_STRATEGY_TOURNAMENT_COMPARISON_KIND;
|
|
81
|
-
version: typeof FRONTIER_SWARM_STRATEGY_TOURNAMENT_COMPARISON_VERSION;
|
|
82
|
-
id: string;
|
|
83
|
-
baselineId: string;
|
|
84
|
-
currentId: string;
|
|
85
|
-
generatedAt: number;
|
|
86
|
-
entries: FrontierSwarmStrategyTournamentComparisonEntry[];
|
|
87
|
-
summary: {
|
|
88
|
-
strategyCount: number;
|
|
89
|
-
newCount: number;
|
|
90
|
-
removedCount: number;
|
|
91
|
-
regressedCount: number;
|
|
92
|
-
improvedCount: number;
|
|
93
|
-
stableCount: number;
|
|
94
|
-
largestRegression?: number;
|
|
95
|
-
largestImprovement?: number;
|
|
96
|
-
};
|
|
97
|
-
metadata?: JsonObject;
|
|
98
|
-
}
|
|
99
|
-
export interface FrontierSwarmTournamentAdaptiveFeedbackInput {
|
|
100
|
-
id?: string;
|
|
101
|
-
tournament?: FrontierSwarmStrategyTournament;
|
|
102
|
-
history?: FrontierSwarmStrategyTournamentHistory;
|
|
103
|
-
comparison?: FrontierSwarmStrategyTournamentComparison;
|
|
104
|
-
scoreFloor?: number;
|
|
105
|
-
regressionThreshold?: number;
|
|
106
|
-
banditPolicy?: false | FrontierSwarmContextualBanditPolicyInput;
|
|
107
|
-
includeBanditObservations?: boolean;
|
|
108
|
-
generatedAt?: number;
|
|
109
|
-
metadata?: unknown;
|
|
110
|
-
}
|
|
111
|
-
export interface FrontierSwarmTournamentAdaptiveRecommendation {
|
|
112
|
-
action: 'increase' | 'decrease' | 'hold' | 'observe' | string;
|
|
113
|
-
target: 'strategy' | 'lane' | 'max-ready-jobs' | string;
|
|
114
|
-
key?: string;
|
|
115
|
-
reason: string;
|
|
116
|
-
score?: number;
|
|
117
|
-
}
|
|
118
|
-
export interface FrontierSwarmTournamentAdaptiveFeedback {
|
|
119
|
-
kind: typeof FRONTIER_SWARM_TOURNAMENT_ADAPTIVE_FEEDBACK_KIND;
|
|
120
|
-
version: typeof FRONTIER_SWARM_TOURNAMENT_ADAPTIVE_FEEDBACK_VERSION;
|
|
121
|
-
id: string;
|
|
122
|
-
tournamentId?: string;
|
|
123
|
-
historyId?: string;
|
|
124
|
-
comparisonId?: string;
|
|
125
|
-
generatedAt: number;
|
|
126
|
-
bandit?: FrontierSwarmContextualBanditRecommendations;
|
|
127
|
-
observations: FrontierSwarmAdaptiveObservationInput[];
|
|
128
|
-
recommendations: FrontierSwarmTournamentAdaptiveRecommendation[];
|
|
129
|
-
summary: {
|
|
130
|
-
observationCount: number;
|
|
131
|
-
recommendationCount: number;
|
|
132
|
-
reduceSignals: number;
|
|
133
|
-
increaseSignals: number;
|
|
134
|
-
holdSignals: number;
|
|
135
|
-
};
|
|
136
|
-
metadata?: JsonObject;
|
|
137
|
-
}
|
|
138
|
-
//# sourceMappingURL=tournament-history-types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tournament-history-types.d.ts","sourceRoot":"","sources":["../src/tournament-history-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tournament-history-types.js","sourceRoot":"","sources":["../src/tournament-history-types.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { FrontierSwarmStrategyTournamentComparison, FrontierSwarmStrategyTournamentComparisonInput, FrontierSwarmStrategyTournamentHistory, FrontierSwarmStrategyTournamentHistoryInput, FrontierSwarmTournamentAdaptiveFeedback, FrontierSwarmTournamentAdaptiveFeedbackInput } from './tournament-history-types.js';
|
|
2
|
-
export declare function createSwarmStrategyTournamentHistory(input?: FrontierSwarmStrategyTournamentHistoryInput): FrontierSwarmStrategyTournamentHistory;
|
|
3
|
-
export declare function compareSwarmStrategyTournaments(input: FrontierSwarmStrategyTournamentComparisonInput): FrontierSwarmStrategyTournamentComparison;
|
|
4
|
-
export declare function createSwarmTournamentAdaptiveFeedback(input?: FrontierSwarmTournamentAdaptiveFeedbackInput): FrontierSwarmTournamentAdaptiveFeedback;
|
|
5
|
-
//# sourceMappingURL=tournament-history.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tournament-history.d.ts","sourceRoot":"","sources":["../src/tournament-history.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,yCAAyC,EAEzC,8CAA8C,EAC9C,sCAAsC,EAEtC,2CAA2C,EAC3C,uCAAuC,EACvC,4CAA4C,EAE7C,MAAM,+BAA+B,CAAC;AAEvC,wBAAgB,oCAAoC,CAClD,KAAK,GAAE,2CAAgD,GACtD,sCAAsC,CA0BxC;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,8CAA8C,GACpD,yCAAyC,CA8B3C;AAED,wBAAgB,qCAAqC,CACnD,KAAK,GAAE,4CAAiD,GACvD,uCAAuC,CA8CzC"}
|
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import { stableHash, toJsonObject, uniqueStrings } from './internal.js';
|
|
2
|
-
import { FRONTIER_SWARM_STRATEGY_TOURNAMENT_COMPARISON_KIND, FRONTIER_SWARM_STRATEGY_TOURNAMENT_COMPARISON_VERSION, FRONTIER_SWARM_STRATEGY_TOURNAMENT_HISTORY_KIND, FRONTIER_SWARM_STRATEGY_TOURNAMENT_HISTORY_VERSION, FRONTIER_SWARM_TOURNAMENT_ADAPTIVE_FEEDBACK_KIND, FRONTIER_SWARM_TOURNAMENT_ADAPTIVE_FEEDBACK_VERSION } from './constants.js';
|
|
3
|
-
import { round2 } from './tournament-scoring.js';
|
|
4
|
-
import { createTournamentAdaptiveObservations, strategyContextById, tournamentRecommendationAction } from './tournament-adaptive-feedback.js';
|
|
5
|
-
import { createSwarmContextualBanditRecommendations } from './tournament-bandit.js';
|
|
6
|
-
export function createSwarmStrategyTournamentHistory(input = {}) {
|
|
7
|
-
const generatedAt = input.generatedAt ?? Date.now();
|
|
8
|
-
const tournaments = [...(input.tournaments ?? [])].sort((left, right) => left.generatedAt - right.generatedAt || left.id.localeCompare(right.id));
|
|
9
|
-
const entries = summarizeHistoryEntries(tournaments);
|
|
10
|
-
const top = entries[0];
|
|
11
|
-
return {
|
|
12
|
-
kind: FRONTIER_SWARM_STRATEGY_TOURNAMENT_HISTORY_KIND,
|
|
13
|
-
version: FRONTIER_SWARM_STRATEGY_TOURNAMENT_HISTORY_VERSION,
|
|
14
|
-
id: input.id ?? 'swarm-strategy-history:' + stableHash(tournaments.map((tournament) => tournament.id)),
|
|
15
|
-
generatedAt,
|
|
16
|
-
tournamentIds: tournaments.map((tournament) => tournament.id),
|
|
17
|
-
entries,
|
|
18
|
-
byStrategy: Object.fromEntries(entries.map((entry) => [entry.strategyId, entry])),
|
|
19
|
-
summary: {
|
|
20
|
-
tournamentCount: tournaments.length,
|
|
21
|
-
strategyCount: entries.length,
|
|
22
|
-
matchCount: entries.reduce((sum, entry) => sum + entry.matchCount, 0),
|
|
23
|
-
verifiedCount: entries.reduce((sum, entry) => sum + entry.verifiedCount, 0),
|
|
24
|
-
rejectedCount: entries.reduce((sum, entry) => sum + entry.rejectedCount, 0),
|
|
25
|
-
undefinedCount: entries.reduce((sum, entry) => sum + entry.undefinedCount, 0),
|
|
26
|
-
...(top ? { topStrategyId: top.strategyId, topAverageScore: top.averageScore } : {}),
|
|
27
|
-
regressedCount: entries.filter((entry) => entry.scoreDelta < 0).length,
|
|
28
|
-
improvedCount: entries.filter((entry) => entry.scoreDelta > 0).length
|
|
29
|
-
},
|
|
30
|
-
...(toJsonObject(input.metadata) ? { metadata: toJsonObject(input.metadata) } : {})
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
export function compareSwarmStrategyTournaments(input) {
|
|
34
|
-
const generatedAt = input.generatedAt ?? Date.now();
|
|
35
|
-
const threshold = Math.max(0, input.scoreThreshold ?? 5);
|
|
36
|
-
const baseline = new Map(input.baseline.standings.map((standing) => [standing.strategyId, standing]));
|
|
37
|
-
const current = new Map(input.current.standings.map((standing) => [standing.strategyId, standing]));
|
|
38
|
-
const ids = uniqueStrings([...baseline.keys(), ...current.keys()]).sort();
|
|
39
|
-
const entries = ids.map((strategyId) => compareStanding(strategyId, baseline.get(strategyId), current.get(strategyId), threshold))
|
|
40
|
-
.sort(compareComparisonEntries);
|
|
41
|
-
const regressions = entries.map((entry) => entry.scoreDelta).filter((score) => score < 0);
|
|
42
|
-
const improvements = entries.map((entry) => entry.scoreDelta).filter((score) => score > 0);
|
|
43
|
-
return {
|
|
44
|
-
kind: FRONTIER_SWARM_STRATEGY_TOURNAMENT_COMPARISON_KIND,
|
|
45
|
-
version: FRONTIER_SWARM_STRATEGY_TOURNAMENT_COMPARISON_VERSION,
|
|
46
|
-
id: input.id ?? 'swarm-strategy-comparison:' + stableHash([input.baseline.id, input.current.id, threshold]),
|
|
47
|
-
baselineId: input.baseline.id,
|
|
48
|
-
currentId: input.current.id,
|
|
49
|
-
generatedAt,
|
|
50
|
-
entries,
|
|
51
|
-
summary: {
|
|
52
|
-
strategyCount: entries.length,
|
|
53
|
-
newCount: entries.filter((entry) => entry.status === 'new').length,
|
|
54
|
-
removedCount: entries.filter((entry) => entry.status === 'removed').length,
|
|
55
|
-
regressedCount: entries.filter((entry) => entry.status === 'regressed').length,
|
|
56
|
-
improvedCount: entries.filter((entry) => entry.status === 'improved').length,
|
|
57
|
-
stableCount: entries.filter((entry) => entry.status === 'stable').length,
|
|
58
|
-
...(regressions.length ? { largestRegression: Math.min(...regressions) } : {}),
|
|
59
|
-
...(improvements.length ? { largestImprovement: Math.max(...improvements) } : {})
|
|
60
|
-
},
|
|
61
|
-
...(toJsonObject(input.metadata) ? { metadata: toJsonObject(input.metadata) } : {})
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
export function createSwarmTournamentAdaptiveFeedback(input = {}) {
|
|
65
|
-
const generatedAt = input.generatedAt ?? Date.now();
|
|
66
|
-
const bandit = input.banditPolicy === false ? undefined : createSwarmContextualBanditRecommendations({
|
|
67
|
-
tournament: input.tournament,
|
|
68
|
-
history: input.history,
|
|
69
|
-
policy: input.banditPolicy,
|
|
70
|
-
generatedAt
|
|
71
|
-
});
|
|
72
|
-
const observations = createTournamentAdaptiveObservations({
|
|
73
|
-
tournament: input.tournament,
|
|
74
|
-
history: input.history,
|
|
75
|
-
comparison: input.comparison,
|
|
76
|
-
generatedAt,
|
|
77
|
-
scoreFloor: input.scoreFloor ?? 40,
|
|
78
|
-
regressionThreshold: input.regressionThreshold ?? 5
|
|
79
|
-
}).concat(input.includeBanditObservations === false ? [] : banditObservations(bandit?.recommendations, generatedAt));
|
|
80
|
-
const recommendations = [
|
|
81
|
-
...observations.map((observation) => ({
|
|
82
|
-
action: tournamentRecommendationAction(observation.kind),
|
|
83
|
-
target: observation.concurrencyKey ? 'concurrency-key' : observation.lane ? 'lane' : observation.jobId ? 'strategy' : 'max-ready-jobs',
|
|
84
|
-
key: observation.concurrencyKey ?? observation.lane ?? observation.jobId,
|
|
85
|
-
reason: observation.reasons?.[0] ?? observation.reason ?? observation.kind,
|
|
86
|
-
score: observation.value
|
|
87
|
-
})),
|
|
88
|
-
...(bandit?.recommendations ?? []).map(banditRecommendation)
|
|
89
|
-
];
|
|
90
|
-
return {
|
|
91
|
-
kind: FRONTIER_SWARM_TOURNAMENT_ADAPTIVE_FEEDBACK_KIND,
|
|
92
|
-
version: FRONTIER_SWARM_TOURNAMENT_ADAPTIVE_FEEDBACK_VERSION,
|
|
93
|
-
id: input.id ?? 'swarm-tournament-feedback:' + stableHash([input.tournament?.id, input.history?.id, input.comparison?.id, generatedAt]),
|
|
94
|
-
...(input.tournament ? { tournamentId: input.tournament.id } : {}),
|
|
95
|
-
...(input.history ? { historyId: input.history.id } : {}),
|
|
96
|
-
...(input.comparison ? { comparisonId: input.comparison.id } : {}),
|
|
97
|
-
generatedAt,
|
|
98
|
-
...(bandit ? { bandit } : {}),
|
|
99
|
-
observations,
|
|
100
|
-
recommendations,
|
|
101
|
-
summary: {
|
|
102
|
-
observationCount: observations.length,
|
|
103
|
-
recommendationCount: recommendations.length,
|
|
104
|
-
reduceSignals: recommendations.filter((entry) => entry.action === 'decrease').length,
|
|
105
|
-
increaseSignals: recommendations.filter((entry) => entry.action === 'increase').length,
|
|
106
|
-
holdSignals: recommendations.filter((entry) => entry.action === 'hold').length
|
|
107
|
-
},
|
|
108
|
-
...(toJsonObject(input.metadata) ? { metadata: toJsonObject(input.metadata) } : {})
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
function banditRecommendation(entry) {
|
|
112
|
-
return {
|
|
113
|
-
action: entry.action === 'promote' ? 'increase' : entry.action === 'demote' ? 'decrease' : entry.action === 'explore' ? 'observe' : 'hold',
|
|
114
|
-
target: entry.target,
|
|
115
|
-
key: entry.key,
|
|
116
|
-
reason: `bandit ${entry.action}: ${entry.reasonCodes.join(', ')}`,
|
|
117
|
-
score: entry.score
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
function banditObservations(entries = [], generatedAt) {
|
|
121
|
-
return entries.filter((entry) => entry.action === 'promote' || entry.action === 'demote').map((entry) => ({
|
|
122
|
-
kind: entry.action === 'promote' ? 'healthy-throughput' : 'strategy-underperforming',
|
|
123
|
-
severity: entry.action === 'promote' ? 'info' : 'warning',
|
|
124
|
-
at: generatedAt,
|
|
125
|
-
value: entry.score,
|
|
126
|
-
...(entry.target === 'strategy' ? { jobId: entry.key } : {}),
|
|
127
|
-
...(entry.target === 'lane' ? { lane: entry.key } : {}),
|
|
128
|
-
...(entry.target === 'concurrency-key' ? { concurrencyKey: entry.key } : {}),
|
|
129
|
-
reason: `bandit ${entry.action}: ${entry.reasonCodes.join(', ')}`,
|
|
130
|
-
metadata: { source: 'contextual-bandit', recommendationId: entry.id, target: entry.target, key: entry.key }
|
|
131
|
-
}));
|
|
132
|
-
}
|
|
133
|
-
function summarizeHistoryEntries(tournaments) {
|
|
134
|
-
const strategies = new Map();
|
|
135
|
-
const contextsByTournament = new Map(tournaments.map((tournament) => [tournament.id, strategyContextById(tournament)]));
|
|
136
|
-
for (const tournament of tournaments)
|
|
137
|
-
for (const strategy of tournament.strategies)
|
|
138
|
-
strategies.set(strategy.id, strategy);
|
|
139
|
-
return uniqueStrings(tournaments.flatMap((tournament) => tournament.standings.map((standing) => standing.strategyId))).map((strategyId) => {
|
|
140
|
-
const standings = tournaments.map((tournament) => ({ tournament, standing: tournament.standings.find((entry) => entry.strategyId === strategyId) })).filter((entry) => !!entry.standing);
|
|
141
|
-
const contexts = standings.map((entry) => contextsByTournament.get(entry.tournament.id)?.get(strategyId)).filter((entry) => !!entry);
|
|
142
|
-
return historyEntry(strategyId, standings, strategies.get(strategyId), contexts);
|
|
143
|
-
}).sort((left, right) => right.averageScore - left.averageScore || left.strategyId.localeCompare(right.strategyId));
|
|
144
|
-
}
|
|
145
|
-
function historyEntry(strategyId, standings, strategy, contexts) {
|
|
146
|
-
const scores = standings.map((entry) => entry.standing.score);
|
|
147
|
-
const first = standings[0]?.standing;
|
|
148
|
-
const latest = standings[standings.length - 1]?.standing;
|
|
149
|
-
const outcomes = mergeOutcomeCounts(contexts.map((entry) => entry.outcomeCounts));
|
|
150
|
-
return {
|
|
151
|
-
strategyId,
|
|
152
|
-
tournamentIds: standings.map((entry) => entry.tournament.id),
|
|
153
|
-
runCount: standings.length,
|
|
154
|
-
matchCount: standings.reduce((sum, entry) => sum + entry.standing.matchCount, 0),
|
|
155
|
-
verifiedCount: standings.reduce((sum, entry) => sum + entry.standing.verifiedCount, 0),
|
|
156
|
-
rejectedCount: standings.reduce((sum, entry) => sum + entry.standing.rejectedCount, 0),
|
|
157
|
-
undefinedCount: standings.reduce((sum, entry) => sum + entry.standing.undefinedCount, 0),
|
|
158
|
-
averageScore: round2(scores.reduce((sum, score) => sum + score, 0) / Math.max(1, scores.length)),
|
|
159
|
-
bestScore: scores.length ? Math.max(...scores) : 0,
|
|
160
|
-
worstScore: scores.length ? Math.min(...scores) : 0,
|
|
161
|
-
firstScore: first?.score ?? 0,
|
|
162
|
-
latestScore: latest?.score ?? 0,
|
|
163
|
-
scoreDelta: round2((latest?.score ?? 0) - (first?.score ?? 0)),
|
|
164
|
-
...(latest ? { latestRank: latest.rank } : {}),
|
|
165
|
-
lanes: uniqueStrings([...contexts.flatMap((entry) => entry.lanes), strategy?.lane]),
|
|
166
|
-
concurrencyKeys: uniqueStrings(contexts.flatMap((entry) => entry.concurrencyKeys)),
|
|
167
|
-
tags: uniqueStrings([...(strategy?.tags ?? []), ...contexts.flatMap((entry) => entry.tags)]),
|
|
168
|
-
evidencePaths: uniqueStrings(standings.flatMap((entry) => entry.standing.evidencePaths)),
|
|
169
|
-
outcomeCounts: outcomes
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
function compareStanding(strategyId, baseline, current, threshold) {
|
|
173
|
-
const scoreDelta = round2((current?.score ?? 0) - (baseline?.score ?? 0));
|
|
174
|
-
const status = !baseline ? 'new' : !current ? 'removed' : scoreDelta <= -threshold ? 'regressed' : scoreDelta >= threshold ? 'improved' : 'stable';
|
|
175
|
-
const rankDelta = baseline && current ? baseline.rank - current.rank : undefined;
|
|
176
|
-
return {
|
|
177
|
-
strategyId,
|
|
178
|
-
status,
|
|
179
|
-
...(baseline ? { baselineRank: baseline.rank, baselineScore: baseline.score } : {}),
|
|
180
|
-
...(current ? { currentRank: current.rank, currentScore: current.score } : {}),
|
|
181
|
-
...(rankDelta !== undefined ? { rankDelta } : {}),
|
|
182
|
-
scoreDelta,
|
|
183
|
-
baselineMatchCount: baseline?.matchCount ?? 0,
|
|
184
|
-
currentMatchCount: current?.matchCount ?? 0,
|
|
185
|
-
baselineVerifiedCount: baseline?.verifiedCount ?? 0,
|
|
186
|
-
currentVerifiedCount: current?.verifiedCount ?? 0,
|
|
187
|
-
reasons: comparisonReasons(status, scoreDelta, rankDelta)
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
function comparisonReasons(status, scoreDelta, rankDelta) {
|
|
191
|
-
return uniqueStrings([
|
|
192
|
-
status,
|
|
193
|
-
scoreDelta ? `score delta ${scoreDelta}` : undefined,
|
|
194
|
-
rankDelta ? `rank delta ${rankDelta}` : undefined
|
|
195
|
-
]);
|
|
196
|
-
}
|
|
197
|
-
function compareComparisonEntries(left, right) {
|
|
198
|
-
return statusRank(left.status) - statusRank(right.status) || left.scoreDelta - right.scoreDelta || left.strategyId.localeCompare(right.strategyId);
|
|
199
|
-
}
|
|
200
|
-
function statusRank(status) {
|
|
201
|
-
return { regressed: 0, removed: 1, new: 2, improved: 3, stable: 4 }[status] ?? 5;
|
|
202
|
-
}
|
|
203
|
-
function mergeOutcomeCounts(records) {
|
|
204
|
-
const out = {};
|
|
205
|
-
for (const record of records)
|
|
206
|
-
for (const [key, value] of Object.entries(record))
|
|
207
|
-
out[key] = (out[key] ?? 0) + value;
|
|
208
|
-
return Object.fromEntries(Object.entries(out).sort(([left], [right]) => left.localeCompare(right)));
|
|
209
|
-
}
|
|
210
|
-
//# sourceMappingURL=tournament-history.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tournament-history.js","sourceRoot":"","sources":["../src/tournament-history.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { FrontierSwarmMergeBundle, FrontierSwarmMergeIndexEntry } from './merge-types.js';
|
|
2
|
-
import type { FrontierSwarmMergeTournamentInput, FrontierSwarmPayoffVector, FrontierSwarmStrategyTournament } from './tournament-types.js';
|
|
3
|
-
export declare function createSwarmMergePayoffVector(bundle: FrontierSwarmMergeBundle, entry?: FrontierSwarmMergeIndexEntry, options?: {
|
|
4
|
-
strategyId?: string;
|
|
5
|
-
}): FrontierSwarmPayoffVector;
|
|
6
|
-
export declare function createSwarmMergeTournament(input: FrontierSwarmMergeTournamentInput): FrontierSwarmStrategyTournament;
|
|
7
|
-
//# sourceMappingURL=tournament-merge.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tournament-merge.d.ts","sourceRoot":"","sources":["../src/tournament-merge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,iCAAiC,EACjC,yBAAyB,EAEzB,+BAA+B,EAEhC,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,wBAAwB,EAChC,KAAK,CAAC,EAAE,4BAA4B,EACpC,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACpC,yBAAyB,CAmD3B;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,iCAAiC,GAAG,+BAA+B,CAmBpH"}
|
package/dist/tournament-merge.js
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { stableHash, toJsonObject } from './internal.js';
|
|
2
|
-
import { createSwarmPayoffVector, createSwarmStrategyTournament } from './tournament-runtime.js';
|
|
3
|
-
export function createSwarmMergePayoffVector(bundle, entry, options = {}) {
|
|
4
|
-
const changedPaths = entry?.changedPaths ?? bundle.changedPaths;
|
|
5
|
-
const changedRegions = entry?.changedRegions ?? bundle.changedRegions;
|
|
6
|
-
const conflictCount = entry?.conflictingJobIds.length ?? 0;
|
|
7
|
-
const semanticCoverage = semanticCoverageScore(bundle);
|
|
8
|
-
const traceEvidence = Math.min(1, bundle.traceShards.length / 3);
|
|
9
|
-
const evidence = Math.min(1, (bundle.evidencePaths.length + bundle.commandsPassed.length + bundle.traceShards.length) / 6);
|
|
10
|
-
const failed = bundle.commandsFailed.length;
|
|
11
|
-
const strategyId = options.strategyId ?? bundle.jobId;
|
|
12
|
-
return createSwarmPayoffVector({
|
|
13
|
-
strategyId,
|
|
14
|
-
gameId: 'merge-admission',
|
|
15
|
-
matchId: bundle.id,
|
|
16
|
-
outcome: outcomeForMergeBundle(bundle, entry),
|
|
17
|
-
components: {
|
|
18
|
-
correctness: failed === 0 && bundle.status !== 'failed' ? 1 : 0,
|
|
19
|
-
evidence,
|
|
20
|
-
mergeCleanliness: conflictCount === 0 && bundle.ownershipViolations.length === 0 && !bundle.staleAgainstHead ? 1 : 0,
|
|
21
|
-
semanticCoverage,
|
|
22
|
-
traceEvidence,
|
|
23
|
-
reviewCost: { value: Math.min(1, (changedPaths.length + changedRegions.length * 2) / 20), direction: 'minimize', weight: 0.7 }
|
|
24
|
-
},
|
|
25
|
-
penalties: {
|
|
26
|
-
stale: bundle.staleAgainstHead ? 0.45 : 0,
|
|
27
|
-
conflicts: Math.min(0.5, conflictCount * 0.1),
|
|
28
|
-
failedCommands: Math.min(0.5, failed * 0.15),
|
|
29
|
-
ownership: Math.min(0.5, bundle.ownershipViolations.length * 0.2)
|
|
30
|
-
},
|
|
31
|
-
costs: {
|
|
32
|
-
review: changedPaths.length + changedRegions.length * 2,
|
|
33
|
-
resource: bundle.traceShards.length + bundle.commandsPassed.length + failed
|
|
34
|
-
},
|
|
35
|
-
certificate: bundle.commandsPassed.length || bundle.traceShards.length ? {
|
|
36
|
-
strategyId,
|
|
37
|
-
gameId: 'merge-admission',
|
|
38
|
-
commands: bundle.commandsPassed.map((command) => command.name),
|
|
39
|
-
traceRefs: bundle.traceShards.flatMap((shard) => shard.referenceEvidence.map((evidenceRef) => evidenceRef.path).filter((path) => !!path)),
|
|
40
|
-
evidencePaths: bundle.evidencePaths,
|
|
41
|
-
replayable: bundle.commandsPassed.length > 0
|
|
42
|
-
} : undefined,
|
|
43
|
-
evidencePaths: bundle.evidencePaths,
|
|
44
|
-
tags: [bundle.lane, bundle.disposition, bundle.mergeReadiness].filter((tag) => !!tag),
|
|
45
|
-
metadata: toJsonObject({
|
|
46
|
-
bundleId: bundle.id,
|
|
47
|
-
jobId: bundle.jobId,
|
|
48
|
-
patchPath: bundle.patchPath,
|
|
49
|
-
patchHash: bundle.patchHash,
|
|
50
|
-
riskLevel: bundle.riskLevel,
|
|
51
|
-
entry
|
|
52
|
-
})
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
export function createSwarmMergeTournament(input) {
|
|
56
|
-
const entriesByJob = new Map((input.mergeIndex?.entries ?? []).map((entry) => [entry.jobId, entry]));
|
|
57
|
-
const gameId = input.gameId ?? 'merge-admission';
|
|
58
|
-
const strategies = mergeTournamentStrategies(input.bundles, input.strategyMode);
|
|
59
|
-
const strategyByJob = new Map(input.bundles.map((bundle) => [bundle.jobId, strategyForBundle(bundle, input.strategyMode)]));
|
|
60
|
-
const matches = input.bundles.map((bundle) => {
|
|
61
|
-
const strategy = strategyByJob.get(bundle.jobId) ?? strategyForBundle(bundle, input.strategyMode);
|
|
62
|
-
const payoff = createSwarmMergePayoffVector(bundle, entriesByJob.get(bundle.jobId), { strategyId: strategy.id });
|
|
63
|
-
return { id: bundle.id, strategyId: strategy.id, gameId, payoff: { ...payoff, gameId }, metadata: { jobId: bundle.jobId } };
|
|
64
|
-
});
|
|
65
|
-
return createSwarmStrategyTournament({
|
|
66
|
-
id: input.id ?? 'swarm-merge-tournament:' + stableHash([input.bundles.map((bundle) => bundle.id), input.mergeIndex?.id, input.generatedAt]),
|
|
67
|
-
title: input.title ?? 'Swarm Merge Tournament',
|
|
68
|
-
strategies,
|
|
69
|
-
games: [{ id: gameId, objective: 'Rank merge bundles by acceptance evidence and review cost' }],
|
|
70
|
-
matches,
|
|
71
|
-
generatedAt: input.generatedAt,
|
|
72
|
-
metadata: input.metadata
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
function outcomeForMergeBundle(bundle, entry) {
|
|
76
|
-
if (bundle.commit)
|
|
77
|
-
return 'landed';
|
|
78
|
-
if (bundle.staleAgainstHead || entry?.staleAgainstHead)
|
|
79
|
-
return 'stale';
|
|
80
|
-
if (bundle.status === 'blocked')
|
|
81
|
-
return 'blocked';
|
|
82
|
-
if (bundle.status === 'failed' || bundle.commandsFailed.length > 0 || bundle.disposition === 'rejected')
|
|
83
|
-
return 'rejected';
|
|
84
|
-
if (isNoisyBundle(bundle))
|
|
85
|
-
return 'noisy';
|
|
86
|
-
if (bundle.disposition === 'auto-mergeable' || bundle.mergeReadiness === 'verified-patch')
|
|
87
|
-
return 'verified';
|
|
88
|
-
if (bundle.disposition === 'needs-port' || bundle.mergeReadiness === 'patch-candidate')
|
|
89
|
-
return 'candidate';
|
|
90
|
-
if (bundle.disposition === 'discovery-only')
|
|
91
|
-
return 'discovery';
|
|
92
|
-
return 'undefined';
|
|
93
|
-
}
|
|
94
|
-
function mergeTournamentStrategies(bundles, mode) {
|
|
95
|
-
const byId = new Map();
|
|
96
|
-
for (const bundle of bundles) {
|
|
97
|
-
const strategy = strategyForBundle(bundle, mode);
|
|
98
|
-
const existing = byId.get(strategy.id);
|
|
99
|
-
byId.set(strategy.id, existing ? { ...existing, tags: uniqueTags(existing.tags, strategy.tags) } : strategy);
|
|
100
|
-
}
|
|
101
|
-
return Array.from(byId.values());
|
|
102
|
-
}
|
|
103
|
-
function strategyForBundle(bundle, mode) {
|
|
104
|
-
const concurrencyKey = bundleConcurrencyKey(bundle);
|
|
105
|
-
if (mode !== 'style')
|
|
106
|
-
return {
|
|
107
|
-
id: bundle.jobId,
|
|
108
|
-
title: bundle.title ?? bundle.jobId,
|
|
109
|
-
lane: bundle.lane,
|
|
110
|
-
tags: [bundle.disposition, bundle.mergeReadiness, bundle.riskLevel],
|
|
111
|
-
...(concurrencyKey ? { metadata: { concurrencyKey } } : {})
|
|
112
|
-
};
|
|
113
|
-
const metadata = toRecord(bundle.metadata);
|
|
114
|
-
const explicit = toRecord(metadata.tournamentStrategy);
|
|
115
|
-
const promptStyle = stringValue(explicit.promptStyle) ?? stringValue(metadata.promptStyle) ?? 'codex-default';
|
|
116
|
-
const workspaceStyle = stringValue(explicit.workspaceStyle) ?? stringValue(metadata.workspaceStyle) ?? stringValue(metadata.workspaceMode) ?? 'unknown-workspace';
|
|
117
|
-
const evidenceStyle = stringValue(explicit.evidenceStyle) ?? stringValue(metadata.evidenceStyle) ?? evidenceStyleForBundle(bundle);
|
|
118
|
-
const id = stringValue(explicit.id) ?? stringValue(metadata.strategyId) ?? `style:${promptStyle}:${workspaceStyle}:${evidenceStyle}`;
|
|
119
|
-
return {
|
|
120
|
-
id,
|
|
121
|
-
title: stringValue(explicit.title) ?? id,
|
|
122
|
-
family: 'style',
|
|
123
|
-
lane: bundle.lane,
|
|
124
|
-
tags: [promptStyle, workspaceStyle, evidenceStyle, bundle.disposition, bundle.mergeReadiness],
|
|
125
|
-
metadata: { promptStyle, workspaceStyle, evidenceStyle, ...(concurrencyKey ? { concurrencyKey } : {}) }
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
function bundleConcurrencyKey(bundle) {
|
|
129
|
-
const metadata = toRecord(bundle.metadata);
|
|
130
|
-
const explicit = toRecord(metadata.tournamentStrategy);
|
|
131
|
-
const adaptive = toRecord(metadata.adaptive);
|
|
132
|
-
return stringValue(explicit.concurrencyKey)
|
|
133
|
-
?? stringValue(metadata.concurrencyKey)
|
|
134
|
-
?? stringValue(metadata.adaptiveConcurrencyKey)
|
|
135
|
-
?? stringValue(adaptive.concurrencyKey);
|
|
136
|
-
}
|
|
137
|
-
function evidenceStyleForBundle(bundle) {
|
|
138
|
-
if (bundle.commandsPassed.length > 0 && bundle.commandsFailed.length === 0)
|
|
139
|
-
return 'verified-evidence';
|
|
140
|
-
if (bundle.evidencePaths.length > 0 || bundle.traceShards.length > 0)
|
|
141
|
-
return 'structured-evidence';
|
|
142
|
-
return 'missing-evidence';
|
|
143
|
-
}
|
|
144
|
-
function isNoisyBundle(bundle) {
|
|
145
|
-
const metadata = toRecord(bundle.metadata);
|
|
146
|
-
const logSummary = toRecord(metadata.logSummary);
|
|
147
|
-
return stringValue(metadata.outputClass) === 'noisy'
|
|
148
|
-
|| (numberValue(metadata.outputBytes) ?? numberValue(logSummary.totalBytes) ?? 0) > 500000;
|
|
149
|
-
}
|
|
150
|
-
function semanticCoverageScore(bundle) {
|
|
151
|
-
const semantic = bundle.semanticImport;
|
|
152
|
-
if (!semantic)
|
|
153
|
-
return 0;
|
|
154
|
-
const symbols = semantic.semanticIndex.symbols;
|
|
155
|
-
const regions = semantic.semanticSidecars.ownershipRegions;
|
|
156
|
-
const dependencies = semantic.dependencies?.total ?? 0;
|
|
157
|
-
const imported = semantic.imported;
|
|
158
|
-
return Math.min(1, (symbols > 0 ? 0.3 : 0) + (regions > 0 ? 0.3 : 0) + (dependencies > 0 ? 0.2 : 0) + (imported > 0 ? 0.2 : 0));
|
|
159
|
-
}
|
|
160
|
-
function uniqueTags(left = [], right = []) {
|
|
161
|
-
return Array.from(new Set([...left, ...right].filter((tag) => tag.length > 0))).sort();
|
|
162
|
-
}
|
|
163
|
-
function toRecord(value) {
|
|
164
|
-
return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
|
|
165
|
-
}
|
|
166
|
-
function stringValue(value) {
|
|
167
|
-
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
168
|
-
}
|
|
169
|
-
function numberValue(value) {
|
|
170
|
-
return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
|
|
171
|
-
}
|
|
172
|
-
//# sourceMappingURL=tournament-merge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tournament-merge.js","sourceRoot":"","sources":["../src/tournament-merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { FrontierSwarmPayoffVector, FrontierSwarmPayoffVectorInput, FrontierSwarmStrategy, FrontierSwarmStrategyGame, FrontierSwarmStrategyMatch, FrontierSwarmStrategyStanding, FrontierSwarmStrategyTournamentQuery } from './tournament-types.js';
|
|
2
|
-
export declare function assertCompatibleId(label: string, expected: string | undefined, actual: string | undefined): void;
|
|
3
|
-
export declare function countSwarmTournamentOutcomes(matches: readonly FrontierSwarmStrategyMatch[]): Record<string, number>;
|
|
4
|
-
export declare function validateSwarmExistingPayoff(payoff: FrontierSwarmPayoffVector, strategyId: string | undefined, gameId: string | undefined): FrontierSwarmPayoffVector;
|
|
5
|
-
export declare function rankSwarmStrategyStandings(matches: readonly FrontierSwarmStrategyMatch[], strategyIds: readonly string[]): FrontierSwarmStrategyStanding[];
|
|
6
|
-
export declare function matchSwarmTournamentQuery(match: FrontierSwarmStrategyMatch, query: FrontierSwarmStrategyTournamentQuery, strategyById: Map<string, FrontierSwarmStrategy>, gameById: Map<string, FrontierSwarmStrategyGame>): boolean;
|
|
7
|
-
export declare function groupSwarmTournamentMatchIds(matches: readonly FrontierSwarmStrategyMatch[], key: (match: FrontierSwarmStrategyMatch) => string, knownKeys?: readonly string[]): Record<string, string[]>;
|
|
8
|
-
export declare function isSwarmPayoffVector(value: FrontierSwarmPayoffVector | FrontierSwarmPayoffVectorInput): value is FrontierSwarmPayoffVector;
|
|
9
|
-
//# sourceMappingURL=tournament-runtime-helpers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tournament-runtime-helpers.d.ts","sourceRoot":"","sources":["../src/tournament-runtime-helpers.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,yBAAyB,EACzB,8BAA8B,EAC9B,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,oCAAoC,EACrC,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAEhH;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,SAAS,0BAA0B,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAInH;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,yBAAyB,EACjC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,yBAAyB,CAM3B;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,SAAS,0BAA0B,EAAE,EAC9C,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,6BAA6B,EAAE,CAOjC;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,oCAAoC,EAC3C,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAChD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAC/C,OAAO,CAWT;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,SAAS,0BAA0B,EAAE,EAC9C,GAAG,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,MAAM,EAClD,SAAS,GAAE,SAAS,MAAM,EAAO,GAChC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAK1B;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,yBAAyB,GAAG,8BAA8B,GAAG,KAAK,IAAI,yBAAyB,CAIzI"}
|