@nodetool-ai/agents 0.8.1 → 0.8.3

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 (477) hide show
  1. package/dist/.nodetool-build-stamp +1 -1
  2. package/dist/analysis/audio-dsp.d.ts +3 -2
  3. package/dist/analysis/audio-dsp.d.ts.map +1 -1
  4. package/dist/analysis/audio-dsp.js +11 -8
  5. package/dist/analysis/audio-dsp.js.map +1 -1
  6. package/dist/analysis/media-decode.d.ts +13 -0
  7. package/dist/analysis/media-decode.d.ts.map +1 -1
  8. package/dist/analysis/media-decode.js +33 -6
  9. package/dist/analysis/media-decode.js.map +1 -1
  10. package/dist/apify/assets.d.ts.map +1 -1
  11. package/dist/apify/assets.js +4 -0
  12. package/dist/apify/assets.js.map +1 -1
  13. package/dist/author-graph.d.ts +2 -3
  14. package/dist/author-graph.d.ts.map +1 -1
  15. package/dist/author-graph.js +3 -5
  16. package/dist/author-graph.js.map +1 -1
  17. package/dist/browser-gate.d.ts +2 -2
  18. package/dist/browser-gate.js +2 -2
  19. package/dist/capabilities/GamePublishRequest.d.ts +14 -0
  20. package/dist/capabilities/GamePublishRequest.d.ts.map +1 -0
  21. package/dist/capabilities/GamePublishRequest.js +2 -0
  22. package/dist/capabilities/GamePublishRequest.js.map +1 -0
  23. package/dist/capabilities/adapters.d.ts +4 -13
  24. package/dist/capabilities/adapters.d.ts.map +1 -1
  25. package/dist/capabilities/adapters.js +9 -14
  26. package/dist/capabilities/adapters.js.map +1 -1
  27. package/dist/capabilities/agent-activity.d.ts +27 -0
  28. package/dist/capabilities/agent-activity.d.ts.map +1 -0
  29. package/dist/capabilities/agent-activity.js +103 -0
  30. package/dist/capabilities/agent-activity.js.map +1 -0
  31. package/dist/capabilities/agentic-storyboard-finish.d.ts +67 -0
  32. package/dist/capabilities/agentic-storyboard-finish.d.ts.map +1 -0
  33. package/dist/capabilities/agentic-storyboard-finish.js +1321 -0
  34. package/dist/capabilities/agentic-storyboard-finish.js.map +1 -0
  35. package/dist/capabilities/agents.d.ts +5 -2
  36. package/dist/capabilities/agents.d.ts.map +1 -1
  37. package/dist/capabilities/agents.js +14 -4
  38. package/dist/capabilities/agents.js.map +1 -1
  39. package/dist/capabilities/agents.specs.d.ts +3 -0
  40. package/dist/capabilities/agents.specs.d.ts.map +1 -1
  41. package/dist/capabilities/agents.specs.js +71 -1
  42. package/dist/capabilities/agents.specs.js.map +1 -1
  43. package/dist/capabilities/analysis.d.ts.map +1 -1
  44. package/dist/capabilities/analysis.js +33 -22
  45. package/dist/capabilities/analysis.js.map +1 -1
  46. package/dist/capabilities/analysis.specs.js +2 -2
  47. package/dist/capabilities/analysis.specs.js.map +1 -1
  48. package/dist/capabilities/apps.d.ts.map +1 -1
  49. package/dist/capabilities/apps.js +5 -3
  50. package/dist/capabilities/apps.js.map +1 -1
  51. package/dist/capabilities/args.d.ts +2 -5
  52. package/dist/capabilities/args.d.ts.map +1 -1
  53. package/dist/capabilities/args.js +2 -5
  54. package/dist/capabilities/args.js.map +1 -1
  55. package/dist/capabilities/assets.d.ts.map +1 -1
  56. package/dist/capabilities/assets.js +40 -10
  57. package/dist/capabilities/assets.js.map +1 -1
  58. package/dist/capabilities/browser.d.ts +1 -1
  59. package/dist/capabilities/browser.js +1 -1
  60. package/dist/capabilities/browser.specs.d.ts +1 -1
  61. package/dist/capabilities/browser.specs.js +1 -1
  62. package/dist/capabilities/code.d.ts +5 -0
  63. package/dist/capabilities/code.d.ts.map +1 -1
  64. package/dist/capabilities/code.js +128 -89
  65. package/dist/capabilities/code.js.map +1 -1
  66. package/dist/capabilities/collections.d.ts +4 -6
  67. package/dist/capabilities/collections.d.ts.map +1 -1
  68. package/dist/capabilities/collections.js +16 -11
  69. package/dist/capabilities/collections.js.map +1 -1
  70. package/dist/capabilities/derive-shot.d.ts +45 -0
  71. package/dist/capabilities/derive-shot.d.ts.map +1 -0
  72. package/dist/capabilities/derive-shot.js +82 -0
  73. package/dist/capabilities/derive-shot.js.map +1 -0
  74. package/dist/capabilities/documents.d.ts +2 -1
  75. package/dist/capabilities/documents.d.ts.map +1 -1
  76. package/dist/capabilities/documents.js +12 -6
  77. package/dist/capabilities/documents.js.map +1 -1
  78. package/dist/capabilities/email.d.ts +2 -1
  79. package/dist/capabilities/email.d.ts.map +1 -1
  80. package/dist/capabilities/email.js +5 -3
  81. package/dist/capabilities/email.js.map +1 -1
  82. package/dist/capabilities/errors.d.ts +19 -0
  83. package/dist/capabilities/errors.d.ts.map +1 -0
  84. package/dist/capabilities/errors.js +109 -0
  85. package/dist/capabilities/errors.js.map +1 -0
  86. package/dist/capabilities/errors.specs.d.ts +11 -0
  87. package/dist/capabilities/errors.specs.d.ts.map +1 -0
  88. package/dist/capabilities/errors.specs.js +100 -0
  89. package/dist/capabilities/errors.specs.js.map +1 -0
  90. package/dist/capabilities/example-timelines.d.ts.map +1 -1
  91. package/dist/capabilities/example-timelines.js +52 -10
  92. package/dist/capabilities/example-timelines.js.map +1 -1
  93. package/dist/capabilities/example-timelines.specs.d.ts +1 -0
  94. package/dist/capabilities/example-timelines.specs.d.ts.map +1 -1
  95. package/dist/capabilities/example-timelines.specs.js +21 -3
  96. package/dist/capabilities/example-timelines.specs.js.map +1 -1
  97. package/dist/capabilities/finish-storyboard.d.ts +5 -0
  98. package/dist/capabilities/finish-storyboard.d.ts.map +1 -0
  99. package/dist/capabilities/finish-storyboard.js +278 -0
  100. package/dist/capabilities/finish-storyboard.js.map +1 -0
  101. package/dist/capabilities/game-asset-browser.d.ts +11 -0
  102. package/dist/capabilities/game-asset-browser.d.ts.map +1 -0
  103. package/dist/capabilities/game-asset-browser.js +152 -0
  104. package/dist/capabilities/game-asset-browser.js.map +1 -0
  105. package/dist/capabilities/game-asset-source.js +1 -1
  106. package/dist/capabilities/game-asset-source.js.map +1 -1
  107. package/dist/capabilities/game.d.ts +44 -2
  108. package/dist/capabilities/game.d.ts.map +1 -1
  109. package/dist/capabilities/game.js +408 -160
  110. package/dist/capabilities/game.js.map +1 -1
  111. package/dist/capabilities/game.specs.d.ts +4 -0
  112. package/dist/capabilities/game.specs.d.ts.map +1 -1
  113. package/dist/capabilities/game.specs.js +42 -13
  114. package/dist/capabilities/game.specs.js.map +1 -1
  115. package/dist/capabilities/game3d.d.ts +17 -0
  116. package/dist/capabilities/game3d.d.ts.map +1 -0
  117. package/dist/capabilities/game3d.js +434 -0
  118. package/dist/capabilities/game3d.js.map +1 -0
  119. package/dist/capabilities/gate-from-context.d.ts +1 -1
  120. package/dist/capabilities/gate-from-context.js +1 -1
  121. package/dist/capabilities/generations.d.ts +2 -0
  122. package/dist/capabilities/generations.d.ts.map +1 -1
  123. package/dist/capabilities/generations.js +14 -23
  124. package/dist/capabilities/generations.js.map +1 -1
  125. package/dist/capabilities/index.d.ts +2 -2
  126. package/dist/capabilities/index.d.ts.map +1 -1
  127. package/dist/capabilities/index.js +2 -2
  128. package/dist/capabilities/index.js.map +1 -1
  129. package/dist/capabilities/invoke.d.ts +14 -25
  130. package/dist/capabilities/invoke.d.ts.map +1 -1
  131. package/dist/capabilities/invoke.js +72 -35
  132. package/dist/capabilities/invoke.js.map +1 -1
  133. package/dist/capabilities/jobs.d.ts.map +1 -1
  134. package/dist/capabilities/jobs.js +47 -3
  135. package/dist/capabilities/jobs.js.map +1 -1
  136. package/dist/capabilities/jobs.specs.d.ts.map +1 -1
  137. package/dist/capabilities/jobs.specs.js +3 -1
  138. package/dist/capabilities/jobs.specs.js.map +1 -1
  139. package/dist/capabilities/js-scripts.d.ts +19 -1
  140. package/dist/capabilities/js-scripts.d.ts.map +1 -1
  141. package/dist/capabilities/js-scripts.js +109 -2
  142. package/dist/capabilities/js-scripts.js.map +1 -1
  143. package/dist/capabilities/js-scripts.specs.d.ts +2 -0
  144. package/dist/capabilities/js-scripts.specs.d.ts.map +1 -1
  145. package/dist/capabilities/js-scripts.specs.js +50 -0
  146. package/dist/capabilities/js-scripts.specs.js.map +1 -1
  147. package/dist/capabilities/lazy-tool-core.d.ts +23 -0
  148. package/dist/capabilities/lazy-tool-core.d.ts.map +1 -0
  149. package/dist/capabilities/lazy-tool-core.js +56 -0
  150. package/dist/capabilities/lazy-tool-core.js.map +1 -0
  151. package/dist/capabilities/lazy-tool.d.ts +3 -23
  152. package/dist/capabilities/lazy-tool.d.ts.map +1 -1
  153. package/dist/capabilities/lazy-tool.js +6 -64
  154. package/dist/capabilities/lazy-tool.js.map +1 -1
  155. package/dist/capabilities/legacy-tools.d.ts +15 -0
  156. package/dist/capabilities/legacy-tools.d.ts.map +1 -0
  157. package/dist/capabilities/legacy-tools.js +98 -0
  158. package/dist/capabilities/legacy-tools.js.map +1 -0
  159. package/dist/capabilities/media.d.ts +0 -9
  160. package/dist/capabilities/media.d.ts.map +1 -1
  161. package/dist/capabilities/media.js +314 -261
  162. package/dist/capabilities/media.js.map +1 -1
  163. package/dist/capabilities/media.specs.d.ts.map +1 -1
  164. package/dist/capabilities/media.specs.js +17 -0
  165. package/dist/capabilities/media.specs.js.map +1 -1
  166. package/dist/capabilities/metadata.d.ts +62 -0
  167. package/dist/capabilities/metadata.d.ts.map +1 -0
  168. package/dist/capabilities/metadata.js +114 -0
  169. package/dist/capabilities/metadata.js.map +1 -0
  170. package/dist/capabilities/model3d.d.ts.map +1 -1
  171. package/dist/capabilities/model3d.js +4 -0
  172. package/dist/capabilities/model3d.js.map +1 -1
  173. package/dist/capabilities/models.d.ts +2 -2
  174. package/dist/capabilities/models.d.ts.map +1 -1
  175. package/dist/capabilities/models.js +5 -3
  176. package/dist/capabilities/models.js.map +1 -1
  177. package/dist/capabilities/registry.d.ts +6 -19
  178. package/dist/capabilities/registry.d.ts.map +1 -1
  179. package/dist/capabilities/registry.js +72 -113
  180. package/dist/capabilities/registry.js.map +1 -1
  181. package/dist/capabilities/run-agent.d.ts +19 -0
  182. package/dist/capabilities/run-agent.d.ts.map +1 -0
  183. package/dist/capabilities/run-agent.js +183 -0
  184. package/dist/capabilities/run-agent.js.map +1 -0
  185. package/dist/capabilities/runs.d.ts +9 -0
  186. package/dist/capabilities/runs.d.ts.map +1 -0
  187. package/dist/capabilities/runs.js +46 -0
  188. package/dist/capabilities/runs.js.map +1 -0
  189. package/dist/capabilities/runs.specs.d.ts +39 -0
  190. package/dist/capabilities/runs.specs.d.ts.map +1 -0
  191. package/dist/capabilities/runs.specs.js +52 -0
  192. package/dist/capabilities/runs.specs.js.map +1 -0
  193. package/dist/capabilities/scripts.d.ts.map +1 -1
  194. package/dist/capabilities/scripts.js +11 -5
  195. package/dist/capabilities/scripts.js.map +1 -1
  196. package/dist/capabilities/settings.d.ts.map +1 -1
  197. package/dist/capabilities/settings.js +4 -2
  198. package/dist/capabilities/settings.js.map +1 -1
  199. package/dist/capabilities/sketches.d.ts.map +1 -1
  200. package/dist/capabilities/sketches.js +4 -2
  201. package/dist/capabilities/sketches.js.map +1 -1
  202. package/dist/capabilities/skills.d.ts.map +1 -1
  203. package/dist/capabilities/skills.js +22 -2
  204. package/dist/capabilities/skills.js.map +1 -1
  205. package/dist/capabilities/storyboard-layout-check.d.ts +33 -0
  206. package/dist/capabilities/storyboard-layout-check.d.ts.map +1 -0
  207. package/dist/capabilities/storyboard-layout-check.js +229 -0
  208. package/dist/capabilities/storyboard-layout-check.js.map +1 -0
  209. package/dist/capabilities/storyboard-measured-sources.d.ts +10 -0
  210. package/dist/capabilities/storyboard-measured-sources.d.ts.map +1 -0
  211. package/dist/capabilities/storyboard-measured-sources.js +67 -0
  212. package/dist/capabilities/storyboard-measured-sources.js.map +1 -0
  213. package/dist/capabilities/storyboard-review-times.d.ts +4 -0
  214. package/dist/capabilities/storyboard-review-times.d.ts.map +1 -0
  215. package/dist/capabilities/storyboard-review-times.js +39 -0
  216. package/dist/capabilities/storyboard-review-times.js.map +1 -0
  217. package/dist/capabilities/storyboards.d.ts +12 -18
  218. package/dist/capabilities/storyboards.d.ts.map +1 -1
  219. package/dist/capabilities/storyboards.js +779 -96
  220. package/dist/capabilities/storyboards.js.map +1 -1
  221. package/dist/capabilities/storyboards.specs.d.ts +9 -0
  222. package/dist/capabilities/storyboards.specs.d.ts.map +1 -1
  223. package/dist/capabilities/storyboards.specs.js +173 -5
  224. package/dist/capabilities/storyboards.specs.js.map +1 -1
  225. package/dist/capabilities/threads.js +1 -1
  226. package/dist/capabilities/threads.js.map +1 -1
  227. package/dist/capabilities/timeline-bridge.d.ts +368 -0
  228. package/dist/capabilities/timeline-bridge.d.ts.map +1 -0
  229. package/dist/capabilities/timeline-bridge.js +1008 -0
  230. package/dist/capabilities/timeline-bridge.js.map +1 -0
  231. package/dist/capabilities/timeline-clip-frames.d.ts +17 -0
  232. package/dist/capabilities/timeline-clip-frames.d.ts.map +1 -0
  233. package/dist/capabilities/timeline-clip-frames.js +84 -0
  234. package/dist/capabilities/timeline-clip-frames.js.map +1 -0
  235. package/dist/capabilities/timeline-media-edit.d.ts +8 -0
  236. package/dist/capabilities/timeline-media-edit.d.ts.map +1 -0
  237. package/dist/capabilities/timeline-media-edit.js +94 -0
  238. package/dist/capabilities/timeline-media-edit.js.map +1 -0
  239. package/dist/capabilities/timeline-native-media.d.ts.map +1 -1
  240. package/dist/capabilities/timeline-native-media.js +40 -0
  241. package/dist/capabilities/timeline-native-media.js.map +1 -1
  242. package/dist/capabilities/timeline-operations.d.ts +52 -0
  243. package/dist/capabilities/timeline-operations.d.ts.map +1 -0
  244. package/dist/capabilities/timeline-operations.js +413 -0
  245. package/dist/capabilities/timeline-operations.js.map +1 -0
  246. package/dist/capabilities/timelines.d.ts +28 -3
  247. package/dist/capabilities/timelines.d.ts.map +1 -1
  248. package/dist/capabilities/timelines.js +410 -294
  249. package/dist/capabilities/timelines.js.map +1 -1
  250. package/dist/capabilities/timelines.specs.d.ts +8 -0
  251. package/dist/capabilities/timelines.specs.d.ts.map +1 -1
  252. package/dist/capabilities/timelines.specs.js +178 -9
  253. package/dist/capabilities/timelines.specs.js.map +1 -1
  254. package/dist/capabilities/types.d.ts +3 -1
  255. package/dist/capabilities/types.d.ts.map +1 -1
  256. package/dist/capabilities/types.js.map +1 -1
  257. package/dist/capabilities/ui.d.ts.map +1 -1
  258. package/dist/capabilities/ui.js +24 -2
  259. package/dist/capabilities/ui.js.map +1 -1
  260. package/dist/capabilities/web.d.ts.map +1 -1
  261. package/dist/capabilities/web.js +4 -0
  262. package/dist/capabilities/web.js.map +1 -1
  263. package/dist/capabilities/workflows.d.ts +3 -1
  264. package/dist/capabilities/workflows.d.ts.map +1 -1
  265. package/dist/capabilities/workflows.js +244 -39
  266. package/dist/capabilities/workflows.js.map +1 -1
  267. package/dist/capabilities/workflows.specs.d.ts +2 -0
  268. package/dist/capabilities/workflows.specs.d.ts.map +1 -1
  269. package/dist/capabilities/workflows.specs.js +72 -2
  270. package/dist/capabilities/workflows.specs.js.map +1 -1
  271. package/dist/codeact/action-diagnostics.d.ts.map +1 -1
  272. package/dist/codeact/action-diagnostics.js +51 -1
  273. package/dist/codeact/action-diagnostics.js.map +1 -1
  274. package/dist/codeact/codeact-executor.d.ts.map +1 -1
  275. package/dist/codeact/codeact-executor.js +16 -8
  276. package/dist/codeact/codeact-executor.js.map +1 -1
  277. package/dist/codeact/compact-ids.d.ts.map +1 -1
  278. package/dist/codeact/compact-ids.js +5 -1
  279. package/dist/codeact/compact-ids.js.map +1 -1
  280. package/dist/codeact/graph-model.d.ts +1 -1
  281. package/dist/codeact/graph-model.d.ts.map +1 -1
  282. package/dist/codeact/graph-model.js +2 -3
  283. package/dist/codeact/graph-model.js.map +1 -1
  284. package/dist/codeact/nodetool-api.d.ts +1 -1
  285. package/dist/codeact/nodetool-api.d.ts.map +1 -1
  286. package/dist/codeact/nodetool-api.js +202 -284
  287. package/dist/codeact/nodetool-api.js.map +1 -1
  288. package/dist/codeact/sandbox-packages.d.ts +0 -7
  289. package/dist/codeact/sandbox-packages.d.ts.map +1 -1
  290. package/dist/codeact/sandbox-packages.js +1 -10
  291. package/dist/codeact/sandbox-packages.js.map +1 -1
  292. package/dist/codeact/tool-api.d.ts +6 -3
  293. package/dist/codeact/tool-api.d.ts.map +1 -1
  294. package/dist/codeact/tool-api.js +22 -15
  295. package/dist/codeact/tool-api.js.map +1 -1
  296. package/dist/evals/codeact-api-cases.d.ts.map +1 -1
  297. package/dist/evals/codeact-api-cases.js +2 -0
  298. package/dist/evals/codeact-api-cases.js.map +1 -1
  299. package/dist/evals/codeact-api-runs.d.ts +3 -0
  300. package/dist/evals/codeact-api-runs.d.ts.map +1 -0
  301. package/dist/evals/codeact-api-runs.js +33 -0
  302. package/dist/evals/codeact-api-runs.js.map +1 -0
  303. package/dist/evals/surfaces/game.d.ts +8 -2
  304. package/dist/evals/surfaces/game.d.ts.map +1 -1
  305. package/dist/evals/surfaces/game.js +460 -2
  306. package/dist/evals/surfaces/game.js.map +1 -1
  307. package/dist/evals/surfaces/sketch.d.ts +2 -0
  308. package/dist/evals/surfaces/sketch.d.ts.map +1 -1
  309. package/dist/evals/surfaces/sketch.js +11 -3
  310. package/dist/evals/surfaces/sketch.js.map +1 -1
  311. package/dist/evals/surfaces/timeline.d.ts +4 -357
  312. package/dist/evals/surfaces/timeline.d.ts.map +1 -1
  313. package/dist/evals/surfaces/timeline.js +9 -2621
  314. package/dist/evals/surfaces/timeline.js.map +1 -1
  315. package/dist/evals/tool-loop-bridge.d.ts +4 -0
  316. package/dist/evals/tool-loop-bridge.d.ts.map +1 -1
  317. package/dist/evals/tool-loop-bridge.js.map +1 -1
  318. package/dist/evals/tool-loop-eval.d.ts +2 -0
  319. package/dist/evals/tool-loop-eval.d.ts.map +1 -1
  320. package/dist/evals/tool-loop-eval.js +6 -1
  321. package/dist/evals/tool-loop-eval.js.map +1 -1
  322. package/dist/evals/tool-loop-permission.d.ts +1 -15
  323. package/dist/evals/tool-loop-permission.d.ts.map +1 -1
  324. package/dist/evals/tool-loop-permission.js +23 -41
  325. package/dist/evals/tool-loop-permission.js.map +1 -1
  326. package/dist/game-authoring.d.ts +9573 -0
  327. package/dist/game-authoring.d.ts.map +1 -0
  328. package/dist/game-authoring.js +146 -0
  329. package/dist/game-authoring.js.map +1 -0
  330. package/dist/game-build.d.ts +3 -0
  331. package/dist/game-build.d.ts.map +1 -0
  332. package/dist/game-build.js +3 -0
  333. package/dist/game-build.js.map +1 -0
  334. package/dist/game-code-bake.d.ts +26 -0
  335. package/dist/game-code-bake.d.ts.map +1 -0
  336. package/dist/game-code-bake.js +98 -0
  337. package/dist/game-code-bake.js.map +1 -0
  338. package/dist/game-examples.d.ts +2227 -18
  339. package/dist/game-examples.d.ts.map +1 -1
  340. package/dist/game-examples.js +5 -4
  341. package/dist/game-examples.js.map +1 -1
  342. package/dist/generation-cancel.d.ts +31 -0
  343. package/dist/generation-cancel.d.ts.map +1 -0
  344. package/dist/generation-cancel.js +28 -0
  345. package/dist/generation-cancel.js.map +1 -0
  346. package/dist/host-access-gate.d.ts +29 -0
  347. package/dist/host-access-gate.d.ts.map +1 -0
  348. package/dist/host-access-gate.js +39 -0
  349. package/dist/host-access-gate.js.map +1 -0
  350. package/dist/host-modules/dispatcher.d.ts +7 -1
  351. package/dist/host-modules/dispatcher.d.ts.map +1 -1
  352. package/dist/host-modules/dispatcher.js +13 -2
  353. package/dist/host-modules/dispatcher.js.map +1 -1
  354. package/dist/host-modules/docx.d.ts.map +1 -1
  355. package/dist/host-modules/docx.js +2 -2
  356. package/dist/host-modules/docx.js.map +1 -1
  357. package/dist/host-modules/epub.d.ts.map +1 -1
  358. package/dist/host-modules/epub.js +2 -2
  359. package/dist/host-modules/epub.js.map +1 -1
  360. package/dist/host-modules/fabric.d.ts.map +1 -1
  361. package/dist/host-modules/fabric.js +1 -1
  362. package/dist/host-modules/fabric.js.map +1 -1
  363. package/dist/host-modules/limits.d.ts +10 -8
  364. package/dist/host-modules/limits.d.ts.map +1 -1
  365. package/dist/host-modules/limits.js +14 -9
  366. package/dist/host-modules/limits.js.map +1 -1
  367. package/dist/host-modules/mammoth.d.ts.map +1 -1
  368. package/dist/host-modules/mammoth.js +2 -2
  369. package/dist/host-modules/mammoth.js.map +1 -1
  370. package/dist/host-modules/ocr.d.ts.map +1 -1
  371. package/dist/host-modules/ocr.js +1 -1
  372. package/dist/host-modules/ocr.js.map +1 -1
  373. package/dist/host-modules/pdf.d.ts.map +1 -1
  374. package/dist/host-modules/pdf.js +2 -2
  375. package/dist/host-modules/pdf.js.map +1 -1
  376. package/dist/host-modules/pdflib.d.ts.map +1 -1
  377. package/dist/host-modules/pdflib.js +2 -2
  378. package/dist/host-modules/pdflib.js.map +1 -1
  379. package/dist/host-modules/pptx.d.ts.map +1 -1
  380. package/dist/host-modules/pptx.js +2 -2
  381. package/dist/host-modules/pptx.js.map +1 -1
  382. package/dist/host-modules/pptxgen.d.ts.map +1 -1
  383. package/dist/host-modules/pptxgen.js +2 -2
  384. package/dist/host-modules/pptxgen.js.map +1 -1
  385. package/dist/host-modules/tfjs.d.ts.map +1 -1
  386. package/dist/host-modules/tfjs.js +4 -4
  387. package/dist/host-modules/tfjs.js.map +1 -1
  388. package/dist/host-modules/xlsx.d.ts.map +1 -1
  389. package/dist/host-modules/xlsx.js +2 -2
  390. package/dist/host-modules/xlsx.js.map +1 -1
  391. package/dist/index.d.ts +18 -4
  392. package/dist/index.d.ts.map +1 -1
  393. package/dist/index.js +17 -3
  394. package/dist/index.js.map +1 -1
  395. package/dist/js-sandbox-worker/engine.d.ts +4 -0
  396. package/dist/js-sandbox-worker/engine.d.ts.map +1 -0
  397. package/dist/js-sandbox-worker/engine.js +45 -0
  398. package/dist/js-sandbox-worker/engine.js.map +1 -0
  399. package/dist/js-sandbox-worker/host.js +1 -1
  400. package/dist/js-sandbox-worker/host.js.map +1 -1
  401. package/dist/js-sandbox-worker/interpreter.d.ts +1 -1
  402. package/dist/js-sandbox-worker/interpreter.d.ts.map +1 -1
  403. package/dist/js-sandbox-worker/interpreter.js +94 -2
  404. package/dist/js-sandbox-worker/interpreter.js.map +1 -1
  405. package/dist/js-sandbox-worker/worker-entry.d.ts.map +1 -1
  406. package/dist/js-sandbox-worker/worker-entry.js +3 -2
  407. package/dist/js-sandbox-worker/worker-entry.js.map +1 -1
  408. package/dist/js-sandbox.d.ts +9 -1
  409. package/dist/js-sandbox.d.ts.map +1 -1
  410. package/dist/js-sandbox.js +76 -15
  411. package/dist/js-sandbox.js.map +1 -1
  412. package/dist/js-script-app-runner.d.ts +2 -0
  413. package/dist/js-script-app-runner.d.ts.map +1 -1
  414. package/dist/js-script-app-runner.js +8 -3
  415. package/dist/js-script-app-runner.js.map +1 -1
  416. package/dist/js-script-sandbox.d.ts +12 -18
  417. package/dist/js-script-sandbox.d.ts.map +1 -1
  418. package/dist/js-script-sandbox.js +3 -49
  419. package/dist/js-script-sandbox.js.map +1 -1
  420. package/dist/prompts/product-knowledge.d.ts +1 -1
  421. package/dist/prompts/product-knowledge.d.ts.map +1 -1
  422. package/dist/prompts/product-knowledge.js +82 -41
  423. package/dist/prompts/product-knowledge.js.map +1 -1
  424. package/dist/sandbox-pack-resolution.d.ts +21 -0
  425. package/dist/sandbox-pack-resolution.d.ts.map +1 -0
  426. package/dist/sandbox-pack-resolution.js +42 -0
  427. package/dist/sandbox-pack-resolution.js.map +1 -0
  428. package/dist/sandbox-toolbelt.d.ts +3 -1
  429. package/dist/sandbox-toolbelt.d.ts.map +1 -1
  430. package/dist/sandbox-toolbelt.js +8 -2
  431. package/dist/sandbox-toolbelt.js.map +1 -1
  432. package/dist/skill-prompt.d.ts +11 -1
  433. package/dist/skill-prompt.d.ts.map +1 -1
  434. package/dist/skill-prompt.js +17 -6
  435. package/dist/skill-prompt.js.map +1 -1
  436. package/dist/system-skills.d.ts +7 -1
  437. package/dist/system-skills.d.ts.map +1 -1
  438. package/dist/system-skills.js +2 -2
  439. package/dist/system-skills.js.map +1 -1
  440. package/dist/timeline-capture.d.ts +21 -0
  441. package/dist/timeline-capture.d.ts.map +1 -0
  442. package/dist/timeline-capture.js +564 -0
  443. package/dist/timeline-capture.js.map +1 -0
  444. package/dist/timeline-code-bake.d.ts +75 -0
  445. package/dist/timeline-code-bake.d.ts.map +1 -0
  446. package/dist/timeline-code-bake.js +327 -0
  447. package/dist/timeline-code-bake.js.map +1 -0
  448. package/dist/timeline-preview/frames.d.ts +26 -0
  449. package/dist/timeline-preview/frames.d.ts.map +1 -1
  450. package/dist/timeline-preview/frames.js +155 -70
  451. package/dist/timeline-preview/frames.js.map +1 -1
  452. package/dist/tools/base-tool.d.ts +1 -0
  453. package/dist/tools/base-tool.d.ts.map +1 -1
  454. package/dist/tools/base-tool.js +1 -1
  455. package/dist/tools/base-tool.js.map +1 -1
  456. package/dist/tools/builtin-tools.d.ts +4 -3
  457. package/dist/tools/builtin-tools.d.ts.map +1 -1
  458. package/dist/tools/builtin-tools.js +24 -3
  459. package/dist/tools/builtin-tools.js.map +1 -1
  460. package/dist/tools/external-capability-tools.d.ts +1 -1
  461. package/dist/tools/external-capability-tools.js +1 -1
  462. package/dist/tools/mcp-tool-support.d.ts +10 -9
  463. package/dist/tools/mcp-tool-support.d.ts.map +1 -1
  464. package/dist/tools/mcp-tool-support.js +14 -13
  465. package/dist/tools/mcp-tool-support.js.map +1 -1
  466. package/dist/tools/mcp-tools.d.ts +6 -4
  467. package/dist/tools/mcp-tools.d.ts.map +1 -1
  468. package/dist/tools/mcp-tools.js +65 -62
  469. package/dist/tools/mcp-tools.js.map +1 -1
  470. package/dist/tools/tool-permissions.d.ts +1 -1
  471. package/dist/tools/tool-permissions.js +1 -1
  472. package/package.json +124 -41
  473. package/dist/capabilities/gate-tools.d.ts +0 -18
  474. package/dist/capabilities/gate-tools.d.ts.map +0 -1
  475. package/dist/capabilities/gate-tools.js +0 -66
  476. package/dist/capabilities/gate-tools.js.map +0 -1
  477. package/dist/tsconfig.tests.tmp.tsbuildinfo +0 -1
