@nodetool-ai/cli 0.8.1 → 0.8.2

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 (160) hide show
  1. package/README.md +4 -1
  2. package/dist/.nodetool-build-stamp +1 -1
  3. package/dist/affected/affected.d.ts +7 -12
  4. package/dist/affected/affected.d.ts.map +1 -1
  5. package/dist/affected/affected.js +42 -0
  6. package/dist/affected/affected.js.map +1 -1
  7. package/dist/app-debug/app-target.d.ts +1 -1
  8. package/dist/app-debug/app-target.d.ts.map +1 -1
  9. package/dist/app-debug/harness.d.ts +3 -1
  10. package/dist/app-debug/harness.d.ts.map +1 -1
  11. package/dist/app-debug/harness.js +23 -0
  12. package/dist/app-debug/harness.js.map +1 -1
  13. package/dist/app.d.ts.map +1 -1
  14. package/dist/app.js +2 -1
  15. package/dist/app.js.map +1 -1
  16. package/dist/chat-codeact.d.ts +8 -0
  17. package/dist/chat-codeact.d.ts.map +1 -1
  18. package/dist/chat-codeact.js +59 -21
  19. package/dist/chat-codeact.js.map +1 -1
  20. package/dist/chat-context.d.ts.map +1 -1
  21. package/dist/chat-context.js +7 -2
  22. package/dist/chat-context.js.map +1 -1
  23. package/dist/commands/__tests__/timeline-render-audio.test.js +1 -1
  24. package/dist/commands/__tests__/timeline-render-audio.test.js.map +1 -1
  25. package/dist/commands/__tests__/timeline-render-completeness.test.d.ts +2 -0
  26. package/dist/commands/__tests__/timeline-render-completeness.test.d.ts.map +1 -0
  27. package/dist/commands/__tests__/timeline-render-completeness.test.js +117 -0
  28. package/dist/commands/__tests__/timeline-render-completeness.test.js.map +1 -0
  29. package/dist/commands/__tests__/timeline-score.test.d.ts +2 -0
  30. package/dist/commands/__tests__/timeline-score.test.d.ts.map +1 -0
  31. package/dist/commands/__tests__/timeline-score.test.js +100 -0
  32. package/dist/commands/__tests__/timeline-score.test.js.map +1 -0
  33. package/dist/commands/agent.d.ts.map +1 -1
  34. package/dist/commands/agent.js +2 -1
  35. package/dist/commands/agent.js.map +1 -1
  36. package/dist/commands/app.d.ts.map +1 -1
  37. package/dist/commands/app.js +29 -5
  38. package/dist/commands/app.js.map +1 -1
  39. package/dist/commands/debug-summary-output.d.ts +22 -0
  40. package/dist/commands/debug-summary-output.d.ts.map +1 -0
  41. package/dist/commands/debug-summary-output.js +28 -0
  42. package/dist/commands/debug-summary-output.js.map +1 -0
  43. package/dist/commands/errors.d.ts +11 -0
  44. package/dist/commands/errors.d.ts.map +1 -0
  45. package/dist/commands/errors.js +177 -0
  46. package/dist/commands/errors.js.map +1 -0
  47. package/dist/commands/eval.d.ts.map +1 -1
  48. package/dist/commands/eval.js +2 -0
  49. package/dist/commands/eval.js.map +1 -1
  50. package/dist/commands/extension.d.ts +12 -0
  51. package/dist/commands/extension.d.ts.map +1 -0
  52. package/dist/commands/extension.js +30 -0
  53. package/dist/commands/extension.js.map +1 -0
  54. package/dist/commands/game-benchmark.d.ts +34 -0
  55. package/dist/commands/game-benchmark.d.ts.map +1 -0
  56. package/dist/commands/game-benchmark.js +95 -0
  57. package/dist/commands/game-benchmark.js.map +1 -0
  58. package/dist/commands/game-smoke.d.ts +3 -0
  59. package/dist/commands/game-smoke.d.ts.map +1 -0
  60. package/dist/commands/game-smoke.js +23 -0
  61. package/dist/commands/game-smoke.js.map +1 -0
  62. package/dist/commands/game.d.ts.map +1 -1
  63. package/dist/commands/game.js +247 -18
  64. package/dist/commands/game.js.map +1 -1
  65. package/dist/commands/harness.d.ts +50 -0
  66. package/dist/commands/harness.d.ts.map +1 -1
  67. package/dist/commands/harness.js +284 -70
  68. package/dist/commands/harness.js.map +1 -1
  69. package/dist/commands/js-script.d.ts.map +1 -1
  70. package/dist/commands/js-script.js +6 -22
  71. package/dist/commands/js-script.js.map +1 -1
  72. package/dist/commands/mcp.d.ts +21 -0
  73. package/dist/commands/mcp.d.ts.map +1 -0
  74. package/dist/commands/mcp.js +164 -0
  75. package/dist/commands/mcp.js.map +1 -0
  76. package/dist/commands/package.d.ts.map +1 -1
  77. package/dist/commands/package.js +12 -12
  78. package/dist/commands/package.js.map +1 -1
  79. package/dist/commands/runs.d.ts +7 -0
  80. package/dist/commands/runs.d.ts.map +1 -0
  81. package/dist/commands/runs.js +302 -0
  82. package/dist/commands/runs.js.map +1 -0
  83. package/dist/commands/sketch.d.ts.map +1 -1
  84. package/dist/commands/sketch.js +6 -22
  85. package/dist/commands/sketch.js.map +1 -1
  86. package/dist/commands/timeline-render.d.ts +6 -1
  87. package/dist/commands/timeline-render.d.ts.map +1 -1
  88. package/dist/commands/timeline-render.js +13 -4
  89. package/dist/commands/timeline-render.js.map +1 -1
  90. package/dist/commands/timeline-score.d.ts +16 -0
  91. package/dist/commands/timeline-score.d.ts.map +1 -0
  92. package/dist/commands/timeline-score.js +89 -0
  93. package/dist/commands/timeline-score.js.map +1 -0
  94. package/dist/commands/timeline.d.ts.map +1 -1
  95. package/dist/commands/timeline.js +8 -22
  96. package/dist/commands/timeline.js.map +1 -1
  97. package/dist/commands/worker.js +1 -1
  98. package/dist/commands/worker.js.map +1 -1
  99. package/dist/debug/server-runner.d.ts +2 -0
  100. package/dist/debug/server-runner.d.ts.map +1 -1
  101. package/dist/debug/server-runner.js +37 -4
  102. package/dist/debug/server-runner.js.map +1 -1
  103. package/dist/harness/capability-table.d.ts.map +1 -1
  104. package/dist/harness/capability-table.js +295 -27
  105. package/dist/harness/capability-table.js.map +1 -1
  106. package/dist/harness/changed-files.d.ts +2 -0
  107. package/dist/harness/changed-files.d.ts.map +1 -1
  108. package/dist/harness/changed-files.js +14 -0
  109. package/dist/harness/changed-files.js.map +1 -1
  110. package/dist/harness/registry.d.ts +32 -4
  111. package/dist/harness/registry.d.ts.map +1 -1
  112. package/dist/harness/registry.js +327 -31
  113. package/dist/harness/registry.js.map +1 -1
  114. package/dist/index.js +1 -1
  115. package/dist/index.js.map +1 -1
  116. package/dist/interaction-script.d.ts +23 -0
  117. package/dist/interaction-script.d.ts.map +1 -1
  118. package/dist/interaction-script.js +50 -1
  119. package/dist/interaction-script.js.map +1 -1
  120. package/dist/js-script-debug/harness.d.ts +11 -1
  121. package/dist/js-script-debug/harness.d.ts.map +1 -1
  122. package/dist/js-script-debug/harness.js +17 -39
  123. package/dist/js-script-debug/harness.js.map +1 -1
  124. package/dist/local-model-interfaces.d.ts.map +1 -1
  125. package/dist/local-model-interfaces.js +1 -24
  126. package/dist/local-model-interfaces.js.map +1 -1
  127. package/dist/node-registry.d.ts +14 -0
  128. package/dist/node-registry.d.ts.map +1 -1
  129. package/dist/node-registry.js +15 -18
  130. package/dist/node-registry.js.map +1 -1
  131. package/dist/nodetool-main.d.ts +15 -0
  132. package/dist/nodetool-main.d.ts.map +1 -0
  133. package/dist/nodetool-main.js +1368 -0
  134. package/dist/nodetool-main.js.map +1 -0
  135. package/dist/nodetool.d.ts +0 -13
  136. package/dist/nodetool.d.ts.map +1 -1
  137. package/dist/nodetool.js +17 -1683
  138. package/dist/nodetool.js.map +1 -1
  139. package/dist/providers.d.ts +1 -1
  140. package/dist/providers.d.ts.map +1 -1
  141. package/dist/providers.js +11 -1
  142. package/dist/providers.js.map +1 -1
  143. package/dist/run-dsl.d.ts +6 -0
  144. package/dist/run-dsl.d.ts.map +1 -1
  145. package/dist/run-dsl.js +4 -1
  146. package/dist/run-dsl.js.map +1 -1
  147. package/dist/sandbox-catalog.d.ts +12 -0
  148. package/dist/sandbox-catalog.d.ts.map +1 -1
  149. package/dist/sandbox-catalog.js +51 -0
  150. package/dist/sandbox-catalog.js.map +1 -1
  151. package/dist/sketch-debug/harness.d.ts.map +1 -1
  152. package/dist/sketch-debug/harness.js +2 -35
  153. package/dist/sketch-debug/harness.js.map +1 -1
  154. package/dist/stdin.d.ts.map +1 -1
  155. package/dist/stdin.js +2 -1
  156. package/dist/stdin.js.map +1 -1
  157. package/dist/timeline-debug/harness.d.ts.map +1 -1
  158. package/dist/timeline-debug/harness.js +2 -35
  159. package/dist/timeline-debug/harness.js.map +1 -1
  160. package/package.json +38 -35
