@nodetool-ai/cli 0.7.0-rc.22 → 0.8.1

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 (488) hide show
  1. package/README.md +79 -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 +50 -0
  8. package/dist/affected/affected.d.ts.map +1 -0
  9. package/dist/affected/affected.js +118 -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 +27 -0
  32. package/dist/app-debug/harness.d.ts.map +1 -0
  33. package/dist/app-debug/harness.js +93 -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 +979 -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 +85 -0
  48. package/dist/chat-codeact.d.ts.map +1 -0
  49. package/dist/chat-codeact.js +141 -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 +27 -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.test.d.ts +2 -0
  80. package/dist/commands/__tests__/timeline-render.test.d.ts.map +1 -0
  81. package/dist/commands/__tests__/timeline-render.test.js +115 -0
  82. package/dist/commands/__tests__/timeline-render.test.js.map +1 -0
  83. package/dist/commands/affected.d.ts +9 -0
  84. package/dist/commands/affected.d.ts.map +1 -0
  85. package/dist/commands/affected.js +122 -0
  86. package/dist/commands/affected.js.map +1 -0
  87. package/dist/commands/agent.d.ts +26 -4
  88. package/dist/commands/agent.d.ts.map +1 -1
  89. package/dist/commands/agent.js +327 -306
  90. package/dist/commands/agent.js.map +1 -1
  91. package/dist/commands/app.d.ts +3 -0
  92. package/dist/commands/app.d.ts.map +1 -0
  93. package/dist/commands/app.js +381 -0
  94. package/dist/commands/app.js.map +1 -0
  95. package/dist/commands/apps.d.ts +15 -0
  96. package/dist/commands/apps.d.ts.map +1 -0
  97. package/dist/commands/apps.js +180 -0
  98. package/dist/commands/apps.js.map +1 -0
  99. package/dist/commands/auth.d.ts +12 -0
  100. package/dist/commands/auth.d.ts.map +1 -0
  101. package/dist/commands/auth.js +154 -0
  102. package/dist/commands/auth.js.map +1 -0
  103. package/dist/commands/collections.d.ts +10 -0
  104. package/dist/commands/collections.d.ts.map +1 -0
  105. package/dist/commands/collections.js +257 -0
  106. package/dist/commands/collections.js.map +1 -0
  107. package/dist/commands/costs.d.ts +15 -0
  108. package/dist/commands/costs.d.ts.map +1 -0
  109. package/dist/commands/costs.js +201 -0
  110. package/dist/commands/costs.js.map +1 -0
  111. package/dist/commands/db.d.ts +3 -0
  112. package/dist/commands/db.d.ts.map +1 -0
  113. package/dist/commands/db.js +176 -0
  114. package/dist/commands/db.js.map +1 -0
  115. package/dist/commands/debug.d.ts +13 -0
  116. package/dist/commands/debug.d.ts.map +1 -0
  117. package/dist/commands/debug.js +138 -0
  118. package/dist/commands/debug.js.map +1 -0
  119. package/dist/commands/deploy-helpers.d.ts +49 -18
  120. package/dist/commands/deploy-helpers.d.ts.map +1 -1
  121. package/dist/commands/deploy-helpers.js +10 -276
  122. package/dist/commands/deploy-helpers.js.map +1 -1
  123. package/dist/commands/deploy.d.ts +0 -1
  124. package/dist/commands/deploy.d.ts.map +1 -1
  125. package/dist/commands/deploy.js +21 -217
  126. package/dist/commands/deploy.js.map +1 -1
  127. package/dist/commands/eval.d.ts +152 -0
  128. package/dist/commands/eval.d.ts.map +1 -0
  129. package/dist/commands/eval.js +688 -0
  130. package/dist/commands/eval.js.map +1 -0
  131. package/dist/commands/game.d.ts +4 -0
  132. package/dist/commands/game.d.ts.map +1 -0
  133. package/dist/commands/game.js +395 -0
  134. package/dist/commands/game.js.map +1 -0
  135. package/dist/commands/generate.d.ts +17 -0
  136. package/dist/commands/generate.d.ts.map +1 -0
  137. package/dist/commands/generate.js +324 -0
  138. package/dist/commands/generate.js.map +1 -0
  139. package/dist/commands/generations.d.ts +17 -0
  140. package/dist/commands/generations.d.ts.map +1 -0
  141. package/dist/commands/generations.js +408 -0
  142. package/dist/commands/generations.js.map +1 -0
  143. package/dist/commands/harness.d.ts +19 -0
  144. package/dist/commands/harness.d.ts.map +1 -0
  145. package/dist/commands/harness.js +361 -0
  146. package/dist/commands/harness.js.map +1 -0
  147. package/dist/commands/js-script-validation-output.d.ts +7 -0
  148. package/dist/commands/js-script-validation-output.d.ts.map +1 -0
  149. package/dist/commands/js-script-validation-output.js +5 -0
  150. package/dist/commands/js-script-validation-output.js.map +1 -0
  151. package/dist/commands/js-script-versions.d.ts +53 -0
  152. package/dist/commands/js-script-versions.d.ts.map +1 -0
  153. package/dist/commands/js-script-versions.js +89 -0
  154. package/dist/commands/js-script-versions.js.map +1 -0
  155. package/dist/commands/js-script.d.ts +29 -0
  156. package/dist/commands/js-script.d.ts.map +1 -0
  157. package/dist/commands/js-script.js +227 -0
  158. package/dist/commands/js-script.js.map +1 -0
  159. package/dist/commands/jtbd.d.ts +38 -0
  160. package/dist/commands/jtbd.d.ts.map +1 -0
  161. package/dist/commands/jtbd.js +261 -0
  162. package/dist/commands/jtbd.js.map +1 -0
  163. package/dist/commands/local-db.d.ts +16 -0
  164. package/dist/commands/local-db.d.ts.map +1 -0
  165. package/dist/commands/local-db.js +33 -0
  166. package/dist/commands/local-db.js.map +1 -0
  167. package/dist/commands/migrate-code-inputs.d.ts +24 -0
  168. package/dist/commands/migrate-code-inputs.d.ts.map +1 -0
  169. package/dist/commands/migrate-code-inputs.js +120 -0
  170. package/dist/commands/migrate-code-inputs.js.map +1 -0
  171. package/dist/commands/models-hf.js +4 -4
  172. package/dist/commands/models-hf.js.map +1 -1
  173. package/dist/commands/models-recommended.d.ts.map +1 -1
  174. package/dist/commands/models-recommended.js +16 -24
  175. package/dist/commands/models-recommended.js.map +1 -1
  176. package/dist/commands/node.d.ts +10 -0
  177. package/dist/commands/node.d.ts.map +1 -0
  178. package/dist/commands/node.js +72 -0
  179. package/dist/commands/node.js.map +1 -0
  180. package/dist/commands/output.d.ts +24 -0
  181. package/dist/commands/output.d.ts.map +1 -0
  182. package/dist/commands/output.js +132 -0
  183. package/dist/commands/output.js.map +1 -0
  184. package/dist/commands/package-helpers.d.ts +1 -7
  185. package/dist/commands/package-helpers.d.ts.map +1 -1
  186. package/dist/commands/package-helpers.js +3 -26
  187. package/dist/commands/package-helpers.js.map +1 -1
  188. package/dist/commands/package.js +2 -2
  189. package/dist/commands/package.js.map +1 -1
  190. package/dist/commands/packs.d.ts +13 -0
  191. package/dist/commands/packs.d.ts.map +1 -0
  192. package/dist/commands/packs.js +60 -0
  193. package/dist/commands/packs.js.map +1 -0
  194. package/dist/commands/reliability.d.ts +14 -0
  195. package/dist/commands/reliability.d.ts.map +1 -0
  196. package/dist/commands/reliability.js +80 -0
  197. package/dist/commands/reliability.js.map +1 -0
  198. package/dist/commands/resource-read.d.ts +28 -0
  199. package/dist/commands/resource-read.d.ts.map +1 -0
  200. package/dist/commands/resource-read.js +316 -0
  201. package/dist/commands/resource-read.js.map +1 -0
  202. package/dist/commands/sketch-validation-output.d.ts +7 -0
  203. package/dist/commands/sketch-validation-output.d.ts.map +1 -0
  204. package/dist/commands/sketch-validation-output.js +5 -0
  205. package/dist/commands/sketch-validation-output.js.map +1 -0
  206. package/dist/commands/sketch-versions.d.ts +66 -0
  207. package/dist/commands/sketch-versions.d.ts.map +1 -0
  208. package/dist/commands/sketch-versions.js +108 -0
  209. package/dist/commands/sketch-versions.js.map +1 -0
  210. package/dist/commands/sketch.d.ts +21 -0
  211. package/dist/commands/sketch.d.ts.map +1 -0
  212. package/dist/commands/sketch.js +117 -0
  213. package/dist/commands/sketch.js.map +1 -0
  214. package/dist/commands/storage.d.ts +24 -0
  215. package/dist/commands/storage.d.ts.map +1 -0
  216. package/dist/commands/storage.js +112 -0
  217. package/dist/commands/storage.js.map +1 -0
  218. package/dist/commands/telegram.d.ts +11 -0
  219. package/dist/commands/telegram.d.ts.map +1 -0
  220. package/dist/commands/telegram.js +66 -0
  221. package/dist/commands/telegram.js.map +1 -0
  222. package/dist/commands/timeline-render.d.ts +80 -0
  223. package/dist/commands/timeline-render.d.ts.map +1 -0
  224. package/dist/commands/timeline-render.js +465 -0
  225. package/dist/commands/timeline-render.js.map +1 -0
  226. package/dist/commands/timeline-validation-output.d.ts +7 -0
  227. package/dist/commands/timeline-validation-output.d.ts.map +1 -0
  228. package/dist/commands/timeline-validation-output.js +9 -0
  229. package/dist/commands/timeline-validation-output.js.map +1 -0
  230. package/dist/commands/timeline-versions.d.ts +72 -0
  231. package/dist/commands/timeline-versions.d.ts.map +1 -0
  232. package/dist/commands/timeline-versions.js +108 -0
  233. package/dist/commands/timeline-versions.js.map +1 -0
  234. package/dist/commands/timeline.d.ts +22 -0
  235. package/dist/commands/timeline.d.ts.map +1 -0
  236. package/dist/commands/timeline.js +119 -0
  237. package/dist/commands/timeline.js.map +1 -0
  238. package/dist/commands/validate.d.ts +22 -0
  239. package/dist/commands/validate.d.ts.map +1 -0
  240. package/dist/commands/validate.js +127 -0
  241. package/dist/commands/validate.js.map +1 -0
  242. package/dist/commands/validation-output.d.ts +25 -0
  243. package/dist/commands/validation-output.d.ts.map +1 -0
  244. package/dist/commands/validation-output.js +29 -0
  245. package/dist/commands/validation-output.js.map +1 -0
  246. package/dist/commands/version-commands.d.ts +94 -0
  247. package/dist/commands/version-commands.d.ts.map +1 -0
  248. package/dist/commands/version-commands.js +227 -0
  249. package/dist/commands/version-commands.js.map +1 -0
  250. package/dist/commands/worker-models.d.ts +13 -0
  251. package/dist/commands/worker-models.d.ts.map +1 -0
  252. package/dist/commands/worker-models.js +207 -0
  253. package/dist/commands/worker-models.js.map +1 -0
  254. package/dist/commands/worker.d.ts +23 -0
  255. package/dist/commands/worker.d.ts.map +1 -0
  256. package/dist/commands/worker.js +374 -0
  257. package/dist/commands/worker.js.map +1 -0
  258. package/dist/debug/browser-runner.d.ts +21 -0
  259. package/dist/debug/browser-runner.d.ts.map +1 -0
  260. package/dist/debug/browser-runner.js +196 -0
  261. package/dist/debug/browser-runner.js.map +1 -0
  262. package/dist/debug/collector.d.ts +9 -0
  263. package/dist/debug/collector.d.ts.map +1 -0
  264. package/dist/debug/collector.js +9 -0
  265. package/dist/debug/collector.js.map +1 -0
  266. package/dist/debug/diff.d.ts +48 -0
  267. package/dist/debug/diff.d.ts.map +1 -0
  268. package/dist/debug/diff.js +68 -0
  269. package/dist/debug/diff.js.map +1 -0
  270. package/dist/debug/harness.d.ts +11 -0
  271. package/dist/debug/harness.d.ts.map +1 -0
  272. package/dist/debug/harness.js +103 -0
  273. package/dist/debug/harness.js.map +1 -0
  274. package/dist/debug/index.d.ts +17 -0
  275. package/dist/debug/index.d.ts.map +1 -0
  276. package/dist/debug/index.js +16 -0
  277. package/dist/debug/index.js.map +1 -0
  278. package/dist/debug/markdown.d.ts +3 -0
  279. package/dist/debug/markdown.d.ts.map +1 -0
  280. package/dist/debug/markdown.js +127 -0
  281. package/dist/debug/markdown.js.map +1 -0
  282. package/dist/debug/server-runner.d.ts +22 -0
  283. package/dist/debug/server-runner.d.ts.map +1 -0
  284. package/dist/debug/server-runner.js +164 -0
  285. package/dist/debug/server-runner.js.map +1 -0
  286. package/dist/debug/target.d.ts +34 -0
  287. package/dist/debug/target.d.ts.map +1 -0
  288. package/dist/debug/target.js +104 -0
  289. package/dist/debug/target.js.map +1 -0
  290. package/dist/debug/trace.d.ts +30 -0
  291. package/dist/debug/trace.d.ts.map +1 -0
  292. package/dist/debug/trace.js +87 -0
  293. package/dist/debug/trace.js.map +1 -0
  294. package/dist/debug/types.d.ts +82 -0
  295. package/dist/debug/types.d.ts.map +1 -0
  296. package/dist/debug/types.js +13 -0
  297. package/dist/debug/types.js.map +1 -0
  298. package/dist/debug/verdict.d.ts +3 -0
  299. package/dist/debug/verdict.d.ts.map +1 -0
  300. package/dist/debug/verdict.js +78 -0
  301. package/dist/debug/verdict.js.map +1 -0
  302. package/dist/debug/watch.d.ts +23 -0
  303. package/dist/debug/watch.d.ts.map +1 -0
  304. package/dist/debug/watch.js +68 -0
  305. package/dist/debug/watch.js.map +1 -0
  306. package/dist/diagnose.d.ts +139 -0
  307. package/dist/diagnose.d.ts.map +1 -0
  308. package/dist/diagnose.js +418 -0
  309. package/dist/diagnose.js.map +1 -0
  310. package/dist/evals/graph-runner.d.ts +8 -0
  311. package/dist/evals/graph-runner.d.ts.map +1 -0
  312. package/dist/evals/graph-runner.js +136 -0
  313. package/dist/evals/graph-runner.js.map +1 -0
  314. package/dist/harness/capability-coverage.d.ts +161 -0
  315. package/dist/harness/capability-coverage.d.ts.map +1 -0
  316. package/dist/harness/capability-coverage.js +266 -0
  317. package/dist/harness/capability-coverage.js.map +1 -0
  318. package/dist/harness/capability-table.d.ts +17 -0
  319. package/dist/harness/capability-table.d.ts.map +1 -0
  320. package/dist/harness/capability-table.js +3576 -0
  321. package/dist/harness/capability-table.js.map +1 -0
  322. package/dist/harness/changed-files.d.ts +18 -0
  323. package/dist/harness/changed-files.d.ts.map +1 -0
  324. package/dist/harness/changed-files.js +76 -0
  325. package/dist/harness/changed-files.js.map +1 -0
  326. package/dist/harness/declared-capabilities.d.ts +12 -0
  327. package/dist/harness/declared-capabilities.d.ts.map +1 -0
  328. package/dist/harness/declared-capabilities.js +21 -0
  329. package/dist/harness/declared-capabilities.js.map +1 -0
  330. package/dist/harness/registry.d.ts +162 -0
  331. package/dist/harness/registry.d.ts.map +1 -0
  332. package/dist/harness/registry.js +1738 -0
  333. package/dist/harness/registry.js.map +1 -0
  334. package/dist/index.js +121 -130
  335. package/dist/index.js.map +1 -1
  336. package/dist/interaction-script.d.ts +17 -0
  337. package/dist/interaction-script.d.ts.map +1 -0
  338. package/dist/interaction-script.js +47 -0
  339. package/dist/interaction-script.js.map +1 -0
  340. package/dist/js-script-debug/harness.d.ts +114 -0
  341. package/dist/js-script-debug/harness.d.ts.map +1 -0
  342. package/dist/js-script-debug/harness.js +252 -0
  343. package/dist/js-script-debug/harness.js.map +1 -0
  344. package/dist/js-script-debug/index.d.ts +9 -0
  345. package/dist/js-script-debug/index.d.ts.map +1 -0
  346. package/dist/js-script-debug/index.js +9 -0
  347. package/dist/js-script-debug/index.js.map +1 -0
  348. package/dist/js-script-debug/interactions.d.ts +19 -0
  349. package/dist/js-script-debug/interactions.d.ts.map +1 -0
  350. package/dist/js-script-debug/interactions.js +17 -0
  351. package/dist/js-script-debug/interactions.js.map +1 -0
  352. package/dist/js-script-debug/target.d.ts +20 -0
  353. package/dist/js-script-debug/target.d.ts.map +1 -0
  354. package/dist/js-script-debug/target.js +78 -0
  355. package/dist/js-script-debug/target.js.map +1 -0
  356. package/dist/local-model-interfaces.d.ts +20 -0
  357. package/dist/local-model-interfaces.d.ts.map +1 -0
  358. package/dist/local-model-interfaces.js +64 -0
  359. package/dist/local-model-interfaces.js.map +1 -0
  360. package/dist/local-secrets.d.ts +3 -0
  361. package/dist/local-secrets.d.ts.map +1 -0
  362. package/dist/local-secrets.js +16 -0
  363. package/dist/local-secrets.js.map +1 -0
  364. package/dist/markdown.d.ts.map +1 -1
  365. package/dist/markdown.js +7 -2
  366. package/dist/markdown.js.map +1 -1
  367. package/dist/node/run-node.d.ts +28 -0
  368. package/dist/node/run-node.d.ts.map +1 -0
  369. package/dist/node/run-node.js +76 -0
  370. package/dist/node/run-node.js.map +1 -0
  371. package/dist/node-registry.d.ts +13 -0
  372. package/dist/node-registry.d.ts.map +1 -0
  373. package/dist/node-registry.js +36 -0
  374. package/dist/node-registry.js.map +1 -0
  375. package/dist/nodetool.js +845 -309
  376. package/dist/nodetool.js.map +1 -1
  377. package/dist/numeric-options.d.ts +22 -0
  378. package/dist/numeric-options.d.ts.map +1 -0
  379. package/dist/numeric-options.js +45 -0
  380. package/dist/numeric-options.js.map +1 -0
  381. package/dist/permission-gate.d.ts +55 -0
  382. package/dist/permission-gate.d.ts.map +1 -0
  383. package/dist/permission-gate.js +118 -0
  384. package/dist/permission-gate.js.map +1 -0
  385. package/dist/predicates.d.ts +6 -0
  386. package/dist/predicates.d.ts.map +1 -0
  387. package/dist/predicates.js +6 -0
  388. package/dist/predicates.js.map +1 -0
  389. package/dist/providers.d.ts +73 -10
  390. package/dist/providers.d.ts.map +1 -1
  391. package/dist/providers.js +329 -97
  392. package/dist/providers.js.map +1 -1
  393. package/dist/readline-input.d.ts +13 -19
  394. package/dist/readline-input.d.ts.map +1 -1
  395. package/dist/readline-input.js +201 -190
  396. package/dist/readline-input.js.map +1 -1
  397. package/dist/run-budget.d.ts +40 -0
  398. package/dist/run-budget.d.ts.map +1 -0
  399. package/dist/run-budget.js +119 -0
  400. package/dist/run-budget.js.map +1 -0
  401. package/dist/run-dsl-supervised.d.ts +11 -0
  402. package/dist/run-dsl-supervised.d.ts.map +1 -0
  403. package/dist/run-dsl-supervised.js +82 -0
  404. package/dist/run-dsl-supervised.js.map +1 -0
  405. package/dist/run-dsl.d.ts +23 -0
  406. package/dist/run-dsl.d.ts.map +1 -1
  407. package/dist/run-dsl.js +40 -9
  408. package/dist/run-dsl.js.map +1 -1
  409. package/dist/run-json.d.ts +24 -0
  410. package/dist/run-json.d.ts.map +1 -0
  411. package/dist/run-json.js +132 -0
  412. package/dist/run-json.js.map +1 -0
  413. package/dist/sandbox-catalog.d.ts +12 -0
  414. package/dist/sandbox-catalog.d.ts.map +1 -0
  415. package/dist/sandbox-catalog.js +27 -0
  416. package/dist/sandbox-catalog.js.map +1 -0
  417. package/dist/settings.d.ts +11 -10
  418. package/dist/settings.d.ts.map +1 -1
  419. package/dist/settings.js +71 -13
  420. package/dist/settings.js.map +1 -1
  421. package/dist/sketch-debug/harness.d.ts +87 -0
  422. package/dist/sketch-debug/harness.d.ts.map +1 -0
  423. package/dist/sketch-debug/harness.js +178 -0
  424. package/dist/sketch-debug/harness.js.map +1 -0
  425. package/dist/sketch-debug/index.d.ts +9 -0
  426. package/dist/sketch-debug/index.d.ts.map +1 -0
  427. package/dist/sketch-debug/index.js +9 -0
  428. package/dist/sketch-debug/index.js.map +1 -0
  429. package/dist/sketch-debug/interactions.d.ts +19 -0
  430. package/dist/sketch-debug/interactions.d.ts.map +1 -0
  431. package/dist/sketch-debug/interactions.js +17 -0
  432. package/dist/sketch-debug/interactions.js.map +1 -0
  433. package/dist/sketch-debug/target.d.ts +48 -0
  434. package/dist/sketch-debug/target.d.ts.map +1 -0
  435. package/dist/sketch-debug/target.js +138 -0
  436. package/dist/sketch-debug/target.js.map +1 -0
  437. package/dist/stdin.d.ts +18 -19
  438. package/dist/stdin.d.ts.map +1 -1
  439. package/dist/stdin.js +159 -157
  440. package/dist/stdin.js.map +1 -1
  441. package/dist/supervisor.d.ts +97 -0
  442. package/dist/supervisor.d.ts.map +1 -0
  443. package/dist/supervisor.js +194 -0
  444. package/dist/supervisor.js.map +1 -0
  445. package/dist/terminal-clipboard.d.ts +3 -0
  446. package/dist/terminal-clipboard.d.ts.map +1 -0
  447. package/dist/terminal-clipboard.js +24 -0
  448. package/dist/terminal-clipboard.js.map +1 -0
  449. package/dist/terminal-mouse.d.ts +24 -0
  450. package/dist/terminal-mouse.d.ts.map +1 -0
  451. package/dist/terminal-mouse.js +84 -0
  452. package/dist/terminal-mouse.js.map +1 -0
  453. package/dist/terminal-screen.d.ts +41 -0
  454. package/dist/terminal-screen.d.ts.map +1 -0
  455. package/dist/terminal-screen.js +228 -0
  456. package/dist/terminal-screen.js.map +1 -0
  457. package/dist/timeline-debug/harness.d.ts +79 -0
  458. package/dist/timeline-debug/harness.d.ts.map +1 -0
  459. package/dist/timeline-debug/harness.js +155 -0
  460. package/dist/timeline-debug/harness.js.map +1 -0
  461. package/dist/timeline-debug/index.d.ts +9 -0
  462. package/dist/timeline-debug/index.d.ts.map +1 -0
  463. package/dist/timeline-debug/index.js +9 -0
  464. package/dist/timeline-debug/index.js.map +1 -0
  465. package/dist/timeline-debug/interactions.d.ts +19 -0
  466. package/dist/timeline-debug/interactions.d.ts.map +1 -0
  467. package/dist/timeline-debug/interactions.js +17 -0
  468. package/dist/timeline-debug/interactions.js.map +1 -0
  469. package/dist/timeline-debug/target.d.ts +34 -0
  470. package/dist/timeline-debug/target.d.ts.map +1 -0
  471. package/dist/timeline-debug/target.js +132 -0
  472. package/dist/timeline-debug/target.js.map +1 -0
  473. package/dist/tool-format.d.ts +54 -0
  474. package/dist/tool-format.d.ts.map +1 -0
  475. package/dist/tool-format.js +360 -0
  476. package/dist/tool-format.js.map +1 -0
  477. package/dist/useExecutionState.d.ts.map +1 -1
  478. package/dist/useExecutionState.js +8 -4
  479. package/dist/useExecutionState.js.map +1 -1
  480. package/dist/validate/index.d.ts +28 -0
  481. package/dist/validate/index.d.ts.map +1 -0
  482. package/dist/validate/index.js +51 -0
  483. package/dist/validate/index.js.map +1 -0
  484. package/dist/websocket-client.d.ts +78 -15
  485. package/dist/websocket-client.d.ts.map +1 -1
  486. package/dist/websocket-client.js +497 -171
  487. package/dist/websocket-client.js.map +1 -1
  488. package/package.json +62 -31
