@cleocode/core 2026.10.3 → 2026.10.4

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 (210) hide show
  1. package/dist/build-provenance.json +2 -2
  2. package/dist/cloud/nexus-enrol.d.ts +9 -0
  3. package/dist/cloud/nexus-enrol.d.ts.map +1 -1
  4. package/dist/cloud/nexus-enrol.js +45 -2
  5. package/dist/cloud/nexus-enrol.js.map +1 -1
  6. package/dist/cloud/nexus-first-run.d.ts +142 -0
  7. package/dist/cloud/nexus-first-run.d.ts.map +1 -0
  8. package/dist/cloud/nexus-first-run.js +352 -0
  9. package/dist/cloud/nexus-first-run.js.map +1 -0
  10. package/dist/cloud/nexus-project-names.d.ts +173 -0
  11. package/dist/cloud/nexus-project-names.d.ts.map +1 -0
  12. package/dist/cloud/nexus-project-names.js +314 -0
  13. package/dist/cloud/nexus-project-names.js.map +1 -0
  14. package/dist/cloud/nexus-vault-keys.d.ts +33 -2
  15. package/dist/cloud/nexus-vault-keys.d.ts.map +1 -1
  16. package/dist/cloud/nexus-vault-keys.js +132 -12
  17. package/dist/cloud/nexus-vault-keys.js.map +1 -1
  18. package/dist/dispatch/contracts/derive-output-contract.d.ts +1 -1
  19. package/dist/dispatch/contracts/derive-output-contract.d.ts.map +1 -1
  20. package/dist/dispatch/contracts/derive-output-contract.js +2 -1
  21. package/dist/dispatch/contracts/derive-output-contract.js.map +1 -1
  22. package/dist/dispatch/contracts/output-contracts.d.ts +2 -1
  23. package/dist/dispatch/contracts/output-contracts.d.ts.map +1 -1
  24. package/dist/dispatch/contracts/output-contracts.js +1 -1
  25. package/dist/dispatch/contracts/output-contracts.js.map +1 -1
  26. package/dist/dispatch/mvi-projection.d.ts +1 -1
  27. package/dist/dispatch/mvi-projection.d.ts.map +1 -1
  28. package/dist/dispatch/mvi-projection.js +1 -1
  29. package/dist/dispatch/mvi-projection.js.map +1 -1
  30. package/dist/docs/export-document.js +24462 -24572
  31. package/dist/docs/export-document.js.map +3 -3
  32. package/dist/doctor/db-substrate.d.ts +6 -9
  33. package/dist/doctor/db-substrate.d.ts.map +1 -1
  34. package/dist/doctor/db-substrate.js +10 -14
  35. package/dist/doctor/db-substrate.js.map +1 -1
  36. package/dist/doctor/migrations.d.ts +18 -0
  37. package/dist/doctor/migrations.d.ts.map +1 -1
  38. package/dist/doctor/migrations.js +54 -2
  39. package/dist/doctor/migrations.js.map +1 -1
  40. package/dist/error-catalog.js +1 -1
  41. package/dist/error-catalog.js.map +1 -1
  42. package/dist/errors.d.ts +1 -1
  43. package/dist/errors.d.ts.map +1 -1
  44. package/dist/errors.js +1 -1
  45. package/dist/errors.js.map +1 -1
  46. package/dist/init.d.ts.map +1 -1
  47. package/dist/init.js +21 -5
  48. package/dist/init.js.map +1 -1
  49. package/dist/llm/conversation.d.ts.map +1 -1
  50. package/dist/llm/conversation.js +15 -4
  51. package/dist/llm/conversation.js.map +1 -1
  52. package/dist/llm/plugin-facade.js +277 -376
  53. package/dist/llm/plugin-facade.js.map +3 -3
  54. package/dist/llm/transports/bedrock.d.ts +1 -0
  55. package/dist/llm/transports/bedrock.d.ts.map +1 -1
  56. package/dist/llm/transports/bedrock.js +30 -12
  57. package/dist/llm/transports/bedrock.js.map +1 -1
  58. package/dist/memory/decision-contradiction.d.ts.map +1 -1
  59. package/dist/memory/decision-contradiction.js +10 -5
  60. package/dist/memory/decision-contradiction.js.map +1 -1
  61. package/dist/memory/dialectic-evaluator.d.ts.map +1 -1
  62. package/dist/memory/dialectic-evaluator.js +4 -1
  63. package/dist/memory/dialectic-evaluator.js.map +1 -1
  64. package/dist/memory/transcript-extractor.d.ts.map +1 -1
  65. package/dist/memory/transcript-extractor.js +3 -2
  66. package/dist/memory/transcript-extractor.js.map +1 -1
  67. package/dist/metrics/token-service.d.ts +16 -0
  68. package/dist/metrics/token-service.d.ts.map +1 -1
  69. package/dist/metrics/token-service.js +18 -0
  70. package/dist/metrics/token-service.js.map +1 -1
  71. package/dist/nexus/api-contracts.d.ts.map +1 -1
  72. package/dist/nexus/api-contracts.js +27 -11
  73. package/dist/nexus/api-contracts.js.map +1 -1
  74. package/dist/nexus/api-extractors/http-extractor.d.ts +2 -2
  75. package/dist/nexus/api-extractors/http-extractor.d.ts.map +1 -1
  76. package/dist/nexus/api-extractors/http-extractor.js +3 -3
  77. package/dist/nexus/api-extractors/http-extractor.js.map +1 -1
  78. package/dist/nexus/clusters.js +1 -1
  79. package/dist/nexus/clusters.js.map +1 -1
  80. package/dist/nexus/diff.d.ts +1 -1
  81. package/dist/nexus/diff.d.ts.map +1 -1
  82. package/dist/nexus/diff.js +3 -2
  83. package/dist/nexus/diff.js.map +1 -1
  84. package/dist/nexus/flows.js +1 -1
  85. package/dist/nexus/flows.js.map +1 -1
  86. package/dist/nexus/identity.d.ts +8 -0
  87. package/dist/nexus/identity.d.ts.map +1 -1
  88. package/dist/nexus/identity.js +17 -1
  89. package/dist/nexus/identity.js.map +1 -1
  90. package/dist/nexus/index.d.ts +1 -1
  91. package/dist/nexus/index.d.ts.map +1 -1
  92. package/dist/nexus/index.js +2 -2
  93. package/dist/nexus/index.js.map +1 -1
  94. package/dist/nexus/nexus-bridge.d.ts.map +1 -1
  95. package/dist/nexus/nexus-bridge.js +5 -5
  96. package/dist/nexus/nexus-bridge.js.map +1 -1
  97. package/dist/nexus/registry.d.ts +22 -0
  98. package/dist/nexus/registry.d.ts.map +1 -1
  99. package/dist/nexus/registry.js +76 -1
  100. package/dist/nexus/registry.js.map +1 -1
  101. package/dist/paths.js +1 -1
  102. package/dist/paths.js.map +1 -1
  103. package/dist/project-scope.js +1 -1
  104. package/dist/project-scope.js.map +1 -1
  105. package/dist/project-tombstone.js +1 -1
  106. package/dist/project-tombstone.js.map +1 -1
  107. package/dist/release/open.d.ts +3 -6
  108. package/dist/release/open.d.ts.map +1 -1
  109. package/dist/release/open.js +59 -23
  110. package/dist/release/open.js.map +1 -1
  111. package/dist/release/preflight-skip.d.ts +69 -10
  112. package/dist/release/preflight-skip.d.ts.map +1 -1
  113. package/dist/release/preflight-skip.js +195 -47
  114. package/dist/release/preflight-skip.js.map +1 -1
  115. package/dist/render/colors.js +1 -19
  116. package/dist/render/colors.js.map +1 -1
  117. package/dist/render/tasks/colors.js +1 -1
  118. package/dist/render/tasks/colors.js.map +1 -1
  119. package/dist/resources/governor.d.ts +12 -0
  120. package/dist/resources/governor.d.ts.map +1 -1
  121. package/dist/resources/governor.js +5 -1
  122. package/dist/resources/governor.js.map +1 -1
  123. package/dist/resources/heavy-command-hook-delivery.d.ts +144 -0
  124. package/dist/resources/heavy-command-hook-delivery.d.ts.map +1 -0
  125. package/dist/resources/heavy-command-hook-delivery.js +204 -0
  126. package/dist/resources/heavy-command-hook-delivery.js.map +1 -0
  127. package/dist/resources/heavy-command.d.ts +69 -0
  128. package/dist/resources/heavy-command.d.ts.map +1 -1
  129. package/dist/resources/heavy-command.js +479 -7
  130. package/dist/resources/heavy-command.js.map +1 -1
  131. package/dist/resources/run-class.d.ts.map +1 -1
  132. package/dist/resources/run-class.js +1 -0
  133. package/dist/resources/run-class.js.map +1 -1
  134. package/dist/routing/build-command-groups.d.ts +1 -1
  135. package/dist/routing/build-command-groups.d.ts.map +1 -1
  136. package/dist/routing/build-command-groups.js +4 -1
  137. package/dist/routing/build-command-groups.js.map +1 -1
  138. package/dist/scaffold/ensure-skills.d.ts.map +1 -1
  139. package/dist/scaffold/ensure-skills.js +58 -2
  140. package/dist/scaffold/ensure-skills.js.map +1 -1
  141. package/dist/selfimprove/fix-gen.js +277 -376
  142. package/dist/selfimprove/fix-gen.js.map +3 -3
  143. package/dist/sessions/briefing.d.ts.map +1 -1
  144. package/dist/sessions/briefing.js +11 -0
  145. package/dist/sessions/briefing.js.map +1 -1
  146. package/dist/store/dual-scope-db.d.ts.map +1 -1
  147. package/dist/store/dual-scope-db.js +6 -1
  148. package/dist/store/dual-scope-db.js.map +1 -1
  149. package/dist/store/table-classification.d.ts +27 -0
  150. package/dist/store/table-classification.d.ts.map +1 -1
  151. package/dist/store/table-classification.js +32 -0
  152. package/dist/store/table-classification.js.map +1 -1
  153. package/dist/store/vault-manifest.d.ts +5 -1
  154. package/dist/store/vault-manifest.d.ts.map +1 -1
  155. package/dist/store/vault-manifest.js +9 -2
  156. package/dist/store/vault-manifest.js.map +1 -1
  157. package/dist/system/health.d.ts +13 -0
  158. package/dist/system/health.d.ts.map +1 -1
  159. package/dist/system/health.js +96 -1
  160. package/dist/system/health.js.map +1 -1
  161. package/dist/tasks/affected-packages.d.ts +20 -7
  162. package/dist/tasks/affected-packages.d.ts.map +1 -1
  163. package/dist/tasks/affected-packages.js +39 -13
  164. package/dist/tasks/affected-packages.js.map +1 -1
  165. package/dist/tasks/affected-template.d.ts +93 -0
  166. package/dist/tasks/affected-template.d.ts.map +1 -0
  167. package/dist/tasks/affected-template.js +198 -0
  168. package/dist/tasks/affected-template.js.map +1 -0
  169. package/dist/tasks/command-line.d.ts +4 -1
  170. package/dist/tasks/command-line.d.ts.map +1 -1
  171. package/dist/tasks/command-line.js +7 -2
  172. package/dist/tasks/command-line.js.map +1 -1
  173. package/dist/tasks/done-plan.d.ts.map +1 -1
  174. package/dist/tasks/done-plan.js +12 -2
  175. package/dist/tasks/done-plan.js.map +1 -1
  176. package/dist/tasks/duplicate-detector.d.ts.map +1 -1
  177. package/dist/tasks/duplicate-detector.js +11 -5
  178. package/dist/tasks/duplicate-detector.js.map +1 -1
  179. package/dist/tasks/evidence.d.ts.map +1 -1
  180. package/dist/tasks/evidence.js +185 -11
  181. package/dist/tasks/evidence.js.map +1 -1
  182. package/dist/tasks/heavy-tool-env.d.ts +385 -18
  183. package/dist/tasks/heavy-tool-env.d.ts.map +1 -1
  184. package/dist/tasks/heavy-tool-env.js +719 -40
  185. package/dist/tasks/heavy-tool-env.js.map +1 -1
  186. package/dist/tasks/index.d.ts +2 -2
  187. package/dist/tasks/index.d.ts.map +1 -1
  188. package/dist/tasks/index.js +1 -1
  189. package/dist/tasks/index.js.map +1 -1
  190. package/dist/tasks/tool-cache-env.d.ts +20 -13
  191. package/dist/tasks/tool-cache-env.d.ts.map +1 -1
  192. package/dist/tasks/tool-cache-env.js +27 -48
  193. package/dist/tasks/tool-cache-env.js.map +1 -1
  194. package/dist/tasks/tool-cache.d.ts +8 -0
  195. package/dist/tasks/tool-cache.d.ts.map +1 -1
  196. package/dist/tasks/tool-cache.js +19 -6
  197. package/dist/tasks/tool-cache.js.map +1 -1
  198. package/dist/tasks/tool-semaphore.d.ts +66 -23
  199. package/dist/tasks/tool-semaphore.d.ts.map +1 -1
  200. package/dist/tasks/tool-semaphore.js +96 -34
  201. package/dist/tasks/tool-semaphore.js.map +1 -1
  202. package/dist/upgrade.d.ts.map +1 -1
  203. package/dist/upgrade.js +37 -4
  204. package/dist/upgrade.js.map +1 -1
  205. package/dist/validation/doctor/checks.d.ts +17 -0
  206. package/dist/validation/doctor/checks.d.ts.map +1 -1
  207. package/dist/validation/doctor/checks.js +83 -0
  208. package/dist/validation/doctor/checks.js.map +1 -1
  209. package/package.json +13 -13
  210. package/schemas/project-context.schema.json +5 -1
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/tasks/evidence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/tasks/evidence.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ import { describeUnusableEvidenceGitRoot, E_EVIDENCE_GIT_ROOT, findNestedGitWork
31
31
  import { pushWarning } from '../output.js';
32
32
  import { getEffectiveHead } from '../worktree/effective-head.js';
33
33
  import { loadRecordedProjectRoots, rebaseLegacyEvidencePath } from './evidence-paths.js';
34
+ import { HEAVY_HEAP_ENV, HEAVY_WORKERS_ENV } from './heavy-tool-env.js';
34
35
  import { DISABLE_ENV, describeMemoryLimit } from './heavy-tool-limit.js';
35
36
  import { computeCommitRevalidationKey, readCommitRevalidationEntry, writeCommitRevalidationEntry, } from './revalidation-cache.js';
36
37
  import { bindTestRunReport, coveredTestFiles, TEST_RUN_MAX_RECORDED_FILES, } from './test-run-binding.js';
@@ -1202,6 +1203,121 @@ async function validateFiles(paths, roots, taskId, commitShaFor, requireCommitAr
1202
1203
  }
1203
1204
  return { ok: true, atom: { kind: 'files', files } };
1204
1205
  }
