agent-nuvira 3.3.17 → 3.3.19

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 (64) hide show
  1. package/dist/agents/orchestrator.d.ts.map +1 -1
  2. package/dist/agents/orchestrator.js +10 -2
  3. package/dist/agents/orchestrator.js.map +1 -1
  4. package/dist/agents/prompt-assembly.js +2 -2
  5. package/dist/agents/prompt-assembly.js.map +1 -1
  6. package/dist/cli/chat.d.ts.map +1 -1
  7. package/dist/cli/chat.js +25 -2
  8. package/dist/cli/chat.js.map +1 -1
  9. package/dist/cli/cli-program.d.ts.map +1 -1
  10. package/dist/cli/cli-program.js +5 -0
  11. package/dist/cli/cli-program.js.map +1 -1
  12. package/dist/cli/loop-executor.d.ts.map +1 -1
  13. package/dist/cli/loop-executor.js +68 -10
  14. package/dist/cli/loop-executor.js.map +1 -1
  15. package/dist/cli/state.d.ts +22 -0
  16. package/dist/cli/state.d.ts.map +1 -0
  17. package/dist/cli/state.js +156 -0
  18. package/dist/cli/state.js.map +1 -0
  19. package/dist/inference/model-validator.d.ts.map +1 -1
  20. package/dist/inference/model-validator.js +64 -2
  21. package/dist/inference/model-validator.js.map +1 -1
  22. package/dist/learning/failure-bookkeeping.d.ts +5 -2
  23. package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
  24. package/dist/learning/failure-bookkeeping.js +30 -2
  25. package/dist/learning/failure-bookkeeping.js.map +1 -1
  26. package/dist/learning/provider-fallback.d.ts +6 -3
  27. package/dist/learning/provider-fallback.d.ts.map +1 -1
  28. package/dist/learning/provider-fallback.js +22 -0
  29. package/dist/learning/provider-fallback.js.map +1 -1
  30. package/dist/learning/reasoning-trace.d.ts +17 -1
  31. package/dist/learning/reasoning-trace.d.ts.map +1 -1
  32. package/dist/learning/reasoning-trace.js +8 -0
  33. package/dist/learning/reasoning-trace.js.map +1 -1
  34. package/dist/learning/turn-report.d.ts +37 -1
  35. package/dist/learning/turn-report.d.ts.map +1 -1
  36. package/dist/learning/turn-report.js +61 -3
  37. package/dist/learning/turn-report.js.map +1 -1
  38. package/dist/learning/working-state.d.ts +79 -3
  39. package/dist/learning/working-state.d.ts.map +1 -1
  40. package/dist/learning/working-state.js +199 -6
  41. package/dist/learning/working-state.js.map +1 -1
  42. package/dist/tools/child-agent-runtime.js +3 -2
  43. package/dist/tools/child-agent-runtime.js.map +1 -1
  44. package/dist/tools/edit-verification.d.ts +60 -5
  45. package/dist/tools/edit-verification.d.ts.map +1 -1
  46. package/dist/tools/edit-verification.js +333 -48
  47. package/dist/tools/edit-verification.js.map +1 -1
  48. package/dist/tools/loop-project-context.js +2 -2
  49. package/dist/tools/loop-project-context.js.map +1 -1
  50. package/dist/tools/tool-loop.d.ts +34 -0
  51. package/dist/tools/tool-loop.d.ts.map +1 -1
  52. package/dist/tools/tool-loop.js +83 -6
  53. package/dist/tools/tool-loop.js.map +1 -1
  54. package/dist/web-dashboard/server.d.ts.map +1 -1
  55. package/dist/web-dashboard/server.js +47 -3
  56. package/dist/web-dashboard/server.js.map +1 -1
  57. package/dist/web-dashboard/src/types.d.ts +21 -1
  58. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  59. package/package.json +1 -1
  60. package/src/web-dashboard/public/assets/{index-goRHl73H.js → index-Bz7QqQ_N.js} +86 -86
  61. package/src/web-dashboard/public/assets/index-Bz7QqQ_N.js.map +1 -0
  62. package/src/web-dashboard/public/assets/{index-tK8Y2qHB.css → index-cBWT2qxn.css} +1 -1
  63. package/src/web-dashboard/public/index.html +2 -2
  64. package/src/web-dashboard/public/assets/index-goRHl73H.js.map +0 -1