@@ -13,7 +13,57 @@
13
13
  * `--timeout <seconds>` bounds each selfcheck (default 900s, fails closed on
14
14
  * timeout); a code file no surface claims fails the gate outright, and
15
15
  * `--strict` also fails on a touched surface only a gap note covers.
16
+ * Selfchecks that only re-run workspace test suites `npm run test:affected`
17
+ * already runs (`suiteOnly`) are skipped unless `--include-suites`.
18
+ * `--jobs <n>` runs the cheap selfchecks n at a time, each one's output
19
+ * buffered and printed as one block; expensive selfchecks stay serial.
20
+ *
21
+ * Every import of a built workspace package in this file is lazy, so the
22
+ * planning commands (`list`, `audit`, `gate --dry-run`) work on a tree whose
23
+ * `dist/` is not built (see ../nodetool.ts).
16
24
  */
17
25
  import type { Command } from "commander";
26
+ import { type GateCheck, type GatePlan } from "../harness/registry.js";
18
27
  export declare function registerHarnessCommands(program: Command): void;
28
+ /**
29
+ * Split a plan's checks into what runs now and what is deliberately left out.
30
+ * A suite-only check is skipped (and named) rather than silently dropped:
31
+ * `npm run test:affected` runs the same suites for the same diff, so running
32
+ * them here again is pure repetition unless `--include-suites` asks for it.
33
+ */
34
+ export declare function selectChecks(checks: readonly GateCheck[], opts: {
35
+ expensive?: boolean;
36
+ includeSuites?: boolean;
37
+ }): {
38
+ toRun: GateCheck[];
39
+ skippedExpensive: GateCheck[];
40
+ skippedSuites: GateCheck[];
41
+ };
42
+ export interface GateCheckResult {
43
+ harnessId: string;
44
+ command: string;
45
+ ok: boolean;
46
+ exitCode: number;
47
+ timedOut: boolean;
48
+ /** Killed by a signal or a spawn error that is not the timeout. */
49
+ killed: boolean;
50
+ }
51
+ export interface ExecuteChecksOptions {
52
+ repoRoot: string;
53
+ json: boolean;
54
+ timeoutMs: number;
55
+ timeoutSeconds: number;
56
+ jobs: number;
57
+ }
58
+ /**
59
+ * Run the selected selfchecks and return their results in plan order.
60
+ *
61
+ * With `jobs` of 1 every check runs serially in plan order with live output.
62
+ * With more, the cheap checks run `jobs` at a time with buffered output
63
+ * printed per check as a block, then the expensive ones run serially: they
64
+ * stage bundles and bind ports, so they cannot share a machine with each other
65
+ * or with the cheap pool.
66
+ */
67
+ export declare function executeChecks(checks: readonly GateCheck[], o: ExecuteChecksOptions): Promise<GateCheckResult[]>;
68
+ export declare function printGatePlan(plan: GatePlan, runCount: number, skippedExpensive: number, skippedSuites: readonly GateCheck[], all?: boolean): void;
19
69
  //# sourceMappingURL=harness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../src/commands/harness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuCzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqX9D"}
