@miller-tech/uap 1.169.0 → 1.170.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/delivery/user-paths.d.ts +17 -0
- package/dist/delivery/user-paths.d.ts.map +1 -1
- package/dist/delivery/user-paths.js +108 -20
- package/dist/delivery/user-paths.js.map +1 -1
- package/dist/delivery/verifier-ladder.d.ts +19 -0
- package/dist/delivery/verifier-ladder.d.ts.map +1 -1
- package/dist/delivery/verifier-ladder.js +95 -11
- package/dist/delivery/verifier-ladder.js.map +1 -1
- package/docs/guides/DELIVER.md +4 -0
- package/package.json +1 -1
- package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
- package/src/policies/enforcers/_common.py +106 -0
- package/src/policies/enforcers/iac_plan_destruction_check.py +15 -4
- package/src/policies/enforcers/workdir_scope.py +6 -0
- package/templates/hooks/__pycache__/deliver_autoroute.cpython-312.pyc +0 -0
- package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-312.pyc +0 -0
|
@@ -75,6 +75,23 @@ export declare function loadUserPaths(projectRoot: string): ManifestValidation |
|
|
|
75
75
|
export declare function mergeUserPaths(projectRoot: string, derived: UserPathsManifest): UserPathsManifest;
|
|
76
76
|
/** Extract the first JSON object or array from model output (```json fences or bare). */
|
|
77
77
|
export declare function parseManifestFromModel(text: string): UserPathsManifest | null;
|
|
78
|
+
/** One human-readable line per step; '' for steps not worth stating (pure waits). */
|
|
79
|
+
/**
|
|
80
|
+
* Clamp a value interpolated from the manifest into the prompt.
|
|
81
|
+
*
|
|
82
|
+
* The contract is injected into EVERY turn's prompt, and every field here comes
|
|
83
|
+
* from `.uap/user-paths.json` — a repo file whose user-curated entries are
|
|
84
|
+
* deliberately never overwritten. Unclamped, one long `fill.value` or
|
|
85
|
+
* `expect_text.contains` is re-sent on every turn for the life of the run, and a
|
|
86
|
+
* multi-line value can forge structure inside a section the model reads as
|
|
87
|
+
* instructions. Newlines collapse, length is bounded, and the truncation is
|
|
88
|
+
* visible rather than silent.
|
|
89
|
+
*/
|
|
90
|
+
export declare function clampContractValue(value: unknown, max?: number): string;
|
|
91
|
+
/** Per-field cap for values interpolated into the acceptance contract. */
|
|
92
|
+
export declare const CONTRACT_FIELD_MAX = 200;
|
|
93
|
+
/** Cap for the whole rendered contract — it is re-sent every turn. */
|
|
94
|
+
export declare const CONTRACT_TOTAL_MAX = 8000;
|
|
78
95
|
/**
|
|
79
96
|
* Render the derived user-path manifest as an ACCEPTANCE CONTRACT for the
|
|
80
97
|
* implementer — the concrete journeys + selectors the real-client validator
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-paths.d.ts","sourceRoot":"","sources":["../../src/delivery/user-paths.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"user-paths.d.ts","sourceRoot":"","sources":["../../src/delivery/user-paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -166,9 +166,30 @@ function selectorOf(v) {
|
|
|
166
166
|
return undefined;
|
|
167
167
|
}
|
|
168
168
|
/** One human-readable line per step; '' for steps not worth stating (pure waits). */
|
|
169
|
+
/**
|
|
170
|
+
* Clamp a value interpolated from the manifest into the prompt.
|
|
171
|
+
*
|
|
172
|
+
* The contract is injected into EVERY turn's prompt, and every field here comes
|
|
173
|
+
* from `.uap/user-paths.json` — a repo file whose user-curated entries are
|
|
174
|
+
* deliberately never overwritten. Unclamped, one long `fill.value` or
|
|
175
|
+
* `expect_text.contains` is re-sent on every turn for the life of the run, and a
|
|
176
|
+
* multi-line value can forge structure inside a section the model reads as
|
|
177
|
+
* instructions. Newlines collapse, length is bounded, and the truncation is
|
|
178
|
+
* visible rather than silent.
|
|
179
|
+
*/
|
|
180
|
+
export function clampContractValue(value, max = CONTRACT_FIELD_MAX) {
|
|
181
|
+
const s = String(value ?? '').replace(/[\r\n\t\u2028\u2029]+/g, ' ').trim();
|
|
182
|
+
return s.length > max ? `${s.slice(0, max)}…` : s;
|
|
183
|
+
}
|
|
184
|
+
/** Per-field cap for values interpolated into the acceptance contract. */
|
|
185
|
+
export const CONTRACT_FIELD_MAX = 200;
|
|
186
|
+
/** Cap for the whole rendered contract — it is re-sent every turn. */
|
|
187
|
+
export const CONTRACT_TOTAL_MAX = 8000;
|
|
188
|
+
/** Headroom reserved for the truncation notes so the cap is never exceeded. */
|
|
189
|
+
const NOTE_ALLOWANCE = 260;
|
|
169
190
|
function describeContractStep(step, sink) {
|
|
170
191
|
if (step.goto !== undefined)
|
|
171
|
-
return `load ${step.goto || '/'}`;
|
|
192
|
+
return `load ${clampContractValue(step.goto) || '/'}`;
|
|
172
193
|
if (step.click !== undefined) {
|
|
173
194
|
const sel = selectorOf(step.click);
|
|
174
195
|
collectContractSelector(sel, sink);
|
|
@@ -176,41 +197,41 @@ function describeContractStep(step, sink) {
|
|
|
176
197
|
const coord = c && typeof c === 'object'
|
|
177
198
|
? ` at (${String(c.x ?? '?')},${String(c.y ?? '?')})`
|
|
178
199
|
: '';
|
|
179
|
-
return `click ${sel ?? String(step.click)}${coord}`;
|
|
200
|
+
return `click ${clampContractValue(sel ?? String(step.click))}${coord}`;
|
|
180
201
|
}
|
|
181
202
|
if (step.fill) {
|
|
182
203
|
collectContractSelector(step.fill.selector, sink);
|
|
183
|
-
return `type "${step.fill.value}" into ${step.fill.selector}`;
|
|
204
|
+
return `type "${clampContractValue(step.fill.value)}" into ${clampContractValue(step.fill.selector)}`;
|
|
184
205
|
}
|
|
185
206
|
if (step.press)
|
|
186
|
-
return `press ${step.press}`;
|
|
207
|
+
return `press ${clampContractValue(step.press)}`;
|
|
187
208
|
if (step.expect_visible !== undefined) {
|
|
188
209
|
collectContractSelector(step.expect_visible, sink);
|
|
189
|
-
return `${step.expect_visible} must be visible`;
|
|
210
|
+
return `${clampContractValue(step.expect_visible)} must be visible`;
|
|
190
211
|
}
|
|
191
212
|
if (step.expect_text) {
|
|
192
213
|
collectContractSelector(step.expect_text.selector, sink);
|
|
193
214
|
const c = step.expect_text.contains;
|
|
194
|
-
return `${step.expect_text.selector} must ${c ? `contain "${c}"` : 'have text'}`;
|
|
215
|
+
return `${clampContractValue(step.expect_text.selector)} must ${c ? `contain "${clampContractValue(c)}"` : 'have text'}`;
|
|
195
216
|
}
|
|
196
217
|
if (step.expect_no_console_errors)
|
|
197
218
|
return 'no console errors';
|
|
198
219
|
if (step.request)
|
|
199
|
-
return `${step.request.method} ${step.request.path}`;
|
|
220
|
+
return `${clampContractValue(step.request.method)} ${clampContractValue(step.request.path)}`;
|
|
200
221
|
if (step.expect_status !== undefined)
|
|
201
|
-
return `response status ${step.expect_status}`;
|
|
222
|
+
return `response status ${clampContractValue(step.expect_status)}`;
|
|
202
223
|
if (step.expect_json_contains)
|
|
203
|
-
return `response JSON contains ${JSON.stringify(step.expect_json_contains)}`;
|
|
224
|
+
return `response JSON contains ${clampContractValue(JSON.stringify(step.expect_json_contains))}`;
|
|
204
225
|
if (step.expect_body_matches)
|
|
205
|
-
return `response body matches /${step.expect_body_matches}/`;
|
|
226
|
+
return `response body matches /${clampContractValue(step.expect_body_matches)}/`;
|
|
206
227
|
if (step.run)
|
|
207
|
-
return `run ${step.run.argv.join(' ')}`;
|
|
228
|
+
return `run ${clampContractValue((step.run.argv ?? []).join(' '))}`;
|
|
208
229
|
if (step.expect_exit !== undefined)
|
|
209
|
-
return `exit code ${step.expect_exit}`;
|
|
230
|
+
return `exit code ${clampContractValue(step.expect_exit)}`;
|
|
210
231
|
if (step.expect_stdout_matches)
|
|
211
|
-
return `stdout matches /${step.expect_stdout_matches}/`;
|
|
232
|
+
return `stdout matches /${clampContractValue(step.expect_stdout_matches)}/`;
|
|
212
233
|
if (step.expect_stderr_matches)
|
|
213
|
-
return `stderr matches /${step.expect_stderr_matches}/`;
|
|
234
|
+
return `stderr matches /${clampContractValue(step.expect_stderr_matches)}/`;
|
|
214
235
|
return '';
|
|
215
236
|
}
|
|
216
237
|
/**
|
|
@@ -239,8 +260,8 @@ export function renderAcceptanceContract(manifest) {
|
|
|
239
260
|
continue;
|
|
240
261
|
if (path.client === 'browser')
|
|
241
262
|
hasBrowser = true;
|
|
242
|
-
const rule = (path.rule ?? path.id ?? '')
|
|
243
|
-
journeyLines.push(`- Journey "${path.id}" (${path.client})${rule ? `: ${rule}` : ''}`);
|
|
263
|
+
const rule = clampContractValue(path.rule ?? path.id ?? '');
|
|
264
|
+
journeyLines.push(`- Journey "${clampContractValue(path.id)}" (${clampContractValue(path.client)})${rule ? `: ${rule}` : ''}`);
|
|
244
265
|
for (const step of path.steps) {
|
|
245
266
|
const desc = describeContractStep(step, selectors);
|
|
246
267
|
if (desc)
|
|
@@ -249,17 +270,23 @@ export function renderAcceptanceContract(manifest) {
|
|
|
249
270
|
}
|
|
250
271
|
if (journeyLines.length === 0)
|
|
251
272
|
return '';
|
|
252
|
-
const
|
|
273
|
+
const header = [
|
|
253
274
|
'ACCEPTANCE CONTRACT — the delivered artifact is exercised by an automated real-client',
|
|
254
275
|
'validator (headless browser / HTTP client / built CLI) on the journeys below. Build so',
|
|
255
276
|
'EVERY step passes; a step the validator cannot perform fails delivery.',
|
|
256
277
|
'',
|
|
257
|
-
...journeyLines,
|
|
258
278
|
];
|
|
279
|
+
const out = [];
|
|
259
280
|
const required = [...selectors].filter((s) => !SHELL_CONTRACT_SELECTORS.has(s.toLowerCase()));
|
|
281
|
+
// The selector list scales with the manifest exactly like the journey list —
|
|
282
|
+
// one selector per step. Treating it as fixed overhead let it consume the whole
|
|
283
|
+
// budget and evict every journey line, leaving a contract that is all
|
|
284
|
+
// requirements and no journeys (and still over the cap).
|
|
285
|
+
const selectorLine = (list, omitted) => `REQUIRED DOM SELECTORS (each MUST exist in the rendered page and be visible/clickable as used above): ${list.join(', ')}.` +
|
|
286
|
+
(omitted > 0 ? ` (+${omitted} more — see ${USER_PATHS_FILE})` : '');
|
|
260
287
|
if (hasBrowser && required.length > 0) {
|
|
261
288
|
out.push('');
|
|
262
|
-
out.push(
|
|
289
|
+
out.push(selectorLine(required, 0));
|
|
263
290
|
out.push('If your UI draws controls or text on a <canvas>, ALSO expose these selectors as real DOM ' +
|
|
264
291
|
'elements layered over the canvas (position:absolute/fixed; background:transparent so the canvas ' +
|
|
265
292
|
'shows through and the visuals are not dimmed). An automated client cannot see or click ' +
|
|
@@ -275,7 +302,68 @@ export function renderAcceptanceContract(manifest) {
|
|
|
275
302
|
'on-theme palette and keep any full-screen DOM overlay background transparent so the canvas shows through.');
|
|
276
303
|
}
|
|
277
304
|
}
|
|
278
|
-
|
|
305
|
+
// Whole-contract cap. Per-field clamping bounds any single VALUE; this bounds
|
|
306
|
+
// the whole thing, because the text is re-sent on EVERY turn and competes with
|
|
307
|
+
// the task itself for the context budget.
|
|
308
|
+
//
|
|
309
|
+
// TWO sections scale with the manifest — the journey list and the selector list
|
|
310
|
+
// — so both are truncated, and the fixed rails (header, canvas/state-transition
|
|
311
|
+
// guidance) are the only things treated as always-kept. Journeys are truncated
|
|
312
|
+
// by GROUP: dropping a "- Journey" header while keeping its indented bullets
|
|
313
|
+
// would silently re-parent those steps under the previous journey, which is a
|
|
314
|
+
// wrong contract rather than a shorter one.
|
|
315
|
+
const rails = out.filter((l) => !l.startsWith('REQUIRED DOM SELECTORS'));
|
|
316
|
+
const fixed = [...header, ...rails].join('\n').length + NOTE_ALLOWANCE;
|
|
317
|
+
const full = [...header, ...journeyLines, ...out].join('\n');
|
|
318
|
+
if (full.length <= CONTRACT_TOTAL_MAX)
|
|
319
|
+
return full;
|
|
320
|
+
// Split the remaining budget: journeys first (they are the contract), selectors
|
|
321
|
+
// second (they are derivable from the journeys the model can still see).
|
|
322
|
+
let budget = Math.max(0, CONTRACT_TOTAL_MAX - fixed);
|
|
323
|
+
const journeyBudget = Math.floor(budget * 0.7);
|
|
324
|
+
const groups = [];
|
|
325
|
+
for (const line of journeyLines) {
|
|
326
|
+
if (line.startsWith('- Journey') || groups.length === 0)
|
|
327
|
+
groups.push([line]);
|
|
328
|
+
else
|
|
329
|
+
groups[groups.length - 1].push(line);
|
|
330
|
+
}
|
|
331
|
+
const kept = [];
|
|
332
|
+
let droppedGroups = 0;
|
|
333
|
+
let spent = 0;
|
|
334
|
+
for (const g of groups) {
|
|
335
|
+
const cost = g.join('\n').length + 1;
|
|
336
|
+
if (spent + cost > journeyBudget) {
|
|
337
|
+
droppedGroups++;
|
|
338
|
+
continue;
|
|
339
|
+
}
|
|
340
|
+
spent += cost;
|
|
341
|
+
kept.push(...g);
|
|
342
|
+
}
|
|
343
|
+
budget -= spent;
|
|
344
|
+
// Charge the selector LINE's own boilerplate (the long prefix and the
|
|
345
|
+
// "+N more" suffix), not just the selectors — otherwise the line overshoots by
|
|
346
|
+
// its own framing and the advertised cap is missed by ~100 chars.
|
|
347
|
+
const selectorFraming = selectorLine([], required.length).length;
|
|
348
|
+
const keptSelectors = [];
|
|
349
|
+
let selectorBudget = Math.max(0, budget - selectorFraming);
|
|
350
|
+
for (const sel of required) {
|
|
351
|
+
if (sel.length + 2 > selectorBudget)
|
|
352
|
+
break;
|
|
353
|
+
selectorBudget -= sel.length + 2;
|
|
354
|
+
keptSelectors.push(sel);
|
|
355
|
+
}
|
|
356
|
+
const omittedSelectors = required.length - keptSelectors.length;
|
|
357
|
+
const note = droppedGroups > 0
|
|
358
|
+
? [
|
|
359
|
+
` … ${droppedGroups} further journey(s) omitted to bound the prompt. The validator still ` +
|
|
360
|
+
`runs ALL of them — read ${USER_PATHS_FILE} for the complete contract.`,
|
|
361
|
+
]
|
|
362
|
+
: [];
|
|
363
|
+
const tail = out.map((l) => l.startsWith('REQUIRED DOM SELECTORS') && keptSelectors.length > 0
|
|
364
|
+
? selectorLine(keptSelectors, omittedSelectors)
|
|
365
|
+
: l);
|
|
366
|
+
return [...header, ...kept, ...note, ...tail].join('\n');
|
|
279
367
|
}
|
|
280
368
|
const DERIVE_PROMPT = `You are deriving USER-VALIDATION paths for a delivered software artifact.
|
|
281
369
|
A "user path" is a journey a real user takes through the artifact. Each path will be
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-paths.js","sourceRoot":"","sources":["../../src/delivery/user-paths.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"user-paths.js","sourceRoot":"","sources":["../../src/delivery/user-paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,19 @@
|
|
|
19
19
|
*/
|
|
20
20
|
export type GateTier = 'fast' | 'runtime' | 'integration' | 'deploy-dev' | 'final' | 'ci' | 'deploy-staging' | 'deploy-prod';
|
|
21
21
|
/** Cheap → expensive promotion order. */
|
|
22
|
+
/**
|
|
23
|
+
* Tiers deferred while a non-promotion-blocking rung is red: the ones that stand
|
|
24
|
+
* up real infrastructure per run — docker compose up/down, an ephemeral postgres,
|
|
25
|
+
* migrations. See the cost ceiling in runTieredLadder.
|
|
26
|
+
*
|
|
27
|
+
* `runtime` and `final` are deliberately NOT here, even though `final` drives a
|
|
28
|
+
* headless browser. They carry the two signals unblocking promotion existed to
|
|
29
|
+
* deliver — does the artifact EXECUTE, and does it BEHAVE on the user journeys —
|
|
30
|
+
* and deferring them would re-starve exactly what `blocksPromotion` unstarved,
|
|
31
|
+
* just for a different reason. The complaint this ceiling answers was a compose
|
|
32
|
+
* cycle every turn, not a browser run.
|
|
33
|
+
*/
|
|
34
|
+
export declare const COSTLY_TIERS: ReadonlySet<GateTier>;
|
|
22
35
|
export declare const TIER_ORDER: GateTier[];
|
|
23
36
|
export interface GateRung {
|
|
24
37
|
/** Stable identifier, e.g. 'build', 'typecheck', 'test', 'lint' */
|
|
@@ -97,6 +110,12 @@ export interface RungResult {
|
|
|
97
110
|
* testsActuallyRan.
|
|
98
111
|
*/
|
|
99
112
|
zeroTests?: boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Why a skipped rung was skipped. 'deferred-cost' means the cost ceiling held
|
|
115
|
+
* it back while a non-blocking rung is red — no gate FAILED, so reporting it as
|
|
116
|
+
* "earlier gate failed" would point the model at a problem that does not exist.
|
|
117
|
+
*/
|
|
118
|
+
skipReason?: 'earlier-failure' | 'deferred-cost';
|
|
100
119
|
}
|
|
101
120
|
export interface LadderResult {
|
|
102
121
|
/** True when every required rung passed */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifier-ladder.d.ts","sourceRoot":"","sources":["../../src/delivery/verifier-ladder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,SAAS,GACT,aAAa,GACb,YAAY,GACZ,OAAO,GACP,IAAI,GACJ,gBAAgB,GAChB,aAAa,CAAC;AAElB,yCAAyC;AACzC,eAAO,MAAM,UAAU,EAAE,QAAQ,EAShC,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,8EAA8E;AAC9E,wBAAgB,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAE/C;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE9E,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mEAAmE;IACnE,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"verifier-ladder.d.ts","sourceRoot":"","sources":["../../src/delivery/verifier-ladder.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,22 @@ import { existsSync, readFileSync, readdirSync, lstatSync } from 'fs';
|
|
|
15
15
|
import { join } from 'path';
|
|
16
16
|
import { synthesizeExecutionRung } from './execution-gate.js';
|
|
17
17
|
/** Cheap → expensive promotion order. */
|
|
18
|
+
/**
|
|
19
|
+
* Tiers deferred while a non-promotion-blocking rung is red: the ones that stand
|
|
20
|
+
* up real infrastructure per run — docker compose up/down, an ephemeral postgres,
|
|
21
|
+
* migrations. See the cost ceiling in runTieredLadder.
|
|
22
|
+
*
|
|
23
|
+
* `runtime` and `final` are deliberately NOT here, even though `final` drives a
|
|
24
|
+
* headless browser. They carry the two signals unblocking promotion existed to
|
|
25
|
+
* deliver — does the artifact EXECUTE, and does it BEHAVE on the user journeys —
|
|
26
|
+
* and deferring them would re-starve exactly what `blocksPromotion` unstarved,
|
|
27
|
+
* just for a different reason. The complaint this ceiling answers was a compose
|
|
28
|
+
* cycle every turn, not a browser run.
|
|
29
|
+
*/
|
|
30
|
+
export const COSTLY_TIERS = new Set([
|
|
31
|
+
'integration',
|
|
32
|
+
'deploy-dev',
|
|
33
|
+
]);
|
|
18
34
|
export const TIER_ORDER = [
|
|
19
35
|
'fast',
|
|
20
36
|
'runtime',
|
|
@@ -695,11 +711,36 @@ export function formatFeedback(results, rungs) {
|
|
|
695
711
|
const requiredIds = new Set(rungs.filter((r) => r.required).map((r) => r.id));
|
|
696
712
|
const lines = ['Gate results:'];
|
|
697
713
|
for (const r of results) {
|
|
698
|
-
const status = r.skipped
|
|
714
|
+
const status = r.skipped
|
|
715
|
+
? r.skipReason === 'deferred-cost'
|
|
716
|
+
? 'DEFERRED (cheap gates first — will run once they pass)'
|
|
717
|
+
: 'SKIPPED (earlier gate failed)'
|
|
718
|
+
: r.passed
|
|
719
|
+
? 'PASS'
|
|
720
|
+
: 'FAIL';
|
|
699
721
|
const optional = requiredIds.has(r.id) ? '' : ' (optional)';
|
|
700
722
|
lines.push(`- ${r.name}${optional}: ${status}`);
|
|
701
723
|
}
|
|
702
|
-
|
|
724
|
+
// Which failure gets the one detail block matters. Results arrive in TIER_ORDER,
|
|
725
|
+
// so the fast-tier synthetic self-gate always won the slot — and once
|
|
726
|
+
// blocksPromotion let the runtime/final gates actually RUN behind a red
|
|
727
|
+
// self-gate, they ran and their output was still never shown. The model was
|
|
728
|
+
// told "fix this gate first" about a model-authored acceptance script that is
|
|
729
|
+
// SUPPOSED to stay red until the mission is done, while the real build/execution
|
|
730
|
+
// failure sat one line above with no tail.
|
|
731
|
+
//
|
|
732
|
+
// So prefer a failure that blocks promotion — a real, objective gate the model
|
|
733
|
+
// can actually act on this turn. Fall back to the synthetic one when that is all
|
|
734
|
+
// there is, since then it genuinely is the only thing to work toward.
|
|
735
|
+
const blockingIds = new Set(rungs.filter((r) => r.required && r.blocksPromotion !== false).map((r) => r.id));
|
|
736
|
+
const failedRequired = results.filter((r) => !r.passed && !r.skipped && requiredIds.has(r.id));
|
|
737
|
+
const firstRequiredFailure = failedRequired.find((r) => blockingIds.has(r.id) && r.outputTail) ??
|
|
738
|
+
// Never drop the only diagnostic we have: preferring a TAILLESS blocking rung
|
|
739
|
+
// over a non-blocking one that actually has output would print no failure
|
|
740
|
+
// detail at all — strictly worse than before this preference existed.
|
|
741
|
+
failedRequired.find((r) => r.outputTail) ??
|
|
742
|
+
failedRequired.find((r) => blockingIds.has(r.id)) ??
|
|
743
|
+
failedRequired[0];
|
|
703
744
|
if (firstRequiredFailure && firstRequiredFailure.outputTail) {
|
|
704
745
|
lines.push('');
|
|
705
746
|
lines.push(`Fix this gate first — ${firstRequiredFailure.name} output:`);
|
|
@@ -707,6 +748,15 @@ export function formatFeedback(results, rungs) {
|
|
|
707
748
|
lines.push(firstRequiredFailure.outputTail);
|
|
708
749
|
lines.push('```');
|
|
709
750
|
}
|
|
751
|
+
else if (firstRequiredFailure) {
|
|
752
|
+
// A REQUIRED gate failed but produced no output (a script that exits non-zero
|
|
753
|
+
// silently). Say exactly that — the branch below would otherwise tell the
|
|
754
|
+
// model this blocking gate is "OPTIONAL … do not prioritize it", which is the
|
|
755
|
+
// opposite of true and the inverse of the bait that branch exists to prevent.
|
|
756
|
+
lines.push('');
|
|
757
|
+
lines.push(`Fix this gate first — ${firstRequiredFailure.name} failed with no output ` +
|
|
758
|
+
`(exit ${firstRequiredFailure.exitCode}). Run it yourself to see why.`);
|
|
759
|
+
}
|
|
710
760
|
else {
|
|
711
761
|
// Optional-only failures must NOT carry the "fix this first" imperative or
|
|
712
762
|
// the failure tail: on an otherwise-green baseline the tail baits the model
|
|
@@ -714,7 +764,9 @@ export function formatFeedback(results, rungs) {
|
|
|
714
764
|
// goal (observed live 2026-07-10: 13/13 writes against an optional lint
|
|
715
765
|
// rung whose eslint plugin crash the agent could never fix, zero writes
|
|
716
766
|
// toward the epic goal).
|
|
717
|
-
|
|
767
|
+
// Scoped to genuinely optional rungs — `firstRequiredFailure` being unset is
|
|
768
|
+
// now the only way to reach here, so this can no longer mislabel a required one.
|
|
769
|
+
const firstOptionalFailure = results.find((r) => !r.passed && !r.skipped && !requiredIds.has(r.id));
|
|
718
770
|
if (firstOptionalFailure) {
|
|
719
771
|
lines.push('');
|
|
720
772
|
lines.push(`Note: ${firstOptionalFailure.name} is failing but is OPTIONAL — it does not block ` +
|
|
@@ -850,7 +902,7 @@ export function mergeRedetectedRungs(current, detected, allow) {
|
|
|
850
902
|
const added = detected.filter((r) => !have.has(r.id) && allowed(r));
|
|
851
903
|
return added.length > 0 ? [...current, ...added] : current;
|
|
852
904
|
}
|
|
853
|
-
const skippedRung = (rung) => ({
|
|
905
|
+
const skippedRung = (rung, reason) => ({
|
|
854
906
|
id: rung.id,
|
|
855
907
|
name: rung.name,
|
|
856
908
|
passed: false,
|
|
@@ -858,6 +910,7 @@ const skippedRung = (rung) => ({
|
|
|
858
910
|
exitCode: null,
|
|
859
911
|
durationMs: 0,
|
|
860
912
|
outputTail: '',
|
|
913
|
+
...(reason ? { skipReason: reason } : {}),
|
|
861
914
|
});
|
|
862
915
|
/**
|
|
863
916
|
* Cheap-first tiered ladder. Runs the cheapest tier first and only promotes to
|
|
@@ -891,14 +944,18 @@ export async function runTieredLadder(rungs, projectRoot, options = {}) {
|
|
|
891
944
|
// Rungs that were eligible to run (tier <= maxTier); only these gate delivery.
|
|
892
945
|
const inScope = [];
|
|
893
946
|
let promotionStopped = false;
|
|
947
|
+
/** A rung failed that is required but deliberately does not stop promotion. */
|
|
948
|
+
let nonBlockingFailed = false;
|
|
894
949
|
for (const tier of TIER_ORDER) {
|
|
895
950
|
const tierRungs = byTier.get(tier);
|
|
896
951
|
if (!tierRungs || tierRungs.length === 0)
|
|
897
952
|
continue;
|
|
898
953
|
// 'final' is an epilogue tier: always in scope when its rung was
|
|
899
|
-
// synthesized (config-gated upstream), regardless of the
|
|
900
|
-
// it must not drag integration/deploy-dev into scope
|
|
901
|
-
//
|
|
954
|
+
// synthesized (config-gated upstream), regardless of the maxTier ceiling —
|
|
955
|
+
// it must not drag integration/deploy-dev into scope. It runs when no
|
|
956
|
+
// PROMOTION-BLOCKING rung has failed; the cost ceiling can leave
|
|
957
|
+
// integration/deploy-dev deferred-not-passed while final still runs, which
|
|
958
|
+
// is intended (it carries the behavioural signal, they carry infrastructure).
|
|
902
959
|
const eligible = tier === 'final' || TIER_ORDER.indexOf(tier) <= maxIdx;
|
|
903
960
|
if (!eligible) {
|
|
904
961
|
// Above maxTier — verified remotely, never run locally.
|
|
@@ -913,6 +970,26 @@ export async function runTieredLadder(rungs, projectRoot, options = {}) {
|
|
|
913
970
|
results.push(skippedRung(rung));
|
|
914
971
|
continue;
|
|
915
972
|
}
|
|
973
|
+
// COST CEILING while a non-blocking rung is red.
|
|
974
|
+
//
|
|
975
|
+
// blocksPromotion exists so a red synthetic self-gate stops starving the real
|
|
976
|
+
// gates. But "don't starve" should not mean "pay for everything, every turn":
|
|
977
|
+
// the self-gate is raised precisely when the project's own gates are green and
|
|
978
|
+
// is REQUIRED to stay red until the mission is done, so without a ceiling every
|
|
979
|
+
// turn of a long run would bring a docker-compose stack up and down
|
|
980
|
+
// (integration/deploy-dev) and drive a headless browser + vision model (final).
|
|
981
|
+
//
|
|
982
|
+
// runtime is the tier that carries the feedback the unblocking was for — does
|
|
983
|
+
// the artifact actually execute — and it is cheap. So while a non-blocking rung
|
|
984
|
+
// is red, run up to runtime and defer the expensive tiers until the ladder is
|
|
985
|
+
// otherwise clean. Escape hatch for anyone who wants the full ladder anyway.
|
|
986
|
+
if (nonBlockingFailed &&
|
|
987
|
+
COSTLY_TIERS.has(tier) &&
|
|
988
|
+
process.env.UAP_LADDER_NO_COST_CEILING !== '1') {
|
|
989
|
+
for (const rung of tierRungs)
|
|
990
|
+
results.push(skippedRung(rung, 'deferred-cost'));
|
|
991
|
+
continue;
|
|
992
|
+
}
|
|
916
993
|
const useRunner = tier === 'deploy-dev' && options.deployDevRunner ? options.deployDevRunner
|
|
917
994
|
: tier === 'final' && options.userValidationRunner ? options.userValidationRunner
|
|
918
995
|
: runner;
|
|
@@ -922,12 +999,19 @@ export async function runTieredLadder(rungs, projectRoot, options = {}) {
|
|
|
922
999
|
// rung (blocksPromotion: false) still fails the ladder — it just does not
|
|
923
1000
|
// hide the real gates in later tiers behind it.
|
|
924
1001
|
if (!tierResult.passed) {
|
|
925
|
-
|
|
1002
|
+
let blockingFailed = false;
|
|
1003
|
+
for (const r of tierResult.results) {
|
|
926
1004
|
if (r.passed || r.skipped)
|
|
927
|
-
|
|
1005
|
+
continue;
|
|
928
1006
|
const rung = tierRungs.find((g) => g.id === r.id);
|
|
929
|
-
|
|
930
|
-
|
|
1007
|
+
const required = rung?.required ?? true;
|
|
1008
|
+
if (!required)
|
|
1009
|
+
continue;
|
|
1010
|
+
if (rung?.blocksPromotion === false)
|
|
1011
|
+
nonBlockingFailed = true;
|
|
1012
|
+
else
|
|
1013
|
+
blockingFailed = true;
|
|
1014
|
+
}
|
|
931
1015
|
if (blockingFailed)
|
|
932
1016
|
promotionStopped = true;
|
|
933
1017
|
}
|