agent-nuvira 3.3.16 → 3.3.18

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 (63) 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/state.d.ts +22 -0
  13. package/dist/cli/state.d.ts.map +1 -0
  14. package/dist/cli/state.js +156 -0
  15. package/dist/cli/state.js.map +1 -0
  16. package/dist/cli/trace.d.ts.map +1 -1
  17. package/dist/cli/trace.js +21 -4
  18. package/dist/cli/trace.js.map +1 -1
  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-UJ1VG4JG.js} +86 -86
  61. package/src/web-dashboard/public/assets/{index-goRHl73H.js.map → index-UJ1VG4JG.js.map} +1 -1
  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
@@ -73,6 +73,45 @@ export interface ToolCallEvidence {
73
73
  * on the real check — it is not demoted for the parse step it contains.
74
74
  */
75
75
  export declare function isParseOnlyCheck(evidence: ToolCallEvidence): boolean;
76
+ /**
77
+ * Where do this command's checks actually RUN?
78
+ *
79
+ * `cd src/web-dashboard && npm test` → that package. `npm --prefix x run test`
80
+ * → x. `npm run test:dashboard` → wherever the root script it names goes, which
81
+ * is how a project declares the canonical check for a nested package. Anything
82
+ * else runs at `cwd`.
83
+ *
84
+ * One level of script indirection only (depth < 2), so a self-referential or
85
+ * pathological chain cannot loop.
86
+ */
87
+ export declare function checkRootFor(command: string, cwd: string, depth?: number): string;
88
+ /**
89
+ * WHICH of the changed files did this turn's verification actually EXERCISE?
90
+ *
91
+ * This is the per-file truth the gate's boolean and the working-state ledger's
92
+ * debt both derive from, so the two can never disagree about what was covered.
93
+ *
94
+ * A file counts when some successful observation either:
95
+ * - NAMES it (`grep … style.css`, `node --check script.js` — the parse filter
96
+ * below removes the syntax-only shapes), OR
97
+ * - is the `test` pipeline, judged by the same coverage rule as a generic
98
+ * command at the project root (see {@link checkRootFor}), OR
99
+ * - is a real `browser` run — a live observation of the running app, which is
100
+ * precisely the check a component change needs, so it is never narrowed, OR
101
+ * - is a generic project check whose ROOT covers the file (`npm test` at the
102
+ * root covers root files; the nested package's own script covers its own).
103
+ */
104
+ /**
105
+ * NOTE ON `needsVerification` vs the per-file split. The gate asks ONE question —
106
+ * "did anything observe this turn's result?" — and spends one bounded nudge; the
107
+ * split says WHICH files are still owed a check. They are deliberately not the
108
+ * same predicate: a turn that covered three of four files is not a turn with no
109
+ * verification at all, and firing the nudge on it would ask again for work the
110
+ * model already did. The outstanding file is carried by `unverifiedPaths`
111
+ * instead (the ledger's debt and the next turn's block), which is where it can
112
+ * be acted on; `needsVerification` stays what it always was.
113
+ */
114
+ export declare function verifiedPathsFor(evidence: readonly ToolCallEvidence[], changedFiles: readonly string[], cwd?: string): string[];
76
115
  /**
77
116
  * Did this turn's verification actually EXERCISE the artifact it changed?
78
117
  *
@@ -80,24 +119,34 @@ export declare function isParseOnlyCheck(evidence: ToolCallEvidence): boolean;
80
119
  * marked a turn "verified" (the same class of false positive the gate exists to
81
120
  * prevent). A run counts only when it:
82
121
  * - is the `test` pipeline or a real `browser` run (inherently project-wide), OR
83
- * - runs a generic project check (`npm test`, typecheck, build, linter), OR
84
- * - names one of the files the turn changed (e.g. `grep … style.css`,
85
- * `node --check script.js`).
122
+ * - runs a generic project check (`npm test`, typecheck, build, linter) that
123
+ * COVERS the changed file (see {@link checkRootFor} for the nested-package
124
+ * rule this gained), OR
125
+ * - names one of the files the turn changed (e.g. `grep … style.css`).
86
126
  *
87
127
  * When the turn's changed paths are UNKNOWN, it falls back to "any successful
88
128
  * verification counts" — the pre-strictening behaviour — so an unidentifiable
89
129
  * mutation is never falsely flagged.
130
+ *
131
+ * Delegates to {@link verifiedPathsFor} rather than re-implementing the rule, so
132
+ * the gate and the per-file debt cannot drift apart.
90
133
  */
91
- export declare function verificationExercisedArtifact(evidence: readonly ToolCallEvidence[], changedFiles: readonly string[]): boolean;
134
+ export declare function verificationExercisedArtifact(evidence: readonly ToolCallEvidence[], changedFiles: readonly string[], cwd?: string): boolean;
92
135
  /**
93
136
  * Full edit assessment for a turn: what mutated, what verified, and whether a
94
137
  * verification still OWED. This is the single call the loop uses so the gate,
95
138
  * the nudge and the honesty flag can never disagree.
139
+ *
140
+ * `verifiedPaths` / `unverifiedPaths` are the PER-FILE split of the same
141
+ * judgement; the caller records them in the working-state ledger so the debt it
142
+ * owes is a set of paths rather than a bare count.
96
143
  */
97
- export declare function assessEditActivity(toolsRun: readonly string[], evidence?: readonly ToolCallEvidence[], changedFiles?: readonly string[]): {
144
+ export declare function assessEditActivity(toolsRun: readonly string[], evidence?: readonly ToolCallEvidence[], changedFiles?: readonly string[], cwd?: string): {
98
145
  mutations: string[];
99
146
  verifications: string[];
100
147
  needsVerification: boolean;
148
+ verifiedPaths: string[];
149
+ unverifiedPaths: string[];
101
150
  };
102
151
  /**
103
152
  * True when the answer asserts a completed CODE change that no verification
@@ -126,6 +175,12 @@ export interface AvailableCheck {
126
175
  label: string;
127
176
  /** Higher = observes more. Used only for ordering. */
128
177
  strength: number;
178
+ /**
179
+ * Absolute directory this check COVERS — the package it runs in. Absent means
180
+ * the project root. Used to prefer the check that actually covers the files a
181
+ * turn changed (`npm run test:dashboard` over `npm test` for a dashboard file).
182
+ */
183
+ root?: string;
129
184
  }
130
185
  /**
131
186
  * Which verification checks does THIS project actually have?
@@ -1 +1 @@
1
- {"version":3,"file":"edit-verification.d.ts","sourceRoot":"","sources":["../../src/tools/edit-verification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAAwC,CAAC;AAExF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAKjD,CAAC;AAEH,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG;IACjE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAaA;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA6CD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAGpE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,OAAO,CAyBT;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,QAAQ,GAAE,SAAS,gBAAgB,EAAO,EAC1C,YAAY,GAAE,SAAS,MAAM,EAAO,GACnC;IACD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAIA;AA+BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,gBAAgB,EAAE,SAAS,MAAM,EAAE,GAClC,OAAO,CAeT;AAED;;;;GAIG;AACH,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAoBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CA4CnE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,QASyB,CAAC;AAyBzD,gEAAgE;AAChE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKzD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,SAAS,MAAM,EAAO,GAAG,MAAM,CAiD9F;AAED;;;;;;;;;;GAUG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,qBAAqB,QAIA,CAAC;AAEnC,eAAO,MAAM,qBAAqB,QAOuB,CAAC;AAE1D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAU/D;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAGf,CAAC"}
1
+ {"version":3,"file":"edit-verification.d.ts","sourceRoot":"","sources":["../../src/tools/edit-verification.ts"],"names":[],"mappings":"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"}
@@ -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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"}