@nodetool-ai/dsl 0.7.0-rc.23 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (662) hide show
  1. package/README.md +70 -0
  2. package/dist/.nodetool-build-stamp +1 -0
  3. package/dist/core.d.ts +24 -8
  4. package/dist/core.d.ts.map +1 -1
  5. package/dist/core.js +99 -53
  6. package/dist/core.js.map +1 -1
  7. package/dist/export.d.ts +16 -2
  8. package/dist/export.d.ts.map +1 -1
  9. package/dist/export.js.map +1 -1
  10. package/dist/flow/core.d.ts +120 -0
  11. package/dist/flow/core.d.ts.map +1 -0
  12. package/dist/flow/core.js +330 -0
  13. package/dist/flow/core.js.map +1 -0
  14. package/dist/flow/generated/gemini.audio.d.ts +21 -0
  15. package/dist/flow/generated/gemini.audio.d.ts.map +1 -0
  16. package/dist/flow/generated/gemini.audio.js +11 -0
  17. package/dist/flow/generated/gemini.audio.js.map +1 -0
  18. package/dist/flow/generated/gemini.image.d.ts +13 -0
  19. package/dist/flow/generated/gemini.image.d.ts.map +1 -0
  20. package/dist/flow/generated/gemini.image.js +8 -0
  21. package/dist/flow/generated/gemini.image.js.map +1 -0
  22. package/dist/flow/generated/gemini.text.d.ts +19 -0
  23. package/dist/flow/generated/gemini.text.d.ts.map +1 -0
  24. package/dist/flow/generated/gemini.text.js +11 -0
  25. package/dist/flow/generated/gemini.text.js.map +1 -0
  26. package/dist/flow/generated/gemini.video.d.ts +25 -0
  27. package/dist/flow/generated/gemini.video.d.ts.map +1 -0
  28. package/dist/flow/generated/gemini.video.js +11 -0
  29. package/dist/flow/generated/gemini.video.js.map +1 -0
  30. package/dist/flow/generated/kie.dynamic_schema.d.ts +7 -0
  31. package/dist/flow/generated/kie.dynamic_schema.d.ts.map +1 -0
  32. package/dist/flow/generated/kie.dynamic_schema.js +8 -0
  33. package/dist/flow/generated/kie.dynamic_schema.js.map +1 -0
  34. package/dist/flow/generated/lib.audio.d.ts +152 -0
  35. package/dist/flow/generated/lib.audio.d.ts.map +1 -0
  36. package/dist/flow/generated/lib.audio.js +53 -0
  37. package/dist/flow/generated/lib.audio.js.map +1 -0
  38. package/dist/flow/generated/lib.browser.d.ts +11 -0
  39. package/dist/flow/generated/lib.browser.d.ts.map +1 -0
  40. package/dist/flow/generated/lib.browser.js +8 -0
  41. package/dist/flow/generated/lib.browser.js.map +1 -0
  42. package/dist/flow/generated/lib.charts.d.ts +14 -0
  43. package/dist/flow/generated/lib.charts.d.ts.map +1 -0
  44. package/dist/flow/generated/lib.charts.js +8 -0
  45. package/dist/flow/generated/lib.charts.js.map +1 -0
  46. package/dist/flow/generated/lib.comfy.d.ts +40 -0
  47. package/dist/flow/generated/lib.comfy.d.ts.map +1 -0
  48. package/dist/flow/generated/lib.comfy.js +23 -0
  49. package/dist/flow/generated/lib.comfy.js.map +1 -0
  50. package/dist/flow/generated/lib.grid.d.ts +11 -0
  51. package/dist/flow/generated/lib.grid.d.ts.map +1 -0
  52. package/dist/flow/generated/lib.grid.js +8 -0
  53. package/dist/flow/generated/lib.grid.js.map +1 -0
  54. package/dist/flow/generated/lib.image.channel.d.ts +22 -0
  55. package/dist/flow/generated/lib.image.channel.d.ts.map +1 -0
  56. package/dist/flow/generated/lib.image.channel.js +11 -0
  57. package/dist/flow/generated/lib.image.channel.js.map +1 -0
  58. package/dist/flow/generated/lib.image.color.d.ts +73 -0
  59. package/dist/flow/generated/lib.image.color.d.ts.map +1 -0
  60. package/dist/flow/generated/lib.image.color.js +26 -0
  61. package/dist/flow/generated/lib.image.color.js.map +1 -0
  62. package/dist/flow/generated/lib.image.color_grading.d.ts +126 -0
  63. package/dist/flow/generated/lib.image.color_grading.d.ts.map +1 -0
  64. package/dist/flow/generated/lib.image.color_grading.js +35 -0
  65. package/dist/flow/generated/lib.image.color_grading.js.map +1 -0
  66. package/dist/flow/generated/lib.image.d.ts +11 -0
  67. package/dist/flow/generated/lib.image.d.ts.map +1 -0
  68. package/dist/flow/generated/lib.image.draw.d.ts +92 -0
  69. package/dist/flow/generated/lib.image.draw.d.ts.map +1 -0
  70. package/dist/flow/generated/lib.image.draw.js +29 -0
  71. package/dist/flow/generated/lib.image.draw.js.map +1 -0
  72. package/dist/flow/generated/lib.image.effects.d.ts +53 -0
  73. package/dist/flow/generated/lib.image.effects.d.ts.map +1 -0
  74. package/dist/flow/generated/lib.image.effects.js +20 -0
  75. package/dist/flow/generated/lib.image.effects.js.map +1 -0
  76. package/dist/flow/generated/lib.image.enhance.d.ts +49 -0
  77. package/dist/flow/generated/lib.image.enhance.d.ts.map +1 -0
  78. package/dist/flow/generated/lib.image.enhance.js +23 -0
  79. package/dist/flow/generated/lib.image.enhance.js.map +1 -0
  80. package/dist/flow/generated/lib.image.filter.d.ts +126 -0
  81. package/dist/flow/generated/lib.image.filter.d.ts.map +1 -0
  82. package/dist/flow/generated/lib.image.filter.js +50 -0
  83. package/dist/flow/generated/lib.image.filter.js.map +1 -0
  84. package/dist/flow/generated/lib.image.js +8 -0
  85. package/dist/flow/generated/lib.image.js.map +1 -0
  86. package/dist/flow/generated/lib.image.keyer.d.ts +23 -0
  87. package/dist/flow/generated/lib.image.keyer.d.ts.map +1 -0
  88. package/dist/flow/generated/lib.image.keyer.js +11 -0
  89. package/dist/flow/generated/lib.image.keyer.js.map +1 -0
  90. package/dist/flow/generated/lib.image.mask.d.ts +27 -0
  91. package/dist/flow/generated/lib.image.mask.d.ts.map +1 -0
  92. package/dist/flow/generated/lib.image.mask.js +14 -0
  93. package/dist/flow/generated/lib.image.mask.js.map +1 -0
  94. package/dist/flow/generated/lib.image.warp.d.ts +90 -0
  95. package/dist/flow/generated/lib.image.warp.d.ts.map +1 -0
  96. package/dist/flow/generated/lib.image.warp.js +29 -0
  97. package/dist/flow/generated/lib.image.warp.js.map +1 -0
  98. package/dist/flow/generated/lib.pdf.d.ts +72 -0
  99. package/dist/flow/generated/lib.pdf.d.ts.map +1 -0
  100. package/dist/flow/generated/lib.pdf.js +26 -0
  101. package/dist/flow/generated/lib.pdf.js.map +1 -0
  102. package/dist/flow/generated/lib.sqlite.d.ts +8 -0
  103. package/dist/flow/generated/lib.sqlite.d.ts.map +1 -0
  104. package/dist/flow/generated/lib.sqlite.js +8 -0
  105. package/dist/flow/generated/lib.sqlite.js.map +1 -0
  106. package/dist/flow/generated/lib.svg.d.ts +23 -0
  107. package/dist/flow/generated/lib.svg.d.ts.map +1 -0
  108. package/dist/flow/generated/lib.svg.js +11 -0
  109. package/dist/flow/generated/lib.svg.js.map +1 -0
  110. package/dist/flow/generated/lib.video.download.d.ts +22 -0
  111. package/dist/flow/generated/lib.video.download.d.ts.map +1 -0
  112. package/dist/flow/generated/lib.video.download.js +8 -0
  113. package/dist/flow/generated/lib.video.download.js.map +1 -0
  114. package/dist/flow/generated/messaging.discord.d.ts +21 -0
  115. package/dist/flow/generated/messaging.discord.d.ts.map +1 -0
  116. package/dist/flow/generated/messaging.discord.js +11 -0
  117. package/dist/flow/generated/messaging.discord.js.map +1 -0
  118. package/dist/flow/generated/messaging.telegram.d.ts +25 -0
  119. package/dist/flow/generated/messaging.telegram.d.ts.map +1 -0
  120. package/dist/flow/generated/messaging.telegram.js +11 -0
  121. package/dist/flow/generated/messaging.telegram.js.map +1 -0
  122. package/dist/flow/generated/mistral.embeddings.d.ts +10 -0
  123. package/dist/flow/generated/mistral.embeddings.d.ts.map +1 -0
  124. package/dist/flow/generated/mistral.embeddings.js +8 -0
  125. package/dist/flow/generated/mistral.embeddings.js.map +1 -0
  126. package/dist/flow/generated/mistral.text.d.ts +22 -0
  127. package/dist/flow/generated/mistral.text.d.ts.map +1 -0
  128. package/dist/flow/generated/mistral.text.js +11 -0
  129. package/dist/flow/generated/mistral.text.js.map +1 -0
  130. package/dist/flow/generated/mistral.vision.d.ts +21 -0
  131. package/dist/flow/generated/mistral.vision.d.ts.map +1 -0
  132. package/dist/flow/generated/mistral.vision.js +11 -0
  133. package/dist/flow/generated/mistral.vision.js.map +1 -0
  134. package/dist/flow/generated/nodetool.agents.d.ts +102 -0
  135. package/dist/flow/generated/nodetool.agents.d.ts.map +1 -0
  136. package/dist/flow/generated/nodetool.agents.js +35 -0
  137. package/dist/flow/generated/nodetool.agents.js.map +1 -0
  138. package/dist/flow/generated/nodetool.audio.d.ts +223 -0
  139. package/dist/flow/generated/nodetool.audio.d.ts.map +1 -0
  140. package/dist/flow/generated/nodetool.audio.js +86 -0
  141. package/dist/flow/generated/nodetool.audio.js.map +1 -0
  142. package/dist/flow/generated/nodetool.audio.realtime.d.ts +83 -0
  143. package/dist/flow/generated/nodetool.audio.realtime.d.ts.map +1 -0
  144. package/dist/flow/generated/nodetool.audio.realtime.js +41 -0
  145. package/dist/flow/generated/nodetool.audio.realtime.js.map +1 -0
  146. package/dist/flow/generated/nodetool.audio.synth.d.ts +154 -0
  147. package/dist/flow/generated/nodetool.audio.synth.d.ts.map +1 -0
  148. package/dist/flow/generated/nodetool.audio.synth.js +59 -0
  149. package/dist/flow/generated/nodetool.audio.synth.js.map +1 -0
  150. package/dist/flow/generated/nodetool.blender.d.ts +119 -0
  151. package/dist/flow/generated/nodetool.blender.d.ts.map +1 -0
  152. package/dist/flow/generated/nodetool.blender.js +23 -0
  153. package/dist/flow/generated/nodetool.blender.js.map +1 -0
  154. package/dist/flow/generated/nodetool.code.d.ts +16 -0
  155. package/dist/flow/generated/nodetool.code.d.ts.map +1 -0
  156. package/dist/flow/generated/nodetool.code.js +11 -0
  157. package/dist/flow/generated/nodetool.code.js.map +1 -0
  158. package/dist/flow/generated/nodetool.compare.d.ts +14 -0
  159. package/dist/flow/generated/nodetool.compare.d.ts.map +1 -0
  160. package/dist/flow/generated/nodetool.compare.js +8 -0
  161. package/dist/flow/generated/nodetool.compare.js.map +1 -0
  162. package/dist/flow/generated/nodetool.constant.d.ts +247 -0
  163. package/dist/flow/generated/nodetool.constant.d.ts.map +1 -0
  164. package/dist/flow/generated/nodetool.constant.js +101 -0
  165. package/dist/flow/generated/nodetool.constant.js.map +1 -0
  166. package/dist/flow/generated/nodetool.control.d.ts +313 -0
  167. package/dist/flow/generated/nodetool.control.d.ts.map +1 -0
  168. package/dist/flow/generated/nodetool.control.js +143 -0
  169. package/dist/flow/generated/nodetool.control.js.map +1 -0
  170. package/dist/flow/generated/nodetool.creative.d.ts +59 -0
  171. package/dist/flow/generated/nodetool.creative.d.ts.map +1 -0
  172. package/dist/flow/generated/nodetool.creative.js +23 -0
  173. package/dist/flow/generated/nodetool.creative.js.map +1 -0
  174. package/dist/flow/generated/nodetool.data.d.ts +26 -0
  175. package/dist/flow/generated/nodetool.data.d.ts.map +1 -0
  176. package/dist/flow/generated/nodetool.data.js +17 -0
  177. package/dist/flow/generated/nodetool.data.js.map +1 -0
  178. package/dist/flow/generated/nodetool.document.d.ts +30 -0
  179. package/dist/flow/generated/nodetool.document.d.ts.map +1 -0
  180. package/dist/flow/generated/nodetool.document.js +17 -0
  181. package/dist/flow/generated/nodetool.document.js.map +1 -0
  182. package/dist/flow/generated/nodetool.entity.d.ts +45 -0
  183. package/dist/flow/generated/nodetool.entity.d.ts.map +1 -0
  184. package/dist/flow/generated/nodetool.entity.js +17 -0
  185. package/dist/flow/generated/nodetool.entity.js.map +1 -0
  186. package/dist/flow/generated/nodetool.fake.d.ts +21 -0
  187. package/dist/flow/generated/nodetool.fake.d.ts.map +1 -0
  188. package/dist/flow/generated/nodetool.fake.js +11 -0
  189. package/dist/flow/generated/nodetool.fake.js.map +1 -0
  190. package/dist/flow/generated/nodetool.game.d.ts +111 -0
  191. package/dist/flow/generated/nodetool.game.d.ts.map +1 -0
  192. package/dist/flow/generated/nodetool.game.js +32 -0
  193. package/dist/flow/generated/nodetool.game.js.map +1 -0
  194. package/dist/flow/generated/nodetool.generators.d.ts +66 -0
  195. package/dist/flow/generated/nodetool.generators.d.ts.map +1 -0
  196. package/dist/flow/generated/nodetool.generators.js +26 -0
  197. package/dist/flow/generated/nodetool.generators.js.map +1 -0
  198. package/dist/flow/generated/nodetool.image.d.ts +297 -0
  199. package/dist/flow/generated/nodetool.image.d.ts.map +1 -0
  200. package/dist/flow/generated/nodetool.image.js +95 -0
  201. package/dist/flow/generated/nodetool.image.js.map +1 -0
  202. package/dist/flow/generated/nodetool.input.d.ts +315 -0
  203. package/dist/flow/generated/nodetool.input.d.ts.map +1 -0
  204. package/dist/flow/generated/nodetool.input.js +107 -0
  205. package/dist/flow/generated/nodetool.input.js.map +1 -0
  206. package/dist/flow/generated/nodetool.model3d.d.ts +183 -0
  207. package/dist/flow/generated/nodetool.model3d.d.ts.map +1 -0
  208. package/dist/flow/generated/nodetool.model3d.js +59 -0
  209. package/dist/flow/generated/nodetool.model3d.js.map +1 -0
  210. package/dist/flow/generated/nodetool.output.d.ts +13 -0
  211. package/dist/flow/generated/nodetool.output.d.ts.map +1 -0
  212. package/dist/flow/generated/nodetool.output.js +11 -0
  213. package/dist/flow/generated/nodetool.output.js.map +1 -0
  214. package/dist/flow/generated/nodetool.script.d.ts +66 -0
  215. package/dist/flow/generated/nodetool.script.d.ts.map +1 -0
  216. package/dist/flow/generated/nodetool.script.js +23 -0
  217. package/dist/flow/generated/nodetool.script.js.map +1 -0
  218. package/dist/flow/generated/nodetool.sketch.d.ts +26 -0
  219. package/dist/flow/generated/nodetool.sketch.d.ts.map +1 -0
  220. package/dist/flow/generated/nodetool.sketch.js +14 -0
  221. package/dist/flow/generated/nodetool.sketch.js.map +1 -0
  222. package/dist/flow/generated/nodetool.storyboard.d.ts +92 -0
  223. package/dist/flow/generated/nodetool.storyboard.d.ts.map +1 -0
  224. package/dist/flow/generated/nodetool.storyboard.js +26 -0
  225. package/dist/flow/generated/nodetool.storyboard.js.map +1 -0
  226. package/dist/flow/generated/nodetool.text.d.ts +121 -0
  227. package/dist/flow/generated/nodetool.text.d.ts.map +1 -0
  228. package/dist/flow/generated/nodetool.text.js +53 -0
  229. package/dist/flow/generated/nodetool.text.js.map +1 -0
  230. package/dist/flow/generated/nodetool.timeline.d.ts +58 -0
  231. package/dist/flow/generated/nodetool.timeline.d.ts.map +1 -0
  232. package/dist/flow/generated/nodetool.timeline.js +20 -0
  233. package/dist/flow/generated/nodetool.timeline.js.map +1 -0
  234. package/dist/flow/generated/nodetool.triggers.d.ts +80 -0
  235. package/dist/flow/generated/nodetool.triggers.d.ts.map +1 -0
  236. package/dist/flow/generated/nodetool.triggers.js +29 -0
  237. package/dist/flow/generated/nodetool.triggers.js.map +1 -0
  238. package/dist/flow/generated/nodetool.variable.d.ts +20 -0
  239. package/dist/flow/generated/nodetool.variable.d.ts.map +1 -0
  240. package/dist/flow/generated/nodetool.variable.js +14 -0
  241. package/dist/flow/generated/nodetool.variable.js.map +1 -0
  242. package/dist/flow/generated/nodetool.video.d.ts +324 -0
  243. package/dist/flow/generated/nodetool.video.d.ts.map +1 -0
  244. package/dist/flow/generated/nodetool.video.js +110 -0
  245. package/dist/flow/generated/nodetool.video.js.map +1 -0
  246. package/dist/flow/generated/nodetool.workflows.base_node.d.ts +8 -0
  247. package/dist/flow/generated/nodetool.workflows.base_node.d.ts.map +1 -0
  248. package/dist/flow/generated/nodetool.workflows.base_node.js +8 -0
  249. package/dist/flow/generated/nodetool.workflows.base_node.js.map +1 -0
  250. package/dist/flow/generated/nodetool.workflows.subgraph.d.ts +10 -0
  251. package/dist/flow/generated/nodetool.workflows.subgraph.d.ts.map +1 -0
  252. package/dist/flow/generated/nodetool.workflows.subgraph.js +11 -0
  253. package/dist/flow/generated/nodetool.workflows.subgraph.js.map +1 -0
  254. package/dist/flow/generated/nodetool.workflows.workflow_node.d.ts +11 -0
  255. package/dist/flow/generated/nodetool.workflows.workflow_node.d.ts.map +1 -0
  256. package/dist/flow/generated/nodetool.workflows.workflow_node.js +11 -0
  257. package/dist/flow/generated/nodetool.workflows.workflow_node.js.map +1 -0
  258. package/dist/flow/generated/openai.agents.d.ts +61 -0
  259. package/dist/flow/generated/openai.agents.d.ts.map +1 -0
  260. package/dist/flow/generated/openai.agents.js +23 -0
  261. package/dist/flow/generated/openai.agents.js.map +1 -0
  262. package/dist/flow/generated/openai.audio.d.ts +35 -0
  263. package/dist/flow/generated/openai.audio.d.ts.map +1 -0
  264. package/dist/flow/generated/openai.audio.js +14 -0
  265. package/dist/flow/generated/openai.audio.js.map +1 -0
  266. package/dist/flow/generated/openai.image.d.ts +33 -0
  267. package/dist/flow/generated/openai.image.d.ts.map +1 -0
  268. package/dist/flow/generated/openai.image.js +14 -0
  269. package/dist/flow/generated/openai.image.js.map +1 -0
  270. package/dist/flow/generated/openai.text.d.ts +27 -0
  271. package/dist/flow/generated/openai.text.d.ts.map +1 -0
  272. package/dist/flow/generated/openai.text.js +14 -0
  273. package/dist/flow/generated/openai.text.js.map +1 -0
  274. package/dist/flow/generated/vector.d.ts +130 -0
  275. package/dist/flow/generated/vector.d.ts.map +1 -0
  276. package/dist/flow/generated/vector.js +44 -0
  277. package/dist/flow/generated/vector.js.map +1 -0
  278. package/dist/flow/generated/xai.image.d.ts +11 -0
  279. package/dist/flow/generated/xai.image.d.ts.map +1 -0
  280. package/dist/flow/generated/xai.image.js +8 -0
  281. package/dist/flow/generated/xai.image.js.map +1 -0
  282. package/dist/flow/generated/xai.text.d.ts +23 -0
  283. package/dist/flow/generated/xai.text.d.ts.map +1 -0
  284. package/dist/flow/generated/xai.text.js +11 -0
  285. package/dist/flow/generated/xai.text.js.map +1 -0
  286. package/dist/flow/generated/xai.vision.d.ts +13 -0
  287. package/dist/flow/generated/xai.vision.d.ts.map +1 -0
  288. package/dist/flow/generated/xai.vision.js +8 -0
  289. package/dist/flow/generated/xai.vision.js.map +1 -0
  290. package/dist/flow/guest-core.d.ts +11 -0
  291. package/dist/flow/guest-core.d.ts.map +1 -0
  292. package/dist/flow/guest-core.js +49 -0
  293. package/dist/flow/guest-core.js.map +1 -0
  294. package/dist/flow/index.d.ts +12 -0
  295. package/dist/flow/index.d.ts.map +1 -0
  296. package/dist/flow/index.js +10 -0
  297. package/dist/flow/index.js.map +1 -0
  298. package/dist/flow/invoke.d.ts +12 -0
  299. package/dist/flow/invoke.d.ts.map +1 -0
  300. package/dist/flow/invoke.js +24 -0
  301. package/dist/flow/invoke.js.map +1 -0
  302. package/dist/flow/streaming.d.ts +68 -0
  303. package/dist/flow/streaming.d.ts.map +1 -0
  304. package/dist/flow/streaming.js +374 -0
  305. package/dist/flow/streaming.js.map +1 -0
  306. package/dist/generated/gemini.audio.d.ts +6 -6
  307. package/dist/generated/gemini.audio.d.ts.map +1 -1
  308. package/dist/generated/gemini.audio.js.map +1 -1
  309. package/dist/generated/gemini.image.d.ts +5 -3
  310. package/dist/generated/gemini.image.d.ts.map +1 -1
  311. package/dist/generated/gemini.image.js.map +1 -1
  312. package/dist/generated/gemini.text.d.ts +6 -6
  313. package/dist/generated/gemini.text.d.ts.map +1 -1
  314. package/dist/generated/gemini.text.js.map +1 -1
  315. package/dist/generated/gemini.video.d.ts +8 -6
  316. package/dist/generated/gemini.video.d.ts.map +1 -1
  317. package/dist/generated/gemini.video.js.map +1 -1
  318. package/dist/generated/index.d.ts +23 -22
  319. package/dist/generated/index.d.ts.map +1 -1
  320. package/dist/generated/index.js +23 -22
  321. package/dist/generated/index.js.map +1 -1
  322. package/dist/generated/kie.dynamic_schema.d.ts +2 -2
  323. package/dist/generated/kie.dynamic_schema.d.ts.map +1 -1
  324. package/dist/generated/kie.dynamic_schema.js.map +1 -1
  325. package/dist/generated/lib.audio.d.ts +47 -44
  326. package/dist/generated/lib.audio.d.ts.map +1 -1
  327. package/dist/generated/lib.audio.js +6 -6
  328. package/dist/generated/lib.audio.js.map +1 -1
  329. package/dist/generated/lib.browser.d.ts +4 -63
  330. package/dist/generated/lib.browser.d.ts.map +1 -1
  331. package/dist/generated/lib.browser.js +0 -15
  332. package/dist/generated/lib.browser.js.map +1 -1
  333. package/dist/generated/lib.charts.d.ts +2 -3
  334. package/dist/generated/lib.charts.d.ts.map +1 -1
  335. package/dist/generated/lib.charts.js.map +1 -1
  336. package/dist/generated/lib.comfy.d.ts +32 -0
  337. package/dist/generated/lib.comfy.d.ts.map +1 -0
  338. package/dist/generated/lib.comfy.js +12 -0
  339. package/dist/generated/lib.comfy.js.map +1 -0
  340. package/dist/generated/lib.grid.d.ts +2 -10
  341. package/dist/generated/lib.grid.d.ts.map +1 -1
  342. package/dist/generated/lib.grid.js +0 -3
  343. package/dist/generated/lib.grid.js.map +1 -1
  344. package/dist/generated/lib.image.channel.d.ts +23 -0
  345. package/dist/generated/lib.image.channel.d.ts.map +1 -0
  346. package/dist/generated/lib.image.channel.js +9 -0
  347. package/dist/generated/lib.image.channel.js.map +1 -0
  348. package/dist/generated/lib.image.color.d.ts +74 -0
  349. package/dist/generated/lib.image.color.d.ts.map +1 -0
  350. package/dist/generated/lib.image.color.js +24 -0
  351. package/dist/generated/lib.image.color.js.map +1 -0
  352. package/dist/generated/lib.image.color_grading.d.ts +20 -21
  353. package/dist/generated/lib.image.color_grading.d.ts.map +1 -1
  354. package/dist/generated/lib.image.color_grading.js.map +1 -1
  355. package/dist/generated/lib.image.d.ts +4 -13
  356. package/dist/generated/lib.image.d.ts.map +1 -1
  357. package/dist/generated/lib.image.draw.d.ts +63 -6
  358. package/dist/generated/lib.image.draw.d.ts.map +1 -1
  359. package/dist/generated/lib.image.draw.js +15 -0
  360. package/dist/generated/lib.image.draw.js.map +1 -1
  361. package/dist/generated/lib.image.effects.d.ts +54 -0
  362. package/dist/generated/lib.image.effects.d.ts.map +1 -0
  363. package/dist/generated/lib.image.effects.js +18 -0
  364. package/dist/generated/lib.image.effects.js.map +1 -0
  365. package/dist/generated/lib.image.enhance.d.ts +12 -61
  366. package/dist/generated/lib.image.enhance.d.ts.map +1 -1
  367. package/dist/generated/lib.image.enhance.js +0 -18
  368. package/dist/generated/lib.image.enhance.js.map +1 -1
  369. package/dist/generated/lib.image.filter.d.ts +68 -36
  370. package/dist/generated/lib.image.filter.d.ts.map +1 -1
  371. package/dist/generated/lib.image.filter.js +15 -6
  372. package/dist/generated/lib.image.filter.js.map +1 -1
  373. package/dist/generated/lib.image.js +2 -5
  374. package/dist/generated/lib.image.js.map +1 -1
  375. package/dist/generated/lib.image.keyer.d.ts +24 -0
  376. package/dist/generated/lib.image.keyer.d.ts.map +1 -0
  377. package/dist/generated/lib.image.keyer.js +9 -0
  378. package/dist/generated/lib.image.keyer.js.map +1 -0
  379. package/dist/generated/lib.image.mask.d.ts +28 -0
  380. package/dist/generated/lib.image.mask.d.ts.map +1 -0
  381. package/dist/generated/lib.image.mask.js +12 -0
  382. package/dist/generated/lib.image.mask.js.map +1 -0
  383. package/dist/generated/lib.image.warp.d.ts +91 -0
  384. package/dist/generated/lib.image.warp.d.ts.map +1 -0
  385. package/dist/generated/lib.image.warp.js +27 -0
  386. package/dist/generated/lib.image.warp.js.map +1 -0
  387. package/dist/generated/lib.pdf.d.ts +20 -44
  388. package/dist/generated/lib.pdf.d.ts.map +1 -1
  389. package/dist/generated/lib.pdf.js +2 -11
  390. package/dist/generated/lib.pdf.js.map +1 -1
  391. package/dist/generated/lib.sqlite.d.ts +2 -64
  392. package/dist/generated/lib.sqlite.d.ts.map +1 -1
  393. package/dist/generated/lib.sqlite.js +0 -18
  394. package/dist/generated/lib.sqlite.js.map +1 -1
  395. package/dist/generated/lib.svg.d.ts +4 -137
  396. package/dist/generated/lib.svg.d.ts.map +1 -1
  397. package/dist/generated/lib.svg.js +0 -36
  398. package/dist/generated/lib.svg.js.map +1 -1
  399. package/dist/generated/lib.video.download.d.ts +3 -2
  400. package/dist/generated/lib.video.download.d.ts.map +1 -1
  401. package/dist/generated/lib.video.download.js.map +1 -1
  402. package/dist/generated/messaging.discord.d.ts +2 -14
  403. package/dist/generated/messaging.discord.d.ts.map +1 -1
  404. package/dist/generated/messaging.discord.js +0 -3
  405. package/dist/generated/messaging.discord.js.map +1 -1
  406. package/dist/generated/messaging.telegram.d.ts +2 -18
  407. package/dist/generated/messaging.telegram.d.ts.map +1 -1
  408. package/dist/generated/messaging.telegram.js +0 -3
  409. package/dist/generated/messaging.telegram.js.map +1 -1
  410. package/dist/generated/mistral.embeddings.d.ts +2 -2
  411. package/dist/generated/mistral.embeddings.d.ts.map +1 -1
  412. package/dist/generated/mistral.embeddings.js.map +1 -1
  413. package/dist/generated/mistral.text.d.ts +4 -4
  414. package/dist/generated/mistral.text.d.ts.map +1 -1
  415. package/dist/generated/mistral.text.js.map +1 -1
  416. package/dist/generated/mistral.vision.d.ts +4 -4
  417. package/dist/generated/mistral.vision.d.ts.map +1 -1
  418. package/dist/generated/mistral.vision.js.map +1 -1
  419. package/dist/generated/nodetool.agents.d.ts +44 -232
  420. package/dist/generated/nodetool.agents.d.ts.map +1 -1
  421. package/dist/generated/nodetool.agents.js +6 -57
  422. package/dist/generated/nodetool.agents.js.map +1 -1
  423. package/dist/generated/nodetool.audio.d.ts +116 -105
  424. package/dist/generated/nodetool.audio.d.ts.map +1 -1
  425. package/dist/generated/nodetool.audio.js +26 -20
  426. package/dist/generated/nodetool.audio.js.map +1 -1
  427. package/dist/generated/nodetool.audio.realtime.d.ts +51 -0
  428. package/dist/generated/nodetool.audio.realtime.d.ts.map +1 -0
  429. package/dist/generated/nodetool.audio.realtime.js +21 -0
  430. package/dist/generated/nodetool.audio.realtime.js.map +1 -0
  431. package/dist/generated/nodetool.audio.synth.d.ts +101 -0
  432. package/dist/generated/nodetool.audio.synth.d.ts.map +1 -0
  433. package/dist/generated/nodetool.audio.synth.js +30 -0
  434. package/dist/generated/nodetool.audio.synth.js.map +1 -0
  435. package/dist/generated/nodetool.blender.d.ts +120 -0
  436. package/dist/generated/nodetool.blender.d.ts.map +1 -0
  437. package/dist/generated/nodetool.blender.js +21 -0
  438. package/dist/generated/nodetool.blender.js.map +1 -0
  439. package/dist/generated/nodetool.code.d.ts +7 -174
  440. package/dist/generated/nodetool.code.d.ts.map +1 -1
  441. package/dist/generated/nodetool.code.js +0 -54
  442. package/dist/generated/nodetool.code.js.map +1 -1
  443. package/dist/generated/nodetool.compare.d.ts +6 -4
  444. package/dist/generated/nodetool.compare.d.ts.map +1 -1
  445. package/dist/generated/nodetool.compare.js +1 -1
  446. package/dist/generated/nodetool.compare.js.map +1 -1
  447. package/dist/generated/nodetool.constant.d.ts +96 -59
  448. package/dist/generated/nodetool.constant.d.ts.map +1 -1
  449. package/dist/generated/nodetool.constant.js +15 -3
  450. package/dist/generated/nodetool.constant.js.map +1 -1
  451. package/dist/generated/nodetool.control.d.ts +160 -11
  452. package/dist/generated/nodetool.control.d.ts.map +1 -1
  453. package/dist/generated/nodetool.control.js +54 -3
  454. package/dist/generated/nodetool.control.js.map +1 -1
  455. package/dist/generated/nodetool.creative.d.ts +57 -0
  456. package/dist/generated/nodetool.creative.d.ts.map +1 -0
  457. package/dist/generated/nodetool.creative.js +18 -0
  458. package/dist/generated/nodetool.creative.js.map +1 -0
  459. package/dist/generated/nodetool.data.d.ts +4 -228
  460. package/dist/generated/nodetool.data.d.ts.map +1 -1
  461. package/dist/generated/nodetool.data.js +0 -84
  462. package/dist/generated/nodetool.data.js.map +1 -1
  463. package/dist/generated/nodetool.document.d.ts +7 -69
  464. package/dist/generated/nodetool.document.d.ts.map +1 -1
  465. package/dist/generated/nodetool.document.js +0 -15
  466. package/dist/generated/nodetool.document.js.map +1 -1
  467. package/dist/generated/nodetool.entity.d.ts +43 -0
  468. package/dist/generated/nodetool.entity.d.ts.map +1 -0
  469. package/dist/generated/nodetool.entity.js +12 -0
  470. package/dist/generated/nodetool.entity.js.map +1 -0
  471. package/dist/generated/nodetool.fake.d.ts +22 -0
  472. package/dist/generated/nodetool.fake.d.ts.map +1 -0
  473. package/dist/generated/nodetool.fake.js +9 -0
  474. package/dist/generated/nodetool.fake.js.map +1 -0
  475. package/dist/generated/nodetool.game.d.ts +109 -0
  476. package/dist/generated/nodetool.game.d.ts.map +1 -0
  477. package/dist/generated/nodetool.game.js +27 -0
  478. package/dist/generated/nodetool.game.js.map +1 -0
  479. package/dist/generated/nodetool.generators.d.ts +15 -14
  480. package/dist/generated/nodetool.generators.d.ts.map +1 -1
  481. package/dist/generated/nodetool.generators.js +1 -1
  482. package/dist/generated/nodetool.generators.js.map +1 -1
  483. package/dist/generated/nodetool.image.d.ts +216 -96
  484. package/dist/generated/nodetool.image.d.ts.map +1 -1
  485. package/dist/generated/nodetool.image.js +54 -21
  486. package/dist/generated/nodetool.image.js.map +1 -1
  487. package/dist/generated/nodetool.input.d.ts +66 -66
  488. package/dist/generated/nodetool.input.d.ts.map +1 -1
  489. package/dist/generated/nodetool.input.js.map +1 -1
  490. package/dist/generated/nodetool.model3d.d.ts +84 -42
  491. package/dist/generated/nodetool.model3d.d.ts.map +1 -1
  492. package/dist/generated/nodetool.model3d.js +13 -1
  493. package/dist/generated/nodetool.model3d.js.map +1 -1
  494. package/dist/generated/nodetool.output.d.ts +2 -2
  495. package/dist/generated/nodetool.output.d.ts.map +1 -1
  496. package/dist/generated/nodetool.output.js.map +1 -1
  497. package/dist/generated/nodetool.script.d.ts +67 -0
  498. package/dist/generated/nodetool.script.d.ts.map +1 -0
  499. package/dist/generated/nodetool.script.js +21 -0
  500. package/dist/generated/nodetool.script.js.map +1 -0
  501. package/dist/generated/nodetool.sketch.d.ts +27 -0
  502. package/dist/generated/nodetool.sketch.d.ts.map +1 -0
  503. package/dist/generated/nodetool.sketch.js +12 -0
  504. package/dist/generated/nodetool.sketch.js.map +1 -0
  505. package/dist/generated/nodetool.storyboard.d.ts +90 -0
  506. package/dist/generated/nodetool.storyboard.d.ts.map +1 -0
  507. package/dist/generated/nodetool.storyboard.js +21 -0
  508. package/dist/generated/nodetool.storyboard.js.map +1 -0
  509. package/dist/generated/nodetool.text.d.ts +31 -374
  510. package/dist/generated/nodetool.text.d.ts.map +1 -1
  511. package/dist/generated/nodetool.text.js +3 -117
  512. package/dist/generated/nodetool.text.js.map +1 -1
  513. package/dist/generated/nodetool.timeline.d.ts +59 -0
  514. package/dist/generated/nodetool.timeline.d.ts.map +1 -0
  515. package/dist/generated/nodetool.timeline.js +18 -0
  516. package/dist/generated/nodetool.timeline.js.map +1 -0
  517. package/dist/generated/nodetool.triggers.d.ts +10 -17
  518. package/dist/generated/nodetool.triggers.d.ts.map +1 -1
  519. package/dist/generated/nodetool.triggers.js +2 -2
  520. package/dist/generated/nodetool.triggers.js.map +1 -1
  521. package/dist/generated/nodetool.variable.d.ts +18 -0
  522. package/dist/generated/nodetool.variable.d.ts.map +1 -0
  523. package/dist/generated/nodetool.variable.js +9 -0
  524. package/dist/generated/nodetool.variable.js.map +1 -0
  525. package/dist/generated/nodetool.video.d.ts +110 -77
  526. package/dist/generated/nodetool.video.d.ts.map +1 -1
  527. package/dist/generated/nodetool.video.js +13 -4
  528. package/dist/generated/nodetool.video.js.map +1 -1
  529. package/dist/generated/nodetool.workflows.base_node.d.ts +2 -2
  530. package/dist/generated/nodetool.workflows.base_node.d.ts.map +1 -1
  531. package/dist/generated/nodetool.workflows.base_node.js.map +1 -1
  532. package/dist/generated/nodetool.workflows.subgraph.d.ts +8 -0
  533. package/dist/generated/nodetool.workflows.subgraph.d.ts.map +1 -0
  534. package/dist/generated/nodetool.workflows.subgraph.js +6 -0
  535. package/dist/generated/nodetool.workflows.subgraph.js.map +1 -0
  536. package/dist/generated/nodetool.workflows.workflow_node.d.ts +2 -2
  537. package/dist/generated/nodetool.workflows.workflow_node.d.ts.map +1 -1
  538. package/dist/generated/nodetool.workflows.workflow_node.js.map +1 -1
  539. package/dist/generated/openai.agents.d.ts +20 -4
  540. package/dist/generated/openai.agents.d.ts.map +1 -1
  541. package/dist/generated/openai.agents.js +5 -2
  542. package/dist/generated/openai.agents.js.map +1 -1
  543. package/dist/generated/openai.audio.d.ts +7 -6
  544. package/dist/generated/openai.audio.d.ts.map +1 -1
  545. package/dist/generated/openai.audio.js.map +1 -1
  546. package/dist/generated/openai.image.d.ts +12 -4
  547. package/dist/generated/openai.image.d.ts.map +1 -1
  548. package/dist/generated/openai.image.js +3 -0
  549. package/dist/generated/openai.image.js.map +1 -1
  550. package/dist/generated/openai.text.d.ts +6 -6
  551. package/dist/generated/openai.text.d.ts.map +1 -1
  552. package/dist/generated/openai.text.js.map +1 -1
  553. package/dist/generated/vector.d.ts +26 -26
  554. package/dist/generated/vector.d.ts.map +1 -1
  555. package/dist/generated/vector.js.map +1 -1
  556. package/dist/generated/xai.image.d.ts +12 -0
  557. package/dist/generated/xai.image.d.ts.map +1 -0
  558. package/dist/generated/xai.image.js +6 -0
  559. package/dist/generated/xai.image.js.map +1 -0
  560. package/dist/generated/xai.text.d.ts +24 -0
  561. package/dist/generated/xai.text.d.ts.map +1 -0
  562. package/dist/generated/xai.text.js +9 -0
  563. package/dist/generated/xai.text.js.map +1 -0
  564. package/dist/generated/xai.vision.d.ts +14 -0
  565. package/dist/generated/xai.vision.d.ts.map +1 -0
  566. package/dist/generated/xai.vision.js +6 -0
  567. package/dist/generated/xai.vision.js.map +1 -0
  568. package/dist/registry.d.ts +32 -0
  569. package/dist/registry.d.ts.map +1 -0
  570. package/dist/registry.js +92 -0
  571. package/dist/registry.js.map +1 -0
  572. package/dist/types.d.ts +1 -1
  573. package/dist/types.d.ts.map +1 -1
  574. package/package.json +42 -14
  575. package/dist/generated/anthropic.agents.d.ts +0 -15
  576. package/dist/generated/anthropic.agents.d.ts.map +0 -1
  577. package/dist/generated/anthropic.agents.js +0 -6
  578. package/dist/generated/anthropic.agents.js.map +0 -1
  579. package/dist/generated/apify.scraping.d.ts +0 -83
  580. package/dist/generated/apify.scraping.d.ts.map +0 -1
  581. package/dist/generated/apify.scraping.js +0 -24
  582. package/dist/generated/apify.scraping.js.map +0 -1
  583. package/dist/generated/lib.convert.d.ts +0 -11
  584. package/dist/generated/lib.convert.d.ts.map +0 -1
  585. package/dist/generated/lib.convert.js +0 -6
  586. package/dist/generated/lib.convert.js.map +0 -1
  587. package/dist/generated/lib.convert.pandoc.d.ts +0 -22
  588. package/dist/generated/lib.convert.pandoc.d.ts.map +0 -1
  589. package/dist/generated/lib.convert.pandoc.js +0 -9
  590. package/dist/generated/lib.convert.pandoc.js.map +0 -1
  591. package/dist/generated/lib.docx.d.ts +0 -81
  592. package/dist/generated/lib.docx.d.ts.map +0 -1
  593. package/dist/generated/lib.docx.js +0 -30
  594. package/dist/generated/lib.docx.js.map +0 -1
  595. package/dist/generated/lib.excel.d.ts +0 -58
  596. package/dist/generated/lib.excel.d.ts.map +0 -1
  597. package/dist/generated/lib.excel.js +0 -21
  598. package/dist/generated/lib.excel.js.map +0 -1
  599. package/dist/generated/lib.graphql.d.ts +0 -47
  600. package/dist/generated/lib.graphql.d.ts.map +0 -1
  601. package/dist/generated/lib.graphql.js +0 -15
  602. package/dist/generated/lib.graphql.js.map +0 -1
  603. package/dist/generated/lib.html.d.ts +0 -72
  604. package/dist/generated/lib.html.d.ts.map +0 -1
  605. package/dist/generated/lib.html.js +0 -27
  606. package/dist/generated/lib.html.js.map +0 -1
  607. package/dist/generated/lib.http.d.ts +0 -68
  608. package/dist/generated/lib.http.d.ts.map +0 -1
  609. package/dist/generated/lib.http.js +0 -24
  610. package/dist/generated/lib.http.js.map +0 -1
  611. package/dist/generated/lib.mail.d.ts +0 -49
  612. package/dist/generated/lib.mail.d.ts.map +0 -1
  613. package/dist/generated/lib.mail.js +0 -15
  614. package/dist/generated/lib.mail.js.map +0 -1
  615. package/dist/generated/lib.markdown.d.ts +0 -47
  616. package/dist/generated/lib.markdown.d.ts.map +0 -1
  617. package/dist/generated/lib.markdown.js +0 -21
  618. package/dist/generated/lib.markdown.js.map +0 -1
  619. package/dist/generated/lib.nlp.d.ts +0 -69
  620. package/dist/generated/lib.nlp.d.ts.map +0 -1
  621. package/dist/generated/lib.nlp.js +0 -24
  622. package/dist/generated/lib.nlp.js.map +0 -1
  623. package/dist/generated/lib.notion.d.ts +0 -61
  624. package/dist/generated/lib.notion.d.ts.map +0 -1
  625. package/dist/generated/lib.notion.js +0 -21
  626. package/dist/generated/lib.notion.js.map +0 -1
  627. package/dist/generated/lib.os.d.ts +0 -215
  628. package/dist/generated/lib.os.d.ts.map +0 -1
  629. package/dist/generated/lib.os.js +0 -90
  630. package/dist/generated/lib.os.js.map +0 -1
  631. package/dist/generated/lib.rss.d.ts +0 -21
  632. package/dist/generated/lib.rss.d.ts.map +0 -1
  633. package/dist/generated/lib.rss.js +0 -9
  634. package/dist/generated/lib.rss.js.map +0 -1
  635. package/dist/generated/lib.s3.d.ts +0 -73
  636. package/dist/generated/lib.s3.d.ts.map +0 -1
  637. package/dist/generated/lib.s3.js +0 -24
  638. package/dist/generated/lib.s3.js.map +0 -1
  639. package/dist/generated/lib.secret.d.ts +0 -10
  640. package/dist/generated/lib.secret.d.ts.map +0 -1
  641. package/dist/generated/lib.secret.js +0 -6
  642. package/dist/generated/lib.secret.js.map +0 -1
  643. package/dist/generated/lib.supabase.d.ts +0 -60
  644. package/dist/generated/lib.supabase.d.ts.map +0 -1
  645. package/dist/generated/lib.supabase.js +0 -21
  646. package/dist/generated/lib.supabase.js.map +0 -1
  647. package/dist/generated/lib.twilio.d.ts +0 -46
  648. package/dist/generated/lib.twilio.d.ts.map +0 -1
  649. package/dist/generated/lib.twilio.js +0 -15
  650. package/dist/generated/lib.twilio.js.map +0 -1
  651. package/dist/generated/nodetool.team.d.ts +0 -27
  652. package/dist/generated/nodetool.team.d.ts.map +0 -1
  653. package/dist/generated/nodetool.team.js +0 -9
  654. package/dist/generated/nodetool.team.js.map +0 -1
  655. package/dist/generated/nodetool.workspace.d.ts +0 -146
  656. package/dist/generated/nodetool.workspace.d.ts.map +0 -1
  657. package/dist/generated/nodetool.workspace.js +0 -57
  658. package/dist/generated/nodetool.workspace.js.map +0 -1
  659. package/dist/generated/search.google.d.ts +0 -78
  660. package/dist/generated/search.google.d.ts.map +0 -1
  661. package/dist/generated/search.google.js +0 -27
  662. package/dist/generated/search.google.js.map +0 -1
