@miller-tech/uap 1.164.0 → 1.168.0
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/dist/.tsbuildinfo +1 -1
- package/dist/bin/cli.js +47 -2
- package/dist/bin/cli.js.map +1 -1
- package/dist/browser/web-browser.d.ts +7 -0
- package/dist/browser/web-browser.d.ts.map +1 -1
- package/dist/browser/web-browser.js +15 -0
- package/dist/browser/web-browser.js.map +1 -1
- package/dist/cli/coord.d.ts +1 -1
- package/dist/cli/coord.d.ts.map +1 -1
- package/dist/cli/coord.js +59 -0
- package/dist/cli/coord.js.map +1 -1
- package/dist/cli/deliver.d.ts +27 -0
- package/dist/cli/deliver.d.ts.map +1 -1
- package/dist/cli/deliver.js +103 -12
- package/dist/cli/deliver.js.map +1 -1
- package/dist/cli/merge-queue.d.ts +53 -0
- package/dist/cli/merge-queue.d.ts.map +1 -0
- package/dist/cli/merge-queue.js +239 -0
- package/dist/cli/merge-queue.js.map +1 -0
- package/dist/cli/verify.d.ts +6 -0
- package/dist/cli/verify.d.ts.map +1 -1
- package/dist/cli/verify.js +64 -0
- package/dist/cli/verify.js.map +1 -1
- package/dist/cli/worktree.d.ts +69 -1
- package/dist/cli/worktree.d.ts.map +1 -1
- package/dist/cli/worktree.js +560 -26
- package/dist/cli/worktree.js.map +1 -1
- package/dist/config/policy-recommendations.d.ts.map +1 -1
- package/dist/config/policy-recommendations.js +4 -0
- package/dist/config/policy-recommendations.js.map +1 -1
- package/dist/coordination/index.d.ts +1 -0
- package/dist/coordination/index.d.ts.map +1 -1
- package/dist/coordination/index.js +1 -0
- package/dist/coordination/index.js.map +1 -1
- package/dist/coordination/ownership.d.ts +51 -0
- package/dist/coordination/ownership.d.ts.map +1 -0
- package/dist/coordination/ownership.js +175 -0
- package/dist/coordination/ownership.js.map +1 -0
- package/dist/delivery/agentic-executor.d.ts +15 -0
- package/dist/delivery/agentic-executor.d.ts.map +1 -1
- package/dist/delivery/agentic-executor.js +64 -3
- package/dist/delivery/agentic-executor.js.map +1 -1
- package/dist/delivery/convergence-loop.d.ts +39 -1
- package/dist/delivery/convergence-loop.d.ts.map +1 -1
- package/dist/delivery/convergence-loop.js +22 -4
- package/dist/delivery/convergence-loop.js.map +1 -1
- package/dist/delivery/execution-gate.d.ts +4 -0
- package/dist/delivery/execution-gate.d.ts.map +1 -1
- package/dist/delivery/execution-gate.js +194 -2
- package/dist/delivery/execution-gate.js.map +1 -1
- package/dist/delivery/mission-acceptance.d.ts.map +1 -1
- package/dist/delivery/mission-acceptance.js +69 -21
- package/dist/delivery/mission-acceptance.js.map +1 -1
- package/dist/delivery/user-paths.d.ts +42 -0
- package/dist/delivery/user-paths.d.ts.map +1 -1
- package/dist/delivery/user-paths.js +254 -6
- package/dist/delivery/user-paths.js.map +1 -1
- package/dist/delivery/user-validation.d.ts.map +1 -1
- package/dist/delivery/user-validation.js +21 -1
- package/dist/delivery/user-validation.js.map +1 -1
- package/dist/delivery/vision-judge.d.ts.map +1 -1
- package/dist/delivery/vision-judge.js +8 -1
- package/dist/delivery/vision-judge.js.map +1 -1
- package/dist/models/openai-compat-client.d.ts +26 -0
- package/dist/models/openai-compat-client.d.ts.map +1 -1
- package/dist/models/openai-compat-client.js +60 -8
- package/dist/models/openai-compat-client.js.map +1 -1
- package/docs/INDEX.md +2 -1
- package/docs/guides/DROIDS_AND_SKILLS.md +2 -1
- package/docs/guides/PARALLEL_AGENTS.md +209 -0
- package/docs/guides/POLICIES.md +1 -0
- package/docs/guides/WORKTREE_WORKFLOW.md +5 -2
- package/docs/reference/CLI.md +24 -1
- package/package.json +1 -1
- package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
- package/src/policies/enforcers/branch_freshness.py +134 -0
- package/src/policies/enforcers/coord_overlap.py +126 -47
- package/src/policies/enforcers/iac_plan_destruction_check.py +32 -4
- package/src/policies/schemas/policies/branch-freshness.md +81 -0
- package/templates/hooks/__pycache__/deliver_autoroute.cpython-312.pyc +0 -0
- package/templates/hooks/coordinate-file.sh +153 -3
- package/templates/hooks/session-end.sh +15 -0
- package/templates/hooks/session-start.sh +24 -2
- package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-312.pyc +0 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `uap merge queue` — serialized landing of concurrent agent PRs.
|
|
3
|
+
*
|
|
4
|
+
* Per-PR gates prove a branch is green against the base it was CUT from. They
|
|
5
|
+
* cannot see the semantic conflict where two independently-green PRs break each
|
|
6
|
+
* other once both are on master. That is not hypothetical here: PR #577 landed a
|
|
7
|
+
* legitimate docker-compose file while a stale hygiene test on master asserted
|
|
8
|
+
* the file's absence — both sides green in isolation, master CI red on merge,
|
|
9
|
+
* blocking every version bump in the repo until someone noticed.
|
|
10
|
+
*
|
|
11
|
+
* The queue closes that hole: land ONE PR at a time, then re-sync and re-check
|
|
12
|
+
* every remaining PR against the tip that actually landed, before the next merge.
|
|
13
|
+
*/
|
|
14
|
+
import chalk from 'chalk';
|
|
15
|
+
import { execFileSync } from 'child_process';
|
|
16
|
+
import { loadOwnershipMap, assessConflict } from '../coordination/ownership.js';
|
|
17
|
+
/**
|
|
18
|
+
* Landing is irreversible and unattended, so the default must not merge.
|
|
19
|
+
* `uap merge queue` with no flags prints the plan; `--yes` commits to it.
|
|
20
|
+
*/
|
|
21
|
+
export const DEFAULT_QUEUE_LIMIT = 10;
|
|
22
|
+
/** Run `gh` and return stdout. Throws with a readable message on failure. */
|
|
23
|
+
function gh(args, cwd) {
|
|
24
|
+
try {
|
|
25
|
+
// maxBuffer: `pr list --json files` over 100 PRs blows the 1 MB default and
|
|
26
|
+
// surfaces as a bare "gh failed". timeout: an auth prompt otherwise hangs forever.
|
|
27
|
+
return execFileSync('gh', args, {
|
|
28
|
+
cwd,
|
|
29
|
+
encoding: 'utf-8',
|
|
30
|
+
timeout: 120_000,
|
|
31
|
+
maxBuffer: 32 * 1024 * 1024,
|
|
32
|
+
}).trim();
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
const e = err;
|
|
36
|
+
throw new Error(`gh ${args.join(' ')} failed: ${e.stderr || e.message || 'unknown error'}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/** Open, non-draft PRs with their changed-file lists. */
|
|
40
|
+
export function fetchOpenPrs(cwd) {
|
|
41
|
+
const raw = gh(['pr', 'list', '--state', 'open', '--limit', '100', '--json',
|
|
42
|
+
'number,title,headRefName,isDraft,updatedAt,labels,files'], cwd);
|
|
43
|
+
const parsed = JSON.parse(raw);
|
|
44
|
+
return parsed.map((p) => ({
|
|
45
|
+
number: p.number,
|
|
46
|
+
title: p.title,
|
|
47
|
+
headRefName: p.headRefName,
|
|
48
|
+
isDraft: p.isDraft,
|
|
49
|
+
updatedAt: p.updatedAt,
|
|
50
|
+
labels: (p.labels ?? []).map((l) => l.name),
|
|
51
|
+
files: (p.files ?? []).map((f) => f.path),
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
/** Files touched by both PRs — the direct textual-conflict surface. */
|
|
55
|
+
export function overlappingFiles(a, b) {
|
|
56
|
+
const bSet = new Set(b.files);
|
|
57
|
+
return a.files.filter((f) => bSet.has(f));
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Landing order. Mirrors TaskCoordinator.getMergeOrderSuggestion's intent —
|
|
61
|
+
* urgent and small first — but operates on PRs, which is where merges actually
|
|
62
|
+
* happen. Ordering is deterministic so a dry-run plan matches the real run.
|
|
63
|
+
*/
|
|
64
|
+
export function orderQueue(prs) {
|
|
65
|
+
const priorityOf = (p) => {
|
|
66
|
+
const labels = p.labels.map((l) => l.toLowerCase());
|
|
67
|
+
if (labels.some((l) => l.includes('p0') || l.includes('critical')))
|
|
68
|
+
return 0;
|
|
69
|
+
if (labels.some((l) => l.includes('hotfix') || l.includes('security')))
|
|
70
|
+
return 0;
|
|
71
|
+
if (labels.some((l) => l.includes('bug') || l.includes('fix')))
|
|
72
|
+
return 1;
|
|
73
|
+
if (/^(fix|hotfix)\//.test(p.headRefName))
|
|
74
|
+
return 1;
|
|
75
|
+
if (labels.some((l) => l.includes('p1')))
|
|
76
|
+
return 1;
|
|
77
|
+
if (/^chore\//.test(p.headRefName) || /^docs\//.test(p.headRefName))
|
|
78
|
+
return 3;
|
|
79
|
+
return 2;
|
|
80
|
+
};
|
|
81
|
+
return [...prs].sort((a, b) => {
|
|
82
|
+
const pa = priorityOf(a);
|
|
83
|
+
const pb = priorityOf(b);
|
|
84
|
+
if (pa !== pb)
|
|
85
|
+
return pa - pb;
|
|
86
|
+
// Smaller diffs land more predictably and unblock others sooner.
|
|
87
|
+
if (a.files.length !== b.files.length)
|
|
88
|
+
return a.files.length - b.files.length;
|
|
89
|
+
// Oldest first — long-lived branches drift most, so stop the bleeding.
|
|
90
|
+
return a.updatedAt.localeCompare(b.updatedAt);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* PRs that will need a re-sync once `landed` is on the base branch.
|
|
95
|
+
*
|
|
96
|
+
* Shared FILES are the certain case. Shared LANES (per .uap/ownership.json) catch
|
|
97
|
+
* the semantic case that file overlap misses entirely: two PRs editing different
|
|
98
|
+
* files in the same module, each green alone, broken together. That is exactly how
|
|
99
|
+
* PR #577 turned master red — it touched infra while a test asserting the opposite
|
|
100
|
+
* lived in a file it never opened.
|
|
101
|
+
*/
|
|
102
|
+
export function impactedBy(landed, remaining, map) {
|
|
103
|
+
const lanes = map ?? { lanes: {} };
|
|
104
|
+
return remaining.filter((p) => assessConflict(landed.files, p.files, lanes).conflicts);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Classify `gh pr checks` output. Collapsing everything non-zero into "red" was
|
|
108
|
+
* wrong in two ways that both stop the queue dead: a repo with NO CI (exit 8)
|
|
109
|
+
* could never land anything, and a PR whose checks are still running after the
|
|
110
|
+
* previous merge's re-sync got reported as failing rather than waited on.
|
|
111
|
+
*/
|
|
112
|
+
export function checksVerdict(exitCode, output) {
|
|
113
|
+
if (exitCode === 0)
|
|
114
|
+
return 'green';
|
|
115
|
+
if (exitCode === 8)
|
|
116
|
+
return 'none';
|
|
117
|
+
if (/\b(pending|in_progress|queued|waiting|expected)\b/i.test(output))
|
|
118
|
+
return 'pending';
|
|
119
|
+
return 'red';
|
|
120
|
+
}
|
|
121
|
+
function inspectChecks(prNumber, cwd) {
|
|
122
|
+
try {
|
|
123
|
+
const out = execFileSync('gh', ['pr', 'checks', String(prNumber)], {
|
|
124
|
+
cwd,
|
|
125
|
+
encoding: 'utf-8',
|
|
126
|
+
timeout: 60_000,
|
|
127
|
+
});
|
|
128
|
+
return checksVerdict(0, out);
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
const e = err;
|
|
132
|
+
return checksVerdict(e.status ?? 1, `${e.stdout ?? ''}${e.stderr ?? ''}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Re-sync a PR branch onto the freshly-updated base and push.
|
|
137
|
+
* Returns null on success, or a human-readable reason on failure.
|
|
138
|
+
*/
|
|
139
|
+
function resyncPr(pr, cwd) {
|
|
140
|
+
try {
|
|
141
|
+
gh(['pr', 'update-branch', String(pr.number)], cwd);
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
// update-branch fails on a real conflict — exactly what we want surfaced.
|
|
146
|
+
return err.message.includes('merge conflict')
|
|
147
|
+
? 'merge conflict with the new base — resolve locally'
|
|
148
|
+
: err.message.slice(0, 160);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
export async function mergeQueueCommand(options = {}) {
|
|
152
|
+
const cwd = process.cwd();
|
|
153
|
+
let prs;
|
|
154
|
+
try {
|
|
155
|
+
prs = fetchOpenPrs(cwd);
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
console.error(chalk.red(String(err)));
|
|
159
|
+
console.error(chalk.dim('Requires the `gh` CLI, authenticated against this repo.'));
|
|
160
|
+
process.exitCode = 1;
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
const eligible = prs.filter((p) => !p.isDraft);
|
|
164
|
+
if (eligible.length === 0) {
|
|
165
|
+
console.log(chalk.dim('No open, non-draft PRs to land.'));
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
const ownership = loadOwnershipMap(cwd);
|
|
169
|
+
const ordered = orderQueue(eligible);
|
|
170
|
+
const limit = Number.isFinite(options.limit) && (options.limit ?? 0) > 0
|
|
171
|
+
? options.limit
|
|
172
|
+
: DEFAULT_QUEUE_LIMIT;
|
|
173
|
+
const plan = ordered.slice(0, limit);
|
|
174
|
+
console.log(chalk.bold(`\n🚦 Merge queue — ${plan.length} PR(s)\n`));
|
|
175
|
+
for (const [i, pr] of plan.entries()) {
|
|
176
|
+
const others = plan.slice(i + 1);
|
|
177
|
+
const conflicts = impactedBy(pr, others, ownership);
|
|
178
|
+
const note = conflicts.length > 0
|
|
179
|
+
? chalk.yellow(` → forces re-sync of ${conflicts.map((c) => `#${c.number}`).join(', ')}`)
|
|
180
|
+
: '';
|
|
181
|
+
console.log(` ${i + 1}. #${pr.number} ${pr.title} ${chalk.dim(`(${pr.files.length} files)`)}${note}`);
|
|
182
|
+
}
|
|
183
|
+
console.log('');
|
|
184
|
+
if (ordered.length > plan.length) {
|
|
185
|
+
console.log(chalk.dim(` … ${ordered.length - plan.length} more open PR(s) not in this batch (--limit ${limit}).`));
|
|
186
|
+
console.log('');
|
|
187
|
+
}
|
|
188
|
+
if (options.dryRun || !options.yes) {
|
|
189
|
+
console.log(chalk.dim(options.dryRun
|
|
190
|
+
? 'Dry run — nothing merged.'
|
|
191
|
+
: 'Plan only — nothing merged. Re-run with --yes to land these.'));
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
let landed = 0;
|
|
195
|
+
const skipped = [];
|
|
196
|
+
for (const [i, pr] of plan.entries()) {
|
|
197
|
+
const remaining = plan.slice(i + 1);
|
|
198
|
+
if (!options.force) {
|
|
199
|
+
const verdict = inspectChecks(pr.number, cwd);
|
|
200
|
+
if (verdict === 'red' || verdict === 'pending') {
|
|
201
|
+
const why = verdict === 'pending' ? 'checks still running' : 'checks failing';
|
|
202
|
+
console.log(chalk.yellow(` ⏭ #${pr.number} skipped — ${why}`));
|
|
203
|
+
skipped.push(`#${pr.number} (${why})`);
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
// 'none' (repo has no CI) and 'green' both proceed.
|
|
207
|
+
}
|
|
208
|
+
try {
|
|
209
|
+
gh(['pr', 'merge', String(pr.number), '--merge'], cwd);
|
|
210
|
+
landed++;
|
|
211
|
+
console.log(chalk.green(` ✔ #${pr.number} merged`));
|
|
212
|
+
}
|
|
213
|
+
catch (err) {
|
|
214
|
+
console.log(chalk.red(` ✖ #${pr.number} merge failed: ${err.message.slice(0, 140)}`));
|
|
215
|
+
skipped.push(`#${pr.number} (merge failed)`);
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
// THE POINT OF THE QUEUE: every PR that touches what just landed is now
|
|
219
|
+
// testing against a base that no longer exists. Re-sync before the next merge
|
|
220
|
+
// so the next PR's checks describe reality.
|
|
221
|
+
const impacted = impactedBy(pr, remaining, ownership);
|
|
222
|
+
for (const other of impacted) {
|
|
223
|
+
const failure = resyncPr(other, cwd);
|
|
224
|
+
if (failure) {
|
|
225
|
+
console.log(chalk.red(` ↳ #${other.number} could not re-sync: ${failure}`));
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
console.log(chalk.dim(` ↳ #${other.number} re-synced onto the new base`));
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
console.log('');
|
|
233
|
+
console.log(chalk.bold(`Landed ${landed}/${plan.length}.`));
|
|
234
|
+
if (skipped.length > 0) {
|
|
235
|
+
console.log(chalk.yellow(`Skipped: ${skipped.join(', ')}`));
|
|
236
|
+
process.exitCode = 1;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=merge-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-queue.js","sourceRoot":"","sources":["../../src/cli/merge-queue.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/verify.d.ts
CHANGED
|
@@ -13,6 +13,12 @@ import { type AcceptanceResult } from '../delivery/acceptance-judge.js';
|
|
|
13
13
|
import { type VisualVerdict } from '../delivery/visual-gate.js';
|
|
14
14
|
import { type ResolvedFidelity } from '../delivery/fidelity.js';
|
|
15
15
|
import type { LoopExecutor } from '../delivery/convergence-loop.js';
|
|
16
|
+
/**
|
|
17
|
+
* Does the project render via <canvas>? Used to append canvas-specific aesthetic
|
|
18
|
+
* guidance when the vision gate fails. Bounded shallow scan of .html/.js source
|
|
19
|
+
* for `<canvas` or a 2D/WebGL context grab. Fail-soft: any error → false.
|
|
20
|
+
*/
|
|
21
|
+
export declare function projectUsesCanvas(dir: string): boolean;
|
|
16
22
|
export interface VerifyOptions {
|
|
17
23
|
/** Project directory to verify (default: cwd). */
|
|
18
24
|
dir?: string;
|
package/dist/cli/verify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/cli/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAwC,KAAK,QAAQ,EAAiB,KAAK,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACvI,OAAO,EAA6C,KAAK,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnH,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACnG,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AASjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/cli/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAwC,KAAK,QAAQ,EAAiB,KAAK,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACvI,OAAO,EAA6C,KAAK,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnH,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACnG,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AASjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAIpE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAmCtD;AAED,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sEAAsE;IACtE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uFAAuF;IACvF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClC;;6BAEyB;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,oFAAoF;IACpF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;mFAC+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;6EAGyE;IACzE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,8EAA8E;AAC9E,wBAAsB,SAAS,CAAC,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CA6P/E;AAmDD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkCpE;AAED,uEAAuE;AACvE,wBAAsB,aAAa,CACjC,OAAO,EAAE,aAAa,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAChH,OAAO,CAAC,IAAI,CAAC,CAmDf"}
|
package/dist/cli/verify.js
CHANGED
|
@@ -15,6 +15,57 @@ import { resolveFidelity } from '../delivery/fidelity.js';
|
|
|
15
15
|
import { checkUserValidationFreshness, createUserValidationRunner, resolveUserValidationMode, synthesizeUserValidationRung, } from '../delivery/user-validation.js';
|
|
16
16
|
import { loadUapConfigRaw } from '../utils/config-loader.js';
|
|
17
17
|
import { compareVisualBaseline, driftSummary, approveVisualBaseline } from '../delivery/visual-baseline.js';
|
|
18
|
+
import { readdirSync, readFileSync, statSync } from 'node:fs';
|
|
19
|
+
import { join as joinPath } from 'node:path';
|
|
20
|
+
/**
|
|
21
|
+
* Does the project render via <canvas>? Used to append canvas-specific aesthetic
|
|
22
|
+
* guidance when the vision gate fails. Bounded shallow scan of .html/.js source
|
|
23
|
+
* for `<canvas` or a 2D/WebGL context grab. Fail-soft: any error → false.
|
|
24
|
+
*/
|
|
25
|
+
export function projectUsesCanvas(dir) {
|
|
26
|
+
const SKIP = new Set(['node_modules', '.git', '.uap', 'dist', 'build', '.worktrees']);
|
|
27
|
+
let filesRead = 0;
|
|
28
|
+
const scan = (d, depth) => {
|
|
29
|
+
if (depth > 3 || filesRead > 80)
|
|
30
|
+
return false;
|
|
31
|
+
let entries;
|
|
32
|
+
try {
|
|
33
|
+
entries = readdirSync(d);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
for (const e of entries) {
|
|
39
|
+
if (SKIP.has(e))
|
|
40
|
+
continue;
|
|
41
|
+
const p = joinPath(d, e);
|
|
42
|
+
let st;
|
|
43
|
+
try {
|
|
44
|
+
st = statSync(p);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (st.isDirectory()) {
|
|
50
|
+
if (scan(p, depth + 1))
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
else if (/\.(html?|js|mjs|cjs|jsx|ts|tsx)$/.test(e) && st.size < 512_000) {
|
|
54
|
+
filesRead++;
|
|
55
|
+
try {
|
|
56
|
+
const txt = readFileSync(p, 'utf-8');
|
|
57
|
+
if (/<canvas\b/i.test(txt) || /\.getContext\s*\(\s*['"](2d|webgl2?)['"]/i.test(txt))
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
/* unreadable — skip */
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
};
|
|
67
|
+
return scan(dir, 0);
|
|
68
|
+
}
|
|
18
69
|
/** Core verify logic — pure-ish (no process.exit), so it is unit-testable. */
|
|
19
70
|
export async function runVerify(opts = {}) {
|
|
20
71
|
const dir = opts.dir ?? process.cwd();
|
|
@@ -183,6 +234,19 @@ export async function runVerify(opts = {}) {
|
|
|
183
234
|
if (fidelity.max && verdict && verdict.score < fidelity.visionMinScore) {
|
|
184
235
|
visionBlocks = true;
|
|
185
236
|
visualReport += `\n✗ max fidelity: aesthetic score ${verdict.score}/10 is below the ${fidelity.visionMinScore} threshold.`;
|
|
237
|
+
// Canvas apps score low most often because the render loop is gated on an
|
|
238
|
+
// active/'playing' state, so the FIRST screen the judge grades (menu/attract)
|
|
239
|
+
// shows a blank <canvas>. Append the concrete, general fix so a weak model
|
|
240
|
+
// gets an action, not just a score. (Board finding: draw the scene in every
|
|
241
|
+
// state; keep any full-screen overlay transparent so it does not dim the canvas.)
|
|
242
|
+
if (projectUsesCanvas(dir)) {
|
|
243
|
+
visualReport +=
|
|
244
|
+
'\nThe judge grades the FIRST screen a user sees. For a <canvas> app, run the render loop ' +
|
|
245
|
+
'from load and DRAW THE SCENE (background, key sprites/preview) in EVERY state — including the ' +
|
|
246
|
+
'menu/start/attract state — not only during active play; a blank canvas on the first screen is ' +
|
|
247
|
+
'the most common cause of a low score. Keep any full-screen DOM overlay background transparent ' +
|
|
248
|
+
'so the canvas shows through and is not dimmed, and use the vibrant on-theme palette.';
|
|
249
|
+
}
|
|
186
250
|
}
|
|
187
251
|
}
|
|
188
252
|
else if (fidelity.max) {
|
package/dist/cli/verify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/cli/verify.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/cli/verify.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/worktree.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { SimpleGit } from 'simple-git';
|
|
2
|
+
type WorktreeAction = 'create' | 'list' | 'pr' | 'finish' | 'cleanup' | 'ensure' | 'prune' | 'sync' | 'hygiene';
|
|
2
3
|
interface WorktreeOptions {
|
|
3
4
|
slug?: string;
|
|
4
5
|
id?: string;
|
|
@@ -9,8 +10,75 @@ interface WorktreeOptions {
|
|
|
9
10
|
olderThan?: number;
|
|
10
11
|
force?: boolean;
|
|
11
12
|
dryRun?: boolean;
|
|
13
|
+
/** create: skip the fetch of the base remote (offline / air-gapped). */
|
|
14
|
+
noFetch?: boolean;
|
|
15
|
+
/** hygiene: emit a single-line advisory instead of the full table. */
|
|
16
|
+
brief?: boolean;
|
|
17
|
+
/** sync/hygiene: operate on every worktree, not just the current one. */
|
|
18
|
+
all?: boolean;
|
|
12
19
|
}
|
|
20
|
+
/** Commits behind the integration ref at which a worktree reads as abandoned. */
|
|
21
|
+
export declare const STALE_BEHIND_LIMIT = 200;
|
|
13
22
|
export declare function worktreeCommand(action: WorktreeAction, options?: WorktreeOptions): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Name of the repo's integration branch, without the remote prefix.
|
|
25
|
+
* Prefers origin/HEAD (what the remote itself calls default), then the usual
|
|
26
|
+
* suspects, then the current local branch. Hard-coding "master" broke every
|
|
27
|
+
* main-branch repo that installed UAP.
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolveDefaultBranch(git: SimpleGit): Promise<string>;
|
|
30
|
+
/** Fully-qualified ref to integrate against: `origin/<default>` when the remote has it. */
|
|
31
|
+
export declare function resolveIntegrationRef(git: SimpleGit): Promise<string>;
|
|
32
|
+
export interface BranchDrift {
|
|
33
|
+
name: string;
|
|
34
|
+
path: string;
|
|
35
|
+
branch: string;
|
|
36
|
+
/** Commits on the integration ref that this branch does not have. */
|
|
37
|
+
behind: number;
|
|
38
|
+
/** Commits on this branch not yet on the integration ref (unmerged work). */
|
|
39
|
+
ahead: number;
|
|
40
|
+
/** Count of uncommitted (staged + unstaged + untracked) entries. */
|
|
41
|
+
dirty: number;
|
|
42
|
+
/** A live agent is announcing work on this branch right now. */
|
|
43
|
+
active?: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Branches a LIVE agent is currently announcing work on.
|
|
47
|
+
*
|
|
48
|
+
* Git metadata alone cannot tell "abandoned" from "someone is working here this
|
|
49
|
+
* second": both look like an old branch with uncommitted files. That ambiguity is
|
|
50
|
+
* not academic — a worktree in this repo was read as abandoned WIP and merged
|
|
51
|
+
* forward while its owning agent was mid-session, because the drift report only
|
|
52
|
+
* ever consulted git. The coordination DB knows the difference; join against it.
|
|
53
|
+
*
|
|
54
|
+
* Liveness uses the same heartbeat window as coordinate-file.sh so "live" means
|
|
55
|
+
* one thing across the system. Fail-open: an unreadable DB marks nothing active.
|
|
56
|
+
*/
|
|
57
|
+
export declare function liveAgentBranches(mainRoot: string): {
|
|
58
|
+
branches: Set<string>;
|
|
59
|
+
/** False when the DB could not be read — callers that DELETE must fail closed. */
|
|
60
|
+
readable: boolean;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Measure one worktree's drift against the integration ref. Never throws.
|
|
64
|
+
*
|
|
65
|
+
* Kept to ONE git process on the common path. The first version spent four
|
|
66
|
+
* (`rev-parse`, two `rev-list`, `status`) which, across this repo's 152
|
|
67
|
+
* worktrees, ran ~600 sequential git invocations — comfortably past the 15s
|
|
68
|
+
* budget the session banner allows, so the advisory was always killed before it
|
|
69
|
+
* printed while still costing the full 15 seconds.
|
|
70
|
+
*
|
|
71
|
+
* @param branch pre-resolved from `git worktree list --porcelain`, which already
|
|
72
|
+
* reports it — re-asking per worktree was a free process we were paying for.
|
|
73
|
+
* @param withDirty `git status` is by far the most expensive call (it stats the
|
|
74
|
+
* whole tree). Only worth it for worktrees that already look interesting.
|
|
75
|
+
*/
|
|
76
|
+
export declare function measureDrift(worktreePath: string, integrationRef: string, branch?: string, withDirty?: boolean): Promise<BranchDrift | null>;
|
|
77
|
+
/**
|
|
78
|
+
* One-line advisory for session-start. Returns '' when nothing needs attention,
|
|
79
|
+
* so the caller can stay silent on a healthy repo.
|
|
80
|
+
*/
|
|
81
|
+
export declare function summarizeHygiene(drifts: BranchDrift[], integrationRef: string): string;
|
|
14
82
|
export declare function parseRevListCount(output: string): number;
|
|
15
83
|
export declare function isAlreadyMergedMessage(message: string): boolean;
|
|
16
84
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/cli/worktree.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/cli/worktree.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,SAAS,EAAE,MAAM,YAAY,CAAC;AAIlD,KAAK,cAAc,GACf,QAAQ,GACR,MAAM,GACN,IAAI,GACJ,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,OAAO,GACP,MAAM,GACN,SAAS,CAAC;AAEd,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yEAAyE;IACzE,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAuEtC,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA4Cf;AAwRD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAqB1E;AAED,2FAA2F;AAC3F,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ3E;AA+BD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACnD,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,kFAAkF;IAClF,QAAQ,EAAE,OAAO,CAAC;CACnB,CAkDA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,UAAO,GACf,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA8B7B;AAuND;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CA6BtF;AAcD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMxD;AAcD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE/D;AAqKD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAU9D"}
|