1
+ {"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../src/commands/harness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAML,KAAK,SAAS,EACd,KAAK,QAAQ,EACd,MAAM,wBAAwB,CAAC;AA+BhC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwW9D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GACrD;IACD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAC9B,aAAa,EAAE,SAAS,EAAE,CAAC;CAC5B,CAQA;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AA0KD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,CAAC,EAAE,oBAAoB,GACtB,OAAO,CAAC,eAAe,EAAE,CAAC,CAgD5B;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,SAAS,SAAS,EAAE,EACnC,GAAG,CAAC,EAAE,OAAO,GACZ,IAAI,CA8DN"}
@@ -1,7 +1,7 @@
1
1
  import { HARNESSES, SURFACES, auditHarnessCoverage, isUnclaimedPath, planGate } from "../harness/registry.js";
2
+ import { readWorkspacePackages } from "../affected/affected.js";
2
3
  import { auditCapabilityCoverage, planCapabilityMappingGate, resolveGateBaseRef } from "../harness/capability-coverage.js";
3
4
  import { CAPABILITY_COVERAGE } from "../harness/capability-table.js";
4
- import { declaredCapabilities } from "../harness/declared-capabilities.js";
5
5
  import { readChangedFiles, isGateRelevantCodeFile } from "../harness/changed-files.js";
6
6
  /** Sentinel exit code for a selfcheck the gate had to kill on timeout. */
7
7
  const TIMEOUT_EXIT_CODE = 124;
