@nodetool-ai/agents 0.7.0-rc.23 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1645) hide show
  1. package/README.md +35 -0
  2. package/dist/.nodetool-build-stamp +1 -0
  3. package/dist/analysis/audio-dsp.d.ts +224 -0
  4. package/dist/analysis/audio-dsp.d.ts.map +1 -0
  5. package/dist/analysis/audio-dsp.js +645 -0
  6. package/dist/analysis/audio-dsp.js.map +1 -0
  7. package/dist/analysis/media-decode.d.ts +98 -0
  8. package/dist/analysis/media-decode.d.ts.map +1 -0
  9. package/dist/analysis/media-decode.js +226 -0
  10. package/dist/analysis/media-decode.js.map +1 -0
  11. package/dist/analysis/mediabunny-runtime.d.ts +15 -0
  12. package/dist/analysis/mediabunny-runtime.d.ts.map +1 -0
  13. package/dist/analysis/mediabunny-runtime.js +30 -0
  14. package/dist/analysis/mediabunny-runtime.js.map +1 -0
  15. package/dist/analysis/video-frames.d.ts +120 -0
  16. package/dist/analysis/video-frames.d.ts.map +1 -0
  17. package/dist/analysis/video-frames.js +288 -0
  18. package/dist/analysis/video-frames.js.map +1 -0
  19. package/dist/apify/assets.d.ts +80 -0
  20. package/dist/apify/assets.d.ts.map +1 -0
  21. package/dist/apify/assets.js +192 -0
  22. package/dist/apify/assets.js.map +1 -0
  23. package/dist/apify/catalog.d.ts +44 -0
  24. package/dist/apify/catalog.d.ts.map +1 -0
  25. package/dist/apify/catalog.js +108 -0
  26. package/dist/apify/catalog.js.map +1 -0
  27. package/dist/apify/client.d.ts +137 -0
  28. package/dist/apify/client.d.ts.map +1 -0
  29. package/dist/apify/client.js +346 -0
  30. package/dist/apify/client.js.map +1 -0
  31. package/dist/apify/errors.d.ts +85 -0
  32. package/dist/apify/errors.d.ts.map +1 -0
  33. package/dist/apify/errors.js +90 -0
  34. package/dist/apify/errors.js.map +1 -0
  35. package/dist/apify/normalize.d.ts +131 -0
  36. package/dist/apify/normalize.d.ts.map +1 -0
  37. package/dist/apify/normalize.js +202 -0
  38. package/dist/apify/normalize.js.map +1 -0
  39. package/dist/apify/policy.d.ts +136 -0
  40. package/dist/apify/policy.d.ts.map +1 -0
  41. package/dist/apify/policy.js +223 -0
  42. package/dist/apify/policy.js.map +1 -0
  43. package/dist/apify/run.d.ts +86 -0
  44. package/dist/apify/run.d.ts.map +1 -0
  45. package/dist/apify/run.js +158 -0
  46. package/dist/apify/run.js.map +1 -0
  47. package/dist/app-build/author.d.ts +67 -0
  48. package/dist/app-build/author.d.ts.map +1 -0
  49. package/dist/app-build/author.js +231 -0
  50. package/dist/app-build/author.js.map +1 -0
  51. package/dist/app-build/bridge.d.ts +130 -0
  52. package/dist/app-build/bridge.d.ts.map +1 -0
  53. package/dist/app-build/bridge.js +647 -0
  54. package/dist/app-build/bridge.js.map +1 -0
  55. package/dist/app-build/build-service.d.ts +66 -0
  56. package/dist/app-build/build-service.d.ts.map +1 -0
  57. package/dist/app-build/build-service.js +249 -0
  58. package/dist/app-build/build-service.js.map +1 -0
  59. package/dist/app-build/build.d.ts +115 -0
  60. package/dist/app-build/build.d.ts.map +1 -0
  61. package/dist/app-build/build.js +901 -0
  62. package/dist/app-build/build.js.map +1 -0
  63. package/dist/app-build/interactions.d.ts +20 -0
  64. package/dist/app-build/interactions.d.ts.map +1 -0
  65. package/dist/app-build/interactions.js +121 -0
  66. package/dist/app-build/interactions.js.map +1 -0
  67. package/dist/app-build/judge.d.ts +113 -0
  68. package/dist/app-build/judge.d.ts.map +1 -0
  69. package/dist/app-build/judge.js +318 -0
  70. package/dist/app-build/judge.js.map +1 -0
  71. package/dist/app-build/markdown.d.ts +10 -0
  72. package/dist/app-build/markdown.d.ts.map +1 -0
  73. package/dist/app-build/markdown.js +65 -0
  74. package/dist/app-build/markdown.js.map +1 -0
  75. package/dist/app-build/spec.d.ts +228 -0
  76. package/dist/app-build/spec.d.ts.map +1 -0
  77. package/dist/app-build/spec.js +651 -0
  78. package/dist/app-build/spec.js.map +1 -0
  79. package/dist/app-build/tool-loop.d.ts +84 -0
  80. package/dist/app-build/tool-loop.d.ts.map +1 -0
  81. package/dist/app-build/tool-loop.js +113 -0
  82. package/dist/app-build/tool-loop.js.map +1 -0
  83. package/dist/app-build/types.d.ts +215 -0
  84. package/dist/app-build/types.d.ts.map +1 -0
  85. package/dist/app-build/types.js +28 -0
  86. package/dist/app-build/types.js.map +1 -0
  87. package/dist/author-graph.d.ts +90 -0
  88. package/dist/author-graph.d.ts.map +1 -0
  89. package/dist/author-graph.js +317 -0
  90. package/dist/author-graph.js.map +1 -0
  91. package/dist/background-subtasks.d.ts +79 -0
  92. package/dist/background-subtasks.d.ts.map +1 -0
  93. package/dist/background-subtasks.js +139 -0
  94. package/dist/background-subtasks.js.map +1 -0
  95. package/dist/blender-gate.d.ts +21 -0
  96. package/dist/blender-gate.d.ts.map +1 -0
  97. package/dist/blender-gate.js +27 -0
  98. package/dist/blender-gate.js.map +1 -0
  99. package/dist/browser-gate.d.ts +28 -0
  100. package/dist/browser-gate.d.ts.map +1 -0
  101. package/dist/browser-gate.js +34 -0
  102. package/dist/browser-gate.js.map +1 -0
  103. package/dist/capabilities/GamePublishRequest.d.ts +14 -0
  104. package/dist/capabilities/GamePublishRequest.d.ts.map +1 -0
  105. package/dist/capabilities/GamePublishRequest.js +2 -0
  106. package/dist/capabilities/GamePublishRequest.js.map +1 -0
  107. package/dist/capabilities/adapters.d.ts +27 -0
  108. package/dist/capabilities/adapters.d.ts.map +1 -0
  109. package/dist/capabilities/adapters.js +39 -0
  110. package/dist/capabilities/adapters.js.map +1 -0
  111. package/dist/capabilities/agent-activity.d.ts +27 -0
  112. package/dist/capabilities/agent-activity.d.ts.map +1 -0
  113. package/dist/capabilities/agent-activity.js +103 -0
  114. package/dist/capabilities/agent-activity.js.map +1 -0
  115. package/dist/capabilities/agentic-storyboard-finish.d.ts +67 -0
  116. package/dist/capabilities/agentic-storyboard-finish.d.ts.map +1 -0
  117. package/dist/capabilities/agentic-storyboard-finish.js +1321 -0
  118. package/dist/capabilities/agentic-storyboard-finish.js.map +1 -0
  119. package/dist/capabilities/agents.d.ts +81 -0
  120. package/dist/capabilities/agents.d.ts.map +1 -0
  121. package/dist/capabilities/agents.js +376 -0
  122. package/dist/capabilities/agents.js.map +1 -0
  123. package/dist/capabilities/agents.specs.d.ts +30 -0
  124. package/dist/capabilities/agents.specs.d.ts.map +1 -0
  125. package/dist/capabilities/agents.specs.js +313 -0
  126. package/dist/capabilities/agents.specs.js.map +1 -0
  127. package/dist/capabilities/analysis.d.ts +93 -0
  128. package/dist/capabilities/analysis.d.ts.map +1 -0
  129. package/dist/capabilities/analysis.js +823 -0
  130. package/dist/capabilities/analysis.js.map +1 -0
  131. package/dist/capabilities/analysis.specs.d.ts +39 -0
  132. package/dist/capabilities/analysis.specs.d.ts.map +1 -0
  133. package/dist/capabilities/analysis.specs.js +217 -0
  134. package/dist/capabilities/analysis.specs.js.map +1 -0
  135. package/dist/capabilities/apify.d.ts +34 -0
  136. package/dist/capabilities/apify.d.ts.map +1 -0
  137. package/dist/capabilities/apify.js +449 -0
  138. package/dist/capabilities/apify.js.map +1 -0
  139. package/dist/capabilities/apify.specs.d.ts +28 -0
  140. package/dist/capabilities/apify.specs.d.ts.map +1 -0
  141. package/dist/capabilities/apify.specs.js +232 -0
  142. package/dist/capabilities/apify.specs.js.map +1 -0
  143. package/dist/capabilities/apps.d.ts +40 -0
  144. package/dist/capabilities/apps.d.ts.map +1 -0
  145. package/dist/capabilities/apps.js +415 -0
  146. package/dist/capabilities/apps.js.map +1 -0
  147. package/dist/capabilities/apps.specs.d.ts +23 -0
  148. package/dist/capabilities/apps.specs.d.ts.map +1 -0
  149. package/dist/capabilities/apps.specs.js +236 -0
  150. package/dist/capabilities/apps.specs.js.map +1 -0
  151. package/dist/capabilities/args.d.ts +62 -0
  152. package/dist/capabilities/args.d.ts.map +1 -0
  153. package/dist/capabilities/args.js +215 -0
  154. package/dist/capabilities/args.js.map +1 -0
  155. package/dist/capabilities/assets.d.ts +45 -0
  156. package/dist/capabilities/assets.d.ts.map +1 -0
  157. package/dist/capabilities/assets.js +952 -0
  158. package/dist/capabilities/assets.js.map +1 -0
  159. package/dist/capabilities/assets.specs.d.ts +54 -0
  160. package/dist/capabilities/assets.specs.d.ts.map +1 -0
  161. package/dist/capabilities/assets.specs.js +291 -0
  162. package/dist/capabilities/assets.specs.js.map +1 -0
  163. package/dist/capabilities/background-generation.d.ts +14 -0
  164. package/dist/capabilities/background-generation.d.ts.map +1 -0
  165. package/dist/capabilities/background-generation.js +29 -0
  166. package/dist/capabilities/background-generation.js.map +1 -0
  167. package/dist/capabilities/browser.d.ts +30 -0
  168. package/dist/capabilities/browser.d.ts.map +1 -0
  169. package/dist/capabilities/browser.js +250 -0
  170. package/dist/capabilities/browser.js.map +1 -0
  171. package/dist/capabilities/browser.specs.d.ts +37 -0
  172. package/dist/capabilities/browser.specs.d.ts.map +1 -0
  173. package/dist/capabilities/browser.specs.js +173 -0
  174. package/dist/capabilities/browser.specs.js.map +1 -0
  175. package/dist/capabilities/code-grading.d.ts +68 -0
  176. package/dist/capabilities/code-grading.d.ts.map +1 -0
  177. package/dist/capabilities/code-grading.js +75 -0
  178. package/dist/capabilities/code-grading.js.map +1 -0
  179. package/dist/capabilities/code.d.ts +61 -0
  180. package/dist/capabilities/code.d.ts.map +1 -0
  181. package/dist/capabilities/code.js +366 -0
  182. package/dist/capabilities/code.js.map +1 -0
  183. package/dist/capabilities/code.specs.d.ts +22 -0
  184. package/dist/capabilities/code.specs.d.ts.map +1 -0
  185. package/dist/capabilities/code.specs.js +175 -0
  186. package/dist/capabilities/code.specs.js.map +1 -0
  187. package/dist/capabilities/collections.d.ts +44 -0
  188. package/dist/capabilities/collections.d.ts.map +1 -0
  189. package/dist/capabilities/collections.js +432 -0
  190. package/dist/capabilities/collections.js.map +1 -0
  191. package/dist/capabilities/collections.specs.d.ts +25 -0
  192. package/dist/capabilities/collections.specs.d.ts.map +1 -0
  193. package/dist/capabilities/collections.specs.js +299 -0
  194. package/dist/capabilities/collections.specs.js.map +1 -0
  195. package/dist/capabilities/compositions.d.ts +57 -0
  196. package/dist/capabilities/compositions.d.ts.map +1 -0
  197. package/dist/capabilities/compositions.js +384 -0
  198. package/dist/capabilities/compositions.js.map +1 -0
  199. package/dist/capabilities/compositions.specs.d.ts +22 -0
  200. package/dist/capabilities/compositions.specs.d.ts.map +1 -0
  201. package/dist/capabilities/compositions.specs.js +126 -0
  202. package/dist/capabilities/compositions.specs.js.map +1 -0
  203. package/dist/capabilities/concurrency.d.ts +12 -0
  204. package/dist/capabilities/concurrency.d.ts.map +1 -0
  205. package/dist/capabilities/concurrency.js +30 -0
  206. package/dist/capabilities/concurrency.js.map +1 -0
  207. package/dist/capabilities/costs.d.ts +20 -0
  208. package/dist/capabilities/costs.d.ts.map +1 -0
  209. package/dist/capabilities/costs.js +40 -0
  210. package/dist/capabilities/costs.js.map +1 -0
  211. package/dist/capabilities/costs.specs.d.ts +12 -0
  212. package/dist/capabilities/costs.specs.d.ts.map +1 -0
  213. package/dist/capabilities/costs.specs.js +35 -0
  214. package/dist/capabilities/costs.specs.js.map +1 -0
  215. package/dist/capabilities/dispatcher.d.ts +57 -0
  216. package/dist/capabilities/dispatcher.d.ts.map +1 -0
  217. package/dist/capabilities/dispatcher.js +117 -0
  218. package/dist/capabilities/dispatcher.js.map +1 -0
  219. package/dist/capabilities/documents.d.ts +25 -0
  220. package/dist/capabilities/documents.d.ts.map +1 -0
  221. package/dist/capabilities/documents.js +278 -0
  222. package/dist/capabilities/documents.js.map +1 -0
  223. package/dist/capabilities/documents.specs.d.ts +18 -0
  224. package/dist/capabilities/documents.specs.d.ts.map +1 -0
  225. package/dist/capabilities/documents.specs.js +201 -0
  226. package/dist/capabilities/documents.specs.js.map +1 -0
  227. package/dist/capabilities/email.d.ts +23 -0
  228. package/dist/capabilities/email.d.ts.map +1 -0
  229. package/dist/capabilities/email.js +226 -0
  230. package/dist/capabilities/email.js.map +1 -0
  231. package/dist/capabilities/email.specs.d.ts +16 -0
  232. package/dist/capabilities/email.specs.d.ts.map +1 -0
  233. package/dist/capabilities/email.specs.js +102 -0
  234. package/dist/capabilities/email.specs.js.map +1 -0
  235. package/dist/capabilities/entities.d.ts +52 -0
  236. package/dist/capabilities/entities.d.ts.map +1 -0
  237. package/dist/capabilities/entities.js +478 -0
  238. package/dist/capabilities/entities.js.map +1 -0
  239. package/dist/capabilities/entities.specs.d.ts +25 -0
  240. package/dist/capabilities/entities.specs.d.ts.map +1 -0
  241. package/dist/capabilities/entities.specs.js +247 -0
  242. package/dist/capabilities/entities.specs.js.map +1 -0
  243. package/dist/capabilities/errors.d.ts +19 -0
  244. package/dist/capabilities/errors.d.ts.map +1 -0
  245. package/dist/capabilities/errors.js +109 -0
  246. package/dist/capabilities/errors.js.map +1 -0
  247. package/dist/capabilities/errors.specs.d.ts +11 -0
  248. package/dist/capabilities/errors.specs.d.ts.map +1 -0
  249. package/dist/capabilities/errors.specs.js +100 -0
  250. package/dist/capabilities/errors.specs.js.map +1 -0
  251. package/dist/capabilities/example-timelines.d.ts +3 -0
  252. package/dist/capabilities/example-timelines.d.ts.map +1 -0
  253. package/dist/capabilities/example-timelines.js +233 -0
  254. package/dist/capabilities/example-timelines.js.map +1 -0
  255. package/dist/capabilities/example-timelines.specs.d.ts +6 -0
  256. package/dist/capabilities/example-timelines.specs.d.ts.map +1 -0
  257. package/dist/capabilities/example-timelines.specs.js +71 -0
  258. package/dist/capabilities/example-timelines.specs.js.map +1 -0
  259. package/dist/capabilities/files.d.ts +53 -0
  260. package/dist/capabilities/files.d.ts.map +1 -0
  261. package/dist/capabilities/files.js +1172 -0
  262. package/dist/capabilities/files.js.map +1 -0
  263. package/dist/capabilities/files.specs.d.ts +28 -0
  264. package/dist/capabilities/files.specs.d.ts.map +1 -0
  265. package/dist/capabilities/files.specs.js +259 -0
  266. package/dist/capabilities/files.specs.js.map +1 -0
  267. package/dist/capabilities/finish-storyboard.d.ts +5 -0
  268. package/dist/capabilities/finish-storyboard.d.ts.map +1 -0
  269. package/dist/capabilities/finish-storyboard.js +278 -0
  270. package/dist/capabilities/finish-storyboard.js.map +1 -0
  271. package/dist/capabilities/flow.d.ts +93 -0
  272. package/dist/capabilities/flow.d.ts.map +1 -0
  273. package/dist/capabilities/flow.js +285 -0
  274. package/dist/capabilities/flow.js.map +1 -0
  275. package/dist/capabilities/flow.specs.d.ts +25 -0
  276. package/dist/capabilities/flow.specs.d.ts.map +1 -0
  277. package/dist/capabilities/flow.specs.js +114 -0
  278. package/dist/capabilities/flow.specs.js.map +1 -0
  279. package/dist/capabilities/game-asset-source.d.ts +31 -0
  280. package/dist/capabilities/game-asset-source.d.ts.map +1 -0
  281. package/dist/capabilities/game-asset-source.js +81 -0
  282. package/dist/capabilities/game-asset-source.js.map +1 -0
  283. package/dist/capabilities/game.d.ts +24 -0
  284. package/dist/capabilities/game.d.ts.map +1 -0
  285. package/dist/capabilities/game.js +1432 -0
  286. package/dist/capabilities/game.js.map +1 -0
  287. package/dist/capabilities/game.specs.d.ts +5 -0
  288. package/dist/capabilities/game.specs.d.ts.map +1 -0
  289. package/dist/capabilities/game.specs.js +110 -0
  290. package/dist/capabilities/game.specs.js.map +1 -0
  291. package/dist/capabilities/game3d.d.ts +17 -0
  292. package/dist/capabilities/game3d.d.ts.map +1 -0
  293. package/dist/capabilities/game3d.js +433 -0
  294. package/dist/capabilities/game3d.js.map +1 -0
  295. package/dist/capabilities/gate-from-context.d.ts +39 -0
  296. package/dist/capabilities/gate-from-context.d.ts.map +1 -0
  297. package/dist/capabilities/gate-from-context.js +97 -0
  298. package/dist/capabilities/gate-from-context.js.map +1 -0
  299. package/dist/capabilities/generations.d.ts +81 -0
  300. package/dist/capabilities/generations.d.ts.map +1 -0
  301. package/dist/capabilities/generations.js +387 -0
  302. package/dist/capabilities/generations.js.map +1 -0
  303. package/dist/capabilities/generations.specs.d.ts +62 -0
  304. package/dist/capabilities/generations.specs.d.ts.map +1 -0
  305. package/dist/capabilities/generations.specs.js +230 -0
  306. package/dist/capabilities/generations.specs.js.map +1 -0
  307. package/dist/capabilities/google.d.ts +50 -0
  308. package/dist/capabilities/google.d.ts.map +1 -0
  309. package/dist/capabilities/google.js +246 -0
  310. package/dist/capabilities/google.js.map +1 -0
  311. package/dist/capabilities/google.specs.d.ts +52 -0
  312. package/dist/capabilities/google.specs.d.ts.map +1 -0
  313. package/dist/capabilities/google.specs.js +391 -0
  314. package/dist/capabilities/google.specs.js.map +1 -0
  315. package/dist/capabilities/html-text.d.ts +28 -0
  316. package/dist/capabilities/html-text.d.ts.map +1 -0
  317. package/dist/capabilities/html-text.js +76 -0
  318. package/dist/capabilities/html-text.js.map +1 -0
  319. package/dist/capabilities/index.d.ts +19 -0
  320. package/dist/capabilities/index.d.ts.map +1 -0
  321. package/dist/capabilities/index.js +14 -0
  322. package/dist/capabilities/index.js.map +1 -0
  323. package/dist/capabilities/invoke.d.ts +78 -0
  324. package/dist/capabilities/invoke.d.ts.map +1 -0
  325. package/dist/capabilities/invoke.js +251 -0
  326. package/dist/capabilities/invoke.js.map +1 -0
  327. package/dist/capabilities/jobs.d.ts +32 -0
  328. package/dist/capabilities/jobs.d.ts.map +1 -0
  329. package/dist/capabilities/jobs.js +167 -0
  330. package/dist/capabilities/jobs.js.map +1 -0
  331. package/dist/capabilities/jobs.specs.d.ts +20 -0
  332. package/dist/capabilities/jobs.specs.d.ts.map +1 -0
  333. package/dist/capabilities/jobs.specs.js +105 -0
  334. package/dist/capabilities/jobs.specs.js.map +1 -0
  335. package/dist/capabilities/js-scripts.d.ts +108 -0
  336. package/dist/capabilities/js-scripts.d.ts.map +1 -0
  337. package/dist/capabilities/js-scripts.js +807 -0
  338. package/dist/capabilities/js-scripts.js.map +1 -0
  339. package/dist/capabilities/js-scripts.specs.d.ts +52 -0
  340. package/dist/capabilities/js-scripts.specs.d.ts.map +1 -0
  341. package/dist/capabilities/js-scripts.specs.js +394 -0
  342. package/dist/capabilities/js-scripts.specs.js.map +1 -0
  343. package/dist/capabilities/lazy-tool.d.ts +41 -0
  344. package/dist/capabilities/lazy-tool.d.ts.map +1 -0
  345. package/dist/capabilities/lazy-tool.js +82 -0
  346. package/dist/capabilities/lazy-tool.js.map +1 -0
  347. package/dist/capabilities/legacy-tools.d.ts +15 -0
  348. package/dist/capabilities/legacy-tools.d.ts.map +1 -0
  349. package/dist/capabilities/legacy-tools.js +98 -0
  350. package/dist/capabilities/legacy-tools.js.map +1 -0
  351. package/dist/capabilities/local-browser.d.ts +24 -0
  352. package/dist/capabilities/local-browser.d.ts.map +1 -0
  353. package/dist/capabilities/local-browser.js +105 -0
  354. package/dist/capabilities/local-browser.js.map +1 -0
  355. package/dist/capabilities/media.d.ts +112 -0
  356. package/dist/capabilities/media.d.ts.map +1 -0
  357. package/dist/capabilities/media.js +2258 -0
  358. package/dist/capabilities/media.js.map +1 -0
  359. package/dist/capabilities/media.specs.d.ts +65 -0
  360. package/dist/capabilities/media.specs.d.ts.map +1 -0
  361. package/dist/capabilities/media.specs.js +779 -0
  362. package/dist/capabilities/media.specs.js.map +1 -0
  363. package/dist/capabilities/memory.d.ts +31 -0
  364. package/dist/capabilities/memory.d.ts.map +1 -0
  365. package/dist/capabilities/memory.js +403 -0
  366. package/dist/capabilities/memory.js.map +1 -0
  367. package/dist/capabilities/memory.specs.d.ts +55 -0
  368. package/dist/capabilities/memory.specs.d.ts.map +1 -0
  369. package/dist/capabilities/memory.specs.js +208 -0
  370. package/dist/capabilities/memory.specs.js.map +1 -0
  371. package/dist/capabilities/model3d.d.ts +29 -0
  372. package/dist/capabilities/model3d.d.ts.map +1 -0
  373. package/dist/capabilities/model3d.js +482 -0
  374. package/dist/capabilities/model3d.js.map +1 -0
  375. package/dist/capabilities/model3d.specs.d.ts +28 -0
  376. package/dist/capabilities/model3d.specs.d.ts.map +1 -0
  377. package/dist/capabilities/model3d.specs.js +305 -0
  378. package/dist/capabilities/model3d.specs.js.map +1 -0
  379. package/dist/capabilities/models.d.ts +138 -0
  380. package/dist/capabilities/models.d.ts.map +1 -0
  381. package/dist/capabilities/models.js +805 -0
  382. package/dist/capabilities/models.js.map +1 -0
  383. package/dist/capabilities/models.specs.d.ts +21 -0
  384. package/dist/capabilities/models.specs.d.ts.map +1 -0
  385. package/dist/capabilities/models.specs.js +141 -0
  386. package/dist/capabilities/models.specs.js.map +1 -0
  387. package/dist/capabilities/nodes.d.ts +26 -0
  388. package/dist/capabilities/nodes.d.ts.map +1 -0
  389. package/dist/capabilities/nodes.js +266 -0
  390. package/dist/capabilities/nodes.js.map +1 -0
  391. package/dist/capabilities/nodes.specs.d.ts +20 -0
  392. package/dist/capabilities/nodes.specs.d.ts.map +1 -0
  393. package/dist/capabilities/nodes.specs.js +106 -0
  394. package/dist/capabilities/nodes.specs.js.map +1 -0
  395. package/dist/capabilities/packs.d.ts +69 -0
  396. package/dist/capabilities/packs.d.ts.map +1 -0
  397. package/dist/capabilities/packs.js +246 -0
  398. package/dist/capabilities/packs.js.map +1 -0
  399. package/dist/capabilities/packs.specs.d.ts +27 -0
  400. package/dist/capabilities/packs.specs.d.ts.map +1 -0
  401. package/dist/capabilities/packs.specs.js +64 -0
  402. package/dist/capabilities/packs.specs.js.map +1 -0
  403. package/dist/capabilities/project-scope.d.ts +12 -0
  404. package/dist/capabilities/project-scope.d.ts.map +1 -0
  405. package/dist/capabilities/project-scope.js +19 -0
  406. package/dist/capabilities/project-scope.js.map +1 -0
  407. package/dist/capabilities/projects.d.ts +23 -0
  408. package/dist/capabilities/projects.d.ts.map +1 -0
  409. package/dist/capabilities/projects.js +206 -0
  410. package/dist/capabilities/projects.js.map +1 -0
  411. package/dist/capabilities/projects.specs.d.ts +23 -0
  412. package/dist/capabilities/projects.specs.d.ts.map +1 -0
  413. package/dist/capabilities/projects.specs.js +118 -0
  414. package/dist/capabilities/projects.specs.js.map +1 -0
  415. package/dist/capabilities/registry.d.ts +111 -0
  416. package/dist/capabilities/registry.d.ts.map +1 -0
  417. package/dist/capabilities/registry.js +473 -0
  418. package/dist/capabilities/registry.js.map +1 -0
  419. package/dist/capabilities/run-agent.d.ts +19 -0
  420. package/dist/capabilities/run-agent.d.ts.map +1 -0
  421. package/dist/capabilities/run-agent.js +183 -0
  422. package/dist/capabilities/run-agent.js.map +1 -0
  423. package/dist/capabilities/runs.d.ts +9 -0
  424. package/dist/capabilities/runs.d.ts.map +1 -0
  425. package/dist/capabilities/runs.js +46 -0
  426. package/dist/capabilities/runs.js.map +1 -0
  427. package/dist/capabilities/runs.specs.d.ts +39 -0
  428. package/dist/capabilities/runs.specs.d.ts.map +1 -0
  429. package/dist/capabilities/runs.specs.js +52 -0
  430. package/dist/capabilities/runs.specs.js.map +1 -0
  431. package/dist/capabilities/script-link.d.ts +22 -0
  432. package/dist/capabilities/script-link.d.ts.map +1 -0
  433. package/dist/capabilities/script-link.js +35 -0
  434. package/dist/capabilities/script-link.js.map +1 -0
  435. package/dist/capabilities/scripts.d.ts +43 -0
  436. package/dist/capabilities/scripts.d.ts.map +1 -0
  437. package/dist/capabilities/scripts.js +1795 -0
  438. package/dist/capabilities/scripts.js.map +1 -0
  439. package/dist/capabilities/scripts.specs.d.ts +40 -0
  440. package/dist/capabilities/scripts.specs.d.ts.map +1 -0
  441. package/dist/capabilities/scripts.specs.js +319 -0
  442. package/dist/capabilities/scripts.specs.js.map +1 -0
  443. package/dist/capabilities/serpapi.d.ts +42 -0
  444. package/dist/capabilities/serpapi.d.ts.map +1 -0
  445. package/dist/capabilities/serpapi.js +262 -0
  446. package/dist/capabilities/serpapi.js.map +1 -0
  447. package/dist/capabilities/serpapi.specs.d.ts +24 -0
  448. package/dist/capabilities/serpapi.specs.d.ts.map +1 -0
  449. package/dist/capabilities/serpapi.specs.js +174 -0
  450. package/dist/capabilities/serpapi.specs.js.map +1 -0
  451. package/dist/capabilities/settings.d.ts +48 -0
  452. package/dist/capabilities/settings.d.ts.map +1 -0
  453. package/dist/capabilities/settings.js +226 -0
  454. package/dist/capabilities/settings.js.map +1 -0
  455. package/dist/capabilities/settings.specs.d.ts +42 -0
  456. package/dist/capabilities/settings.specs.d.ts.map +1 -0
  457. package/dist/capabilities/settings.specs.js +126 -0
  458. package/dist/capabilities/settings.specs.js.map +1 -0
  459. package/dist/capabilities/shared.d.ts +35 -0
  460. package/dist/capabilities/shared.d.ts.map +1 -0
  461. package/dist/capabilities/shared.js +165 -0
  462. package/dist/capabilities/shared.js.map +1 -0
  463. package/dist/capabilities/shared.specs.d.ts +19 -0
  464. package/dist/capabilities/shared.specs.d.ts.map +1 -0
  465. package/dist/capabilities/shared.specs.js +134 -0
  466. package/dist/capabilities/shared.specs.js.map +1 -0
  467. package/dist/capabilities/sketches.d.ts +52 -0
  468. package/dist/capabilities/sketches.d.ts.map +1 -0
  469. package/dist/capabilities/sketches.js +1165 -0
  470. package/dist/capabilities/sketches.js.map +1 -0
  471. package/dist/capabilities/sketches.specs.d.ts +44 -0
  472. package/dist/capabilities/sketches.specs.d.ts.map +1 -0
  473. package/dist/capabilities/sketches.specs.js +392 -0
  474. package/dist/capabilities/sketches.specs.js.map +1 -0
  475. package/dist/capabilities/skills.d.ts +28 -0
  476. package/dist/capabilities/skills.d.ts.map +1 -0
  477. package/dist/capabilities/skills.js +289 -0
  478. package/dist/capabilities/skills.js.map +1 -0
  479. package/dist/capabilities/skills.specs.d.ts +17 -0
  480. package/dist/capabilities/skills.specs.d.ts.map +1 -0
  481. package/dist/capabilities/skills.specs.js +108 -0
  482. package/dist/capabilities/skills.specs.js.map +1 -0
  483. package/dist/capabilities/storyboard-layout-check.d.ts +33 -0
  484. package/dist/capabilities/storyboard-layout-check.d.ts.map +1 -0
  485. package/dist/capabilities/storyboard-layout-check.js +229 -0
  486. package/dist/capabilities/storyboard-layout-check.js.map +1 -0
  487. package/dist/capabilities/storyboard-measured-sources.d.ts +10 -0
  488. package/dist/capabilities/storyboard-measured-sources.d.ts.map +1 -0
  489. package/dist/capabilities/storyboard-measured-sources.js +67 -0
  490. package/dist/capabilities/storyboard-measured-sources.js.map +1 -0
  491. package/dist/capabilities/storyboard-review-times.d.ts +4 -0
  492. package/dist/capabilities/storyboard-review-times.d.ts.map +1 -0
  493. package/dist/capabilities/storyboard-review-times.js +39 -0
  494. package/dist/capabilities/storyboard-review-times.js.map +1 -0
  495. package/dist/capabilities/storyboards.d.ts +52 -0
  496. package/dist/capabilities/storyboards.d.ts.map +1 -0
  497. package/dist/capabilities/storyboards.js +2467 -0
  498. package/dist/capabilities/storyboards.js.map +1 -0
  499. package/dist/capabilities/storyboards.specs.d.ts +45 -0
  500. package/dist/capabilities/storyboards.specs.d.ts.map +1 -0
  501. package/dist/capabilities/storyboards.specs.js +457 -0
  502. package/dist/capabilities/storyboards.specs.js.map +1 -0
  503. package/dist/capabilities/threads.d.ts +25 -0
  504. package/dist/capabilities/threads.d.ts.map +1 -0
  505. package/dist/capabilities/threads.js +240 -0
  506. package/dist/capabilities/threads.js.map +1 -0
  507. package/dist/capabilities/threads.specs.d.ts +26 -0
  508. package/dist/capabilities/threads.specs.d.ts.map +1 -0
  509. package/dist/capabilities/threads.specs.js +108 -0
  510. package/dist/capabilities/threads.specs.js.map +1 -0
  511. package/dist/capabilities/timeline-audio-bake.d.ts +114 -0
  512. package/dist/capabilities/timeline-audio-bake.d.ts.map +1 -0
  513. package/dist/capabilities/timeline-audio-bake.js +188 -0
  514. package/dist/capabilities/timeline-audio-bake.js.map +1 -0
  515. package/dist/capabilities/timeline-bake.d.ts +21 -0
  516. package/dist/capabilities/timeline-bake.d.ts.map +1 -0
  517. package/dist/capabilities/timeline-bake.js +118 -0
  518. package/dist/capabilities/timeline-bake.js.map +1 -0
  519. package/dist/capabilities/timeline-bridge.d.ts +359 -0
  520. package/dist/capabilities/timeline-bridge.d.ts.map +1 -0
  521. package/dist/capabilities/timeline-bridge.js +1016 -0
  522. package/dist/capabilities/timeline-bridge.js.map +1 -0
  523. package/dist/capabilities/timeline-clip-frames.d.ts +17 -0
  524. package/dist/capabilities/timeline-clip-frames.d.ts.map +1 -0
  525. package/dist/capabilities/timeline-clip-frames.js +84 -0
  526. package/dist/capabilities/timeline-clip-frames.js.map +1 -0
  527. package/dist/capabilities/timeline-isolate-subject.d.ts +157 -0
  528. package/dist/capabilities/timeline-isolate-subject.d.ts.map +1 -0
  529. package/dist/capabilities/timeline-isolate-subject.js +293 -0
  530. package/dist/capabilities/timeline-isolate-subject.js.map +1 -0
  531. package/dist/capabilities/timeline-media-edit.d.ts +8 -0
  532. package/dist/capabilities/timeline-media-edit.d.ts.map +1 -0
  533. package/dist/capabilities/timeline-media-edit.js +94 -0
  534. package/dist/capabilities/timeline-media-edit.js.map +1 -0
  535. package/dist/capabilities/timeline-native-media.d.ts +4 -0
  536. package/dist/capabilities/timeline-native-media.d.ts.map +1 -0
  537. package/dist/capabilities/timeline-native-media.js +960 -0
  538. package/dist/capabilities/timeline-native-media.js.map +1 -0
  539. package/dist/capabilities/timeline-track-object.d.ts +83 -0
  540. package/dist/capabilities/timeline-track-object.d.ts.map +1 -0
  541. package/dist/capabilities/timeline-track-object.js +195 -0
  542. package/dist/capabilities/timeline-track-object.js.map +1 -0
  543. package/dist/capabilities/timelines.d.ts +250 -0
  544. package/dist/capabilities/timelines.d.ts.map +1 -0
  545. package/dist/capabilities/timelines.js +2825 -0
  546. package/dist/capabilities/timelines.js.map +1 -0
  547. package/dist/capabilities/timelines.specs.d.ts +142 -0
  548. package/dist/capabilities/timelines.specs.d.ts.map +1 -0
  549. package/dist/capabilities/timelines.specs.js +1527 -0
  550. package/dist/capabilities/timelines.specs.js.map +1 -0
  551. package/dist/capabilities/types.d.ts +199 -0
  552. package/dist/capabilities/types.d.ts.map +1 -0
  553. package/dist/capabilities/types.js +19 -0
  554. package/dist/capabilities/types.js.map +1 -0
  555. package/dist/capabilities/ui.d.ts +38 -0
  556. package/dist/capabilities/ui.d.ts.map +1 -0
  557. package/dist/capabilities/ui.js +150 -0
  558. package/dist/capabilities/ui.js.map +1 -0
  559. package/dist/capabilities/ui.specs.d.ts +22 -0
  560. package/dist/capabilities/ui.specs.d.ts.map +1 -0
  561. package/dist/capabilities/ui.specs.js +59 -0
  562. package/dist/capabilities/ui.specs.js.map +1 -0
  563. package/dist/capabilities/video-production-acceptance.d.ts +27 -0
  564. package/dist/capabilities/video-production-acceptance.d.ts.map +1 -0
  565. package/dist/capabilities/video-production-acceptance.js +41 -0
  566. package/dist/capabilities/video-production-acceptance.js.map +1 -0
  567. package/dist/capabilities/video-production.d.ts +179 -0
  568. package/dist/capabilities/video-production.d.ts.map +1 -0
  569. package/dist/capabilities/video-production.js +1492 -0
  570. package/dist/capabilities/video-production.js.map +1 -0
  571. package/dist/capabilities/video-production.specs.d.ts +13 -0
  572. package/dist/capabilities/video-production.specs.d.ts.map +1 -0
  573. package/dist/capabilities/video-production.specs.js +256 -0
  574. package/dist/capabilities/video-production.specs.js.map +1 -0
  575. package/dist/capabilities/web.d.ts +86 -0
  576. package/dist/capabilities/web.d.ts.map +1 -0
  577. package/dist/capabilities/web.js +850 -0
  578. package/dist/capabilities/web.js.map +1 -0
  579. package/dist/capabilities/web.specs.d.ts +33 -0
  580. package/dist/capabilities/web.specs.d.ts.map +1 -0
  581. package/dist/capabilities/web.specs.js +286 -0
  582. package/dist/capabilities/web.specs.js.map +1 -0
  583. package/dist/capabilities/workflows.d.ts +58 -0
  584. package/dist/capabilities/workflows.d.ts.map +1 -0
  585. package/dist/capabilities/workflows.js +1557 -0
  586. package/dist/capabilities/workflows.js.map +1 -0
  587. package/dist/capabilities/workflows.specs.d.ts +63 -0
  588. package/dist/capabilities/workflows.specs.d.ts.map +1 -0
  589. package/dist/capabilities/workflows.specs.js +858 -0
  590. package/dist/capabilities/workflows.specs.js.map +1 -0
  591. package/dist/code-gen/analyze.d.ts +26 -0
  592. package/dist/code-gen/analyze.d.ts.map +1 -0
  593. package/dist/code-gen/analyze.js +79 -0
  594. package/dist/code-gen/analyze.js.map +1 -0
  595. package/dist/code-gen/port-types.d.ts +58 -0
  596. package/dist/code-gen/port-types.d.ts.map +1 -0
  597. package/dist/code-gen/port-types.js +115 -0
  598. package/dist/code-gen/port-types.js.map +1 -0
  599. package/dist/code-gen/prompt.d.ts +37 -0
  600. package/dist/code-gen/prompt.d.ts.map +1 -0
  601. package/dist/code-gen/prompt.js +129 -0
  602. package/dist/code-gen/prompt.js.map +1 -0
  603. package/dist/code-gen/sandbox-manifest.d.ts +120 -0
  604. package/dist/code-gen/sandbox-manifest.d.ts.map +1 -0
  605. package/dist/code-gen/sandbox-manifest.js +1023 -0
  606. package/dist/code-gen/sandbox-manifest.js.map +1 -0
  607. package/dist/code-gen/sandbox-prompt.d.ts +26 -0
  608. package/dist/code-gen/sandbox-prompt.d.ts.map +1 -0
  609. package/dist/code-gen/sandbox-prompt.js +126 -0
  610. package/dist/code-gen/sandbox-prompt.js.map +1 -0
  611. package/dist/code-planner.d.ts +72 -0
  612. package/dist/code-planner.d.ts.map +1 -0
  613. package/dist/code-planner.js +271 -0
  614. package/dist/code-planner.js.map +1 -0
  615. package/dist/codeact/action-diagnostics.d.ts +35 -0
  616. package/dist/codeact/action-diagnostics.d.ts.map +1 -0
  617. package/dist/codeact/action-diagnostics.js +197 -0
  618. package/dist/codeact/action-diagnostics.js.map +1 -0
  619. package/dist/codeact/capability-modules.d.ts +66 -0
  620. package/dist/codeact/capability-modules.d.ts.map +1 -0
  621. package/dist/codeact/capability-modules.js +278 -0
  622. package/dist/codeact/capability-modules.js.map +1 -0
  623. package/dist/codeact/chat-codeact.d.ts +104 -0
  624. package/dist/codeact/chat-codeact.d.ts.map +1 -0
  625. package/dist/codeact/chat-codeact.js +424 -0
  626. package/dist/codeact/chat-codeact.js.map +1 -0
  627. package/dist/codeact/codeact-executor.d.ts +247 -0
  628. package/dist/codeact/codeact-executor.d.ts.map +1 -0
  629. package/dist/codeact/codeact-executor.js +1184 -0
  630. package/dist/codeact/codeact-executor.js.map +1 -0
  631. package/dist/codeact/compact-ids.d.ts +28 -0
  632. package/dist/codeact/compact-ids.d.ts.map +1 -0
  633. package/dist/codeact/compact-ids.js +81 -0
  634. package/dist/codeact/compact-ids.js.map +1 -0
  635. package/dist/codeact/execute-code-contract.d.ts +97 -0
  636. package/dist/codeact/execute-code-contract.d.ts.map +1 -0
  637. package/dist/codeact/execute-code-contract.js +225 -0
  638. package/dist/codeact/execute-code-contract.js.map +1 -0
  639. package/dist/codeact/fabric-package.d.ts +29 -0
  640. package/dist/codeact/fabric-package.d.ts.map +1 -0
  641. package/dist/codeact/fabric-package.js +62 -0
  642. package/dist/codeact/fabric-package.js.map +1 -0
  643. package/dist/codeact/flow-package.d.ts +31 -0
  644. package/dist/codeact/flow-package.d.ts.map +1 -0
  645. package/dist/codeact/flow-package.js +80 -0
  646. package/dist/codeact/flow-package.js.map +1 -0
  647. package/dist/codeact/graph-dsl-package.d.ts +42 -0
  648. package/dist/codeact/graph-dsl-package.d.ts.map +1 -0
  649. package/dist/codeact/graph-dsl-package.js +100 -0
  650. package/dist/codeact/graph-dsl-package.js.map +1 -0
  651. package/dist/codeact/graph-model.d.ts +30 -0
  652. package/dist/codeact/graph-model.d.ts.map +1 -0
  653. package/dist/codeact/graph-model.js +407 -0
  654. package/dist/codeact/graph-model.js.map +1 -0
  655. package/dist/codeact/mcp-guest-contract.d.ts +66 -0
  656. package/dist/codeact/mcp-guest-contract.d.ts.map +1 -0
  657. package/dist/codeact/mcp-guest-contract.js +108 -0
  658. package/dist/codeact/mcp-guest-contract.js.map +1 -0
  659. package/dist/codeact/nodetool-api.d.ts +60 -0
  660. package/dist/codeact/nodetool-api.d.ts.map +1 -0
  661. package/dist/codeact/nodetool-api.js +1974 -0
  662. package/dist/codeact/nodetool-api.js.map +1 -0
  663. package/dist/codeact/prompt.d.ts +88 -0
  664. package/dist/codeact/prompt.d.ts.map +1 -0
  665. package/dist/codeact/prompt.js +326 -0
  666. package/dist/codeact/prompt.js.map +1 -0
  667. package/dist/codeact/sandbox-package-docs.d.ts +48 -0
  668. package/dist/codeact/sandbox-package-docs.d.ts.map +1 -0
  669. package/dist/codeact/sandbox-package-docs.js +55 -0
  670. package/dist/codeact/sandbox-package-docs.js.map +1 -0
  671. package/dist/codeact/sandbox-package-listing.d.ts +81 -0
  672. package/dist/codeact/sandbox-package-listing.d.ts.map +1 -0
  673. package/dist/codeact/sandbox-package-listing.js +101 -0
  674. package/dist/codeact/sandbox-package-listing.js.map +1 -0
  675. package/dist/codeact/sandbox-packages.d.ts +72 -0
  676. package/dist/codeact/sandbox-packages.d.ts.map +1 -0
  677. package/dist/codeact/sandbox-packages.js +230 -0
  678. package/dist/codeact/sandbox-packages.js.map +1 -0
  679. package/dist/codeact/timeline-package.d.ts +5 -0
  680. package/dist/codeact/timeline-package.d.ts.map +1 -0
  681. package/dist/codeact/timeline-package.js +10 -0
  682. package/dist/codeact/timeline-package.js.map +1 -0
  683. package/dist/codeact/tool-api.d.ts +200 -0
  684. package/dist/codeact/tool-api.d.ts.map +1 -0
  685. package/dist/codeact/tool-api.js +452 -0
  686. package/dist/codeact/tool-api.js.map +1 -0
  687. package/dist/codeact/tools-prelude.d.ts +32 -0
  688. package/dist/codeact/tools-prelude.d.ts.map +1 -0
  689. package/dist/codeact/tools-prelude.js +65 -0
  690. package/dist/codeact/tools-prelude.js.map +1 -0
  691. package/dist/constants.d.ts +47 -2
  692. package/dist/constants.d.ts.map +1 -1
  693. package/dist/constants.js +64 -2
  694. package/dist/constants.js.map +1 -1
  695. package/dist/custom-animation-bake.d.ts +57 -0
  696. package/dist/custom-animation-bake.d.ts.map +1 -0
  697. package/dist/custom-animation-bake.js +88 -0
  698. package/dist/custom-animation-bake.js.map +1 -0
  699. package/dist/dynamic-slots.d.ts +72 -0
  700. package/dist/dynamic-slots.d.ts.map +1 -0
  701. package/dist/dynamic-slots.js +0 -0
  702. package/dist/dynamic-slots.js.map +1 -0
  703. package/dist/evals/app-build-cases.d.ts +35 -0
  704. package/dist/evals/app-build-cases.d.ts.map +1 -0
  705. package/dist/evals/app-build-cases.js +722 -0
  706. package/dist/evals/app-build-cases.js.map +1 -0
  707. package/dist/evals/app-build-eval.d.ts +208 -0
  708. package/dist/evals/app-build-eval.d.ts.map +1 -0
  709. package/dist/evals/app-build-eval.js +518 -0
  710. package/dist/evals/app-build-eval.js.map +1 -0
  711. package/dist/evals/app-build-plan.d.ts +76 -0
  712. package/dist/evals/app-build-plan.d.ts.map +1 -0
  713. package/dist/evals/app-build-plan.js +140 -0
  714. package/dist/evals/app-build-plan.js.map +1 -0
  715. package/dist/evals/code-gen-cases.d.ts +13 -0
  716. package/dist/evals/code-gen-cases.d.ts.map +1 -0
  717. package/dist/evals/code-gen-cases.js +124 -0
  718. package/dist/evals/code-gen-cases.js.map +1 -0
  719. package/dist/evals/code-gen-eval.d.ts +109 -0
  720. package/dist/evals/code-gen-eval.d.ts.map +1 -0
  721. package/dist/evals/code-gen-eval.js +299 -0
  722. package/dist/evals/code-gen-eval.js.map +1 -0
  723. package/dist/evals/codeact-api-cases.d.ts +14 -0
  724. package/dist/evals/codeact-api-cases.d.ts.map +1 -0
  725. package/dist/evals/codeact-api-cases.js +31 -0
  726. package/dist/evals/codeact-api-cases.js.map +1 -0
  727. package/dist/evals/codeact-api-core.d.ts +23 -0
  728. package/dist/evals/codeact-api-core.d.ts.map +1 -0
  729. package/dist/evals/codeact-api-core.js +1411 -0
  730. package/dist/evals/codeact-api-core.js.map +1 -0
  731. package/dist/evals/codeact-api-runs.d.ts +3 -0
  732. package/dist/evals/codeact-api-runs.d.ts.map +1 -0
  733. package/dist/evals/codeact-api-runs.js +33 -0
  734. package/dist/evals/codeact-api-runs.js.map +1 -0
  735. package/dist/evals/codeact-api-surfaces.d.ts +25 -0
  736. package/dist/evals/codeact-api-surfaces.d.ts.map +1 -0
  737. package/dist/evals/codeact-api-surfaces.js +2191 -0
  738. package/dist/evals/codeact-api-surfaces.js.map +1 -0
  739. package/dist/evals/codeact-cases.d.ts +76 -0
  740. package/dist/evals/codeact-cases.d.ts.map +1 -0
  741. package/dist/evals/codeact-cases.js +151 -0
  742. package/dist/evals/codeact-cases.js.map +1 -0
  743. package/dist/evals/codeact-eval.d.ts +66 -0
  744. package/dist/evals/codeact-eval.d.ts.map +1 -0
  745. package/dist/evals/codeact-eval.js +250 -0
  746. package/dist/evals/codeact-eval.js.map +1 -0
  747. package/dist/evals/codeact-sandbox-pack-cases.d.ts +31 -0
  748. package/dist/evals/codeact-sandbox-pack-cases.d.ts.map +1 -0
  749. package/dist/evals/codeact-sandbox-pack-cases.js +219 -0
  750. package/dist/evals/codeact-sandbox-pack-cases.js.map +1 -0
  751. package/dist/evals/escalation-cases.d.ts +22 -0
  752. package/dist/evals/escalation-cases.d.ts.map +1 -0
  753. package/dist/evals/escalation-cases.js +343 -0
  754. package/dist/evals/escalation-cases.js.map +1 -0
  755. package/dist/evals/escalation.d.ts +92 -0
  756. package/dist/evals/escalation.d.ts.map +1 -0
  757. package/dist/evals/escalation.js +152 -0
  758. package/dist/evals/escalation.js.map +1 -0
  759. package/dist/evals/goal-judge.d.ts +51 -0
  760. package/dist/evals/goal-judge.d.ts.map +1 -0
  761. package/dist/evals/goal-judge.js +152 -0
  762. package/dist/evals/goal-judge.js.map +1 -0
  763. package/dist/evals/graph-e2e-cases.d.ts +21 -0
  764. package/dist/evals/graph-e2e-cases.d.ts.map +1 -0
  765. package/dist/evals/graph-e2e-cases.js +262 -0
  766. package/dist/evals/graph-e2e-cases.js.map +1 -0
  767. package/dist/evals/graph-e2e-eval.d.ts +202 -0
  768. package/dist/evals/graph-e2e-eval.d.ts.map +1 -0
  769. package/dist/evals/graph-e2e-eval.js +438 -0
  770. package/dist/evals/graph-e2e-eval.js.map +1 -0
  771. package/dist/evals/graph-planner-cases.d.ts +12 -0
  772. package/dist/evals/graph-planner-cases.d.ts.map +1 -0
  773. package/dist/evals/graph-planner-cases.js +256 -0
  774. package/dist/evals/graph-planner-cases.js.map +1 -0
  775. package/dist/evals/graph-planner-eval.d.ts +178 -0
  776. package/dist/evals/graph-planner-eval.d.ts.map +1 -0
  777. package/dist/evals/graph-planner-eval.js +495 -0
  778. package/dist/evals/graph-planner-eval.js.map +1 -0
  779. package/dist/evals/planner-tools.d.ts +21 -0
  780. package/dist/evals/planner-tools.d.ts.map +1 -0
  781. package/dist/evals/planner-tools.js +66 -0
  782. package/dist/evals/planner-tools.js.map +1 -0
  783. package/dist/evals/subtask-cases.d.ts +88 -0
  784. package/dist/evals/subtask-cases.d.ts.map +1 -0
  785. package/dist/evals/subtask-cases.js +322 -0
  786. package/dist/evals/subtask-cases.js.map +1 -0
  787. package/dist/evals/subtask-eval.d.ts +129 -0
  788. package/dist/evals/subtask-eval.d.ts.map +1 -0
  789. package/dist/evals/subtask-eval.js +397 -0
  790. package/dist/evals/subtask-eval.js.map +1 -0
  791. package/dist/evals/surfaces/app.d.ts +19 -0
  792. package/dist/evals/surfaces/app.d.ts.map +1 -0
  793. package/dist/evals/surfaces/app.js +341 -0
  794. package/dist/evals/surfaces/app.js.map +1 -0
  795. package/dist/evals/surfaces/creative-pipeline.d.ts +203 -0
  796. package/dist/evals/surfaces/creative-pipeline.d.ts.map +1 -0
  797. package/dist/evals/surfaces/creative-pipeline.js +909 -0
  798. package/dist/evals/surfaces/creative-pipeline.js.map +1 -0
  799. package/dist/evals/surfaces/game.d.ts +5 -0
  800. package/dist/evals/surfaces/game.d.ts.map +1 -0
  801. package/dist/evals/surfaces/game.js +42 -0
  802. package/dist/evals/surfaces/game.js.map +1 -0
  803. package/dist/evals/surfaces/js-script.d.ts +66 -0
  804. package/dist/evals/surfaces/js-script.d.ts.map +1 -0
  805. package/dist/evals/surfaces/js-script.js +407 -0
  806. package/dist/evals/surfaces/js-script.js.map +1 -0
  807. package/dist/evals/surfaces/memory.d.ts +34 -0
  808. package/dist/evals/surfaces/memory.d.ts.map +1 -0
  809. package/dist/evals/surfaces/memory.js +264 -0
  810. package/dist/evals/surfaces/memory.js.map +1 -0
  811. package/dist/evals/surfaces/model3d.d.ts +45 -0
  812. package/dist/evals/surfaces/model3d.d.ts.map +1 -0
  813. package/dist/evals/surfaces/model3d.js +346 -0
  814. package/dist/evals/surfaces/model3d.js.map +1 -0
  815. package/dist/evals/surfaces/script.d.ts +96 -0
  816. package/dist/evals/surfaces/script.d.ts.map +1 -0
  817. package/dist/evals/surfaces/script.js +709 -0
  818. package/dist/evals/surfaces/script.js.map +1 -0
  819. package/dist/evals/surfaces/sketch.d.ts +126 -0
  820. package/dist/evals/surfaces/sketch.d.ts.map +1 -0
  821. package/dist/evals/surfaces/sketch.js +1306 -0
  822. package/dist/evals/surfaces/sketch.js.map +1 -0
  823. package/dist/evals/surfaces/storyboard.d.ts +97 -0
  824. package/dist/evals/surfaces/storyboard.d.ts.map +1 -0
  825. package/dist/evals/surfaces/storyboard.js +693 -0
  826. package/dist/evals/surfaces/storyboard.js.map +1 -0
  827. package/dist/evals/surfaces/timeline.d.ts +63 -0
  828. package/dist/evals/surfaces/timeline.d.ts.map +1 -0
  829. package/dist/evals/surfaces/timeline.js +655 -0
  830. package/dist/evals/surfaces/timeline.js.map +1 -0
  831. package/dist/evals/task-planner-cases.d.ts +57 -0
  832. package/dist/evals/task-planner-cases.d.ts.map +1 -0
  833. package/dist/evals/task-planner-cases.js +117 -0
  834. package/dist/evals/task-planner-cases.js.map +1 -0
  835. package/dist/evals/task-planner-eval.d.ts +101 -0
  836. package/dist/evals/task-planner-eval.d.ts.map +1 -0
  837. package/dist/evals/task-planner-eval.js +380 -0
  838. package/dist/evals/task-planner-eval.js.map +1 -0
  839. package/dist/evals/tool-loop-bridge.d.ts +61 -0
  840. package/dist/evals/tool-loop-bridge.d.ts.map +1 -0
  841. package/dist/evals/tool-loop-bridge.js +129 -0
  842. package/dist/evals/tool-loop-bridge.js.map +1 -0
  843. package/dist/evals/tool-loop-cases.d.ts +21 -0
  844. package/dist/evals/tool-loop-cases.d.ts.map +1 -0
  845. package/dist/evals/tool-loop-cases.js +401 -0
  846. package/dist/evals/tool-loop-cases.js.map +1 -0
  847. package/dist/evals/tool-loop-eval.d.ts +236 -0
  848. package/dist/evals/tool-loop-eval.d.ts.map +1 -0
  849. package/dist/evals/tool-loop-eval.js +378 -0
  850. package/dist/evals/tool-loop-eval.js.map +1 -0
  851. package/dist/evals/tool-loop-permission.d.ts +29 -0
  852. package/dist/evals/tool-loop-permission.d.ts.map +1 -0
  853. package/dist/evals/tool-loop-permission.js +58 -0
  854. package/dist/evals/tool-loop-permission.js.map +1 -0
  855. package/dist/game-authoring.d.ts +4737 -0
  856. package/dist/game-authoring.d.ts.map +1 -0
  857. package/dist/game-authoring.js +146 -0
  858. package/dist/game-authoring.js.map +1 -0
  859. package/dist/game-code-bake.d.ts +26 -0
  860. package/dist/game-code-bake.d.ts.map +1 -0
  861. package/dist/game-code-bake.js +98 -0
  862. package/dist/game-code-bake.js.map +1 -0
  863. package/dist/game-examples.d.ts +1303 -0
  864. package/dist/game-examples.d.ts.map +1 -0
  865. package/dist/game-examples.js +188 -0
  866. package/dist/game-examples.js.map +1 -0
  867. package/dist/graph-builder.d.ts +55 -3
  868. package/dist/graph-builder.d.ts.map +1 -1
  869. package/dist/graph-builder.js +159 -4
  870. package/dist/graph-builder.js.map +1 -1
  871. package/dist/graph-dsl-core.d.ts +25 -0
  872. package/dist/graph-dsl-core.d.ts.map +1 -0
  873. package/dist/graph-dsl-core.js +312 -0
  874. package/dist/graph-dsl-core.js.map +1 -0
  875. package/dist/graph-dsl.d.ts +30 -0
  876. package/dist/graph-dsl.d.ts.map +1 -0
  877. package/dist/graph-dsl.js +116 -0
  878. package/dist/graph-dsl.js.map +1 -0
  879. package/dist/host-binaries.d.ts +6 -0
  880. package/dist/host-binaries.d.ts.map +1 -0
  881. package/dist/host-binaries.js +6 -0
  882. package/dist/host-binaries.js.map +1 -0
  883. package/dist/host-binary-guard.d.ts +100 -0
  884. package/dist/host-binary-guard.d.ts.map +1 -0
  885. package/dist/host-binary-guard.js +205 -0
  886. package/dist/host-binary-guard.js.map +1 -0
  887. package/dist/host-modules/aws.d.ts +57 -0
  888. package/dist/host-modules/aws.d.ts.map +1 -0
  889. package/dist/host-modules/aws.js +309 -0
  890. package/dist/host-modules/aws.js.map +1 -0
  891. package/dist/host-modules/chrono.d.ts +15 -0
  892. package/dist/host-modules/chrono.d.ts.map +1 -0
  893. package/dist/host-modules/chrono.js +35 -0
  894. package/dist/host-modules/chrono.js.map +1 -0
  895. package/dist/host-modules/csv.d.ts +17 -0
  896. package/dist/host-modules/csv.d.ts.map +1 -0
  897. package/dist/host-modules/csv.js +64 -0
  898. package/dist/host-modules/csv.js.map +1 -0
  899. package/dist/host-modules/diff.d.ts +9 -0
  900. package/dist/host-modules/diff.d.ts.map +1 -0
  901. package/dist/host-modules/diff.js +26 -0
  902. package/dist/host-modules/diff.js.map +1 -0
  903. package/dist/host-modules/dispatcher.d.ts +41 -0
  904. package/dist/host-modules/dispatcher.d.ts.map +1 -0
  905. package/dist/host-modules/dispatcher.js +99 -0
  906. package/dist/host-modules/dispatcher.js.map +1 -0
  907. package/dist/host-modules/docx.d.ts +19 -0
  908. package/dist/host-modules/docx.d.ts.map +1 -0
  909. package/dist/host-modules/docx.js +120 -0
  910. package/dist/host-modules/docx.js.map +1 -0
  911. package/dist/host-modules/epub.d.ts +48 -0
  912. package/dist/host-modules/epub.d.ts.map +1 -0
  913. package/dist/host-modules/epub.js +100 -0
  914. package/dist/host-modules/epub.js.map +1 -0
  915. package/dist/host-modules/exif.d.ts +8 -0
  916. package/dist/host-modules/exif.d.ts.map +1 -0
  917. package/dist/host-modules/exif.js +19 -0
  918. package/dist/host-modules/exif.js.map +1 -0
  919. package/dist/host-modules/expr.d.ts +16 -0
  920. package/dist/host-modules/expr.d.ts.map +1 -0
  921. package/dist/host-modules/expr.js +18 -0
  922. package/dist/host-modules/expr.js.map +1 -0
  923. package/dist/host-modules/fabric.d.ts +46 -0
  924. package/dist/host-modules/fabric.d.ts.map +1 -0
  925. package/dist/host-modules/fabric.js +178 -0
  926. package/dist/host-modules/fabric.js.map +1 -0
  927. package/dist/host-modules/html.d.ts +51 -0
  928. package/dist/host-modules/html.d.ts.map +1 -0
  929. package/dist/host-modules/html.js +198 -0
  930. package/dist/host-modules/html.js.map +1 -0
  931. package/dist/host-modules/ics.d.ts +9 -0
  932. package/dist/host-modules/ics.d.ts.map +1 -0
  933. package/dist/host-modules/ics.js +35 -0
  934. package/dist/host-modules/ics.js.map +1 -0
  935. package/dist/host-modules/limits.d.ts +41 -0
  936. package/dist/host-modules/limits.d.ts.map +1 -0
  937. package/dist/host-modules/limits.js +76 -0
  938. package/dist/host-modules/limits.js.map +1 -0
  939. package/dist/host-modules/mammoth.d.ts +11 -0
  940. package/dist/host-modules/mammoth.d.ts.map +1 -0
  941. package/dist/host-modules/mammoth.js +29 -0
  942. package/dist/host-modules/mammoth.js.map +1 -0
  943. package/dist/host-modules/notion.d.ts +45 -0
  944. package/dist/host-modules/notion.d.ts.map +1 -0
  945. package/dist/host-modules/notion.js +128 -0
  946. package/dist/host-modules/notion.js.map +1 -0
  947. package/dist/host-modules/ocr.d.ts +25 -0
  948. package/dist/host-modules/ocr.d.ts.map +1 -0
  949. package/dist/host-modules/ocr.js +74 -0
  950. package/dist/host-modules/ocr.js.map +1 -0
  951. package/dist/host-modules/pdf.d.ts +21 -0
  952. package/dist/host-modules/pdf.d.ts.map +1 -0
  953. package/dist/host-modules/pdf.js +53 -0
  954. package/dist/host-modules/pdf.js.map +1 -0
  955. package/dist/host-modules/pdflib.d.ts +17 -0
  956. package/dist/host-modules/pdflib.d.ts.map +1 -0
  957. package/dist/host-modules/pdflib.js +138 -0
  958. package/dist/host-modules/pdflib.js.map +1 -0
  959. package/dist/host-modules/pptx.d.ts +19 -0
  960. package/dist/host-modules/pptx.d.ts.map +1 -0
  961. package/dist/host-modules/pptx.js +67 -0
  962. package/dist/host-modules/pptx.js.map +1 -0
  963. package/dist/host-modules/pptxgen.d.ts +13 -0
  964. package/dist/host-modules/pptxgen.d.ts.map +1 -0
  965. package/dist/host-modules/pptxgen.js +98 -0
  966. package/dist/host-modules/pptxgen.js.map +1 -0
  967. package/dist/host-modules/prepared-request.d.ts +41 -0
  968. package/dist/host-modules/prepared-request.d.ts.map +1 -0
  969. package/dist/host-modules/prepared-request.js +104 -0
  970. package/dist/host-modules/prepared-request.js.map +1 -0
  971. package/dist/host-modules/registry.d.ts +31 -0
  972. package/dist/host-modules/registry.d.ts.map +1 -0
  973. package/dist/host-modules/registry.js +193 -0
  974. package/dist/host-modules/registry.js.map +1 -0
  975. package/dist/host-modules/subtitle.d.ts +15 -0
  976. package/dist/host-modules/subtitle.d.ts.map +1 -0
  977. package/dist/host-modules/subtitle.js +45 -0
  978. package/dist/host-modules/subtitle.js.map +1 -0
  979. package/dist/host-modules/supabase.d.ts +42 -0
  980. package/dist/host-modules/supabase.d.ts.map +1 -0
  981. package/dist/host-modules/supabase.js +141 -0
  982. package/dist/host-modules/supabase.js.map +1 -0
  983. package/dist/host-modules/tfjs.d.ts +42 -0
  984. package/dist/host-modules/tfjs.d.ts.map +1 -0
  985. package/dist/host-modules/tfjs.js +186 -0
  986. package/dist/host-modules/tfjs.js.map +1 -0
  987. package/dist/host-modules/tokens.d.ts +17 -0
  988. package/dist/host-modules/tokens.d.ts.map +1 -0
  989. package/dist/host-modules/tokens.js +74 -0
  990. package/dist/host-modules/tokens.js.map +1 -0
  991. package/dist/host-modules/twilio.d.ts +34 -0
  992. package/dist/host-modules/twilio.d.ts.map +1 -0
  993. package/dist/host-modules/twilio.js +67 -0
  994. package/dist/host-modules/twilio.js.map +1 -0
  995. package/dist/host-modules/xlsx.d.ts +26 -0
  996. package/dist/host-modules/xlsx.d.ts.map +1 -0
  997. package/dist/host-modules/xlsx.js +323 -0
  998. package/dist/host-modules/xlsx.js.map +1 -0
  999. package/dist/host-modules/xml.d.ts +23 -0
  1000. package/dist/host-modules/xml.d.ts.map +1 -0
  1001. package/dist/host-modules/xml.js +38 -0
  1002. package/dist/host-modules/xml.js.map +1 -0
  1003. package/dist/host-modules/zip.d.ts +24 -0
  1004. package/dist/host-modules/zip.d.ts.map +1 -0
  1005. package/dist/host-modules/zip.js +70 -0
  1006. package/dist/host-modules/zip.js.map +1 -0
  1007. package/dist/index.d.ts +208 -60
  1008. package/dist/index.d.ts.map +1 -1
  1009. package/dist/index.js +163 -60
  1010. package/dist/index.js.map +1 -1
  1011. package/dist/js-sandbox-worker/engine.d.ts +4 -0
  1012. package/dist/js-sandbox-worker/engine.d.ts.map +1 -0
  1013. package/dist/js-sandbox-worker/engine.js +45 -0
  1014. package/dist/js-sandbox-worker/engine.js.map +1 -0
  1015. package/dist/js-sandbox-worker/host.d.ts +136 -0
  1016. package/dist/js-sandbox-worker/host.d.ts.map +1 -0
  1017. package/dist/js-sandbox-worker/host.js +482 -0
  1018. package/dist/js-sandbox-worker/host.js.map +1 -0
  1019. package/dist/js-sandbox-worker/interpreter.d.ts +276 -0
  1020. package/dist/js-sandbox-worker/interpreter.d.ts.map +1 -0
  1021. package/dist/js-sandbox-worker/interpreter.js +1293 -0
  1022. package/dist/js-sandbox-worker/interpreter.js.map +1 -0
  1023. package/dist/js-sandbox-worker/protocol.d.ts +168 -0
  1024. package/dist/js-sandbox-worker/protocol.d.ts.map +1 -0
  1025. package/dist/js-sandbox-worker/protocol.js +217 -0
  1026. package/dist/js-sandbox-worker/protocol.js.map +1 -0
  1027. package/dist/js-sandbox-worker/worker-entry.d.ts +26 -0
  1028. package/dist/js-sandbox-worker/worker-entry.d.ts.map +1 -0
  1029. package/dist/js-sandbox-worker/worker-entry.js +308 -0
  1030. package/dist/js-sandbox-worker/worker-entry.js.map +1 -0
  1031. package/dist/js-sandbox.d.ts +457 -15
  1032. package/dist/js-sandbox.d.ts.map +1 -1
  1033. package/dist/js-sandbox.js +2008 -311
  1034. package/dist/js-sandbox.js.map +1 -1
  1035. package/dist/js-script-app-runner.d.ts +11 -0
  1036. package/dist/js-script-app-runner.d.ts.map +1 -0
  1037. package/dist/js-script-app-runner.js +54 -0
  1038. package/dist/js-script-app-runner.js.map +1 -0
  1039. package/dist/js-script-sandbox.d.ts +27 -0
  1040. package/dist/js-script-sandbox.d.ts.map +1 -0
  1041. package/dist/js-script-sandbox.js +36 -0
  1042. package/dist/js-script-sandbox.js.map +1 -0
  1043. package/dist/jtbd/friction.d.ts +26 -0
  1044. package/dist/jtbd/friction.d.ts.map +1 -0
  1045. package/dist/jtbd/friction.js +169 -0
  1046. package/dist/jtbd/friction.js.map +1 -0
  1047. package/dist/jtbd/index.d.ts +6 -0
  1048. package/dist/jtbd/index.d.ts.map +1 -0
  1049. package/dist/jtbd/index.js +6 -0
  1050. package/dist/jtbd/index.js.map +1 -0
  1051. package/dist/jtbd/optimize.d.ts +71 -0
  1052. package/dist/jtbd/optimize.d.ts.map +1 -0
  1053. package/dist/jtbd/optimize.js +176 -0
  1054. package/dist/jtbd/optimize.js.map +1 -0
  1055. package/dist/jtbd/registry.d.ts +29 -0
  1056. package/dist/jtbd/registry.d.ts.map +1 -0
  1057. package/dist/jtbd/registry.js +451 -0
  1058. package/dist/jtbd/registry.js.map +1 -0
  1059. package/dist/jtbd/run.d.ts +70 -0
  1060. package/dist/jtbd/run.d.ts.map +1 -0
  1061. package/dist/jtbd/run.js +177 -0
  1062. package/dist/jtbd/run.js.map +1 -0
  1063. package/dist/jtbd/types.d.ts +141 -0
  1064. package/dist/jtbd/types.d.ts.map +1 -0
  1065. package/dist/jtbd/types.js +25 -0
  1066. package/dist/jtbd/types.js.map +1 -0
  1067. package/dist/model-prompting-skills.d.ts +45 -0
  1068. package/dist/model-prompting-skills.d.ts.map +1 -0
  1069. package/dist/model-prompting-skills.js +116 -0
  1070. package/dist/model-prompting-skills.js.map +1 -0
  1071. package/dist/network-guard.d.ts +50 -0
  1072. package/dist/network-guard.d.ts.map +1 -0
  1073. package/dist/network-guard.js +106 -0
  1074. package/dist/network-guard.js.map +1 -0
  1075. package/dist/normalize-model-properties.d.ts +26 -0
  1076. package/dist/normalize-model-properties.d.ts.map +1 -0
  1077. package/dist/normalize-model-properties.js +58 -0
  1078. package/dist/normalize-model-properties.js.map +1 -0
  1079. package/dist/output-format.d.ts +5 -1
  1080. package/dist/output-format.d.ts.map +1 -1
  1081. package/dist/output-format.js.map +1 -1
  1082. package/dist/parallel-task-executor.d.ts +68 -37
  1083. package/dist/parallel-task-executor.d.ts.map +1 -1
  1084. package/dist/parallel-task-executor.js +234 -203
  1085. package/dist/parallel-task-executor.js.map +1 -1
  1086. package/dist/prompts/background-subtask-prompt.d.ts +14 -0
  1087. package/dist/prompts/background-subtask-prompt.d.ts.map +1 -0
  1088. package/dist/prompts/background-subtask-prompt.js +64 -0
  1089. package/dist/prompts/background-subtask-prompt.js.map +1 -0
  1090. package/dist/prompts/product-knowledge.d.ts +3 -0
  1091. package/dist/prompts/product-knowledge.d.ts.map +1 -0
  1092. package/dist/prompts/product-knowledge.js +120 -0
  1093. package/dist/prompts/product-knowledge.js.map +1 -0
  1094. package/dist/prompts/read-only-search-prompt.d.ts +33 -0
  1095. package/dist/prompts/read-only-search-prompt.d.ts.map +1 -0
  1096. package/dist/prompts/read-only-search-prompt.js +109 -0
  1097. package/dist/prompts/read-only-search-prompt.js.map +1 -0
  1098. package/dist/prompts/sandbox-pack-catalog.d.ts +23 -0
  1099. package/dist/prompts/sandbox-pack-catalog.d.ts.map +1 -0
  1100. package/dist/prompts/sandbox-pack-catalog.js +40 -0
  1101. package/dist/prompts/sandbox-pack-catalog.js.map +1 -0
  1102. package/dist/prompts/security-monitor-prompt.d.ts +32 -0
  1103. package/dist/prompts/security-monitor-prompt.d.ts.map +1 -0
  1104. package/dist/prompts/security-monitor-prompt.js +99 -0
  1105. package/dist/prompts/security-monitor-prompt.js.map +1 -0
  1106. package/dist/prompts/workflow-authoring-knowledge.d.ts +77 -0
  1107. package/dist/prompts/workflow-authoring-knowledge.d.ts.map +1 -0
  1108. package/dist/prompts/workflow-authoring-knowledge.js +319 -0
  1109. package/dist/prompts/workflow-authoring-knowledge.js.map +1 -0
  1110. package/dist/run-policy.d.ts +25 -0
  1111. package/dist/run-policy.d.ts.map +1 -0
  1112. package/dist/run-policy.js +54 -0
  1113. package/dist/run-policy.js.map +1 -0
  1114. package/dist/sandbox-av-media.d.ts +33 -0
  1115. package/dist/sandbox-av-media.d.ts.map +1 -0
  1116. package/dist/sandbox-av-media.js +666 -0
  1117. package/dist/sandbox-av-media.js.map +1 -0
  1118. package/dist/sandbox-bootstrap-modules.d.ts +54 -0
  1119. package/dist/sandbox-bootstrap-modules.d.ts.map +1 -0
  1120. package/dist/sandbox-bootstrap-modules.js +104 -0
  1121. package/dist/sandbox-bootstrap-modules.js.map +1 -0
  1122. package/dist/sandbox-bytes.d.ts +43 -0
  1123. package/dist/sandbox-bytes.d.ts.map +1 -0
  1124. package/dist/sandbox-bytes.js +61 -0
  1125. package/dist/sandbox-bytes.js.map +1 -0
  1126. package/dist/sandbox-canvas-api.d.ts +30 -0
  1127. package/dist/sandbox-canvas-api.d.ts.map +1 -0
  1128. package/dist/sandbox-canvas-api.js +81 -0
  1129. package/dist/sandbox-canvas-api.js.map +1 -0
  1130. package/dist/sandbox-constants.d.ts +5 -0
  1131. package/dist/sandbox-constants.d.ts.map +1 -0
  1132. package/dist/sandbox-constants.js +13 -0
  1133. package/dist/sandbox-constants.js.map +1 -0
  1134. package/dist/sandbox-json-transport.d.ts +107 -0
  1135. package/dist/sandbox-json-transport.d.ts.map +1 -0
  1136. package/dist/sandbox-json-transport.js +324 -0
  1137. package/dist/sandbox-json-transport.js.map +1 -0
  1138. package/dist/sandbox-media-handle.d.ts +78 -0
  1139. package/dist/sandbox-media-handle.d.ts.map +1 -0
  1140. package/dist/sandbox-media-handle.js +114 -0
  1141. package/dist/sandbox-media-handle.js.map +1 -0
  1142. package/dist/sandbox-media-ref.d.ts +134 -0
  1143. package/dist/sandbox-media-ref.d.ts.map +1 -0
  1144. package/dist/sandbox-media-ref.js +442 -0
  1145. package/dist/sandbox-media-ref.js.map +1 -0
  1146. package/dist/sandbox-media.d.ts +177 -0
  1147. package/dist/sandbox-media.d.ts.map +1 -0
  1148. package/dist/sandbox-media.js +963 -0
  1149. package/dist/sandbox-media.js.map +1 -0
  1150. package/dist/sandbox-module-fixtures.d.ts +445 -0
  1151. package/dist/sandbox-module-fixtures.d.ts.map +1 -0
  1152. package/dist/sandbox-module-fixtures.js +214 -0
  1153. package/dist/sandbox-module-fixtures.js.map +1 -0
  1154. package/dist/sandbox-pack-resolution.d.ts +21 -0
  1155. package/dist/sandbox-pack-resolution.d.ts.map +1 -0
  1156. package/dist/sandbox-pack-resolution.js +42 -0
  1157. package/dist/sandbox-pack-resolution.js.map +1 -0
  1158. package/dist/sandbox-toolbelt.d.ts +15 -0
  1159. package/dist/sandbox-toolbelt.d.ts.map +1 -0
  1160. package/dist/sandbox-toolbelt.js +70 -0
  1161. package/dist/sandbox-toolbelt.js.map +1 -0
  1162. package/dist/security-monitor.d.ts +89 -0
  1163. package/dist/security-monitor.d.ts.map +1 -0
  1164. package/dist/security-monitor.js +307 -0
  1165. package/dist/security-monitor.js.map +1 -0
  1166. package/dist/serpapi/catalog.d.ts +101 -0
  1167. package/dist/serpapi/catalog.d.ts.map +1 -0
  1168. package/dist/serpapi/catalog.js +246 -0
  1169. package/dist/serpapi/catalog.js.map +1 -0
  1170. package/dist/serpapi/client.d.ts +81 -0
  1171. package/dist/serpapi/client.d.ts.map +1 -0
  1172. package/dist/serpapi/client.js +228 -0
  1173. package/dist/serpapi/client.js.map +1 -0
  1174. package/dist/serpapi/errors.d.ts +49 -0
  1175. package/dist/serpapi/errors.d.ts.map +1 -0
  1176. package/dist/serpapi/errors.js +64 -0
  1177. package/dist/serpapi/errors.js.map +1 -0
  1178. package/dist/serpapi/normalize.d.ts +58 -0
  1179. package/dist/serpapi/normalize.d.ts.map +1 -0
  1180. package/dist/serpapi/normalize.js +140 -0
  1181. package/dist/serpapi/normalize.js.map +1 -0
  1182. package/dist/skill-prompt.d.ts +37 -0
  1183. package/dist/skill-prompt.d.ts.map +1 -0
  1184. package/dist/skill-prompt.js +72 -0
  1185. package/dist/skill-prompt.js.map +1 -0
  1186. package/dist/step-executor.d.ts +90 -77
  1187. package/dist/step-executor.d.ts.map +1 -1
  1188. package/dist/step-executor.js +384 -690
  1189. package/dist/step-executor.js.map +1 -1
  1190. package/dist/subagent.d.ts +275 -0
  1191. package/dist/subagent.d.ts.map +1 -0
  1192. package/dist/subagent.js +444 -0
  1193. package/dist/subagent.js.map +1 -0
  1194. package/dist/supervisor/prompt.d.ts +12 -0
  1195. package/dist/supervisor/prompt.d.ts.map +1 -0
  1196. package/dist/supervisor/prompt.js +51 -0
  1197. package/dist/supervisor/prompt.js.map +1 -0
  1198. package/dist/supervisor/supervisor-agent.d.ts +72 -0
  1199. package/dist/supervisor/supervisor-agent.d.ts.map +1 -0
  1200. package/dist/supervisor/supervisor-agent.js +185 -0
  1201. package/dist/supervisor/supervisor-agent.js.map +1 -0
  1202. package/dist/supervisor/tools.d.ts +56 -0
  1203. package/dist/supervisor/tools.d.ts.map +1 -0
  1204. package/dist/supervisor/tools.js +83 -0
  1205. package/dist/supervisor/tools.js.map +1 -0
  1206. package/dist/supervisor/verdict-schema.d.ts +18 -0
  1207. package/dist/supervisor/verdict-schema.d.ts.map +1 -0
  1208. package/dist/supervisor/verdict-schema.js +58 -0
  1209. package/dist/supervisor/verdict-schema.js.map +1 -0
  1210. package/dist/system-skills.d.ts +74 -0
  1211. package/dist/system-skills.d.ts.map +1 -0
  1212. package/dist/system-skills.js +168 -0
  1213. package/dist/system-skills.js.map +1 -0
  1214. package/dist/task-executor.d.ts +90 -40
  1215. package/dist/task-executor.d.ts.map +1 -1
  1216. package/dist/task-executor.js +259 -282
  1217. package/dist/task-executor.js.map +1 -1
  1218. package/dist/task-planner.d.ts +18 -12
  1219. package/dist/task-planner.d.ts.map +1 -1
  1220. package/dist/task-planner.js +342 -328
  1221. package/dist/task-planner.js.map +1 -1
  1222. package/dist/timeline-capture.d.ts +21 -0
  1223. package/dist/timeline-capture.d.ts.map +1 -0
  1224. package/dist/timeline-capture.js +564 -0
  1225. package/dist/timeline-capture.js.map +1 -0
  1226. package/dist/timeline-code-bake.d.ts +75 -0
  1227. package/dist/timeline-code-bake.d.ts.map +1 -0
  1228. package/dist/timeline-code-bake.js +327 -0
  1229. package/dist/timeline-code-bake.js.map +1 -0
  1230. package/dist/timeline-preview/compare.d.ts +27 -0
  1231. package/dist/timeline-preview/compare.d.ts.map +1 -0
  1232. package/dist/timeline-preview/compare.js +71 -0
  1233. package/dist/timeline-preview/compare.js.map +1 -0
  1234. package/dist/timeline-preview/frames.d.ts +193 -0
  1235. package/dist/timeline-preview/frames.d.ts.map +1 -0
  1236. package/dist/timeline-preview/frames.js +731 -0
  1237. package/dist/timeline-preview/frames.js.map +1 -0
  1238. package/dist/timeline-preview/model3d.d.ts +67 -0
  1239. package/dist/timeline-preview/model3d.d.ts.map +1 -0
  1240. package/dist/timeline-preview/model3d.js +165 -0
  1241. package/dist/timeline-preview/model3d.js.map +1 -0
  1242. package/dist/timeline-preview/rasterize.d.ts +33 -0
  1243. package/dist/timeline-preview/rasterize.d.ts.map +1 -0
  1244. package/dist/timeline-preview/rasterize.js +83 -0
  1245. package/dist/timeline-preview/rasterize.js.map +1 -0
  1246. package/dist/timeline-preview/sheet.d.ts +38 -0
  1247. package/dist/timeline-preview/sheet.d.ts.map +1 -0
  1248. package/dist/timeline-preview/sheet.js +72 -0
  1249. package/dist/timeline-preview/sheet.js.map +1 -0
  1250. package/dist/tools/asset-persist.d.ts +29 -0
  1251. package/dist/tools/asset-persist.d.ts.map +1 -0
  1252. package/dist/tools/asset-persist.js +78 -0
  1253. package/dist/tools/asset-persist.js.map +1 -0
  1254. package/dist/tools/base-tool.d.ts +53 -5
  1255. package/dist/tools/base-tool.d.ts.map +1 -1
  1256. package/dist/tools/base-tool.js +180 -3
  1257. package/dist/tools/base-tool.js.map +1 -1
  1258. package/dist/tools/binary-output.d.ts +54 -0
  1259. package/dist/tools/binary-output.d.ts.map +1 -0
  1260. package/dist/tools/binary-output.js +127 -0
  1261. package/dist/tools/binary-output.js.map +1 -0
  1262. package/dist/tools/browser-tools.d.ts +5 -29
  1263. package/dist/tools/browser-tools.d.ts.map +1 -1
  1264. package/dist/tools/browser-tools.js +5 -205
  1265. package/dist/tools/browser-tools.js.map +1 -1
  1266. package/dist/tools/builtin-tools.d.ts +52 -0
  1267. package/dist/tools/builtin-tools.d.ts.map +1 -0
  1268. package/dist/tools/builtin-tools.js +289 -0
  1269. package/dist/tools/builtin-tools.js.map +1 -0
  1270. package/dist/tools/control-tool.d.ts +2 -5
  1271. package/dist/tools/control-tool.d.ts.map +1 -1
  1272. package/dist/tools/control-tool.js +18 -15
  1273. package/dist/tools/control-tool.js.map +1 -1
  1274. package/dist/tools/dataseo-tools.d.ts +34 -32
  1275. package/dist/tools/dataseo-tools.d.ts.map +1 -1
  1276. package/dist/tools/dataseo-tools.js +148 -233
  1277. package/dist/tools/dataseo-tools.js.map +1 -1
  1278. package/dist/tools/external-capability-tools.d.ts +36 -0
  1279. package/dist/tools/external-capability-tools.d.ts.map +1 -0
  1280. package/dist/tools/external-capability-tools.js +41 -0
  1281. package/dist/tools/external-capability-tools.js.map +1 -0
  1282. package/dist/tools/external-mcp-tools.d.ts +139 -0
  1283. package/dist/tools/external-mcp-tools.d.ts.map +1 -0
  1284. package/dist/tools/external-mcp-tools.js +552 -0
  1285. package/dist/tools/external-mcp-tools.js.map +1 -0
  1286. package/dist/tools/finish-step-tool.d.ts +1 -1
  1287. package/dist/tools/finish-step-tool.d.ts.map +1 -1
  1288. package/dist/tools/finish-step-tool.js +3 -3
  1289. package/dist/tools/finish-step-tool.js.map +1 -1
  1290. package/dist/tools/google-tools.d.ts +28 -39
  1291. package/dist/tools/google-tools.d.ts.map +1 -1
  1292. package/dist/tools/google-tools.js +51 -164
  1293. package/dist/tools/google-tools.js.map +1 -1
  1294. package/dist/tools/google-workspace-tools.d.ts +23 -0
  1295. package/dist/tools/google-workspace-tools.d.ts.map +1 -0
  1296. package/dist/tools/google-workspace-tools.js +26 -0
  1297. package/dist/tools/google-workspace-tools.js.map +1 -0
  1298. package/dist/tools/graph-validation-registry.d.ts +33 -0
  1299. package/dist/tools/graph-validation-registry.d.ts.map +1 -0
  1300. package/dist/tools/graph-validation-registry.js +54 -0
  1301. package/dist/tools/graph-validation-registry.js.map +1 -0
  1302. package/dist/tools/http-tools.d.ts +5 -53
  1303. package/dist/tools/http-tools.d.ts.map +1 -1
  1304. package/dist/tools/http-tools.js +5 -177
  1305. package/dist/tools/http-tools.js.map +1 -1
  1306. package/dist/tools/image-injection.d.ts +51 -0
  1307. package/dist/tools/image-injection.d.ts.map +1 -0
  1308. package/dist/tools/image-injection.js +85 -0
  1309. package/dist/tools/image-injection.js.map +1 -0
  1310. package/dist/tools/mcp-tool-support.d.ts +204 -0
  1311. package/dist/tools/mcp-tool-support.d.ts.map +1 -0
  1312. package/dist/tools/mcp-tool-support.js +537 -0
  1313. package/dist/tools/mcp-tool-support.js.map +1 -0
  1314. package/dist/tools/mcp-tools.d.ts +106 -390
  1315. package/dist/tools/mcp-tools.d.ts.map +1 -1
  1316. package/dist/tools/mcp-tools.js +132 -601
  1317. package/dist/tools/mcp-tools.js.map +1 -1
  1318. package/dist/tools/media-tools.d.ts +9 -272
  1319. package/dist/tools/media-tools.d.ts.map +1 -1
  1320. package/dist/tools/media-tools.js +11 -676
  1321. package/dist/tools/media-tools.js.map +1 -1
  1322. package/dist/tools/memory-tools.d.ts +36 -0
  1323. package/dist/tools/memory-tools.d.ts.map +1 -0
  1324. package/dist/tools/memory-tools.js +52 -0
  1325. package/dist/tools/memory-tools.js.map +1 -0
  1326. package/dist/tools/openai-tools.d.ts +28 -68
  1327. package/dist/tools/openai-tools.d.ts.map +1 -1
  1328. package/dist/tools/openai-tools.js +51 -181
  1329. package/dist/tools/openai-tools.js.map +1 -1
  1330. package/dist/tools/plan-builder-tools.d.ts +141 -7
  1331. package/dist/tools/plan-builder-tools.d.ts.map +1 -1
  1332. package/dist/tools/plan-builder-tools.js +159 -86
  1333. package/dist/tools/plan-builder-tools.js.map +1 -1
  1334. package/dist/tools/run-search-tool.d.ts +82 -0
  1335. package/dist/tools/run-search-tool.d.ts.map +1 -0
  1336. package/dist/tools/run-search-tool.js +121 -0
  1337. package/dist/tools/run-search-tool.js.map +1 -0
  1338. package/dist/tools/run-subtask-tool.d.ts +49 -0
  1339. package/dist/tools/run-subtask-tool.d.ts.map +1 -0
  1340. package/dist/tools/run-subtask-tool.js +88 -0
  1341. package/dist/tools/run-subtask-tool.js.map +1 -0
  1342. package/dist/tools/search-tools.d.ts +5 -36
  1343. package/dist/tools/search-tools.d.ts.map +1 -1
  1344. package/dist/tools/search-tools.js +5 -215
  1345. package/dist/tools/search-tools.js.map +1 -1
  1346. package/dist/tools/serp-providers/apify-provider.d.ts +18 -0
  1347. package/dist/tools/serp-providers/apify-provider.d.ts.map +1 -0
  1348. package/dist/tools/serp-providers/apify-provider.js +93 -0
  1349. package/dist/tools/serp-providers/apify-provider.js.map +1 -0
  1350. package/dist/tools/serp-providers/brave-provider.d.ts +34 -0
  1351. package/dist/tools/serp-providers/brave-provider.d.ts.map +1 -0
  1352. package/dist/tools/serp-providers/brave-provider.js +86 -0
  1353. package/dist/tools/serp-providers/brave-provider.js.map +1 -0
  1354. package/dist/tools/serp-providers/dataforseo-provider.d.ts +14 -1
  1355. package/dist/tools/serp-providers/dataforseo-provider.d.ts.map +1 -1
  1356. package/dist/tools/serp-providers/dataforseo-provider.js +0 -9
  1357. package/dist/tools/serp-providers/dataforseo-provider.js.map +1 -1
  1358. package/dist/tools/serp-providers/gemini-provider.d.ts +45 -0
  1359. package/dist/tools/serp-providers/gemini-provider.d.ts.map +1 -0
  1360. package/dist/tools/serp-providers/gemini-provider.js +148 -0
  1361. package/dist/tools/serp-providers/gemini-provider.js.map +1 -0
  1362. package/dist/tools/serp-providers/index.d.ts +61 -0
  1363. package/dist/tools/serp-providers/index.d.ts.map +1 -1
  1364. package/dist/tools/serp-providers/index.js +119 -3
  1365. package/dist/tools/serp-providers/index.js.map +1 -1
  1366. package/dist/tools/serp-providers/openai-provider.d.ts +58 -0
  1367. package/dist/tools/serp-providers/openai-provider.d.ts.map +1 -0
  1368. package/dist/tools/serp-providers/openai-provider.js +113 -0
  1369. package/dist/tools/serp-providers/openai-provider.js.map +1 -0
  1370. package/dist/tools/serp-providers/serpapi-provider.d.ts +9 -5
  1371. package/dist/tools/serp-providers/serpapi-provider.d.ts.map +1 -1
  1372. package/dist/tools/serp-providers/serpapi-provider.js +26 -44
  1373. package/dist/tools/serp-providers/serpapi-provider.js.map +1 -1
  1374. package/dist/tools/serp-tool-factory.d.ts +27 -0
  1375. package/dist/tools/serp-tool-factory.d.ts.map +1 -0
  1376. package/dist/tools/serp-tool-factory.js +56 -0
  1377. package/dist/tools/serp-tool-factory.js.map +1 -0
  1378. package/dist/tools/shared-tools.d.ts +33 -0
  1379. package/dist/tools/shared-tools.d.ts.map +1 -0
  1380. package/dist/tools/shared-tools.js +39 -0
  1381. package/dist/tools/shared-tools.js.map +1 -0
  1382. package/dist/tools/start-subtask-tool.d.ts +51 -0
  1383. package/dist/tools/start-subtask-tool.d.ts.map +1 -0
  1384. package/dist/tools/start-subtask-tool.js +189 -0
  1385. package/dist/tools/start-subtask-tool.js.map +1 -0
  1386. package/dist/tools/submit-code-tool.d.ts +159 -0
  1387. package/dist/tools/submit-code-tool.d.ts.map +1 -0
  1388. package/dist/tools/submit-code-tool.js +209 -0
  1389. package/dist/tools/submit-code-tool.js.map +1 -0
  1390. package/dist/tools/subtask-fields.d.ts +11 -0
  1391. package/dist/tools/subtask-fields.d.ts.map +1 -0
  1392. package/dist/tools/subtask-fields.js +11 -0
  1393. package/dist/tools/subtask-fields.js.map +1 -0
  1394. package/dist/tools/todo-tools.d.ts +15 -0
  1395. package/dist/tools/todo-tools.d.ts.map +1 -0
  1396. package/dist/tools/todo-tools.js +15 -0
  1397. package/dist/tools/todo-tools.js.map +1 -0
  1398. package/dist/tools/tool-permissions.d.ts +40 -0
  1399. package/dist/tools/tool-permissions.d.ts.map +1 -0
  1400. package/dist/tools/tool-permissions.js +52 -0
  1401. package/dist/tools/tool-permissions.js.map +1 -0
  1402. package/dist/tools/tool-search.d.ts +39 -0
  1403. package/dist/tools/tool-search.d.ts.map +1 -0
  1404. package/dist/tools/tool-search.js +108 -0
  1405. package/dist/tools/tool-search.js.map +1 -0
  1406. package/dist/tools/vector-tool-support.d.ts +15 -0
  1407. package/dist/tools/vector-tool-support.d.ts.map +1 -0
  1408. package/dist/tools/vector-tool-support.js +133 -0
  1409. package/dist/tools/vector-tool-support.js.map +1 -0
  1410. package/dist/tools/vector-tools.d.ts +13 -220
  1411. package/dist/tools/vector-tools.d.ts.map +1 -1
  1412. package/dist/tools/vector-tools.js +7 -578
  1413. package/dist/tools/vector-tools.js.map +1 -1
  1414. package/dist/tools/wait-subtasks-tool.d.ts +27 -0
  1415. package/dist/tools/wait-subtasks-tool.d.ts.map +1 -0
  1416. package/dist/tools/wait-subtasks-tool.js +66 -0
  1417. package/dist/tools/wait-subtasks-tool.js.map +1 -0
  1418. package/dist/types.d.ts +16 -31
  1419. package/dist/types.d.ts.map +1 -1
  1420. package/dist/types.js +8 -1
  1421. package/dist/types.js.map +1 -1
  1422. package/dist/utils/dag-scheduler.d.ts +85 -0
  1423. package/dist/utils/dag-scheduler.d.ts.map +1 -0
  1424. package/dist/utils/dag-scheduler.js +180 -0
  1425. package/dist/utils/dag-scheduler.js.map +1 -0
  1426. package/dist/utils/json-parser.d.ts +32 -1
  1427. package/dist/utils/json-parser.d.ts.map +1 -1
  1428. package/dist/utils/json-parser.js +145 -10
  1429. package/dist/utils/json-parser.js.map +1 -1
  1430. package/dist/utils/json-schema-validate.d.ts +29 -0
  1431. package/dist/utils/json-schema-validate.d.ts.map +1 -0
  1432. package/dist/utils/json-schema-validate.js +228 -0
  1433. package/dist/utils/json-schema-validate.js.map +1 -0
  1434. package/dist/utils/link-abort.d.ts +13 -0
  1435. package/dist/utils/link-abort.d.ts.map +1 -0
  1436. package/dist/utils/link-abort.js +23 -0
  1437. package/dist/utils/link-abort.js.map +1 -0
  1438. package/dist/utils/merge-generators.d.ts +58 -0
  1439. package/dist/utils/merge-generators.d.ts.map +1 -0
  1440. package/dist/utils/merge-generators.js +148 -0
  1441. package/dist/utils/merge-generators.js.map +1 -0
  1442. package/dist/utils/remove-base64-images.d.ts +0 -5
  1443. package/dist/utils/remove-base64-images.d.ts.map +1 -1
  1444. package/dist/utils/remove-base64-images.js.map +1 -1
  1445. package/dist/utils/step-failure.d.ts +20 -0
  1446. package/dist/utils/step-failure.d.ts.map +1 -0
  1447. package/dist/utils/step-failure.js +43 -0
  1448. package/dist/utils/step-failure.js.map +1 -0
  1449. package/dist/utils/think-tags.d.ts +16 -0
  1450. package/dist/utils/think-tags.d.ts.map +1 -0
  1451. package/dist/utils/think-tags.js +23 -0
  1452. package/dist/utils/think-tags.js.map +1 -0
  1453. package/dist/utils/type-guards.d.ts +26 -0
  1454. package/dist/utils/type-guards.d.ts.map +1 -0
  1455. package/dist/utils/type-guards.js +44 -0
  1456. package/dist/utils/type-guards.js.map +1 -0
  1457. package/dist/utils/ui-event-buffer.d.ts +18 -0
  1458. package/dist/utils/ui-event-buffer.d.ts.map +1 -0
  1459. package/dist/utils/ui-event-buffer.js +18 -0
  1460. package/dist/utils/ui-event-buffer.js.map +1 -0
  1461. package/dist/utils/wrap-generators-parallel.d.ts +0 -5
  1462. package/dist/utils/wrap-generators-parallel.d.ts.map +1 -1
  1463. package/dist/utils/wrap-generators-parallel.js +3 -6
  1464. package/dist/utils/wrap-generators-parallel.js.map +1 -1
  1465. package/dist/wasm-sandbox/host.d.ts +106 -0
  1466. package/dist/wasm-sandbox/host.d.ts.map +1 -0
  1467. package/dist/wasm-sandbox/host.js +409 -0
  1468. package/dist/wasm-sandbox/host.js.map +1 -0
  1469. package/dist/wasm-sandbox/workers.d.ts +43 -0
  1470. package/dist/wasm-sandbox/workers.d.ts.map +1 -0
  1471. package/dist/wasm-sandbox/workers.js +150 -0
  1472. package/dist/wasm-sandbox/workers.js.map +1 -0
  1473. package/dist/workspace-paths.d.ts +40 -0
  1474. package/dist/workspace-paths.d.ts.map +1 -0
  1475. package/dist/workspace-paths.js +102 -0
  1476. package/dist/workspace-paths.js.map +1 -0
  1477. package/dist/yt-dlp-gate.d.ts +19 -0
  1478. package/dist/yt-dlp-gate.d.ts.map +1 -0
  1479. package/dist/yt-dlp-gate.js +22 -0
  1480. package/dist/yt-dlp-gate.js.map +1 -0
  1481. package/package.json +114 -14
  1482. package/dist/agent-executor.d.ts +0 -62
  1483. package/dist/agent-executor.d.ts.map +0 -1
  1484. package/dist/agent-executor.js +0 -324
  1485. package/dist/agent-executor.js.map +0 -1
  1486. package/dist/agent-step-executor.d.ts +0 -28
  1487. package/dist/agent-step-executor.d.ts.map +0 -1
  1488. package/dist/agent-step-executor.js +0 -99
  1489. package/dist/agent-step-executor.js.map +0 -1
  1490. package/dist/agent-workflow-runner.d.ts +0 -31
  1491. package/dist/agent-workflow-runner.d.ts.map +0 -1
  1492. package/dist/agent-workflow-runner.js +0 -124
  1493. package/dist/agent-workflow-runner.js.map +0 -1
  1494. package/dist/agent.d.ts +0 -115
  1495. package/dist/agent.d.ts.map +0 -1
  1496. package/dist/agent.js +0 -587
  1497. package/dist/agent.js.map +0 -1
  1498. package/dist/base-agent.d.ts +0 -42
  1499. package/dist/base-agent.d.ts.map +0 -1
  1500. package/dist/base-agent.js +0 -29
  1501. package/dist/base-agent.js.map +0 -1
  1502. package/dist/graph-planner.d.ts +0 -56
  1503. package/dist/graph-planner.d.ts.map +0 -1
  1504. package/dist/graph-planner.js +0 -311
  1505. package/dist/graph-planner.js.map +0 -1
  1506. package/dist/multi-mode-agent.d.ts +0 -86
  1507. package/dist/multi-mode-agent.d.ts.map +0 -1
  1508. package/dist/multi-mode-agent.js +0 -476
  1509. package/dist/multi-mode-agent.js.map +0 -1
  1510. package/dist/prompts/graph-planner-prompt.d.ts +0 -48
  1511. package/dist/prompts/graph-planner-prompt.d.ts.map +0 -1
  1512. package/dist/prompts/graph-planner-prompt.js +0 -180
  1513. package/dist/prompts/graph-planner-prompt.js.map +0 -1
  1514. package/dist/reject-agentic-provider.d.ts +0 -21
  1515. package/dist/reject-agentic-provider.d.ts.map +0 -1
  1516. package/dist/reject-agentic-provider.js +0 -32
  1517. package/dist/reject-agentic-provider.js.map +0 -1
  1518. package/dist/simple-agent.d.ts +0 -29
  1519. package/dist/simple-agent.d.ts.map +0 -1
  1520. package/dist/simple-agent.js +0 -54
  1521. package/dist/simple-agent.js.map +0 -1
  1522. package/dist/sub-agent-planner.d.ts +0 -33
  1523. package/dist/sub-agent-planner.d.ts.map +0 -1
  1524. package/dist/sub-agent-planner.js +0 -203
  1525. package/dist/sub-agent-planner.js.map +0 -1
  1526. package/dist/team/db-task-board.d.ts +0 -54
  1527. package/dist/team/db-task-board.d.ts.map +0 -1
  1528. package/dist/team/db-task-board.js +0 -361
  1529. package/dist/team/db-task-board.js.map +0 -1
  1530. package/dist/team/edge-message-bus.d.ts +0 -51
  1531. package/dist/team/edge-message-bus.d.ts.map +0 -1
  1532. package/dist/team/edge-message-bus.js +0 -169
  1533. package/dist/team/edge-message-bus.js.map +0 -1
  1534. package/dist/team/edge-task-board.d.ts +0 -77
  1535. package/dist/team/edge-task-board.d.ts.map +0 -1
  1536. package/dist/team/edge-task-board.js +0 -140
  1537. package/dist/team/edge-task-board.js.map +0 -1
  1538. package/dist/team/index.d.ts +0 -16
  1539. package/dist/team/index.d.ts.map +0 -1
  1540. package/dist/team/index.js +0 -17
  1541. package/dist/team/index.js.map +0 -1
  1542. package/dist/team/message-bus.d.ts +0 -58
  1543. package/dist/team/message-bus.d.ts.map +0 -1
  1544. package/dist/team/message-bus.js +0 -151
  1545. package/dist/team/message-bus.js.map +0 -1
  1546. package/dist/team/task-board.d.ts +0 -106
  1547. package/dist/team/task-board.d.ts.map +0 -1
  1548. package/dist/team/task-board.js +0 -370
  1549. package/dist/team/task-board.js.map +0 -1
  1550. package/dist/team/team-executor.d.ts +0 -72
  1551. package/dist/team/team-executor.d.ts.map +0 -1
  1552. package/dist/team/team-executor.js +0 -466
  1553. package/dist/team/team-executor.js.map +0 -1
  1554. package/dist/team/team-tools.d.ts +0 -252
  1555. package/dist/team/team-tools.d.ts.map +0 -1
  1556. package/dist/team/team-tools.js +0 -412
  1557. package/dist/team/team-tools.js.map +0 -1
  1558. package/dist/team/types.d.ts +0 -198
  1559. package/dist/team/types.d.ts.map +0 -1
  1560. package/dist/team/types.js +0 -8
  1561. package/dist/team/types.js.map +0 -1
  1562. package/dist/tools/add-edge-tool.d.ts +0 -18
  1563. package/dist/tools/add-edge-tool.d.ts.map +0 -1
  1564. package/dist/tools/add-edge-tool.js +0 -92
  1565. package/dist/tools/add-edge-tool.js.map +0 -1
  1566. package/dist/tools/add-node-tool.d.ts +0 -22
  1567. package/dist/tools/add-node-tool.d.ts.map +0 -1
  1568. package/dist/tools/add-node-tool.js +0 -128
  1569. package/dist/tools/add-node-tool.js.map +0 -1
  1570. package/dist/tools/asset-tools.d.ts +0 -58
  1571. package/dist/tools/asset-tools.d.ts.map +0 -1
  1572. package/dist/tools/asset-tools.js +0 -191
  1573. package/dist/tools/asset-tools.js.map +0 -1
  1574. package/dist/tools/calculator-tool.d.ts +0 -24
  1575. package/dist/tools/calculator-tool.d.ts.map +0 -1
  1576. package/dist/tools/calculator-tool.js +0 -64
  1577. package/dist/tools/calculator-tool.js.map +0 -1
  1578. package/dist/tools/claude-code-tools.d.ts +0 -96
  1579. package/dist/tools/claude-code-tools.d.ts.map +0 -1
  1580. package/dist/tools/claude-code-tools.js +0 -463
  1581. package/dist/tools/claude-code-tools.js.map +0 -1
  1582. package/dist/tools/code-tools.d.ts +0 -26
  1583. package/dist/tools/code-tools.d.ts.map +0 -1
  1584. package/dist/tools/code-tools.js +0 -82
  1585. package/dist/tools/code-tools.js.map +0 -1
  1586. package/dist/tools/create-plan-tool.d.ts +0 -29
  1587. package/dist/tools/create-plan-tool.d.ts.map +0 -1
  1588. package/dist/tools/create-plan-tool.js +0 -355
  1589. package/dist/tools/create-plan-tool.js.map +0 -1
  1590. package/dist/tools/create-task-tool.d.ts +0 -28
  1591. package/dist/tools/create-task-tool.d.ts.map +0 -1
  1592. package/dist/tools/create-task-tool.js +0 -254
  1593. package/dist/tools/create-task-tool.js.map +0 -1
  1594. package/dist/tools/email-tools.d.ts +0 -76
  1595. package/dist/tools/email-tools.d.ts.map +0 -1
  1596. package/dist/tools/email-tools.js +0 -259
  1597. package/dist/tools/email-tools.js.map +0 -1
  1598. package/dist/tools/filesystem-tools.d.ts +0 -77
  1599. package/dist/tools/filesystem-tools.d.ts.map +0 -1
  1600. package/dist/tools/filesystem-tools.js +0 -334
  1601. package/dist/tools/filesystem-tools.js.map +0 -1
  1602. package/dist/tools/find-model-tool.d.ts +0 -25
  1603. package/dist/tools/find-model-tool.d.ts.map +0 -1
  1604. package/dist/tools/find-model-tool.js +0 -236
  1605. package/dist/tools/find-model-tool.js.map +0 -1
  1606. package/dist/tools/finish-graph-tool.d.ts +0 -23
  1607. package/dist/tools/finish-graph-tool.d.ts.map +0 -1
  1608. package/dist/tools/finish-graph-tool.js +0 -46
  1609. package/dist/tools/finish-graph-tool.js.map +0 -1
  1610. package/dist/tools/js-code-tool.d.ts +0 -30
  1611. package/dist/tools/js-code-tool.d.ts.map +0 -1
  1612. package/dist/tools/js-code-tool.js +0 -98
  1613. package/dist/tools/js-code-tool.js.map +0 -1
  1614. package/dist/tools/local-get-node-info-tool.d.ts +0 -19
  1615. package/dist/tools/local-get-node-info-tool.d.ts.map +0 -1
  1616. package/dist/tools/local-get-node-info-tool.js +0 -75
  1617. package/dist/tools/local-get-node-info-tool.js.map +0 -1
  1618. package/dist/tools/local-list-nodes-tool.d.ts +0 -19
  1619. package/dist/tools/local-list-nodes-tool.d.ts.map +0 -1
  1620. package/dist/tools/local-list-nodes-tool.js +0 -69
  1621. package/dist/tools/local-list-nodes-tool.js.map +0 -1
  1622. package/dist/tools/local-search-nodes-tool.d.ts +0 -21
  1623. package/dist/tools/local-search-nodes-tool.d.ts.map +0 -1
  1624. package/dist/tools/local-search-nodes-tool.js +0 -111
  1625. package/dist/tools/local-search-nodes-tool.js.map +0 -1
  1626. package/dist/tools/math-tools.d.ts +0 -156
  1627. package/dist/tools/math-tools.d.ts.map +0 -1
  1628. package/dist/tools/math-tools.js +0 -422
  1629. package/dist/tools/math-tools.js.map +0 -1
  1630. package/dist/tools/model-tools.d.ts +0 -25
  1631. package/dist/tools/model-tools.d.ts.map +0 -1
  1632. package/dist/tools/model-tools.js +0 -48
  1633. package/dist/tools/model-tools.js.map +0 -1
  1634. package/dist/tools/pdf-tools.d.ts +0 -152
  1635. package/dist/tools/pdf-tools.d.ts.map +0 -1
  1636. package/dist/tools/pdf-tools.js +0 -339
  1637. package/dist/tools/pdf-tools.js.map +0 -1
  1638. package/dist/tools/tool-registry.d.ts +0 -9
  1639. package/dist/tools/tool-registry.d.ts.map +0 -1
  1640. package/dist/tools/tool-registry.js +0 -17
  1641. package/dist/tools/tool-registry.js.map +0 -1
  1642. package/dist/tools/workspace-tools.d.ts +0 -58
  1643. package/dist/tools/workspace-tools.d.ts.map +0 -1
  1644. package/dist/tools/workspace-tools.js +0 -152
  1645. package/dist/tools/workspace-tools.js.map +0 -1