@@ -25,8 +25,8 @@
25
25
  * a model — because "the strongest check" is a property of THIS project, and a
26
26
  * nudge that names it is actionable where a generic preference order is not.
27
27
  */
28
- import { existsSync, readFileSync } from 'node:fs';
29
- import { join } from 'node:path';
28
+ import { existsSync, readFileSync, readdirSync } from 'node:fs';
29
+ import { dirname, join, relative, resolve } from 'node:path';
30
30
  /**
31
31
  * Tools that CHANGE the workspace. A turn that ran one of these has produced
32
32
  * a claim about reality that only a verification run can support.
@@ -89,7 +89,7 @@ export function classifyEditActivity(toolsRun) {
89
89
  * session report "verified" after running `node -c script.js`. See
90
90
  * `PARSE_ONLY_RE` below for why that cannot count.
91
91
  */
92
- const GENERIC_VERIFY_RE = /\b(?:npm|pnpm|yarn|bun)\s+(?:run\s+)?(?:test|build|lint|typecheck|check|ci)\b|\b(?:tsc|vitest|jest|pytest|mocha|cargo\s+test|go\s+test|gradle|mvn|make)\b/i;
92
+ const GENERIC_VERIFY_RE = /\b(?:npm|pnpm|yarn|bun)\s+(?:--prefix[=\s]+\S+\s+)?(?:run\s+)?(?:test|build|lint|typecheck|check|ci)\b|\b(?:tsc|vitest|jest|pytest|mocha|cargo\s+test|go\s+test|gradle|mvn|make)\b/i;
93
93
  /**
94
94
  * Commands that only PARSE the files they are handed. They prove the source is
95
95
  * syntactically valid and nothing else.
@@ -130,6 +130,216 @@ export function isParseOnlyCheck(evidence) {
130
130
  const text = evidenceText(evidence);
131
131
  return PARSE_ONLY_RE.test(text) && !GENERIC_VERIFY_RE.test(text);
132
132
  }
133
+ // ─── WHICH CHECK COVERS WHICH FILE (the nested-package rule) ────────────────
134
+ /**
135
+ * Runner configs that mean "this directory has its OWN suite", script or not.
136
+ * Mirrors the markers `detectAvailableChecks` already accepts one level down.
137
+ */
138
+ const OWN_TEST_CONFIG_FILES = [
139
+ 'vitest.config.ts', 'vitest.config.mts', 'vitest.config.js', 'vitest.config.mjs',
140
+ 'jest.config.js', 'jest.config.ts', 'jest.config.cjs', 'jest.config.mjs',
141
+ 'pytest.ini', 'Cargo.toml', 'go.mod',
142
+ ];
143
+ /** Does this path exist as a file? (Never throws.) */
144
+ function fileExists(path) {
145
+ try {
146
+ return existsSync(path);
147
+ }
148
+ catch {
149
+ return false;
150
+ }
151
+ }
152
+ /**
153
+ * Does this directory declare its OWN test command — i.e. a suite that an
154
+ * ANCESTOR's generic check will not run? Deliberately test-shaped only: a bare
155
+ * `package.json` (a deps-only stub) has no suite, so a change under it is still
156
+ * judged the old, permissive way.
157
+ */
158
+ function packageHasOwnTests(dir) {
159
+ if (!fileExists(join(dir, 'package.json'))) {
160
+ // No manifest, but a runner config is still a suite of its own.
161
+ return OWN_TEST_CONFIG_FILES.some((f) => fileExists(join(dir, f)));
162
+ }
163
+ const pkg = readJsonSafe(join(dir, 'package.json'));
164
+ const scripts = (pkg?.scripts ?? {});
165
+ for (const k of ['test', 'tests']) {
166
+ if (typeof scripts[k] === 'string' && String(scripts[k]).trim().length > 0)
167
+ return true;
168
+ }
169
+ return OWN_TEST_CONFIG_FILES.some((f) => fileExists(join(dir, f)));
170
+ }
171
+ /** Memoized package-script bodies, so the gate does not re-read per changed file. */
172
+ const packageScriptCache = new Map();
173
+ /** The `scripts` object of a package, or {} (memoized, never throws). */
174
+ function packageScripts(dir) {
175
+ const cached = packageScriptCache.get(dir);
176
+ if (cached)
177
+ return cached;
178
+ const pkg = fileExists(join(dir, 'package.json')) ? readJsonSafe(join(dir, 'package.json')) : null;
179
+ const scripts = (pkg?.scripts ?? {}) || {};
180
+ packageScriptCache.set(dir, scripts);
181
+ return scripts;
182
+ }
183
+ /** npm/pnpm/yarn subcommands that are NOT package scripts. */
184
+ const RESERVED_SUBCOMMANDS = new Set([
185
+ 'install', 'i', 'ci', 'ls', 'list', 'view', 'info', 'show', 'publish', 'pack', 'exec', 'x',
186
+ 'audit', 'outdated', 'why', 'init', 'create', 'config', 'link', 'unlink', 'update', 'up',
187
+ 'dedupe', 'prune', 'fund', 'doctor', 'cache', 'login', 'logout', 'owner', 'root', 'prefix',
188
+ 'add', 'remove', 'rm', 'dlx', 'import', 'rebuild', 'help',
189
+ ]);
190
+ /** The script a `npm run <name>` / `npm test` style command invokes, or null. */
191
+ function scriptNameOf(text) {
192
+ const m = /^\s*(?:npm|pnpm|yarn|bun)\s+(?:run\s+)?([A-Za-z0-9:_-]+)\b/.exec(text.trim());
193
+ if (!m)
194
+ return null;
195
+ const name = m[1];
196
+ return RESERVED_SUBCOMMANDS.has(name) ? null : name;
197
+ }
198
+ /**
199
+ * Where do this command's checks actually RUN?
200
+ *
201
+ * `cd src/web-dashboard && npm test` → that package. `npm --prefix x run test`
202
+ * → x. `npm run test:dashboard` → wherever the root script it names goes, which
203
+ * is how a project declares the canonical check for a nested package. Anything
204
+ * else runs at `cwd`.
205
+ *
206
+ * One level of script indirection only (depth < 2), so a self-referential or
207
+ * pathological chain cannot loop.
208
+ */
209
+ export function checkRootFor(command, cwd, depth = 0) {
210
+ const text = String(command ?? '');
211
+ const cd = /\bcd\s+(?:--\s+)?(?:"([^"]+)"|'([^']+)'|([^\s&;|)]+))/.exec(text);
212
+ const cdTarget = cd?.[1] ?? cd?.[2] ?? cd?.[3];
213
+ if (cdTarget)
214
+ return resolve(cwd, cdTarget);
215
+ const prefix = /--prefix[=\s]+(?:"([^"]+)"|'([^']+)'|([^\s&;|)]+))/.exec(text);
216
+ const prefixTarget = prefix?.[1] ?? prefix?.[2] ?? prefix?.[3];
217
+ if (prefixTarget)
218
+ return resolve(cwd, prefixTarget);
219
+ if (depth < 2) {
220
+ const name = scriptNameOf(text);
221
+ if (name) {
222
+ const body = packageScripts(cwd)[name];
223
+ if (typeof body === 'string' && body.trim())
224
+ return checkRootFor(body, cwd, depth + 1);
225
+ }
226
+ }
227
+ return resolve(cwd);
228
+ }
229
+ /**
230
+ * Is `fileAbs` covered by a generic check rooted at `rootAbs`?
231
+ *
232
+ * The walk is the whole rule: start at the file's own directory and climb to
233
+ * the check root; if any package on the way declares its OWN test command, the
234
+ * ancestor's check does not run it, so the answer is NO.
235
+ */
236
+ function pathCoveredByRoot(fileAbs, rootAbs) {
237
+ const under = relative(rootAbs, fileAbs);
238
+ if (under === '' || under.startsWith('..'))
239
+ return false;
240
+ let cur = dirname(fileAbs);
241
+ for (;;) {
242
+ const rel = relative(rootAbs, cur);
243
+ if (rel === '' || rel.startsWith('..'))
244
+ return true; // reached (or passed) the check root
245
+ if (packageHasOwnTests(cur))
246
+ return false;
247
+ const parent = dirname(cur);
248
+ if (parent === cur)
249
+ return true;
250
+ cur = parent;
251
+ }
252
+ }
253
+ /**
254
+ * Does this command's check cover this changed file?
255
+ *
256
+ * `foreign` = the file is outside the project root entirely. We do not judge
257
+ * those (there is nothing to compare against), so the previous permissive
258
+ * answer stands rather than inventing a stricter rule with no evidence behind
259
+ * it — the same stance the empty-`changedFiles` fallback takes.
260
+ */
261
+ function commandCoversFile(command, fileAbs, cwdAbs, foreign) {
262
+ if (foreign)
263
+ return true;
264
+ const root = checkRootFor(command, cwdAbs);
265
+ return pathCoveredByRoot(fileAbs, root);
266
+ }
267
+ /** The `command` argument of an executed run (falls back to the result text). */
268
+ function commandOf(e) {
269
+ const a = e.args;
270
+ const c = a?.command ?? a?.cmd;
271
+ return typeof c === 'string' ? c : (e.result ?? '');
272
+ }
273
+ /**
274
+ * WHICH of the changed files did this turn's verification actually EXERCISE?
275
+ *
276
+ * This is the per-file truth the gate's boolean and the working-state ledger's
277
+ * debt both derive from, so the two can never disagree about what was covered.
278
+ *
279
+ * A file counts when some successful observation either:
280
+ * - NAMES it (`grep … style.css`, `node --check script.js` — the parse filter
281
+ * below removes the syntax-only shapes), OR
282
+ * - is the `test` pipeline, judged by the same coverage rule as a generic
283
+ * command at the project root (see {@link checkRootFor}), OR
284
+ * - is a real `browser` run — a live observation of the running app, which is
285
+ * precisely the check a component change needs, so it is never narrowed, OR
286
+ * - is a generic project check whose ROOT covers the file (`npm test` at the
287
+ * root covers root files; the nested package's own script covers its own).
288
+ */
289
+ /**
290
+ * NOTE ON `needsVerification` vs the per-file split. The gate asks ONE question —
291
+ * "did anything observe this turn's result?" — and spends one bounded nudge; the
292
+ * split says WHICH files are still owed a check. They are deliberately not the
293
+ * same predicate: a turn that covered three of four files is not a turn with no
294
+ * verification at all, and firing the nudge on it would ask again for work the
295
+ * model already did. The outstanding file is carried by `unverifiedPaths`
296
+ * instead (the ledger's debt and the next turn's block), which is where it can
297
+ * be acted on; `needsVerification` stays what it always was.
298
+ */
299
+ export function verifiedPathsFor(evidence, changedFiles, cwd = process.cwd()) {
300
+ const observed = evidence.filter((e) => !isParseOnlyCheck(e));
301
+ if (observed.length === 0)
302
+ return [];
303
+ const cwdAbs = resolve(cwd);
304
+ const covered = [];
305
+ for (const f of changedFiles) {
306
+ if (!f)
307
+ continue;
308
+ const fileAbs = resolve(cwdAbs, f);
309
+ const foreign = relative(cwdAbs, fileAbs).startsWith('..');
310
+ const base = f.split(/[\\/]/).pop() ?? '';
311
+ let hit = false;
312
+ for (const e of observed) {
313
+ if (e.tool === 'browser') {
314
+ hit = true;
315
+ break;
316
+ }
317
+ if (e.tool === 'test') {
318
+ if (commandCoversFile('npm test', fileAbs, cwdAbs, foreign)) {
319
+ hit = true;
320
+ break;
321
+ }
322
+ continue;
323
+ }
324
+ const text = evidenceText(e);
325
+ if (base && text.includes(base)) {
326
+ hit = true;
327
+ break;
328
+ }
329
+ if (f && text.includes(f)) {
330
+ hit = true;
331
+ break;
332
+ }
333
+ if (GENERIC_VERIFY_RE.test(text) && commandCoversFile(commandOf(e), fileAbs, cwdAbs, foreign)) {
334
+ hit = true;
335
+ break;
336
+ }
337
+ }
338
+ if (hit)
339
+ covered.push(f);
340
+ }
341
+ return covered;
342
+ }
133
343
  /**
134
344
  * Did this turn's verification actually EXERCISE the artifact it changed?
135
345
  *
@@ -137,55 +347,50 @@ export function isParseOnlyCheck(evidence) {
137
347
  * marked a turn "verified" (the same class of false positive the gate exists to
138
348
  * prevent). A run counts only when it:
139
349
  * - is the `test` pipeline or a real `browser` run (inherently project-wide), OR
140
- * - runs a generic project check (`npm test`, typecheck, build, linter), OR
141
- * - names one of the files the turn changed (e.g. `grep … style.css`,
142
- * `node --check script.js`).
350
+ * - runs a generic project check (`npm test`, typecheck, build, linter) that
351
+ * COVERS the changed file (see {@link checkRootFor} for the nested-package
352
+ * rule this gained), OR
353
+ * - names one of the files the turn changed (e.g. `grep … style.css`).
143
354
  *
144
355
  * When the turn's changed paths are UNKNOWN, it falls back to "any successful
145
356
  * verification counts" — the pre-strictening behaviour — so an unidentifiable
146
357
  * mutation is never falsely flagged.
358
+ *
359
+ * Delegates to {@link verifiedPathsFor} rather than re-implementing the rule, so
360
+ * the gate and the per-file debt cannot drift apart.
147
361
  */
