@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.
Files changed (103) hide show
  1. package/config/capacity-policy.json +33 -0
  2. package/config/model-profiles/qwen38.json +32 -33
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/bin/cli.js +57 -0
  5. package/dist/bin/cli.js.map +1 -1
  6. package/dist/capacity/policy.d.ts +32 -1
  7. package/dist/capacity/policy.d.ts.map +1 -1
  8. package/dist/capacity/policy.js +123 -4
  9. package/dist/capacity/policy.js.map +1 -1
  10. package/dist/capacity/probe.d.ts +26 -0
  11. package/dist/capacity/probe.d.ts.map +1 -1
  12. package/dist/capacity/probe.js +84 -3
  13. package/dist/capacity/probe.js.map +1 -1
  14. package/dist/cli/inference.d.ts +4 -0
  15. package/dist/cli/inference.d.ts.map +1 -1
  16. package/dist/cli/inference.js +74 -8
  17. package/dist/cli/inference.js.map +1 -1
  18. package/dist/cli/merge-gate.d.ts +59 -0
  19. package/dist/cli/merge-gate.d.ts.map +1 -0
  20. package/dist/cli/merge-gate.js +238 -0
  21. package/dist/cli/merge-gate.js.map +1 -0
  22. package/dist/cli/merge-queue.d.ts +13 -0
  23. package/dist/cli/merge-queue.d.ts.map +1 -1
  24. package/dist/cli/merge-queue.js +48 -2
  25. package/dist/cli/merge-queue.js.map +1 -1
  26. package/dist/cli/mission.d.ts +25 -0
  27. package/dist/cli/mission.d.ts.map +1 -0
  28. package/dist/cli/mission.js +225 -0
  29. package/dist/cli/mission.js.map +1 -0
  30. package/dist/cli/orch.d.ts +27 -0
  31. package/dist/cli/orch.d.ts.map +1 -0
  32. package/dist/cli/orch.js +70 -0
  33. package/dist/cli/orch.js.map +1 -0
  34. package/dist/cli/systemd-services.d.ts.map +1 -1
  35. package/dist/cli/systemd-services.js +44 -0
  36. package/dist/cli/systemd-services.js.map +1 -1
  37. package/dist/delivery/merge-gate.d.ts +168 -0
  38. package/dist/delivery/merge-gate.d.ts.map +1 -0
  39. package/dist/delivery/merge-gate.js +309 -0
  40. package/dist/delivery/merge-gate.js.map +1 -0
  41. package/dist/inference/analysis.d.ts +69 -3
  42. package/dist/inference/analysis.d.ts.map +1 -1
  43. package/dist/inference/analysis.js +123 -7
  44. package/dist/inference/analysis.js.map +1 -1
  45. package/dist/inference/probe.d.ts +38 -1
  46. package/dist/inference/probe.d.ts.map +1 -1
  47. package/dist/inference/probe.js +303 -30
  48. package/dist/inference/probe.js.map +1 -1
  49. package/dist/inference/strata.d.ts +95 -0
  50. package/dist/inference/strata.d.ts.map +1 -0
  51. package/dist/inference/strata.js +167 -0
  52. package/dist/inference/strata.js.map +1 -0
  53. package/dist/mission/database.d.ts +29 -0
  54. package/dist/mission/database.d.ts.map +1 -0
  55. package/dist/mission/database.js +131 -0
  56. package/dist/mission/database.js.map +1 -0
  57. package/dist/mission/ledger.d.ts +109 -0
  58. package/dist/mission/ledger.d.ts.map +1 -0
  59. package/dist/mission/ledger.js +294 -0
  60. package/dist/mission/ledger.js.map +1 -0
  61. package/dist/mission/poll-cycle.d.ts +73 -0
  62. package/dist/mission/poll-cycle.d.ts.map +1 -0
  63. package/dist/mission/poll-cycle.js +100 -0
  64. package/dist/mission/poll-cycle.js.map +1 -0
  65. package/dist/mission/poll-executor.d.ts +91 -0
  66. package/dist/mission/poll-executor.d.ts.map +1 -0
  67. package/dist/mission/poll-executor.js +328 -0
  68. package/dist/mission/poll-executor.js.map +1 -0
  69. package/dist/models/types.d.ts.map +1 -1
  70. package/dist/models/types.js +33 -27
  71. package/dist/models/types.js.map +1 -1
  72. package/dist/self-tuning/profiles/qwen38.d.ts +13 -14
  73. package/dist/self-tuning/profiles/qwen38.d.ts.map +1 -1
  74. package/dist/self-tuning/profiles/qwen38.js +17 -18
  75. package/dist/self-tuning/profiles/qwen38.js.map +1 -1
  76. package/dist/types/mission.d.ts +80 -0
  77. package/dist/types/mission.d.ts.map +1 -0
  78. package/dist/types/mission.js +12 -0
  79. package/dist/types/mission.js.map +1 -0
  80. package/docs/architecture/adr/0003-mission-orchestrator.md +99 -0
  81. package/docs/architecture/adr/0004-deterministic-merge-gate.md +127 -0
  82. package/docs/guides/CAPACITY_POLICY.md +49 -0
  83. package/docs/guides/INFERENCE_HEALTH.md +65 -8
  84. package/docs/guides/MISSIONS.md +170 -0
  85. package/docs/guides/PROXY.md +2 -0
  86. package/docs/reports/2026-10-02-plane-admin-fail-closed.md +70 -0
  87. package/docs/reports/2026-10-02-plane-admin-protect-session.md +116 -0
  88. package/docs/visual/merge-gate.html +404 -0
  89. package/docs/visual/mission-orchestrator.html +472 -0
  90. package/package.json +2 -2
  91. package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
  92. package/src/policies/enforcers/__pycache__/expert_review_required.cpython-312.pyc +0 -0
  93. package/src/policies/enforcers/__pycache__/quality_metrics_gate.cpython-312.pyc +0 -0
  94. package/src/policies/enforcers/plane_admin_protect.py +133 -0
  95. package/src/policies/schemas/policies/plane-admin-protect.md +55 -0
  96. package/templates/hooks/__pycache__/deliver_autoroute.cpython-312.pyc +0 -0
  97. package/templates/hooks/uap-policy-gate.sh +33 -0
  98. package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-312.pyc +0 -0
  99. package/tools/agents/scripts/anthropic_proxy.py +493 -40
  100. package/tools/agents/tests/test_anthropic_proxy_streaming.py +171 -0
  101. package/tools/agents/tests/test_gate_failclosed_plane_admin.py +248 -0
  102. package/tools/agents/tests/test_plane_admin_protect.py +124 -0
  103. 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;AAEnG,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,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAmBD,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAwBxD;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,CAuGjF"}
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"}
@@ -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"}