@@ -1,65 +1,19 @@
1
- /**
2
- * Modules a sandboxed body may import.
3
- *
4
- * Nothing declares packages — not a JS script, not a Code node, not an
5
- * authoring run. Every installed sandbox pack and every platform module
6
- * (`@nodetool-ai/sandbox-nodetool/<namespace>`) resolves from a static import,
7
- * and the body's imports are therefore the declaration.
8
- */
9
- import { parseCodeBody, staticImportSpecifiers } from "@nodetool-ai/node-sdk";
10
- import { SANDBOX_CAPABILITY_PACK } from "@nodetool-ai/protocol";
11
1
  import { mountCapabilityModules } from "./codeact/capability-modules.js";
12
2
  import { gateFromContext } from "./capabilities/gate-from-context.js";
13
3
  import { contextSecretAvailability, createCapabilityRun } from "./capabilities/invoke.js";
14
- /**
15
- * Resolve the packs a body imports against the installed catalog, ignoring
16
- * platform modules (which are mounted by the capability layer, not the
17
- * catalog). A body that imports no pack needs no loader at all.
18
- */
19
- export function resolveImportedPacks(code, context, options = {}) {
20
- const subject = options.subject ?? "The script";
21
- const parsed = parseCodeBody(code);
22
- if ("error" in parsed)
23
- return { ok: true };
24
- const mounted = options.mounted ?? new Set();
25
- const packs = [
26
- ...new Set(staticImportSpecifiers(parsed.statements))
27
- ].filter((specifier) => !mounted.has(specifier) &&
28
- specifier !== SANDBOX_CAPABILITY_PACK &&
29
- !specifier.startsWith(`${SANDBOX_CAPABILITY_PACK}/`));
30
- if (packs.length === 0)
31
- return { ok: true };
32
- const catalog = context.sandboxModuleCatalog;
33
- if (!catalog) {
34
- return {
35
- ok: false,
36
- error: `${subject} imports ${packs.map((s) => `"${s}"`).join(", ")}, but ` +
37
- "sandbox packages cannot be resolved in this process."
38
- };
39
- }
40
- const modules = catalog.resolveForExecution(packs.map((specifier) => ({ specifier })));
41
- const errors = modules.statuses.filter((status) => status.status === "error");
42
- if (errors.length > 0) {
43
- return {
44
- ok: false,
45
- error: errors
46
- .map((status) => `${status.message} (pack "${status.packName}")`)
47
- .join(" ")
48
- };
49
- }
50
- return { ok: true, modules };
51
- }
4
+ import { resolveImportedPacks } from "./sandbox-pack-resolution.js";
52
5
  /**
53
6
  * Resolve the modules one script body imports. Missing packs and unknown
54
7
  * platform namespaces fail before the guest starts.
55
8
  */
