@nodetool-ai/cli 0.7.0-rc.23 → 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 @@
1
+ {"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../src/js-script-debug/harness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,252 @@
1
+ /**
2
+ * The JS-script harness: the CLI host around the shared validator and the
3
+ * sandbox.
4
+ *
5
+ * `runJsScriptValidate` is the cheap pre-flight — load a document, check it,
6
+ * report. `runJsScriptRun` and `runJsScriptTest` execute the body through
7
+ * `runCodeBody`, the same core the `run_js_script` capability and the run
8
+ * endpoint use. `runJsScriptDebug` additionally replays a scripted session
9
+ * against the headless `ui_jsscript_*` bridge (the one the tool-loop eval
10
+ * drives), validates the document the session left behind, and writes a
11
+ * self-contained bundle.
12
+ *
13
+ * Everything heavy is injected with a lazy default: the validator core
14
+ * (`@nodetool-ai/execution/js-script-debug`), the sandbox runner and the bridge
15
+ * factory (`@nodetool-ai/agents`). Tests supply their own and load neither.
16
+ */
17
+ import { mkdir, writeFile } from "node:fs/promises";
18
+ import { join, resolve } from "node:path";
19
+ import { resolveJsScriptTarget } from "./target.js";
20
+ async function loadCore() {
21
+ const core = await import("@nodetool-ai/execution/js-script-debug");
22
+ return {
23
+ validateJsScriptDoc: (raw, options) => core.validateJsScriptDoc(raw, options),
24
+ buildJsScriptDebugReport: (input) => core.buildJsScriptDebugReport(input),
25
+ renderJsScriptReportMarkdown: (report) => core.renderJsScriptReportMarkdown(report)
26
+ };
27
+ }
28
+ /**
29
+ * The default executor: one `ProcessingContext` per run, the document's own
30
+ * packages, secrets and timeout, and the Code-node toolbelt — the same
31
+ * envelope the `run_js_script` capability applies.
32
+ *
33
+ * The secret store is opened only when the document declares secrets, so a
34
+ * file target with none stays database-free.
35
+ */
36
+ async function loadExecutor() {
37
+ const { runCodeBody } = await import("@nodetool-ai/agents");
38
+ const { PERMISSION_GATE_CONTEXT_KEY, ProcessingContext, headlessGate } = await import("@nodetool-ai/runtime");
39
+ const { FileStorageAdapter } = await import("@nodetool-ai/storage");
40
+ const { getDefaultAssetsPath } = await import("@nodetool-ai/config");
41
+ const { JS_SCRIPT_MAX_TIMEOUT_SECONDS } = await import("@nodetool-ai/protocol/api-schemas/js-scripts.js");
42
+ // The toolbelt's `nodetool.*` modules read and write the database, so a
43
+ // body that saves a timeline needs it even when it declares no secrets.
44
+ const { initDb, getSecret } = await import("@nodetool-ai/models");
45
+ const { getDefaultDbPath } = await import("@nodetool-ai/config");
46
+ initDb(getDefaultDbPath());
47
+ // A body imports installed sandbox packs by name, as it does on the server.
48
+ const { installSandboxCatalog } = await import("../sandbox-catalog.js");
49
+ installSandboxCatalog();
50
+ let seq = 0;
51
+ return async (document, inputs, inputStreams) => {
52
+ let secretResolver;
53
+ if (document.secrets.length > 0) {
54
+ secretResolver = getSecret;
55
+ }
56
+ const contextInit = {
57
+ jobId: `jsscript-cli-${++seq}`,
58
+ userId: "1",
59
+ storage: new FileStorageAdapter(getDefaultAssetsPath())
60
+ };
61
+ if (secretResolver) {
62
+ contextInit.secretResolver = secretResolver;
63
+ }
64
+ const context = new ProcessingContext(contextInit);
65
+ context.set(PERMISSION_GATE_CONTEXT_KEY, headlessGate("JS script debug"));
66
+ const runOptions = {
67
+ code: document.code,
68
+ inputs,
69
+ secrets: document.secrets,
70
+ timeoutSeconds: Math.min(document.timeoutSeconds, JS_SCRIPT_MAX_TIMEOUT_SECONDS),
71
+ withToolbelt: true
72
+ };
73
+ if (inputStreams) {
74
+ runOptions.inputStreams = inputStreams;
75
+ }
76
+ return runCodeBody(context, runOptions);
77
+ };
78
+ }
79
+ async function loadGrader() {
80
+ const { gradeCodeCases } = await import("@nodetool-ai/agents");
81
+ return async (document, execute) => {
82
+ const report = await gradeCodeCases(document.tests.map((testCase, index) => {
83
+ const graded = {
84
+ name: testCase.name.trim() !== "" ? testCase.name : `case ${index + 1}`,
85
+ inputs: testCase.inputs ?? {}
86
+ };
87
+ if (testCase.inputStreams) {
88
+ graded.inputStreams = testCase.inputStreams;
89
+ }
90
+ if (testCase.expect) {
91
+ graded.expect = testCase.expect;
92
+ }
93
+ if (testCase.expectedStreamed) {
94
+ graded.expectedStreamed = testCase.expectedStreamed;
95
+ }
96
+ return graded;
97
+ }), (testCase) => execute(document, testCase.inputs, testCase.inputStreams));
98
+ return report;
99
+ };
100
+ }
101
+ async function loadBridgeFactory() {
102
+ const { createJsScriptToolBridge } = await import("@nodetool-ai/agents");
103
+ return (initial) =>
104
+ // SAFETY: the eval-surface bridge in @nodetool-ai/agents implements this
105
+ // exact tool list and snapshot — it is the bridge this type describes. The
106
+ // two packages declare the script document types independently, and that
107
+ // duplication is the only reason the structures do not line up.
108
+ createJsScriptToolBridge(initial);
109
+ }
110
+ function defaultOutDir(ref) {
111
+ const slug = ref
112
+ .replace(/[^a-zA-Z0-9_-]+/g, "-")
113
+ .replace(/^-+|-+$/g, "")
114
+ .slice(0, 40) || "jsscript";
115
+ const stamp = new Date().toISOString().replace(/[:.]/g, "-");
116
+ return resolve(`nodetool-debug/jsscript-${slug}-${stamp}`);
117
+ }
118
+ /**
119
+ * The document a target carries, parsed against the schema so the executor
120
+ * gets defaults for anything the file left out. A document that does not parse
121
+ * has already been reported by validation, so this is only reached on a sound
122
+ * one.
123
+ */
124
+ async function asDocument(raw) {
125
+ const { jsScriptDocument } = await import("@nodetool-ai/protocol/api-schemas/js-scripts.js");
126
+ const parsed = jsScriptDocument.safeParse(raw);
127
+ if (!parsed.success) {
128
+ throw new Error(`The document does not parse: ${parsed.error.issues
129
+ .map((issue) => `${issue.path.join(".") || "document"}: ${issue.message}`)
130
+ .join("; ")}`);
131
+ }
132
+ return parsed.data;
133
+ }
134
+ /** Load a script and validate it — no sandbox, no bundle. */
135
+ export async function runJsScriptValidate(ref, deps) {
136
+ const resolved = await resolveJsScriptTarget(ref, deps);
137
+ const core = deps.core ?? (await loadCore());
138
+ const validation = await core.validateJsScriptDoc(resolved.raw);
139
+ return { target: resolved.target, validation };
140
+ }
141
+ /** Run a script once with the given inputs. */
142
+ export async function runJsScriptOnce(ref, inputs, deps, inputStreams) {
143
+ const resolved = await resolveJsScriptTarget(ref, deps);
144
+ const document = await asDocument(resolved.raw);
145
+ if (inputStreams) {
146
+ const declared = new Set(document.inputs.map((port) => port.name));
147
+ const undeclared = Object.keys(inputStreams).filter((handle) => !declared.has(handle));
148
+ if (undeclared.length > 0) {
149
+ throw new Error(`--input-streams names ${undeclared.join(", ")}, which the script does ` +
150
+ `not declare as inputs (declared: ${[...declared].join(", ") || "none"}).`);
151
+ }
152
+ }
153
+ const execute = deps.execute ?? (await loadExecutor());
154
+ return {
155
+ target: resolved.target,
156
+ result: await execute(document, inputs, inputStreams)
157
+ };
158
+ }
159
+ /** Run a script's saved cases and grade them. */
160
+ export async function runJsScriptTests(ref, deps) {
161
+ const resolved = await resolveJsScriptTarget(ref, deps);
162
+ const document = await asDocument(resolved.raw);
163
+ if (document.tests.length === 0) {
164
+ throw new Error(`${ref} has no saved test cases; there is nothing to run. Add some to the document's \`tests\`.`);
165
+ }
166
+ const execute = deps.execute ?? (await loadExecutor());
167
+ const grade = deps.grade ?? (await loadGrader());
168
+ return { target: resolved.target, report: await grade(document, execute) };
169
+ }
170
+ /**
171
+ * Replay `--interact` against the headless bridge and write the bundle.
172
+ *
173
+ * A failing step is recorded and the script continues: a run that stops at the
174
+ * first error hides every problem behind it, and the report is what the caller
175
+ * came for.
176
+ */
177
+ export async function runJsScriptDebug(ref, options, deps) {
178
+ const resolved = await resolveJsScriptTarget(ref, deps);
179
+ const core = deps.core ?? (await loadCore());
180
+ const steps = options.interact ?? [];
181
+ const interactions = [];
182
+ let snapshot;
183
+ let finalDocument;
184
+ if (steps.length > 0) {
185
+ const createBridge = deps.createBridge ?? (await loadBridgeFactory());
186
+ const bridgeInit = {
187
+ document: (await asDocument(resolved.raw))
188
+ };
189
+ if (resolved.target.name) {
190
+ bridgeInit.name = resolved.target.name;
191
+ }
192
+ const bridge = createBridge(bridgeInit);
193
+ const byName = new Map(bridge.tools.map((t) => [t.name, t]));
194
+ for (const step of steps) {
195
+ const tool = byName.get(step.tool);
196
+ if (!tool) {
197
+ const known = [...byName.keys()].sort().join(", ");
198
+ interactions.push({
199
+ tool: step.tool,
200
+ input: step.input,
201
+ ok: false,
202
+ error: `No JS script tool named "${step.tool}". Available: ${known}.`
203
+ });
204
+ deps.onLog?.(`✗ ${step.tool}: unknown tool`);
205
+ continue;
206
+ }
207
+ try {
208
+ const result = await tool.execute(step.input);
209
+ interactions.push({
210
+ tool: step.tool,
211
+ input: step.input,
212
+ ok: true,
213
+ result
214
+ });
215
+ deps.onLog?.(`✓ ${step.tool}`);
216
+ }
217
+ catch (e) {
218
+ const error = e instanceof Error ? e.message : String(e);
219
+ interactions.push({
220
+ tool: step.tool,
221
+ input: step.input,
222
+ ok: false,
223
+ error
224
+ });
225
+ deps.onLog?.(`✗ ${step.tool}: ${error}`);
226
+ }
227
+ }
228
+ snapshot = bridge.finalState();
229
+ finalDocument = bridge.document();
230
+ }
231
+ const reportInput = {
232
+ target: resolved.target,
233
+ document: resolved.raw,
234
+ interactions
235
+ };
236
+ if (snapshot !== undefined) {
237
+ reportInput.finalState = snapshot;
238
+ }
239
+ if (finalDocument !== undefined) {
240
+ reportInput.finalDocument = finalDocument;
241
+ }
242
+ const report = await core.buildJsScriptDebugReport(reportInput);
243
+ const bundleDir = options.outDir
244
+ ? resolve(options.outDir)
245
+ : defaultOutDir(ref);
246
+ await mkdir(bundleDir, { recursive: true });
247
+ await writeFile(join(bundleDir, "jsscript.json"), JSON.stringify(resolved.raw, null, 2), "utf8");
248
+ await writeFile(join(bundleDir, "report.json"), JSON.stringify(report, null, 2), "utf8");
249
+ await writeFile(join(bundleDir, "report.md"), core.renderJsScriptReportMarkdown(report), "utf8");
250
+ return { report, bundleDir };
251
+ }
252
+ //# sourceMappingURL=harness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/js-script-debug/harness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The CLI host for the JS-script harness: target resolution, the `--interact`
3
+ * script, sandbox execution, and the bundle writer. The rules themselves live
4
+ * in `@nodetool-ai/execution/js-script-debug`.
5
+ */
6
+ export { runJsScriptValidate, runJsScriptOnce, runJsScriptTests, runJsScriptDebug, type CreateJsScriptBridge, type JsScriptBridge, type JsScriptBridgeTool, type JsScriptCaseResult, type JsScriptDebugCore, type JsScriptDebugDeps, type JsScriptDebugResult, type JsScriptExecutor, type JsScriptRunOutcome, type JsScriptRunResult, type JsScriptTestOutcome, type JsScriptTestReport, type JsScriptValidateResult } from "./harness.js";
7
+ export { normalizeToolName, parseInteractionScript, type JsScriptInteractionStep } from "./interactions.js";
8
+ export { resolveJsScriptTarget, type JsScriptRecord, type JsScriptTargetDeps, type ResolvedJsScriptTarget } from "./target.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/js-script-debug/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,uBAAuB,EAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The CLI host for the JS-script harness: target resolution, the `--interact`
3
+ * script, sandbox execution, and the bundle writer. The rules themselves live
4
+ * in `@nodetool-ai/execution/js-script-debug`.
5
+ */
6
+ export { runJsScriptValidate, runJsScriptOnce, runJsScriptTests, runJsScriptDebug } from "./harness.js";
7
+ export { normalizeToolName, parseInteractionScript } from "./interactions.js";
8
+ export { resolveJsScriptTarget } from "./target.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/js-script-debug/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAcjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EAEvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,qBAAqB,EAItB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The `--interact` script for `nodetool jsscript debug`.
3
+ *
4
+ * A step names one JS-script tool and the input to call it with:
5
+ *
6
+ * ```json
7
+ * [{"tool": "set_ports", "input": {"outputs": [{"name": "total", "type": "int"}]}},
8
+ * {"tool": "ui_jsscript_set_code",
9
+ * "input": {"code": "await output(\"total\", 1);"}}]
10
+ * ```
11
+ *
12
+ * Both spellings resolve to the same tool: the `ui_jsscript_` prefix is what
13
+ * the bridge and the browser call it, and typing it for every step is noise.
14
+ */
15
+ import { type InteractionStep } from "../interaction-script.js";
16
+ /** One parsed step, with the tool name in its canonical `ui_jsscript_*` form. */
17
+ export type JsScriptInteractionStep = InteractionStep;
18
+ export declare const normalizeToolName: (name: string) => string, parseInteractionScript: (json: string) => InteractionStep[];
19
+ //# sourceMappingURL=interactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../src/js-script-debug/interactions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,0BAA0B,CAAC;AAElC,iFAAiF;AACjF,MAAM,MAAM,uBAAuB,GAAG,eAAe,CAAC;AAEtD,eAAO,MAAQ,iBAAiB,4BAAE,sBAAsB,qCAIrD,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The `--interact` script for `nodetool jsscript debug`.
3
+ *
4
+ * A step names one JS-script tool and the input to call it with:
5
+ *
6
+ * ```json
7
+ * [{"tool": "set_ports", "input": {"outputs": [{"name": "total", "type": "int"}]}},
8
+ * {"tool": "ui_jsscript_set_code",
9
+ * "input": {"code": "await output(\"total\", 1);"}}]
10
+ * ```
11
+ *
12
+ * Both spellings resolve to the same tool: the `ui_jsscript_` prefix is what
13
+ * the bridge and the browser call it, and typing it for every step is noise.
14
+ */
15
+ import { createInteractionScript } from "../interaction-script.js";
16
+ export const { normalizeToolName, parseInteractionScript } = createInteractionScript("ui_jsscript_", '{"tool":"set_code","input":{"code":"..."}}');
17
+ //# sourceMappingURL=interactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactions.js","sourceRoot":"","sources":["../../src/js-script-debug/interactions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,uBAAuB,EAExB,MAAM,0BAA0B,CAAC;AAKlC,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,GACxD,uBAAuB,CACrB,cAAc,EACd,4CAA4C,CAC7C,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { JsScriptDebugTarget } from "@nodetool-ai/execution/js-script-debug";
2
+ /** A `js_scripts` row as the harness needs it. */
3
+ export interface JsScriptRecord {
4
+ id: string;
5
+ name?: string | null;
6
+ /** The stored document — a JSON string or an already-parsed object. */
7
+ document: unknown;
8
+ }
9
+ export interface JsScriptTargetDeps {
10
+ /** Load a script by DB id. */
11
+ loadScript: (id: string) => Promise<JsScriptRecord | null>;
12
+ }
13
+ export interface ResolvedJsScriptTarget {
14
+ target: JsScriptDebugTarget;
15
+ /** The document exactly as loaded — validation's input, unrepaired. */
16
+ raw: unknown;
17
+ }
18
+ /** Resolve a JS-script target: a JSON file path or a `js_scripts` row id. */
19
+ export declare function resolveJsScriptTarget(ref: string, deps: JsScriptTargetDeps): Promise<ResolvedJsScriptTarget>;
20
+ //# sourceMappingURL=target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../src/js-script-debug/target.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAelF,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,uEAAuE;IACvE,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,uEAAuE;IACvE,GAAG,EAAE,OAAO,CAAC;CACd;AA8BD,6EAA6E;AAC7E,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,sBAAsB,CAAC,CAkCjC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Resolves a JS-script debug target into a document plus its name.
3
+ *
4
+ * A script is named two ways, and both end up in the same shape:
5
+ *
6
+ * - a **JSON file** — either a bare `JsScriptDocument` or a wrapper carrying
7
+ * one under `document`, as the `js_scripts` row and the `jsScripts.get`
8
+ * response do;
9
+ * - a **`js_scripts` row id**, read through an injected loader so this module
10
+ * needs no database.
11
+ *
12
+ * A path that exists on disk wins over an id, so a file named like an id is
13
+ * still readable.
14
+ */
15
+ import { existsSync, readFileSync } from "node:fs";
16
+ import { isRecord, isString } from "../predicates.js";
17
+ /**
18
+ * The document a target carries, unwrapping a `document` field (string or
19
+ * object) when there is one. Never throws — an unreadable document is a
20
+ * validation finding, not a crash.
21
+ */
22
+ function documentOf(raw) {
23
+ // SAFETY: a target is read from a JSON file or a json column, so every
24
+ // branch below carries decoded JSON.
25
+ if (!isRecord(raw))
26
+ return raw;
27
+ const inner = raw.document;
28
+ if (isString(inner)) {
29
+ try {
30
+ return JSON.parse(inner);
31
+ }
32
+ catch {
33
+ return inner;
34
+ }
35
+ }
36
+ // SAFETY: same JSON provenance as the branch above.
37
+ if (inner !== undefined)
38
+ return inner;
39
+ return raw;
40
+ }
41
+ /** A document is anything carrying a `code` string and a `schemaVersion`. */
42
+ const looksLikeDocument = (value) => isRecord(value) &&
43
+ isString(value.code) &&
44
+ value.schemaVersion !== undefined;
45
+ /** Resolve a JS-script target: a JSON file path or a `js_scripts` row id. */
46
+ export async function resolveJsScriptTarget(ref, deps) {
47
+ if (existsSync(ref)) {
48
+ let parsed;
49
+ try {
50
+ parsed = JSON.parse(readFileSync(ref, "utf8"));
51
+ }
52
+ catch (e) {
53
+ throw new Error(`${ref} is not valid JSON: ${e.message}`);
54
+ }
55
+ const raw = documentOf(parsed);
56
+ if (!looksLikeDocument(raw)) {
57
+ throw new Error(`${ref} is not a JS script document (no \`schemaVersion\`/\`code\`, and no \`document\` field carrying them).`);
58
+ }
59
+ const name = isRecord(parsed) && isString(parsed.name)
60
+ ? parsed.name
61
+ : undefined;
62
+ const target = { kind: "file", ref };
63
+ if (name) {
64
+ target.name = name;
65
+ }
66
+ return { target, raw };
67
+ }
68
+ const record = await deps.loadScript(ref);
69
+ if (!record) {
70
+ throw new Error(`JS script not found: ${ref}`);
71
+ }
72
+ const target = { kind: "id", ref };
73
+ if (record.name) {
74
+ target.name = record.name;
75
+ }
76
+ return { target, raw: documentOf(record) };
77
+ }
78
+ //# sourceMappingURL=target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/js-script-debug/target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EACL,QAAQ,EACR,QAAQ,EACT,MAAM,kBAAkB,CAAC;AA8B1B;;;;GAIG;AACH,SAAS,UAAU,CAAC,GAAY;IAC9B,uEAAuE;IACvE,qCAAqC;IACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAgB,CAAC;IAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC3B,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,oDAAoD;IACpD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAkB,CAAC;IACnD,OAAO,GAAgB,CAAC;AAC1B,CAAC;AAED,6EAA6E;AAC7E,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAW,EAAE,CACpD,QAAQ,CAAC,KAAK,CAAC;IACf,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;IACpB,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC;AAEpC,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAAW,EACX,IAAwB;IAExB,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,uBAAwB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,GAAG,GAAG,wGAAwG,CAC/G,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GACR,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACvC,CAAC,CAAC,MAAM,CAAC,IAAI;YACb,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,MAAM,GAAwB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC1D,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,MAAM,GAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IACxD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC5B,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The persistence a local (no-server) run gets: assets and timeline sequences,
3
+ * against the same database `setupDb()` opens.
4
+ *
5
+ * Installed process-wide by each command that runs a graph, so every context
6
+ * built downstream answers the same way. Wiring it per-entrance is what let
7
+ * `nodetool debug` and `nodetool workflows run` disagree: a workflow that
8
+ * saved an image ran under one and threw "ProcessingContext model interface
9
+ * 'createAsset' is not configured" under the other.
10
+ *
11
+ * `createAsset` is the server's own implementation, imported rather than
12
+ * rewritten — the local copy this replaced wrote no thumbnail and left
13
+ * `parent_id` null, so a CLI-generated asset was invisible in every
14
+ * folder-scoped listing in the UI.
15
+ */
16
+ import type { ProcessingContextModelInterfaces } from "@nodetool-ai/runtime";
17
+ export declare function localModelInterfaces(): Promise<ProcessingContextModelInterfaces>;
18
+ /** Install them as this process's default, once. */
19
+ export declare function installLocalModelInterfaces(): Promise<void>;
20
+ //# sourceMappingURL=local-model-interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-model-interfaces.d.ts","sourceRoot":"","sources":["../src/local-model-interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAO7E,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,gCAAgC,CAAC,CA0CtF;AAID,oDAAoD;AACpD,wBAAgB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAO3D"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * The persistence a local (no-server) run gets: assets and timeline sequences,
3
+ * against the same database `setupDb()` opens.
4
+ *
5
+ * Installed process-wide by each command that runs a graph, so every context
6
+ * built downstream answers the same way. Wiring it per-entrance is what let
7
+ * `nodetool debug` and `nodetool workflows run` disagree: a workflow that
8
+ * saved an image ran under one and threw "ProcessingContext model interface
9
+ * 'createAsset' is not configured" under the other.
10
+ *
11
+ * `createAsset` is the server's own implementation, imported rather than
12
+ * rewritten — the local copy this replaced wrote no thumbnail and left
13
+ * `parent_id` null, so a CLI-generated asset was invisible in every
14
+ * folder-scoped listing in the UI.
15
+ */
16
+ import { TimelineSequence } from "@nodetool-ai/models";
17
+ import { setDefaultModelInterfaces } from "@nodetool-ai/runtime";
18
+ export async function localModelInterfaces() {
19
+ // The `/assets` subpath, not the package root: the root entry pulls in the
20
+ // WebSocket runner and the HTTP server, which a local run does not need.
21
+ const { createAssetModelInterface, updateAssetBytesModelInterface } = await import("@nodetool-ai/websocket/assets");
22
+ // Storyboards, the entity library and the game templates, from the same
23
+ // module the server installs — a harness run has to write the rows a server
24
+ // run writes, or it proves nothing about the server.
25
+ const { documentModelInterfaces } = await import("@nodetool-ai/websocket/documents");
26
+ return {
27
+ createAsset: createAssetModelInterface,
28
+ updateAssetBytes: updateAssetBytesModelInterface,
29
+ ...documentModelInterfaces(),
30
+ // Timeline nodes persist their sequence rather than passing it down the
31
+ // graph, so `AddClips` and everything after it needs these to run at all.
32
+ getTimelineSequence: async ({ userId, id }) => {
33
+ const seq = await TimelineSequence.findById(id);
34
+ if (!seq || seq.user_id !== userId)
35
+ return null;
36
+ return seq.toTimelineSequence();
37
+ },
38
+ createTimelineSequence: async ({ userId, sequence }) => {
39
+ const seq = TimelineSequence.fromTimelineSequence(userId, sequence);
40
+ await seq.save();
41
+ return seq.toTimelineSequence();
42
+ },
43
+ updateTimelineSequence: async ({ userId, id, sequence }) => {
44
+ const existing = await TimelineSequence.findById(id);
45
+ if (!existing || existing.user_id !== userId)
46
+ return null;
47
+ const next = TimelineSequence.fromTimelineSequence(userId, sequence);
48
+ next.id = id;
49
+ await next.save();
50
+ return next.toTimelineSequence();
51
+ }
52
+ };
53
+ }
54
+ let installed = null;
55
+ /** Install them as this process's default, once. */
56
+ export function installLocalModelInterfaces() {
57
+ if (!installed) {
58
+ installed = localModelInterfaces().then((interfaces) => {
59
+ setDefaultModelInterfaces(interfaces);
60
+ });
61
+ }
62
+ return installed;
63
+ }
64
+ //# sourceMappingURL=local-model-interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-model-interfaces.js","sourceRoot":"","sources":["../src/local-model-interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAMjE,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,GACjE,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;IAChD,wEAAwE;IACxE,4EAA4E;IAC5E,qDAAqD;IACrD,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAC9C,kCAAkC,CACnC,CAAC;IACF,OAAO;QACL,WAAW,EAAE,yBAAyB;QACtC,gBAAgB,EAAE,8BAA8B;QAChD,GAAG,uBAAuB,EAAE;QAC5B,wEAAwE;QACxE,0EAA0E;QAC1E,mBAAmB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE;YAC5C,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC;YAChD,OAAO,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAClC,CAAC;QACD,sBAAsB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;YACrD,MAAM,GAAG,GAAG,gBAAgB,CAAC,oBAAoB,CAC/C,MAAM,EACN,QAA4B,CAC7B,CAAC;YACF,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAClC,CAAC;QACD,sBAAsB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YACzD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC;YAC1D,MAAM,IAAI,GAAG,gBAAgB,CAAC,oBAAoB,CAChD,MAAM,EACN,QAA4B,CAC7B,CAAC;YACF,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACnC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,IAAI,SAAS,GAAyB,IAAI,CAAC;AAE3C,oDAAoD;AACpD,MAAM,UAAU,2BAA2B;IACzC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;YACrD,yBAAyB,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Resolve a secret for the local user: encrypted store first, then env. */
2
+ export declare function resolveLocalSecret(key: string): Promise<string | null>;
3
+ //# sourceMappingURL=local-secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-secrets.d.ts","sourceRoot":"","sources":["../src/local-secrets.ts"],"names":[],"mappings":"AAaA,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAEtE"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Secret resolution for CLI runs.
3
+ *
4
+ * `getSecret(key)` with no user id never reads the encrypted store — the DB
5
+ * lookup inside it is guarded by the caller's user id, so a bare reference
6
+ * resolves from `process.env` alone. Every CLI surface runs as the local user,
7
+ * so it must ask for that user's secrets explicitly, or a key the user stored
8
+ * with `nodetool secrets store` is invisible and the provider answers 401.
9
+ */
10
+ import { getSecret } from "@nodetool-ai/models";
11
+ import { LOCAL_USER_ID } from "./commands/local-db.js";
12
+ /** Resolve a secret for the local user: encrypted store first, then env. */
13
+ export function resolveLocalSecret(key) {
14
+ return getSecret(key, LOCAL_USER_ID);
15
+ }
16
+ //# sourceMappingURL=local-secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-secrets.js","sourceRoot":"","sources":["../src/local-secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,4EAA4E;AAC5E,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AACvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BlE;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlD"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA6BlE;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlD"}
package/dist/markdown.js CHANGED
@@ -4,8 +4,10 @@
4
4
  * syntax-highlighted code blocks, tables, bold/italic, links.
5
5
  */
6
6
  import { marked } from "marked";
7
+ import { isString } from "./predicates.js";
7
8
  // Cache so we only set the extension once
8
9
  let _initialized = false;
10
+ let _available = false;
9
11
  export async function renderMarkdown(text) {
10
12
  if (!_initialized) {
11
13
  try {
@@ -19,15 +21,18 @@ export async function renderMarkdown(text) {
19
21
  showSectionPrefix: false,
20
22
  reflowText: false
21
23
  }));
24
+ _available = true;
22
25
  }
23
26
  catch {
24
- // marked-terminal unavailable — fall back to plain marked output
27
+ // Keep Markdown readable rather than returning marked's HTML renderer.
25
28
  }
26
29
  _initialized = true;
27
30
  }