@@ -90,7 +90,9 @@ export function registerHarnessCommands(program) {
90
90
  .description("Audit capability coverage: every capability needs a suite, an eval case, or a gap note")
91
91
  .option("--json", "Print the audit result as JSON")
92
92
  .option("--strict", "Exit non-zero while any capability gap remains")
93
- .action((opts) => {
93
+ .action(async (opts) => {
94
+ // Lazy: declared-capabilities imports the built agents package.
95
+ const { declaredCapabilities } = await import("../harness/declared-capabilities.js");
94
96
  const result = auditCapabilityCoverage(declaredCapabilities(), CAPABILITY_COVERAGE, HARNESSES);
95
97
  if (opts.json) {
96
98
  console.log(JSON.stringify(result, null, 2));
@@ -141,12 +143,14 @@ export function registerHarnessCommands(program) {
141
143
  .option("--base <ref>", "Diff against a git ref (e.g. main) instead of the working tree")
142
144
  .option("--all", "Ignore the diff and run every selfcheck")
143
145
  .option("--expensive", "Include expensive selfchecks (bundle staging etc.)")
146
+ .option("--include-suites", "Also run selfchecks that only re-run suites `npm run test:affected` runs")
147
+ .option("--deps", "Also touch surfaces inside workspaces that depend on a changed one")
144
148
  .option("--dry-run", "Print the plan without running anything")
145
149
  .option("--json", "Print the plan (and results, unless --dry-run) as JSON")
146
150
  .option("--strict", "Exit non-zero when the diff touches a surface only a gap note covers")
147
151
  .option("--timeout <seconds>", "Kill a selfcheck that runs longer than this many seconds (default 900)", "900")
152
+ .option("--jobs <n>", "Run up to n cheap selfchecks at once (default 1, serial)", "1")
148
153
  .action(async (files, opts) => {
149
- const { spawnSync } = await import("node:child_process");
150
154
  const { fileURLToPath } = await import("node:url");
151
155
  const { dirname, resolve } = await import("node:path");
152
156
  const here = dirname(fileURLToPath(import.meta.url));
@@ -156,6 +160,10 @@ export function registerHarnessCommands(program) {
156
160
  const timeoutMs = Number.isFinite(timeoutSeconds) && timeoutSeconds > 0
157
161
  ? timeoutSeconds * 1000
158
162
  : 900_000;
163
+ const jobsRequested = Number(opts.jobs ?? "1");
164
+ const jobs = Number.isInteger(jobsRequested) && jobsRequested > 0
165
+ ? jobsRequested
166
+ : 1;
159
167
  let changedFiles = files;
160
168
  if (changedFiles.length === 0 && !opts.all) {
161
169
  changedFiles = readChangedFiles(repoRoot, opts.base);
@@ -171,20 +179,21 @@ export function registerHarnessCommands(program) {
171
179
  const plan = opts.all
172
180
  ? {
173
181
  changedFiles: [],
182
+ globalFiles: [],
174
183
  surfaces: [],
175
184
  checks: HARNESSES.filter((h) => h.selfcheck).map((h) => ({
176
185
  harnessId: h.id,
177
186
  command: h.selfcheck.command,
178
187
  cost: h.selfcheck.cost,
188
+ suiteOnly: h.selfcheck.suiteOnly ?? false,
179
189
  surfaces: []
180
190
  })),
181
191
  manual: [],
182
192
  uncoveredSurfaces: [],
183
193
  unmappedFiles: []
184
194
  }
185
- : planGate(changedFiles);
186
- const toRun = plan.checks.filter((c) => opts.expensive || c.cost === "cheap");
187
- const skippedExpensive = plan.checks.filter((c) => !opts.expensive && c.cost === "expensive");
195
+ : planGate(changedFiles, undefined, undefined, opts.deps ? readWorkspacePackages(repoRoot) : undefined);
196
+ const { toRun, skippedExpensive, skippedSuites } = selectChecks(plan.checks, { expensive: opts.expensive, includeSuites: opts.includeSuites });
188
197
  // A directory recorded in UNCLAIMED_PATHS has already been judged: no
189
198
  // harness reaches it, and the entry says why. `auditPathClaims` honors
190
199
  // that; the gate did not, so the first diff to touch such a directory
@@ -193,16 +202,22 @@ export function registerHarnessCommands(program) {
193
202
  .filter(isGateRelevantCodeFile)
194
203
  .filter((f) => !isUnclaimedPath(f));
195
204
  if (!opts.json) {
196
- printGatePlan(plan, toRun.length, skippedExpensive.length, opts.all);
205
+ printGatePlan(plan, toRun.length, skippedExpensive.length, skippedSuites, opts.all);
197
206
  if (unmappedCodeFiles.length > 0) {
198
207
  console.log("\nCode files no surface claims (the gate fails on these):");
199
208
  for (const f of unmappedCodeFiles)
200
209
  console.log(` ${f}`);
201
210
  }
202
211
  }
212
+ const skippedSuiteIds = skippedSuites.map((c) => c.harnessId);
203
213
  if (opts.dryRun) {
204
214
  if (opts.json) {
205
- console.log(JSON.stringify({ plan, mappingViolations, unmappedCodeFiles }, null, 2));
215
+ console.log(JSON.stringify({
216
+ plan,
217
+ skippedSuites: skippedSuiteIds,
218
+ mappingViolations,
219
+ unmappedCodeFiles
220
+ }, null, 2));
206
221
  }
207
222
  if (mappingViolations.length > 0 ||
208
223
  unmappedCodeFiles.length > 0 ||
@@ -211,66 +226,22 @@ export function registerHarnessCommands(program) {
211
226
  }
212
227
  return;
213
228
  }
214
- const results = [];
215
- for (const check of toRun) {
216
- if (!opts.json) {
217
- console.log(`\n── ${check.harnessId}: ${check.command}\n`);
218
- }
219
- // Selfchecks decide their own module resolution: strip the
220
- // `nodetool-dev` conditions this CLI may be running under (set by
221
- // `npm run dev:nodetool`), or dist-mode scripts like
222
- // reliability:ring0 resolve packages to src/ and fail.
223
- const nodeOptions = (process.env["NODE_OPTIONS"] ?? "")
224
- .replace(/--conditions[= ]nodetool-dev/g, "")
225
- .trim();
226
- const r = spawnSync(check.command, {
227
- cwd: repoRoot,
228
- shell: true,
229
- stdio: opts.json ? "pipe" : "inherit",
230
- encoding: "utf8",
231
- timeout: timeoutMs,
232
- maxBuffer: SELFCHECK_MAX_BUFFER,
233
- killSignal: "SIGKILL",
234
- env: {
235
- ...process.env,
236
- ...(nodeOptions
237
- ? { NODE_OPTIONS: nodeOptions }
238
- : { NODE_OPTIONS: "" })
239
- }
240
- });
241
- // spawnSync fails closed on a kill: a timeout or any other signal
242
- // leaves `status` null, which must count as a failure, never as
243
- // the "no exit code, assume ok" case. Only ETIMEDOUT is reported as
244
- // a timeout, though — every other signal used to be too, and a check
245
- // killed for some other reason then claimed to have run for the full
246
- // `--timeout` when it had run for three minutes.
247
- const errorCode = r.error
248
- ?.code;
249
- const timedOut = errorCode === "ETIMEDOUT";
250
- const killed = r.signal != null || r.error !== undefined;
251
- const exitCode = timedOut ? TIMEOUT_EXIT_CODE : (r.status ?? 1);
252
- if (opts.json && (timedOut || killed || exitCode !== 0)) {
253
- const output = `${r.stdout ?? ""}\n${r.stderr ?? ""}`.slice(-20_000);
254
- process.stderr.write(`\n${check.harnessId} failed (exit ${exitCode}):\n${output}\n`);
255
- }
256
- if (!opts.json && timedOut) {
257
- console.log(`\nTIMEOUT ${check.harnessId} exceeded ${timeoutSeconds}s: ${check.command}`);
258
- }
259
- else if (!opts.json && killed) {
260
- console.log(`\nKILLED ${check.harnessId} (${r.signal ?? errorCode}): ${check.command}`);
261
- }
262
- results.push({
263
- harnessId: check.harnessId,
264
- command: check.command,
265
- ok: !timedOut && !killed && exitCode === 0,
266
- exitCode,
267
- timedOut,
268
- killed
269
- });
270
- }
229
+ const results = await executeChecks(toRun, {
230
+ repoRoot,
231
+ json: opts.json === true,
232
+ timeoutMs,
233
+ timeoutSeconds,
234
+ jobs
235
+ });
271
236
  const failed = results.filter((r) => !r.ok);
272
237
  if (opts.json) {
273
- console.log(JSON.stringify({ plan, results, mappingViolations, unmappedCodeFiles }, null, 2));
238
+ console.log(JSON.stringify({
239
+ plan,
240
+ results,
241
+ skippedSuites: skippedSuiteIds,
242
+ mappingViolations,
243
+ unmappedCodeFiles
244
+ }, null, 2));
274
245
  }
275
246
  else if (toRun.length > 0) {
276
247
  console.log(`\nGate: ${results.length - failed.length}/${results.length} selfchecks passed`);
@@ -292,18 +263,260 @@ export function registerHarnessCommands(program) {
292
263
  }
293
264
  });
294
265
  }
295
- function printGatePlan(plan, runCount, skippedExpensive, all) {
266
+ /**
267
+ * Split a plan's checks into what runs now and what is deliberately left out.
268
+ * A suite-only check is skipped (and named) rather than silently dropped:
269
+ * `npm run test:affected` runs the same suites for the same diff, so running
270
+ * them here again is pure repetition unless `--include-suites` asks for it.
271
+ */
272
+ export function selectChecks(checks, opts) {
273
+ const skippedSuites = checks.filter((c) => c.suiteOnly && !opts.includeSuites);
274
+ const rest = checks.filter((c) => !skippedSuites.includes(c));
275
+ return {
276
+ toRun: rest.filter((c) => opts.expensive || c.cost === "cheap"),
277
+ skippedExpensive: rest.filter((c) => !opts.expensive && c.cost === "expensive"),
278
+ skippedSuites
279
+ };
280
+ }
281
+ /** Cap on what a failing selfcheck prints into `--json` mode's stderr. */
282
+ const FAILURE_OUTPUT_CHARS = 20_000;
283
+ /**
284
+ * Selfchecks decide their own module resolution: strip the `nodetool-dev`
285
+ * conditions this CLI may be running under (set by `npm run dev:nodetool`), or
286
+ * dist-mode scripts like reliability:ring0 resolve packages to src/ and fail.
287
+ */
288
+ function selfcheckEnv() {
289
+ const nodeOptions = (process.env["NODE_OPTIONS"] ?? "")
290
+ .replace(/--conditions[= ]nodetool-dev/g, "")
291
+ .trim();
292
+ return {
293
+ ...process.env,
294
+ ...(nodeOptions ? { NODE_OPTIONS: nodeOptions } : { NODE_OPTIONS: "" })
295
+ };
296
+ }
297
+ /** Run one selfcheck to completion, output inherited (serial, live). */
298
+ async function runCheckSync(check, o) {
299
+ const { spawnSync } = await import("node:child_process");
300
+ const r = spawnSync(check.command, {
301
+ cwd: o.repoRoot,
302
+ shell: true,
303
+ stdio: o.json ? "pipe" : "inherit",
304
+ encoding: "utf8",
305
+ timeout: o.timeoutMs,
306
+ maxBuffer: SELFCHECK_MAX_BUFFER,
307
+ killSignal: "SIGKILL",
308
+ env: selfcheckEnv()
309
+ });
310
+ return {
311
+ status: r.status,
312
+ signal: r.signal,
313
+ errorCode: r.error?.code,
314
+ hasError: r.error !== undefined,
315
+ stdout: r.stdout ?? "",
316
+ stderr: r.stderr ?? ""
317
+ };
318
+ }
319
+ /**
320
+ * Run one selfcheck without blocking, buffering its output. A stream keeps only
321
+ * its tail past the cap instead of killing the child, which is what a full
322
+ * pipe did to `spawnSync` (see SELFCHECK_MAX_BUFFER). The child leads its own
323
+ * process group so the timeout's SIGKILL reaches what the shell started, and
324
+ * the result settles at the kill rather than waiting on pipes a grandchild
325
+ * still holds.
326
+ */
327
+ async function runCheckAsync(check, o) {
328
+ const { spawn } = await import("node:child_process");
329
+ const cap = o.json ? FAILURE_OUTPUT_CHARS : SELFCHECK_MAX_BUFFER;
330
+ return new Promise((resolveOutcome) => {
331
+ let stdout = "";
332
+ let stderr = "";
333
+ let timedOut = false;
334
+ let spawnError;
335
+ let settled = false;
336
+ const child = spawn(check.command, {
337
+ cwd: o.repoRoot,
338
+ shell: true,
339
+ stdio: ["ignore", "pipe", "pipe"],
340
+ detached: true,
341
+ env: selfcheckEnv()
342
+ });
343
+ const settle = (status, signal) => {
344
+ if (settled)
345
+ return;
346
+ settled = true;
347
+ clearTimeout(timer);
348
+ resolveOutcome({
349
+ status,
350
+ signal,
351
+ errorCode: timedOut ? "ETIMEDOUT" : spawnError?.code,
352
+ hasError: timedOut || spawnError !== undefined,
353
+ stdout,
354
+ stderr
355
+ });
356
+ };
357
+ const timer = setTimeout(() => {
358
+ timedOut = true;
359
+ try {
360
+ if (child.pid !== undefined)
361
+ process.kill(-child.pid, "SIGKILL");
362
+ }
363
+ catch {
364
+ child.kill("SIGKILL");
365
+ }
366
+ settle(null, "SIGKILL");
367
+ }, o.timeoutMs);
368
+ child.stdout?.setEncoding("utf8");
369
+ child.stderr?.setEncoding("utf8");
370
+ child.stdout?.on("data", (d) => {
371
+ stdout += d;
372
+ if (stdout.length > cap)
373
+ stdout = stdout.slice(-cap);
374
+ });
375
+ child.stderr?.on("data", (d) => {
376
+ stderr += d;
377
+ if (stderr.length > cap)
378
+ stderr = stderr.slice(-cap);
379
+ });
380
+ child.on("error", (e) => {
381
+ spawnError = e;
382
+ settle(null, null);
383
+ });
384
+ child.on("close", (code, signal) => settle(code, signal));
385
+ });
386
+ }
387
+ /**
388
+ * Turn what a selfcheck did into a result and print its report. `emit` receives
389
+ * the text so a parallel run can print it as one block.
390
+ *
391
+ * Fails closed on a kill: a timeout or any other signal leaves `status` null,
392
+ * which counts as a failure, never as the "no exit code, assume ok" case. Only
393
+ * ETIMEDOUT is reported as a timeout, though — every other signal used to be
394
+ * too, and a check killed for some other reason then claimed to have run for
395
+ * the full `--timeout` when it had run for three minutes.
396
+ */
397
+ function interpretOutcome(check, raw, o) {
398
+ const timedOut = raw.errorCode === "ETIMEDOUT";
399
+ const killed = raw.signal != null || raw.hasError;
400
+ const exitCode = timedOut ? TIMEOUT_EXIT_CODE : (raw.status ?? 1);
401
+ let stderrText = "";
402
+ let stdoutText = "";
403
+ if (o.json && (timedOut || killed || exitCode !== 0)) {
404
+ const output = `${raw.stdout}\n${raw.stderr}`.slice(-FAILURE_OUTPUT_CHARS);
405
+ stderrText = `\n${check.harnessId} failed (exit ${exitCode}):\n${output}\n`;
406
+ }
407
+ if (!o.json && timedOut) {
408
+ stdoutText = `\nTIMEOUT ${check.harnessId} exceeded ${o.timeoutSeconds}s: ${check.command}\n`;
409
+ }
410
+ else if (!o.json && killed) {
411
+ stdoutText = `\nKILLED ${check.harnessId} (${raw.signal ?? raw.errorCode}): ${check.command}\n`;
412
+ }
413
+ return {
414
+ result: {
415
+ harnessId: check.harnessId,
416
+ command: check.command,
417
+ ok: !timedOut && !killed && exitCode === 0,
418
+ exitCode,
419
+ timedOut,
420
+ killed
421
+ },
422
+ stdoutText,
423
+ stderrText
424
+ };
425
+ }
426
+ /**
427
+ * Run the selected selfchecks and return their results in plan order.
428
+ *
429
+ * With `jobs` of 1 every check runs serially in plan order with live output.
430
+ * With more, the cheap checks run `jobs` at a time with buffered output
431
+ * printed per check as a block, then the expensive ones run serially: they
432
+ * stage bundles and bind ports, so they cannot share a machine with each other
433
+ * or with the cheap pool.
434
+ */
435
+ export async function executeChecks(checks, o) {
436
+ const results = new Array(checks.length);
437
+ const runSerial = async (index) => {
438
+ const check = checks[index];
439
+ if (!o.json)
440
+ console.log(`\n── ${check.harnessId}: ${check.command}\n`);
441
+ const { result, stdoutText, stderrText } = interpretOutcome(check, await runCheckSync(check, o), o);
442
+ if (stderrText)
443
+ process.stderr.write(stderrText);
444
+ if (stdoutText)
445
+ process.stdout.write(stdoutText);
446
+ results[index] = result;
447
+ };
448
+ if (o.jobs <= 1) {
449
+ for (let i = 0; i < checks.length; i++)
450
+ await runSerial(i);
451
+ return results;
452
+ }
453
+ const cheap = [];
454
+ const expensive = [];
455
+ checks.forEach((c, i) => (c.cost === "cheap" ? cheap : expensive).push(i));
456
+ let next = 0;
457
+ const worker = async () => {
458
+ while (next < cheap.length) {
459
+ const index = cheap[next++];
460
+ const check = checks[index];
461
+ const raw = await runCheckAsync(check, o);
462
+ const { result, stdoutText, stderrText } = interpretOutcome(check, raw, o);
463
+ // One block per check, written without an await in between, so output
464
+ // from checks that finish together does not interleave.
465
+ if (!o.json) {
466
+ process.stdout.write(`\n── ${check.harnessId}: ${check.command}\n\n${raw.stdout}`);
467
+ if (raw.stderr)
468
+ process.stderr.write(raw.stderr);
469
+ }
470
+ if (stderrText)
471
+ process.stderr.write(stderrText);
472
+ if (stdoutText)
473
+ process.stdout.write(stdoutText);
474
+ results[index] = result;
475
+ }
476
+ };
477
+ await Promise.all(Array.from({ length: Math.min(o.jobs, cheap.length) }, () => worker()));
478
+ for (const index of expensive)
479
+ await runSerial(index);
480
+ return results;
481
+ }
482
+ export function printGatePlan(plan, runCount, skippedExpensive, skippedSuites, all) {
483
+ const skipNote = [
484
+ skippedExpensive > 0
485
+ ? `${skippedExpensive} expensive skipped — pass --expensive`
486
+ : "",
487
+ skippedSuites.length > 0
488
+ ? `${skippedSuites.length} suite-only skipped — pass --include-suites`
489
+ : ""
490
+ ].filter(Boolean);
491
+ const suffix = skipNote.length > 0 ? ` (${skipNote.join("; ")})` : "";
492
+ const printSkippedSuites = () => {
493
+ if (skippedSuites.length === 0)
494
+ return;
495
+ console.log("\nCovered by `npm run test:affected` (selfcheck only re-runs those suites):");
496
+ for (const c of skippedSuites)
497
+ console.log(` ${c.harnessId}`);
498
+ };
296
499
  if (all) {
297
- console.log(`\nRunning all ${runCount} selfcheck(s)${skippedExpensive > 0 ? ` (${skippedExpensive} expensive skipped — pass --expensive)` : ""}`);
500
+ console.log(`\nRunning all ${runCount} selfcheck(s)${suffix}`);
501
+ printSkippedSuites();
298
502
  return;
299
503
  }
300
504
  if (plan.changedFiles.length === 0) {
301
505
  console.log("\nNo changed files — nothing to gate.");
302
506
  return;
303
507
  }
508
+ if (plan.globalFiles.length > 0) {
509
+ console.log(`\n${plan.globalFiles.length} global file(s) force every selfcheck:`);
510
+ for (const f of plan.globalFiles.slice(0, 8))
511
+ console.log(` ${f}`);
512
+ if (plan.globalFiles.length > 8) {
513
+ console.log(` …and ${plan.globalFiles.length - 8} more`);
514
+ }
515
+ }
304
516
  console.log(`\n${plan.changedFiles.length} changed file(s) touch ${plan.surfaces.length} surface(s):`);
305
517
  for (const s of plan.surfaces) {
306
- console.log(` ${s.id.padEnd(20)} (${s.files.length} file(s))`);
518
+ const via = s.viaDependency ? " (via dependency)" : "";
519
+ console.log(` ${s.id.padEnd(20)} (${s.files.length} file(s))${via}`);
307
520
  }
308
521
  if (plan.unmappedFiles.length > 0) {
309
522
  console.log(`\n${plan.unmappedFiles.length} file(s) outside any surface:`);
@@ -322,7 +535,8 @@ function printGatePlan(plan, runCount, skippedExpensive, all) {
322
535
  console.log(` ${m.harnessId.padEnd(18)} ${m.command}`);
323
536
  }
324
537
  }
325
- console.log(`\n${runCount} selfcheck(s) to run${skippedExpensive > 0 ? ` (${skippedExpensive} expensive skipped — pass --expensive)` : ""}`);
538
+ printSkippedSuites();
539
+ console.log(`\n${runCount} selfcheck(s) to run${suffix}`);
326
540
  }
327
541
  /**
328
542
  * A capability whose declared contract moved without its coverage mapping
@@ -1 +1 @@
1
- {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/commands/harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/commands/harness.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"js-script.d.ts","sourceRoot":"","sources":["../../src/commands/js-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAI5E,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAoCpC,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWtE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,6BAyBZ;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmK/D"}
1
+ {"version":3,"file":"js-script.d.ts","sourceRoot":"","sources":["../../src/commands/js-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAI5E,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAoCpC,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWtE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,6BAwBlD;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuK/D"}
@@ -1,4 +1,5 @@
1
1
  import { printCommandError } from "../command-errors.js";
2
+ import { printDebugSummary } from "./debug-summary-output.js";
2
3
  import { renderJsScriptValidation } from "./js-script-validation-output.js";
3
4
  import { registerJsScriptVersionsCommands } from "./js-script-versions.js";
4
5
  import { isRecord } from "../predicates.js";
@@ -168,7 +169,11 @@ export function registerJsScriptCommands(program) {
168
169
  console.log(JSON.stringify(report, null, 2));
169
170
  }
170
171
  else {
171
- printJsScriptSummary(report, bundleDir);
172
+ printDebugSummary(report, bundleDir, {
173
+ label: "script",
174
+ meta: `${report.meta.inputCount} input(s), ${report.meta.outputCount} output(s), ${report.meta.testCount} test(s)`,
175
+ file: "jsscript.json"
176
+ });
172
177
  }
173
178
  process.exit(report.verdict.ok ? 0 : 1);
174
179
  }
@@ -203,25 +208,4 @@ function printTestReport(report) {
203
208
  }
204
209
  }
205
210
  }
206
- function printJsScriptSummary(report, bundleDir) {
207
- const mark = report.verdict.ok ? "✅" : "❌";
208
- console.log(`\n${mark} ${report.verdict.headline}`);
209
- console.log(` script: ${report.meta.inputCount} input(s), ${report.meta.outputCount} output(s), ${report.meta.testCount} test(s)`);
210
- const failed = report.interactions.filter((i) => !i.ok).length;
211
- if (report.interactions.length > 0) {
212
- console.log(` session: ${report.interactions.length} step(s), ${failed} failed`);
213
- }
214
- if (report.verdict.issues.length > 0) {
215
- console.log("\nIssues:");
216
- for (const issue of report.verdict.issues)
217
- console.log(` - ${issue}`);
218
- }
219
- if (report.verdict.warnings && report.verdict.warnings.length > 0) {
220
- console.log("\nWarnings:");
221
- for (const warning of report.verdict.warnings)
222
- console.log(` - ${warning}`);
223
- }
224
- console.log(`\nDebug bundle: ${bundleDir}`);
225
- console.log(" report.md / report.json · jsscript.json");
226
- }
227
211
  //# sourceMappingURL=js-script.js.map