148
- export function verificationExercisedArtifact(evidence, changedFiles) {
362
+ export function verificationExercisedArtifact(evidence, changedFiles, cwd = process.cwd()) {
149
363
  // A parse check observes syntax, never behaviour — drop it before judging,
150
364
  // so it can satisfy neither the relevance match nor the file-name match.
151
- const observed = evidence.filter((e) => !isParseOnlyCheck(e));
152
- if (observed.length === 0)
365
+ if (evidence.filter((e) => !isParseOnlyCheck(e)).length === 0)
153
366
  return false;
154
367
  // Unknown changed paths → cannot judge relevance; don't cry wolf.
155
368
  if (changedFiles.length === 0)
156
369
  return true;
157
- const names = new Set();
158
- for (const f of changedFiles) {
159
- if (!f)
160
- continue;
161
- names.add(f);
162
- const base = f.split(/[\\/]/).pop();
163
- if (base)
164
- names.add(base);
165
- }
166
- for (const e of observed) {
167
- if (e.tool === 'test' || e.tool === 'browser')
168
- return true;
169
- const text = evidenceText(e);
170
- if (GENERIC_VERIFY_RE.test(text))
171
- return true;
172
- for (const n of names) {
173
- if (n && text.includes(n))
174
- return true;
175
- }
176
- }
177
- return false;
370
+ return verifiedPathsFor(evidence, changedFiles, cwd).length > 0;
178
371
  }
179
372
  /**
180
373
  * Full edit assessment for a turn: what mutated, what verified, and whether a
181
374
  * verification still OWED. This is the single call the loop uses so the gate,
182
375
  * the nudge and the honesty flag can never disagree.
376
+ *
377
+ * `verifiedPaths` / `unverifiedPaths` are the PER-FILE split of the same
378
+ * judgement; the caller records them in the working-state ledger so the debt it
379
+ * owes is a set of paths rather than a bare count.
183
380
  */
184
- export function assessEditActivity(toolsRun, evidence = [], changedFiles = []) {
381
+ export function assessEditActivity(toolsRun, evidence = [], changedFiles = [], cwd = process.cwd()) {
185
382
  const base = classifyEditActivity(toolsRun);
186
- if (base.mutations.length === 0)
187
- return { ...base, needsVerification: false };
188
- return { ...base, needsVerification: !verificationExercisedArtifact(evidence, changedFiles) };
383
+ if (base.mutations.length === 0) {
384
+ return { ...base, needsVerification: false, verifiedPaths: [], unverifiedPaths: [] };
385
+ }
386
+ const verifiedPaths = verifiedPathsFor(evidence, changedFiles, cwd);
387
+ const covered = new Set(verifiedPaths);
388
+ return {
389
+ ...base,
390
+ needsVerification: !verificationExercisedArtifact(evidence, changedFiles, cwd),
391
+ verifiedPaths,
392
+ unverifiedPaths: changedFiles.filter((f) => f && !covered.has(f)),
393
+ };
189
394
  }
190
395
  /** A sentence that is future/interrogative/negated is NOT a completed claim. */
191
396
  const NON_CLAIM_CONTEXT_RE = /\b(?:not|n't|never|unable|cannot|can't|couldn't|didn't|won't|will|would|should|could|can|may|might|going to|about to|try(?:ing)? to|attempt|if you|let me|shall i|should i|do you want|i'?ll|next|then)\b/i;
@@ -255,14 +460,42 @@ function readJsonSafe(path) {
255
460
  return null;
256
461
  }
257
462
  }
258
- /** Does this path exist as a file? (Never throws.) */
259
- function fileExists(path) {
260
- try {
261
- return existsSync(path);
262
- }
263
- catch {
264
- return false;
265
- }
463
+ /** Directories never walked looking for nested packages. */
464
+ const NESTED_SKIP_DIRS = new Set([
465
+ 'node_modules', 'dist', 'build', 'out', 'coverage', 'vendor', 'target', '.git', '.next',
466
+ ]);
467
+ /** How deep a nested package may sit (`src/web-dashboard`, `examples/sdk` = 2). */
468
+ const NESTED_MAX_DEPTH = 2;
469
+ /**
470
+ * Relative paths of packages nested under `cwd` (bounded depth, no vendor dirs).
471
+ * Dot-directories are skipped, so a checked-in toolchain cache (`.vscode-test`)
472
+ * is never mistaken for a package in the project.
473
+ */
474
+ function findNestedPackages(cwd) {
475
+ const found = [];
476
+ const walk = (rel, depth) => {
477
+ if (depth > NESTED_MAX_DEPTH)
478
+ return;
479
+ let entries = [];
480
+ try {
481
+ entries = readdirSync(join(cwd, rel), { withFileTypes: true });
482
+ }
483
+ catch {
484
+ return;
485
+ }
486
+ for (const entry of entries) {
487
+ if (!entry.isDirectory())
488
+ continue;
489
+ if (entry.name.startsWith('.') || NESTED_SKIP_DIRS.has(entry.name))
490
+ continue;
491
+ const child = rel ? `${rel}/${entry.name}` : entry.name;
492
+ if (fileExists(join(cwd, child, 'package.json')))
493
+ found.push(child);
494
+ walk(child, depth + 1);
495
+ }
496
+ };
497
+ walk('', 1);
498
+ return found;
266
499
  }
267
500
  /**
268
501
  * Which verification checks does THIS project actually have?
@@ -280,10 +513,11 @@ function fileExists(path) {
280
513
  */
281
514
  export function detectAvailableChecks(cwd) {
282
515
  const checks = [];
283
- const add = (command, label, strength) => {
516
+ const add = (command, label, strength, root) => {
284
517
  if (!checks.some((c) => c.command === command))
285
- checks.push({ command, label, strength });
518
+ checks.push({ command, label, strength, ...(root ? { root } : {}) });
286
519
  };
520
+ const cwdAbs = resolve(cwd);
287
521
  const pkg = fileExists(join(cwd, 'package.json')) ? readJsonSafe(join(cwd, 'package.json')) : null;
288
522
  const scripts = (pkg?.scripts ?? {}) || {};
289
523
  const hasScript = (k) => typeof scripts[k] === 'string' && String(scripts[k]).trim().length > 0;
@@ -327,6 +561,33 @@ export function detectAvailableChecks(cwd) {
327
561
  // A typechecker with no script is still the strongest static observation.
328
562
  if (fileExists(join(cwd, 'tsconfig.json')))
329
563
  add('npx tsc --noEmit', 'a tsconfig.json', 70);
564
+ // ── NESTED PACKAGES (a monorepo's own suites) ───────────────────────────
565
+ // A root `npm test` does NOT run a nested package's suite, so a project that
566
+ // has one has already declared the command that does — a root script that
567
+ // `cd`s into it (`"test:dashboard": "cd src/web-dashboard && npm test"`).
568
+ // Name THAT: it is the canonical way this project checks that package, so the
569
+ // model has nothing to invent.
570
+ const coveredRoots = new Set();
571
+ for (const [name, body] of Object.entries(scripts)) {
572
+ if (typeof body !== 'string' || !body.trim())
573
+ continue;
574
+ if (!GENERIC_VERIFY_RE.test(body))
575
+ continue;
576
+ const root = checkRootFor(body, cwdAbs);
577
+ if (root === cwdAbs || !fileExists(join(root, 'package.json')))
578
+ continue;
579
+ coveredRoots.add(root);
580
+ const where = relative(cwdAbs, root) || '.';
581
+ add(`npm run ${name}`, `the "${name}" script in package.json (covers ${where})`, 100, root);
582
+ }
583
+ // A nested package with its own suite and NO root script for it: the suite
584
+ // exists, so name the direct command instead of leaving it invisible.
585
+ for (const rel of findNestedPackages(cwdAbs)) {
586
+ const abs = join(cwdAbs, rel);
587
+ if (coveredRoots.has(abs) || !packageHasOwnTests(abs))
588
+ continue;
589
+ add(`cd ${rel} && npm test`, `the project in ${rel} (its own test command)`, 100, abs);
590
+ }
330
591
  return checks.sort((a, b) => b.strength - a.strength);
331
592
  }
332
593
  /**
@@ -377,9 +638,25 @@ export function isProseArtifactPath(path) {
377
638
  return PROSE_ARTIFACT_EXTENSIONS.has(clean.slice(dot));
378
639
  }
379
640
  export function verificationNudgeFor(cwd, changedFiles = []) {
380
- const checks = detectAvailableChecks(cwd);
641
+ const cwdAbs = resolve(cwd);
381
642
  const allChanged = changedFiles.filter(Boolean);
382
643
  const changed = allChanged.slice(0, 5);
644
+ // ORDER BY RELEVANCE, not strength alone. In a monorepo the strongest check
645
+ // for the project (`npm test`) is not the check that covers the file that
646
+ // changed — the nested package's own suite is. Preferring a check the files are
647
+ // not under would send the model to run a suite that cannot see its change.
648
+ const coversChanged = (c) => {
649
+ if (allChanged.length === 0)
650
+ return false;
651
+ const root = c.root ?? cwdAbs;
652
+ return allChanged.some((f) => {
653
+ const abs = resolve(cwdAbs, f);
654
+ if (relative(cwdAbs, abs).startsWith('..'))
655
+ return false;
656
+ return pathCoveredByRoot(abs, root) && relative(root, abs) !== '';
657
+ });
658
+ };
659
+ const checks = [...detectAvailableChecks(cwd)].sort((a, b) => Number(coversChanged(b)) - Number(coversChanged(a)) || b.strength - a.strength);
383
660
  // A WRITING deliverable is verified by its CONTENT, not by a test/build/run —
384
661
  // none of those apply to prose, and asking for them sent a weak model into
385
662
  // empty retries. Say what the check actually is, so it converges in one step.
@@ -405,12 +682,20 @@ export function verificationNudgeFor(cwd, changedFiles = []) {
405
682
  'report what it showed. If even that is impossible, say so explicitly and do NOT claim ' +
406
683
  'the change works.');
407
684
  }
408
- const list = checks
409
- .slice(0, 3)
685
+ const best = checks.slice(0, 3);
686
+ const list = best
410
687
  .map((c, i) => ` ${i + 1}. \`${c.command}\` — ${c.label}`)
411
688
  .join('\n');
689
+ // Say WHEN the first check is the one that covers this change, so a monorepo
690
+ // turn does not answer a nested package's change with the root suite (a suite
691
+ // that cannot see it). Only asserted when it is true of the files shown.
692
+ const top = best[0];
693
+ const coversLine = top && coversChanged(top)
694
+ ? `\n\`${top.command}\` is the check that COVERS the file(s) you changed; the others ` +
695
+ 'run a different part of the repository and cannot observe this change.\n'
696
+ : '';
412
697
  return (`${head}\n` +
413
- `This project's strongest available checks, best first:\n${list}\n` +
698
+ `This project's strongest available checks, best first:${coversLine}\n${list}\n` +
414
699
  'Run the strongest one and report what it showed. If it does not apply to this change, say ' +
415
700
  'which you tried and why. If none of them runs, say so explicitly and do NOT claim the ' +
416
701
  'change works.');
@@ -1 +1 @@
1
- {"version":3,"file":"edit-verification.js","sourceRoot":"","sources":["../../src/tools/edit-verification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit-verification.js","sourceRoot":"","sources":["../../src/tools/edit-verification.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ import { buildGitStateDigest } from './git-digest.js';
31
31
  import { assessProject } from '../agents/prompt-assembly.js';
32
32
  import { handoffBlockFor } from '../agents/step-handoff.js';
33
33
  import { describeProjectInterpreter } from '../utils/project-env.js';
34
- import { formatWorkingState, getWorkingState } from '../learning/working-state.js';
34
+ import { workingStateBlock as readWorkingStateBlock } from '../learning/working-state.js';
35
35
  import { formatCrossSessionMemory } from '../learning/context-assembly.js';
36
36
  /** Hard budget: the tree block is truncated to this many lines (~1.5K tokens). */
37
37
  const MAX_TREE_LINES = 60;
@@ -166,7 +166,7 @@ export async function buildLoopProjectContext(dir, opts = {}) {
166
166
  // closes the drift where the orchestrator remembered across turns and the
167
167
  // loop did not. Self-labelled and self-bounded; omits itself when empty.
168
168
  try {
169
- const workingState = formatWorkingState(getWorkingState(dir));
169
+ const workingState = readWorkingStateBlock(dir);
170
170
  if (workingState)
171
171
  lines.push(workingState);
172
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loop-project-context.js","sourceRoot":"","sources":["../../src/tools/loop-project-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop-project-context.js","sourceRoot":"","sources":["../../src/tools/loop-project-context.ts"],"names":[],"mappings":"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"}
@@ -487,6 +487,17 @@ export interface ToolLoopResult {
487
487
  * about an outbound DELIVERY), this is about a CODE change.
488
488
  */
489
489
  unverifiedEdit?: boolean;
490
+ /**
491
+ * PER-FILE verification truth, from `assessEditActivity`. `verifiedPaths` are
492
+ * the changed paths a check actually exercised this turn; `unverifiedPaths`
493
+ * are the ones nothing did. The caller records both in the working-state
494
+ * ledger, so the debt it owes is a set of paths — a whole-turn boolean cannot
495
+ * say which change still needs a look, and (in a monorepo) cannot tell a root
496
+ * check from the nested package's own suite that never ran.
497
+ */
498
+ verifiedPaths?: string[];
499
+ /** @see ToolLoopResult.verifiedPaths */
500
+ unverifiedPaths?: string[];
490
501
  /**
491
502
  * HONESTY FLAG (G13b) — the request asked for an AUTHORED deliverable to be
492
503
  * PRODUCED and this turn wrote NOTHING to disk, so the answer is prose about
@@ -1005,6 +1016,29 @@ export declare function planContextBlock(plan: {
1005
1016
  }>;
1006
1017
  revision: number;
1007
1018
  }): string;
1019
+ /**
1020
+ * The bounded PLAN CLOSE-OUT nudge — the loop asking the model to settle the
1021
+ * plan it opened this turn before the turn ends.
1022
+ *
1023
+ * WHY. The plan is the checklist the user watches, and a plan left with steps
1024
+ * `running`/`pending` at the end of a turn that engaged it is exactly the failure
1025
+ * the tracker exists to prevent: measured 2026-10-09
1026
+ * (trace-1791542886258-pg42ox), a plan sat frozen at "1/7 steps" for two days and
1027
+ * was only advanced after the user asked why. One nudge, once, naming the open
1028
+ * steps and requiring a REAL status (done, or blocked with a one-line note)
1029
+ * closes it. It fires only when this turn DECLARED or UPDATED the plan — never on
1030
+ * a turn that merely carried one, so an unrelated turn is not asked to advance
1031
+ * somebody else's checklist (the report labels a carried plan instead).
1032
+ */
1033
+ export declare function planCloseoutNudge(plan: {
1034
+ goal: string;
1035
+ steps: Array<{
1036
+ id: string;
1037
+ description: string;
1038
+ status: string;
1039
+ note?: string;
1040
+ }>;
1041
+ }): string;
1008
1042
  /**
1009
1043
  * The refusal a tool call gets when its ARGUMENTS never arrived.
1010
1044
  *