31
+ if (!_available)
32
+ return text;
28
33
  try {
29
34
  const result = marked(text);
30
- if (typeof result === "string")
35
+ if (isString(result))
31
36
  return result;
32
37
  return await result;
33
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,0CAA0C;AAC1C,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY;IAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,2EAA2E;YAC3E,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAC5C,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,OAAO,CAAC;YACzD,MAAM,CAAC,GAAG,CACR,cAAc,CAAC;gBACb,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;gBACnC,KAAK,EAAE,KAAK;gBACZ,GAAG,EAAE,CAAC;gBACN,iBAAiB,EAAE,KAAK;gBACxB,UAAU,EAAE,KAAK;aAClB,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,iEAAiE;QACnE,CAAC;QACD,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC;QAC9C,OAAO,MAAM,MAAM,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,CAAC,uCAAuC;IACtD,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI;SACR,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC;SACpC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC;SAC3B,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC;SACjC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;SAC7B,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,0CAA0C;AAC1C,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY;IAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,2EAA2E;YAC3E,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAC5C,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,OAAO,CAAC;YACzD,MAAM,CAAC,GAAG,CACR,cAAc,CAAC;gBACb,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;gBACnC,KAAK,EAAE,KAAK;gBACZ,GAAG,EAAE,CAAC;gBACN,iBAAiB,EAAE,KAAK;gBACxB,UAAU,EAAE,KAAK;aAClB,CAAC,CACH,CAAC;YACF,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;QACzE,CAAC;QACD,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QACpC,OAAO,MAAM,MAAM,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,CAAC,uCAAuC;IACtD,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI;SACR,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC;SACpC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC;SAC3B,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC;SACjC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;SAC7B,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}