@nodetool-ai/agents 0.8.1 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) 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/author-graph.d.ts +2 -3
  11. package/dist/author-graph.d.ts.map +1 -1
  12. package/dist/author-graph.js +3 -5
  13. package/dist/author-graph.js.map +1 -1
  14. package/dist/browser-gate.d.ts +2 -2
  15. package/dist/browser-gate.js +2 -2
  16. package/dist/capabilities/GamePublishRequest.d.ts +14 -0
  17. package/dist/capabilities/GamePublishRequest.d.ts.map +1 -0
  18. package/dist/capabilities/GamePublishRequest.js +2 -0
  19. package/dist/capabilities/GamePublishRequest.js.map +1 -0
  20. package/dist/capabilities/adapters.d.ts +4 -13
  21. package/dist/capabilities/adapters.d.ts.map +1 -1
  22. package/dist/capabilities/adapters.js +9 -14
  23. package/dist/capabilities/adapters.js.map +1 -1
  24. package/dist/capabilities/agent-activity.d.ts +27 -0
  25. package/dist/capabilities/agent-activity.d.ts.map +1 -0
  26. package/dist/capabilities/agent-activity.js +103 -0
  27. package/dist/capabilities/agent-activity.js.map +1 -0
  28. package/dist/capabilities/agentic-storyboard-finish.d.ts +67 -0
  29. package/dist/capabilities/agentic-storyboard-finish.d.ts.map +1 -0
  30. package/dist/capabilities/agentic-storyboard-finish.js +1321 -0
  31. package/dist/capabilities/agentic-storyboard-finish.js.map +1 -0
  32. package/dist/capabilities/agents.d.ts +5 -2
  33. package/dist/capabilities/agents.d.ts.map +1 -1
  34. package/dist/capabilities/agents.js +14 -4
  35. package/dist/capabilities/agents.js.map +1 -1
  36. package/dist/capabilities/agents.specs.d.ts +3 -0
  37. package/dist/capabilities/agents.specs.d.ts.map +1 -1
  38. package/dist/capabilities/agents.specs.js +71 -1
  39. package/dist/capabilities/agents.specs.js.map +1 -1
  40. package/dist/capabilities/analysis.d.ts.map +1 -1
  41. package/dist/capabilities/analysis.js +33 -22
  42. package/dist/capabilities/analysis.js.map +1 -1
  43. package/dist/capabilities/analysis.specs.js +2 -2
  44. package/dist/capabilities/analysis.specs.js.map +1 -1
  45. package/dist/capabilities/apps.d.ts.map +1 -1
  46. package/dist/capabilities/apps.js +5 -3
  47. package/dist/capabilities/apps.js.map +1 -1
  48. package/dist/capabilities/args.d.ts +2 -5
  49. package/dist/capabilities/args.d.ts.map +1 -1
  50. package/dist/capabilities/args.js +2 -5
  51. package/dist/capabilities/args.js.map +1 -1
  52. package/dist/capabilities/browser.d.ts +1 -1
  53. package/dist/capabilities/browser.js +1 -1
  54. package/dist/capabilities/browser.specs.d.ts +1 -1
  55. package/dist/capabilities/browser.specs.js +1 -1
  56. package/dist/capabilities/code.d.ts +5 -0
  57. package/dist/capabilities/code.d.ts.map +1 -1
  58. package/dist/capabilities/code.js +128 -89
  59. package/dist/capabilities/code.js.map +1 -1
  60. package/dist/capabilities/errors.d.ts +19 -0
  61. package/dist/capabilities/errors.d.ts.map +1 -0
  62. package/dist/capabilities/errors.js +109 -0
  63. package/dist/capabilities/errors.js.map +1 -0
  64. package/dist/capabilities/errors.specs.d.ts +11 -0
  65. package/dist/capabilities/errors.specs.d.ts.map +1 -0
  66. package/dist/capabilities/errors.specs.js +100 -0
  67. package/dist/capabilities/errors.specs.js.map +1 -0
  68. package/dist/capabilities/example-timelines.d.ts.map +1 -1
  69. package/dist/capabilities/example-timelines.js +52 -10
  70. package/dist/capabilities/example-timelines.js.map +1 -1
  71. package/dist/capabilities/example-timelines.specs.d.ts +1 -0
  72. package/dist/capabilities/example-timelines.specs.d.ts.map +1 -1
  73. package/dist/capabilities/example-timelines.specs.js +21 -3
  74. package/dist/capabilities/example-timelines.specs.js.map +1 -1
  75. package/dist/capabilities/finish-storyboard.d.ts +5 -0
  76. package/dist/capabilities/finish-storyboard.d.ts.map +1 -0
  77. package/dist/capabilities/finish-storyboard.js +278 -0
  78. package/dist/capabilities/finish-storyboard.js.map +1 -0
  79. package/dist/capabilities/game-asset-source.js +1 -1
  80. package/dist/capabilities/game-asset-source.js.map +1 -1
  81. package/dist/capabilities/game.d.ts +14 -2
  82. package/dist/capabilities/game.d.ts.map +1 -1
  83. package/dist/capabilities/game.js +209 -39
  84. package/dist/capabilities/game.js.map +1 -1
  85. package/dist/capabilities/game.specs.d.ts +2 -0
  86. package/dist/capabilities/game.specs.d.ts.map +1 -1
  87. package/dist/capabilities/game.specs.js +25 -11
  88. package/dist/capabilities/game.specs.js.map +1 -1
  89. package/dist/capabilities/game3d.d.ts +17 -0
  90. package/dist/capabilities/game3d.d.ts.map +1 -0
  91. package/dist/capabilities/game3d.js +433 -0
  92. package/dist/capabilities/game3d.js.map +1 -0
  93. package/dist/capabilities/gate-from-context.d.ts +1 -1
  94. package/dist/capabilities/gate-from-context.js +1 -1
  95. package/dist/capabilities/generations.d.ts +2 -0
  96. package/dist/capabilities/generations.d.ts.map +1 -1
  97. package/dist/capabilities/generations.js +7 -2
  98. package/dist/capabilities/generations.js.map +1 -1
  99. package/dist/capabilities/index.d.ts +2 -2
  100. package/dist/capabilities/index.d.ts.map +1 -1
  101. package/dist/capabilities/index.js +2 -2
  102. package/dist/capabilities/index.js.map +1 -1
  103. package/dist/capabilities/invoke.d.ts +14 -25
  104. package/dist/capabilities/invoke.d.ts.map +1 -1
  105. package/dist/capabilities/invoke.js +72 -35
  106. package/dist/capabilities/invoke.js.map +1 -1
  107. package/dist/capabilities/jobs.d.ts.map +1 -1
  108. package/dist/capabilities/jobs.js +47 -3
  109. package/dist/capabilities/jobs.js.map +1 -1
  110. package/dist/capabilities/jobs.specs.d.ts.map +1 -1
  111. package/dist/capabilities/jobs.specs.js +3 -1
  112. package/dist/capabilities/jobs.specs.js.map +1 -1
  113. package/dist/capabilities/js-scripts.d.ts +19 -1
  114. package/dist/capabilities/js-scripts.d.ts.map +1 -1
  115. package/dist/capabilities/js-scripts.js +109 -2
  116. package/dist/capabilities/js-scripts.js.map +1 -1
  117. package/dist/capabilities/js-scripts.specs.d.ts +2 -0
  118. package/dist/capabilities/js-scripts.specs.d.ts.map +1 -1
  119. package/dist/capabilities/js-scripts.specs.js +50 -0
  120. package/dist/capabilities/js-scripts.specs.js.map +1 -1
  121. package/dist/capabilities/lazy-tool.d.ts +23 -24
  122. package/dist/capabilities/lazy-tool.d.ts.map +1 -1
  123. package/dist/capabilities/lazy-tool.js +29 -35
  124. package/dist/capabilities/lazy-tool.js.map +1 -1
  125. package/dist/capabilities/legacy-tools.d.ts +15 -0
  126. package/dist/capabilities/legacy-tools.d.ts.map +1 -0
  127. package/dist/capabilities/legacy-tools.js +98 -0
  128. package/dist/capabilities/legacy-tools.js.map +1 -0
  129. package/dist/capabilities/media.d.ts +0 -9
  130. package/dist/capabilities/media.d.ts.map +1 -1
  131. package/dist/capabilities/media.js +301 -260
  132. package/dist/capabilities/media.js.map +1 -1
  133. package/dist/capabilities/models.d.ts +2 -2
  134. package/dist/capabilities/models.d.ts.map +1 -1
  135. package/dist/capabilities/models.js +5 -3
  136. package/dist/capabilities/models.js.map +1 -1
  137. package/dist/capabilities/registry.d.ts +2 -0
  138. package/dist/capabilities/registry.d.ts.map +1 -1
  139. package/dist/capabilities/registry.js +28 -0
  140. package/dist/capabilities/registry.js.map +1 -1
  141. package/dist/capabilities/run-agent.d.ts +19 -0
  142. package/dist/capabilities/run-agent.d.ts.map +1 -0
  143. package/dist/capabilities/run-agent.js +183 -0
  144. package/dist/capabilities/run-agent.js.map +1 -0
  145. package/dist/capabilities/runs.d.ts +9 -0
  146. package/dist/capabilities/runs.d.ts.map +1 -0
  147. package/dist/capabilities/runs.js +46 -0
  148. package/dist/capabilities/runs.js.map +1 -0
  149. package/dist/capabilities/runs.specs.d.ts +39 -0
  150. package/dist/capabilities/runs.specs.d.ts.map +1 -0
  151. package/dist/capabilities/runs.specs.js +52 -0
  152. package/dist/capabilities/runs.specs.js.map +1 -0
  153. package/dist/capabilities/scripts.d.ts.map +1 -1
  154. package/dist/capabilities/scripts.js +11 -5
  155. package/dist/capabilities/scripts.js.map +1 -1
  156. package/dist/capabilities/sketches.d.ts.map +1 -1
  157. package/dist/capabilities/sketches.js +4 -2
  158. package/dist/capabilities/sketches.js.map +1 -1
  159. package/dist/capabilities/skills.d.ts.map +1 -1
  160. package/dist/capabilities/skills.js +22 -2
  161. package/dist/capabilities/skills.js.map +1 -1
  162. package/dist/capabilities/storyboard-layout-check.d.ts +33 -0
  163. package/dist/capabilities/storyboard-layout-check.d.ts.map +1 -0
  164. package/dist/capabilities/storyboard-layout-check.js +229 -0
  165. package/dist/capabilities/storyboard-layout-check.js.map +1 -0
  166. package/dist/capabilities/storyboard-measured-sources.d.ts +10 -0
  167. package/dist/capabilities/storyboard-measured-sources.d.ts.map +1 -0
  168. package/dist/capabilities/storyboard-measured-sources.js +67 -0
  169. package/dist/capabilities/storyboard-measured-sources.js.map +1 -0
  170. package/dist/capabilities/storyboard-review-times.d.ts +4 -0
  171. package/dist/capabilities/storyboard-review-times.d.ts.map +1 -0
  172. package/dist/capabilities/storyboard-review-times.js +39 -0
  173. package/dist/capabilities/storyboard-review-times.js.map +1 -0
  174. package/dist/capabilities/storyboards.d.ts +2 -18
  175. package/dist/capabilities/storyboards.d.ts.map +1 -1
  176. package/dist/capabilities/storyboards.js +315 -94
  177. package/dist/capabilities/storyboards.js.map +1 -1
  178. package/dist/capabilities/storyboards.specs.d.ts +3 -0
  179. package/dist/capabilities/storyboards.specs.d.ts.map +1 -1
  180. package/dist/capabilities/storyboards.specs.js +42 -3
  181. package/dist/capabilities/storyboards.specs.js.map +1 -1
  182. package/dist/capabilities/timeline-bridge.d.ts +359 -0
  183. package/dist/capabilities/timeline-bridge.d.ts.map +1 -0
  184. package/dist/capabilities/timeline-bridge.js +1016 -0
  185. package/dist/capabilities/timeline-bridge.js.map +1 -0
  186. package/dist/capabilities/timeline-clip-frames.d.ts +17 -0
  187. package/dist/capabilities/timeline-clip-frames.d.ts.map +1 -0
  188. package/dist/capabilities/timeline-clip-frames.js +84 -0
  189. package/dist/capabilities/timeline-clip-frames.js.map +1 -0
  190. package/dist/capabilities/timeline-media-edit.d.ts +8 -0
  191. package/dist/capabilities/timeline-media-edit.d.ts.map +1 -0
  192. package/dist/capabilities/timeline-media-edit.js +94 -0
  193. package/dist/capabilities/timeline-media-edit.js.map +1 -0
  194. package/dist/capabilities/timeline-native-media.d.ts.map +1 -1
  195. package/dist/capabilities/timeline-native-media.js +40 -0
  196. package/dist/capabilities/timeline-native-media.js.map +1 -1
  197. package/dist/capabilities/timelines.d.ts +64 -4
  198. package/dist/capabilities/timelines.d.ts.map +1 -1
  199. package/dist/capabilities/timelines.js +566 -67
  200. package/dist/capabilities/timelines.js.map +1 -1
  201. package/dist/capabilities/timelines.specs.d.ts +8 -0
  202. package/dist/capabilities/timelines.specs.d.ts.map +1 -1
  203. package/dist/capabilities/timelines.specs.js +173 -8
  204. package/dist/capabilities/timelines.specs.js.map +1 -1
  205. package/dist/capabilities/types.d.ts +3 -1
  206. package/dist/capabilities/types.d.ts.map +1 -1
  207. package/dist/capabilities/types.js.map +1 -1
  208. package/dist/capabilities/ui.d.ts.map +1 -1
  209. package/dist/capabilities/ui.js +24 -2
  210. package/dist/capabilities/ui.js.map +1 -1
  211. package/dist/capabilities/workflows.d.ts.map +1 -1
  212. package/dist/capabilities/workflows.js +53 -26
  213. package/dist/capabilities/workflows.js.map +1 -1
  214. package/dist/capabilities/workflows.specs.d.ts.map +1 -1
  215. package/dist/capabilities/workflows.specs.js +7 -1
  216. package/dist/capabilities/workflows.specs.js.map +1 -1
  217. package/dist/codeact/action-diagnostics.d.ts.map +1 -1
  218. package/dist/codeact/action-diagnostics.js +51 -1
  219. package/dist/codeact/action-diagnostics.js.map +1 -1
  220. package/dist/codeact/codeact-executor.d.ts.map +1 -1
  221. package/dist/codeact/codeact-executor.js +16 -8
  222. package/dist/codeact/codeact-executor.js.map +1 -1
  223. package/dist/codeact/compact-ids.d.ts.map +1 -1
  224. package/dist/codeact/compact-ids.js +5 -1
  225. package/dist/codeact/compact-ids.js.map +1 -1
  226. package/dist/codeact/graph-model.d.ts +1 -1
  227. package/dist/codeact/graph-model.d.ts.map +1 -1
  228. package/dist/codeact/graph-model.js +2 -3
  229. package/dist/codeact/graph-model.js.map +1 -1
  230. package/dist/codeact/nodetool-api.d.ts +1 -1
  231. package/dist/codeact/nodetool-api.d.ts.map +1 -1
  232. package/dist/codeact/nodetool-api.js +202 -284
  233. package/dist/codeact/nodetool-api.js.map +1 -1
  234. package/dist/codeact/tool-api.d.ts +6 -3
  235. package/dist/codeact/tool-api.d.ts.map +1 -1
  236. package/dist/codeact/tool-api.js +22 -15
  237. package/dist/codeact/tool-api.js.map +1 -1
  238. package/dist/evals/codeact-api-cases.d.ts.map +1 -1
  239. package/dist/evals/codeact-api-cases.js +2 -0
  240. package/dist/evals/codeact-api-cases.js.map +1 -1
  241. package/dist/evals/codeact-api-runs.d.ts +3 -0
  242. package/dist/evals/codeact-api-runs.d.ts.map +1 -0
  243. package/dist/evals/codeact-api-runs.js +33 -0
  244. package/dist/evals/codeact-api-runs.js.map +1 -0
  245. package/dist/evals/surfaces/sketch.d.ts +2 -0
  246. package/dist/evals/surfaces/sketch.d.ts.map +1 -1
  247. package/dist/evals/surfaces/sketch.js +11 -3
  248. package/dist/evals/surfaces/sketch.js.map +1 -1
  249. package/dist/evals/surfaces/timeline.d.ts +4 -357
  250. package/dist/evals/surfaces/timeline.d.ts.map +1 -1
  251. package/dist/evals/surfaces/timeline.js +9 -2621
  252. package/dist/evals/surfaces/timeline.js.map +1 -1
  253. package/dist/evals/tool-loop-bridge.d.ts +4 -0
  254. package/dist/evals/tool-loop-bridge.d.ts.map +1 -1
  255. package/dist/evals/tool-loop-bridge.js.map +1 -1
  256. package/dist/evals/tool-loop-eval.d.ts +2 -0
  257. package/dist/evals/tool-loop-eval.d.ts.map +1 -1
  258. package/dist/evals/tool-loop-eval.js +6 -1
  259. package/dist/evals/tool-loop-eval.js.map +1 -1
  260. package/dist/evals/tool-loop-permission.d.ts +1 -15
  261. package/dist/evals/tool-loop-permission.d.ts.map +1 -1
  262. package/dist/evals/tool-loop-permission.js +23 -41
  263. package/dist/evals/tool-loop-permission.js.map +1 -1
  264. package/dist/game-authoring.d.ts +4737 -0
  265. package/dist/game-authoring.d.ts.map +1 -0
  266. package/dist/game-authoring.js +146 -0
  267. package/dist/game-authoring.js.map +1 -0
  268. package/dist/game-code-bake.d.ts +26 -0
  269. package/dist/game-code-bake.d.ts.map +1 -0
  270. package/dist/game-code-bake.js +98 -0
  271. package/dist/game-code-bake.js.map +1 -0
  272. package/dist/game-examples.d.ts +872 -16
  273. package/dist/game-examples.d.ts.map +1 -1
  274. package/dist/game-examples.js +5 -4
  275. package/dist/game-examples.js.map +1 -1
  276. package/dist/index.d.ts +15 -4
  277. package/dist/index.d.ts.map +1 -1
  278. package/dist/index.js +13 -3
  279. package/dist/index.js.map +1 -1
  280. package/dist/js-sandbox-worker/engine.d.ts +4 -0
  281. package/dist/js-sandbox-worker/engine.d.ts.map +1 -0
  282. package/dist/js-sandbox-worker/engine.js +45 -0
  283. package/dist/js-sandbox-worker/engine.js.map +1 -0
  284. package/dist/js-sandbox-worker/host.js +1 -1
  285. package/dist/js-sandbox-worker/host.js.map +1 -1
  286. package/dist/js-sandbox-worker/interpreter.d.ts +1 -1
  287. package/dist/js-sandbox-worker/interpreter.d.ts.map +1 -1
  288. package/dist/js-sandbox-worker/interpreter.js +94 -2
  289. package/dist/js-sandbox-worker/interpreter.js.map +1 -1
  290. package/dist/js-sandbox-worker/worker-entry.d.ts.map +1 -1
  291. package/dist/js-sandbox-worker/worker-entry.js +3 -2
  292. package/dist/js-sandbox-worker/worker-entry.js.map +1 -1
  293. package/dist/js-sandbox.d.ts +2 -0
  294. package/dist/js-sandbox.d.ts.map +1 -1
  295. package/dist/js-sandbox.js +56 -11
  296. package/dist/js-sandbox.js.map +1 -1
  297. package/dist/js-script-app-runner.d.ts +2 -0
  298. package/dist/js-script-app-runner.d.ts.map +1 -1
  299. package/dist/js-script-app-runner.js +8 -3
  300. package/dist/js-script-app-runner.js.map +1 -1
  301. package/dist/js-script-sandbox.d.ts +12 -18
  302. package/dist/js-script-sandbox.d.ts.map +1 -1
  303. package/dist/js-script-sandbox.js +3 -49
  304. package/dist/js-script-sandbox.js.map +1 -1
  305. package/dist/prompts/product-knowledge.d.ts +1 -1
  306. package/dist/prompts/product-knowledge.d.ts.map +1 -1
  307. package/dist/prompts/product-knowledge.js +82 -41
  308. package/dist/prompts/product-knowledge.js.map +1 -1
  309. package/dist/sandbox-pack-resolution.d.ts +21 -0
  310. package/dist/sandbox-pack-resolution.d.ts.map +1 -0
  311. package/dist/sandbox-pack-resolution.js +42 -0
  312. package/dist/sandbox-pack-resolution.js.map +1 -0
  313. package/dist/sandbox-toolbelt.d.ts +3 -1
  314. package/dist/sandbox-toolbelt.d.ts.map +1 -1
  315. package/dist/sandbox-toolbelt.js +8 -2
  316. package/dist/sandbox-toolbelt.js.map +1 -1
  317. package/dist/skill-prompt.d.ts +11 -1
  318. package/dist/skill-prompt.d.ts.map +1 -1
  319. package/dist/skill-prompt.js +17 -6
  320. package/dist/skill-prompt.js.map +1 -1
  321. package/dist/system-skills.d.ts +7 -1
  322. package/dist/system-skills.d.ts.map +1 -1
  323. package/dist/system-skills.js +2 -2
  324. package/dist/system-skills.js.map +1 -1
  325. package/dist/timeline-capture.d.ts +21 -0
  326. package/dist/timeline-capture.d.ts.map +1 -0
  327. package/dist/timeline-capture.js +564 -0
  328. package/dist/timeline-capture.js.map +1 -0
  329. package/dist/timeline-code-bake.d.ts +75 -0
  330. package/dist/timeline-code-bake.d.ts.map +1 -0
  331. package/dist/timeline-code-bake.js +327 -0
  332. package/dist/timeline-code-bake.js.map +1 -0
  333. package/dist/timeline-preview/frames.d.ts +26 -0
  334. package/dist/timeline-preview/frames.d.ts.map +1 -1
  335. package/dist/timeline-preview/frames.js +155 -70
  336. package/dist/timeline-preview/frames.js.map +1 -1
  337. package/dist/tools/base-tool.d.ts +1 -0
  338. package/dist/tools/base-tool.d.ts.map +1 -1
  339. package/dist/tools/base-tool.js +1 -1
  340. package/dist/tools/base-tool.js.map +1 -1
  341. package/dist/tools/builtin-tools.d.ts.map +1 -1
  342. package/dist/tools/builtin-tools.js +13 -0
  343. package/dist/tools/builtin-tools.js.map +1 -1
  344. package/dist/tools/external-capability-tools.d.ts +1 -1
  345. package/dist/tools/external-capability-tools.js +1 -1
  346. package/dist/tools/mcp-tool-support.d.ts +10 -9
  347. package/dist/tools/mcp-tool-support.d.ts.map +1 -1
  348. package/dist/tools/mcp-tool-support.js +14 -13
  349. package/dist/tools/mcp-tool-support.js.map +1 -1
  350. package/dist/tools/mcp-tools.d.ts +6 -4
  351. package/dist/tools/mcp-tools.d.ts.map +1 -1
  352. package/dist/tools/mcp-tools.js +65 -62
  353. package/dist/tools/mcp-tools.js.map +1 -1
  354. package/dist/tools/tool-permissions.d.ts +1 -1
  355. package/dist/tools/tool-permissions.js +1 -1
  356. package/package.json +24 -22
  357. package/dist/capabilities/gate-tools.d.ts +0 -18
  358. package/dist/capabilities/gate-tools.d.ts.map +0 -1
  359. package/dist/capabilities/gate-tools.js +0 -66
  360. package/dist/capabilities/gate-tools.js.map +0 -1
  361. package/dist/tsconfig.tests.tmp.tsbuildinfo +0 -1