@@ -0,0 +1,1557 @@
1
+ /**
2
+ * The `workflows` capability module — the pilot namespace.
3
+ *
4
+ * Ten capabilities that used to be ten `Tool` subclasses in
5
+ * `../tools/mcp-tools.ts`: the nine the guest reaches as `nodetool.workflows.*`
6
+ * (`NODETOOL_API_NAMESPACE_TOOLS.workflows`) plus `export_workflow_digraph`,
7
+ * which the design's mapping table folds in here rather than leaving it beside
8
+ * the file tools.
9
+ *
10
+ * Wire names, descriptions and schemas are unchanged: `getAllMcpTools` builds
11
+ * these through `toolFromCapability`, so every consumer — runner, MCP, CLI,
12
+ * evals — sees the surface it saw before.
13
+ *
14
+ * What was a constructor argument is now a field on the run: the example
15
+ * catalog, the node registry, the run environment, the DSL exporter, and the
16
+ * model catalogs. Every heavy dependency (`@nodetool-ai/models`, the execution
17
+ * service, the graph validators, the DSL sandbox) is imported inside the
18
+ * implementation that needs it, so loading this module costs nothing.
19
+ *
20
+ * Design: docs/tool-class-retirement-design.md § "Worked example:
21
+ * `nodetool.workflows`".
22
+ */
23
+ import { NO_EXAMPLES, RUNTIME_MODEL_CATALOGS, annotateEscalatedRun, jobRecord, leftoverWiringHandleError, lightWorkflowList, modelSelectionError, noRegistryError, normalizeWorkflowGraph, outcomeResult, resolveRunEnvironment, summarizeWorkflowGraph, unsetModelSelectionWarning, userIdOf, workflowRecord } from "../tools/mcp-tool-support.js";
24
+ import { PLAN_CORE_NODE_TYPES, checkWorkflowPlan, planNodeShape, planToPlacement, parseWorkflowPlan, refineWorkflowPlan, resolveWorkflowPlan, readEntityMarker, GAME_DESIGNER_SYSTEM_PROMPT, GAME_DESIGN_TOOL_DESCRIPTION, GAME_DESIGN_TOOL_NAME, GAME_INSPIRATION_CHIPS, WORKFLOW_PLANNER_SYSTEM_PROMPT, WORKFLOW_PLAN_TOOL_DESCRIPTION, WORKFLOW_PLAN_TOOL_NAME, buildGameDesignSchema, buildWorkflowPlanSchema, designSourceOf, gameAudioChoice, gameGraphPlacement, parseGameDesign } from "@nodetool-ai/protocol";
25
+ import { gameDesign, readGameSetup, readWorkflowSetup, workflowSetupPlan, writeGameSetup, writeWorkflowSetup } from "@nodetool-ai/protocol/api-schemas/workflows.js";
26
+ import { declareDynamicOutputsInGraph } from "../dynamic-slots.js";
27
+ import { findCapability } from "./registry.js";
28
+ import { REQUEST_SECRET_TOOL_NAME } from "./settings.specs.js";
29
+ import { listWorkflowsSpec, getWorkflowSpec, createWorkflowSpec, updateWorkflowSpec, deleteWorkflowSpec, listWorkflowVersionsSpec, getWorkflowVersionSpec, createWorkflowVersionSpec, restoreWorkflowVersionSpec, deleteWorkflowVersionSpec, setWorkflowAccessSpec, runWorkflowCapabilitySpec, debugWorkflowSpec, resolveWorkflowEscalationSpec, validateWorkflowSpec, startBackgroundJobSpec, getExampleWorkflowSpec, exportWorkflowDigraphSpec, setWorkflowSetupSpec, planWorkflowSpec, updateWorkflowPlanStepSpec, buildWorkflowFromPlanSpec, setGameSetupSpec, designGameSpec, updateGameDesignSpec, buildGameSpec, DEFAULT_VERSION_LIMIT, MAX_VERSION_LIMIT } from "./workflows.specs.js";
30
+ import { isNumber, isObjectLike, isString } from "../utils/type-guards.js";
31
+ import { resolveProjectId } from "./project-scope.js";
32
+ /** The run environment this run can execute a workflow in, or null. */
33
+ function runEnvironmentOf(run) {
34
+ return resolveRunEnvironment(run.workflowEnvironment, run.nodeRegistry);
35
+ }
36
+ async function listUserWorkflows(run, limit) {
37
+ const { Workflow } = await import("@nodetool-ai/models");
38
+ const [workflows, next] = await Workflow.paginate(userIdOf(run.context), {
39
+ limit,
40
+ projectId: run.projectId
41
+ });
42
+ return lightWorkflowList({
43
+ workflows: workflows.map((w) => workflowRecord(w)),
44
+ next: next || null
45
+ });
46
+ }
47
+ async function listExampleWorkflows(run, query, limit) {
48
+ if (!run.examples)
49
+ return NO_EXAMPLES;
50
+ const listOptions = { limit };
51
+ if (query)
52
+ listOptions.query = query;
53
+ return lightWorkflowList({
54
+ workflows: await run.examples.list(listOptions),
55
+ next: null
56
+ });
57
+ }
58
+ const listWorkflows = {
59
+ spec: listWorkflowsSpec,
60
+ impl: async (run, params) => {
61
+ const workflowType = String(params["workflow_type"] ?? "user");
62
+ const query = params["query"];
63
+ const limit = Number(params["limit"] ?? 100);
64
+ if (workflowType === "example") {
65
+ return listExampleWorkflows(run, query, limit);
66
+ }
67
+ if (workflowType === "all") {
68
+ return {
69
+ examples: await listExampleWorkflows(run, query, limit),
70
+ user: await listUserWorkflows(run, limit)
71
+ };
72
+ }
73
+ return listUserWorkflows(run, limit);
74
+ }
75
+ };
76
+ // ---------------------------------------------------------------------------
77
+ // get_workflow
78
+ // ---------------------------------------------------------------------------
79
+ const getWorkflow = {
80
+ spec: getWorkflowSpec,
81
+ impl: async (run, params) => {
82
+ const { Workflow } = await import("@nodetool-ai/models");
83
+ const workflowId = String(params["workflow_id"]);
84
+ const workflow = await Workflow.find(userIdOf(run.context), workflowId);
85
+ if (!workflow)
86
+ return { error: `Workflow ${workflowId} was not found.` };
87
+ if (run.projectId !== undefined && workflow.project_id !== run.projectId) {
88
+ return { error: `Workflow ${workflowId} was not found.` };
89
+ }
90
+ return workflowRecord(workflow);
91
+ }
92
+ };
93
+ const createWorkflow = {
94
+ spec: createWorkflowSpec,
95
+ impl: async (run, params) => {
96
+ const { Project, Workflow } = await import("@nodetool-ai/models");
97
+ const projectId = resolveProjectId(run, params);
98
+ if (projectId !== "default" &&
99
+ !(await Project.findOwned(userIdOf(run.context), projectId))) {
100
+ return { error: "Project not found." };
101
+ }
102
+ // Declare before normalizing, so the handle is on the node the editor,
103
+ // the validator and every later run read. Without a registry this is the
104
+ // identity function and the graph is stored exactly as it arrived.
105
+ const authored = run.nodeRegistry
106
+ ? declareDynamicOutputsInGraph(params["graph"], run.nodeRegistry)
107
+ : params["graph"];
108
+ const graph = normalizeWorkflowGraph(authored);
109
+ const badModels = await modelSelectionError(graph, run.modelCatalogs ?? RUNTIME_MODEL_CATALOGS);
110
+ if (badModels)
111
+ return badModels;
112
+ const leftoverHandles = leftoverWiringHandleError(graph);
113
+ if (leftoverHandles)
114
+ return leftoverHandles;
115
+ const unselected = run.nodeRegistry
116
+ ? unsetModelSelectionWarning(graph, run.nodeRegistry)
117
+ : null;
118
+ const created = (await Workflow.create({
119
+ user_id: userIdOf(run.context),
120
+ name: String(params["name"]),
121
+ description: isString(params["description"]) ? params["description"] : "",
122
+ tags: Array.isArray(params["tags"]) ? params["tags"] : [],
123
+ access: params["access"] === "public" ? "public" : "private",
124
+ graph: graph,
125
+ run_mode: "workflow",
126
+ project_id: projectId
127
+ }));
128
+ return { ...workflowRecord(created), ...unselected };
129
+ }
130
+ };
131
+ /**
132
+ * The one ownership test the three lifecycle capabilities share.
133
+ *
134
+ * `Workflow.find` is deliberately not it: that answers for a public workflow
135
+ * and for one shared with the caller as well, so writing a mutation on top of
136
+ * it would let a run rewrite or publish a workflow it can merely read. Missing
137
+ * and not-yours are one answer, so a caller cannot probe for ids.
138
+ */
139
+ async function findOwnedWorkflow(run, id) {
140
+ const { Workflow } = await import("@nodetool-ai/models");
141
+ const wf = (await Workflow.get(id));
142
+ if (!wf || wf.user_id !== userIdOf(run.context))
143
+ return null;
144
+ if (run.projectId !== undefined && wf.project_id !== run.projectId) {
145
+ return null;
146
+ }
147
+ return wf;
148
+ }
149
+ function notYours(id) {
150
+ return { error: `Workflow ${id} was not found, or it is not yours.` };
151
+ }
152
+ const updateWorkflow = {
153
+ spec: updateWorkflowSpec,
154
+ impl: async (run, params) => {
155
+ const { Workflow } = await import("@nodetool-ai/models");
156
+ const id = String(params["workflow_id"]);
157
+ const existing = await findOwnedWorkflow(run, id);
158
+ if (!existing)
159
+ return notYours(id);
160
+ const fields = {};
161
+ let unselected = null;
162
+ if (params["graph"] !== undefined) {
163
+ // The same three passes create_workflow runs, in the same order: an
164
+ // update that skipped them could store a graph the create path would
165
+ // have refused.
166
+ const authored = run.nodeRegistry
167
+ ? declareDynamicOutputsInGraph(params["graph"], run.nodeRegistry)
168
+ : params["graph"];
169
+ const graph = normalizeWorkflowGraph(authored);
170
+ const badModels = await modelSelectionError(graph, run.modelCatalogs ?? RUNTIME_MODEL_CATALOGS);
171
+ if (badModels)
172
+ return badModels;
173
+ const leftoverHandles = leftoverWiringHandleError(graph);
174
+ if (leftoverHandles)
175
+ return leftoverHandles;
176
+ if (run.nodeRegistry) {
177
+ unselected = unsetModelSelectionWarning(graph, run.nodeRegistry);
178
+ }
179
+ fields.graph = graph;
180
+ }
181
+ if (isString(params["name"]))
182
+ fields.name = params["name"];
183
+ if (isString(params["description"])) {
184
+ fields.description = params["description"];
185
+ }
186
+ if (Array.isArray(params["tags"]))
187
+ fields.tags = params["tags"];
188
+ if (Object.keys(fields).length === 0) {
189
+ return { error: "Nothing to update — pass graph, name, description or tags." };
190
+ }
191
+ // `access` is not in the field set on purpose. Publishing is its own
192
+ // capability because it is its own permission class.
193
+ const expected = isString(params["expected_updated_at"])
194
+ ? params["expected_updated_at"]
195
+ : existing.updated_at;
196
+ const updated = await Workflow.updateFieldsIfUnchanged(id, expected, fields,
197
+ // A whole-graph write names no units, so an open editor falls back to
198
+ // diff-based touching instead of treating the graph as replaced.
199
+ "graph" in fields ? { ops: [{ tool: "update_graph", input: {} }] } : undefined);
200
+ if (!updated) {
201
+ return {
202
+ error: `Workflow ${id} changed since you read it — read it again and retry.`
203
+ };
204
+ }
205
+ return { ...workflowRecord(updated), ...unselected };
206
+ }
207
+ };
208
+ const deleteWorkflow = {
209
+ spec: deleteWorkflowSpec,
210
+ impl: async (run, params) => {
211
+ const { Workflow } = await import("@nodetool-ai/models");
212
+ const id = String(params["workflow_id"]);
213
+ const deleted = await Workflow.deleteOwned(userIdOf(run.context), id);
214
+ return deleted ? { workflow_id: id, deleted: true } : notYours(id);
215
+ }
216
+ };
217
+ function versionNumber(value) {
218
+ const n = Number(value);
219
+ if (!Number.isInteger(n) || n < 1) {
220
+ return {
221
+ error: "version must be a positive integer (use list_workflow_versions to see the available ones)."
222
+ };
223
+ }
224
+ return n;
225
+ }
226
+ function toVersionListItem(version) {
227
+ return {
228
+ id: version.id,
229
+ version: version.version,
230
+ name: version.name,
231
+ description: version.description,
232
+ save_type: version.save_type,
233
+ created_at: version.created_at
234
+ };
235
+ }
236
+ const listWorkflowVersions = {
237
+ spec: listWorkflowVersionsSpec,
238
+ impl: async (run, params) => {
239
+ const id = String(params["workflow_id"]);
240
+ const existing = await findOwnedWorkflow(run, id);
241
+ if (!existing)
242
+ return notYours(id);
243
+ const { WorkflowVersion } = await import("@nodetool-ai/models");
244
+ const limit = Math.max(1, Math.min(Number(params["limit"]) || DEFAULT_VERSION_LIMIT, MAX_VERSION_LIMIT));
245
+ const versions = await WorkflowVersion.listForWorkflow(id, { limit });
246
+ return {
247
+ workflow_id: id,
248
+ name: existing.name,
249
+ versions: versions.map(toVersionListItem)
250
+ };
251
+ }
252
+ };
253
+ const getWorkflowVersion = {
254
+ spec: getWorkflowVersionSpec,
255
+ impl: async (run, params) => {
256
+ const id = String(params["workflow_id"]);
257
+ const existing = await findOwnedWorkflow(run, id);
258
+ if (!existing)
259
+ return notYours(id);
260
+ const number = versionNumber(params["version"]);
261
+ if (typeof number !== "number")
262
+ return number;
263
+ const { WorkflowVersion } = await import("@nodetool-ai/models");
264
+ const version = await WorkflowVersion.findByVersion(id, number);
265
+ if (!version) {
266
+ return {
267
+ error: `Workflow ${id} has no version ${number}. Call list_workflow_versions to see the available ones.`
268
+ };
269
+ }
270
+ return {
271
+ workflow_id: id,
272
+ ...toVersionListItem(version),
273
+ graph: version.graph
274
+ };
275
+ }
276
+ };
277
+ const createWorkflowVersion = {
278
+ spec: createWorkflowVersionSpec,
279
+ impl: async (run, params) => {
280
+ const id = String(params["workflow_id"]);
281
+ const existing = await findOwnedWorkflow(run, id);
282
+ if (!existing)
283
+ return notYours(id);
284
+ const { WorkflowVersion } = await import("@nodetool-ai/models");
285
+ const nextVer = await WorkflowVersion.nextVersion(id);
286
+ const version = (await WorkflowVersion.create({
287
+ workflow_id: id,
288
+ user_id: userIdOf(run.context),
289
+ name: isString(params["name"]) ? params["name"] : null,
290
+ description: isString(params["description"])
291
+ ? params["description"]
292
+ : null,
293
+ graph: existing.graph,
294
+ version: nextVer,
295
+ save_type: "manual"
296
+ }));
297
+ return {
298
+ ok: true,
299
+ workflow_id: id,
300
+ ...toVersionListItem(version)
301
+ };
302
+ }
303
+ };
304
+ const restoreWorkflowVersion = {
305
+ spec: restoreWorkflowVersionSpec,
306
+ impl: async (run, params) => {
307
+ const id = String(params["workflow_id"]);
308
+ const existing = await findOwnedWorkflow(run, id);
309
+ if (!existing)
310
+ return notYours(id);
311
+ const number = versionNumber(params["version"]);
312
+ if (typeof number !== "number")
313
+ return number;
314
+ const { Workflow, WorkflowVersion } = await import("@nodetool-ai/models");
315
+ const version = await WorkflowVersion.findByVersion(id, number);
316
+ if (!version) {
317
+ return {
318
+ error: `Workflow ${id} has no version ${number}. Call list_workflow_versions to see the available ones.`
319
+ };
320
+ }
321
+ const undoVer = await WorkflowVersion.nextVersion(id);
322
+ const undo = (await WorkflowVersion.create({
323
+ workflow_id: id,
324
+ user_id: userIdOf(run.context),
325
+ name: `Before restore to v${number}`,
326
+ description: null,
327
+ graph: existing.graph,
328
+ version: undoVer,
329
+ save_type: "restore"
330
+ }));
331
+ const updated = await Workflow.updateFieldsIfUnchanged(id, existing.updated_at, { graph: version.graph },
332
+ // Whole-graph restore: no unit attribution, diff-based touching.
333
+ { ops: [{ tool: "restore_version", input: {} }] });
334
+ if (!updated) {
335
+ return {
336
+ error: `Workflow ${id} changed since you read it — read it again and retry.`,
337
+ undo_version: undo.version
338
+ };
339
+ }
340
+ return {
341
+ ok: true,
342
+ workflow_id: id,
343
+ restored_version: number,
344
+ undo_version: undo.version,
345
+ ...workflowRecord(updated)
346
+ };
347
+ }
348
+ };
349
+ const deleteWorkflowVersion = {
350
+ spec: deleteWorkflowVersionSpec,
351
+ impl: async (run, params) => {
352
+ const id = String(params["workflow_id"]);
353
+ const existing = await findOwnedWorkflow(run, id);
354
+ if (!existing)
355
+ return notYours(id);
356
+ const number = versionNumber(params["version"]);
357
+ if (typeof number !== "number")
358
+ return number;
359
+ const { WorkflowVersion } = await import("@nodetool-ai/models");
360
+ const version = await WorkflowVersion.findByVersion(id, number);
361
+ if (!version) {
362
+ return {
363
+ error: `Workflow ${id} has no version ${number}. Call list_workflow_versions to see the available ones.`
364
+ };
365
+ }
366
+ await version.delete();
367
+ return {
368
+ ok: true,
369
+ workflow_id: id,
370
+ deleted_version: number
371
+ };
372
+ }
373
+ };
374
+ const setWorkflowAccess = {
375
+ spec: setWorkflowAccessSpec,
376
+ impl: async (run, params) => {
377
+ const { Workflow } = await import("@nodetool-ai/models");
378
+ const id = String(params["workflow_id"]);
379
+ const access = params["access"] === "public" ? "public" : "private";
380
+ const existing = await findOwnedWorkflow(run, id);
381
+ if (!existing)
382
+ return notYours(id);
383
+ const updated = await Workflow.updateFieldsIfUnchanged(id, existing.updated_at, { access }, { ops: [{ tool: "set_link", input: { access } }] });
384
+ if (!updated) {
385
+ return {
386
+ error: `Workflow ${id} changed since it was read — retry.`
387
+ };
388
+ }
389
+ return { workflow_id: id, access };
390
+ }
391
+ };
392
+ const runWorkflowCapability = {
393
+ spec: runWorkflowCapabilitySpec,
394
+ impl: async (run, params) => {
395
+ const env = await runEnvironmentOf(run);
396
+ if (!env)
397
+ return noRegistryError("run a workflow");
398
+ const { runWorkflow } = await import("@nodetool-ai/execution/service");
399
+ const outcome = await runWorkflow({
400
+ workflowId: String(params["workflow_id"]),
401
+ userId: userIdOf(run.context),
402
+ environment: env,
403
+ params: params["params"] ?? {},
404
+ interactive: params["interactive"] === true,
405
+ // A run started from a project's agent thread is that project's spend.
406
+ projectId: run.projectId ?? null
407
+ });
408
+ return annotateEscalatedRun(outcomeResult(outcome));
409
+ }
410
+ };
411
+ const debugWorkflow = {
412
+ spec: debugWorkflowSpec,
413
+ impl: async (run, params) => {
414
+ const env = await runEnvironmentOf(run);
415
+ if (!env)
416
+ return noRegistryError("debug a workflow");
417
+ const { Job, Workflow } = await import("@nodetool-ai/models");
418
+ const { runWorkflow } = await import("@nodetool-ai/execution/service");
419
+ const workflowId = String(params["workflow_id"]);
420
+ const userId = userIdOf(run.context);
421
+ const includeGraph = params["include_graph"] !== false;
422
+ const outcome = await runWorkflow({
423
+ workflowId,
424
+ userId,
425
+ debug: true,
426
+ environment: env,
427
+ params: params["params"] ?? {},
428
+ interactive: params["interactive"] === true,
429
+ projectId: run.projectId ?? null
430
+ });
431
+ // A run the service refused never started, so there is no report to nest.
432
+ // Nesting it under `run` put the failure where nothing looks: the caller
433
+ // reads a `{workflow_id, run}` record, and the sandbox dispatcher — which
434
+ // throws on a top-level `{error}` so a guest cannot compute with a
435
+ // failure — sees an ordinary object. A 404 came back as a value the guest
436
+ // logged as `Status: 404` and carried on from. `run_workflow` and
437
+ // `start_background_job` already return this at the top level.
438
+ if (outcome.kind !== "payload") {
439
+ return outcomeResult(outcome);
440
+ }
441
+ const result = outcomeResult(outcome);
442
+ // An escalated run has produced no report yet — the job is parked on the
443
+ // failing node. Hand the escalation back for a verdict; the final report
444
+ // arrives from resolve_workflow_escalation once the run settles.
445
+ if (isObjectLike(result) &&
446
+ result["status"] === "escalated") {
447
+ return { workflow_id: workflowId, run: annotateEscalatedRun(result) };
448
+ }
449
+ const report = {
450
+ workflow_id: workflowId,
451
+ run: result
452
+ };
453
+ const jobId = result?.["job_id"];
454
+ if (isString(jobId)) {
455
+ const job = await Job.find(userId, jobId);
456
+ if (job) {
457
+ const logLimit = Number(params["log_limit"] ?? 200);
458
+ const logs = job.logs ?? [];
459
+ report["job"] = {
460
+ ...jobRecord(job),
461
+ logs: logs.slice(Math.max(0, logs.length - logLimit))
462
+ };
463
+ }
464
+ }
465
+ if (includeGraph) {
466
+ const workflow = await Workflow.find(userId, workflowId);
467
+ if (workflow) {
468
+ report["workflow"] = summarizeWorkflowGraph(workflowRecord(workflow));
469
+ }
470
+ }
471
+ return report;
472
+ }
473
+ };
474
+ const resolveWorkflowEscalation = {
475
+ spec: resolveWorkflowEscalationSpec,
476
+ impl: async (run, params) => {
477
+ const { submitEscalationVerdict } = await import("@nodetool-ai/execution/service");
478
+ const action = String(params["action"]);
479
+ const verdict = { action };
480
+ if (action === "substitute" && params["outputs"] !== undefined) {
481
+ verdict["outputs"] = params["outputs"];
482
+ }
483
+ if (action === "fail" && isString(params["reason"])) {
484
+ verdict["reason"] = params["reason"];
485
+ }
486
+ if ((action === "skip" || action === "fail") &&
487
+ isString(params["apply_to"])) {
488
+ verdict["applyTo"] = params["apply_to"];
489
+ }
490
+ const outcome = await submitEscalationVerdict(String(params["session_id"]), userIdOf(run.context), String(params["escalation_id"]), verdict);
491
+ return annotateEscalatedRun(outcomeResult(outcome));
492
+ }
493
+ };
494
+ const validateWorkflow = {
495
+ spec: validateWorkflowSpec,
496
+ impl: async (run, params) => {
497
+ let graph = params["graph"];
498
+ const workflowId = params["workflow_id"];
499
+ const code = isString(params["code"]) ? params["code"] : "";
500
+ // A legacy graph program can be checked in the form it was authored in
501
+ // rather than hand-translated to JSON first.
502
+ if (code.trim()) {
503
+ const { evaluateGraphDsl } = await import("../graph-dsl.js");
504
+ const evaluated = await evaluateGraphDsl(code);
505
+ if (!evaluated.graph) {
506
+ const failure = {
507
+ status: "code_error",
508
+ error: evaluated.error ?? "Program produced no graph."
509
+ };
510
+ if (evaluated.logs?.length)
511
+ failure.logs = evaluated.logs;
512
+ return failure;
513
+ }
514
+ graph = evaluated.graph;
515
+ }
516
+ if (!graph && workflowId) {
517
+ const { Workflow } = await import("@nodetool-ai/models");
518
+ const workflow = await Workflow.find(userIdOf(run.context), workflowId);
519
+ if (!workflow)
520
+ return { error: `Workflow ${workflowId} was not found.` };
521
+ graph = workflow.getGraph();
522
+ }
523
+ if (!graph || !Array.isArray(graph.nodes)) {
524
+ return {
525
+ error: "No graph to validate — pass a graph program as `code`, an inline `graph` ({nodes, edges}), or a valid `workflow_id`."
526
+ };
527
+ }
528
+ // `edges` reaches `.map()` inside validateGraph — a non-array would throw a
529
+ // raw TypeError past the tool's structured error shape.
530
+ if (graph.edges !== undefined && !Array.isArray(graph.edges)) {
531
+ return {
532
+ error: "`graph.edges` must be an array of edges ({source, sourceHandle, target, targetHandle})."
533
+ };
534
+ }
535
+ const registry = run.nodeRegistry;
536
+ if (!registry) {
537
+ // Returning the graph with a note read as a pass to every caller that
538
+ // checks for issues rather than for prose. A validator with no registry
539
+ // cannot validate; say so as an error.
540
+ return {
541
+ error: "Cannot validate: no node registry is available in this process. Run `nodetool validate` from the CLI, or call this tool from a server-side context with a registry.",
542
+ validated: false
543
+ };
544
+ }
545
+ // The provider and model catalogs are supplied by the run rather than
546
+ // living on NodeRegistry: the registry also runs in the browser, which has
547
+ // neither to reach. Without them `validateGraph` skips the
548
+ // `unknown_provider` and `unknown_model` checks entirely, so a model
549
+ // naming a provider the runtime cannot construct — or an id that provider
550
+ // does not offer — would pass silently on the agent surface, which is
551
+ // exactly where hallucinated ids come from. This capability always runs
552
+ // server-side, so the runtime's own catalogs are the right default.
553
+ const catalogs = run.modelCatalogs ?? RUNTIME_MODEL_CATALOGS;
554
+ // An outgoing edge declares the source's dynamic output handle. The tool
555
+ // path does this in `GraphBuilder`; a graph the DSL pack authors arrives
556
+ // here as data and has never seen one, so the same rule runs on the JSON.
557
+ const declared = declareDynamicOutputsInGraph(graph, registry);
558
+ const { collectSecretRequirementSites, validateGraph } = await import("@nodetool-ai/node-sdk");
559
+ const registryView = {
560
+ has: (type) => registry.has(type),
561
+ getMetadata: (type) => registry.getMetadata(type),
562
+ validateNode: (descriptor, connectedHandles) => registry.validateNode(descriptor, connectedHandles),
563
+ listProviderIds: () => catalogs.listProviderIds(),
564
+ listModelIds: (provider, modelType) => catalogs.listModelIds(provider, modelType),
565
+ listRequiredTextInputs: (provider, modelType, modelId) => catalogs.listRequiredTextInputs?.(provider, modelType, modelId)
566
+ };
567
+ const checked = {
568
+ nodes: declared.nodes,
569
+ edges: (declared.edges ?? [])
570
+ };
571
+ // The credentials the graph's nodes declare are collected first so the
572
+ // host resolves exactly those names — one store round trip per
573
+ // requirement, not one per key it holds. A run with no reachable store
574
+ // carries no resolver and the check is skipped: reporting every declared
575
+ // key as missing because nothing could answer is the false alarm this
576
+ // whole path fails toward silence to avoid.
577
+ let availableSecrets;
578
+ if (run.availableSecrets) {
579
+ const sites = collectSecretRequirementSites(checked, registryView);
580
+ if (sites.length > 0) {
581
+ availableSecrets = await run.availableSecrets(sites.map((site) => site.key));
582
+ }
583
+ }
584
+ const report = validateGraph(checked, registryView, { availableSecrets });
585
+ return await withSecretRemediation(run, report);
586
+ }
587
+ };
588
+ /**
589
+ * Tell the agent what to do about a `missing_secret` warning.
590
+ *
591
+ * The validator says a key is missing; only the run knows how this agent can
592
+ * get one set. Settings → Credentials is always the answer a person can act
593
+ * on; `request_secret` is added only where this run can actually serve it —
594
+ * it needs the capability *and* a host that can raise the dialog, and a
595
+ * headless run has neither, so naming it there sends the agent at a call that
596
+ * fails closed.
597
+ */
598
+ async function withSecretRemediation(run, report) {
599
+ if (!report.issues.some((issue) => issue.code === "missing_secret")) {
600
+ return report;
601
+ }
602
+ const canAsk = run.secretPrompt !== undefined &&
603
+ (await findCapability(REQUEST_SECRET_TOOL_NAME)) !== undefined;
604
+ const remediation = canAsk
605
+ ? "Ask the user to set it in Settings → Credentials, or call " +
606
+ `\`${REQUEST_SECRET_TOOL_NAME}\` to have them enter it now.`
607
+ : "Ask the user to set it in Settings → Credentials.";
608
+ return {
609
+ ...report,
610
+ issues: report.issues.map((issue) => issue.code === "missing_secret"
611
+ ? { ...issue, message: `${issue.message} ${remediation}` }
612
+ : issue)
613
+ };
614
+ }
615
+ // ---------------------------------------------------------------------------
616
+ // start_background_job
617
+ // ---------------------------------------------------------------------------
618
+ const startBackgroundJob = {
619
+ spec: startBackgroundJobSpec,
620
+ impl: async (run, params) => {
621
+ const env = await runEnvironmentOf(run);
622
+ if (!env)
623
+ return noRegistryError("start a background job");
624
+ const { runWorkflow } = await import("@nodetool-ai/execution/service");
625
+ const outcome = await runWorkflow({
626
+ workflowId: String(params["workflow_id"]),
627
+ userId: userIdOf(run.context),
628
+ environment: env,
629
+ params: params["params"] ?? {},
630
+ background: true,
631
+ projectId: run.projectId ?? null
632
+ });
633
+ return outcomeResult(outcome);
634
+ }
635
+ };
636
+ // ---------------------------------------------------------------------------
637
+ // get_example_workflow
638
+ // ---------------------------------------------------------------------------
639
+ const getExampleWorkflow = {
640
+ spec: getExampleWorkflowSpec,
641
+ impl: async (run, params) => {
642
+ if (!run.examples)
643
+ return NO_EXAMPLES;
644
+ const packageName = String(params["package_name"]);
645
+ const exampleName = String(params["example_name"]);
646
+ const example = await run.examples.get(packageName, exampleName);
647
+ return (example ?? {
648
+ error: `No example named "${exampleName}" in package "${packageName}".`
649
+ });
650
+ }
651
+ };
652
+ // ---------------------------------------------------------------------------
653
+ // export_workflow_digraph
654
+ // ---------------------------------------------------------------------------
655
+ const exportWorkflowDigraph = {
656
+ spec: exportWorkflowDigraphSpec,
657
+ // `workflowToDsl` lives in `@nodetool-ai/dsl`, which sits above this package
658
+ // in the dependency order, so the exporter rides on the run rather than
659
+ // being imported.
660
+ impl: async (run, params) => {
661
+ const exportDsl = run.exportDsl;
662
+ if (!exportDsl) {
663
+ return {
664
+ error: "Cannot export: no DSL exporter is available in this process. Run " +
665
+ "`nodetool workflows export-dsl` from the CLI instead."
666
+ };
667
+ }
668
+ const { Workflow } = await import("@nodetool-ai/models");
669
+ const workflowId = String(params["workflow_id"]);
670
+ const workflow = await Workflow.find(userIdOf(run.context), workflowId);
671
+ if (!workflow)
672
+ return { error: `Workflow ${workflowId} was not found.` };
673
+ if (!workflow.graph)
674
+ return { error: "Workflow has no graph to export." };
675
+ try {
676
+ return {
677
+ workflow_id: workflowId,
678
+ source: exportDsl(workflow.graph, { workflowName: workflow.name })
679
+ };
680
+ }
681
+ catch (error) {
682
+ return {
683
+ error: error instanceof Error ? error.message : String(error)
684
+ };
685
+ }
686
+ }
687
+ };
688
+ // ── Guided setup (PRD § 11.6) ────────────────────────────────────────────────
689
+ //
690
+ // The headless half of the Workflow creation flow: write the setup answers,
691
+ // plan the steps, edit one step, build the graph from the plan. The browser
692
+ // drives the same four through `ui_workflow_set_setup`, `ui_workflow_plan`,
693
+ // `ui_workflow_update_plan_step` and `ui_workflow_build_from_plan`, and both
694
+ // halves share the planner contract and the plan→graph builder in
695
+ // `@nodetool-ai/protocol`, so a plan built here places the nodes the editor
696
+ // would have placed.
697
+ //
698
+ // Two rules carry the phase and both are asserted:
699
+ //
700
+ // - `plan_workflow` places no node (criterion 3). It writes text and nothing
701
+ // else.
702
+ // - `build_workflow_from_plan` refuses a plan that still names an unknown node
703
+ // type or an unavailable model role (D23), and reports the wiring it could
704
+ // not do rather than reporting a graph that validates and produces nothing
705
+ // (R6).
706
+ /** How many candidate node types the planner prompt lists. */
707
+ const CANDIDATE_LIMIT = 60;
708
+ /**
709
+ * Which model role each provider capability answers. Read to decide whether a
710
+ * step's role is covered — the same question the review step's amber marker
711
+ * asks in the browser (D23).
712
+ */
713
+ const ROLE_CAPABILITY = {
714
+ language: "generate_message",
715
+ image: "text_to_image",
716
+ video: "text_to_video",
717
+ audio: "text_to_speech"
718
+ };
719
+ async function loadOwned(run, id) {
720
+ const { Workflow } = await import("@nodetool-ai/models");
721
+ const row = (await Workflow.get(id));
722
+ if (!row || row.user_id !== userIdOf(run.context)) {
723
+ return { error: `Workflow ${id} was not found, or it is not yours.` };
724
+ }
725
+ return { row, setup: readWorkflowSetup(row.settings) };
726
+ }
727
+ const isError = (value) => isObjectLike(value) && isString(value.error);
728
+ /** Write a setup patch back onto the row, leaving the rest of `settings` alone. */
729
+ async function persistSetup(row, patch, extra = {}) {
730
+ const { Workflow } = await import("@nodetool-ai/models");
731
+ const fields = {
732
+ settings: writeWorkflowSetup(row.settings, patch)
733
+ };
734
+ if (extra.graph !== undefined) {
735
+ fields.graph = extra.graph;
736
+ }
737
+ const updated = await Workflow.updateFieldsIfUnchanged(row.id, row.updated_at, fields);
738
+ if (!updated) {
739
+ return {
740
+ error: `Workflow ${row.id} changed since you read it — read it again and retry.`
741
+ };
742
+ }
743
+ return updated;
744
+ }
745
+ /** The plan on the row, or the reason there is none to act on. */
746
+ function requirePlan(setup) {
747
+ const plan = setup?.plan;
748
+ if (!plan) {
749
+ return {
750
+ error: "This workflow has no plan yet. Run plan_workflow first, or store one with plan_workflow's `plan` argument."
751
+ };
752
+ }
753
+ return plan;
754
+ }
755
+ /** Grade a plan against the live registry and this install's providers. */
756
+ async function reviewPlan(run, plan) {
757
+ const registry = run.nodeRegistry;
758
+ const providers = run.providers ?? {};
759
+ const capabilities = new Set();
760
+ for (const provider of Object.values(providers)) {
761
+ for (const capability of provider.getCapabilities()) {
762
+ capabilities.add(capability);
763
+ }
764
+ }
765
+ return resolveWorkflowPlan(plan, {
766
+ // With no registry nothing can be confirmed, so every step reads unknown
767
+ // and the build is blocked — the same answer validate_workflow gives.
768
+ knownNodeType: (type) => registry?.has(type) === true,
769
+ providerConfigured: (role) => {
770
+ const capability = ROLE_CAPABILITY[role];
771
+ // A role nothing maps to is not a provider question; do not block on it.
772
+ if (capability === undefined)
773
+ return true;
774
+ return capabilities.size === 0 ? false : capabilities.has(capability);
775
+ }
776
+ });
777
+ }
778
+ /** Shape the review into the marker list the caller renders (D23). */
779
+ function reviewReport(resolved) {
780
+ return {
781
+ can_continue: resolved.canContinue,
782
+ missing_roles: resolved.missingRoles,
783
+ steps: resolved.steps.map((entry) => ({
784
+ id: entry.step.id,
785
+ title: entry.step.title,
786
+ summary: entry.step.summary,
787
+ node_type: entry.step.node_type,
788
+ model_role: entry.step.model_role ?? null,
789
+ unknown_node_type: entry.unknownNodeType,
790
+ missing_provider: entry.missingProvider,
791
+ block: entry.block
792
+ }))
793
+ };
794
+ }
795
+ /** The registry lookup the builder wires from. */
796
+ function registryLookup(registry) {
797
+ return (nodeType) => {
798
+ const meta = registry.getMetadata(nodeType);
799
+ return meta ? planNodeShape(meta) : null;
800
+ };
801
+ }
802
+ /**
803
+ * A placement as a workflow graph. The Workflow flow's build and the Game
804
+ * flow's build write the same node shape, so one function answers both — a
805
+ * second copy is how `setup_step_id` or `dynamic_properties` goes missing on
806
+ * one of them.
807
+ */
808
+ function placementToGraph(placement) {
809
+ return {
810
+ nodes: placement.nodes.map((node) => ({
811
+ id: node.id,
812
+ type: node.type,
813
+ data: node.properties,
814
+ ui_properties: { position: node.position, setup_step_id: node.setupStepId },
815
+ dynamic_properties: node.dynamicProperties ?? {},
816
+ dynamic_outputs: node.dynamicOutputs ?? {}
817
+ })),
818
+ edges: placement.edges.map((edge, index) => ({
819
+ id: `e${index + 1}`,
820
+ source: edge.source,
821
+ sourceHandle: edge.sourceHandle,
822
+ target: edge.target,
823
+ targetHandle: edge.targetHandle
824
+ }))
825
+ };
826
+ }
827
+ // ── set_workflow_setup ──────────────────────────────────────────────────────
828
+ const setWorkflowSetup = {
829
+ spec: setWorkflowSetupSpec,
830
+ impl: async (run, params) => {
831
+ const id = String(params["workflow_id"]);
832
+ const owned = await loadOwned(run, id);
833
+ if (isError(owned))
834
+ return owned;
835
+ const patch = {};
836
+ if (isString(params["brief"]))
837
+ patch.brief = params["brief"];
838
+ if (isString(params["category"]))
839
+ patch.category = params["category"];
840
+ if (isString(params["run_mode"])) {
841
+ patch.run_mode = params["run_mode"];
842
+ }
843
+ if (isString(params["stage"])) {
844
+ patch.stage = params["stage"];
845
+ }
846
+ if (Object.keys(patch).length === 0) {
847
+ return {
848
+ error: "Nothing to set — pass brief, category, run_mode or stage."
849
+ };
850
+ }
851
+ const saved = await persistSetup(owned.row, patch);
852
+ if (isError(saved))
853
+ return saved;
854
+ return { workflow_id: id, setup: readWorkflowSetup(saved.settings) };
855
+ }
856
+ };
857
+ // ── plan_workflow ───────────────────────────────────────────────────────────
858
+ /**
859
+ * Candidate node types for the planner prompt: the general-purpose nodes
860
+ * first, then the registry's ranking against the brief.
861
+ */
862
+ function candidateLines(registry, terms) {
863
+ const core = PLAN_CORE_NODE_TYPES.flatMap((nodeType) => {
864
+ const meta = registry.getMetadata(nodeType);
865
+ return meta ? [meta] : [];
866
+ });
867
+ const seen = new Set(core.map((meta) => meta.node_type));
868
+ const ranked = registry
869
+ .searchMetadata(terms)
870
+ .map((entry) => entry.meta)
871
+ .filter((meta) => !seen.has(meta.node_type));
872
+ return [...core, ...ranked]
873
+ .slice(0, CANDIDATE_LIMIT)
874
+ .map((meta) => `- ${meta.node_type}: ${meta.title} — ${meta.description.split("\n")[0]}`);
875
+ }
876
+ const planWorkflow = {
877
+ spec: planWorkflowSpec,
878
+ impl: async (run, params) => {
879
+ const id = String(params["workflow_id"]);
880
+ const owned = await loadOwned(run, id);
881
+ if (isError(owned))
882
+ return owned;
883
+ const brief = owned.setup?.brief?.trim() ?? "";
884
+ const supplied = params["plan"];
885
+ let plan = null;
886
+ let planProblems = [];
887
+ if (supplied !== undefined) {
888
+ // A plan handed in replaces the model call outright: it is how a harness
889
+ // case and a replay reach the builder with no provider at all.
890
+ const parsed = workflowSetupPlan.safeParse(parseWorkflowPlan(supplied) ?? supplied);
891
+ if (!parsed.success) {
892
+ return { error: "`plan` is not a plan ({inputs, steps, outputs})." };
893
+ }
894
+ plan = parsed.data;
895
+ }
896
+ else {
897
+ if (brief.length === 0) {
898
+ return {
899
+ error: "This workflow has no brief, so there is nothing to plan. Write one with set_workflow_setup first."
900
+ };
901
+ }
902
+ const registry = run.nodeRegistry;
903
+ if (!registry) {
904
+ return {
905
+ error: "Cannot plan: no node registry is available in this process, so no step could name a node type that exists."
906
+ };
907
+ }
908
+ const provider = isString(params["provider"]) ? params["provider"] : "";
909
+ const model = isString(params["model"]) ? params["model"] : "";
910
+ if (provider.length === 0 || model.length === 0) {
911
+ return {
912
+ error: "Pass provider and model to plan, or pass a `plan` to store without calling one."
913
+ };
914
+ }
915
+ const { generateStructured } = await import("@nodetool-ai/runtime");
916
+ const { plannedCodeStepProblems } = await import("@nodetool-ai/node-sdk/code-analysis");
917
+ const category = owned.setup?.category ?? "";
918
+ const terms = brief
919
+ .split(/\s+/)
920
+ .filter((term) => term.length > 2);
921
+ const candidates = candidateLines(registry, terms);
922
+ const planner = await run.context.getProvider(provider);
923
+ // The same check-and-repair loop the browser flow runs: a plan reaches
924
+ // review only after it builds, or after the round limit with its
925
+ // remaining problems reported.
926
+ const refined = await refineWorkflowPlan({
927
+ messages: [
928
+ { role: "system", content: WORKFLOW_PLANNER_SYSTEM_PROMPT },
929
+ {
930
+ role: "user",
931
+ content: [
932
+ `Task: ${brief}`,
933
+ category ? `Kind of workflow: ${category}` : "",
934
+ "",
935
+ "Candidate node types:",
936
+ ...candidates
937
+ ]
938
+ .filter((line) => line !== "")
939
+ .join("\n")
940
+ }
941
+ ],
942
+ generate: (messages) => generateStructured(planner, {
943
+ model,
944
+ maxTokens: 4096,
945
+ messages: [...messages],
946
+ toolName: WORKFLOW_PLAN_TOOL_NAME,
947
+ toolDescription: WORKFLOW_PLAN_TOOL_DESCRIPTION,
948
+ schema: buildWorkflowPlanSchema()
949
+ }),
950
+ check: (draft) => checkWorkflowPlan(draft, {
951
+ lookup: registryLookup(registry),
952
+ checkCode: plannedCodeStepProblems
953
+ })
954
+ });
955
+ plan = refined.plan;
956
+ planProblems = refined.problems;
957
+ if (!plan) {
958
+ return { error: "The planner did not return a plan." };
959
+ }
960
+ }
961
+ // Nothing below places a node — criterion 3. The plan is text on the row.
962
+ const saved = await persistSetup(owned.row, { plan, stage: "review" });
963
+ if (isError(saved))
964
+ return saved;
965
+ const resolved = await reviewPlan(run, plan);
966
+ return {
967
+ workflow_id: id,
968
+ stage: "review",
969
+ plan,
970
+ review: reviewReport(resolved),
971
+ plan_problems: planProblems,
972
+ nodes_placed: 0
973
+ };
974
+ }
975
+ };
976
+ // ── update_workflow_plan_step ───────────────────────────────────────────────
977
+ const updateWorkflowPlanStep = {
978
+ spec: updateWorkflowPlanStepSpec,
979
+ impl: async (run, params) => {
980
+ const id = String(params["workflow_id"]);
981
+ const owned = await loadOwned(run, id);
982
+ if (isError(owned))
983
+ return owned;
984
+ const plan = requirePlan(owned.setup);
985
+ if (isError(plan))
986
+ return plan;
987
+ const op = isString(params["op"]) ? params["op"] : "update";
988
+ const stepId = isString(params["step_id"]) ? params["step_id"] : null;
989
+ const steps = [...plan.steps];
990
+ const at = stepId === null ? -1 : steps.findIndex((s) => s.id === stepId);
991
+ if (op !== "add" && at === -1) {
992
+ return {
993
+ error: `No plan step "${stepId ?? ""}". The step ids are: ${steps
994
+ .map((step) => step.id)
995
+ .join(", ")}.`
996
+ };
997
+ }
998
+ const fields = {};
999
+ if (isString(params["title"]))
1000
+ fields.title = params["title"];
1001
+ if (isString(params["summary"]))
1002
+ fields.summary = params["summary"];
1003
+ if (params["node_type"] !== undefined) {
1004
+ fields.node_type = isString(params["node_type"])
1005
+ ? params["node_type"]
1006
+ : null;
1007
+ }
1008
+ if (isString(params["model_role"])) {
1009
+ fields.model_role = params["model_role"];
1010
+ }
1011
+ if (op === "remove") {
1012
+ steps.splice(at, 1);
1013
+ }
1014
+ else if (op === "move") {
1015
+ if (!isNumber(params["index"])) {
1016
+ return { error: "op 'move' needs an `index`." };
1017
+ }
1018
+ const [moved] = steps.splice(at, 1);
1019
+ steps.splice(Math.max(0, Math.min(steps.length, params["index"])), 0, moved);
1020
+ }
1021
+ else if (op === "add") {
1022
+ const added = {
1023
+ id: stepId ?? `step-${steps.length + 1}`,
1024
+ title: fields.title ?? "New step",
1025
+ summary: fields.summary ?? "",
1026
+ node_type: fields.node_type ?? null
1027
+ };
1028
+ if (fields.model_role !== undefined) {
1029
+ added.model_role = fields.model_role;
1030
+ }
1031
+ steps.splice(isNumber(params["index"])
1032
+ ? Math.max(0, Math.min(steps.length, params["index"]))
1033
+ : steps.length, 0, added);
1034
+ }
1035
+ else {
1036
+ steps[at] = { ...steps[at], ...fields };
1037
+ }
1038
+ const next = workflowSetupPlan.parse({ ...plan, steps });
1039
+ const saved = await persistSetup(owned.row, { plan: next });
1040
+ if (isError(saved))
1041
+ return saved;
1042
+ const resolved = await reviewPlan(run, next);
1043
+ return { workflow_id: id, plan: next, review: reviewReport(resolved) };
1044
+ }
1045
+ };
1046
+ // ── build_workflow_from_plan ────────────────────────────────────────────────
1047
+ const buildWorkflowFromPlan = {
1048
+ spec: buildWorkflowFromPlanSpec,
1049
+ impl: async (run, params) => {
1050
+ const id = String(params["workflow_id"]);
1051
+ const owned = await loadOwned(run, id);
1052
+ if (isError(owned))
1053
+ return owned;
1054
+ const plan = requirePlan(owned.setup);
1055
+ if (isError(plan))
1056
+ return plan;
1057
+ const registry = run.nodeRegistry;
1058
+ if (!registry) {
1059
+ return {
1060
+ built: false,
1061
+ submitted: false,
1062
+ verified_result: false,
1063
+ error: "Cannot build: no node registry is available in this process, so no node type could be resolved."
1064
+ };
1065
+ }
1066
+ // D23: an unknown type blocks the build, and names itself.
1067
+ const resolved = await reviewPlan(run, plan);
1068
+ const unknown = resolved.steps.filter((entry) => entry.unknownNodeType);
1069
+ if (unknown.length > 0) {
1070
+ return {
1071
+ built: false,
1072
+ submitted: false,
1073
+ verified_result: false,
1074
+ error: "Every step must name a node type the registry has before the graph is built. " +
1075
+ `Unresolved: ${unknown
1076
+ .map((entry) => `${entry.step.id} (${entry.step.node_type ?? "no type"})`)
1077
+ .join(", ")}. Fix them with update_workflow_plan_step.`,
1078
+ review: reviewReport(resolved)
1079
+ };
1080
+ }
1081
+ if (resolved.missingRoles.length > 0) {
1082
+ return {
1083
+ built: false,
1084
+ submitted: false,
1085
+ verified_result: false,
1086
+ error: "Cannot build until every model role is available in this install. " +
1087
+ `Missing provider roles: ${resolved.missingRoles.join(", ")}. ` +
1088
+ "Configure a provider or choose a different model role.",
1089
+ review: reviewReport(resolved)
1090
+ };
1091
+ }
1092
+ const models = isObjectLike(params["models"])
1093
+ ? params["models"]
1094
+ : undefined;
1095
+ const placement = planToPlacement(plan, registryLookup(registry), models === undefined ? {} : { models });
1096
+ const graph = placementToGraph(placement);
1097
+ const validation = await validateBuiltGraph(run, graph);
1098
+ const save = params["save"] !== false;
1099
+ let savedRow = null;
1100
+ if (save) {
1101
+ const written = await persistSetup(owned.row, { stage: "done" }, { graph: graph });
1102
+ if (isError(written))
1103
+ return written;
1104
+ savedRow = written;
1105
+ }
1106
+ return {
1107
+ workflow_id: id,
1108
+ built: true,
1109
+ submitted: savedRow !== null,
1110
+ verified_result: false,
1111
+ saved: savedRow !== null,
1112
+ stage: save ? "done" : owned.setup?.stage ?? "setup",
1113
+ graph,
1114
+ /** Plan input name → the sample a test run should send. */
1115
+ sample_inputs: Object.fromEntries(plan.inputs.map((input) => [
1116
+ input.name,
1117
+ input.sample ?? ""
1118
+ ])),
1119
+ /**
1120
+ * What the builder could not wire. Empty is the only value that means the
1121
+ * graph does what the plan described — a validated graph with issues here
1122
+ * is exactly the R6 failure: it runs and produces nothing.
1123
+ */
1124
+ issues: placement.issues,
1125
+ validation
1126
+ };
1127
+ }
1128
+ };
1129
+ /** Run the same static checks `validate_workflow` runs, on a built graph. */
1130
+ async function validateBuiltGraph(run, graph) {
1131
+ return validateWorkflow.impl(run, { graph });
1132
+ }
1133
+ async function loadOwnedGame(run, id) {
1134
+ const { Workflow } = await import("@nodetool-ai/models");
1135
+ const row = (await Workflow.get(id));
1136
+ if (!row || row.user_id !== userIdOf(run.context)) {
1137
+ return { error: `Workflow ${id} was not found, or it is not yours.` };
1138
+ }
1139
+ return { row, game: readGameSetup(row.settings) };
1140
+ }
1141
+ /** Write a game patch back onto the row, leaving the rest of `settings` alone. */
1142
+ async function persistGame(row, patch, extra = {}) {
1143
+ const { Workflow } = await import("@nodetool-ai/models");
1144
+ const fields = {
1145
+ settings: writeGameSetup(row.settings, patch)
1146
+ };
1147
+ if (extra.graph !== undefined) {
1148
+ fields.graph = extra.graph;
1149
+ }
1150
+ if (extra.workspaceId !== undefined) {
1151
+ fields.workspace_id = extra.workspaceId;
1152
+ }
1153
+ const updated = await Workflow.updateFieldsIfUnchanged(row.id, row.updated_at, fields);
1154
+ if (!updated) {
1155
+ return {
1156
+ error: `Workflow ${row.id} changed since you read it — read it again and retry.`
1157
+ };
1158
+ }
1159
+ return updated;
1160
+ }
1161
+ /** The template's manifest, or the reason there is none to work from. */
1162
+ async function requireGameTemplate(game) {
1163
+ const id = game?.template?.trim() ?? "";
1164
+ if (id === "") {
1165
+ return {
1166
+ error: "This workflow has no native game template yet. Pick topdown with set_game_setup."
1167
+ };
1168
+ }
1169
+ const { getNativeTemplate, listNativeTemplates } = await import("@nodetool-ai/game-nodes");
1170
+ try {
1171
+ return getNativeTemplate(id);
1172
+ }
1173
+ catch {
1174
+ return {
1175
+ error: `Unknown template ${id}. Templates: ${listNativeTemplates()
1176
+ .map((t) => t.id)
1177
+ .join(", ")}.`
1178
+ };
1179
+ }
1180
+ }
1181
+ /** `provider:model_id` as the model value a node's model prop takes. */
1182
+ function modelValue(tileId, type) {
1183
+ const at = tileId.indexOf(":");
1184
+ if (at <= 0 || at === tileId.length - 1)
1185
+ return null;
1186
+ const provider = tileId.slice(0, at);
1187
+ const id = tileId.slice(at + 1);
1188
+ return { type, provider, id, name: id, path: null };
1189
+ }
1190
+ /** The style entity's name and descriptor, read off the library row. */
1191
+ async function loadStyle(run, entityId) {
1192
+ if (!entityId)
1193
+ return null;
1194
+ const { Asset } = await import("@nodetool-ai/models");
1195
+ const asset = await Asset.find(userIdOf(run.context), entityId);
1196
+ const marker = readEntityMarker(asset?.metadata ?? null);
1197
+ if (!marker || marker.kind !== "style")
1198
+ return null;
1199
+ const style = { name: marker.name, descriptor: marker.descriptor };
1200
+ const referenceAssetId = marker.reference_asset_id ??
1201
+ (asset?.content_type.startsWith("image/") ? asset.id : undefined);
1202
+ if (referenceAssetId)
1203
+ style.referenceAssetId = referenceAssetId;
1204
+ return style;
1205
+ }
1206
+ /**
1207
+ * What the Look step's `Continue` is blocked on (criterion 4): every cast
1208
+ * entry named and described, every slot prompt written.
1209
+ */
1210
+ function designGaps(design) {
1211
+ const gaps = [];
1212
+ for (const member of design.cast) {
1213
+ if (member.name.trim() === "") {
1214
+ gaps.push(`cast "${member.slot_id}" has no name`);
1215
+ }
1216
+ if (member.descriptor.trim() === "") {
1217
+ gaps.push(`cast "${member.slot_id}" has no descriptor`);
1218
+ }
1219
+ }
1220
+ for (const entry of design.slot_prompts) {
1221
+ if (entry.prompt.trim() === "") {
1222
+ gaps.push(`slot "${entry.slot_id}" has no prompt`);
1223
+ }
1224
+ }
1225
+ return gaps;
1226
+ }
1227
+ // ── set_game_setup ──────────────────────────────────────────────────────────
1228
+ const SET_GAME_STRING_FIELDS = [
1229
+ "brief",
1230
+ "template",
1231
+ "style_entity_id",
1232
+ "image_model",
1233
+ "sfx_node_type",
1234
+ "music_model",
1235
+ "project_name",
1236
+ "game_id",
1237
+ "stage"
1238
+ ];
1239
+ const setGameSetup = {
1240
+ spec: setGameSetupSpec,
1241
+ impl: async (run, params) => {
1242
+ const id = String(params["workflow_id"]);
1243
+ const owned = await loadOwnedGame(run, id);
1244
+ if (isError(owned))
1245
+ return owned;
1246
+ const patch = {};
1247
+ for (const field of SET_GAME_STRING_FIELDS) {
1248
+ if (isString(params[field]))
1249
+ patch[field] = params[field];
1250
+ }
1251
+ if (Object.keys(patch).length === 0) {
1252
+ return {
1253
+ error: "Nothing to set — pass brief, template, style_entity_id, image_model, sfx_node_type, music_model, project_name or stage."
1254
+ };
1255
+ }
1256
+ const saved = await persistGame(owned.row, patch);
1257
+ if (isError(saved))
1258
+ return saved;
1259
+ return { workflow_id: id, game: readGameSetup(saved.settings) };
1260
+ }
1261
+ };
1262
+ // ── design_game ─────────────────────────────────────────────────────────────
1263
+ const designGame = {
1264
+ spec: designGameSpec,
1265
+ impl: async (run, params) => {
1266
+ const id = String(params["workflow_id"]);
1267
+ const owned = await loadOwnedGame(run, id);
1268
+ if (isError(owned))
1269
+ return owned;
1270
+ const template = await requireGameTemplate(owned.game);
1271
+ if (isError(template))
1272
+ return template;
1273
+ const brief = owned.game?.brief?.trim() ?? "";
1274
+ const supplied = params["design"];
1275
+ const provider = isString(params["provider"]) ? params["provider"] : "";
1276
+ const model = isString(params["model"]) ? params["model"] : "";
1277
+ let raw;
1278
+ if (supplied !== undefined) {
1279
+ raw = supplied;
1280
+ }
1281
+ else if (provider.length > 0 && model.length > 0) {
1282
+ if (brief.length === 0) {
1283
+ return {
1284
+ error: "This workflow has no game brief, so there is nothing to design. Write one with set_game_setup first."
1285
+ };
1286
+ }
1287
+ const { generateStructured } = await import("@nodetool-ai/runtime");
1288
+ raw = await generateStructured(await run.context.getProvider(provider), {
1289
+ model,
1290
+ maxTokens: 4096,
1291
+ messages: [
1292
+ { role: "system", content: GAME_DESIGNER_SYSTEM_PROMPT },
1293
+ {
1294
+ role: "user",
1295
+ content: [
1296
+ `Brief: ${brief}`,
1297
+ `Template: ${template.id}`,
1298
+ "",
1299
+ "Asset manifest:",
1300
+ JSON.stringify(template.manifest.slots, null, 2)
1301
+ ].join("\n")
1302
+ }
1303
+ ],
1304
+ toolName: GAME_DESIGN_TOOL_NAME,
1305
+ toolDescription: GAME_DESIGN_TOOL_DESCRIPTION,
1306
+ schema: buildGameDesignSchema(template.manifest)
1307
+ });
1308
+ }
1309
+ else {
1310
+ // No model: the shipped chip whose brief this is carries a pinned design,
1311
+ // so a keyless install still reaches the review step.
1312
+ const chip = GAME_INSPIRATION_CHIPS.find((entry) => entry.template === template.id &&
1313
+ entry.brief.trim().toLowerCase() === brief.toLowerCase());
1314
+ if (!chip) {
1315
+ return {
1316
+ error: "Pass provider and model to design, or pass a `design` to store without calling one. " +
1317
+ `Without either, only a shipped inspiration chip's brief designs: ${GAME_INSPIRATION_CHIPS.map((entry) => `"${entry.brief}"`).join(", ")}.`
1318
+ };
1319
+ }
1320
+ raw = chip.design;
1321
+ }
1322
+ const parsed = parseGameDesign(raw, template.manifest);
1323
+ if (!parsed) {
1324
+ return { error: "The designer did not return a design." };
1325
+ }
1326
+ // Nothing below places a node: the design is text on the row.
1327
+ const saved = await persistGame(owned.row, {
1328
+ design: parsed.design,
1329
+ design_source: designSourceOf(template.id, brief),
1330
+ stage: "review"
1331
+ });
1332
+ if (isError(saved))
1333
+ return saved;
1334
+ return {
1335
+ workflow_id: id,
1336
+ stage: "review",
1337
+ design: parsed.design,
1338
+ /** Slots the designer skipped, filled from the template's own prompt. */
1339
+ filled_from_manifest: parsed.filled,
1340
+ gaps: designGaps(parsed.design),
1341
+ nodes_placed: 0
1342
+ };
1343
+ }
1344
+ };
1345
+ // ── update_game_design ──────────────────────────────────────────────────────
1346
+ /** Merge `patch` entries into `current` by `slot_id`, keeping order. */
1347
+ function mergeBySlot(current, patch) {
1348
+ if (!Array.isArray(patch))
1349
+ return [...current];
1350
+ const merged = [...current];
1351
+ for (const entry of patch) {
1352
+ if (!isObjectLike(entry) || !isString(entry.slot_id))
1353
+ continue;
1354
+ const slotId = entry.slot_id;
1355
+ const at = merged.findIndex((item) => item.slot_id === slotId);
1356
+ if (at === -1) {
1357
+ merged.push(entry);
1358
+ }
1359
+ else {
1360
+ merged[at] = { ...merged[at], ...entry };
1361
+ }
1362
+ }
1363
+ return merged;
1364
+ }
1365
+ const GAME_DESIGN_TEXT_FIELDS = [
1366
+ "title",
1367
+ "premise",
1368
+ "core_loop",
1369
+ "level",
1370
+ "win",
1371
+ "lose"
1372
+ ];
1373
+ const updateGameDesign = {
1374
+ spec: updateGameDesignSpec,
1375
+ impl: async (run, params) => {
1376
+ const id = String(params["workflow_id"]);
1377
+ const owned = await loadOwnedGame(run, id);
1378
+ if (isError(owned))
1379
+ return owned;
1380
+ const current = owned.game?.design;
1381
+ if (!current) {
1382
+ return {
1383
+ error: "This workflow has no game design yet. Run design_game first, or store one with design_game's `design` argument."
1384
+ };
1385
+ }
1386
+ const next = { ...current };
1387
+ for (const field of GAME_DESIGN_TEXT_FIELDS) {
1388
+ if (isString(params[field]))
1389
+ next[field] = params[field];
1390
+ }
1391
+ if (Array.isArray(params["player_verbs"])) {
1392
+ next["player_verbs"] = params["player_verbs"].filter(isString);
1393
+ }
1394
+ next["cast"] = mergeBySlot(current.cast, params["cast"]);
1395
+ next["enemies"] = mergeBySlot(current.enemies, params["enemies"]);
1396
+ next["slot_prompts"] = mergeBySlot(current.slot_prompts, params["slot_prompts"]);
1397
+ const parsed = gameDesign.safeParse(next);
1398
+ if (!parsed.success) {
1399
+ return { error: `The edited design is malformed: ${parsed.error.message}` };
1400
+ }
1401
+ const saved = await persistGame(owned.row, { design: parsed.data });
1402
+ if (isError(saved))
1403
+ return saved;
1404
+ return {
1405
+ workflow_id: id,
1406
+ design: parsed.data,
1407
+ gaps: designGaps(parsed.data)
1408
+ };
1409
+ }
1410
+ };
1411
+ // ── build_game ──────────────────────────────────────────────────────────────
1412
+ const buildGame = {
1413
+ spec: buildGameSpec,
1414
+ impl: async (run, params) => {
1415
+ const id = String(params["workflow_id"]);
1416
+ const owned = await loadOwnedGame(run, id);
1417
+ if (isError(owned))
1418
+ return owned;
1419
+ const template = await requireGameTemplate(owned.game);
1420
+ if (isError(template))
1421
+ return template;
1422
+ const design = owned.game?.design;
1423
+ if (!design) {
1424
+ return {
1425
+ error: "This workflow has no game design yet. Run design_game first, then build_game."
1426
+ };
1427
+ }
1428
+ const gaps = designGaps(design);
1429
+ if (gaps.length > 0) {
1430
+ return {
1431
+ error: "Every cast member needs a name and a descriptor and every slot needs a prompt before the graph is built. " +
1432
+ `Unfinished: ${gaps.join("; ")}. Fix them with update_game_design.`,
1433
+ gaps
1434
+ };
1435
+ }
1436
+ const registry = run.nodeRegistry;
1437
+ if (!registry) {
1438
+ return {
1439
+ error: "Cannot build: no node registry is available in this process, so no node type could be resolved."
1440
+ };
1441
+ }
1442
+ const imageTile = owned.game?.image_model ?? "";
1443
+ const imageModel = modelValue(imageTile, "image_model");
1444
+ if (!imageModel) {
1445
+ return {
1446
+ error: "No image model is chosen. Set image_model to `provider:model_id` with set_game_setup — find_model has the ids."
1447
+ };
1448
+ }
1449
+ // A setup saved in the browser keeps "the template's own audio" as the
1450
+ // placeholder sentinel, not as an absent field, so both audio answers are
1451
+ // normalized the way the flow normalizes them (D27). Handing the sentinel
1452
+ // on would fail this as an invalid model id and reach the registry as a
1453
+ // node type nothing answers for.
1454
+ const musicTile = gameAudioChoice(owned.game?.music_model);
1455
+ const musicModel = musicTile === null ? null : modelValue(musicTile, "music_model");
1456
+ if (musicTile !== null && !musicModel) {
1457
+ return {
1458
+ error: `music_model "${musicTile}" is not \`provider:model_id\`. Omit it to keep the template's placeholder music.`
1459
+ };
1460
+ }
1461
+ const projectName = owned.game?.project_name?.trim() ||
1462
+ design.title.trim() ||
1463
+ template.id;
1464
+ const { Game } = await import("@nodetool-ai/models");
1465
+ let nativeGame = owned.game?.game_id
1466
+ ? await Game.findOwned(userIdOf(run.context), owned.game.game_id)
1467
+ : null;
1468
+ if (nativeGame && nativeGame.project_id !== owned.row.project_id) {
1469
+ return { error: "The selected game belongs to another project" };
1470
+ }
1471
+ if (owned.game?.game_id && !nativeGame) {
1472
+ return { error: "The selected native game was not found" };
1473
+ }
1474
+ if (!nativeGame && params["save"] === false) {
1475
+ return { error: "Create or select a native game before previewing the asset graph" };
1476
+ }
1477
+ if (!nativeGame) {
1478
+ const { createNativeGame } = await import("./game.js");
1479
+ const created = await createNativeGame(userIdOf(run.context), owned.row.project_id, projectName);
1480
+ if ("error" in created)
1481
+ return created;
1482
+ nativeGame = created.game;
1483
+ }
1484
+ const choices = {
1485
+ imageModel,
1486
+ sfxNodeType: gameAudioChoice(owned.game?.sfx_node_type),
1487
+ musicModel,
1488
+ style: await loadStyle(run, owned.game?.style_entity_id),
1489
+ projectName,
1490
+ gameId: nativeGame.id,
1491
+ directory: nativeGame.source_root,
1492
+ verify: true
1493
+ };
1494
+ const placement = gameGraphPlacement(template.manifest, design, choices, registryLookup(registry));
1495
+ const graph = placementToGraph(placement);
1496
+ const validation = await validateBuiltGraph(run, graph);
1497
+ const save = params["save"] !== false;
1498
+ let savedRow = null;
1499
+ if (save) {
1500
+ const written = await persistGame(owned.row, { stage: "done", project_name: projectName, game_id: nativeGame.id }, { graph: graph, workspaceId: nativeGame.workspace_id });
1501
+ if (isError(written))
1502
+ return written;
1503
+ savedRow = written;
1504
+ }
1505
+ return {
1506
+ workflow_id: id,
1507
+ game_id: nativeGame.id,
1508
+ saved: savedRow !== null,
1509
+ stage: save ? "done" : owned.game?.stage ?? "look",
1510
+ graph,
1511
+ node_count: placement.nodes.length,
1512
+ directory: choices.directory,
1513
+ /**
1514
+ * The slots the builder could not wire. Empty is the only value that
1515
+ * means the graph fills every slot the template needs — a validated graph
1516
+ * with issues here exports a project with holes in it.
1517
+ */
1518
+ issues: placement.issues,
1519
+ validation
1520
+ };
1521
+ }
1522
+ };
1523
+ /** Every workflow capability, in the order `getAllMcpTools` offered them. */
1524
+ export const WORKFLOW_CAPABILITIES = [
1525
+ listWorkflows,
1526
+ getWorkflow,
1527
+ createWorkflow,
1528
+ updateWorkflow,
1529
+ deleteWorkflow,
1530
+ listWorkflowVersions,
1531
+ getWorkflowVersion,
1532
+ createWorkflowVersion,
1533
+ restoreWorkflowVersion,
1534
+ deleteWorkflowVersion,
1535
+ setWorkflowAccess,
1536
+ runWorkflowCapability,
1537
+ debugWorkflow,
1538
+ resolveWorkflowEscalation,
1539
+ validateWorkflow,
1540
+ getExampleWorkflow,
1541
+ exportWorkflowDigraph,
1542
+ startBackgroundJob,
1543
+ setWorkflowSetup,
1544
+ planWorkflow,
1545
+ updateWorkflowPlanStep,
1546
+ buildWorkflowFromPlan,
1547
+ setGameSetup,
1548
+ designGame,
1549
+ updateGameDesign,
1550
+ buildGame
1551
+ ];
1552
+ export const module = {
1553
+ module: "workflows",
1554
+ exports: [...WORKFLOW_CAPABILITIES]
1555
+ };
1556
+ export { listWorkflows, getWorkflow, createWorkflow, updateWorkflow, deleteWorkflow, listWorkflowVersions, getWorkflowVersion, createWorkflowVersion, restoreWorkflowVersion, deleteWorkflowVersion, setWorkflowAccess, runWorkflowCapability, debugWorkflow, resolveWorkflowEscalation, validateWorkflow, getExampleWorkflow, exportWorkflowDigraph, startBackgroundJob, setWorkflowSetup, planWorkflow, updateWorkflowPlanStep, buildWorkflowFromPlan, setGameSetup, designGame, updateGameDesign, buildGame, registryLookup };
1557
+ //# sourceMappingURL=workflows.js.map