56
- export async function mountJsScriptSandbox(code, context) {
9
+ export async function mountJsScriptSandbox(code, context, options = {}) {
57
10
  // A script's capability calls go through the gate its host set (invariant
58
11
  // I-1): a script a chat turn ran is bound by that turn's mode, and one with
59
12
  // no host gate on its context runs headless rather than ungated. The budget
60
13
  // comes off the same context inside `createCapabilityRun`.
61
14
  const platform = await mountCapabilityModules(code, createCapabilityRun({
62
15
  context,
16
+ signal: options.signal,
63
17
  gate: gateFromContext(context, "JS script"),
64
18
  availableSecrets: contextSecretAvailability(context)
65
19
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"js-script-sandbox.js","sourceRoot":"","sources":["../src/js-script-sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"js-script-sandbox.js","sourceRoot":"","sources":["../src/js-script-sandbox.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAWpE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAY,EACZ,OAA0B,EAC1B,OAAO,GAA6B,EAAE;IAEtC,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAC3C,IAAI,EACJ,mBAAmB,CAAC;QAClB,OAAO;QACP,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC;QAC3C,gBAAgB,EAAE,yBAAyB,CAAC,OAAO,CAAC;KACrD,CAAC,CACH,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;SAC1E,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE;QAChD,OAAO,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;KACvD,CAAC,CAAC;IACH,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAE5B,MAAM,KAAK,GACT,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IACpF,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC;IACtE,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,3 +1,3 @@
1
1
  /** Product concepts shared by chat and execution prompts, independent of tool availability. */
2
- export declare const NODETOOL_PRODUCT_KNOWLEDGE = "# NodeTool product knowledge\n\nNodeTool is a visual AI workspace where an agent and editable documents share\nthe work. It supports text, images, audio, video, data, and 3D, using local\nmodels or connected providers. Explain the relevant concepts directly when\nasked, without requiring a skill lookup for these basics.\n\n## Projects, conversations, and files\nA project groups related work toward an outcome, such as a film, campaign,\nor report. It brings together creative documents, assets, reusable entities,\nand a project conversation. Its overview derives progress and generation spend\nfrom the work saved in it. A project can contain several kinds of documents\nand does not require a workflow. Respect the active project when creating or\nfinding resources, and keep project ids distinct from document and thread ids.\n\nA thread is a conversation with message history. Saved memory records facts,\ndecisions, and resource references for later use. Retrieve relevant history,\nmemory, and documents before claiming to know a project's current contents.\nA filesystem workspace holds run files and is distinct from a NodeTool project.\nAn asset is a stored image, video, audio file, document, or other file. Reuse its\nasset id or asset URI in later work instead of generating the same output again.\n\n## Workflows and execution\nA workflow is a saved, repeatable graph of nodes connected through typed input\nand output ports. Nodes generate or transform media, call models, process data,\nrun code, or integrate services. Properties configure each node and connections\npass results between nodes. Workflow inputs and outputs expose the graph for\nreuse. Workflows can run from the canvas, CLI, API, or an app.\nCreating or saving a workflow does not execute it. Validate the graph and inspect\nrun results when execution is requested. A job tracks an execution's progress,\noutputs, and errors. Use direct generation or processing for a one-off result,\nand a workflow when the user wants a reusable pipeline. Automation can trigger\nwork through schedules, webhooks, and event nodes, subject to deployment setup.\n\n## Entities and creative continuity\nEntities are reusable characters, locations, styles, and props. A product can\nbe a prop entity. Each entity has a name, a descriptive prompt, and a reference\nimage, stored as an image asset with entity metadata. They preserve identity,\nappearance, setting, and art direction across shots and generations.\nFind and reuse existing entities before inventing replacements. Applying an\nentity adds its description to a prompt and supplies reference-image ids for\ngeneration. Pass those references to a compatible model as well as the text.\nStoryboards and scripts can cast entities by id. Reusing references helps\ncontinuity but does not guarantee identical model output.\n\n## Editors and deliverables\n- A storyboard organizes a brief or screenplay into shots, with framing,\n prompts, entity casting, stills, and clips that can be assembled into a timeline.\n- A script contains speakers and spoken lines with voices and audio takes.\n Voice the lines and assemble their takes into a timeline. A JavaScript script\n is a separate executable code document, not a voice script.\n- A timeline arranges video, images, audio, and other supported clips on tracks.\n Editing the sequence and rendering an exported video are separate operations.\n- A sketch is a layered image document for composing and editing images.\n- A 3D scene contains objects, transforms, materials, and cameras for scene work.\n Built-in games have versioned scenes, assets, and a deterministic playtest.\n Game workflows stage candidate art for an explicit installation into a game revision.\n- A mini app presents widgets bound to workflow operations and variables, so\n someone can run a task through a UI without editing its graph.\n- A collection indexes documents and embeddings for semantic or hybrid search\n and retrieval-augmented answers. It is distinct from an asset folder.\n\n## Discovering what this installation can do\nSkills hold reusable task instructions. Tools perform actions. Nodes are the\nbuilding blocks of workflows. Discover their current descriptions and schemas\nbefore using an unfamiliar feature. Model and provider discovery determines\nwhich text, image, video, speech, transcription, and embedding routes are\navailable. Local models may require downloads and suitable hardware. Connected\nproviders may require credentials and incur usage charges. Never guess model\nids, prices, configured credentials, or a feature's availability here.\n\nOnly call tools exposed in this session and obey its permission mode. Product\nknowledge does not grant access. Some resource operations work headlessly,\nwhile editor tools require an open document and its id. Check available tools\nbefore asking the user to open or create a document. Read actual resources for\ncurrent state, and report completion only after the relevant tool results.\n";
2
+ export declare const NODETOOL_PRODUCT_KNOWLEDGE = "# NodeTool product knowledge\n\nNodeTool is a visual AI workspace where an agent and editable documents share\nthe work. It supports text, images, audio, video, data, 3D, and games, using\nlocal models or connected providers. Explain the relevant concepts directly\nwhen asked, without requiring a skill lookup for these basics.\n\n## Projects, conversations, and files\nA project groups related work toward an outcome, such as a film, campaign,\ngame, or report. It brings together documents, assets, entities, and a\nproject conversation. Its overview derives progress and generation spend from\nthe work saved in it. A project does not require a workflow. Respect the\nactive project when creating or finding resources, and keep project ids\ndistinct from document and thread ids.\n\nA thread is a conversation with message history. Memory records facts,\ndecisions, preferences, and resource references across conversations; the\ncurrent thread's memory is shown at the start of each turn. Retrieve relevant\nhistory, memory, and documents before claiming to know a project's current\ncontents. An asset is a stored image, video, audio file, document, or other\nfile in the user's library, addressed as `asset://<id>`. Reuse its id instead\nof generating the same output again. A filesystem workspace holds the files of\none run and is distinct from both the asset library and a project.\n\n## Generation\nDirect generation makes one image, video, speech, music, transcript, or\nembedding with a model picked for the capability, and saves the result as an\nasset. Every media generation leaves a record with its status, cost, and the\nassets it produced; a generation can also run in the background and be\nawaited. Model discovery ranks the configured models for a capability, and a\nresult can name a prompting guide skill for its model line. A vision model can\ncritique, compare, or score an image against a brief.\n\n## Workflows and execution\nA workflow is a saved, repeatable graph of nodes connected through typed input\nand output ports. Nodes generate or transform media, call models, process data,\nrun code, or integrate services. Properties configure each node and connections\npass results between nodes. Workflow inputs and outputs expose the graph for\nreuse. Workflows run from the canvas, CLI, API, or a mini app, and a single\nnode can also run on its own without a graph. Creating or saving a workflow\ndoes not execute it. Validate the graph and inspect run results when execution\nis requested. A job tracks an execution's progress, outputs, and errors, and a\ntimeline render is a job too. Use direct generation for a one-off result and a\nworkflow when the user wants a reusable pipeline. Shipped example workflows\nshow worked graphs. Automation can trigger work through schedules, webhooks,\nand event nodes, subject to deployment setup.\n\n## Entities and creative continuity\nEntities are reusable characters, locations, styles, and props. A product can\nbe a prop entity. Each entity has a name, a descriptive prompt, and a reference\nimage, stored as an image asset with entity metadata. They preserve identity,\nappearance, setting, and art direction across shots and generations.\nFind and reuse existing entities before inventing replacements. Applying an\nentity adds its description to a prompt and supplies reference-image ids for\ngeneration. Pass those references to a compatible model as well as the text.\nStoryboards, scripts, and timeline clips can cast entities by id. Reusing\nreferences helps continuity but does not guarantee identical model output.\n\n## Documents\nEach document kind is edited server-side by id, whether or not the user has it\nopen; an open editor picks the change up live. Most keep versions that can be\nsnapshotted and restored.\n\n- A storyboard turns a brief or screenplay into shots: an action, camera,\n motion, and duration each, with cast entities and a board style. The board\n names its image and video models. Keyframe stills are the cheap step and\n clips the expensive one; a shot renders from its still, from the prompt, or\n from entity references. One clip can cover several shots. A board assembles\n into a timeline, and a linked voice script times its shots.\n- A voice script is a cast of speakers, each with a voice, and the lines they\n speak, with directions and pauses. Voicing a line makes an audio take; an\n edited line becomes stale until it is voiced again. A script assembles into\n a voiceover timeline whose clips carry word timings for captions. A\n JavaScript script is a different document: saved code that runs in the\n sandbox.\n- A timeline is a sequence of tracks, where the top track draws over the ones\n below. Clips are video, images, audio, text, shapes, groups, 3D models, and\n MIDI parts. Clips carry animations (presets or custom keyframe curves),\n transitions, masks, mattes, effect chains, and time remaps; markers and a\n beat grid time the cut to music. Compositions are reusable templates such as\n title cards and lower thirds. A motion-graphics piece can be authored as\n code. Validation checks structure and, at the showcase tier, density against\n shipped example timelines; composited preview frames show the actual\n picture; rendering exports a video as a job. Editing and rendering are\n separate operations.\n- A sketch is a layered image document: a canvas, layers with blend modes and\n opacity, placed images, and generation bindings for composing and editing\n images.\n- A 3D model document holds glTF objects, transforms, materials, lights, and\n cameras, and renders headlessly. A 3D model can also sit on a timeline.\n- A built-in game runs in NodeTool's own 2D engine. It has a mutable draft and\n immutable published revisions, asset slots for generated or imported art,\n audio, and fonts, a deterministic playtest that can prove a level is\n winnable, and a build step that exports a standalone web player. Shipped\n example games are benchmarks to read and install.\n- A mini app presents widgets bound to workflow operations and variables, so\n someone can run a task through a UI without editing its graph.\n- A collection indexes documents and embeddings for semantic or hybrid search\n and retrieval-augmented answers. It is distinct from an asset folder.\n\n## Discovering what this installation can do\nSkills hold reusable task instructions: shipped skills for every surface, craft\nskills for motion, sound, and direction, prompting guides for model lines, and\nthe user's own. Tools perform actions. Nodes are the building blocks of\nworkflows. Sandbox packages add importable libraries to code actions. Discover\ntheir current descriptions and schemas before using an unfamiliar feature.\nModel and provider discovery determines which text, image, video, speech,\nmusic, transcription, and embedding routes are available. Local models may\nrequire downloads and suitable hardware. Connected providers may require\ncredentials and incur usage charges. Never guess model ids, prices, configured\ncredentials, or a feature's availability here.\n\nOnly call tools exposed in this session and obey its permission mode. Product\nknowledge does not grant access. Some resource operations work headlessly,\nwhile editor tools require an open document and its id. Check available tools\nbefore asking the user to open or create a document. Read actual resources for\ncurrent state, and report completion only after the relevant tool results.\n";
3
3
  //# sourceMappingURL=product-knowledge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"product-knowledge.d.ts","sourceRoot":"","sources":["../../src/prompts/product-knowledge.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,eAAO,MAAM,0BAA0B,i6JA4EtC,CAAC"}
1
+ {"version":3,"file":"product-knowledge.d.ts","sourceRoot":"","sources":["../../src/prompts/product-knowledge.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,eAAO,MAAM,0BAA0B,s2OAqHtC,CAAC"}
@@ -2,36 +2,49 @@
2
2
  export const NODETOOL_PRODUCT_KNOWLEDGE = `# NodeTool product knowledge
3
3
 
4
4
  NodeTool is a visual AI workspace where an agent and editable documents share
5
- the work. It supports text, images, audio, video, data, and 3D, using local
6
- models or connected providers. Explain the relevant concepts directly when
7
- asked, without requiring a skill lookup for these basics.
5
+ the work. It supports text, images, audio, video, data, 3D, and games, using
6
+ local models or connected providers. Explain the relevant concepts directly
7
+ when asked, without requiring a skill lookup for these basics.
8
8
 
9
9
  ## Projects, conversations, and files
10
10
  A project groups related work toward an outcome, such as a film, campaign,
11
- or report. It brings together creative documents, assets, reusable entities,
12
- and a project conversation. Its overview derives progress and generation spend
13
- from the work saved in it. A project can contain several kinds of documents
14
- and does not require a workflow. Respect the active project when creating or
15
- finding resources, and keep project ids distinct from document and thread ids.
11
+ game, or report. It brings together documents, assets, entities, and a
12
+ project conversation. Its overview derives progress and generation spend from
13
+ the work saved in it. A project does not require a workflow. Respect the
14
+ active project when creating or finding resources, and keep project ids
15
+ distinct from document and thread ids.
16
16
 
17
- A thread is a conversation with message history. Saved memory records facts,
18
- decisions, and resource references for later use. Retrieve relevant history,
19
- memory, and documents before claiming to know a project's current contents.
20
- A filesystem workspace holds run files and is distinct from a NodeTool project.
21
- An asset is a stored image, video, audio file, document, or other file. Reuse its
22
- asset id or asset URI in later work instead of generating the same output again.
17
+ A thread is a conversation with message history. Memory records facts,
18
+ decisions, preferences, and resource references across conversations; the
19
+ current thread's memory is shown at the start of each turn. Retrieve relevant
20
+ history, memory, and documents before claiming to know a project's current
21
+ contents. An asset is a stored image, video, audio file, document, or other
22
+ file in the user's library, addressed as \`asset://<id>\`. Reuse its id instead
23
+ of generating the same output again. A filesystem workspace holds the files of
24
+ one run and is distinct from both the asset library and a project.
25
+
26
+ ## Generation
27
+ Direct generation makes one image, video, speech, music, transcript, or
28
+ embedding with a model picked for the capability, and saves the result as an
29
+ asset. Every media generation leaves a record with its status, cost, and the
30
+ assets it produced; a generation can also run in the background and be
31
+ awaited. Model discovery ranks the configured models for a capability, and a
32
+ result can name a prompting guide skill for its model line. A vision model can
33
+ critique, compare, or score an image against a brief.
23
34
 
24
35
  ## Workflows and execution
25
36
  A workflow is a saved, repeatable graph of nodes connected through typed input
26
37
  and output ports. Nodes generate or transform media, call models, process data,
27
38
  run code, or integrate services. Properties configure each node and connections
28
39
  pass results between nodes. Workflow inputs and outputs expose the graph for
29
- reuse. Workflows can run from the canvas, CLI, API, or an app.
30
- Creating or saving a workflow does not execute it. Validate the graph and inspect
31
- run results when execution is requested. A job tracks an execution's progress,
32
- outputs, and errors. Use direct generation or processing for a one-off result,
33
- and a workflow when the user wants a reusable pipeline. Automation can trigger
34
- work through schedules, webhooks, and event nodes, subject to deployment setup.
40
+ reuse. Workflows run from the canvas, CLI, API, or a mini app, and a single
41
+ node can also run on its own without a graph. Creating or saving a workflow
42
+ does not execute it. Validate the graph and inspect run results when execution
43
+ is requested. A job tracks an execution's progress, outputs, and errors, and a
44
+ timeline render is a job too. Use direct generation for a one-off result and a
45
+ workflow when the user wants a reusable pipeline. Shipped example workflows
46
+ show worked graphs. Automation can trigger work through schedules, webhooks,
47
+ and event nodes, subject to deployment setup.
35
48
 
36
49
  ## Entities and creative continuity
37
50
  Entities are reusable characters, locations, styles, and props. A product can
@@ -41,34 +54,62 @@ appearance, setting, and art direction across shots and generations.
41
54
  Find and reuse existing entities before inventing replacements. Applying an
42
55
  entity adds its description to a prompt and supplies reference-image ids for
43
56
  generation. Pass those references to a compatible model as well as the text.
44
- Storyboards and scripts can cast entities by id. Reusing references helps
45
- continuity but does not guarantee identical model output.
57
+ Storyboards, scripts, and timeline clips can cast entities by id. Reusing
58
+ references helps continuity but does not guarantee identical model output.
59
+
60
+ ## Documents
61
+ Each document kind is edited server-side by id, whether or not the user has it
62
+ open; an open editor picks the change up live. Most keep versions that can be
63
+ snapshotted and restored.
46
64
 
47
- ## Editors and deliverables
48
- - A storyboard organizes a brief or screenplay into shots, with framing,
49
- prompts, entity casting, stills, and clips that can be assembled into a timeline.
50
- - A script contains speakers and spoken lines with voices and audio takes.
51
- Voice the lines and assemble their takes into a timeline. A JavaScript script
52
- is a separate executable code document, not a voice script.
53
- - A timeline arranges video, images, audio, and other supported clips on tracks.
54
- Editing the sequence and rendering an exported video are separate operations.
55
- - A sketch is a layered image document for composing and editing images.
56
- - A 3D scene contains objects, transforms, materials, and cameras for scene work.
57
- Built-in games have versioned scenes, assets, and a deterministic playtest.
58
- Game workflows stage candidate art for an explicit installation into a game revision.
65
+ - A storyboard turns a brief or screenplay into shots: an action, camera,
66
+ motion, and duration each, with cast entities and a board style. The board
67
+ names its image and video models. Keyframe stills are the cheap step and
68
+ clips the expensive one; a shot renders from its still, from the prompt, or
69
+ from entity references. One clip can cover several shots. A board assembles
70
+ into a timeline, and a linked voice script times its shots.
71
+ - A voice script is a cast of speakers, each with a voice, and the lines they
72
+ speak, with directions and pauses. Voicing a line makes an audio take; an
73
+ edited line becomes stale until it is voiced again. A script assembles into
74
+ a voiceover timeline whose clips carry word timings for captions. A
75
+ JavaScript script is a different document: saved code that runs in the
76
+ sandbox.
77
+ - A timeline is a sequence of tracks, where the top track draws over the ones
78
+ below. Clips are video, images, audio, text, shapes, groups, 3D models, and
79
+ MIDI parts. Clips carry animations (presets or custom keyframe curves),
80
+ transitions, masks, mattes, effect chains, and time remaps; markers and a
81
+ beat grid time the cut to music. Compositions are reusable templates such as
82
+ title cards and lower thirds. A motion-graphics piece can be authored as
83
+ code. Validation checks structure and, at the showcase tier, density against
84
+ shipped example timelines; composited preview frames show the actual
85
+ picture; rendering exports a video as a job. Editing and rendering are
86
+ separate operations.
87
+ - A sketch is a layered image document: a canvas, layers with blend modes and
88
+ opacity, placed images, and generation bindings for composing and editing
89
+ images.
90
+ - A 3D model document holds glTF objects, transforms, materials, lights, and
91
+ cameras, and renders headlessly. A 3D model can also sit on a timeline.
92
+ - A built-in game runs in NodeTool's own 2D engine. It has a mutable draft and
93
+ immutable published revisions, asset slots for generated or imported art,
94
+ audio, and fonts, a deterministic playtest that can prove a level is
95
+ winnable, and a build step that exports a standalone web player. Shipped
96
+ example games are benchmarks to read and install.
59
97
  - A mini app presents widgets bound to workflow operations and variables, so
60
98
  someone can run a task through a UI without editing its graph.
61
99
  - A collection indexes documents and embeddings for semantic or hybrid search
62
100
  and retrieval-augmented answers. It is distinct from an asset folder.
63
101
 
64
102
  ## Discovering what this installation can do
65
- Skills hold reusable task instructions. Tools perform actions. Nodes are the
66
- building blocks of workflows. Discover their current descriptions and schemas
67
- before using an unfamiliar feature. Model and provider discovery determines
68
- which text, image, video, speech, transcription, and embedding routes are
69
- available. Local models may require downloads and suitable hardware. Connected
70
- providers may require credentials and incur usage charges. Never guess model
71
- ids, prices, configured credentials, or a feature's availability here.
103
+ Skills hold reusable task instructions: shipped skills for every surface, craft
104
+ skills for motion, sound, and direction, prompting guides for model lines, and
105
+ the user's own. Tools perform actions. Nodes are the building blocks of
106
+ workflows. Sandbox packages add importable libraries to code actions. Discover
107
+ their current descriptions and schemas before using an unfamiliar feature.
108
+ Model and provider discovery determines which text, image, video, speech,
109
+ music, transcription, and embedding routes are available. Local models may
110
+ require downloads and suitable hardware. Connected providers may require
111
+ credentials and incur usage charges. Never guess model ids, prices, configured
112
+ credentials, or a feature's availability here.
72
113
 
73
114
  Only call tools exposed in this session and obey its permission mode. Product
74
115
  knowledge does not grant access. Some resource operations work headlessly,
@@ -1 +1 @@
1
- {"version":3,"file":"product-knowledge.js","sourceRoot":"","sources":["../../src/prompts/product-knowledge.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4EzC,CAAC"}
1
+ {"version":3,"file":"product-knowledge.js","sourceRoot":"","sources":["../../src/prompts/product-knowledge.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqHzC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { ProcessingContext, SandboxModuleCatalog } from "@nodetool-ai/runtime";
2
+ import { type SandboxModuleResolution } from "@nodetool-ai/protocol";
3
+ export type PackResolution = {
4
+ ok: true;
5
+ modules?: SandboxModuleResolution;
6
+ } | {
7
+ ok: false;
8
+ error: string;
9
+ };
10
+ /**
11
+ * Resolve the packs a body imports against the installed catalog, ignoring
12
+ * platform modules (which are mounted by the capability layer, not the
13
+ * catalog). A body that imports no pack needs no loader at all.
14
+ */
15
+ export declare function resolveImportedPacks(code: string, context: ProcessingContext, options?: {
16
+ mounted?: ReadonlySet<string>;
17
+ subject?: string;
18
+ /** Resolve against this catalog instead of the context's. */
19
+ catalog?: SandboxModuleCatalog | null;
20
+ }): PackResolution;
21
+ //# sourceMappingURL=sandbox-pack-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-pack-resolution.d.ts","sourceRoot":"","sources":["../src/sandbox-pack-resolution.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,cAAc,GACtB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,uBAAuB,CAAA;CAAE,GAC/C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAClC,GACL,cAAc,CAuChB"}
@@ -0,0 +1,42 @@
1
+ /** Pack resolution only; keep it free of capability-layer imports. */
2
+ import { parseCodeBody, staticImportSpecifiers } from "@nodetool-ai/node-sdk";
3
+ import { SANDBOX_CAPABILITY_PACK } from "@nodetool-ai/protocol";
4
+ /**
5
+ * Resolve the packs a body imports against the installed catalog, ignoring
6
+ * platform modules (which are mounted by the capability layer, not the
7
+ * catalog). A body that imports no pack needs no loader at all.
8
+ */
9
+ export function resolveImportedPacks(code, context, options = {}) {
10
+ const subject = options.subject ?? "The script";
11
+ const parsed = parseCodeBody(code);
12
+ if ("error" in parsed)
13
+ return { ok: true };
14
+ const mounted = options.mounted ?? new Set();
15
+ const packs = [
16
+ ...new Set(staticImportSpecifiers(parsed.statements))
17
+ ].filter((specifier) => !mounted.has(specifier) &&
18
+ specifier !== SANDBOX_CAPABILITY_PACK &&
19
+ !specifier.startsWith(`${SANDBOX_CAPABILITY_PACK}/`));
20
+ if (packs.length === 0)
21
+ return { ok: true };
22
+ const catalog = options.catalog ?? context.sandboxModuleCatalog;
23
+ if (!catalog) {
24
+ return {
25
+ ok: false,
26
+ error: `${subject} imports ${packs.map((s) => `"${s}"`).join(", ")}, but ` +
27
+ "sandbox packages cannot be resolved in this process."
28
+ };
29
+ }
30
+ const modules = catalog.resolveForExecution(packs.map((specifier) => ({ specifier })));
31
+ const errors = modules.statuses.filter((status) => status.status === "error");
32
+ if (errors.length > 0) {
33
+ return {
34
+ ok: false,
35
+ error: errors
36
+ .map((status) => `${status.message} (pack "${status.packName}")`)
37
+ .join(" ")
38
+ };
39
+ }
40
+ return { ok: true, modules };
41
+ }
42
+ //# sourceMappingURL=sandbox-pack-resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-pack-resolution.js","sourceRoot":"","sources":["../src/sandbox-pack-resolution.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,EACL,uBAAuB,EAExB,MAAM,uBAAuB,CAAC;AAM/B;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,OAA0B,EAC1B,OAAO,GAKH,EAAE;IAEN,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,OAAO,IAAI,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAE3C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,GAAG,EAAU,CAAC;IACrD,MAAM,KAAK,GAAG;QACZ,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KACtD,CAAC,MAAM,CACN,CAAC,SAAS,EAAE,EAAE,CACZ,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QACvB,SAAS,KAAK,uBAAuB;QACrC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,uBAAuB,GAAG,CAAC,CACvD,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAE5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAChE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EACH,GAAG,OAAO,YAAY,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;gBACnE,sDAAsD;SACzD,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CACzC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAC1C,CAAC;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;IAC9E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,MAAM;iBACV,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC,QAAQ,IAAI,CAAC;iBAChE,IAAI,CAAC,GAAG,CAAC;SACb,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC"}
@@ -9,5 +9,7 @@ export declare function assembleSandboxToolbelt(options?: Parameters<typeof getA
9
9
  * custom endpoints, tracing, and cancellation follow the script run.
10
10
  */
11
11
  export declare function assembleJsScriptToolbelt(context: ProcessingContext): Promise<Tool[]>;
12
- export declare function sandboxToolBridgeGlobals(context: ProcessingContext, tools?: Tool[]): Record<string, unknown>;
12
+ export declare function sandboxToolBridgeGlobals(context: ProcessingContext, tools?: Tool[], options?: {
13
+ signal?: AbortSignal;
14
+ }): Record<string, unknown>;
13
15
  //# sourceMappingURL=sandbox-toolbelt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-toolbelt.d.ts","sourceRoot":"","sources":["../src/sandbox-toolbelt.ts"],"names":[],"mappings":"AAsBA,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAMjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,eAAO,MAAM,gBAAgB,QAAmD,CAAC;AAEjF,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAM,GACjD,IAAI,EAAE,CAWR;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,EAAE,CAAC,CAcjB;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,iBAAiB,EAC1B,KAAK,GAAE,IAAI,EAA8B,GACxC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB"}
1
+ {"version":3,"file":"sandbox-toolbelt.d.ts","sourceRoot":"","sources":["../src/sandbox-toolbelt.ts"],"names":[],"mappings":"AAsBA,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAMjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAMtD,eAAO,MAAM,gBAAgB,QAAmD,CAAC;AAEjF,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAM,GACjD,IAAI,EAAE,CAWR;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,EAAE,CAAC,CAcjB;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,iBAAiB,EAC1B,KAAK,GAAE,IAAI,EAA8B,EACzC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB"}
@@ -25,6 +25,8 @@ import { getBuiltinTools } from "./tools/builtin-tools.js";
25
25
  import { getApifyTools, getSerpApiTools } from "./tools/external-capability-tools.js";
26
26
  import { getAllMcpTools } from "./tools/mcp-tools.js";
27
27
  import { buildToolBridge, TOOLS_PRELUDE } from "./codeact/tool-api.js";
28
+ import { UNGATED } from "./capabilities/invoke.js";
29
+ import { capabilityRunForTools } from "./capabilities/legacy-tools.js";
28
30
  import { NODETOOL_API_PRELUDE_FULL } from "./codeact/nodetool-api.js";
29
31
  export const NODETOOL_PRELUDE = `${TOOLS_PRELUDE}\n${NODETOOL_API_PRELUDE_FULL}`;
30
32
  export function assembleSandboxToolbelt(options = {}) {
@@ -58,7 +60,11 @@ export async function assembleJsScriptToolbelt(context) {
58
60
  }));
59
61
  return assembleSandboxToolbelt({ providers });
60
62
  }
61
- export function sandboxToolBridgeGlobals(context, tools = assembleSandboxToolbelt()) {
62
- return buildToolBridge({ tools, context }).globals;
63
+ export function sandboxToolBridgeGlobals(context, tools = assembleSandboxToolbelt(), options = {}) {
64
+ const run = capabilityRunForTools(tools, context, {
65
+ gate: UNGATED,
66
+ ...options
67
+ });
68
+ return buildToolBridge({ tools, invoke: run.invoke }).globals;
63
69
  }
64
70
  //# sourceMappingURL=sandbox-toolbelt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-toolbelt.js","sourceRoot":"","sources":["../src/sandbox-toolbelt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,yBAAyB,EAG1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EACL,aAAa,EACb,eAAe,EAChB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,aAAa,KAAK,yBAAyB,EAAE,CAAC;AAEjF,MAAM,UAAU,uBAAuB,CACrC,OAAO,GAAyC,EAAE;IAElD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI;QACjB,GAAG,eAAe,EAAE;QACpB,GAAG,aAAa,EAAE;QAClB,GAAG,eAAe,EAAE;QACpB,GAAG,cAAc,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;KACjE,EAAE,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAA0B;IAE1B,MAAM,SAAS,GAAiC,EAAE,CAAC;IACnD,MAAM,OAAO,CAAC,GAAG,CACf,yBAAyB,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QACnD,IAAI,CAAC;YACH,IAAI,MAAM,OAAO,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnD,SAAS,CAAC,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;QACvE,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IACF,OAAO,uBAAuB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAA0B,EAC1B,KAAK,GAAW,uBAAuB,EAAE;IAEzC,OAAO,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"sandbox-toolbelt.js","sourceRoot":"","sources":["../src/sandbox-toolbelt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,yBAAyB,EAG1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EACL,aAAa,EACb,eAAe,EAChB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,aAAa,KAAK,yBAAyB,EAAE,CAAC;AAEjF,MAAM,UAAU,uBAAuB,CACrC,OAAO,GAAyC,EAAE;IAElD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI;QACjB,GAAG,eAAe,EAAE;QACpB,GAAG,aAAa,EAAE;QAClB,GAAG,eAAe,EAAE;QACpB,GAAG,cAAc,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;KACjE,EAAE,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAA0B;IAE1B,MAAM,SAAS,GAAiC,EAAE,CAAC;IACnD,MAAM,OAAO,CAAC,GAAG,CACf,yBAAyB,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QACnD,IAAI,CAAC;YACH,IAAI,MAAM,OAAO,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnD,SAAS,CAAC,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;QACvE,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IACF,OAAO,uBAAuB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAA0B,EAC1B,KAAK,GAAW,uBAAuB,EAAE,EACzC,OAAO,GAA6B,EAAE;IAEtC,MAAM,GAAG,GAAG,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE;QAChD,IAAI,EAAE,OAAO;QACb,GAAG,OAAO;KACX,CAAC,CAAC;IACH,OAAO,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;AAChE,CAAC"}
@@ -13,6 +13,10 @@
13
13
  export interface SkillCatalogEntry {
14
14
  name: string;
15
15
  description: string;
16
+ /** A skill that ships with NodeTool, as opposed to one the user wrote. */
17
+ system?: boolean;
18
+ /** A shipped skill the always-on catalog lists. */
19
+ featured?: boolean;
16
20
  }
17
21
  /** One skill in full. */
18
22
  export interface SkillInstructions extends SkillCatalogEntry {
@@ -20,7 +24,13 @@ export interface SkillInstructions extends SkillCatalogEntry {
20
24
  }
21
25
  /** Skill names the text invokes with a leading slash, in order, deduped. */
22
26
  export declare function findInvokedSkillNames(text: string, available: readonly string[]): string[];
23
- /** The always-on catalog block: what exists, and how to read one in full. */
27
+ /**
28
+ * The always-on catalog block: what exists, and how to read one in full.
29
+ *
30
+ * It lists the user's own skills and the featured shipped ones. Every shipped
31
+ * description in every request cost more than the rest of the prompt, so the
32
+ * others are named by count and found with `list_skills`.
33
+ */
24
34
  export declare function formatSkillCatalogForPrompt(skills: readonly SkillCatalogEntry[]): string;
25
35
  /** The bodies of the skills this turn named, already loaded. */
26
36
  export declare function formatInvokedSkillsForPrompt(skills: readonly SkillInstructions[]): string;
@@ -1 +1 @@
1
- {"version":3,"file":"skill-prompt.d.ts","sourceRoot":"","sources":["../src/skill-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,yBAAyB;AACzB,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,OAAO,EAAE,MAAM,CAAC;CACjB;AAQD,4EAA4E;AAC5E,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,MAAM,EAAE,CAQV;AAED,6EAA6E;AAC7E,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,iBAAiB,EAAE,GACnC,MAAM,CAeR;AAED,gEAAgE;AAChE,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,iBAAiB,EAAE,GACnC,MAAM,CAYR"}
1
+ {"version":3,"file":"skill-prompt.d.ts","sourceRoot":"","sources":["../src/skill-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,yBAAyB;AACzB,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,OAAO,EAAE,MAAM,CAAC;CACjB;AAQD,4EAA4E;AAC5E,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,MAAM,EAAE,CAQV;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,iBAAiB,EAAE,GACnC,MAAM,CA2BR;AAED,gEAAgE;AAChE,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,iBAAiB,EAAE,GACnC,MAAM,CAYR"}
@@ -25,22 +25,33 @@ export function findInvokedSkillNames(text, available) {
25
25
  }
26
26
  return found;
27
27
  }
28
- /** The always-on catalog block: what exists, and how to read one in full. */
28
+ /**
29
+ * The always-on catalog block: what exists, and how to read one in full.
30
+ *
31
+ * It lists the user's own skills and the featured shipped ones. Every shipped
32
+ * description in every request cost more than the rest of the prompt, so the
33
+ * others are named by count and found with `list_skills`.
34
+ */
29
35
  export function formatSkillCatalogForPrompt(skills) {
30
36
  if (skills.length === 0)
31
37
  return "";
38
+ const listed = skills.filter((skill) => !skill.system || skill.featured);
39
+ const unlisted = skills.length - listed.length;
32
40
  const lines = [
33
41
  "## Skills",
34
42
  "",
35
- "The user has these skills — saved instructions for a kind of work. The",
36
- "description says when a skill applies; call `load_skill` with its name to",
37
- "read the instructions before you act on it. A message that names one with",
38
- "a leading slash (`/name`) is asking for that skill.",
43
+ "Skills are saved instructions for a kind of work. The description says",
44
+ "when a skill applies; call `load_skill` with its name to read the",
45
+ "instructions before you act on it. A message that names one with a",
46
+ "leading slash (`/name`) is asking for that skill.",
39
47
  ""
40
48
  ];
41
- for (const skill of skills) {
49
+ for (const skill of listed) {
42
50
  lines.push(`- \`/${skill.name}\` — ${skill.description}`);
43
51
  }
52
+ if (unlisted > 0) {
53
+ lines.push("", `${unlisted} more shipped skill${unlisted === 1 ? " is" : "s are"} not listed: brief shapes`, "for commercials, trailers, explainers and films, a guide for each image,", "video and audio model line, and one reference for each `nodetool.*`", "namespace. Find one with `list_skills({query})` before work of that", "kind, then `load_skill`.");
54
+ }
44
55
  return lines.join("\n");
45
56
  }
46
57
  /** The bodies of the skills this turn named, already loaded. */
@@ -1 +1 @@
1
- {"version":3,"file":"skill-prompt.js","sourceRoot":"","sources":["../src/skill-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAaH;;;GAGG;AACH,MAAM,gBAAgB,GAAG,wCAAwC,CAAC;AAElE,4EAA4E;AAC5E,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,SAA4B;IAE5B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,2BAA2B,CACzC,MAAoC;IAEpC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG;QACZ,WAAW;QACX,EAAE;QACF,wEAAwE;QACxE,2EAA2E;QAC3E,2EAA2E;QAC3E,qDAAqD;QACrD,EAAE;KACH,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,4BAA4B,CAC1C,MAAoC;IAEpC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG;QACZ,uBAAuB;QACvB,EAAE;QACF,mEAAmE;QACnE,EAAE;KACH,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"skill-prompt.js","sourceRoot":"","sources":["../src/skill-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAiBH;;;GAGG;AACH,MAAM,gBAAgB,GAAG,wCAAwC,CAAC;AAElE,4EAA4E;AAC5E,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,SAA4B;IAE5B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CACzC,MAAoC;IAEpC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/C,MAAM,KAAK,GAAG;QACZ,WAAW;QACX,EAAE;QACF,wEAAwE;QACxE,mEAAmE;QACnE,oEAAoE;QACpE,mDAAmD;QACnD,EAAE;KACH,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CACR,EAAE,EACF,GAAG,QAAQ,sBAAsB,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,2BAA2B,EAC5F,0EAA0E,EAC1E,qEAAqE,EACrE,qEAAqE,EACrE,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,4BAA4B,CAC1C,MAAoC;IAEpC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG;QACZ,uBAAuB;QACvB,EAAE;QACF,mEAAmE;QACnE,EAAE;KACH,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -22,13 +22,18 @@ export interface SystemSkill {
22
22
  readonly content: string;
23
23
  /** Always true — the field exists so a merged list stays self-describing. */
24
24
  readonly system: true;
25
+ /**
26
+ * Whether the always-on catalog lists this skill. The rest are found with
27
+ * `list_skills`, so the prompt does not pay for every shipped description.
28
+ */
29
+ readonly featured: boolean;
25
30
  }
26
31
  /** The directory holding the shipped skills, or null when this build has none. */
27
32
  export declare function systemSkillsDir(): string | null;
28
33
  /**
29
34
  * Split a `SKILL.md` into its frontmatter fields and body.
30
35
  *
31
- * Deliberately not a YAML parse: the frontmatter is two scalar fields, and
36
+ * Deliberately not a YAML parse: the frontmatter is a few scalar fields, and
32
37
  * pulling js-yaml into the host to read them would buy nothing. A file whose
33
38
  * frontmatter is missing or malformed yields null and is skipped rather than
34
39
  * failing the whole catalog — one bad shipped file must not cost a user every
@@ -38,6 +43,7 @@ export declare function parseSkillMarkdown(text: string): {
38
43
  name: string;
39
44
  description: string;
40
45
  content: string;
46
+ featured: boolean;
41
47
  } | null;
42
48
  /**
43
49
  * Every shipped skill, read once per process.
@@ -1 +1 @@
1
- {"version":3,"file":"system-skills.d.ts","sourceRoot":"","sources":["../src/system-skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;CACvB;AAED,kFAAkF;AAClF,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAiB/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,CAgCP;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,SAAS,WAAW,EAAE,CAIzD;AAED,kCAAkC;AAClC,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAkCD,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED,0CAA0C;AAC1C,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAGhE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAC/E,UAAU,EAAE,SAAS,CAAC,EAAE,GACvB,CAAC,CAAC,GAAG,WAAW,CAAC,EAAE,CAIrB"}
1
+ {"version":3,"file":"system-skills.d.ts","sourceRoot":"","sources":["../src/system-skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,kFAAkF;AAClF,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAiB/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,IAAI,CAgCP;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,SAAS,WAAW,EAAE,CAIzD;AAED,kCAAkC;AAClC,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAkCD,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED,0CAA0C;AAC1C,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAGhE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAC/E,UAAU,EAAE,SAAS,CAAC,EAAE,GACvB,CAAC,CAAC,GAAG,WAAW,CAAC,EAAE,CAIrB"}
@@ -44,7 +44,7 @@ export function systemSkillsDir() {
44
44
  /**
45
45
  * Split a `SKILL.md` into its frontmatter fields and body.
46
46
  *
47
- * Deliberately not a YAML parse: the frontmatter is two scalar fields, and
47
+ * Deliberately not a YAML parse: the frontmatter is a few scalar fields, and
48
48
  * pulling js-yaml into the host to read them would buy nothing. A file whose
49
49
  * frontmatter is missing or malformed yields null and is skipped rather than
50
50
  * failing the whole catalog — one bad shipped file must not cost a user every
@@ -83,7 +83,7 @@ export function parseSkillMarkdown(text) {
83
83
  if (!isValidSkillName(name) || !isValidSkillDescription(description)) {
84
84
  return null;
85
85
  }
86
- return { name, description, content };
86
+ return { name, description, content, featured: field("featured") === "true" };
87
87
  }
88
88
  let cache = null;
89
89
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"system-skills.js","sourceRoot":"","sources":["../src/system-skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-skills.js","sourceRoot":"","sources":["../src/system-skills.ts"],"names":[],"mappings":"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"}