@miller-tech/uap 2.16.7 → 2.19.5
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/config/capacity-policy.json +33 -0
- package/config/model-profiles/qwen38.json +32 -33
- package/dist/.tsbuildinfo +1 -1
- package/dist/bin/cli.js +57 -0
- package/dist/bin/cli.js.map +1 -1
- package/dist/capacity/policy.d.ts +32 -1
- package/dist/capacity/policy.d.ts.map +1 -1
- package/dist/capacity/policy.js +123 -4
- package/dist/capacity/policy.js.map +1 -1
- package/dist/capacity/probe.d.ts +26 -0
- package/dist/capacity/probe.d.ts.map +1 -1
- package/dist/capacity/probe.js +84 -3
- package/dist/capacity/probe.js.map +1 -1
- package/dist/cli/inference.d.ts +4 -0
- package/dist/cli/inference.d.ts.map +1 -1
- package/dist/cli/inference.js +74 -8
- package/dist/cli/inference.js.map +1 -1
- package/dist/cli/merge-gate.d.ts +59 -0
- package/dist/cli/merge-gate.d.ts.map +1 -0
- package/dist/cli/merge-gate.js +238 -0
- package/dist/cli/merge-gate.js.map +1 -0
- package/dist/cli/merge-queue.d.ts +13 -0
- package/dist/cli/merge-queue.d.ts.map +1 -1
- package/dist/cli/merge-queue.js +48 -2
- package/dist/cli/merge-queue.js.map +1 -1
- package/dist/cli/mission.d.ts +25 -0
- package/dist/cli/mission.d.ts.map +1 -0
- package/dist/cli/mission.js +225 -0
- package/dist/cli/mission.js.map +1 -0
- package/dist/cli/orch.d.ts +27 -0
- package/dist/cli/orch.d.ts.map +1 -0
- package/dist/cli/orch.js +70 -0
- package/dist/cli/orch.js.map +1 -0
- package/dist/cli/systemd-services.d.ts.map +1 -1
- package/dist/cli/systemd-services.js +44 -0
- package/dist/cli/systemd-services.js.map +1 -1
- package/dist/delivery/merge-gate.d.ts +168 -0
- package/dist/delivery/merge-gate.d.ts.map +1 -0
- package/dist/delivery/merge-gate.js +309 -0
- package/dist/delivery/merge-gate.js.map +1 -0
- package/dist/inference/analysis.d.ts +69 -3
- package/dist/inference/analysis.d.ts.map +1 -1
- package/dist/inference/analysis.js +123 -7
- package/dist/inference/analysis.js.map +1 -1
- package/dist/inference/probe.d.ts +38 -1
- package/dist/inference/probe.d.ts.map +1 -1
- package/dist/inference/probe.js +303 -30
- package/dist/inference/probe.js.map +1 -1
- package/dist/inference/strata.d.ts +95 -0
- package/dist/inference/strata.d.ts.map +1 -0
- package/dist/inference/strata.js +167 -0
- package/dist/inference/strata.js.map +1 -0
- package/dist/mission/database.d.ts +29 -0
- package/dist/mission/database.d.ts.map +1 -0
- package/dist/mission/database.js +131 -0
- package/dist/mission/database.js.map +1 -0
- package/dist/mission/ledger.d.ts +109 -0
- package/dist/mission/ledger.d.ts.map +1 -0
- package/dist/mission/ledger.js +294 -0
- package/dist/mission/ledger.js.map +1 -0
- package/dist/mission/poll-cycle.d.ts +73 -0
- package/dist/mission/poll-cycle.d.ts.map +1 -0
- package/dist/mission/poll-cycle.js +100 -0
- package/dist/mission/poll-cycle.js.map +1 -0
- package/dist/mission/poll-executor.d.ts +91 -0
- package/dist/mission/poll-executor.d.ts.map +1 -0
- package/dist/mission/poll-executor.js +328 -0
- package/dist/mission/poll-executor.js.map +1 -0
- package/dist/models/types.d.ts.map +1 -1
- package/dist/models/types.js +33 -27
- package/dist/models/types.js.map +1 -1
- package/dist/self-tuning/profiles/qwen38.d.ts +13 -14
- package/dist/self-tuning/profiles/qwen38.d.ts.map +1 -1
- package/dist/self-tuning/profiles/qwen38.js +17 -18
- package/dist/self-tuning/profiles/qwen38.js.map +1 -1
- package/dist/types/mission.d.ts +80 -0
- package/dist/types/mission.d.ts.map +1 -0
- package/dist/types/mission.js +12 -0
- package/dist/types/mission.js.map +1 -0
- package/docs/architecture/adr/0003-mission-orchestrator.md +99 -0
- package/docs/architecture/adr/0004-deterministic-merge-gate.md +127 -0
- package/docs/guides/CAPACITY_POLICY.md +49 -0
- package/docs/guides/INFERENCE_HEALTH.md +65 -8
- package/docs/guides/MISSIONS.md +170 -0
- package/docs/guides/PROXY.md +2 -0
- package/docs/reports/2026-10-02-plane-admin-fail-closed.md +70 -0
- package/docs/reports/2026-10-02-plane-admin-protect-session.md +116 -0
- package/docs/visual/merge-gate.html +404 -0
- package/docs/visual/mission-orchestrator.html +472 -0
- package/package.json +2 -2
- package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
- package/src/policies/enforcers/__pycache__/expert_review_required.cpython-312.pyc +0 -0
- package/src/policies/enforcers/__pycache__/quality_metrics_gate.cpython-312.pyc +0 -0
- package/src/policies/enforcers/plane_admin_protect.py +133 -0
- package/src/policies/schemas/policies/plane-admin-protect.md +55 -0
- package/templates/hooks/__pycache__/deliver_autoroute.cpython-312.pyc +0 -0
- package/templates/hooks/uap-policy-gate.sh +33 -0
- package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-312.pyc +0 -0
- package/tools/agents/scripts/anthropic_proxy.py +493 -40
- package/tools/agents/tests/test_anthropic_proxy_streaming.py +171 -0
- package/tools/agents/tests/test_gate_failclosed_plane_admin.py +248 -0
- package/tools/agents/tests/test_plane_admin_protect.py +124 -0
- package/tools/agents/tests/test_stream_heartbeat.py +77 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-gate.d.ts","sourceRoot":"","sources":["../../src/cli/merge-gate.ts"],"names":[],"mappings":"AAgBA,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAGtB,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8EAA8E;IAC9E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE3D;AAED;wDACwD;AACxD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWtD;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBjE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,iBAAiB,CAsBhG;AAED,2EAA2E;AAC3E,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK3C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,WAAW,EAAE,EAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,cAAc,UAAQ,EACtB,WAAW,CAAC,EAAE,MAAM,GACnB;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAkDjD;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CACpB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,MAAM,EACvB,qBAAqB,EAAE,OAAO,EAC9B,WAAW,CAAC,EAAE,MAAM,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAwB/G;AAQD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI,CA4D3F"}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `uap merge gate <missionId>` — run the deterministic merge gate for one
|
|
3
|
+
* mission against the current tree — and `gatePr`, the evidence-gathering
|
|
4
|
+
* path the merge queue calls before landing a marker-carrying PR.
|
|
5
|
+
*
|
|
6
|
+
* Everything here re-derives fresh: ledger hashes, run-state from disk, the
|
|
7
|
+
* gate-evidence artifact for the sha being landed, salvage rulings. Nothing
|
|
8
|
+
* comes from the deliver run's self-report.
|
|
9
|
+
*/
|
|
10
|
+
import chalk from 'chalk';
|
|
11
|
+
import { execFileSync } from 'child_process';
|
|
12
|
+
import { existsSync, readFileSync } from 'fs';
|
|
13
|
+
import { getMission, listSalvage, openMissionDb, verifyAcceptanceHash } from '../mission/ledger.js';
|
|
14
|
+
import { getMissionDbPath } from '../mission/database.js';
|
|
15
|
+
import { loadRunState } from '../delivery/run-state.js';
|
|
16
|
+
import { gateEvidencePath } from '../delivery/gate-evidence.js';
|
|
17
|
+
import { evaluateMergeGate, missionMarkerOf, parseUnifiedDiff, } from '../delivery/merge-gate.js';
|
|
18
|
+
/**
|
|
19
|
+
* Refs flow into one git argv token (`<base>...HEAD`), so a ref beginning
|
|
20
|
+
* with `--` would be parsed as a git option and silently distort the diff the
|
|
21
|
+
* gate evaluates (security review P3). Only plain ref characters pass.
|
|
22
|
+
*/
|
|
23
|
+
export function validateBaseRef(base) {
|
|
24
|
+
return /^[\w.\/-]+$/.test(base) && !base.startsWith('--') ? base : null;
|
|
25
|
+
}
|
|
26
|
+
/** The default diff base: origin/master when the remote ref is resolvable
|
|
27
|
+
* (fresher than a stale local master), else master. */
|
|
28
|
+
export function resolveDefaultBase(cwd) {
|
|
29
|
+
try {
|
|
30
|
+
execFileSync('git', ['-C', cwd, 'rev-parse', '--verify', 'origin/master'], {
|
|
31
|
+
encoding: 'utf-8',
|
|
32
|
+
stdio: 'ignore',
|
|
33
|
+
timeout: 15_000,
|
|
34
|
+
});
|
|
35
|
+
return 'origin/master';
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return 'master';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/** Gather the diff being landed: added lines per changed file. */
|
|
42
|
+
export function diffAgainstBase(cwd, base) {
|
|
43
|
+
const ref = validateBaseRef(base);
|
|
44
|
+
if (!ref) {
|
|
45
|
+
throw new Error(`invalid --base ref '${base}' (plain ref characters only)`);
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
return execFileSync('git', ['-C', cwd, 'diff', '--unified=0', `${ref}...HEAD`], {
|
|
49
|
+
encoding: 'utf-8',
|
|
50
|
+
timeout: 60_000,
|
|
51
|
+
maxBuffer: 32 * 1024 * 1024,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
const e = err;
|
|
56
|
+
throw new Error(`could not diff HEAD against '${ref}' (${(e.message ?? 'unknown').slice(0, 120)}) — pass --base <ref> if the base is elsewhere`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Tier-1 evidence read: the gate-evidence artifact deliver records on
|
|
61
|
+
* success, bound to the candidate sha it proved. Malformed artifacts or
|
|
62
|
+
* zero-gate artifacts prove nothing and fail closed (gatesAllZero=false).
|
|
63
|
+
*/
|
|
64
|
+
export function readEvidenceArtifact(projectRoot, expectedSha) {
|
|
65
|
+
const path = gateEvidencePath(projectRoot, expectedSha);
|
|
66
|
+
if (!existsSync(path)) {
|
|
67
|
+
return { present: false, gatesAllZero: false, hatchesEmpty: false, shaMatches: false, expectedSha };
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
const parsed = JSON.parse(readFileSync(path, 'utf-8'));
|
|
71
|
+
const gates = Array.isArray(parsed?.gates) ? parsed.gates : [];
|
|
72
|
+
return {
|
|
73
|
+
present: true,
|
|
74
|
+
// An artifact with zero gates proves nothing (the recorder itself
|
|
75
|
+
// refuses to write such an artifact — one that slipped through anyway
|
|
76
|
+
// fails closed here).
|
|
77
|
+
gatesAllZero: gates.length > 0 && gates.every((g) => g?.exitCode === 0),
|
|
78
|
+
hatchesEmpty: Array.isArray(parsed?.hatches) && parsed.hatches.length === 0,
|
|
79
|
+
shaMatches: parsed?.candidateSha === expectedSha,
|
|
80
|
+
expectedSha,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
// Unreadable/unparseable artifact: fail closed as unverifiable.
|
|
85
|
+
return { present: true, gatesAllZero: false, hatchesEmpty: false, shaMatches: false, expectedSha };
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/** HEAD sha of the tree being landed (the standalone gate's candidate). */
|
|
89
|
+
export function headSha(cwd) {
|
|
90
|
+
return execFileSync('git', ['-C', cwd, 'rev-parse', 'HEAD'], {
|
|
91
|
+
encoding: 'utf-8',
|
|
92
|
+
timeout: 15_000,
|
|
93
|
+
}).trim();
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Fresh-evidence gathering shared by the standalone CLI and the merge queue.
|
|
97
|
+
* Fails fast when no mission ledger exists (a queue run in a repo that never
|
|
98
|
+
* used missions must not manufacture an empty ledger as a side effect).
|
|
99
|
+
*/
|
|
100
|
+
export function gatherGateEvidence(projectRoot, missionId, changedFiles, markerHash8, allowGateInfra = false, expectedSha) {
|
|
101
|
+
if (!existsSync(getMissionDbPath(projectRoot))) {
|
|
102
|
+
return { error: `no mission ledger at ${getMissionDbPath(projectRoot)} — no missions exist in this repo` };
|
|
103
|
+
}
|
|
104
|
+
const db = openMissionDb(projectRoot);
|
|
105
|
+
let mission;
|
|
106
|
+
try {
|
|
107
|
+
mission = getMission(db, missionId);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return { error: `mission #${missionId} not found in ${projectRoot}/.uap/missions.db` };
|
|
111
|
+
}
|
|
112
|
+
const ledgerIntact = verifyAcceptanceHash(db, missionId, mission.acceptance);
|
|
113
|
+
const runStateFull = mission.latestRunId ? loadRunState(projectRoot, mission.latestRunId) : null;
|
|
114
|
+
const runState = runStateFull
|
|
115
|
+
? {
|
|
116
|
+
status: runStateFull.status,
|
|
117
|
+
history: (runStateFull.checkpoint?.history ?? []).map((h) => ({
|
|
118
|
+
passed: h.passed,
|
|
119
|
+
...(h.acceptanceMet !== undefined ? { acceptanceMet: h.acceptanceMet } : {}),
|
|
120
|
+
})),
|
|
121
|
+
phaseSummaries: runStateFull.phaseSummaries,
|
|
122
|
+
}
|
|
123
|
+
: null;
|
|
124
|
+
// PR-1 provenance discipline: when both pids are known, the run-state pid
|
|
125
|
+
// must match the pid the orchestrator spawned (security review P3).
|
|
126
|
+
const pidCorroborated = runStateFull?.pid !== undefined && mission.launchPid !== undefined
|
|
127
|
+
? runStateFull.pid === mission.launchPid
|
|
128
|
+
: undefined;
|
|
129
|
+
const openSalvageCount = listSalvage(db, { missionId, status: 'proposed' }).length;
|
|
130
|
+
const evidence = expectedSha ? readEvidenceArtifact(projectRoot, expectedSha) : null;
|
|
131
|
+
return {
|
|
132
|
+
result: evaluateMergeGate({
|
|
133
|
+
missionId,
|
|
134
|
+
acceptanceHash8: mission.acceptanceHash.slice(0, 8),
|
|
135
|
+
// Standalone mode passes markerHash8 undefined: the work's provenance is
|
|
136
|
+
// the ledger itself, so the marker is definitionally the current frozen
|
|
137
|
+
// hash. The queue passes the PR's cut-time marker instead — that is
|
|
138
|
+
// where replan-after-cut detection happens.
|
|
139
|
+
markerHash8: markerHash8 ?? mission.acceptanceHash.slice(0, 8),
|
|
140
|
+
ledgerIntact,
|
|
141
|
+
runState,
|
|
142
|
+
evidence,
|
|
143
|
+
...(pidCorroborated !== undefined ? { pidCorroborated } : {}),
|
|
144
|
+
openSalvageCount,
|
|
145
|
+
changedFiles,
|
|
146
|
+
...(allowGateInfra ? { allowGateInfra: true } : {}),
|
|
147
|
+
}),
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Run the gate for a PR before the queue lands it. The diff arrives as a LAZY
|
|
152
|
+
* thunk so marker-less PRs (the common case) cost zero extra `gh` calls, and
|
|
153
|
+
* a transport failure maps to `gate: 'error'` — the queue skips that PR and
|
|
154
|
+
* continues the batch instead of crashing (code review P2).
|
|
155
|
+
*
|
|
156
|
+
* `expectedSha` is the PR head SHA the evidence artifact must be bound to.
|
|
157
|
+
*/
|
|
158
|
+
export function gatePr(projectRoot, prTitleBody, fetchDiff, gateInfraAcknowledged, expectedSha) {
|
|
159
|
+
const marker = missionMarkerOf(prTitleBody);
|
|
160
|
+
if (!marker)
|
|
161
|
+
return { gate: 'none' };
|
|
162
|
+
let diff;
|
|
163
|
+
try {
|
|
164
|
+
diff = fetchDiff();
|
|
165
|
+
}
|
|
166
|
+
catch (err) {
|
|
167
|
+
return { gate: 'error', reason: `diff fetch failed: ${err.message.slice(0, 160)}` };
|
|
168
|
+
}
|
|
169
|
+
const changedFiles = parseUnifiedDiff(diff);
|
|
170
|
+
const gathered = gatherGateEvidence(projectRoot, marker.missionId, changedFiles, marker.hash8, gateInfraAcknowledged, expectedSha);
|
|
171
|
+
if ('error' in gathered)
|
|
172
|
+
return { gate: 'error', reason: gathered.error };
|
|
173
|
+
if (gathered.result.pass)
|
|
174
|
+
return { gate: 'pass' };
|
|
175
|
+
return {
|
|
176
|
+
gate: 'fail',
|
|
177
|
+
reasons: gathered.result.findings.filter((f) => !f.ok).map((f) => `${f.check}: ${f.detail}`),
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
function printFinding(f) {
|
|
181
|
+
const icon = f.ok ? chalk.green('✔') : chalk.red('✖');
|
|
182
|
+
const name = f.check.padEnd(14);
|
|
183
|
+
console.log(` ${icon} ${chalk.bold(name)} ${f.ok ? chalk.dim(f.detail) : f.detail}`);
|
|
184
|
+
}
|
|
185
|
+
export function mergeGateCommand(missionIdArg, options = {}) {
|
|
186
|
+
// Strict id: parseInt('3abc') silently yields 3 (code review P3).
|
|
187
|
+
if (!/^\d+$/.test(missionIdArg ?? '')) {
|
|
188
|
+
console.log(chalk.yellow(' Usage: uap merge gate <missionId> [--base <ref>] [--allow-gate-infra] [--json]'));
|
|
189
|
+
process.exitCode = 1;
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
const id = Number.parseInt(missionIdArg, 10);
|
|
193
|
+
const projectRoot = options.projectRoot ?? process.cwd();
|
|
194
|
+
const errOut = options.json ? (m) => process.stderr.write(`${m}\n`) : (m) => console.log(m);
|
|
195
|
+
let changedFiles;
|
|
196
|
+
try {
|
|
197
|
+
const base = options.base ?? resolveDefaultBase(projectRoot);
|
|
198
|
+
changedFiles = parseUnifiedDiff(diffAgainstBase(projectRoot, base));
|
|
199
|
+
}
|
|
200
|
+
catch (err) {
|
|
201
|
+
errOut(chalk.red(` ✖ ${err.message}`));
|
|
202
|
+
process.exitCode = 1;
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
let sha;
|
|
206
|
+
try {
|
|
207
|
+
sha = headSha(projectRoot);
|
|
208
|
+
}
|
|
209
|
+
catch (err) {
|
|
210
|
+
errOut(chalk.red(` ✖ cannot resolve HEAD: ${err.message.slice(0, 120)}`));
|
|
211
|
+
process.exitCode = 1;
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
const gathered = gatherGateEvidence(projectRoot, id, changedFiles,
|
|
215
|
+
/* markerHash8: undefined → the ledger's own hash (standalone mode) */
|
|
216
|
+
undefined, options.allowGateInfra === true, sha);
|
|
217
|
+
if ('error' in gathered) {
|
|
218
|
+
errOut(chalk.yellow(` ${gathered.error}`));
|
|
219
|
+
process.exitCode = 1;
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
const result = gathered.result;
|
|
223
|
+
if (options.json) {
|
|
224
|
+
console.log(JSON.stringify(result, null, 2));
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
console.log(chalk.bold(`\n🛡 Merge gate — mission #${id} (${changedFiles.length} changed file(s))\n`));
|
|
228
|
+
for (const f of result.findings)
|
|
229
|
+
printFinding(f);
|
|
230
|
+
console.log('');
|
|
231
|
+
console.log(result.pass
|
|
232
|
+
? chalk.green(` PASS — mission #${id} may land`)
|
|
233
|
+
: chalk.red(` FAIL — mission #${id} is not landable until every check passes`));
|
|
234
|
+
}
|
|
235
|
+
if (!result.pass)
|
|
236
|
+
process.exitCode = 1;
|
|
237
|
+
}
|
|
238
|
+
//# sourceMappingURL=merge-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-gate.js","sourceRoot":"","sources":["../../src/cli/merge-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,13 +16,26 @@ export interface PullRequest {
|
|
|
16
16
|
number: number;
|
|
17
17
|
title: string;
|
|
18
18
|
headRefName: string;
|
|
19
|
+
/** Head commit SHA — the candidate the gate-evidence artifact must bind to. */
|
|
20
|
+
headRefOid: string;
|
|
19
21
|
isDraft: boolean;
|
|
20
22
|
updatedAt: string;
|
|
21
23
|
labels: string[];
|
|
22
24
|
files: string[];
|
|
25
|
+
/** PR body — the mission-marker provenance surface (`[mission:#N:hash8]`). */
|
|
26
|
+
body: string;
|
|
23
27
|
}
|
|
24
28
|
/** Open, non-draft PRs with their changed-file lists. */
|
|
25
29
|
export declare function fetchOpenPrs(cwd?: string): PullRequest[];
|
|
30
|
+
/**
|
|
31
|
+
* Agent-cut PRs arrive on worktree-pattern branches (`NNN-<slug>` or
|
|
32
|
+
* `feature/NNN-<slug>`). One that carries NO mission marker bypasses the
|
|
33
|
+
* merge gate entirely — the evasion channel is cheap (the PR author writes
|
|
34
|
+
* the body), so the queue surfaces it loudly instead of silently trusting
|
|
35
|
+
* the omission (architect review F3). A warning, never a block: unmarked
|
|
36
|
+
* human PRs and docs/chore PRs are legitimate and common.
|
|
37
|
+
*/
|
|
38
|
+
export declare function isAgentStyleBranch(headRefName: string): boolean;
|
|
26
39
|
/** Files touched by both PRs — the direct textual-conflict surface. */
|
|
27
40
|
export declare function overlappingFiles(a: PullRequest, b: PullRequest): string[];
|
|
28
41
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-queue.d.ts","sourceRoot":"","sources":["../../src/cli/merge-queue.ts"],"names":[],"mappings":"AAeA,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"merge-queue.d.ts","sourceRoot":"","sources":["../../src/cli/merge-queue.ts"],"names":[],"mappings":"AAeA,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAInG,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;CACd;AAmBD,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CA4BxD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,CAGzE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAqB5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,WAAW,EAAE,EACxB,GAAG,CAAC,EAAE,YAAY,GACjB,WAAW,EAAE,CAGf;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;AAEjE;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAK7E;AAgCD,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6IjF"}
|
package/dist/cli/merge-queue.js
CHANGED
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
import chalk from 'chalk';
|
|
15
15
|
import { execFileSync } from 'child_process';
|
|
16
16
|
import { loadOwnershipMap, assessConflict } from '../coordination/ownership.js';
|
|
17
|
+
import { gatePr } from './merge-gate.js';
|
|
18
|
+
import { missionMarkerOf } from '../delivery/merge-gate.js';
|
|
17
19
|
/**
|
|
18
20
|
* Landing is irreversible and unattended, so the default must not merge.
|
|
19
21
|
* `uap merge queue` with no flags prints the plan; `--yes` commits to it.
|
|
@@ -39,18 +41,31 @@ function gh(args, cwd) {
|
|
|
39
41
|
/** Open, non-draft PRs with their changed-file lists. */
|
|
40
42
|
export function fetchOpenPrs(cwd) {
|
|
41
43
|
const raw = gh(['pr', 'list', '--state', 'open', '--limit', '100', '--json',
|
|
42
|
-
'number,title,headRefName,isDraft,updatedAt,labels,files'], cwd);
|
|
44
|
+
'number,title,headRefName,headRefOid,isDraft,updatedAt,labels,files,body'], cwd);
|
|
43
45
|
const parsed = JSON.parse(raw);
|
|
44
46
|
return parsed.map((p) => ({
|
|
45
47
|
number: p.number,
|
|
46
48
|
title: p.title,
|
|
47
49
|
headRefName: p.headRefName,
|
|
50
|
+
headRefOid: p.headRefOid ?? '',
|
|
48
51
|
isDraft: p.isDraft,
|
|
49
52
|
updatedAt: p.updatedAt,
|
|
50
53
|
labels: (p.labels ?? []).map((l) => l.name),
|
|
51
54
|
files: (p.files ?? []).map((f) => f.path),
|
|
55
|
+
body: p.body ?? '',
|
|
52
56
|
}));
|
|
53
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Agent-cut PRs arrive on worktree-pattern branches (`NNN-<slug>` or
|
|
60
|
+
* `feature/NNN-<slug>`). One that carries NO mission marker bypasses the
|
|
61
|
+
* merge gate entirely — the evasion channel is cheap (the PR author writes
|
|
62
|
+
* the body), so the queue surfaces it loudly instead of silently trusting
|
|
63
|
+
* the omission (architect review F3). A warning, never a block: unmarked
|
|
64
|
+
* human PRs and docs/chore PRs are legitimate and common.
|
|
65
|
+
*/
|
|
66
|
+
export function isAgentStyleBranch(headRefName) {
|
|
67
|
+
return /^\d+-/.test(headRefName) || /^feature\/\d+-/.test(headRefName);
|
|
68
|
+
}
|
|
54
69
|
/** Files touched by both PRs — the direct textual-conflict surface. */
|
|
55
70
|
export function overlappingFiles(a, b) {
|
|
56
71
|
const bSet = new Set(b.files);
|
|
@@ -175,10 +190,16 @@ export async function mergeQueueCommand(options = {}) {
|
|
|
175
190
|
for (const [i, pr] of plan.entries()) {
|
|
176
191
|
const others = plan.slice(i + 1);
|
|
177
192
|
const conflicts = impactedBy(pr, others, ownership);
|
|
193
|
+
const marker = missionMarkerOf(`${pr.title}\n${pr.body}`);
|
|
194
|
+
const provenance = marker
|
|
195
|
+
? chalk.cyan(` · mission #${marker.missionId} @ ${marker.hash8}`)
|
|
196
|
+
: isAgentStyleBranch(pr.headRefName)
|
|
197
|
+
? chalk.yellow(' · unmarked agent-style PR — merge gate NOT applied')
|
|
198
|
+
: '';
|
|
178
199
|
const note = conflicts.length > 0
|
|
179
200
|
? chalk.yellow(` → forces re-sync of ${conflicts.map((c) => `#${c.number}`).join(', ')}`)
|
|
180
201
|
: '';
|
|
181
|
-
console.log(` ${i + 1}. #${pr.number} ${pr.title} ${chalk.dim(`(${pr.files.length} files)`)}${note}`);
|
|
202
|
+
console.log(` ${i + 1}. #${pr.number} ${pr.title} ${chalk.dim(`(${pr.files.length} files)`)}${provenance}${note}`);
|
|
182
203
|
}
|
|
183
204
|
console.log('');
|
|
184
205
|
if (ordered.length > plan.length) {
|
|
@@ -205,6 +226,31 @@ export async function mergeQueueCommand(options = {}) {
|
|
|
205
226
|
}
|
|
206
227
|
// 'none' (repo has no CI) and 'green' both proceed.
|
|
207
228
|
}
|
|
229
|
+
// Mission-linked PRs run the deterministic merge gate BEFORE landing: the
|
|
230
|
+
// deliver run's DONE report is a claim; the gate re-derives the verdict
|
|
231
|
+
// from the ledger + fresh run-state + the evidence artifact + the PR diff.
|
|
232
|
+
// `--force` does NOT skip this — a force flag is exactly the gate-off
|
|
233
|
+
// escape axiom-honesty exists to refuse. Deliberate gate-infra changes are
|
|
234
|
+
// acknowledged via the PR's `gate-infra` label, not by skipping the gate.
|
|
235
|
+
// The diff fetch is LAZY (marker-less PRs cost nothing) and a transport
|
|
236
|
+
// failure maps to a skip for THIS PR — never a crash of the whole batch.
|
|
237
|
+
const markerGate = gatePr(cwd, `${pr.title}\n${pr.body}`, () => gh(['pr', 'diff', String(pr.number)], cwd), pr.labels.some((l) => l.toLowerCase() === 'gate-infra'), pr.headRefOid || undefined);
|
|
238
|
+
if (markerGate.gate === 'fail') {
|
|
239
|
+
for (const reason of markerGate.reasons) {
|
|
240
|
+
console.log(chalk.red(` ↳ merge gate: ${reason}`));
|
|
241
|
+
}
|
|
242
|
+
console.log(chalk.yellow(` ⏭ #${pr.number} skipped — merge gate FAIL`));
|
|
243
|
+
skipped.push(`#${pr.number} (merge gate: ${markerGate.reasons.length} check(s) failed)`);
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
if (markerGate.gate === 'error') {
|
|
247
|
+
console.log(chalk.yellow(` ⏭ #${pr.number} skipped — merge gate error: ${markerGate.reason}`));
|
|
248
|
+
skipped.push(`#${pr.number} (merge gate error)`);
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
if (markerGate.gate === 'pass') {
|
|
252
|
+
console.log(chalk.dim(` ↳ merge gate PASS (mission provenance verified)`));
|
|
253
|
+
}
|
|
208
254
|
try {
|
|
209
255
|
gh(['pr', 'merge', String(pr.number), '--merge'], cwd);
|
|
210
256
|
landed++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-queue.js","sourceRoot":"","sources":["../../src/cli/merge-queue.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"merge-queue.js","sourceRoot":"","sources":["../../src/cli/merge-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `uap mission` — the operator surface for the mission ledger.
|
|
3
|
+
*
|
|
4
|
+
* uap mission create "<goal>" --acceptance "<criteria>" [--launch] [--preset <id>]
|
|
5
|
+
* uap mission list [--status active|paused|delivered|failed]
|
|
6
|
+
* uap mission show <id>
|
|
7
|
+
* uap mission pause <id> | resume <id>
|
|
8
|
+
* uap mission replan <id> --acceptance "<new>" --reason "<why>"
|
|
9
|
+
* uap mission salvage [list|approve <id>|reject <id>]
|
|
10
|
+
* uap mission poll [--loop] [--interval N] — the orchestrator loop clock
|
|
11
|
+
*
|
|
12
|
+
* Missions are durable goals with FROZEN acceptance criteria; the poll loop
|
|
13
|
+
* drives them to completion. `--launch` starts the first deliver run
|
|
14
|
+
* immediately instead of waiting for the next poll.
|
|
15
|
+
*/
|
|
16
|
+
import { type OrchOptions } from './orch.js';
|
|
17
|
+
export interface MissionOptions extends OrchOptions {
|
|
18
|
+
acceptance?: string;
|
|
19
|
+
reason?: string;
|
|
20
|
+
preset?: string;
|
|
21
|
+
launch?: boolean;
|
|
22
|
+
status?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare function missionCommand(sub: string, text: string, options?: MissionOptions): Promise<void>;
|
|
25
|
+
//# sourceMappingURL=mission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mission.d.ts","sourceRoot":"","sources":["../../src/cli/mission.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAgBH,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAG9D,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqMD,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAgCf"}
|