@@ -0,0 +1,13 @@
1
+ import type { ImageRef } from "../../types.js";
2
+ export type ImageToTextInputs = {
3
+ image?: ImageRef;
4
+ prompt?: string;
5
+ model?: string;
6
+ temperature?: number;
7
+ max_tokens?: number;
8
+ };
9
+ export interface ImageToTextOutputs {
10
+ output: string;
11
+ }
12
+ export declare function imageToText(inputs: ImageToTextInputs): Promise<ImageToTextOutputs>;
13
+ //# sourceMappingURL=xai.vision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xai.vision.d.ts","sourceRoot":"","sources":["../../../src/flow/generated/xai.vision.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAElF"}
@@ -0,0 +1,8 @@
1
+ // Auto-generated — do not edit manually
2
+ // Guest surface: every call bridges to the host through
3
+ // "@nodetool-ai/sandbox-nodetool/flow" — see ../guest-core.ts.
4
+ import { callNode } from "../guest-core.js";
5
+ export function imageToText(inputs) {
6
+ return callNode("xai.vision.ImageToText", inputs);
7
+ }
8
+ //# sourceMappingURL=xai.vision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xai.vision.js","sourceRoot":"","sources":["../../../src/flow/generated/xai.vision.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,wDAAwD;AACxD,+DAA+D;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAgB5C,MAAM,UAAU,WAAW,CAAC,MAAyB;IACnD,OAAO,QAAQ,CAAqB,wBAAwB,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC"}
@@ -0,0 +1,11 @@
1
+ /** Run a node and return its outputs. Errors reject with the node's own error. */
2
+ export declare function callNode<Outputs>(type: string, inputs: Record<string, unknown>): Promise<Outputs>;
3
+ /**
4
+ * Stream a node's output, one item per yield or per emission.
5
+ *
6
+ * The stream is closed when the consumer stops — an early `break` runs the
7
+ * generator's `finally`, so the host releases it instead of holding a node
8
+ * nobody reads. A stream that ran to `done` needs no close.
9
+ */
10
+ export declare function streamNode<Item>(type: string, inputs: Record<string, unknown>): AsyncIterable<Item>;
11
+ //# sourceMappingURL=guest-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guest-core.d.ts","sourceRoot":"","sources":["../../src/flow/guest-core.ts"],"names":[],"mappings":"AAoBA,kFAAkF;AAClF,wBAAsB,QAAQ,CAAC,OAAO,EACpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,aAAa,CAAC,IAAI,CAAC,CAmBrB"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The guest runtime behind the generated flow callables.
3
+ *
4
+ * This module only ever runs inside the QuickJS guest, as part of the
5
+ * `@nodetool-ai/sandbox-flow` pack: the pack build transforms it to JavaScript
6
+ * and ships it next to the generated namespace modules, which import it and
7
+ * nothing else. So it stays plain TypeScript with no workspace imports — the
8
+ * one specifier it names is the host-mounted capability facade declared in
9
+ * `sandbox-flow-capability.d.ts`.
10
+ *
11
+ * A call crosses the boundary once (`invoke_node`); a stream crosses it once to
12
+ * open, once per item, and once to close.
13
+ */
14
+ import { invoke_node, open_node_stream, take_node_stream, close_node_stream } from "@nodetool-ai/sandbox-nodetool/flow";
15
+ /** Run a node and return its outputs. Errors reject with the node's own error. */
16
+ export async function callNode(type, inputs) {
17
+ const outputs = await invoke_node({ type, inputs });
18
+ return outputs;
19
+ }
20
+ /**
21
+ * Stream a node's output, one item per yield or per emission.
22
+ *
23
+ * The stream is closed when the consumer stops — an early `break` runs the
24
+ * generator's `finally`, so the host releases it instead of holding a node
25
+ * nobody reads. A stream that ran to `done` needs no close.
26
+ */
27
+ export function streamNode(type, inputs) {
28
+ return {
29
+ async *[Symbol.asyncIterator]() {
30
+ const { stream_id } = await open_node_stream({ type, inputs });
31
+ let exhausted = false;
32
+ try {
33
+ while (true) {
34
+ const next = await take_node_stream({ stream_id });
35
+ if (next.done) {
36
+ exhausted = true;
37
+ return;
38
+ }
39
+ yield next.value;
40
+ }
41
+ }
42
+ finally {
43
+ if (!exhausted)
44
+ await close_node_stream({ stream_id });
45
+ }
46
+ }
47
+ };
48
+ }
49
+ //# sourceMappingURL=guest-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guest-core.js","sourceRoot":"","sources":["../../src/flow/guest-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,oCAAoC,CAAC;AAE5C,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAY,EACZ,MAA+B;IAE/B,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,OAAO,OAAkB,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CACxB,IAAY,EACZ,MAA+B;IAE/B,OAAO;QACL,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,gBAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/D,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC;gBACH,OAAO,IAAI,EAAE,CAAC;oBACZ,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;oBACnD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBACd,SAAS,GAAG,IAAI,CAAC;wBACjB,OAAO;oBACT,CAAC;oBACD,MAAM,IAAI,CAAC,KAAa,CAAC;gBAC3B,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,SAAS;oBAAE,MAAM,iBAAiB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `@nodetool-ai/dsl/flow` — call a node as an async function.
3
+ *
4
+ * See docs/dsl-native-flow-design.md. This barrel is the host-side entry
5
+ * point: the typed per-namespace callables are generated alongside it.
6
+ */
7
+ export { startFlow, createFlowForContext, resolveFlow, resetDefaultFlow, FlowClosedError, FlowAbortError, DEFAULT_EMISSION_QUEUE_LIMIT } from "./core.js";
8
+ export type { Flow, FlowOptions, FlowCallEvent, FlowCallPhase, CallOptions } from "./core.js";
9
+ export { invoke } from "./invoke.js";
10
+ export { invokeStream, invokeGenStream, invokeRunStream, foldEmissions, EmissionCancelledError } from "./streaming.js";
11
+ export type { StreamEmission, StreamSource } from "./streaming.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/flow/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,4BAA4B,EAC7B,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,IAAI,EACJ,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACZ,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EACf,aAAa,EACb,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * `@nodetool-ai/dsl/flow` — call a node as an async function.
3
+ *
4
+ * See docs/dsl-native-flow-design.md. This barrel is the host-side entry
5
+ * point: the typed per-namespace callables are generated alongside it.
6
+ */
7
+ export { startFlow, createFlowForContext, resolveFlow, resetDefaultFlow, FlowClosedError, FlowAbortError, DEFAULT_EMISSION_QUEUE_LIMIT } from "./core.js";
8
+ export { invoke } from "./invoke.js";
9
+ export { invokeStream, invokeGenStream, invokeRunStream, foldEmissions, EmissionCancelledError } from "./streaming.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/flow/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,4BAA4B,EAC7B,MAAM,WAAW,CAAC;AASnB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EACf,aAAa,EACb,sBAAsB,EACvB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The awaited form of a node call: run the node, return its outputs.
3
+ *
4
+ * A node whose `genProcess` yields several records is drained and folded to the
5
+ * last value per slot — the same fold the runner applies to terminal outputs. A
6
+ * node written against the `run(inputs, outputs, context)` contract is drained
7
+ * the same way, over its emissions. Callers who want the items themselves use
8
+ * `invokeStream` (./streaming.ts).
9
+ */
10
+ import { type CallOptions } from "./core.js";
11
+ export declare function invoke(nodeType: string, inputs: Record<string, unknown>, opts?: CallOptions): Promise<Record<string, unknown>>;
12
+ //# sourceMappingURL=invoke.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../src/flow/invoke.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAA4C,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAGvF,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAWlC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * The awaited form of a node call: run the node, return its outputs.
3
+ *
4
+ * A node whose `genProcess` yields several records is drained and folded to the
5
+ * last value per slot — the same fold the runner applies to terminal outputs. A
6
+ * node written against the `run(inputs, outputs, context)` contract is drained
7
+ * the same way, over its emissions. Callers who want the items themselves use
8
+ * `invokeStream` (./streaming.ts).
9
+ */
10
+ import { foldRecords, genProcessRecords, withCall } from "./core.js";
11
+ import { foldEmissions, runContractEmissions } from "./streaming.js";
12
+ export async function invoke(nodeType, inputs, opts) {
13
+ return withCall(nodeType, inputs, opts, async (scope) => {
14
+ if (scope.executor.run) {
15
+ return foldEmissions(runContractEmissions(scope, inputs));
16
+ }
17
+ const records = [];
18
+ for await (const record of genProcessRecords(scope, inputs)) {
19
+ records.push(record);
20
+ }
21
+ return foldRecords(records);
22
+ });
23
+ }
24
+ //# sourceMappingURL=invoke.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../src/flow/invoke.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAoB,MAAM,WAAW,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAErE,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,QAAgB,EAChB,MAA+B,EAC/B,IAAkB;IAElB,OAAO,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACtD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YACvB,OAAO,aAAa,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,OAAO,GAAmC,EAAE,CAAC;QACnD,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,68 @@
1
+ import type { MessageEnvelopeLike, StreamingInputs, StreamingOutputs } from "@nodetool-ai/runtime";
2
+ import { type CallOptions, type CallScope } from "./core.js";
3
+ /** One `outputs.emit(slot, value)` from a `run`-contract node. */
4
+ export interface StreamEmission {
5
+ slot: string;
6
+ value: unknown;
7
+ }
8
+ /** Thrown into a node's pending `emit()` when the consumer stops listening. */
9
+ export declare class EmissionCancelledError extends Error {
10
+ constructor();
11
+ }
12
+ /**
13
+ * An async queue with a ceiling: `push` waits once `limit` items are buffered,
14
+ * so a node emitting faster than its consumer reads is slowed down rather than
15
+ * growing an unbounded array.
16
+ */
17
+ export declare class BoundedQueue<T> implements AsyncIterable<T> {
18
+ private readonly limit;
19
+ private readonly items;
20
+ private readonly takeWaiters;
21
+ private readonly pushWaiters;
22
+ private closed;
23
+ private cancelled;
24
+ private failure;
25
+ constructor(limit: number);
26
+ get size(): number;
27
+ push(item: T): Promise<void>;
28
+ close(): void;
29
+ /** End the iteration by rejecting the pending (and every later) `next()`. */
30
+ fail(error: unknown): void;
31
+ /** Stop the producer: pending and future `push` calls reject. */
32
+ cancel(): void;
33
+ private wakeAll;
34
+ [Symbol.asyncIterator](): AsyncGenerator<T>;
35
+ }
36
+ /** What a caller may put on a stream-typed input handle. */
37
+ export type StreamSource<T> = AsyncIterable<T> | ReadonlyArray<T> | T;
38
+ /** The read side, plus the two controls the flow needs to stop the sources. */
39
+ export interface FlowInputs extends StreamingInputs {
40
+ dispose(): void;
41
+ sourcesSettled(): Promise<void>;
42
+ }
43
+ export declare function createStreamingInputs(inputs: Record<string, unknown>, signal: AbortSignal | undefined): FlowInputs;
44
+ /** Turns a node's `emit` calls into items of the returned async iterable. */
45
+ export declare class FlowStreamingOutputs implements StreamingOutputs {
46
+ private readonly queue;
47
+ constructor(queue: BoundedQueue<StreamEmission>);
48
+ emit(slot: string, value: unknown): Promise<void>;
49
+ emitGroup(values: Record<string, unknown>): Promise<void>;
50
+ forward(slot: string, envelope: MessageEnvelopeLike, ...overrideValue: [] | [unknown]): Promise<void>;
51
+ drop(): Promise<void>;
52
+ complete(): void;
53
+ }
54
+ /** Every emission of a `run`-contract node, in order. */
55
+ export declare function runContractEmissions(scope: CallScope, inputs: Record<string, unknown>): AsyncGenerator<StreamEmission>;
56
+ /** Records from a streaming-output node, one per `genProcess` yield. */
57
+ export declare function invokeGenStream(nodeType: string, inputs: Record<string, unknown>, opts?: CallOptions): AsyncGenerator<Record<string, unknown>>;
58
+ /** Emissions from a `run`-contract node, one per `emit()`. */
59
+ export declare function invokeRunStream(nodeType: string, inputs: Record<string, unknown>, opts?: CallOptions): AsyncGenerator<StreamEmission>;
60
+ /**
61
+ * Stream a node's output, picking the path from what the node implements: a
62
+ * `run`-contract node yields `{slot, value}` emissions, everything else yields
63
+ * one record per `genProcess` yield.
64
+ */
65
+ export declare function invokeStream(nodeType: string, inputs: Record<string, unknown>, opts?: CallOptions): AsyncGenerator<Record<string, unknown> | StreamEmission>;
66
+ /** Drain a `run`-contract node and fold its emissions to last value per slot. */
67
+ export declare function foldEmissions(emissions: AsyncIterable<StreamEmission>): Promise<Record<string, unknown>>;
68
+ //# sourceMappingURL=streaming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/flow/streaming.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,374 @@
1
+ /**
2
+ * Streaming in both directions for the native flow.
3
+ *
4
+ * - Output: `invokeStream` yields one item per `genProcess` yield, or one item
5
+ * per `emit()` for a node written against the `run(inputs, outputs, context)`
6
+ * contract.
7
+ * - Input: the caller's `AsyncIterable | T[] | T` per handle is adapted into a
8
+ * {@link StreamingInputs} implementation with per-handle queues and EOS when
9
+ * the source ends.
10
+ *
11
+ * Correlation is not modelled here: `emitGroup` flattens to its member
12
+ * emissions and envelopes are synthesized with an empty lineage. Grouping is
13
+ * the caller's data structure (design doc §5).
14
+ */
15
+ import { randomUUID } from "node:crypto";
16
+ import { abortErrorFrom, foldRecords, genProcessRecords, throwIfAborted, withCallGen } from "./core.js";
17
+ /** Thrown into a node's pending `emit()` when the consumer stops listening. */
18
+ export class EmissionCancelledError extends Error {
19
+ constructor() {
20
+ super("Emission consumer stopped listening");
21
+ this.name = "EmissionCancelledError";
22
+ }
23
+ }
24
+ /**
25
+ * An async queue with a ceiling: `push` waits once `limit` items are buffered,
26
+ * so a node emitting faster than its consumer reads is slowed down rather than
27
+ * growing an unbounded array.
28
+ */
29
+ export class BoundedQueue {
30
+ limit;
31
+ items = [];
32
+ takeWaiters = [];
33
+ pushWaiters = [];
34
+ closed = false;
35
+ cancelled = false;
36
+ failure = null;
37
+ constructor(limit) {
38
+ this.limit = limit;
39
+ }
40
+ get size() {
41
+ return this.items.length;
42
+ }
43
+ async push(item) {
44
+ while (!this.cancelled && this.items.length >= this.limit) {
45
+ await new Promise((resolve) => this.pushWaiters.push(resolve));
46
+ }
47
+ if (this.cancelled) {
48
+ throw new EmissionCancelledError();
49
+ }
50
+ this.items.push(item);
51
+ this.wakeAll(this.takeWaiters);
52
+ }
53
+ close() {
54
+ this.closed = true;
55
+ this.wakeAll(this.takeWaiters);
56
+ }
57
+ /** End the iteration by rejecting the pending (and every later) `next()`. */
58
+ fail(error) {
59
+ this.failure ??= { error };
60
+ this.closed = true;
61
+ this.wakeAll(this.takeWaiters);
62
+ this.wakeAll(this.pushWaiters);
63
+ }
64
+ /** Stop the producer: pending and future `push` calls reject. */
65
+ cancel() {
66
+ this.cancelled = true;
67
+ this.closed = true;
68
+ this.wakeAll(this.takeWaiters);
69
+ this.wakeAll(this.pushWaiters);
70
+ }
71
+ wakeAll(waiters) {
72
+ while (waiters.length > 0) {
73
+ waiters.shift()?.();
74
+ }
75
+ }
76
+ async *[Symbol.asyncIterator]() {
77
+ while (true) {
78
+ if (this.items.length > 0) {
79
+ const item = this.items.shift();
80
+ this.wakeAll(this.pushWaiters);
81
+ yield item;
82
+ continue;
83
+ }
84
+ if (this.failure !== null) {
85
+ throw this.failure.error;
86
+ }
87
+ if (this.closed)
88
+ return;
89
+ await new Promise((resolve) => this.takeWaiters.push(resolve));
90
+ }
91
+ }
92
+ }
93
+ function plainEnvelope(data) {
94
+ return {
95
+ data,
96
+ metadata: {},
97
+ timestamp: Date.now(),
98
+ event_id: randomUUID(),
99
+ // The runner mints lineage per iteration; a flow has no iteration roots.
100
+ correlation_lineage: {},
101
+ source_edge_id: ""
102
+ };
103
+ }
104
+ function isAsyncIterable(value) {
105
+ return (typeof value === "object" &&
106
+ value !== null &&
107
+ Symbol.asyncIterator in value);
108
+ }
109
+ /**
110
+ * Bridges the caller's inputs into the read side a `run`-contract node expects.
111
+ *
112
+ * An array or async iterable on a handle becomes a stream of its items; any
113
+ * other value becomes a one-item stream. `stream()` and `any()` each see every
114
+ * item — a node drains one or the other, not both.
115
+ */
116
+ class FlowStreamingInputs {
117
+ queues = new Map();
118
+ anyQueue = {
119
+ items: [],
120
+ closed: false,
121
+ waiters: []
122
+ };
123
+ pumps = [];
124
+ openSources = 0;
125
+ abortController = new AbortController();
126
+ signal;
127
+ constructor(inputs, signal) {
128
+ this.signal = signal
129
+ ? AbortSignal.any([signal, this.abortController.signal])
130
+ : this.abortController.signal;
131
+ // Every handle is counted before any pump starts: a synchronous source
132
+ // (an array) would otherwise drain to zero open sources and close the
133
+ // `any()` queue before the next handle was even registered.
134
+ const entries = Object.entries(inputs);
135
+ for (const [handle] of entries) {
136
+ this.queues.set(handle, { items: [], closed: false, waiters: [] });
137
+ this.openSources++;
138
+ }
139
+ if (this.openSources === 0) {
140
+ this.closeAnyQueue();
141
+ }
142
+ for (const [handle, value] of entries) {
143
+ const queue = this.queues.get(handle);
144
+ if (queue) {
145
+ this.pumps.push(this.pump(handle, queue, value));
146
+ }
147
+ }
148
+ }
149
+ /** Stop every source pump. Called when the consumer stops listening. */
150
+ dispose() {
151
+ this.abortController.abort();
152
+ }
153
+ /** Surfaces a source iterable's own failure to the caller. */
154
+ async sourcesSettled() {
155
+ await Promise.all(this.pumps);
156
+ }
157
+ async pump(handle, queue, value) {
158
+ try {
159
+ if (Array.isArray(value)) {
160
+ for (const item of value) {
161
+ if (this.signal.aborted)
162
+ break;
163
+ this.deliver(handle, queue, item);
164
+ }
165
+ }
166
+ else if (isAsyncIterable(value)) {
167
+ for await (const item of value) {
168
+ if (this.signal.aborted)
169
+ break;
170
+ this.deliver(handle, queue, item);
171
+ }
172
+ }
173
+ else {
174
+ this.deliver(handle, queue, value);
175
+ }
176
+ }
177
+ finally {
178
+ queue.closed = true;
179
+ wake(queue);
180
+ this.openSources--;
181
+ if (this.openSources === 0) {
182
+ this.closeAnyQueue();
183
+ }
184
+ }
185
+ }
186
+ deliver(handle, queue, item) {
187
+ queue.items.push(item);
188
+ wake(queue);
189
+ this.anyQueue.items.push([handle, item]);
190
+ wake(this.anyQueue);
191
+ }
192
+ closeAnyQueue() {
193
+ this.anyQueue.closed = true;
194
+ wake(this.anyQueue);
195
+ }
196
+ async *take(queue) {
197
+ while (true) {
198
+ if (queue.items.length > 0) {
199
+ yield queue.items.shift();
200
+ continue;
201
+ }
202
+ if (queue.closed)
203
+ return;
204
+ if (this.signal.aborted)
205
+ throw abortErrorFrom(this.signal);
206
+ await waitFor(queue, this.signal);
207
+ }
208
+ }
209
+ async *stream(name) {
210
+ const queue = this.queues.get(name);
211
+ if (!queue)
212
+ return;
213
+ yield* this.take(queue);
214
+ }
215
+ async *streamWithEnvelope(name) {
216
+ for await (const item of this.stream(name)) {
217
+ yield plainEnvelope(item);
218
+ }
219
+ }
220
+ async *any() {
221
+ for await (const entry of this.take(this.anyQueue)) {
222
+ yield entry;
223
+ }
224
+ }
225
+ async *anyWithEnvelope() {
226
+ for await (const [handle, item] of this.any()) {
227
+ yield [handle, plainEnvelope(item)];
228
+ }
229
+ }
230
+ // No return annotation: the item is an arbitrary workflow value, and an
231
+ // explicit `Promise<unknown>` is exactly what anti-slop/no-unknown-returns
232
+ // bans. The contract callers see is `StreamingInputs.first` in the runtime.
233
+ async first(name, defaultValue) {
234
+ for await (const item of this.stream(name)) {
235
+ return item;
236
+ }
237
+ return defaultValue;
238
+ }
239
+ scopeFor() {
240
+ return [];
241
+ }
242
+ invocationScope() {
243
+ return [];
244
+ }
245
+ hasStream(name) {
246
+ const queue = this.queues.get(name);
247
+ return queue !== undefined && !(queue.closed && queue.items.length === 0);
248
+ }
249
+ hasBuffered(name) {
250
+ return (this.queues.get(name)?.items.length ?? 0) > 0;
251
+ }
252
+ }
253
+ function wake(queue) {
254
+ while (queue.waiters.length > 0) {
255
+ queue.waiters.shift()?.();
256
+ }
257
+ }
258
+ function waitFor(queue, signal) {
259
+ return new Promise((resolve) => {
260
+ const onAbort = () => resolve();
261
+ const settle = () => {
262
+ signal.removeEventListener("abort", onAbort);
263
+ resolve();
264
+ };
265
+ queue.waiters.push(settle);
266
+ signal.addEventListener("abort", onAbort, { once: true });
267
+ });
268
+ }
269
+ export function createStreamingInputs(inputs, signal) {
270
+ return new FlowStreamingInputs(inputs, signal);
271
+ }
272
+ /** Turns a node's `emit` calls into items of the returned async iterable. */
273
+ export class FlowStreamingOutputs {
274
+ queue;
275
+ constructor(queue) {
276
+ this.queue = queue;
277
+ }
278
+ emit(slot, value) {
279
+ return this.queue.push({ slot, value });
280
+ }
281
+ async emitGroup(values) {
282
+ // A group is one atomic frame to the runner; here it is its members.
283
+ for (const [slot, value] of Object.entries(values)) {
284
+ await this.queue.push({ slot, value });
285
+ }
286
+ }
287
+ forward(slot, envelope, ...overrideValue) {
288
+ const value = overrideValue.length > 0 ? overrideValue[0] : envelope.data;
289
+ return this.queue.push({ slot, value });
290
+ }
291
+ drop() {
292
+ // `drop` tells downstream joins not to wait on a key. No joins here.
293
+ return Promise.resolve();
294
+ }
295
+ complete() {
296
+ // Early end-of-stream for one slot; the flow ends when `run()` returns.
297
+ }
298
+ }
299
+ /** Every emission of a `run`-contract node, in order. */
300
+ export async function* runContractEmissions(scope, inputs) {
301
+ const { executor, context, signal } = scope;
302
+ if (!executor.run) {
303
+ throw new Error("Node does not implement the run() streaming contract");
304
+ }
305
+ throwIfAborted(signal);
306
+ const queue = new BoundedQueue(scope.emissionLimit);
307
+ const streamingInputs = createStreamingInputs(inputs, signal);
308
+ const streamingOutputs = new FlowStreamingOutputs(queue);
309
+ const running = executor
310
+ .run(streamingInputs, streamingOutputs, context)
311
+ .then(() => queue.close(), (err) => {
312
+ // An emit rejected because the consumer left is not the node's failure.
313
+ if (err instanceof EmissionCancelledError) {
314
+ queue.close();
315
+ return;
316
+ }
317
+ queue.fail(err);
318
+ });
319
+ const onAbort = () => {
320
+ if (signal)
321
+ queue.fail(abortErrorFrom(signal));
322
+ };
323
+ signal?.addEventListener("abort", onAbort, { once: true });
324
+ let exhausted = false;
325
+ try {
326
+ for await (const emission of queue) {
327
+ yield emission;
328
+ }
329
+ exhausted = true;
330
+ }
331
+ finally {
332
+ signal?.removeEventListener("abort", onAbort);
333
+ if (!exhausted) {
334
+ queue.cancel();
335
+ streamingInputs.dispose();
336
+ }
337
+ await running;
338
+ if (exhausted) {
339
+ await streamingInputs.sourcesSettled();
340
+ }
341
+ else {
342
+ // The consumer left; a source that fails on its way out is not an error
343
+ // anyone is waiting for, but it must not surface as an unhandled rejection.
344
+ await streamingInputs.sourcesSettled().catch(() => { });
345
+ }
346
+ }
347
+ }
348
+ /** Records from a streaming-output node, one per `genProcess` yield. */
349
+ export function invokeGenStream(nodeType, inputs, opts) {
350
+ return withCallGen(nodeType, inputs, opts, (scope) => genProcessRecords(scope, inputs));
351
+ }
352
+ /** Emissions from a `run`-contract node, one per `emit()`. */
353
+ export function invokeRunStream(nodeType, inputs, opts) {
354
+ return withCallGen(nodeType, inputs, opts, (scope) => runContractEmissions(scope, inputs));
355
+ }
356
+ /**
357
+ * Stream a node's output, picking the path from what the node implements: a
358
+ * `run`-contract node yields `{slot, value}` emissions, everything else yields
359
+ * one record per `genProcess` yield.
360
+ */
361
+ export function invokeStream(nodeType, inputs, opts) {
362
+ return withCallGen(nodeType, inputs, opts, (scope) => scope.executor.run
363
+ ? runContractEmissions(scope, inputs)
364
+ : genProcessRecords(scope, inputs));
365
+ }
366
+ /** Drain a `run`-contract node and fold its emissions to last value per slot. */
367
+ export async function foldEmissions(emissions) {
368
+ const records = [];
369
+ for await (const { slot, value } of emissions) {
370
+ records.push({ [slot]: value });
371
+ }
372
+ return foldRecords(records);
373
+ }
374
+ //# sourceMappingURL=streaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../src/flow/streaming.ts"],"names":[],"mappings":"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"}