@@ -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":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EACjC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAgBlF,kFAAkF;AAClF,MAAM,UAAU,eAAe;IAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC3D,IAAI,QAAQ;QAAE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5D,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAC;IAC7D,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAExC,MAAM,QAAQ,GAAG,gCAAgC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7D,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,SAAS,CAAC;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;QACzC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAChC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAM7C,4EAA4E;IAC5E,4EAA4E;IAC5E,4CAA4C;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtC,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,CAAC,GAAW,EAAU,EAAE;QACpC,0EAA0E;QAC1E,qBAAqB;QACrB,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,2EAA2E;QAC3E,yEAAyE;QACzE,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,MAAM,GACV,CAAC,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC;YAChC,KAAK,CAAC,MAAM,IAAI,CAAC;YACjB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7C,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;AAChF,CAAC;AAED,IAAI,KAAK,GAAkC,IAAI,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,KAAK,GAAG,gBAAgB,EAAE,CAAC;IAC3B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,qBAAqB;IACnC,KAAK,GAAG,IAAI,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE;gBAAE,SAAS;YACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChC,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,wEAAwE;YACxE,0EAA0E;YAC1E,yBAAyB;YACzB,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS;YAClD,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,SAAS;YACpC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;QACzD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5D,OAAO,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;AACnE,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5D,OAAO,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC;AAC3E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAwB;IAExB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The capture step of timeline code capture (docs/timeline-code-capture.md).
3
+ *
4
+ * Guest code that imports `@nodetool-ai/sandbox-timeline` passes through
5
+ * {@link captureTimelineScenes} before it runs. Each
6
+ * `<receiver>.scene(name, seconds, fn, extra?)` call gets one more argument,
7
+ * a capture record, which tells the pack what `fn` needs to be rebuilt
8
+ * without the rest of the script: the declarations to keep as source text,
9
+ * the pack imports, and the values to snapshot when the scene is built.
10
+ * `v.save()` prints the retained program from these records.
11
+ *
12
+ * The transform only appends text inside existing lines, so every line of
13
+ * the guest code keeps its number and stack positions stay correct.
14
+ */
15
+ /**
16
+ * Add a capture record to each `.scene()` call in `code`. Returns `code`
17
+ * unchanged when it does not import the timeline pack, cannot be parsed,
18
+ * or has no scene call to capture.
19
+ */
20
+ export declare function captureTimelineScenes(code: string): string;
21
+ //# sourceMappingURL=timeline-capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-capture.d.ts","sourceRoot":"","sources":["../src/timeline-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA6DH;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiC1D"}