@nodetool-ai/cli 0.7.0-rc.23 → 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 (535) hide show
  1. package/README.md +82 -0
  2. package/dist/.nodetool-build-stamp +1 -0
  3. package/dist/ExecutionTree.d.ts +2 -1
  4. package/dist/ExecutionTree.d.ts.map +1 -1
  5. package/dist/ExecutionTree.js +1 -1
  6. package/dist/ExecutionTree.js.map +1 -1
  7. package/dist/affected/affected.d.ts +45 -0
  8. package/dist/affected/affected.d.ts.map +1 -0
  9. package/dist/affected/affected.js +160 -0
  10. package/dist/affected/affected.js.map +1 -0
  11. package/dist/agent-toolbelt.d.ts +15 -0
  12. package/dist/agent-toolbelt.d.ts.map +1 -0
  13. package/dist/agent-toolbelt.js +28 -0
  14. package/dist/agent-toolbelt.js.map +1 -0
  15. package/dist/api-client.d.ts +12 -0
  16. package/dist/api-client.d.ts.map +1 -0
  17. package/dist/api-client.js +21 -0
  18. package/dist/api-client.js.map +1 -0
  19. package/dist/app-build/bundle.d.ts +15 -0
  20. package/dist/app-build/bundle.d.ts.map +1 -0
  21. package/dist/app-build/bundle.js +45 -0
  22. package/dist/app-build/bundle.js.map +1 -0
  23. package/dist/app-build/watch.d.ts +13 -0
  24. package/dist/app-build/watch.d.ts.map +1 -0
  25. package/dist/app-build/watch.js +25 -0
  26. package/dist/app-build/watch.js.map +1 -0
  27. package/dist/app-debug/app-target.d.ts +14 -0
  28. package/dist/app-debug/app-target.d.ts.map +1 -0
  29. package/dist/app-debug/app-target.js +120 -0
  30. package/dist/app-debug/app-target.js.map +1 -0
  31. package/dist/app-debug/harness.d.ts +29 -0
  32. package/dist/app-debug/harness.d.ts.map +1 -0
  33. package/dist/app-debug/harness.js +116 -0
  34. package/dist/app-debug/harness.js.map +1 -0
  35. package/dist/app-debug/index.d.ts +12 -0
  36. package/dist/app-debug/index.d.ts.map +1 -0
  37. package/dist/app-debug/index.js +9 -0
  38. package/dist/app-debug/index.js.map +1 -0
  39. package/dist/app.d.ts +38 -48
  40. package/dist/app.d.ts.map +1 -1
  41. package/dist/app.js +980 -677
  42. package/dist/app.js.map +1 -1
  43. package/dist/bash-tool.d.ts +13 -0
  44. package/dist/bash-tool.d.ts.map +1 -0
  45. package/dist/bash-tool.js +85 -0
  46. package/dist/bash-tool.js.map +1 -0
  47. package/dist/chat-codeact.d.ts +93 -0
  48. package/dist/chat-codeact.d.ts.map +1 -0
  49. package/dist/chat-codeact.js +179 -0
  50. package/dist/chat-codeact.js.map +1 -0
  51. package/dist/chat-context.d.ts +18 -0
  52. package/dist/chat-context.d.ts.map +1 -0
  53. package/dist/chat-context.js +32 -0
  54. package/dist/chat-context.js.map +1 -0
  55. package/dist/chat-media.d.ts +3 -0
  56. package/dist/chat-media.d.ts.map +1 -0
  57. package/dist/chat-media.js +46 -0
  58. package/dist/chat-media.js.map +1 -0
  59. package/dist/chat-prompts.d.ts +20 -0
  60. package/dist/chat-prompts.d.ts.map +1 -0
  61. package/dist/chat-prompts.js +42 -0
  62. package/dist/chat-prompts.js.map +1 -0
  63. package/dist/chat-sessions.d.ts +25 -0
  64. package/dist/chat-sessions.d.ts.map +1 -0
  65. package/dist/chat-sessions.js +153 -0
  66. package/dist/chat-sessions.js.map +1 -0
  67. package/dist/command-errors.d.ts +10 -0
  68. package/dist/command-errors.d.ts.map +1 -0
  69. package/dist/command-errors.js +15 -0
  70. package/dist/command-errors.js.map +1 -0
  71. package/dist/commands/__tests__/jtbd.test.d.ts +2 -0
  72. package/dist/commands/__tests__/jtbd.test.d.ts.map +1 -0
  73. package/dist/commands/__tests__/jtbd.test.js +120 -0
  74. package/dist/commands/__tests__/jtbd.test.js.map +1 -0
  75. package/dist/commands/__tests__/timeline-render-audio.test.d.ts +2 -0
  76. package/dist/commands/__tests__/timeline-render-audio.test.d.ts.map +1 -0
  77. package/dist/commands/__tests__/timeline-render-audio.test.js +53 -0
  78. package/dist/commands/__tests__/timeline-render-audio.test.js.map +1 -0
  79. package/dist/commands/__tests__/timeline-render-completeness.test.d.ts +2 -0
  80. package/dist/commands/__tests__/timeline-render-completeness.test.d.ts.map +1 -0
  81. package/dist/commands/__tests__/timeline-render-completeness.test.js +117 -0
  82. package/dist/commands/__tests__/timeline-render-completeness.test.js.map +1 -0
  83. package/dist/commands/__tests__/timeline-render.test.d.ts +2 -0
  84. package/dist/commands/__tests__/timeline-render.test.d.ts.map +1 -0
  85. package/dist/commands/__tests__/timeline-render.test.js +115 -0
  86. package/dist/commands/__tests__/timeline-render.test.js.map +1 -0
  87. package/dist/commands/__tests__/timeline-score.test.d.ts +2 -0
  88. package/dist/commands/__tests__/timeline-score.test.d.ts.map +1 -0
  89. package/dist/commands/__tests__/timeline-score.test.js +100 -0
  90. package/dist/commands/__tests__/timeline-score.test.js.map +1 -0
  91. package/dist/commands/affected.d.ts +9 -0
  92. package/dist/commands/affected.d.ts.map +1 -0
  93. package/dist/commands/affected.js +122 -0
  94. package/dist/commands/affected.js.map +1 -0
  95. package/dist/commands/agent.d.ts +26 -4
  96. package/dist/commands/agent.d.ts.map +1 -1
  97. package/dist/commands/agent.js +328 -306
  98. package/dist/commands/agent.js.map +1 -1
  99. package/dist/commands/app.d.ts +3 -0
  100. package/dist/commands/app.d.ts.map +1 -0
  101. package/dist/commands/app.js +405 -0
  102. package/dist/commands/app.js.map +1 -0
  103. package/dist/commands/apps.d.ts +15 -0
  104. package/dist/commands/apps.d.ts.map +1 -0
  105. package/dist/commands/apps.js +180 -0
  106. package/dist/commands/apps.js.map +1 -0
  107. package/dist/commands/auth.d.ts +12 -0
  108. package/dist/commands/auth.d.ts.map +1 -0
  109. package/dist/commands/auth.js +154 -0
  110. package/dist/commands/auth.js.map +1 -0
  111. package/dist/commands/collections.d.ts +10 -0
  112. package/dist/commands/collections.d.ts.map +1 -0
  113. package/dist/commands/collections.js +257 -0
  114. package/dist/commands/collections.js.map +1 -0
  115. package/dist/commands/costs.d.ts +15 -0
  116. package/dist/commands/costs.d.ts.map +1 -0
  117. package/dist/commands/costs.js +201 -0
  118. package/dist/commands/costs.js.map +1 -0
  119. package/dist/commands/db.d.ts +3 -0
  120. package/dist/commands/db.d.ts.map +1 -0
  121. package/dist/commands/db.js +176 -0
  122. package/dist/commands/db.js.map +1 -0
  123. package/dist/commands/debug-summary-output.d.ts +22 -0
  124. package/dist/commands/debug-summary-output.d.ts.map +1 -0
  125. package/dist/commands/debug-summary-output.js +28 -0
  126. package/dist/commands/debug-summary-output.js.map +1 -0
  127. package/dist/commands/debug.d.ts +13 -0
  128. package/dist/commands/debug.d.ts.map +1 -0
  129. package/dist/commands/debug.js +138 -0
  130. package/dist/commands/debug.js.map +1 -0
  131. package/dist/commands/deploy-helpers.d.ts +49 -18
  132. package/dist/commands/deploy-helpers.d.ts.map +1 -1
  133. package/dist/commands/deploy-helpers.js +10 -276
  134. package/dist/commands/deploy-helpers.js.map +1 -1
  135. package/dist/commands/deploy.d.ts +0 -1
  136. package/dist/commands/deploy.d.ts.map +1 -1
  137. package/dist/commands/deploy.js +21 -217
  138. package/dist/commands/deploy.js.map +1 -1
  139. package/dist/commands/errors.d.ts +11 -0
  140. package/dist/commands/errors.d.ts.map +1 -0
  141. package/dist/commands/errors.js +177 -0
  142. package/dist/commands/errors.js.map +1 -0
  143. package/dist/commands/eval.d.ts +152 -0
  144. package/dist/commands/eval.d.ts.map +1 -0
  145. package/dist/commands/eval.js +690 -0
  146. package/dist/commands/eval.js.map +1 -0
  147. package/dist/commands/extension.d.ts +12 -0
  148. package/dist/commands/extension.d.ts.map +1 -0
  149. package/dist/commands/extension.js +30 -0
  150. package/dist/commands/extension.js.map +1 -0
  151. package/dist/commands/game-benchmark.d.ts +34 -0
  152. package/dist/commands/game-benchmark.d.ts.map +1 -0
  153. package/dist/commands/game-benchmark.js +95 -0
  154. package/dist/commands/game-benchmark.js.map +1 -0
  155. package/dist/commands/game-smoke.d.ts +3 -0
  156. package/dist/commands/game-smoke.d.ts.map +1 -0
  157. package/dist/commands/game-smoke.js +23 -0
  158. package/dist/commands/game-smoke.js.map +1 -0
  159. package/dist/commands/game.d.ts +4 -0
  160. package/dist/commands/game.d.ts.map +1 -0
  161. package/dist/commands/game.js +624 -0
  162. package/dist/commands/game.js.map +1 -0
  163. package/dist/commands/generate.d.ts +17 -0
  164. package/dist/commands/generate.d.ts.map +1 -0
  165. package/dist/commands/generate.js +324 -0
  166. package/dist/commands/generate.js.map +1 -0
  167. package/dist/commands/generations.d.ts +17 -0
  168. package/dist/commands/generations.d.ts.map +1 -0
  169. package/dist/commands/generations.js +408 -0
  170. package/dist/commands/generations.js.map +1 -0
  171. package/dist/commands/harness.d.ts +69 -0
  172. package/dist/commands/harness.d.ts.map +1 -0
  173. package/dist/commands/harness.js +575 -0
  174. package/dist/commands/harness.js.map +1 -0
  175. package/dist/commands/js-script-validation-output.d.ts +7 -0
  176. package/dist/commands/js-script-validation-output.d.ts.map +1 -0
  177. package/dist/commands/js-script-validation-output.js +5 -0
  178. package/dist/commands/js-script-validation-output.js.map +1 -0
  179. package/dist/commands/js-script-versions.d.ts +53 -0
  180. package/dist/commands/js-script-versions.d.ts.map +1 -0
  181. package/dist/commands/js-script-versions.js +89 -0
  182. package/dist/commands/js-script-versions.js.map +1 -0
  183. package/dist/commands/js-script.d.ts +29 -0
  184. package/dist/commands/js-script.d.ts.map +1 -0
  185. package/dist/commands/js-script.js +211 -0
  186. package/dist/commands/js-script.js.map +1 -0
  187. package/dist/commands/jtbd.d.ts +38 -0
  188. package/dist/commands/jtbd.d.ts.map +1 -0
  189. package/dist/commands/jtbd.js +261 -0
  190. package/dist/commands/jtbd.js.map +1 -0
  191. package/dist/commands/local-db.d.ts +16 -0
  192. package/dist/commands/local-db.d.ts.map +1 -0
  193. package/dist/commands/local-db.js +33 -0
  194. package/dist/commands/local-db.js.map +1 -0
  195. package/dist/commands/mcp.d.ts +21 -0
  196. package/dist/commands/mcp.d.ts.map +1 -0
  197. package/dist/commands/mcp.js +164 -0
  198. package/dist/commands/mcp.js.map +1 -0
  199. package/dist/commands/migrate-code-inputs.d.ts +24 -0
  200. package/dist/commands/migrate-code-inputs.d.ts.map +1 -0
  201. package/dist/commands/migrate-code-inputs.js +120 -0
  202. package/dist/commands/migrate-code-inputs.js.map +1 -0
  203. package/dist/commands/models-hf.js +4 -4
  204. package/dist/commands/models-hf.js.map +1 -1
  205. package/dist/commands/models-recommended.d.ts.map +1 -1
  206. package/dist/commands/models-recommended.js +16 -24
  207. package/dist/commands/models-recommended.js.map +1 -1
  208. package/dist/commands/node.d.ts +10 -0
  209. package/dist/commands/node.d.ts.map +1 -0
  210. package/dist/commands/node.js +72 -0
  211. package/dist/commands/node.js.map +1 -0
  212. package/dist/commands/output.d.ts +24 -0
  213. package/dist/commands/output.d.ts.map +1 -0
  214. package/dist/commands/output.js +132 -0
  215. package/dist/commands/output.js.map +1 -0
  216. package/dist/commands/package-helpers.d.ts +1 -7
  217. package/dist/commands/package-helpers.d.ts.map +1 -1
  218. package/dist/commands/package-helpers.js +3 -26
  219. package/dist/commands/package-helpers.js.map +1 -1
  220. package/dist/commands/package.d.ts.map +1 -1
  221. package/dist/commands/package.js +14 -14
  222. package/dist/commands/package.js.map +1 -1
  223. package/dist/commands/packs.d.ts +13 -0
  224. package/dist/commands/packs.d.ts.map +1 -0
  225. package/dist/commands/packs.js +60 -0
  226. package/dist/commands/packs.js.map +1 -0
  227. package/dist/commands/reliability.d.ts +14 -0
  228. package/dist/commands/reliability.d.ts.map +1 -0
  229. package/dist/commands/reliability.js +80 -0
  230. package/dist/commands/reliability.js.map +1 -0
  231. package/dist/commands/resource-read.d.ts +28 -0
  232. package/dist/commands/resource-read.d.ts.map +1 -0
  233. package/dist/commands/resource-read.js +316 -0
  234. package/dist/commands/resource-read.js.map +1 -0
  235. package/dist/commands/runs.d.ts +7 -0
  236. package/dist/commands/runs.d.ts.map +1 -0
  237. package/dist/commands/runs.js +302 -0
  238. package/dist/commands/runs.js.map +1 -0
  239. package/dist/commands/sketch-validation-output.d.ts +7 -0
  240. package/dist/commands/sketch-validation-output.d.ts.map +1 -0
  241. package/dist/commands/sketch-validation-output.js +5 -0
  242. package/dist/commands/sketch-validation-output.js.map +1 -0
  243. package/dist/commands/sketch-versions.d.ts +66 -0
  244. package/dist/commands/sketch-versions.d.ts.map +1 -0
  245. package/dist/commands/sketch-versions.js +108 -0
  246. package/dist/commands/sketch-versions.js.map +1 -0
  247. package/dist/commands/sketch.d.ts +21 -0
  248. package/dist/commands/sketch.d.ts.map +1 -0
  249. package/dist/commands/sketch.js +101 -0
  250. package/dist/commands/sketch.js.map +1 -0
  251. package/dist/commands/storage.d.ts +24 -0
  252. package/dist/commands/storage.d.ts.map +1 -0
  253. package/dist/commands/storage.js +112 -0
  254. package/dist/commands/storage.js.map +1 -0
  255. package/dist/commands/telegram.d.ts +11 -0
  256. package/dist/commands/telegram.d.ts.map +1 -0
  257. package/dist/commands/telegram.js +66 -0
  258. package/dist/commands/telegram.js.map +1 -0
  259. package/dist/commands/timeline-render.d.ts +85 -0
  260. package/dist/commands/timeline-render.d.ts.map +1 -0
  261. package/dist/commands/timeline-render.js +474 -0
  262. package/dist/commands/timeline-render.js.map +1 -0
  263. package/dist/commands/timeline-score.d.ts +16 -0
  264. package/dist/commands/timeline-score.d.ts.map +1 -0
  265. package/dist/commands/timeline-score.js +89 -0
  266. package/dist/commands/timeline-score.js.map +1 -0
  267. package/dist/commands/timeline-validation-output.d.ts +7 -0
  268. package/dist/commands/timeline-validation-output.d.ts.map +1 -0
  269. package/dist/commands/timeline-validation-output.js +9 -0
  270. package/dist/commands/timeline-validation-output.js.map +1 -0
  271. package/dist/commands/timeline-versions.d.ts +72 -0
  272. package/dist/commands/timeline-versions.d.ts.map +1 -0
  273. package/dist/commands/timeline-versions.js +108 -0
  274. package/dist/commands/timeline-versions.js.map +1 -0
  275. package/dist/commands/timeline.d.ts +22 -0
  276. package/dist/commands/timeline.d.ts.map +1 -0
  277. package/dist/commands/timeline.js +105 -0
  278. package/dist/commands/timeline.js.map +1 -0
  279. package/dist/commands/validate.d.ts +22 -0
  280. package/dist/commands/validate.d.ts.map +1 -0
  281. package/dist/commands/validate.js +127 -0
  282. package/dist/commands/validate.js.map +1 -0
  283. package/dist/commands/validation-output.d.ts +25 -0
  284. package/dist/commands/validation-output.d.ts.map +1 -0
  285. package/dist/commands/validation-output.js +29 -0
  286. package/dist/commands/validation-output.js.map +1 -0
  287. package/dist/commands/version-commands.d.ts +94 -0
  288. package/dist/commands/version-commands.d.ts.map +1 -0
  289. package/dist/commands/version-commands.js +227 -0
  290. package/dist/commands/version-commands.js.map +1 -0
  291. package/dist/commands/worker-models.d.ts +13 -0
  292. package/dist/commands/worker-models.d.ts.map +1 -0
  293. package/dist/commands/worker-models.js +207 -0
  294. package/dist/commands/worker-models.js.map +1 -0
  295. package/dist/commands/worker.d.ts +23 -0
  296. package/dist/commands/worker.d.ts.map +1 -0
  297. package/dist/commands/worker.js +374 -0
  298. package/dist/commands/worker.js.map +1 -0
  299. package/dist/debug/browser-runner.d.ts +21 -0
  300. package/dist/debug/browser-runner.d.ts.map +1 -0
  301. package/dist/debug/browser-runner.js +196 -0
  302. package/dist/debug/browser-runner.js.map +1 -0
  303. package/dist/debug/collector.d.ts +9 -0
  304. package/dist/debug/collector.d.ts.map +1 -0
  305. package/dist/debug/collector.js +9 -0
  306. package/dist/debug/collector.js.map +1 -0
  307. package/dist/debug/diff.d.ts +48 -0
  308. package/dist/debug/diff.d.ts.map +1 -0
  309. package/dist/debug/diff.js +68 -0
  310. package/dist/debug/diff.js.map +1 -0
  311. package/dist/debug/harness.d.ts +11 -0
  312. package/dist/debug/harness.d.ts.map +1 -0
  313. package/dist/debug/harness.js +103 -0
  314. package/dist/debug/harness.js.map +1 -0
  315. package/dist/debug/index.d.ts +17 -0
  316. package/dist/debug/index.d.ts.map +1 -0
  317. package/dist/debug/index.js +16 -0
  318. package/dist/debug/index.js.map +1 -0
  319. package/dist/debug/markdown.d.ts +3 -0
  320. package/dist/debug/markdown.d.ts.map +1 -0
  321. package/dist/debug/markdown.js +127 -0
  322. package/dist/debug/markdown.js.map +1 -0
  323. package/dist/debug/server-runner.d.ts +24 -0
  324. package/dist/debug/server-runner.d.ts.map +1 -0
  325. package/dist/debug/server-runner.js +197 -0
  326. package/dist/debug/server-runner.js.map +1 -0
  327. package/dist/debug/target.d.ts +34 -0
  328. package/dist/debug/target.d.ts.map +1 -0
  329. package/dist/debug/target.js +104 -0
  330. package/dist/debug/target.js.map +1 -0
  331. package/dist/debug/trace.d.ts +30 -0
  332. package/dist/debug/trace.d.ts.map +1 -0
  333. package/dist/debug/trace.js +87 -0
  334. package/dist/debug/trace.js.map +1 -0
  335. package/dist/debug/types.d.ts +82 -0
  336. package/dist/debug/types.d.ts.map +1 -0
  337. package/dist/debug/types.js +13 -0
  338. package/dist/debug/types.js.map +1 -0
  339. package/dist/debug/verdict.d.ts +3 -0
  340. package/dist/debug/verdict.d.ts.map +1 -0
  341. package/dist/debug/verdict.js +78 -0
  342. package/dist/debug/verdict.js.map +1 -0
  343. package/dist/debug/watch.d.ts +23 -0
  344. package/dist/debug/watch.d.ts.map +1 -0
  345. package/dist/debug/watch.js +68 -0
  346. package/dist/debug/watch.js.map +1 -0
  347. package/dist/diagnose.d.ts +139 -0
  348. package/dist/diagnose.d.ts.map +1 -0
  349. package/dist/diagnose.js +418 -0
  350. package/dist/diagnose.js.map +1 -0
  351. package/dist/evals/graph-runner.d.ts +8 -0
  352. package/dist/evals/graph-runner.d.ts.map +1 -0
  353. package/dist/evals/graph-runner.js +136 -0
  354. package/dist/evals/graph-runner.js.map +1 -0
  355. package/dist/harness/capability-coverage.d.ts +161 -0
  356. package/dist/harness/capability-coverage.d.ts.map +1 -0
  357. package/dist/harness/capability-coverage.js +266 -0
  358. package/dist/harness/capability-coverage.js.map +1 -0
  359. package/dist/harness/capability-table.d.ts +17 -0
  360. package/dist/harness/capability-table.d.ts.map +1 -0
  361. package/dist/harness/capability-table.js +3844 -0
  362. package/dist/harness/capability-table.js.map +1 -0
  363. package/dist/harness/changed-files.d.ts +20 -0
  364. package/dist/harness/changed-files.d.ts.map +1 -0
  365. package/dist/harness/changed-files.js +90 -0
  366. package/dist/harness/changed-files.js.map +1 -0
  367. package/dist/harness/declared-capabilities.d.ts +12 -0
  368. package/dist/harness/declared-capabilities.d.ts.map +1 -0
  369. package/dist/harness/declared-capabilities.js +21 -0
  370. package/dist/harness/declared-capabilities.js.map +1 -0
  371. package/dist/harness/registry.d.ts +190 -0
  372. package/dist/harness/registry.d.ts.map +1 -0
  373. package/dist/harness/registry.js +2034 -0
  374. package/dist/harness/registry.js.map +1 -0
  375. package/dist/index.js +122 -131
  376. package/dist/index.js.map +1 -1
  377. package/dist/interaction-script.d.ts +40 -0
  378. package/dist/interaction-script.d.ts.map +1 -0
  379. package/dist/interaction-script.js +96 -0
  380. package/dist/interaction-script.js.map +1 -0
  381. package/dist/js-script-debug/harness.d.ts +124 -0
  382. package/dist/js-script-debug/harness.d.ts.map +1 -0
  383. package/dist/js-script-debug/harness.js +230 -0
  384. package/dist/js-script-debug/harness.js.map +1 -0
  385. package/dist/js-script-debug/index.d.ts +9 -0
  386. package/dist/js-script-debug/index.d.ts.map +1 -0
  387. package/dist/js-script-debug/index.js +9 -0
  388. package/dist/js-script-debug/index.js.map +1 -0
  389. package/dist/js-script-debug/interactions.d.ts +19 -0
  390. package/dist/js-script-debug/interactions.d.ts.map +1 -0
  391. package/dist/js-script-debug/interactions.js +17 -0
  392. package/dist/js-script-debug/interactions.js.map +1 -0
  393. package/dist/js-script-debug/target.d.ts +20 -0
  394. package/dist/js-script-debug/target.d.ts.map +1 -0
  395. package/dist/js-script-debug/target.js +78 -0
  396. package/dist/js-script-debug/target.js.map +1 -0
  397. package/dist/local-model-interfaces.d.ts +20 -0
  398. package/dist/local-model-interfaces.d.ts.map +1 -0
  399. package/dist/local-model-interfaces.js +41 -0
  400. package/dist/local-model-interfaces.js.map +1 -0
  401. package/dist/local-secrets.d.ts +3 -0
  402. package/dist/local-secrets.d.ts.map +1 -0
  403. package/dist/local-secrets.js +16 -0
  404. package/dist/local-secrets.js.map +1 -0
  405. package/dist/markdown.d.ts.map +1 -1
  406. package/dist/markdown.js +7 -2
  407. package/dist/markdown.js.map +1 -1
  408. package/dist/node/run-node.d.ts +28 -0
  409. package/dist/node/run-node.d.ts.map +1 -0
  410. package/dist/node/run-node.js +76 -0
  411. package/dist/node/run-node.js.map +1 -0
  412. package/dist/node-registry.d.ts +27 -0
  413. package/dist/node-registry.d.ts.map +1 -0
  414. package/dist/node-registry.js +33 -0
  415. package/dist/node-registry.js.map +1 -0
  416. package/dist/nodetool-main.d.ts +15 -0
  417. package/dist/nodetool-main.d.ts.map +1 -0
  418. package/dist/nodetool-main.js +1368 -0
  419. package/dist/nodetool-main.js.map +1 -0
  420. package/dist/nodetool.d.ts +0 -13
  421. package/dist/nodetool.d.ts.map +1 -1
  422. package/dist/nodetool.js +17 -1147
  423. package/dist/nodetool.js.map +1 -1
  424. package/dist/numeric-options.d.ts +22 -0
  425. package/dist/numeric-options.d.ts.map +1 -0
  426. package/dist/numeric-options.js +45 -0
  427. package/dist/numeric-options.js.map +1 -0
  428. package/dist/permission-gate.d.ts +55 -0
  429. package/dist/permission-gate.d.ts.map +1 -0
  430. package/dist/permission-gate.js +118 -0
  431. package/dist/permission-gate.js.map +1 -0
  432. package/dist/predicates.d.ts +6 -0
  433. package/dist/predicates.d.ts.map +1 -0
  434. package/dist/predicates.js +6 -0
  435. package/dist/predicates.js.map +1 -0
  436. package/dist/providers.d.ts +73 -10
  437. package/dist/providers.d.ts.map +1 -1
  438. package/dist/providers.js +339 -97
  439. package/dist/providers.js.map +1 -1
  440. package/dist/readline-input.d.ts +13 -19
  441. package/dist/readline-input.d.ts.map +1 -1
  442. package/dist/readline-input.js +201 -190
  443. package/dist/readline-input.js.map +1 -1
  444. package/dist/run-budget.d.ts +40 -0
  445. package/dist/run-budget.d.ts.map +1 -0
  446. package/dist/run-budget.js +119 -0
  447. package/dist/run-budget.js.map +1 -0
  448. package/dist/run-dsl-supervised.d.ts +11 -0
  449. package/dist/run-dsl-supervised.d.ts.map +1 -0
  450. package/dist/run-dsl-supervised.js +82 -0
  451. package/dist/run-dsl-supervised.js.map +1 -0
  452. package/dist/run-dsl.d.ts +29 -0
  453. package/dist/run-dsl.d.ts.map +1 -1
  454. package/dist/run-dsl.js +44 -10
  455. package/dist/run-dsl.js.map +1 -1
  456. package/dist/run-json.d.ts +24 -0
  457. package/dist/run-json.d.ts.map +1 -0
  458. package/dist/run-json.js +132 -0
  459. package/dist/run-json.js.map +1 -0
  460. package/dist/sandbox-catalog.d.ts +24 -0
  461. package/dist/sandbox-catalog.d.ts.map +1 -0
  462. package/dist/sandbox-catalog.js +78 -0
  463. package/dist/sandbox-catalog.js.map +1 -0
  464. package/dist/settings.d.ts +11 -10
  465. package/dist/settings.d.ts.map +1 -1
  466. package/dist/settings.js +71 -13
  467. package/dist/settings.js.map +1 -1
  468. package/dist/sketch-debug/harness.d.ts +87 -0
  469. package/dist/sketch-debug/harness.d.ts.map +1 -0
  470. package/dist/sketch-debug/harness.js +145 -0
  471. package/dist/sketch-debug/harness.js.map +1 -0
  472. package/dist/sketch-debug/index.d.ts +9 -0
  473. package/dist/sketch-debug/index.d.ts.map +1 -0
  474. package/dist/sketch-debug/index.js +9 -0
  475. package/dist/sketch-debug/index.js.map +1 -0
  476. package/dist/sketch-debug/interactions.d.ts +19 -0
  477. package/dist/sketch-debug/interactions.d.ts.map +1 -0
  478. package/dist/sketch-debug/interactions.js +17 -0
  479. package/dist/sketch-debug/interactions.js.map +1 -0
  480. package/dist/sketch-debug/target.d.ts +48 -0
  481. package/dist/sketch-debug/target.d.ts.map +1 -0
  482. package/dist/sketch-debug/target.js +138 -0
  483. package/dist/sketch-debug/target.js.map +1 -0
  484. package/dist/stdin.d.ts +18 -19
  485. package/dist/stdin.d.ts.map +1 -1
  486. package/dist/stdin.js +160 -157
  487. package/dist/stdin.js.map +1 -1
  488. package/dist/supervisor.d.ts +97 -0
  489. package/dist/supervisor.d.ts.map +1 -0
  490. package/dist/supervisor.js +194 -0
  491. package/dist/supervisor.js.map +1 -0
  492. package/dist/terminal-clipboard.d.ts +3 -0
  493. package/dist/terminal-clipboard.d.ts.map +1 -0
  494. package/dist/terminal-clipboard.js +24 -0
  495. package/dist/terminal-clipboard.js.map +1 -0
  496. package/dist/terminal-mouse.d.ts +24 -0
  497. package/dist/terminal-mouse.d.ts.map +1 -0
  498. package/dist/terminal-mouse.js +84 -0
  499. package/dist/terminal-mouse.js.map +1 -0
  500. package/dist/terminal-screen.d.ts +41 -0
  501. package/dist/terminal-screen.d.ts.map +1 -0
  502. package/dist/terminal-screen.js +228 -0
  503. package/dist/terminal-screen.js.map +1 -0
  504. package/dist/timeline-debug/harness.d.ts +79 -0
  505. package/dist/timeline-debug/harness.d.ts.map +1 -0
  506. package/dist/timeline-debug/harness.js +122 -0
  507. package/dist/timeline-debug/harness.js.map +1 -0
  508. package/dist/timeline-debug/index.d.ts +9 -0
  509. package/dist/timeline-debug/index.d.ts.map +1 -0
  510. package/dist/timeline-debug/index.js +9 -0
  511. package/dist/timeline-debug/index.js.map +1 -0
  512. package/dist/timeline-debug/interactions.d.ts +19 -0
  513. package/dist/timeline-debug/interactions.d.ts.map +1 -0
  514. package/dist/timeline-debug/interactions.js +17 -0
  515. package/dist/timeline-debug/interactions.js.map +1 -0
  516. package/dist/timeline-debug/target.d.ts +34 -0
  517. package/dist/timeline-debug/target.d.ts.map +1 -0
  518. package/dist/timeline-debug/target.js +132 -0
  519. package/dist/timeline-debug/target.js.map +1 -0
  520. package/dist/tool-format.d.ts +54 -0
  521. package/dist/tool-format.d.ts.map +1 -0
  522. package/dist/tool-format.js +360 -0
  523. package/dist/tool-format.js.map +1 -0
  524. package/dist/useExecutionState.d.ts.map +1 -1
  525. package/dist/useExecutionState.js +8 -4
  526. package/dist/useExecutionState.js.map +1 -1
  527. package/dist/validate/index.d.ts +28 -0
  528. package/dist/validate/index.d.ts.map +1 -0
  529. package/dist/validate/index.js +51 -0
  530. package/dist/validate/index.js.map +1 -0
  531. package/dist/websocket-client.d.ts +78 -15
  532. package/dist/websocket-client.d.ts.map +1 -1
  533. package/dist/websocket-client.js +497 -171
  534. package/dist/websocket-client.js.map +1 -1
  535. package/package.json +65 -31
