@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.
- package/dist/build-provenance.json +2 -2
- package/dist/cloud/nexus-enrol.d.ts +9 -0
- package/dist/cloud/nexus-enrol.d.ts.map +1 -1
- package/dist/cloud/nexus-enrol.js +45 -2
- package/dist/cloud/nexus-enrol.js.map +1 -1
- package/dist/cloud/nexus-first-run.d.ts +142 -0
- package/dist/cloud/nexus-first-run.d.ts.map +1 -0
- package/dist/cloud/nexus-first-run.js +352 -0
- package/dist/cloud/nexus-first-run.js.map +1 -0
- package/dist/cloud/nexus-project-names.d.ts +173 -0
- package/dist/cloud/nexus-project-names.d.ts.map +1 -0
- package/dist/cloud/nexus-project-names.js +314 -0
- package/dist/cloud/nexus-project-names.js.map +1 -0
- package/dist/cloud/nexus-vault-keys.d.ts +33 -2
- package/dist/cloud/nexus-vault-keys.d.ts.map +1 -1
- package/dist/cloud/nexus-vault-keys.js +132 -12
- package/dist/cloud/nexus-vault-keys.js.map +1 -1
- package/dist/dispatch/contracts/derive-output-contract.d.ts +1 -1
- package/dist/dispatch/contracts/derive-output-contract.d.ts.map +1 -1
- package/dist/dispatch/contracts/derive-output-contract.js +2 -1
- package/dist/dispatch/contracts/derive-output-contract.js.map +1 -1
- package/dist/dispatch/contracts/output-contracts.d.ts +2 -1
- package/dist/dispatch/contracts/output-contracts.d.ts.map +1 -1
- package/dist/dispatch/contracts/output-contracts.js +1 -1
- package/dist/dispatch/contracts/output-contracts.js.map +1 -1
- package/dist/dispatch/mvi-projection.d.ts +1 -1
- package/dist/dispatch/mvi-projection.d.ts.map +1 -1
- package/dist/dispatch/mvi-projection.js +1 -1
- package/dist/dispatch/mvi-projection.js.map +1 -1
- package/dist/docs/export-document.js +24462 -24572
- package/dist/docs/export-document.js.map +3 -3
- package/dist/doctor/db-substrate.d.ts +6 -9
- package/dist/doctor/db-substrate.d.ts.map +1 -1
- package/dist/doctor/db-substrate.js +10 -14
- package/dist/doctor/db-substrate.js.map +1 -1
- package/dist/doctor/migrations.d.ts +18 -0
- package/dist/doctor/migrations.d.ts.map +1 -1
- package/dist/doctor/migrations.js +54 -2
- package/dist/doctor/migrations.js.map +1 -1
- package/dist/error-catalog.js +1 -1
- package/dist/error-catalog.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +21 -5
- package/dist/init.js.map +1 -1
- package/dist/llm/conversation.d.ts.map +1 -1
- package/dist/llm/conversation.js +15 -4
- package/dist/llm/conversation.js.map +1 -1
- package/dist/llm/plugin-facade.js +277 -376
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/llm/transports/bedrock.d.ts +1 -0
- package/dist/llm/transports/bedrock.d.ts.map +1 -1
- package/dist/llm/transports/bedrock.js +30 -12
- package/dist/llm/transports/bedrock.js.map +1 -1
- package/dist/memory/decision-contradiction.d.ts.map +1 -1
- package/dist/memory/decision-contradiction.js +10 -5
- package/dist/memory/decision-contradiction.js.map +1 -1
- package/dist/memory/dialectic-evaluator.d.ts.map +1 -1
- package/dist/memory/dialectic-evaluator.js +4 -1
- package/dist/memory/dialectic-evaluator.js.map +1 -1
- package/dist/memory/transcript-extractor.d.ts.map +1 -1
- package/dist/memory/transcript-extractor.js +3 -2
- package/dist/memory/transcript-extractor.js.map +1 -1
- package/dist/metrics/token-service.d.ts +16 -0
- package/dist/metrics/token-service.d.ts.map +1 -1
- package/dist/metrics/token-service.js +18 -0
- package/dist/metrics/token-service.js.map +1 -1
- package/dist/nexus/api-contracts.d.ts.map +1 -1
- package/dist/nexus/api-contracts.js +27 -11
- package/dist/nexus/api-contracts.js.map +1 -1
- package/dist/nexus/api-extractors/http-extractor.d.ts +2 -2
- package/dist/nexus/api-extractors/http-extractor.d.ts.map +1 -1
- package/dist/nexus/api-extractors/http-extractor.js +3 -3
- package/dist/nexus/api-extractors/http-extractor.js.map +1 -1
- package/dist/nexus/clusters.js +1 -1
- package/dist/nexus/clusters.js.map +1 -1
- package/dist/nexus/diff.d.ts +1 -1
- package/dist/nexus/diff.d.ts.map +1 -1
- package/dist/nexus/diff.js +3 -2
- package/dist/nexus/diff.js.map +1 -1
- package/dist/nexus/flows.js +1 -1
- package/dist/nexus/flows.js.map +1 -1
- package/dist/nexus/identity.d.ts +8 -0
- package/dist/nexus/identity.d.ts.map +1 -1
- package/dist/nexus/identity.js +17 -1
- package/dist/nexus/identity.js.map +1 -1
- package/dist/nexus/index.d.ts +1 -1
- package/dist/nexus/index.d.ts.map +1 -1
- package/dist/nexus/index.js +2 -2
- package/dist/nexus/index.js.map +1 -1
- package/dist/nexus/nexus-bridge.d.ts.map +1 -1
- package/dist/nexus/nexus-bridge.js +5 -5
- package/dist/nexus/nexus-bridge.js.map +1 -1
- package/dist/nexus/registry.d.ts +22 -0
- package/dist/nexus/registry.d.ts.map +1 -1
- package/dist/nexus/registry.js +76 -1
- package/dist/nexus/registry.js.map +1 -1
- package/dist/paths.js +1 -1
- package/dist/paths.js.map +1 -1
- package/dist/project-scope.js +1 -1
- package/dist/project-scope.js.map +1 -1
- package/dist/project-tombstone.js +1 -1
- package/dist/project-tombstone.js.map +1 -1
- package/dist/release/open.d.ts +3 -6
- package/dist/release/open.d.ts.map +1 -1
- package/dist/release/open.js +59 -23
- package/dist/release/open.js.map +1 -1
- package/dist/release/preflight-skip.d.ts +69 -10
- package/dist/release/preflight-skip.d.ts.map +1 -1
- package/dist/release/preflight-skip.js +195 -47
- package/dist/release/preflight-skip.js.map +1 -1
- package/dist/render/colors.js +1 -19
- package/dist/render/colors.js.map +1 -1
- package/dist/render/tasks/colors.js +1 -1
- package/dist/render/tasks/colors.js.map +1 -1
- package/dist/resources/governor.d.ts +12 -0
- package/dist/resources/governor.d.ts.map +1 -1
- package/dist/resources/governor.js +5 -1
- package/dist/resources/governor.js.map +1 -1
- package/dist/resources/heavy-command-hook-delivery.d.ts +144 -0
- package/dist/resources/heavy-command-hook-delivery.d.ts.map +1 -0
- package/dist/resources/heavy-command-hook-delivery.js +204 -0
- package/dist/resources/heavy-command-hook-delivery.js.map +1 -0
- package/dist/resources/heavy-command.d.ts +69 -0
- package/dist/resources/heavy-command.d.ts.map +1 -1
- package/dist/resources/heavy-command.js +479 -7
- package/dist/resources/heavy-command.js.map +1 -1
- package/dist/resources/run-class.d.ts.map +1 -1
- package/dist/resources/run-class.js +1 -0
- package/dist/resources/run-class.js.map +1 -1
- package/dist/routing/build-command-groups.d.ts +1 -1
- package/dist/routing/build-command-groups.d.ts.map +1 -1
- package/dist/routing/build-command-groups.js +4 -1
- package/dist/routing/build-command-groups.js.map +1 -1
- package/dist/scaffold/ensure-skills.d.ts.map +1 -1
- package/dist/scaffold/ensure-skills.js +58 -2
- package/dist/scaffold/ensure-skills.js.map +1 -1
- package/dist/selfimprove/fix-gen.js +277 -376
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +11 -0
- package/dist/sessions/briefing.js.map +1 -1
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +6 -1
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/table-classification.d.ts +27 -0
- package/dist/store/table-classification.d.ts.map +1 -1
- package/dist/store/table-classification.js +32 -0
- package/dist/store/table-classification.js.map +1 -1
- package/dist/store/vault-manifest.d.ts +5 -1
- package/dist/store/vault-manifest.d.ts.map +1 -1
- package/dist/store/vault-manifest.js +9 -2
- package/dist/store/vault-manifest.js.map +1 -1
- package/dist/system/health.d.ts +13 -0
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +96 -1
- package/dist/system/health.js.map +1 -1
- package/dist/tasks/affected-packages.d.ts +20 -7
- package/dist/tasks/affected-packages.d.ts.map +1 -1
- package/dist/tasks/affected-packages.js +39 -13
- package/dist/tasks/affected-packages.js.map +1 -1
- package/dist/tasks/affected-template.d.ts +93 -0
- package/dist/tasks/affected-template.d.ts.map +1 -0
- package/dist/tasks/affected-template.js +198 -0
- package/dist/tasks/affected-template.js.map +1 -0
- package/dist/tasks/command-line.d.ts +4 -1
- package/dist/tasks/command-line.d.ts.map +1 -1
- package/dist/tasks/command-line.js +7 -2
- package/dist/tasks/command-line.js.map +1 -1
- package/dist/tasks/done-plan.d.ts.map +1 -1
- package/dist/tasks/done-plan.js +12 -2
- package/dist/tasks/done-plan.js.map +1 -1
- package/dist/tasks/duplicate-detector.d.ts.map +1 -1
- package/dist/tasks/duplicate-detector.js +11 -5
- package/dist/tasks/duplicate-detector.js.map +1 -1
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +185 -11
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/heavy-tool-env.d.ts +385 -18
- package/dist/tasks/heavy-tool-env.d.ts.map +1 -1
- package/dist/tasks/heavy-tool-env.js +719 -40
- package/dist/tasks/heavy-tool-env.js.map +1 -1
- package/dist/tasks/index.d.ts +2 -2
- package/dist/tasks/index.d.ts.map +1 -1
- package/dist/tasks/index.js +1 -1
- package/dist/tasks/index.js.map +1 -1
- package/dist/tasks/tool-cache-env.d.ts +20 -13
- package/dist/tasks/tool-cache-env.d.ts.map +1 -1
- package/dist/tasks/tool-cache-env.js +27 -48
- package/dist/tasks/tool-cache-env.js.map +1 -1
- package/dist/tasks/tool-cache.d.ts +8 -0
- package/dist/tasks/tool-cache.d.ts.map +1 -1
- package/dist/tasks/tool-cache.js +19 -6
- package/dist/tasks/tool-cache.js.map +1 -1
- package/dist/tasks/tool-semaphore.d.ts +66 -23
- package/dist/tasks/tool-semaphore.d.ts.map +1 -1
- package/dist/tasks/tool-semaphore.js +96 -34
- package/dist/tasks/tool-semaphore.js.map +1 -1
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +37 -4
- package/dist/upgrade.js.map +1 -1
- package/dist/validation/doctor/checks.d.ts +17 -0
- package/dist/validation/doctor/checks.d.ts.map +1 -1
- package/dist/validation/doctor/checks.js +83 -0
- package/dist/validation/doctor/checks.js.map +1 -1
- package/package.json +13 -13
- 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":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAQH,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/tasks/evidence.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/evidence.js
CHANGED
|
@@ -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:
|
|
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
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
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:
|
|
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
|
|
1649
|
-
|
|
1650
|
-
`
|
|
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 };
|