@@ -0,0 +1,361 @@
1
+ import { HARNESSES, SURFACES, auditHarnessCoverage, isUnclaimedPath, planGate } from "../harness/registry.js";
2
+ import { auditCapabilityCoverage, planCapabilityMappingGate, resolveGateBaseRef } from "../harness/capability-coverage.js";
3
+ import { CAPABILITY_COVERAGE } from "../harness/capability-table.js";
4
+ import { declaredCapabilities } from "../harness/declared-capabilities.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((opts) => {
94
+ const result = auditCapabilityCoverage(declaredCapabilities(), CAPABILITY_COVERAGE, HARNESSES);
95
+ if (opts.json) {
96
+ console.log(JSON.stringify(result, null, 2));
97
+ }
98
+ else {
99
+ console.log(`\nCapability coverage: ${result.coveredCount}/${result.rows.length} covered, ${result.gapCount} gap(s)\n`);
100
+ for (const row of result.rows) {
101
+ if (!row.covered) {
102
+ console.log(` GAP ${row.name.padEnd(32)} ${row.module}`);
103
+ }
104
+ }
105
+ const gaps = result.rows.filter((r) => !r.covered);
106
+ if (gaps.length > 0) {
107
+ console.log("\nDocumented gaps:");
108
+ for (const row of gaps)
109
+ console.log(`\n ${row.name}: ${row.gap}`);
110
+ }
111
+ for (const [label, list] of [
112
+ ["Capabilities with no entry", result.unmapped],
113
+ ["Entries naming no capability", result.stale],
114
+ ["Entries with no coverage and no gap note", result.undocumentedGaps],
115
+ ["Entries naming an unknown selfcheck", result.unknownSelfchecks],
116
+ ["Entries claiming a selfcheck with no suite", result.selfchecksWithoutSuites],
117
+ ["Contract drift", result.contractDrift],
118
+ ["Module mismatches", result.moduleMismatches],
119
+ ["Duplicate entries", result.duplicates]
120
+ ]) {
121
+ if (list.length > 0)
122
+ console.log(`\n${label}: ${list.join(", ")}`);
123
+ }
124
+ console.log("");
125
+ }
126
+ const broken = result.unmapped.length > 0 ||
127
+ result.stale.length > 0 ||
128
+ result.undocumentedGaps.length > 0 ||
129
+ result.unknownSelfchecks.length > 0 ||
130
+ result.selfchecksWithoutSuites.length > 0 ||
131
+ result.contractDrift.length > 0 ||
132
+ result.moduleMismatches.length > 0 ||
133
+ result.duplicates.length > 0;
134
+ if (broken || (opts.strict && result.gapCount > 0)) {
135
+ process.exit(1);
136
+ }
137
+ });
138
+ harness
139
+ .command("gate [files...]")
140
+ .description("Map a diff to touched surfaces and run their harnesses' selfchecks")
141
+ .option("--base <ref>", "Diff against a git ref (e.g. main) instead of the working tree")
142
+ .option("--all", "Ignore the diff and run every selfcheck")
143
+ .option("--expensive", "Include expensive selfchecks (bundle staging etc.)")
144
+ .option("--dry-run", "Print the plan without running anything")
145
+ .option("--json", "Print the plan (and results, unless --dry-run) as JSON")
146
+ .option("--strict", "Exit non-zero when the diff touches a surface only a gap note covers")
147
+ .option("--timeout <seconds>", "Kill a selfcheck that runs longer than this many seconds (default 900)", "900")
148
+ .action(async (files, opts) => {
149
+ const { spawnSync } = await import("node:child_process");
150
+ const { fileURLToPath } = await import("node:url");
151
+ const { dirname, resolve } = await import("node:path");
152
+ const here = dirname(fileURLToPath(import.meta.url));
153
+ // dist layout: packages/cli/dist/commands → repo root is four up.
154
+ const repoRoot = resolve(here, "..", "..", "..", "..");
155
+ const timeoutSeconds = Number(opts.timeout ?? "900");
156
+ const timeoutMs = Number.isFinite(timeoutSeconds) && timeoutSeconds > 0
157
+ ? timeoutSeconds * 1000
158
+ : 900_000;
159
+ let changedFiles = files;
160
+ if (changedFiles.length === 0 && !opts.all) {
161
+ changedFiles = readChangedFiles(repoRoot, opts.base);
162
+ }
163
+ const mappingViolations = opts.all
164
+ ? []
165
+ : await capabilityMappingViolations(repoRoot, opts.base ?? "HEAD", changedFiles);
166
+ if (!opts.json && mappingViolations.length > 0) {
167
+ console.log("\nCapability mapping violations (harness capabilities):");
168
+ for (const v of mappingViolations)
169
+ console.log(` ${v}`);
170
+ }
171
+ const plan = opts.all
172
+ ? {
173
+ changedFiles: [],
174
+ surfaces: [],
175
+ checks: HARNESSES.filter((h) => h.selfcheck).map((h) => ({
176
+ harnessId: h.id,
177
+ command: h.selfcheck.command,
178
+ cost: h.selfcheck.cost,
179
+ surfaces: []
180
+ })),
181
+ manual: [],
182
+ uncoveredSurfaces: [],
183
+ unmappedFiles: []
184
+ }
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");
188
+ // A directory recorded in UNCLAIMED_PATHS has already been judged: no
189
+ // harness reaches it, and the entry says why. `auditPathClaims` honors
190
+ // that; the gate did not, so the first diff to touch such a directory
191
+ // failed with no way to satisfy it short of inventing a surface.
192
+ const unmappedCodeFiles = plan.unmappedFiles
193
+ .filter(isGateRelevantCodeFile)
194
+ .filter((f) => !isUnclaimedPath(f));
195
+ if (!opts.json) {
196
+ printGatePlan(plan, toRun.length, skippedExpensive.length, opts.all);
197
+ if (unmappedCodeFiles.length > 0) {
198
+ console.log("\nCode files no surface claims (the gate fails on these):");
199
+ for (const f of unmappedCodeFiles)
200
+ console.log(` ${f}`);
201
+ }
202
+ }
203
+ if (opts.dryRun) {
204
+ if (opts.json) {
205
+ console.log(JSON.stringify({ plan, mappingViolations, unmappedCodeFiles }, null, 2));
206
+ }
207
+ if (mappingViolations.length > 0 ||
208
+ unmappedCodeFiles.length > 0 ||
209
+ (opts.strict && plan.uncoveredSurfaces.length > 0)) {
210
+ process.exit(1);
211
+ }
212
+ return;
213
+ }
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
+ }
271
+ const failed = results.filter((r) => !r.ok);
272
+ if (opts.json) {
273
+ console.log(JSON.stringify({ plan, results, mappingViolations, unmappedCodeFiles }, null, 2));
274
+ }
275
+ else if (toRun.length > 0) {
276
+ console.log(`\nGate: ${results.length - failed.length}/${results.length} selfchecks passed`);
277
+ for (const r of failed) {
278
+ const label = r.timedOut
279
+ ? "TIMEOUT"
280
+ : r.killed
281
+ ? "KILLED"
282
+ : "FAIL";
283
+ console.log(` ${label} ${r.harnessId} (exit ${r.exitCode}): ${r.command}`);
284
+ }
285
+ console.log("");
286
+ }
287
+ if (failed.length > 0 ||
288
+ mappingViolations.length > 0 ||
289
+ unmappedCodeFiles.length > 0 ||
290
+ (opts.strict && plan.uncoveredSurfaces.length > 0)) {
291
+ process.exit(1);
292
+ }
293
+ });
294
+ }
295
+ function printGatePlan(plan, runCount, skippedExpensive, all) {
296
+ if (all) {
297
+ console.log(`\nRunning all ${runCount} selfcheck(s)${skippedExpensive > 0 ? ` (${skippedExpensive} expensive skipped — pass --expensive)` : ""}`);
298
+ return;
299
+ }
300
+ if (plan.changedFiles.length === 0) {
301
+ console.log("\nNo changed files — nothing to gate.");
302
+ return;
303
+ }
304
+ console.log(`\n${plan.changedFiles.length} changed file(s) touch ${plan.surfaces.length} surface(s):`);
305
+ for (const s of plan.surfaces) {
306
+ console.log(` ${s.id.padEnd(20)} (${s.files.length} file(s))`);
307
+ }
308
+ if (plan.unmappedFiles.length > 0) {
309
+ console.log(`\n${plan.unmappedFiles.length} file(s) outside any surface:`);
310
+ for (const f of plan.unmappedFiles.slice(0, 8))
311
+ console.log(` ${f}`);
312
+ if (plan.unmappedFiles.length > 8) {
313
+ console.log(` …and ${plan.unmappedFiles.length - 8} more`);
314
+ }
315
+ }
316
+ if (plan.uncoveredSurfaces.length > 0) {
317
+ console.log(`\nTouched surfaces with NO harness (documented gaps): ${plan.uncoveredSurfaces.join(", ")}`);
318
+ }
319
+ if (plan.manual.length > 0) {
320
+ console.log("\nManual harnesses (need a target/key — run yourself):");
321
+ for (const m of plan.manual) {
322
+ console.log(` ${m.harnessId.padEnd(18)} ${m.command}`);
323
+ }
324
+ }
325
+ console.log(`\n${runCount} selfcheck(s) to run${skippedExpensive > 0 ? ` (${skippedExpensive} expensive skipped — pass --expensive)` : ""}`);
326
+ }
327
+ /**
328
+ * A capability whose declared contract moved without its coverage mapping
329
+ * moving with it. Adding a capability, or changing what one promises, means
330
+ * saying which eval case or suite covers the new contract — a refactor that
331
+ * leaves the contract alone says nothing and runs the mapped checks as usual.
332
+ */
333
+ async function capabilityMappingViolations(repoRoot, baseRef, changedFiles) {
334
+ const { execSync } = await import("node:child_process");
335
+ const { readFileSync } = await import("node:fs");
336
+ const { join } = await import("node:path");
337
+ const git = (command) => execSync(command, {
338
+ cwd: repoRoot,
339
+ encoding: "utf8",
340
+ stdio: ["ignore", "pipe", "ignore"]
341
+ });
342
+ const atRef = (ref) => {
343
+ try {
344
+ return git(`git show ${ref}:${CAPABILITY_TABLE_PATH}`);
345
+ }
346
+ catch {
347
+ // The table does not exist at that ref — every entry is new.
348
+ return null;
349
+ }
350
+ };
351
+ let working;
352
+ try {
353
+ working = readFileSync(join(repoRoot, CAPABILITY_TABLE_PATH), "utf8");
354
+ }
355
+ catch {
356
+ // Running from a package without the source tree; nothing to compare.
357
+ return [];
358
+ }
359
+ return planCapabilityMappingGate(atRef(resolveGateBaseRef(baseRef, git)), working, changedFiles).violations.map((v) => v.detail);
360
+ }
361
+ //# 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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * `nodetool jsscript versions` — the version-history half of the JS-script
3
+ * commands. The commands themselves live in `version-commands.ts`; this file
4
+ * is the script's row shapes, database seam, columns and messages.
5
+ *
6
+ * JS scripts keep immutable snapshots: manual saves, autosaves the server
7
+ * writes on a document update, and the pre-restore snapshot that makes a
8
+ * restore undoable. The history is read and written directly against the local
9
+ * database, so an agent can work without a server.
10
+ */
11
+ import type { Command } from "commander";
12
+ import type { JsScriptValidation } from "@nodetool-ai/execution/js-script-debug";
13
+ import { type JsonValue, type VersionCommandDeps, type VersionStore } from "./version-commands.js";
14
+ export { parseVersionDocument, parseVersionNumber } from "./version-commands.js";
15
+ /** A `js_scripts` row as these commands need it. */
16
+ export interface JsScriptRow {
17
+ id: string;
18
+ user_id: string;
19
+ name?: string | null;
20
+ updated_at: string;
21
+ document: string;
22
+ }
23
+ /** A `js_script_versions` row. */
24
+ export interface JsScriptVersionRow {
25
+ id: string;
26
+ js_script_id: string;
27
+ version: number;
28
+ name: string | null;
29
+ save_type: string;
30
+ created_at: string;
31
+ document: string;
32
+ }
33
+ export type JsScriptVersionStore = VersionStore<JsScriptRow, JsScriptVersionRow>;
34
+ /** The list-item shape, matching the tRPC router's `jsScriptVersionListItem`. */
35
+ export interface JsScriptVersionListItem {
36
+ id: string;
37
+ version: number;
38
+ name: string | null;
39
+ saveType: string;
40
+ createdAt: string;
41
+ }
42
+ export declare function toVersionListItem(row: JsScriptVersionRow): JsScriptVersionListItem;
43
+ /** One table row per version: what it is and when it was taken. */
44
+ export declare function versionTableRows(items: JsScriptVersionListItem[]): Record<string, unknown>[];
45
+ /** Port and test counts of whatever a version stored. */
46
+ export declare function documentCounts(document: JsonValue | undefined): {
47
+ inputs: number;
48
+ outputs: number;
49
+ tests: number;
50
+ };
51
+ export type JsScriptVersionsDeps = VersionCommandDeps<JsScriptRow, JsScriptVersionRow, JsScriptValidation, void>;
52
+ export declare function registerJsScriptVersionsCommands(jsscript: Command, deps?: JsScriptVersionsDeps): void;
53
+ //# sourceMappingURL=js-script-versions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-script-versions.d.ts","sourceRoot":"","sources":["../../src/commands/js-script-versions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAEjF,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,kBAAkB,EAEvB,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEjF,oDAAoD;AACpD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,kCAAkC;AAClC,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;AAEjF,iFAAiF;AACjF,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,kBAAkB,GACtB,uBAAuB,CAQzB;AAED,mEAAmE;AACnE,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,uBAAuB,EAAE,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAE3B;AAWD,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS;IAG1D,MAAM;IACN,OAAO;IACP,KAAK;EAER;AAwED,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,CACnD,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,IAAI,CACL,CAAC;AAEF,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,OAAO,EACjB,IAAI,GAAE,oBAAyB,GAC9B,IAAI,CAKN"}
@@ -0,0 +1,89 @@
1
+ import { renderJsScriptValidation } from "./js-script-validation-output.js";
2
+ import { countArray, registerVersionCommands } from "./version-commands.js";
3
+ export { parseVersionDocument, parseVersionNumber } from "./version-commands.js";
4
+ export function toVersionListItem(row) {
5
+ return {
6
+ id: row.id,
7
+ version: row.version,
8
+ name: row.name ?? null,
9
+ saveType: row.save_type,
10
+ createdAt: row.created_at
11
+ };
12
+ }
13
+ /** One table row per version: what it is and when it was taken. */
14
+ export function versionTableRows(items) {
15
+ return items.map(tableRow);
16
+ }
17
+ function tableRow(v) {
18
+ return {
19
+ version: v.version,
20
+ saveType: v.saveType,
21
+ name: v.name ?? "",
22
+ createdAt: v.createdAt
23
+ };
24
+ }
25
+ /** Port and test counts of whatever a version stored. */
26
+ export function documentCounts(document) {
27
+ const doc = (document ?? {});
28
+ return {
29
+ inputs: countArray(doc.inputs),
30
+ outputs: countArray(doc.outputs),
31
+ tests: countArray(doc.tests)
32
+ };
33
+ }
34
+ async function defaultValidate(document) {
35
+ const { validateJsScriptDoc } = await import("@nodetool-ai/execution/js-script-debug");
36
+ return validateJsScriptDoc(document);
37
+ }
38
+ async function defaultStore() {
39
+ const { initDb, JsScript, JsScriptVersion } = await import("@nodetool-ai/models");
40
+ const { getDefaultDbPath } = await import("@nodetool-ai/config");
41
+ initDb(getDefaultDbPath());
42
+ return {
43
+ load: async (id) => await JsScript.findById(id),
44
+ listVersions: async (jsScriptId, opts) => await JsScriptVersion.listForScript(jsScriptId, opts),
45
+ findVersion: async (jsScriptId, version) => await JsScriptVersion.findByVersion(jsScriptId, version),
46
+ snapshot: async (script, opts) => await JsScriptVersion.snapshot(script, opts),
47
+ restore: async (script, version) => await JsScript.updateFieldsIfUnchanged(script.id, script.updated_at, {
48
+ document: version.document
49
+ }),
50
+ deleteVersion: async (jsScriptId, version) => {
51
+ const row = await JsScriptVersion.findByVersion(jsScriptId, version);
52
+ if (row)
53
+ await row.delete();
54
+ }
55
+ };
56
+ }
57
+ const spec = {
58
+ idArg: "js_script_id",
59
+ idKey: "jsScriptId",
60
+ descriptions: {
61
+ group: "Inspect and restore the snapshot history of a JS script (manual saves, autosaves, pre-restore snapshots)",
62
+ list: "List a script's versions, newest first",
63
+ show: "Print one version's metadata and the document it stored",
64
+ create: "Snapshot the script as it stands now (a manual save)",
65
+ restore: "Restore a version onto the script. The pre-restore state is snapshotted first, and the restored document is validated against the current schema — a restore whose document no longer validates exits non-zero",
66
+ delete: "Delete one version from a script's history",
67
+ restoreJson: "Print the restore result as JSON"
68
+ },
69
+ notFoundDocument: (id) => `JS script not found: ${id}`,
70
+ notFoundVersion: (id, version) => `JS script version not found: ${id} v${version}`,
71
+ conflict: "Script was modified since last read",
72
+ confirmDelete: (id, version) => `Delete v${version} of JS script ${id}?`,
73
+ deleted: (id, version) => `✅ Deleted v${version} of JS script ${id}`,
74
+ toItem: toVersionListItem,
75
+ tableRow,
76
+ counts: documentCounts,
77
+ showSummary: (counts) => `\n ${counts.inputs} input(s), ${counts.outputs} output(s), ${counts.tests} test(s)`,
78
+ restoreSummary: (id, version, counts) => `✅ Restored v${version} onto ${id}: ${counts.inputs} input(s), ${counts.outputs} output(s), ${counts.tests} test(s)`,
79
+ restoreJsonExtra: () => ({}),
80
+ validateMeta: () => undefined,
81
+ renderValidation: renderJsScriptValidation
82
+ };
83
+ export function registerJsScriptVersionsCommands(jsscript, deps = {}) {
84
+ registerVersionCommands(jsscript, spec, deps, {
85
+ store: defaultStore,
86
+ validate: defaultValidate
87
+ });
88
+ }
89
+ //# sourceMappingURL=js-script-versions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js-script-versions.js","sourceRoot":"","sources":["../../src/commands/js-script-versions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * `nodetool jsscript validate`, `run`, `test`, `debug` and `versions` — the
3
+ * JS-script harness commands.
4
+ *
5
+ * `validate` checks a script document statically: the body's syntax and
6
+ * imports, ports the body reads that nothing declares, outputs no emit/output
7
+ * call reaches, tests naming ports the script lacks. `run` executes the body
8
+ * once in the QuickJS sandbox; `test` runs the document's own saved cases and
9
+ * exits non-zero on any failure — the selfcheck-friendly command. `debug`
10
+ * replays a scripted `--interact` session against the headless
11
+ * `ui_jsscript_*` bridge and writes a bundle. Every target is a script JSON
12
+ * file or a `js_scripts` row id; file targets need no database.
13
+ *
14
+ * Heavy dependencies (the database, the validator core, the sandbox, the
15
+ * bridge) are imported lazily inside each action, so command registration
16
+ * stays light and unit-testable.
17
+ */
18
+ import type { Command } from "commander";
19
+ import { renderJsScriptValidation } from "./js-script-validation-output.js";
20
+ export { renderJsScriptValidation };
21
+ /** `--inputs` is a JSON object; anything else names itself in the error. */
22
+ export declare function parseInputsOption(raw: string): Record<string, unknown>;
23
+ /**
24
+ * `--input-streams` stages items per handle for a body that reads `stream`:
25
+ * a JSON object whose every value is an array.
26
+ */
27
+ export declare function parseInputStreamsOption(raw: string): Record<string, unknown[]>;
28
+ export declare function registerJsScriptCommands(program: Command): void;
29
+ //# sourceMappingURL=js-script.d.ts.map
@@ -0,0 +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"}