@@ -0,0 +1,575 @@
1
+ import { HARNESSES, SURFACES, auditHarnessCoverage, isUnclaimedPath, planGate } from "../harness/registry.js";
2
+ import { readWorkspacePackages } from "../affected/affected.js";
3
+ import { auditCapabilityCoverage, planCapabilityMappingGate, resolveGateBaseRef } from "../harness/capability-coverage.js";
4
+ import { CAPABILITY_COVERAGE } from "../harness/capability-table.js";
5
+ import { readChangedFiles, isGateRelevantCodeFile } from "../harness/changed-files.js";
6
+ /** Sentinel exit code for a selfcheck the gate had to kill on timeout. */
7
+ const TIMEOUT_EXIT_CODE = 124;
8
+ /**
9
+ * How much a selfcheck may print before the gate stops buffering it.
10
+ *
11
+ * `--json` captures each selfcheck's output, and `spawnSync`'s default cap is
12
+ * 1 MB: past that Node kills the child and leaves a signal behind, which the
13
+ * gate read as a timeout. A jest leg covering a whole component tree prints
14
+ * more than that in warnings alone, so a passing suite was reported as
15
+ * "exceeded 900s" after three minutes.
16
+ */
17
+ const SELFCHECK_MAX_BUFFER = 256 * 1024 * 1024;
18
+ /** Where the coverage table lives, as git sees it. */
19
+ const CAPABILITY_TABLE_PATH = "packages/cli/src/harness/capability-table.ts";
20
+ export function registerHarnessCommands(program) {
21
+ const harness = program
22
+ .command("harness")
23
+ .description("Harness-first engineering: inventory and coverage audit");
24
+ harness
25
+ .command("list")
26
+ .description("List every headless harness and its capabilities")
27
+ .option("--json", "Print the registry as JSON")
28
+ .action((opts) => {
29
+ if (opts.json) {
30
+ console.log(JSON.stringify(HARNESSES, null, 2));
31
+ return;
32
+ }
33
+ console.log(`\n${HARNESSES.length} harnesses:\n`);
34
+ for (const h of HARNESSES) {
35
+ const caps = h.capabilities.length
36
+ ? ` [${h.capabilities.join(", ")}]`
37
+ : "";
38
+ const tool = h.agentTool ? ` (agent tool: ${h.agentTool})` : "";
39
+ console.log(` ${h.id.padEnd(18)} ${h.kind.padEnd(9)} ${h.title}`);
40
+ console.log(` ${"".padEnd(18)} ${h.command}${caps}${tool}`);
41
+ console.log("");
42
+ }
43
+ console.log("Docs: docs/HARNESS_FIRST.md\n");
44
+ });
45
+ harness
46
+ .command("audit")
47
+ .description("Audit surface coverage: every surface needs a harness or a documented gap")
48
+ .option("--json", "Print the audit result as JSON")
49
+ .option("--strict", "Exit non-zero while any surface gap remains")
50
+ .action((opts) => {
51
+ const result = auditHarnessCoverage();
52
+ if (opts.json) {
53
+ console.log(JSON.stringify(result, null, 2));
54
+ }
55
+ else {
56
+ console.log(`\nSurface coverage: ${result.coveredCount}/${SURFACES.length} covered, ${result.gapCount} gap(s)\n`);
57
+ for (const s of result.surfaces) {
58
+ if (s.covered) {
59
+ console.log(` ok ${s.id.padEnd(20)} ${s.harnesses.join(", ")}`);
60
+ }
61
+ else {
62
+ console.log(` GAP ${s.id.padEnd(20)} ${s.title}`);
63
+ }
64
+ }
65
+ const gaps = result.surfaces.filter((s) => !s.covered);
66
+ if (gaps.length > 0) {
67
+ console.log("\nDocumented gaps:");
68
+ for (const s of gaps)
69
+ console.log(`\n ${s.id}: ${s.gap}`);
70
+ }
71
+ if (result.undocumentedGaps.length > 0) {
72
+ console.log(`\nUNDOCUMENTED gaps (no harness, no gap note): ${result.undocumentedGaps.join(", ")}`);
73
+ }
74
+ if (result.unknownHarnessRefs.length > 0) {
75
+ console.log(`\nUnknown harness references: ${result.unknownHarnessRefs.join(", ")}`);
76
+ }
77
+ if (result.orphanHarnesses.length > 0) {
78
+ console.log(`\nHarnesses no surface claims: ${result.orphanHarnesses.join(", ")}`);
79
+ }
80
+ console.log("");
81
+ }
82
+ const broken = result.undocumentedGaps.length > 0 ||
83
+ result.unknownHarnessRefs.length > 0;
84
+ if (broken || (opts.strict && result.gapCount > 0)) {
85
+ process.exit(1);
86
+ }
87
+ });
88
+ harness
89
+ .command("capabilities")
90
+ .description("Audit capability coverage: every capability needs a suite, an eval case, or a gap note")
91
+ .option("--json", "Print the audit result as JSON")
92
+ .option("--strict", "Exit non-zero while any capability gap remains")
93
+ .action(async (opts) => {
94
+ // Lazy: declared-capabilities imports the built agents package.
95
+ const { declaredCapabilities } = await import("../harness/declared-capabilities.js");
96
+ const result = auditCapabilityCoverage(declaredCapabilities(), CAPABILITY_COVERAGE, HARNESSES);
97
+ if (opts.json) {
98
+ console.log(JSON.stringify(result, null, 2));
99
+ }
100
+ else {
101
+ console.log(`\nCapability coverage: ${result.coveredCount}/${result.rows.length} covered, ${result.gapCount} gap(s)\n`);
102
+ for (const row of result.rows) {
103
+ if (!row.covered) {
104
+ console.log(` GAP ${row.name.padEnd(32)} ${row.module}`);
105
+ }
106
+ }
107
+ const gaps = result.rows.filter((r) => !r.covered);
108
+ if (gaps.length > 0) {
109
+ console.log("\nDocumented gaps:");
110
+ for (const row of gaps)
111
+ console.log(`\n ${row.name}: ${row.gap}`);
112
+ }
113
+ for (const [label, list] of [
114
+ ["Capabilities with no entry", result.unmapped],
115
+ ["Entries naming no capability", result.stale],
116
+ ["Entries with no coverage and no gap note", result.undocumentedGaps],
117
+ ["Entries naming an unknown selfcheck", result.unknownSelfchecks],
118
+ ["Entries claiming a selfcheck with no suite", result.selfchecksWithoutSuites],
119
+ ["Contract drift", result.contractDrift],
120
+ ["Module mismatches", result.moduleMismatches],
121
+ ["Duplicate entries", result.duplicates]
122
+ ]) {
123
+ if (list.length > 0)
124
+ console.log(`\n${label}: ${list.join(", ")}`);
125
+ }
126
+ console.log("");
127
+ }
128
+ const broken = result.unmapped.length > 0 ||
129
+ result.stale.length > 0 ||
130
+ result.undocumentedGaps.length > 0 ||
131
+ result.unknownSelfchecks.length > 0 ||
132
+ result.selfchecksWithoutSuites.length > 0 ||
133
+ result.contractDrift.length > 0 ||
134
+ result.moduleMismatches.length > 0 ||
135
+ result.duplicates.length > 0;
136
+ if (broken || (opts.strict && result.gapCount > 0)) {
137
+ process.exit(1);
138
+ }
139
+ });
140
+ harness
141
+ .command("gate [files...]")
142
+ .description("Map a diff to touched surfaces and run their harnesses' selfchecks")
143
+ .option("--base <ref>", "Diff against a git ref (e.g. main) instead of the working tree")
144
+ .option("--all", "Ignore the diff and run every selfcheck")
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")
148
+ .option("--dry-run", "Print the plan without running anything")
149
+ .option("--json", "Print the plan (and results, unless --dry-run) as JSON")
150
+ .option("--strict", "Exit non-zero when the diff touches a surface only a gap note covers")
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")
153
+ .action(async (files, opts) => {
154
+ const { fileURLToPath } = await import("node:url");
155
+ const { dirname, resolve } = await import("node:path");
156
+ const here = dirname(fileURLToPath(import.meta.url));
157
+ // dist layout: packages/cli/dist/commands → repo root is four up.
158
+ const repoRoot = resolve(here, "..", "..", "..", "..");
159
+ const timeoutSeconds = Number(opts.timeout ?? "900");
160
+ const timeoutMs = Number.isFinite(timeoutSeconds) && timeoutSeconds > 0
161
+ ? timeoutSeconds * 1000
162
+ : 900_000;
163
+ const jobsRequested = Number(opts.jobs ?? "1");
164
+ const jobs = Number.isInteger(jobsRequested) && jobsRequested > 0
165
+ ? jobsRequested
166
+ : 1;
167
+ let changedFiles = files;
168
+ if (changedFiles.length === 0 && !opts.all) {
169
+ changedFiles = readChangedFiles(repoRoot, opts.base);
170
+ }
171
+ const mappingViolations = opts.all
172
+ ? []
173
+ : await capabilityMappingViolations(repoRoot, opts.base ?? "HEAD", changedFiles);
174
+ if (!opts.json && mappingViolations.length > 0) {
175
+ console.log("\nCapability mapping violations (harness capabilities):");
176
+ for (const v of mappingViolations)
177
+ console.log(` ${v}`);
178
+ }
179
+ const plan = opts.all
180
+ ? {
181
+ changedFiles: [],
182
+ globalFiles: [],
183
+ surfaces: [],
184
+ checks: HARNESSES.filter((h) => h.selfcheck).map((h) => ({
185
+ harnessId: h.id,
186
+ command: h.selfcheck.command,
187
+ cost: h.selfcheck.cost,
188
+ suiteOnly: h.selfcheck.suiteOnly ?? false,
189
+ surfaces: []
190
+ })),
191
+ manual: [],
192
+ uncoveredSurfaces: [],
193
+ unmappedFiles: []
194
+ }
195
+ : planGate(changedFiles, undefined, undefined, opts.deps ? readWorkspacePackages(repoRoot) : undefined);
196
+ const { toRun, skippedExpensive, skippedSuites } = selectChecks(plan.checks, { expensive: opts.expensive, includeSuites: opts.includeSuites });
197
+ // A directory recorded in UNCLAIMED_PATHS has already been judged: no
198
+ // harness reaches it, and the entry says why. `auditPathClaims` honors
199
+ // that; the gate did not, so the first diff to touch such a directory
200
+ // failed with no way to satisfy it short of inventing a surface.
201
+ const unmappedCodeFiles = plan.unmappedFiles
202
+ .filter(isGateRelevantCodeFile)
203
+ .filter((f) => !isUnclaimedPath(f));
204
+ if (!opts.json) {
205
+ printGatePlan(plan, toRun.length, skippedExpensive.length, skippedSuites, opts.all);
206
+ if (unmappedCodeFiles.length > 0) {
207
+ console.log("\nCode files no surface claims (the gate fails on these):");
208
+ for (const f of unmappedCodeFiles)
209
+ console.log(` ${f}`);
210
+ }
211
+ }
212
+ const skippedSuiteIds = skippedSuites.map((c) => c.harnessId);
213
+ if (opts.dryRun) {
214
+ if (opts.json) {
215
+ console.log(JSON.stringify({
216
+ plan,
217
+ skippedSuites: skippedSuiteIds,
218
+ mappingViolations,
219
+ unmappedCodeFiles
220
+ }, null, 2));
221
+ }
222
+ if (mappingViolations.length > 0 ||
223
+ unmappedCodeFiles.length > 0 ||
224
+ (opts.strict && plan.uncoveredSurfaces.length > 0)) {
225
+ process.exit(1);
226
+ }
227
+ return;
228
+ }
229
+ const results = await executeChecks(toRun, {
230
+ repoRoot,
231
+ json: opts.json === true,
232
+ timeoutMs,
233
+ timeoutSeconds,
234
+ jobs
235
+ });
236
+ const failed = results.filter((r) => !r.ok);
237
+ if (opts.json) {
238
+ console.log(JSON.stringify({
239
+ plan,
240
+ results,
241
+ skippedSuites: skippedSuiteIds,
242
+ mappingViolations,
243
+ unmappedCodeFiles
244
+ }, null, 2));
245
+ }
246
+ else if (toRun.length > 0) {
247
+ console.log(`\nGate: ${results.length - failed.length}/${results.length} selfchecks passed`);
248
+ for (const r of failed) {
249
+ const label = r.timedOut
250
+ ? "TIMEOUT"
251
+ : r.killed
252
+ ? "KILLED"
253
+ : "FAIL";
254
+ console.log(` ${label} ${r.harnessId} (exit ${r.exitCode}): ${r.command}`);
255
+ }
256
+ console.log("");
257
+ }
258
+ if (failed.length > 0 ||
259
+ mappingViolations.length > 0 ||
260
+ unmappedCodeFiles.length > 0 ||
261
+ (opts.strict && plan.uncoveredSurfaces.length > 0)) {
262
+ process.exit(1);
263
+ }
264
+ });
265
+ }
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
+ };
499
+ if (all) {
500
+ console.log(`\nRunning all ${runCount} selfcheck(s)${suffix}`);
501
+ printSkippedSuites();
502
+ return;
503
+ }
504
+ if (plan.changedFiles.length === 0) {
505
+ console.log("\nNo changed files — nothing to gate.");
506
+ return;
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
+ }
516
+ console.log(`\n${plan.changedFiles.length} changed file(s) touch ${plan.surfaces.length} surface(s):`);
517
+ for (const s of plan.surfaces) {
518
+ const via = s.viaDependency ? " (via dependency)" : "";
519
+ console.log(` ${s.id.padEnd(20)} (${s.files.length} file(s))${via}`);
520
+ }
521
+ if (plan.unmappedFiles.length > 0) {
522
+ console.log(`\n${plan.unmappedFiles.length} file(s) outside any surface:`);
523
+ for (const f of plan.unmappedFiles.slice(0, 8))
524
+ console.log(` ${f}`);
525
+ if (plan.unmappedFiles.length > 8) {
526
+ console.log(` …and ${plan.unmappedFiles.length - 8} more`);
527
+ }
528
+ }
529
+ if (plan.uncoveredSurfaces.length > 0) {
530
+ console.log(`\nTouched surfaces with NO harness (documented gaps): ${plan.uncoveredSurfaces.join(", ")}`);
531
+ }
532
+ if (plan.manual.length > 0) {
533
+ console.log("\nManual harnesses (need a target/key — run yourself):");
534
+ for (const m of plan.manual) {
535
+ console.log(` ${m.harnessId.padEnd(18)} ${m.command}`);
536
+ }
537
+ }
538
+ printSkippedSuites();
539
+ console.log(`\n${runCount} selfcheck(s) to run${suffix}`);
540
+ }
541
+ /**
542
+ * A capability whose declared contract moved without its coverage mapping
543
+ * moving with it. Adding a capability, or changing what one promises, means
544
+ * saying which eval case or suite covers the new contract — a refactor that
545
+ * leaves the contract alone says nothing and runs the mapped checks as usual.
546
+ */
547
+ async function capabilityMappingViolations(repoRoot, baseRef, changedFiles) {
548
+ const { execSync } = await import("node:child_process");
549
+ const { readFileSync } = await import("node:fs");
550
+ const { join } = await import("node:path");
551
+ const git = (command) => execSync(command, {
552
+ cwd: repoRoot,
553
+ encoding: "utf8",
554
+ stdio: ["ignore", "pipe", "ignore"]
555
+ });
556
+ const atRef = (ref) => {
557
+ try {
558
+ return git(`git show ${ref}:${CAPABILITY_TABLE_PATH}`);
559
+ }
560
+ catch {
561
+ // The table does not exist at that ref — every entry is new.
562
+ return null;
563
+ }
564
+ };
565
+ let working;
566
+ try {
567
+ working = readFileSync(join(repoRoot, CAPABILITY_TABLE_PATH), "utf8");
568
+ }
569
+ catch {
570
+ // Running from a package without the source tree; nothing to compare.
571
+ return [];
572
+ }
573
+ return planCapabilityMappingGate(atRef(resolveGateBaseRef(baseRef, git)), working, changedFiles).violations.map((v) => v.detail);
574
+ }
575
+ //# sourceMappingURL=harness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/commands/harness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Human-readable rendering of a `JsScriptValidation`, shared by
3
+ * `jsscript validate` and `jsscript versions restore`.
4
+ */
5
+ import type { JsScriptValidation } from "@nodetool-ai/execution/js-script-debug";
6
+ export declare function renderJsScriptValidation(validation: JsScriptValidation): string[];
7
+ //# sourceMappingURL=js-script-validation-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-script-validation-output.d.ts","sourceRoot":"","sources":["../../src/commands/js-script-validation-output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAGjF,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,kBAAkB,GAC7B,MAAM,EAAE,CAEV"}
@@ -0,0 +1,5 @@
1
+ import { renderValidation } from "./validation-output.js";
2
+ export function renderJsScriptValidation(validation) {
3
+ return renderValidation(validation);
4
+ }
5
+ //# sourceMappingURL=js-script-validation-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-script-validation-output.js","sourceRoot":"","sources":["../../src/commands/js-script-validation-output.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,UAAU,wBAAwB,CACtC,UAA8B;IAE9B,OAAO,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC"}