1206
+ /**
1207
+ * The counter sets a `test-run:` report may carry (gh#1804), tried in order;
1208
+ * the first whose total key is present is read. `failed` and `notRun` sum
1209
+ * their keys, and an absent count is 0.
1210
+ *
1211
+ * | Shape | Total | Passed | Failed | Skipped / todo |
1212
+ * |---|---|---|---|---|
1213
+ * | vitest `--reporter=json`, jest `--json` | `numTotalTests` | `numPassedTests` | `numFailedTests` | `numPendingTests`, `numTodoTests` |
1214
+ * | a runner's summary output (bun test, tsx --test) | `total` | `passed` | `failed` | `skipped`, `todo` |
1215
+ * | node --test summary (`# tests`, `# pass`, ...) | `tests` | `pass` | `fail`, `cancelled` | `skipped`, `todo` |
1216
+ *
1217
+ * Integrity (T13136 review): every count is a non-negative integer;
1218
+ * passed + failed + skipped/todo equals the total; a failure under ANY key
1219
+ * ({@link TEST_RUN_FAILURE_KEYS}) refuses, whichever set supplied the total;
1220
+ * a report's `exit` / `exitCode` must be a number, and a non-zero one is
1221
+ * refused. A `test-run:` atom proves only what its file says; `tool:test` and
1222
+ * `ci:<pr>` are what prove the run. `cleo verify --help` documents the same
1223
+ * sets.
1224
+ *
1225
+ * @task T13136
1226
+ */
1227
+ const TEST_RUN_COUNTER_SHAPES = [
1228
+ {
1229
+ name: 'vitest/jest',
1230
+ total: 'numTotalTests',
1231
+ passed: 'numPassedTests',
1232
+ failed: ['numFailedTests'],
1233
+ notRun: ['numPendingTests', 'numTodoTests'],
1234
+ },
1235
+ {
1236
+ name: 'summary',
1237
+ total: 'total',
1238
+ passed: 'passed',
1239
+ failed: ['failed'],
1240
+ notRun: ['skipped', 'todo'],
1241
+ },
1242
+ {
1243
+ name: 'node --test',
1244
+ total: 'tests',
1245
+ passed: 'pass',
1246
+ failed: ['fail', 'cancelled'],
1247
+ notRun: ['skipped', 'todo'],
1248
+ },
1249
+ ];
1250
+ /** The keys of each counter set, as the refusals name them. */
1251
+ const TEST_RUN_SHAPE_HINT = TEST_RUN_COUNTER_SHAPES.map((s) => `${[s.total, s.passed, ...s.failed, ...s.notRun].join('/')} (${s.name})`).join(', ');
1252
+ /**
1253
+ * Keys that name failures in any counter set, plus jest/vitest suite failures
1254
+ * and the mocha / JUnit spellings: a positive value under any of them refuses
1255
+ * the report, whichever set supplied the total.
1256
+ */
1257
+ const TEST_RUN_FAILURE_KEYS = [
1258
+ 'numFailedTests',
1259
+ 'numFailedTestSuites',
1260
+ 'numRuntimeErrorTestSuites',
1261
+ 'failed',
1262
+ 'fail',
1263
+ 'cancelled',
1264
+ 'failures',
1265
+ 'errors',
1266
+ ];
1267
+ /** A present, non-null JSON value. */
1268
+ const present = (value) => value !== undefined && value !== null;
1269
+ /** A non-negative integer, or `undefined` when the value is anything else. */
1270
+ const countOf = (value) => typeof value === 'number' && Number.isInteger(value) && value >= 0 ? value : undefined;
1271
+ /**
1272
+ * Read a report's counts from the first counter set it carries, enforcing
1273
+ * their integrity; `null` when it carries none.
1274
+ */
1275
+ function testRunCounts(report) {
1276
+ const shape = TEST_RUN_COUNTER_SHAPES.find((s) => present(report[s.total]));
1277
+ if (shape === undefined)
1278
+ return null;
1279
+ const invalid = (key) => ({
1280
+ reason: `test-run report's "${key}" is ${JSON.stringify(report[key])}; every count must be a non-negative integer`,
1281
+ codeName: 'E_EVIDENCE_INVALID',
1282
+ });
1283
+ const read = (key) => {
1284
+ if (!present(report[key]))
1285
+ return 0;
1286
+ return countOf(report[key]) ?? invalid(key);
1287
+ };
1288
+ const total = read(shape.total);
1289
+ if (typeof total !== 'number')
1290
+ return total;
1291
+ const keys = [shape.passed, ...shape.failed, ...shape.notRun];
1292
+ const values = [];
1293
+ for (const key of keys) {
1294
+ const v = read(key);
1295
+ if (typeof v !== 'number')
1296
+ return v;
1297
+ values.push(v);
1298
+ }
1299
+ for (const key of TEST_RUN_FAILURE_KEYS) {
1300
+ if (!present(report[key]))
1301
+ continue;
1302
+ const v = countOf(report[key]);
1303
+ if (v === undefined)
1304
+ return invalid(key);
1305
+ if (v > 0) {
1306
+ return { reason: `test-run reports ${key} = ${v}`, codeName: 'E_EVIDENCE_TESTS_FAILED' };
1307
+ }
1308
+ }
1309
+ const [passed = 0, ...rest] = values;
1310
+ const failed = rest.slice(0, shape.failed.length).reduce((a, b) => a + b, 0);
1311
+ const notRun = rest.slice(shape.failed.length).reduce((a, b) => a + b, 0);
1312
+ if (passed + failed + notRun !== total) {
1313
+ return {
1314
+ reason: `test-run report's counts do not add up: ${shape.total} is ${total}, but ` +
1315
+ `${shape.passed} + ${[...shape.failed, ...shape.notRun].join(' + ')} = ${passed + failed + notRun}`,
1316
+ codeName: 'E_EVIDENCE_INVALID',
1317
+ };
1318
+ }
1319
+ return { shape, total, passed, failed, notRun };
1320
+ }
1205
1321
  /**
1206
1322
  * `tool:test-affected` (D11150, T12635): run `testing.affectedCommand` over the
1207
1323
  * packages the branch diff touches plus their dependents, through the same
@@ -1228,7 +1344,8 @@ async function runAffectedTests(tool, run, roots) {
1228
1344
  return {
1229
1345
  ok: false,
1230
1346
  codeName: result.timedOut ? 'E_EVIDENCE_TOOL_TIMEOUT' : 'E_EVIDENCE_TOOL_FAILED',
1231
- reason: `tool:${tool} (affected: ${[run.command.cmd, ...run.command.args].join(' ')}) exited ${result.exitCode}: ${(result.stderrTail || result.stdoutTail).trim().slice(-300)}`,
1347
+ reason: `tool:${tool} (affected: ${[run.command.cmd, ...run.command.args].join(' ')}) exited ${result.exitCode}: ${(result.stderrTail || result.stdoutTail).trim().slice(-300)}` +
1348
+ (result.signal !== null || result.resourceKill !== null ? resourcePlanNote(result) : ''),
1232
1349
  };
1233
1350
  }
1234
1351
  return {
@@ -1239,7 +1356,10 @@ async function runAffectedTests(tool, run, roots) {
1239
1356
  exitCode: 0,
1240
1357
  stdoutTail: result.stdoutTail,
1241
1358
  scope: 'affected',
1242
- scopeReason: AFFECTED_SCOPE_BASIS,
1359
+ scopeReason: run.template.source === 'derived'
1360
+ ? `${AFFECTED_SCOPE_BASIS}; the affected command was derived from the workspace test ` +
1361
+ `command "${run.template.basis}" (declare testing.affectedCommand to pin it, T13125)`
1362
+ : AFFECTED_SCOPE_BASIS,
1243
1363
  affectedPackages: run.packages,
1244
1364
  affectedProjects: run.projects,
1245
1365
  ...(run.untested.length > 0 ? { untestedPackages: run.untested } : {}),
@@ -1417,14 +1537,57 @@ async function validateTestRun(path, roots, taskId) {
1417
1537
  codeName: 'E_EVIDENCE_INVALID',
1418
1538
  };
1419
1539
  }
1420
- const total = parsed.numTotalTests ?? 0;
1421
- const failed = parsed.numFailedTests ?? 0;
1422
- const passed = parsed.numPassedTests ?? 0;
1423
- const pending = (parsed.numPendingTests ?? 0) + (parsed.numTodoTests ?? 0);
1540
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
1541
+ return {
1542
+ ok: false,
1543
+ reason: `test-run file is not a JSON object. Expected test counts: ${TEST_RUN_SHAPE_HINT}`,
1544
+ codeName: 'E_EVIDENCE_INVALID',
1545
+ };
1546
+ }
1547
+ if (present(parsed.testResults) &&
1548
+ (!Array.isArray(parsed.testResults) ||
1549
+ parsed.testResults.some((tr) => tr === null || typeof tr !== 'object' || Array.isArray(tr)))) {
1550
+ return {
1551
+ ok: false,
1552
+ reason: 'test-run report\'s "testResults" must be an array of objects',
1553
+ codeName: 'E_EVIDENCE_INVALID',
1554
+ };
1555
+ }
1556
+ const counts = testRunCounts(parsed);
1557
+ if (counts !== null && !('shape' in counts)) {
1558
+ return { ok: false, reason: counts.reason, codeName: counts.codeName };
1559
+ }
1560
+ if (counts === null) {
1561
+ return {
1562
+ ok: false,
1563
+ reason: `test-run report has no test counts. Expected one of: ${TEST_RUN_SHAPE_HINT}; ` +
1564
+ "e.g. vitest's --reporter=json --outputFile, or " +
1565
+ '{"total":43,"passed":42,"failed":0,"skipped":1}',
1566
+ codeName: 'E_EVIDENCE_INVALID',
1567
+ };
1568
+ }
1569
+ const { total, failed, passed, notRun: pending } = counts;
1570
+ const exitKey = present(parsed['exit']) ? 'exit' : 'exitCode';
1571
+ const exitValue = parsed[exitKey];
1572
+ if (present(exitValue) && !(typeof exitValue === 'number' && Number.isInteger(exitValue))) {
1573
+ return {
1574
+ ok: false,
1575
+ reason: `test-run report's "${exitKey}" is ${JSON.stringify(exitValue)}; an exit code must be a number`,
1576
+ codeName: 'E_EVIDENCE_INVALID',
1577
+ };
1578
+ }
1579
+ const exit = typeof exitValue === 'number' ? exitValue : undefined;
1424
1580
  if (total === 0) {
1425
1581
  return {
1426
1582
  ok: false,
1427
- reason: 'test-run reports zero total tests (no tests were executed)',
1583
+ reason: `test-run reports zero total tests (no tests were executed): ${counts.shape.total} is 0`,
1584
+ codeName: 'E_EVIDENCE_TESTS_FAILED',
1585
+ };
1586
+ }
1587
+ if (exit !== undefined && exit !== 0) {
1588
+ return {
1589
+ ok: false,
1590
+ reason: `test-run reports exit code ${exit}`,
1428
1591
  codeName: 'E_EVIDENCE_TESTS_FAILED',
1429
1592
  };
1430
1593
  }
@@ -1626,7 +1789,7 @@ async function validateTool(tool, roots, context) {
1626
1789
  reason: `Tool "${tool}" → ${resolution.command.cmd} ${resolution.command.args.join(' ')} ` +
1627
1790
  `RAN for ${Math.round(result.durationMs / 1000)}s in ${result.executionRoot} and was ` +
1628
1791
  `KILLED by ${result.signal}. The binary is present and the command started — ` +
1629
- `this is not a resolution problem.${limit} ` +
1792
+ `this is not a resolution problem.${limit}${resourcePlanNote(result)} ` +
1630
1793
  `Nothing was cached, so a retry re-runs the tool from scratch and will be killed ` +
1631
1794
  `identically unless the cause is addressed.` +
1632
1795
  (result.stdoutTail || result.stderrTail
@@ -1645,9 +1808,10 @@ async function validateTool(tool, roots, context) {
1645
1808
  reason: `Tool "${tool}" → ${resolution.command.cmd} ${resolution.command.args.join(' ')} ` +
1646
1809
  `RAN for ${Math.round(result.durationMs / 1000)}s in ${result.executionRoot} and was ` +
1647
1810
  `KILLED for resources (${result.resourceKill}). This is not a verdict on the code, ` +
1648
- `and nothing was cached. Raise the heap (NODE_OPTIONS=--max-old-space-size=<MiB>) or lower the worker count ` +
1649
- `(VITEST_MAX_WORKERS=<n>) and verify again — both are part of the cache key, so the ` +
1650
- `retry runs fresh.` +
1811
+ `and nothing was cached.${resourcePlanNote(result)} Raise the heap with ` +
1812
+ `${HEAVY_HEAP_ENV}=<MiB> (an inherited NODE_OPTIONS heap above the run's budget is ` +
1813
+ `clamped, T13122) or lower the worker count with ${HEAVY_WORKERS_ENV}=<n>, and verify ` +
1814
+ `again — both are part of the cache key, so the retry runs fresh.` +
1651
1815
  (result.stdoutTail || result.stderrTail
1652
1816
  ? ` Last output: ${tailString(`${result.stdoutTail}\n${result.stderrTail}`, 512)}`
1653
1817
  : ''),
@@ -1734,8 +1898,18 @@ function toolRunAtomFields(result) {
1734
1898
  ...(result.treeHash ? { treeHash: result.treeHash } : {}),
1735
1899
  cacheHit: result.cacheHit,
1736
1900
  ...(result.flaky ? { flaky: result.flaky } : {}),
1901
+ // T13122: the heap and worker count the run got, and why — including an
1902
+ // inherited NODE_OPTIONS heap or worker count clamped to the budget.
1903
+ ...(result.resources ? { resources: result.resources } : {}),
1737
1904
  };
1738
1905
  }
1906
+ /**
1907
+ * One sentence naming the heap and worker plan a memory-bound tool ran under
1908
+ * (T13122), for a message about a kill; `''` for any other tool.
1909
+ */
1910
+ function resourcePlanNote(result) {
1911
+ return result.resources ? ` It ran with ${result.resources.summary}.` : '';
1912
+ }
1739
1913
  // Re-export so downstream code can keep importing the canonical-tools list
1740
1914
  // from evidence.ts without crossing into tool-resolver internals.
1741
1915
  export { CANONICAL_TOOLS };