@miller-tech/uap 1.213.0 → 1.214.1
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 +2 -0
- package/dist/bin/cli.js.map +1 -1
- package/dist/cli/deliver.d.ts.map +1 -1
- package/dist/cli/deliver.js +107 -4
- package/dist/cli/deliver.js.map +1 -1
- package/dist/cli/verify.d.ts +5 -0
- package/dist/cli/verify.d.ts.map +1 -1
- package/dist/cli/verify.js +50 -1
- package/dist/cli/verify.js.map +1 -1
- package/dist/cli/wizard-config.d.ts.map +1 -1
- package/dist/cli/wizard-config.js +26 -1
- package/dist/cli/wizard-config.js.map +1 -1
- package/dist/delivery/await-run.d.ts +47 -0
- package/dist/delivery/await-run.d.ts.map +1 -1
- package/dist/delivery/await-run.js +392 -2
- package/dist/delivery/await-run.js.map +1 -1
- package/dist/delivery/capability-profile.d.ts +124 -0
- package/dist/delivery/capability-profile.d.ts.map +1 -0
- package/dist/delivery/capability-profile.js +392 -0
- package/dist/delivery/capability-profile.js.map +1 -0
- package/dist/delivery/convergence-loop.d.ts.map +1 -1
- package/dist/delivery/convergence-loop.js +21 -1
- package/dist/delivery/convergence-loop.js.map +1 -1
- package/dist/delivery/execution-gate.d.ts +29 -0
- package/dist/delivery/execution-gate.d.ts.map +1 -1
- package/dist/delivery/execution-gate.js +237 -9
- package/dist/delivery/execution-gate.js.map +1 -1
- package/dist/delivery/mission-acceptance.d.ts +4 -0
- package/dist/delivery/mission-acceptance.d.ts.map +1 -1
- package/dist/delivery/mission-acceptance.js +35 -1
- package/dist/delivery/mission-acceptance.js.map +1 -1
- package/dist/delivery/run-state.d.ts +31 -0
- package/dist/delivery/run-state.d.ts.map +1 -1
- package/dist/delivery/run-state.js +49 -0
- package/dist/delivery/run-state.js.map +1 -1
- package/dist/mcp-router/tools/deliver.d.ts.map +1 -1
- package/dist/mcp-router/tools/deliver.js +5 -2
- package/dist/mcp-router/tools/deliver.js.map +1 -1
- package/package.json +1 -1
- package/scripts/lib/llama-upstream.sh +64 -16
- package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -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
- package/tools/agents/scripts/confidence_escalation.py +57 -0
- package/tools/agents/tests/test_confidence_escalation.py +140 -2
|
@@ -40,9 +40,11 @@
|
|
|
40
40
|
* mission in flight. The lock file already carries an ISO stamp after `|`; using
|
|
41
41
|
* it turns "is that pid alive" into "is that same holder still there".
|
|
42
42
|
*/
|
|
43
|
-
import { existsSync, readFileSync, readdirSync, statSync } from 'fs';
|
|
43
|
+
import { existsSync, readFileSync, readdirSync, statSync, writeFileSync, mkdirSync, renameSync, unlinkSync, rmSync } from 'fs';
|
|
44
44
|
import { join, resolve } from 'path';
|
|
45
|
-
import {
|
|
45
|
+
import { homedir } from 'os';
|
|
46
|
+
import { createHash } from 'crypto';
|
|
47
|
+
import { isValidRunId, listRuns } from './run-state.js';
|
|
46
48
|
import { heartbeatAgeS, wedgeTimeoutS } from './heartbeat.js';
|
|
47
49
|
/** Default poll interval — fast enough to feel immediate, idle enough to ignore. */
|
|
48
50
|
const DEFAULT_POLL_MS = 2000;
|
|
@@ -63,6 +65,20 @@ const DEFAULT_POLL_MS = 2000;
|
|
|
63
65
|
* the first attempt at this fix and it punished the caller that was not broken.
|
|
64
66
|
*/
|
|
65
67
|
export const FOLLOW_CLIENT_POLL_SEC = 45;
|
|
68
|
+
/**
|
|
69
|
+
* How long a caller should WAIT between follows, once the first has answered.
|
|
70
|
+
*
|
|
71
|
+
* Distinct from FOLLOW_CLIENT_POLL_SEC, which bounds how long one call may
|
|
72
|
+
* block. Nothing bounded the gap BETWEEN calls, so an LLM caller polled as fast
|
|
73
|
+
* as it could think — measured live 2026-08-20: 19 follows in 36 minutes, one
|
|
74
|
+
* roughly every 115s, against a mission whose turns take 220-600s. Most polls
|
|
75
|
+
* therefore could not have had news, and each cost a model turn.
|
|
76
|
+
*
|
|
77
|
+
* Sized against the observed turn floor (~220s): a poll interval below one turn
|
|
78
|
+
* is guaranteed to return "no change", and on a single-slot backend it also
|
|
79
|
+
* steals the slot that would have produced the change.
|
|
80
|
+
*/
|
|
81
|
+
export const RECOMMENDED_BACKOFF_SEC = 240;
|
|
66
82
|
/**
|
|
67
83
|
* The advancement half of a follow tick, appended to the elapsed clock.
|
|
68
84
|
*
|
|
@@ -89,6 +105,321 @@ export function followTickDetail(progress, previousTurn) {
|
|
|
89
105
|
bits.push(`active ${progress.heartbeatAgeSec}s ago`);
|
|
90
106
|
return bits.length ? ` · ${bits.join(', ')}` : '';
|
|
91
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Where poll journals live: OUTSIDE the project tree, per user.
|
|
110
|
+
*
|
|
111
|
+
* WHY NOT IN `.uap/`
|
|
112
|
+
* The journal's whole job is to tell a follow whether it has already sent the
|
|
113
|
+
* do-not-kill briefing. Keeping it inside the project put that decision in a
|
|
114
|
+
* directory the SUPERVISED GENERATOR can write — the one actor with a motive —
|
|
115
|
+
* and every mitigation was a patch on a fresh vector:
|
|
116
|
+
*
|
|
117
|
+
* - plant the file -> suppress the briefing on a real first poll
|
|
118
|
+
* - symlink the file -> overwrite an arbitrary file (final path)
|
|
119
|
+
* - symlink the temp file -> same, through the write that precedes rename
|
|
120
|
+
* - symlink the DIRECTORY -> prune became an arbitrary `*.json` deleter
|
|
121
|
+
* (measured: 39 unrelated files destroyed)
|
|
122
|
+
*
|
|
123
|
+
* Three of those were found only by re-testing a fix that looked complete. The
|
|
124
|
+
* class does not close by patching vectors; it closes by moving the file. Deliver
|
|
125
|
+
* confines a mission's writes to its project root, so a per-user cache directory
|
|
126
|
+
* is outside what the generator may write at all — and the same-user processes
|
|
127
|
+
* that CAN write it are already inside the harness's trust boundary.
|
|
128
|
+
*
|
|
129
|
+
* Follows the convention already used for recipe/adaptation signals.
|
|
130
|
+
* `UAP_FOLLOW_POLL_DIR` overrides the base, for tests.
|
|
131
|
+
*/
|
|
132
|
+
/** The journal base. ONE definition — it was duplicated across two functions. */
|
|
133
|
+
function pollJournalBase() {
|
|
134
|
+
return process.env.UAP_FOLLOW_POLL_DIR || join(homedir(), '.cache', 'uap', 'follow-polls');
|
|
135
|
+
}
|
|
136
|
+
/** A project key: exactly the 16 hex chars pollJournalDir produces. */
|
|
137
|
+
const PROJECT_KEY_RE = /^[0-9a-f]{16}$/;
|
|
138
|
+
function pollJournalDir(projectRoot) {
|
|
139
|
+
const base = pollJournalBase();
|
|
140
|
+
// Per project, so two checkouts cannot collide on a shared runId. The path is
|
|
141
|
+
// a hash rather than the root itself: a project path can contain anything.
|
|
142
|
+
const key = createHash('sha256').update(resolve(projectRoot)).digest('hex').slice(0, 16);
|
|
143
|
+
return join(base, key);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* `null` for any runId that must not become a path component.
|
|
147
|
+
*
|
|
148
|
+
* The runId reaching here is the `runId` FIELD of a state.json — repo-resident
|
|
149
|
+
* content the project already treats as untrusted elsewhere ("the run-state file
|
|
150
|
+
* is untrusted (repo content can plant values)"). A planted `../../../…` would
|
|
151
|
+
* otherwise steer both the read and the write. Same guard `isStopRequested`
|
|
152
|
+
* applies to the same value for the same reason. Retained as depth even though
|
|
153
|
+
* the directory is no longer generator-writable.
|
|
154
|
+
*/
|
|
155
|
+
function pollJournalPath(projectRoot, runId) {
|
|
156
|
+
if (!isValidRunId(runId))
|
|
157
|
+
return null;
|
|
158
|
+
return join(pollJournalDir(projectRoot), `${runId}.json`);
|
|
159
|
+
}
|
|
160
|
+
/** Prune only once the directory is worth walking. */
|
|
161
|
+
const MAX_POLL_JOURNALS = 32;
|
|
162
|
+
/** Cap on PROJECT directories under the journal base. See prunePollJournalProjects. */
|
|
163
|
+
const MAX_POLL_JOURNAL_PROJECTS = 64;
|
|
164
|
+
/** The ONLY shape a phase label may have to be echoed back: "3/7". */
|
|
165
|
+
const PHASE_LABEL_RE = /^\d{1,4}\/\d{1,4}$/;
|
|
166
|
+
/** A finite, in-range number, or undefined. Never NaN, never Infinity. */
|
|
167
|
+
function safeCount(v, max) {
|
|
168
|
+
const n = Number(v);
|
|
169
|
+
return Number.isFinite(n) && n >= 0 ? Math.min(Math.floor(n), max) : undefined;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Sanitize the previous projection read back off disk.
|
|
173
|
+
*
|
|
174
|
+
* `last.phase` is INTERPOLATED into `reason`, which the MCP tool returns
|
|
175
|
+
* verbatim to the calling model — so this file is an input to a supervising
|
|
176
|
+
* agent's prompt, and it lives in the tree the supervised generator can write.
|
|
177
|
+
* Left raw it carried both a prompt-injection channel and an unbounded one:
|
|
178
|
+
* measured on this branch before the fix, a planted phase produced a 50,217-char
|
|
179
|
+
* reply containing "IGNORE ALL PREVIOUS INSTRUCTIONS" — from the one function
|
|
180
|
+
* whose entire purpose is to make the reply SMALLER.
|
|
181
|
+
*
|
|
182
|
+
* Same stance the sibling `count` already took, extended to every field.
|
|
183
|
+
*/
|
|
184
|
+
function sanitizeLast(raw) {
|
|
185
|
+
if (typeof raw !== 'object' || raw === null)
|
|
186
|
+
return undefined;
|
|
187
|
+
const r = raw;
|
|
188
|
+
// SHAPE, not just length. A phase label is "3/7" and nothing else, so match
|
|
189
|
+
// that and drop anything else outright — a 32-character budget still leaves
|
|
190
|
+
// 32 attacker-chosen characters in a supervising agent's prompt, and
|
|
191
|
+
// "IGNORE ALL PREVIOUS INSTRUCTIONS" is exactly 32 characters long.
|
|
192
|
+
const phase = typeof r.phase === 'string' && PHASE_LABEL_RE.test(r.phase) ? r.phase : undefined;
|
|
193
|
+
return {
|
|
194
|
+
turn: safeCount(r.turn, 1_000_000),
|
|
195
|
+
phase,
|
|
196
|
+
phasesPlanned: safeCount(r.phasesPlanned, 10_000),
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
/** Fail-soft by contract: a journal that cannot be read is a first poll. */
|
|
200
|
+
function readPollJournal(projectRoot, runId, runCreatedAt) {
|
|
201
|
+
try {
|
|
202
|
+
const path = pollJournalPath(projectRoot, runId);
|
|
203
|
+
if (!path)
|
|
204
|
+
return { count: 0 };
|
|
205
|
+
const raw = JSON.parse(readFileSync(path, 'utf-8'));
|
|
206
|
+
// Bind the journal to the RUN. `count > 0` is what suppresses the
|
|
207
|
+
// do-not-kill briefing, and that text is load-bearing — it is what stops a
|
|
208
|
+
// caller killing a healthy run. A journal that does not belong to this run
|
|
209
|
+
// (planted, or left over from a recycled runId) must not be able to skip it.
|
|
210
|
+
// FAIL CLOSED on a run with no identity. `readState` validates instruction,
|
|
211
|
+
// status, runId, updatedAt and phases but NOT createdAt, so a state file with
|
|
212
|
+
// createdAt removed still loads as a live run — and an `undefined &&` guard
|
|
213
|
+
// here skipped the binding entirely for it, restoring the exact suppression
|
|
214
|
+
// this check exists to prevent (measured: briefing gone on poll 1). No
|
|
215
|
+
// identity to bind to means the journal is not trusted, full stop.
|
|
216
|
+
if (raw?.createdAt !== runCreatedAt || runCreatedAt === undefined)
|
|
217
|
+
return { count: 0 };
|
|
218
|
+
return { count: safeCount(raw?.count, 10_000) ?? 0, last: sanitizeLast(raw?.last) };
|
|
219
|
+
}
|
|
220
|
+
catch {
|
|
221
|
+
return { count: 0 };
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Fail-soft: a journal we cannot write costs verbosity, never correctness.
|
|
226
|
+
*
|
|
227
|
+
* Writes via tmp + rename, which REPLACES a symlink at the destination rather
|
|
228
|
+
* than following it — the pattern `saveRunState` already uses, and this was the
|
|
229
|
+
* only writer in the area that did not. Verified before the fix: a symlink
|
|
230
|
+
* planted at the journal path let this overwrite an arbitrary file outside the
|
|
231
|
+
* project root with attacker-shaped JSON, destroying its contents.
|
|
232
|
+
*/
|
|
233
|
+
function writePollJournal(projectRoot, runId, j, runCreatedAt) {
|
|
234
|
+
try {
|
|
235
|
+
const path = pollJournalPath(projectRoot, runId);
|
|
236
|
+
if (!path)
|
|
237
|
+
return;
|
|
238
|
+
mkdirSync(pollJournalDir(projectRoot), { recursive: true });
|
|
239
|
+
// The TEMP path is attacker-plantable too, and it is the one that gets
|
|
240
|
+
// written. tmp+rename alone only protects the FINAL path (rename replaces a
|
|
241
|
+
// symlink rather than following it) — a link planted at `<path>.tmp` still
|
|
242
|
+
// had writeFileSync follow it and destroy the target. Reproduced: a secret
|
|
243
|
+
// outside the project root was overwritten with journal JSON.
|
|
244
|
+
//
|
|
245
|
+
// `wx` is O_CREAT|O_EXCL, which FAILS on an existing path instead of
|
|
246
|
+
// following it — a symlink can therefore never be written through. Unlink
|
|
247
|
+
// first to clear a stale temp (unlink removes the LINK, never its target);
|
|
248
|
+
// if the attacker re-plants between the two, the open fails and the whole
|
|
249
|
+
// write is skipped, which costs a verbose reply and nothing else.
|
|
250
|
+
// pid-suffixed so two concurrent follows do not fight over one temp name.
|
|
251
|
+
const tmp = `${path}.${process.pid}.tmp`;
|
|
252
|
+
try {
|
|
253
|
+
unlinkSync(tmp);
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
/* absent — the normal case */
|
|
257
|
+
}
|
|
258
|
+
writeFileSync(tmp, JSON.stringify({ ...j, createdAt: runCreatedAt }), { flag: 'wx', mode: 0o600 });
|
|
259
|
+
renameSync(tmp, path);
|
|
260
|
+
prunePollJournals(projectRoot);
|
|
261
|
+
prunePollJournalProjects();
|
|
262
|
+
}
|
|
263
|
+
catch {
|
|
264
|
+
/* read-only tree, races — the reply is still correct, just longer */
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Drop journals whose run is gone. Fail-soft, bounded, and cheap.
|
|
269
|
+
*
|
|
270
|
+
* One tiny file per followed run, written forever, with nothing anywhere
|
|
271
|
+
* removing them — the sibling `deliver-runs/` directory in the measured project
|
|
272
|
+
* had already reached 26 entries. A journal outlives its usefulness the moment
|
|
273
|
+
* its run is no longer listed, so `listRuns` IS the retention rule and no
|
|
274
|
+
* separate policy is needed.
|
|
275
|
+
*/
|
|
276
|
+
function prunePollJournals(projectRoot) {
|
|
277
|
+
try {
|
|
278
|
+
const dir = pollJournalDir(projectRoot);
|
|
279
|
+
const files = readdirSync(dir);
|
|
280
|
+
if (files.length <= MAX_POLL_JOURNALS)
|
|
281
|
+
return;
|
|
282
|
+
// Retention is by RUN LIVENESS, not by "does a run directory still exist".
|
|
283
|
+
// `listRuns` returns every run that ever parsed — nothing removes
|
|
284
|
+
// `deliver-runs/<id>/` — so keying on mere listing reaped nothing: measured
|
|
285
|
+
// 0 of 40 journals for finished runs, and the doc comment's own premise (a
|
|
286
|
+
// deliver-runs directory that had reached 26 entries) is exactly why.
|
|
287
|
+
// A journal is only useful while its run can still be followed.
|
|
288
|
+
const live = new Set(listRuns(projectRoot)
|
|
289
|
+
.filter((r) => r.status === 'running')
|
|
290
|
+
.map((r) => r.runId));
|
|
291
|
+
for (const f of files) {
|
|
292
|
+
// Stale temps are reaped too. They are left by a write that died between
|
|
293
|
+
// create and rename, are skipped by the `.json` filter, and still counted
|
|
294
|
+
// toward the threshold above — so they accumulated forever AND made the
|
|
295
|
+
// prune fire earlier and earlier.
|
|
296
|
+
const isTemp = f.includes('.json.') && f.endsWith('.tmp');
|
|
297
|
+
if (!isTemp) {
|
|
298
|
+
if (!f.endsWith('.json'))
|
|
299
|
+
continue;
|
|
300
|
+
if (live.has(f.slice(0, -'.json'.length)))
|
|
301
|
+
continue;
|
|
302
|
+
}
|
|
303
|
+
try {
|
|
304
|
+
unlinkSync(join(dir, f));
|
|
305
|
+
}
|
|
306
|
+
catch {
|
|
307
|
+
/* raced with another follow */
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
catch {
|
|
312
|
+
/* housekeeping — never let it affect the reply */
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Bound the number of PROJECT directories under the journal base.
|
|
317
|
+
*
|
|
318
|
+
* The per-project prune above never removes a directory, so every project ever
|
|
319
|
+
* followed left one behind forever — and ephemeral roots (CI checkouts, test
|
|
320
|
+
* fixtures) make that unbounded in the user's home. Measured while building
|
|
321
|
+
* this: one test-suite run left 129 directories in `~/.cache/uap/follow-polls`.
|
|
322
|
+
*
|
|
323
|
+
* A journal is pure optimisation — losing one costs exactly one verbose reply —
|
|
324
|
+
* so evicting the oldest is safe, and cheaper than tracking which roots still
|
|
325
|
+
* exist (the directory name is a one-way hash by design).
|
|
326
|
+
*/
|
|
327
|
+
function prunePollJournalProjects() {
|
|
328
|
+
try {
|
|
329
|
+
const base = pollJournalBase();
|
|
330
|
+
const entries = readdirSync(base);
|
|
331
|
+
if (entries.length <= MAX_POLL_JOURNAL_PROJECTS)
|
|
332
|
+
return;
|
|
333
|
+
const byAge = entries
|
|
334
|
+
// ONLY entries this module could have created. `UAP_FOLLOW_POLL_DIR` is
|
|
335
|
+
// operator-supplied, and this is a RECURSIVE delete: aimed at a directory
|
|
336
|
+
// holding anything else (`~/.cache/uap` itself holds qdrant_data) an
|
|
337
|
+
// unconstrained sweep would silently destroy unrelated trees. A project
|
|
338
|
+
// key is exactly 16 hex characters — nothing else is ours to remove.
|
|
339
|
+
.filter((name) => PROJECT_KEY_RE.test(name))
|
|
340
|
+
.map((name) => {
|
|
341
|
+
try {
|
|
342
|
+
return { name, at: statSync(join(base, name)).mtimeMs };
|
|
343
|
+
}
|
|
344
|
+
catch {
|
|
345
|
+
return null;
|
|
346
|
+
}
|
|
347
|
+
})
|
|
348
|
+
.filter((e) => e !== null)
|
|
349
|
+
.sort((a, b) => a.at - b.at);
|
|
350
|
+
for (const { name } of byAge.slice(0, byAge.length - MAX_POLL_JOURNAL_PROJECTS)) {
|
|
351
|
+
try {
|
|
352
|
+
rmSync(join(base, name), { recursive: true, force: true });
|
|
353
|
+
}
|
|
354
|
+
catch {
|
|
355
|
+
/* raced, or in use */
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
catch {
|
|
360
|
+
/* housekeeping — never let it affect the reply */
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* The changed facts between two polls, as a sentence — or null when nothing a
|
|
365
|
+
* caller could act on moved.
|
|
366
|
+
*
|
|
367
|
+
* `null` is itself the answer to "is it stuck?", and is reported as such rather
|
|
368
|
+
* than hidden: a poll that shows no movement AND a healthy heartbeat is the
|
|
369
|
+
* signature of a slow turn, which is the case the caller most often misreads.
|
|
370
|
+
*/
|
|
371
|
+
/**
|
|
372
|
+
* Is `next` further along than `prev`? Both look like "3/7".
|
|
373
|
+
*
|
|
374
|
+
* Unparseable either side answers TRUE — an unrecognised label is not evidence
|
|
375
|
+
* of going backwards, and suppressing a real advance is the worse error.
|
|
376
|
+
*/
|
|
377
|
+
function phaseAdvanced(prev, next) {
|
|
378
|
+
const p = Number(prev.split('/')[0]);
|
|
379
|
+
const n = Number(next.split('/')[0]);
|
|
380
|
+
if (!Number.isFinite(p) || !Number.isFinite(n))
|
|
381
|
+
return true;
|
|
382
|
+
return n > p;
|
|
383
|
+
}
|
|
384
|
+
export function progressDelta(prev, now) {
|
|
385
|
+
if (!prev)
|
|
386
|
+
return null;
|
|
387
|
+
const bits = [];
|
|
388
|
+
if (now.turn !== undefined && prev.turn !== undefined && now.turn > prev.turn) {
|
|
389
|
+
bits.push(`turn ${prev.turn} → ${now.turn}`);
|
|
390
|
+
}
|
|
391
|
+
else if (now.turn !== undefined && prev.turn === undefined) {
|
|
392
|
+
bits.push(`reached turn ${now.turn}`);
|
|
393
|
+
}
|
|
394
|
+
// Forward only, same guard the turn counter gets above and for the same
|
|
395
|
+
// reason: a reclaimed or handed-over run can re-report a LOWER phase, and
|
|
396
|
+
// "phase 4/7 → 2/7" is not movement, it is a different mission answering.
|
|
397
|
+
if (now.phase && prev.phase && now.phase !== prev.phase && phaseAdvanced(prev.phase, now.phase)) {
|
|
398
|
+
bits.push(`phase ${prev.phase} → ${now.phase}`);
|
|
399
|
+
}
|
|
400
|
+
// Two distinct pieces of plan news, and only these two.
|
|
401
|
+
//
|
|
402
|
+
// `phasesPlanned` is published ONLY while no turn exists — a state that
|
|
403
|
+
// RECURS, because deliver clears the checkpoint after every accepted epic. So
|
|
404
|
+
// the field oscillates 7 → undefined → 7 through a 7-epic run, and a bare
|
|
405
|
+
// `> (prev.phasesPlanned ?? 0)` reported the SAME unchanged plan as movement
|
|
406
|
+
// at every boundary.
|
|
407
|
+
//
|
|
408
|
+
// - APPEARED: the planner finished and there is still no turn anywhere. That
|
|
409
|
+
// is the "planning is over" signal, and it is real news exactly once —
|
|
410
|
+
// `prev.turn === undefined` is what separates it from an epic boundary,
|
|
411
|
+
// where earlier polls have already seen turns.
|
|
412
|
+
// - GREW: a plan that got bigger, against a previous poll that actually saw
|
|
413
|
+
// one. Needs prev to be known, or "absent" reads as zero.
|
|
414
|
+
const planAppeared = now.phasesPlanned !== undefined && prev.phasesPlanned === undefined && prev.turn === undefined;
|
|
415
|
+
const planGrew = now.phasesPlanned !== undefined &&
|
|
416
|
+
prev.phasesPlanned !== undefined &&
|
|
417
|
+
now.phasesPlanned > prev.phasesPlanned;
|
|
418
|
+
if (now.phasesPlanned && (planAppeared || planGrew)) {
|
|
419
|
+
bits.push(`planned ${now.phasesPlanned} phases`);
|
|
420
|
+
}
|
|
421
|
+
return bits.length ? bits.join(', ') : null;
|
|
422
|
+
}
|
|
92
423
|
function describeProgress(projectRoot, run) {
|
|
93
424
|
const ageS = heartbeatAgeS(projectRoot);
|
|
94
425
|
const wedgeAfterSec = wedgeTimeoutS();
|
|
@@ -445,6 +776,65 @@ export async function awaitInFlightDeliver(projectRoot, opts) {
|
|
|
445
776
|
// wrong precisely when it mattered. Derive it from the heartbeat instead,
|
|
446
777
|
// and hand back the numbers so a caller can watch them move.
|
|
447
778
|
const evidence = progressSentence(progress);
|
|
779
|
+
// Repeat-poll accounting. Keyed by runId: an unattributed run has no
|
|
780
|
+
// stable identity to journal against, so it keeps the full briefing —
|
|
781
|
+
// the conservative direction, since that is also the case where the
|
|
782
|
+
// caller is most likely looking at the wrong mission.
|
|
783
|
+
const journalId = attributed ? run?.runId : undefined;
|
|
784
|
+
const journal = journalId ? readPollJournal(projectRoot, journalId, run?.createdAt) : { count: 0 };
|
|
785
|
+
const repeat = journal.count > 0;
|
|
786
|
+
const delta = repeat ? progressDelta(journal.last, progress) : null;
|
|
787
|
+
if (journalId) {
|
|
788
|
+
writePollJournal(projectRoot, journalId, {
|
|
789
|
+
count: journal.count + 1,
|
|
790
|
+
last: {
|
|
791
|
+
turn: progress.turn,
|
|
792
|
+
phase: progress.phase,
|
|
793
|
+
phasesPlanned: progress.phasesPlanned,
|
|
794
|
+
},
|
|
795
|
+
}, run?.createdAt);
|
|
796
|
+
}
|
|
797
|
+
// A repeat poll on a HEALTHY run gets the diff and nothing else.
|
|
798
|
+
//
|
|
799
|
+
// Two stages are excluded deliberately, because their replies carry a
|
|
800
|
+
// warning and a remedy the caller has NOT acted on yet — they are not
|
|
801
|
+
// redundant however many times they are sent:
|
|
802
|
+
//
|
|
803
|
+
// - wedged: "it may be stuck", plus what to do about it.
|
|
804
|
+
// - planning: "no turn yet" means NOT STARTED, not stuck. This is the
|
|
805
|
+
// documented kill window — nine runs SIGKILLed at a median of 59s,
|
|
806
|
+
// every one still planning. And the stage RECURS: deliver clears the
|
|
807
|
+
// run's checkpoint after every accepted epic, so a 7-epic mission
|
|
808
|
+
// re-enters `planning` seven times mid-flight. Without this clause a
|
|
809
|
+
// caller got the words "still PLANNING (no turn yet)" with none of the
|
|
810
|
+
// advice that exists to stop them acting on it — measured on this
|
|
811
|
+
// branch, poll 2 onward at every epic boundary.
|
|
812
|
+
if (repeat && progress.health !== 'wedged' && progress.stage !== 'planning') {
|
|
813
|
+
return {
|
|
814
|
+
followed: false,
|
|
815
|
+
delivered: false,
|
|
816
|
+
timedOut: true,
|
|
817
|
+
holderPid: holder.pid,
|
|
818
|
+
runId: attributed ? run?.runId : undefined,
|
|
819
|
+
status: attributed ? run?.status : undefined,
|
|
820
|
+
run: run && attributed ? summarize(run) : undefined,
|
|
821
|
+
attributed,
|
|
822
|
+
progress,
|
|
823
|
+
reason: `Still running (poll ${journal.count + 1}) — ${evidence}.` +
|
|
824
|
+
(delta
|
|
825
|
+
? ` Moved since your last poll: ${delta}.`
|
|
826
|
+
: ' No phase or turn boundary crossed since your last poll; the heartbeat is current,' +
|
|
827
|
+
' so a turn is in progress (turns take minutes on a local model).'),
|
|
828
|
+
nextStep:
|
|
829
|
+
// The backoff is the point. Each follow is a full model turn for an
|
|
830
|
+
// LLM caller, and on a single-slot local backend it CONTENDS with
|
|
831
|
+
// the mission for the one inference slot — polling harder makes the
|
|
832
|
+
// thing you are waiting for slower. The standing rules are
|
|
833
|
+
// REFERENCED, not restated: restating them is the cost being cut.
|
|
834
|
+
`Sleep ${RECOMMENDED_BACKOFF_SEC}s before the next follow — polling faster costs a ` +
|
|
835
|
+
'model turn and takes the slot the mission needs. First reply\'s rules still stand.',
|
|
836
|
+
};
|
|
837
|
+
}
|
|
448
838
|
return {
|
|
449
839
|
followed: false,
|
|
450
840
|
delivered: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"await-run.js","sourceRoot":"","sources":["../../src/delivery/await-run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"await-run.js","sourceRoot":"","sources":["../../src/delivery/await-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/** One capability reading of a running page. */
|
|
2
|
+
export interface CapabilityProfile {
|
|
3
|
+
/** False when nothing could be read — every comparison then passes. */
|
|
4
|
+
measured: boolean;
|
|
5
|
+
/** Why it could not be measured (only when measured === false). */
|
|
6
|
+
reason?: CapabilityReason;
|
|
7
|
+
/**
|
|
8
|
+
* How long the steady-state window ACTUALLY lasted, read from the page's own
|
|
9
|
+
* clock rather than assumed from the requested window.
|
|
10
|
+
*
|
|
11
|
+
* Load-bearing. The comparison needs a RATE, and a count is only a rate if
|
|
12
|
+
* you know the interval — the two captures happen minutes apart, the window
|
|
13
|
+
* length is env-tunable per capture, and the CDP round-trips that open and
|
|
14
|
+
* close the window are not free. Comparing raw counts across two windows of
|
|
15
|
+
* different length manufactures a regression of exactly their ratio.
|
|
16
|
+
*/
|
|
17
|
+
elapsedMs: number;
|
|
18
|
+
/** requestAnimationFrame callbacks that actually EXECUTED in the window. */
|
|
19
|
+
frames: number;
|
|
20
|
+
/** GL draw* + 2D paint calls in the window. */
|
|
21
|
+
drawCalls: number;
|
|
22
|
+
glDrawCalls: number;
|
|
23
|
+
ctx2dDrawCalls: number;
|
|
24
|
+
/** Distinct WebGL programs bound over the page's LIFETIME (see below). */
|
|
25
|
+
programsUsed: number;
|
|
26
|
+
/** Distinct event TYPES registered via addEventListener (page lifetime). */
|
|
27
|
+
listenerTypes: number;
|
|
28
|
+
/** Total addEventListener registrations (page lifetime). */
|
|
29
|
+
listeners: number;
|
|
30
|
+
/** Did the page have a <canvas> at all? */
|
|
31
|
+
canvas: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Which driver produced this reading. Two drivers have completely different
|
|
34
|
+
* frame-rate regimes, and the fallback is silent — so a baseline taken on
|
|
35
|
+
* one and a candidate on the other is not a comparison, and must be refused
|
|
36
|
+
* rather than reported.
|
|
37
|
+
*/
|
|
38
|
+
driver?: string;
|
|
39
|
+
/** Entry page measured, for the report. */
|
|
40
|
+
entry?: string;
|
|
41
|
+
}
|
|
42
|
+
/** Why a profile could not be taken. Distinguished because they do not all mean
|
|
43
|
+
* the same thing — see `compareCapability`. */
|
|
44
|
+
export type CapabilityReason = 'no-entry' | 'no-browser' | 'not-installed' | 'no-reading' | 'error';
|
|
45
|
+
export declare function unmeasured(reason: CapabilityReason, driver?: string): CapabilityProfile;
|
|
46
|
+
/** Frames per second, from the page's own measured interval. */
|
|
47
|
+
export declare const fpsOf: (p: CapabilityProfile) => number;
|
|
48
|
+
/** Draw calls per frame — a property of the SCENE, invariant to frame rate. */
|
|
49
|
+
export declare const drawsPerFrame: (p: CapabilityProfile) => number;
|
|
50
|
+
export interface CapabilityComparison {
|
|
51
|
+
/** True only when enough measured, material drops were found to block. */
|
|
52
|
+
regressed: boolean;
|
|
53
|
+
/** Why it could not judge, when it could not. */
|
|
54
|
+
skipped?: string;
|
|
55
|
+
/** One line per metric that dropped, with both raw numbers. */
|
|
56
|
+
findings: string[];
|
|
57
|
+
/** Every metric, before -> after, for the report. */
|
|
58
|
+
table: string[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Compare a post-run profile against the pre-run baseline. PURE — unit-tested
|
|
62
|
+
* without a browser.
|
|
63
|
+
*/
|
|
64
|
+
export declare function compareCapability(baseline: CapabilityProfile | null | undefined, current: CapabilityProfile | null | undefined): CapabilityComparison;
|
|
65
|
+
/**
|
|
66
|
+
* The sentence the model is given. Verbatim numbers, no score: a percentage is
|
|
67
|
+
* what stalled the run this whole class of gate came from — the model needs to
|
|
68
|
+
* know WHAT it deleted, not how badly it is doing.
|
|
69
|
+
*/
|
|
70
|
+
export declare function capabilityFeedback(cmp: CapabilityComparison): string;
|
|
71
|
+
/**
|
|
72
|
+
* What to say when the check did NOT block: a single-metric drop, or the reason
|
|
73
|
+
* it declined to judge at all.
|
|
74
|
+
*
|
|
75
|
+
* The skip half is the important half. `skipped` used to be returned and read by
|
|
76
|
+
* nobody — not the acceptance gate, not the keep-best veto, not verify — so a
|
|
77
|
+
* check that had silently disarmed itself (a driver swap mid-run, a vanished
|
|
78
|
+
* baseline, an unmeasurable page) was indistinguishable from one that ran and
|
|
79
|
+
* found nothing. That is exactly the inert-rung failure this module's header
|
|
80
|
+
* warns about, reproduced in the module's own output.
|
|
81
|
+
*/
|
|
82
|
+
export declare function capabilityNote(cmp: CapabilityComparison): string;
|
|
83
|
+
/** True when the check produced no opinion — callers should SAY so, not assume health. */
|
|
84
|
+
export declare const capabilityInactive: (cmp: CapabilityComparison) => boolean;
|
|
85
|
+
/**
|
|
86
|
+
* On-disk layout, mirroring `.uap/visual/` (see visual-baseline.ts):
|
|
87
|
+
* .uap/capability/current.json written by the execution gate every run
|
|
88
|
+
* .uap/capability/baseline.json pinned pre-run, or by `uap verify --approve`
|
|
89
|
+
*
|
|
90
|
+
* Disk is what makes this reachable from BOTH sides. The execution gate often
|
|
91
|
+
* runs in a spawned runner (synthesizeExecutionRung), so a return value does
|
|
92
|
+
* not cross that boundary — the visual gate has the same constraint and solves
|
|
93
|
+
* it the same way, with files. It also survives `--resume`, where an in-memory
|
|
94
|
+
* baseline would be re-taken from the already-modified tree.
|
|
95
|
+
*/
|
|
96
|
+
/** Opt-out, matching every other gate in this subsystem. Off means the profile
|
|
97
|
+
* is never written and every comparison declines. */
|
|
98
|
+
export declare const capabilityEnabled: () => boolean;
|
|
99
|
+
export declare const CAPABILITY_DIR: string;
|
|
100
|
+
export declare const currentPath: (root: string) => string;
|
|
101
|
+
export declare const baselinePath: (root: string) => string;
|
|
102
|
+
/**
|
|
103
|
+
* Drop any previous run's reading. Called at the START of every execution-gate
|
|
104
|
+
* run so `current.json` exists only when THIS run measured something — see the
|
|
105
|
+
* comment at that call site for what staleness cost.
|
|
106
|
+
*/
|
|
107
|
+
export declare function invalidateCapabilityCurrent(root: string): void;
|
|
108
|
+
/**
|
|
109
|
+
* Drop a baseline this run could not re-pin.
|
|
110
|
+
*
|
|
111
|
+
* A baseline is only meaningful for the tree it was taken from. Left in place
|
|
112
|
+
* across runs it becomes a reading of a DIFFERENT app: a run that pins 14
|
|
113
|
+
* draws/frame on a rich game, followed later by an unrelated run on a
|
|
114
|
+
* deliberately simpler project, blocks every turn against a stale number — and
|
|
115
|
+
* the operator has to know about an --approve flag to escape. Better to have no
|
|
116
|
+
* opinion than a confidently wrong one.
|
|
117
|
+
*/
|
|
118
|
+
export declare function invalidateCapabilityBaseline(root: string): void;
|
|
119
|
+
export declare const readCapabilityBaseline: (root: string) => CapabilityProfile | null;
|
|
120
|
+
export declare const readCapabilityCurrent: (root: string) => CapabilityProfile | null;
|
|
121
|
+
export declare const writeCapabilityCurrent: (root: string, p: CapabilityProfile) => boolean;
|
|
122
|
+
export declare const writeCapabilityBaseline: (root: string, p: CapabilityProfile) => boolean;
|
|
123
|
+
export declare function sanitizeProfile(raw: unknown): CapabilityProfile | null;
|
|
124
|
+
//# sourceMappingURL=capability-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-profile.d.ts","sourceRoot":"","sources":["../../src/delivery/capability-profile.ts"],"names":[],"mappings":"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"}
|