@miller-tech/uap 1.212.6 → 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.
Files changed (83) hide show
  1. package/config/model-profiles/qwen38.json +70 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/bin/cli.js +4 -2
  4. package/dist/bin/cli.js.map +1 -1
  5. package/dist/cli/deliver.d.ts.map +1 -1
  6. package/dist/cli/deliver.js +107 -4
  7. package/dist/cli/deliver.js.map +1 -1
  8. package/dist/cli/self-harness.js +1 -1
  9. package/dist/cli/self-harness.js.map +1 -1
  10. package/dist/cli/self-tuning.js +1 -1
  11. package/dist/cli/verify.d.ts +5 -0
  12. package/dist/cli/verify.d.ts.map +1 -1
  13. package/dist/cli/verify.js +50 -1
  14. package/dist/cli/verify.js.map +1 -1
  15. package/dist/cli/wizard-config.d.ts.map +1 -1
  16. package/dist/cli/wizard-config.js +26 -1
  17. package/dist/cli/wizard-config.js.map +1 -1
  18. package/dist/config/settings-registry.js +1 -1
  19. package/dist/config/settings-registry.js.map +1 -1
  20. package/dist/delivery/agentic-executor.d.ts.map +1 -1
  21. package/dist/delivery/agentic-executor.js +5 -1
  22. package/dist/delivery/agentic-executor.js.map +1 -1
  23. package/dist/delivery/await-run.d.ts +47 -0
  24. package/dist/delivery/await-run.d.ts.map +1 -1
  25. package/dist/delivery/await-run.js +392 -2
  26. package/dist/delivery/await-run.js.map +1 -1
  27. package/dist/delivery/capability-profile.d.ts +124 -0
  28. package/dist/delivery/capability-profile.d.ts.map +1 -0
  29. package/dist/delivery/capability-profile.js +392 -0
  30. package/dist/delivery/capability-profile.js.map +1 -0
  31. package/dist/delivery/convergence-loop.d.ts.map +1 -1
  32. package/dist/delivery/convergence-loop.js +21 -1
  33. package/dist/delivery/convergence-loop.js.map +1 -1
  34. package/dist/delivery/execution-gate.d.ts +29 -0
  35. package/dist/delivery/execution-gate.d.ts.map +1 -1
  36. package/dist/delivery/execution-gate.js +237 -9
  37. package/dist/delivery/execution-gate.js.map +1 -1
  38. package/dist/delivery/mission-acceptance.d.ts +4 -0
  39. package/dist/delivery/mission-acceptance.d.ts.map +1 -1
  40. package/dist/delivery/mission-acceptance.js +35 -1
  41. package/dist/delivery/mission-acceptance.js.map +1 -1
  42. package/dist/delivery/run-state.d.ts +31 -0
  43. package/dist/delivery/run-state.d.ts.map +1 -1
  44. package/dist/delivery/run-state.js +49 -0
  45. package/dist/delivery/run-state.js.map +1 -1
  46. package/dist/mcp-router/tools/deliver.d.ts.map +1 -1
  47. package/dist/mcp-router/tools/deliver.js +5 -2
  48. package/dist/mcp-router/tools/deliver.js.map +1 -1
  49. package/dist/models/local-model.d.ts +59 -0
  50. package/dist/models/local-model.d.ts.map +1 -0
  51. package/dist/models/local-model.js +123 -0
  52. package/dist/models/local-model.js.map +1 -0
  53. package/dist/models/openai-compat-client.d.ts.map +1 -1
  54. package/dist/models/openai-compat-client.js +6 -1
  55. package/dist/models/openai-compat-client.js.map +1 -1
  56. package/dist/models/profile-map.d.ts.map +1 -1
  57. package/dist/models/profile-map.js +9 -2
  58. package/dist/models/profile-map.js.map +1 -1
  59. package/dist/models/types.d.ts.map +1 -1
  60. package/dist/models/types.js +69 -21
  61. package/dist/models/types.js.map +1 -1
  62. package/dist/self-tuning/profiles/index.d.ts +1 -0
  63. package/dist/self-tuning/profiles/index.d.ts.map +1 -1
  64. package/dist/self-tuning/profiles/index.js +3 -0
  65. package/dist/self-tuning/profiles/index.js.map +1 -1
  66. package/dist/self-tuning/profiles/qwen38.d.ts +23 -0
  67. package/dist/self-tuning/profiles/qwen38.d.ts.map +1 -0
  68. package/dist/self-tuning/profiles/qwen38.js +46 -0
  69. package/dist/self-tuning/profiles/qwen38.js.map +1 -0
  70. package/dist/utils/model-slots.d.ts +17 -1
  71. package/dist/utils/model-slots.d.ts.map +1 -1
  72. package/dist/utils/model-slots.js +25 -3
  73. package/dist/utils/model-slots.js.map +1 -1
  74. package/package.json +2 -2
  75. package/scripts/lib/llama-upstream.sh +64 -16
  76. package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
  77. package/templates/hooks/__pycache__/deliver_autoroute.cpython-312.pyc +0 -0
  78. package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-312.pyc +0 -0
  79. package/tools/agents/scripts/anthropic_proxy.py +306 -7
  80. package/tools/agents/scripts/confidence_escalation.py +57 -0
  81. package/tools/agents/tests/test_anthropic_proxy_streaming.py +12 -6
  82. package/tools/agents/tests/test_confidence_escalation.py +140 -2
  83. package/tools/agents/tests/test_thinking_template_kwargs.py +366 -1
@@ -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 { listRuns } from './run-state.js';
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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"}