@nodetool-ai/base-nodes 0.7.0-rc.22 → 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 (363) hide show
  1. package/README.md +21 -0
  2. package/dist/.nodetool-build-stamp +1 -0
  3. package/dist/index.d.ts +61 -67
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +179 -173
  6. package/dist/index.js.map +1 -1
  7. package/dist/platforms/browser.d.ts +19 -0
  8. package/dist/platforms/browser.d.ts.map +1 -0
  9. package/dist/platforms/browser.js +29 -0
  10. package/dist/platforms/browser.js.map +1 -0
  11. package/package.json +53 -65
  12. package/dist/lib/audio-wav.d.ts +0 -66
  13. package/dist/lib/audio-wav.d.ts.map +0 -1
  14. package/dist/lib/audio-wav.js +0 -215
  15. package/dist/lib/audio-wav.js.map +0 -1
  16. package/dist/nodes/agent-tool-hydration.d.ts +0 -10
  17. package/dist/nodes/agent-tool-hydration.d.ts.map +0 -1
  18. package/dist/nodes/agent-tool-hydration.js +0 -43
  19. package/dist/nodes/agent-tool-hydration.js.map +0 -1
  20. package/dist/nodes/agents.d.ts +0 -262
  21. package/dist/nodes/agents.d.ts.map +0 -1
  22. package/dist/nodes/agents.js +0 -2856
  23. package/dist/nodes/agents.js.map +0 -1
  24. package/dist/nodes/anthropic.d.ts +0 -26
  25. package/dist/nodes/anthropic.d.ts.map +0 -1
  26. package/dist/nodes/anthropic.js +0 -133
  27. package/dist/nodes/anthropic.js.map +0 -1
  28. package/dist/nodes/apify.d.ts +0 -120
  29. package/dist/nodes/apify.d.ts.map +0 -1
  30. package/dist/nodes/apify.js +0 -618
  31. package/dist/nodes/apify.js.map +0 -1
  32. package/dist/nodes/audio.d.ts +0 -301
  33. package/dist/nodes/audio.d.ts.map +0 -1
  34. package/dist/nodes/audio.js +0 -1274
  35. package/dist/nodes/audio.js.map +0 -1
  36. package/dist/nodes/code-node.d.ts +0 -34
  37. package/dist/nodes/code-node.d.ts.map +0 -1
  38. package/dist/nodes/code-node.js +0 -343
  39. package/dist/nodes/code-node.js.map +0 -1
  40. package/dist/nodes/code.d.ts +0 -301
  41. package/dist/nodes/code.d.ts.map +0 -1
  42. package/dist/nodes/code.js +0 -850
  43. package/dist/nodes/code.js.map +0 -1
  44. package/dist/nodes/compare.d.ts +0 -18
  45. package/dist/nodes/compare.d.ts.map +0 -1
  46. package/dist/nodes/compare.js +0 -122
  47. package/dist/nodes/compare.js.map +0 -1
  48. package/dist/nodes/constant.d.ts +0 -315
  49. package/dist/nodes/constant.d.ts.map +0 -1
  50. package/dist/nodes/constant.js +0 -715
  51. package/dist/nodes/constant.js.map +0 -1
  52. package/dist/nodes/control.d.ts +0 -83
  53. package/dist/nodes/control.d.ts.map +0 -1
  54. package/dist/nodes/control.js +0 -212
  55. package/dist/nodes/control.js.map +0 -1
  56. package/dist/nodes/data.d.ts +0 -369
  57. package/dist/nodes/data.d.ts.map +0 -1
  58. package/dist/nodes/data.js +0 -1590
  59. package/dist/nodes/data.js.map +0 -1
  60. package/dist/nodes/document.d.ts +0 -134
  61. package/dist/nodes/document.d.ts.map +0 -1
  62. package/dist/nodes/document.js +0 -984
  63. package/dist/nodes/document.js.map +0 -1
  64. package/dist/nodes/extended-placeholders.d.ts +0 -6
  65. package/dist/nodes/extended-placeholders.d.ts.map +0 -1
  66. package/dist/nodes/extended-placeholders.js +0 -19
  67. package/dist/nodes/extended-placeholders.js.map +0 -1
  68. package/dist/nodes/gemini.d.ts +0 -110
  69. package/dist/nodes/gemini.d.ts.map +0 -1
  70. package/dist/nodes/gemini.js +0 -871
  71. package/dist/nodes/gemini.js.map +0 -1
  72. package/dist/nodes/generators.d.ts +0 -84
  73. package/dist/nodes/generators.d.ts.map +0 -1
  74. package/dist/nodes/generators.js +0 -968
  75. package/dist/nodes/generators.js.map +0 -1
  76. package/dist/nodes/image.d.ts +0 -232
  77. package/dist/nodes/image.d.ts.map +0 -1
  78. package/dist/nodes/image.js +0 -1395
  79. package/dist/nodes/image.js.map +0 -1
  80. package/dist/nodes/input.d.ts +0 -445
  81. package/dist/nodes/input.d.ts.map +0 -1
  82. package/dist/nodes/input.js +0 -1459
  83. package/dist/nodes/input.js.map +0 -1
  84. package/dist/nodes/kie-dynamic.d.ts +0 -31
  85. package/dist/nodes/kie-dynamic.d.ts.map +0 -1
  86. package/dist/nodes/kie-dynamic.js +0 -270
  87. package/dist/nodes/kie-dynamic.js.map +0 -1
  88. package/dist/nodes/lib-audio-dsp.d.ts +0 -85
  89. package/dist/nodes/lib-audio-dsp.d.ts.map +0 -1
  90. package/dist/nodes/lib-audio-dsp.js +0 -450
  91. package/dist/nodes/lib-audio-dsp.js.map +0 -1
  92. package/dist/nodes/lib-audio-effects.d.ts +0 -116
  93. package/dist/nodes/lib-audio-effects.d.ts.map +0 -1
  94. package/dist/nodes/lib-audio-effects.js +0 -905
  95. package/dist/nodes/lib-audio-effects.js.map +0 -1
  96. package/dist/nodes/lib-browser.d.ts +0 -99
  97. package/dist/nodes/lib-browser.d.ts.map +0 -1
  98. package/dist/nodes/lib-browser.js +0 -692
  99. package/dist/nodes/lib-browser.js.map +0 -1
  100. package/dist/nodes/lib-charts.d.ts +0 -20
  101. package/dist/nodes/lib-charts.d.ts.map +0 -1
  102. package/dist/nodes/lib-charts.js +0 -245
  103. package/dist/nodes/lib-charts.js.map +0 -1
  104. package/dist/nodes/lib-datetime.d.ts +0 -108
  105. package/dist/nodes/lib-datetime.d.ts.map +0 -1
  106. package/dist/nodes/lib-datetime.js +0 -421
  107. package/dist/nodes/lib-datetime.js.map +0 -1
  108. package/dist/nodes/lib-doc-convert.d.ts +0 -19
  109. package/dist/nodes/lib-doc-convert.d.ts.map +0 -1
  110. package/dist/nodes/lib-doc-convert.js +0 -257
  111. package/dist/nodes/lib-doc-convert.js.map +0 -1
  112. package/dist/nodes/lib-doc-transform.d.ts +0 -39
  113. package/dist/nodes/lib-doc-transform.d.ts.map +0 -1
  114. package/dist/nodes/lib-doc-transform.js +0 -335
  115. package/dist/nodes/lib-doc-transform.js.map +0 -1
  116. package/dist/nodes/lib-docx.d.ts +0 -106
  117. package/dist/nodes/lib-docx.d.ts.map +0 -1
  118. package/dist/nodes/lib-docx.js +0 -595
  119. package/dist/nodes/lib-docx.js.map +0 -1
  120. package/dist/nodes/lib-epub.d.ts +0 -55
  121. package/dist/nodes/lib-epub.d.ts.map +0 -1
  122. package/dist/nodes/lib-epub.js +0 -220
  123. package/dist/nodes/lib-epub.js.map +0 -1
  124. package/dist/nodes/lib-excel.d.ts +0 -74
  125. package/dist/nodes/lib-excel.d.ts.map +0 -1
  126. package/dist/nodes/lib-excel.js +0 -448
  127. package/dist/nodes/lib-excel.js.map +0 -1
  128. package/dist/nodes/lib-graphql.d.ts +0 -66
  129. package/dist/nodes/lib-graphql.d.ts.map +0 -1
  130. package/dist/nodes/lib-graphql.js +0 -333
  131. package/dist/nodes/lib-graphql.js.map +0 -1
  132. package/dist/nodes/lib-grid.d.ts +0 -27
  133. package/dist/nodes/lib-grid.d.ts.map +0 -1
  134. package/dist/nodes/lib-grid.js +0 -172
  135. package/dist/nodes/lib-grid.js.map +0 -1
  136. package/dist/nodes/lib-html-parse.d.ts +0 -108
  137. package/dist/nodes/lib-html-parse.d.ts.map +0 -1
  138. package/dist/nodes/lib-html-parse.js +0 -365
  139. package/dist/nodes/lib-html-parse.js.map +0 -1
  140. package/dist/nodes/lib-http.d.ts +0 -98
  141. package/dist/nodes/lib-http.d.ts.map +0 -1
  142. package/dist/nodes/lib-http.js +0 -267
  143. package/dist/nodes/lib-http.js.map +0 -1
  144. package/dist/nodes/lib-image-color-grading.d.ts +0 -3
  145. package/dist/nodes/lib-image-color-grading.d.ts.map +0 -1
  146. package/dist/nodes/lib-image-color-grading.js +0 -1386
  147. package/dist/nodes/lib-image-color-grading.js.map +0 -1
  148. package/dist/nodes/lib-image-draw.d.ts +0 -3
  149. package/dist/nodes/lib-image-draw.d.ts.map +0 -1
  150. package/dist/nodes/lib-image-draw.js +0 -470
  151. package/dist/nodes/lib-image-draw.js.map +0 -1
  152. package/dist/nodes/lib-image-enhance.d.ts +0 -3
  153. package/dist/nodes/lib-image-enhance.d.ts.map +0 -1
  154. package/dist/nodes/lib-image-enhance.js +0 -731
  155. package/dist/nodes/lib-image-enhance.js.map +0 -1
  156. package/dist/nodes/lib-image-filter.d.ts +0 -3
  157. package/dist/nodes/lib-image-filter.d.ts.map +0 -1
  158. package/dist/nodes/lib-image-filter.js +0 -684
  159. package/dist/nodes/lib-image-filter.js.map +0 -1
  160. package/dist/nodes/lib-image-utils.d.ts +0 -24
  161. package/dist/nodes/lib-image-utils.d.ts.map +0 -1
  162. package/dist/nodes/lib-image-utils.js +0 -150
  163. package/dist/nodes/lib-image-utils.js.map +0 -1
  164. package/dist/nodes/lib-mail.d.ts +0 -74
  165. package/dist/nodes/lib-mail.d.ts.map +0 -1
  166. package/dist/nodes/lib-mail.js +0 -452
  167. package/dist/nodes/lib-mail.js.map +0 -1
  168. package/dist/nodes/lib-markdown.d.ts +0 -70
  169. package/dist/nodes/lib-markdown.d.ts.map +0 -1
  170. package/dist/nodes/lib-markdown.js +0 -236
  171. package/dist/nodes/lib-markdown.js.map +0 -1
  172. package/dist/nodes/lib-nlp.d.ts +0 -98
  173. package/dist/nodes/lib-nlp.d.ts.map +0 -1
  174. package/dist/nodes/lib-nlp.js +0 -374
  175. package/dist/nodes/lib-nlp.js.map +0 -1
  176. package/dist/nodes/lib-notion.d.ts +0 -99
  177. package/dist/nodes/lib-notion.d.ts.map +0 -1
  178. package/dist/nodes/lib-notion.js +0 -601
  179. package/dist/nodes/lib-notion.js.map +0 -1
  180. package/dist/nodes/lib-ocr.d.ts +0 -31
  181. package/dist/nodes/lib-ocr.d.ts.map +0 -1
  182. package/dist/nodes/lib-ocr.js +0 -143
  183. package/dist/nodes/lib-ocr.js.map +0 -1
  184. package/dist/nodes/lib-os.d.ts +0 -312
  185. package/dist/nodes/lib-os.d.ts.map +0 -1
  186. package/dist/nodes/lib-os.js +0 -909
  187. package/dist/nodes/lib-os.js.map +0 -1
  188. package/dist/nodes/lib-pdf.d.ts +0 -142
  189. package/dist/nodes/lib-pdf.d.ts.map +0 -1
  190. package/dist/nodes/lib-pdf.js +0 -871
  191. package/dist/nodes/lib-pdf.js.map +0 -1
  192. package/dist/nodes/lib-pptx.d.ts +0 -29
  193. package/dist/nodes/lib-pptx.d.ts.map +0 -1
  194. package/dist/nodes/lib-pptx.js +0 -122
  195. package/dist/nodes/lib-pptx.js.map +0 -1
  196. package/dist/nodes/lib-rss.d.ts +0 -31
  197. package/dist/nodes/lib-rss.d.ts.map +0 -1
  198. package/dist/nodes/lib-rss.js +0 -163
  199. package/dist/nodes/lib-rss.js.map +0 -1
  200. package/dist/nodes/lib-s3.d.ts +0 -112
  201. package/dist/nodes/lib-s3.d.ts.map +0 -1
  202. package/dist/nodes/lib-s3.js +0 -521
  203. package/dist/nodes/lib-s3.js.map +0 -1
  204. package/dist/nodes/lib-secret.d.ts +0 -15
  205. package/dist/nodes/lib-secret.d.ts.map +0 -1
  206. package/dist/nodes/lib-secret.js +0 -42
  207. package/dist/nodes/lib-secret.js.map +0 -1
  208. package/dist/nodes/lib-sqlite.d.ts +0 -102
  209. package/dist/nodes/lib-sqlite.d.ts.map +0 -1
  210. package/dist/nodes/lib-sqlite.js +0 -532
  211. package/dist/nodes/lib-sqlite.js.map +0 -1
  212. package/dist/nodes/lib-supabase.d.ts +0 -86
  213. package/dist/nodes/lib-supabase.d.ts.map +0 -1
  214. package/dist/nodes/lib-supabase.js +0 -425
  215. package/dist/nodes/lib-supabase.js.map +0 -1
  216. package/dist/nodes/lib-svg.d.ts +0 -199
  217. package/dist/nodes/lib-svg.d.ts.map +0 -1
  218. package/dist/nodes/lib-svg.js +0 -1027
  219. package/dist/nodes/lib-svg.js.map +0 -1
  220. package/dist/nodes/lib-tensorflow.d.ts +0 -71
  221. package/dist/nodes/lib-tensorflow.d.ts.map +0 -1
  222. package/dist/nodes/lib-tensorflow.js +0 -351
  223. package/dist/nodes/lib-tensorflow.js.map +0 -1
  224. package/dist/nodes/lib-twilio.d.ts +0 -71
  225. package/dist/nodes/lib-twilio.d.ts.map +0 -1
  226. package/dist/nodes/lib-twilio.js +0 -469
  227. package/dist/nodes/lib-twilio.js.map +0 -1
  228. package/dist/nodes/lib-validate.d.ts +0 -84
  229. package/dist/nodes/lib-validate.d.ts.map +0 -1
  230. package/dist/nodes/lib-validate.js +0 -215
  231. package/dist/nodes/lib-validate.js.map +0 -1
  232. package/dist/nodes/lib-video-download.d.ts +0 -26
  233. package/dist/nodes/lib-video-download.d.ts.map +0 -1
  234. package/dist/nodes/lib-video-download.js +0 -299
  235. package/dist/nodes/lib-video-download.js.map +0 -1
  236. package/dist/nodes/messaging.d.ts +0 -88
  237. package/dist/nodes/messaging.d.ts.map +0 -1
  238. package/dist/nodes/messaging.js +0 -418
  239. package/dist/nodes/messaging.js.map +0 -1
  240. package/dist/nodes/mistral.d.ts +0 -83
  241. package/dist/nodes/mistral.d.ts.map +0 -1
  242. package/dist/nodes/mistral.js +0 -450
  243. package/dist/nodes/mistral.js.map +0 -1
  244. package/dist/nodes/model3d/analysis.d.ts +0 -13
  245. package/dist/nodes/model3d/analysis.d.ts.map +0 -1
  246. package/dist/nodes/model3d/analysis.js +0 -36
  247. package/dist/nodes/model3d/analysis.js.map +0 -1
  248. package/dist/nodes/model3d/base.d.ts +0 -11
  249. package/dist/nodes/model3d/base.d.ts.map +0 -1
  250. package/dist/nodes/model3d/base.js +0 -20
  251. package/dist/nodes/model3d/base.js.map +0 -1
  252. package/dist/nodes/model3d/boolean-ops.d.ts +0 -2
  253. package/dist/nodes/model3d/boolean-ops.d.ts.map +0 -1
  254. package/dist/nodes/model3d/boolean-ops.js +0 -172
  255. package/dist/nodes/model3d/boolean-ops.js.map +0 -1
  256. package/dist/nodes/model3d/cleanup.d.ts +0 -47
  257. package/dist/nodes/model3d/cleanup.d.ts.map +0 -1
  258. package/dist/nodes/model3d/cleanup.js +0 -136
  259. package/dist/nodes/model3d/cleanup.js.map +0 -1
  260. package/dist/nodes/model3d/convert.d.ts +0 -14
  261. package/dist/nodes/model3d/convert.d.ts.map +0 -1
  262. package/dist/nodes/model3d/convert.js +0 -64
  263. package/dist/nodes/model3d/convert.js.map +0 -1
  264. package/dist/nodes/model3d/defaults.d.ts +0 -34
  265. package/dist/nodes/model3d/defaults.d.ts.map +0 -1
  266. package/dist/nodes/model3d/defaults.js +0 -28
  267. package/dist/nodes/model3d/defaults.js.map +0 -1
  268. package/dist/nodes/model3d/document-ops.d.ts +0 -4
  269. package/dist/nodes/model3d/document-ops.d.ts.map +0 -1
  270. package/dist/nodes/model3d/document-ops.js +0 -40
  271. package/dist/nodes/model3d/document-ops.js.map +0 -1
  272. package/dist/nodes/model3d/generation.d.ts +0 -39
  273. package/dist/nodes/model3d/generation.d.ts.map +0 -1
  274. package/dist/nodes/model3d/generation.js +0 -179
  275. package/dist/nodes/model3d/generation.js.map +0 -1
  276. package/dist/nodes/model3d/glb.d.ts +0 -29
  277. package/dist/nodes/model3d/glb.d.ts.map +0 -1
  278. package/dist/nodes/model3d/glb.js +0 -255
  279. package/dist/nodes/model3d/glb.js.map +0 -1
  280. package/dist/nodes/model3d/index.d.ts +0 -20
  281. package/dist/nodes/model3d/index.d.ts.map +0 -1
  282. package/dist/nodes/model3d/index.js +0 -38
  283. package/dist/nodes/model3d/index.js.map +0 -1
  284. package/dist/nodes/model3d/io.d.ts +0 -38
  285. package/dist/nodes/model3d/io.d.ts.map +0 -1
  286. package/dist/nodes/model3d/io.js +0 -162
  287. package/dist/nodes/model3d/io.js.map +0 -1
  288. package/dist/nodes/model3d/mesh-ops.d.ts +0 -40
  289. package/dist/nodes/model3d/mesh-ops.d.ts.map +0 -1
  290. package/dist/nodes/model3d/mesh-ops.js +0 -775
  291. package/dist/nodes/model3d/mesh-ops.js.map +0 -1
  292. package/dist/nodes/model3d/nodes.d.ts +0 -2
  293. package/dist/nodes/model3d/nodes.d.ts.map +0 -1
  294. package/dist/nodes/model3d/nodes.js +0 -2
  295. package/dist/nodes/model3d/nodes.js.map +0 -1
  296. package/dist/nodes/model3d/ops.d.ts +0 -37
  297. package/dist/nodes/model3d/ops.d.ts.map +0 -1
  298. package/dist/nodes/model3d/ops.js +0 -137
  299. package/dist/nodes/model3d/ops.js.map +0 -1
  300. package/dist/nodes/model3d/transforms.d.ts +0 -49
  301. package/dist/nodes/model3d/transforms.d.ts.map +0 -1
  302. package/dist/nodes/model3d/transforms.js +0 -142
  303. package/dist/nodes/model3d/transforms.js.map +0 -1
  304. package/dist/nodes/model3d/types.d.ts +0 -81
  305. package/dist/nodes/model3d/types.d.ts.map +0 -1
  306. package/dist/nodes/model3d/types.js +0 -2
  307. package/dist/nodes/model3d/types.js.map +0 -1
  308. package/dist/nodes/model3d/utils.d.ts +0 -34
  309. package/dist/nodes/model3d/utils.d.ts.map +0 -1
  310. package/dist/nodes/model3d/utils.js +0 -185
  311. package/dist/nodes/model3d/utils.js.map +0 -1
  312. package/dist/nodes/model3d.d.ts +0 -2
  313. package/dist/nodes/model3d.d.ts.map +0 -1
  314. package/dist/nodes/model3d.js +0 -2
  315. package/dist/nodes/model3d.js.map +0 -1
  316. package/dist/nodes/openai.d.ts +0 -172
  317. package/dist/nodes/openai.d.ts.map +0 -1
  318. package/dist/nodes/openai.js +0 -1294
  319. package/dist/nodes/openai.js.map +0 -1
  320. package/dist/nodes/output.d.ts +0 -29
  321. package/dist/nodes/output.d.ts.map +0 -1
  322. package/dist/nodes/output.js +0 -87
  323. package/dist/nodes/output.js.map +0 -1
  324. package/dist/nodes/sandbox.d.ts +0 -63
  325. package/dist/nodes/sandbox.d.ts.map +0 -1
  326. package/dist/nodes/sandbox.js +0 -633
  327. package/dist/nodes/sandbox.js.map +0 -1
  328. package/dist/nodes/search.d.ts +0 -117
  329. package/dist/nodes/search.d.ts.map +0 -1
  330. package/dist/nodes/search.js +0 -607
  331. package/dist/nodes/search.js.map +0 -1
  332. package/dist/nodes/team.d.ts +0 -74
  333. package/dist/nodes/team.d.ts.map +0 -1
  334. package/dist/nodes/team.js +0 -309
  335. package/dist/nodes/team.js.map +0 -1
  336. package/dist/nodes/text-extra.d.ts +0 -633
  337. package/dist/nodes/text-extra.d.ts.map +0 -1
  338. package/dist/nodes/text-extra.js +0 -2226
  339. package/dist/nodes/text-extra.js.map +0 -1
  340. package/dist/nodes/tool-agents.d.ts +0 -334
  341. package/dist/nodes/tool-agents.d.ts.map +0 -1
  342. package/dist/nodes/tool-agents.js +0 -1861
  343. package/dist/nodes/tool-agents.js.map +0 -1
  344. package/dist/nodes/triggers.d.ts +0 -107
  345. package/dist/nodes/triggers.d.ts.map +0 -1
  346. package/dist/nodes/triggers.js +0 -706
  347. package/dist/nodes/triggers.js.map +0 -1
  348. package/dist/nodes/vector.d.ts +0 -168
  349. package/dist/nodes/vector.d.ts.map +0 -1
  350. package/dist/nodes/vector.js +0 -1121
  351. package/dist/nodes/vector.js.map +0 -1
  352. package/dist/nodes/video.d.ts +0 -387
  353. package/dist/nodes/video.d.ts.map +0 -1
  354. package/dist/nodes/video.js +0 -2383
  355. package/dist/nodes/video.js.map +0 -1
  356. package/dist/nodes/workflow.d.ts +0 -24
  357. package/dist/nodes/workflow.d.ts.map +0 -1
  358. package/dist/nodes/workflow.js +0 -146
  359. package/dist/nodes/workflow.js.map +0 -1
  360. package/dist/nodes/workspace.d.ts +0 -203
  361. package/dist/nodes/workspace.d.ts.map +0 -1
  362. package/dist/nodes/workspace.js +0 -795
  363. package/dist/nodes/workspace.js.map +0 -1
@@ -1,633 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { BaseNode, prop } from "@nodetool-ai/node-sdk";
8
- import { DockerSandboxProvider, SessionStore } from "@nodetool-ai/sandbox";
9
- import { randomUUID } from "node:crypto";
10
- import { AgentNode } from "./agents.js";
11
- const DEFAULT_SCOPE_USER = "no-user";
12
- const DEFAULT_SCOPE_WORKFLOW = "no-workflow";
13
- const DEFAULT_SESSION_ID = "workflow";
14
- const BROWSER_ACTIONS = {
15
- view: {
16
- toolName: "sandbox_browser_view",
17
- description: "Inspect current sandbox browser page and elements.",
18
- inputSchema: {
19
- type: "object",
20
- properties: {
21
- include_screenshot: { type: "boolean" }
22
- }
23
- },
24
- invoke: (client, params) => client.browserView(params)
25
- },
26
- navigate: {
27
- toolName: "sandbox_browser_navigate",
28
- description: "Navigate the sandbox browser to a URL.",
29
- inputSchema: {
30
- type: "object",
31
- properties: {
32
- url: { type: "string" },
33
- wait_until: {
34
- type: "string",
35
- enum: ["load", "domcontentloaded", "networkidle"]
36
- }
37
- },
38
- required: ["url"]
39
- },
40
- invoke: (client, params) => client.browserNavigate(params)
41
- },
42
- restart: {
43
- toolName: "sandbox_browser_restart",
44
- description: "Restart sandbox browser context.",
45
- inputSchema: {
46
- type: "object",
47
- properties: {
48
- url: { type: "string" }
49
- }
50
- },
51
- invoke: (client, params) => client.browserRestart(params)
52
- },
53
- click: {
54
- toolName: "sandbox_browser_click",
55
- description: "Click an element in the sandbox browser.",
56
- inputSchema: {
57
- type: "object",
58
- properties: {
59
- index: { type: "integer" },
60
- coordinate_x: { type: "integer" },
61
- coordinate_y: { type: "integer" }
62
- }
63
- },
64
- invoke: (client, params) => client.browserClick(params)
65
- },
66
- input_text: {
67
- toolName: "sandbox_browser_input_text",
68
- description: "Type into an element in the sandbox browser.",
69
- inputSchema: {
70
- type: "object",
71
- properties: {
72
- text: { type: "string" },
73
- press_enter: { type: "boolean" },
74
- index: { type: "integer" },
75
- coordinate_x: { type: "integer" },
76
- coordinate_y: { type: "integer" }
77
- },
78
- required: ["text"]
79
- },
80
- invoke: (client, params) => client.browserInput(params)
81
- },
82
- move_mouse: {
83
- toolName: "sandbox_browser_move_mouse",
84
- description: "Move mouse in sandbox browser viewport.",
85
- inputSchema: {
86
- type: "object",
87
- properties: {
88
- coordinate_x: { type: "integer" },
89
- coordinate_y: { type: "integer" }
90
- },
91
- required: ["coordinate_x", "coordinate_y"]
92
- },
93
- invoke: (client, params) => client.browserMoveMouse(params)
94
- },
95
- press_key: {
96
- toolName: "sandbox_browser_press_key",
97
- description: "Press a keyboard key in the sandbox browser.",
98
- inputSchema: {
99
- type: "object",
100
- properties: {
101
- key: { type: "string" }
102
- },
103
- required: ["key"]
104
- },
105
- invoke: (client, params) => client.browserPressKey(params)
106
- },
107
- select_option: {
108
- toolName: "sandbox_browser_select_option",
109
- description: "Select an option in a sandbox browser select element.",
110
- inputSchema: {
111
- type: "object",
112
- properties: {
113
- index: { type: "integer" },
114
- option: { type: "string" }
115
- },
116
- required: ["index", "option"]
117
- },
118
- invoke: (client, params) => client.browserSelectOption(params)
119
- },
120
- scroll: {
121
- toolName: "sandbox_browser_scroll",
122
- description: "Scroll the sandbox browser page.",
123
- inputSchema: {
124
- type: "object",
125
- properties: {
126
- to_top: { type: "boolean" },
127
- to_bottom: { type: "boolean" },
128
- pixels: { type: "integer" }
129
- }
130
- },
131
- invoke: (client, params) => client.browserScroll(params)
132
- },
133
- console_exec: {
134
- toolName: "sandbox_browser_console_exec",
135
- description: "Execute JavaScript in sandbox browser console.",
136
- inputSchema: {
137
- type: "object",
138
- properties: {
139
- javascript: { type: "string" }
140
- },
141
- required: ["javascript"]
142
- },
143
- invoke: (client, params) => client.browserConsoleExec(params)
144
- },
145
- console_view: {
146
- toolName: "sandbox_browser_console_view",
147
- description: "View sandbox browser console messages.",
148
- inputSchema: {
149
- type: "object",
150
- properties: {
151
- max_lines: { type: "integer" }
152
- }
153
- },
154
- invoke: (client, params) => client.browserConsoleView(params)
155
- }
156
- };
157
- const FILE_ACTIONS = {
158
- read: {
159
- toolName: "sandbox_file_read",
160
- description: "Read a file from the sandbox.",
161
- inputSchema: {
162
- type: "object",
163
- properties: {
164
- file: { type: "string" },
165
- start_line: { type: "integer" },
166
- end_line: { type: "integer" }
167
- },
168
- required: ["file"]
169
- },
170
- invoke: (client, params) => client.fileRead(params)
171
- },
172
- write: {
173
- toolName: "sandbox_file_write",
174
- description: "Write a file in the sandbox.",
175
- inputSchema: {
176
- type: "object",
177
- properties: {
178
- file: { type: "string" },
179
- content: { type: "string" },
180
- append: { type: "boolean" },
181
- leading_newline: { type: "boolean" },
182
- trailing_newline: { type: "boolean" }
183
- },
184
- required: ["file", "content"]
185
- },
186
- invoke: (client, params) => client.fileWrite(params)
187
- },
188
- str_replace: {
189
- toolName: "sandbox_file_str_replace",
190
- description: "Replace string content inside a sandbox file.",
191
- inputSchema: {
192
- type: "object",
193
- properties: {
194
- file: { type: "string" },
195
- old_str: { type: "string" },
196
- new_str: { type: "string" }
197
- },
198
- required: ["file", "old_str", "new_str"]
199
- },
200
- invoke: (client, params) => client.fileStrReplace(params)
201
- },
202
- find_in_content: {
203
- toolName: "sandbox_file_find_in_content",
204
- description: "Find content in a sandbox file using regex.",
205
- inputSchema: {
206
- type: "object",
207
- properties: {
208
- file: { type: "string" },
209
- regex: { type: "string" }
210
- },
211
- required: ["file", "regex"]
212
- },
213
- invoke: (client, params) => client.fileFindInContent(params)
214
- },
215
- find_by_name: {
216
- toolName: "sandbox_file_find_by_name",
217
- description: "Find files by glob pattern in sandbox workspace.",
218
- inputSchema: {
219
- type: "object",
220
- properties: {
221
- path: { type: "string" },
222
- glob: { type: "string" }
223
- },
224
- required: ["path", "glob"]
225
- },
226
- invoke: (client, params) => client.fileFindByName(params)
227
- }
228
- };
229
- const SHELL_AGENT_TOOLS = [
230
- {
231
- toolName: "sandbox_shell_exec",
232
- description: "Start a shell command in the sandbox.",
233
- inputSchema: {
234
- type: "object",
235
- properties: {
236
- id: { type: "string" },
237
- command: { type: "string" },
238
- exec_dir: { type: "string" }
239
- },
240
- required: ["id", "command"]
241
- },
242
- invoke: (client, params) => client.shellExec(params)
243
- },
244
- {
245
- toolName: "sandbox_shell_wait",
246
- description: "Wait for a shell command in the sandbox and collect output.",
247
- inputSchema: {
248
- type: "object",
249
- properties: {
250
- id: { type: "string" },
251
- seconds: { type: "number" }
252
- },
253
- required: ["id"]
254
- },
255
- invoke: (client, params) => client.shellWait(params)
256
- },
257
- {
258
- toolName: "sandbox_shell_view",
259
- description: "Read current shell command output in the sandbox.",
260
- inputSchema: {
261
- type: "object",
262
- properties: { id: { type: "string" } },
263
- required: ["id"]
264
- },
265
- invoke: (client, params) => client.shellView(params)
266
- },
267
- {
268
- toolName: "sandbox_shell_write",
269
- description: "Write to a running sandbox shell process.",
270
- inputSchema: {
271
- type: "object",
272
- properties: {
273
- id: { type: "string" },
274
- input: { type: "string" },
275
- press_enter: { type: "boolean" }
276
- },
277
- required: ["id", "input", "press_enter"]
278
- },
279
- invoke: (client, params) => client.shellWriteToProcess(params)
280
- },
281
- {
282
- toolName: "sandbox_shell_kill",
283
- description: "Kill a running sandbox shell process.",
284
- inputSchema: {
285
- type: "object",
286
- properties: { id: { type: "string" } },
287
- required: ["id"]
288
- },
289
- invoke: (client, params) => client.shellKillProcess(params)
290
- }
291
- ];
292
- let sharedSandboxStore = null;
293
- let sandboxStoreCleanupHooksRegistered = false;
294
- let sharedSandboxStoreClosePromise = null;
295
- async function closeSharedSandboxStore() {
296
- if (sharedSandboxStoreClosePromise) {
297
- return sharedSandboxStoreClosePromise;
298
- }
299
- if (!sharedSandboxStore) {
300
- return;
301
- }
302
- const store = sharedSandboxStore;
303
- sharedSandboxStore = null;
304
- const closePromise = (async () => {
305
- try {
306
- await store.close();
307
- }
308
- catch {
309
- // Best-effort shutdown cleanup: ignore close failures so signal handling can continue.
310
- }
311
- })();
312
- sharedSandboxStoreClosePromise = closePromise;
313
- try {
314
- await closePromise;
315
- }
316
- finally {
317
- if (sharedSandboxStoreClosePromise === closePromise) {
318
- sharedSandboxStoreClosePromise = null;
319
- }
320
- }
321
- }
322
- function registerSandboxStoreCleanupHooks() {
323
- if (sandboxStoreCleanupHooksRegistered ||
324
- typeof process === "undefined" ||
325
- typeof process.once !== "function") {
326
- return;
327
- }
328
- sandboxStoreCleanupHooksRegistered = true;
329
- const handleProcessShutdown = (exitCode) => {
330
- closeSharedSandboxStore()
331
- .catch(() => {
332
- // Ignore cleanup errors while handling process shutdown signals.
333
- })
334
- .finally(() => process.exit(exitCode));
335
- };
336
- process.once("SIGINT", () => {
337
- handleProcessShutdown(130);
338
- });
339
- process.once("SIGTERM", () => {
340
- handleProcessShutdown(143);
341
- });
342
- }
343
- function getSandboxStore() {
344
- registerSandboxStoreCleanupHooks();
345
- if (sharedSandboxStore) {
346
- return sharedSandboxStore;
347
- }
348
- sharedSandboxStore = new SessionStore({
349
- provider: new DockerSandboxProvider()
350
- });
351
- return sharedSandboxStore;
352
- }
353
- function asRecord(value) {
354
- if (value === null ||
355
- value === undefined ||
356
- typeof value !== "object" ||
357
- Array.isArray(value)) {
358
- return {};
359
- }
360
- return value;
361
- }
362
- function asString(value) {
363
- if (value === null || value === undefined) {
364
- return "";
365
- }
366
- return String(value);
367
- }
368
- function asTrimmedString(value) {
369
- return asString(value).trim();
370
- }
371
- /**
372
- * Path inside the sandbox container where the host workspace is bind-mounted.
373
- * See DockerSandbox: `${workspaceDir}:/workspace:rw`.
374
- */
375
- const SANDBOX_WORKSPACE_MOUNT = "/workspace";
376
- /**
377
- * Resolve the host workspace directory to mount into the sandbox.
378
- * Prefer the explicit node prop; otherwise auto-mount the workflow's
379
- * workspace from ProcessingContext so sandbox tools see project files.
380
- */
381
- function resolveSandboxWorkspaceDir(prop, context) {
382
- const explicit = asTrimmedString(prop);
383
- if (explicit.length > 0)
384
- return explicit;
385
- return asTrimmedString(context?.workspaceDir);
386
- }
387
- /**
388
- * Build a stable context scope used to isolate sandbox sessions per workflow run.
389
- * Format: "<userId>:<workflowId>:<jobId>" with explicit fallback tokens.
390
- */
391
- function getContextScope(context) {
392
- if (!context) {
393
- return `${DEFAULT_SCOPE_USER}:${DEFAULT_SCOPE_WORKFLOW}`;
394
- }
395
- const userId = asTrimmedString(context.userId) || DEFAULT_SCOPE_USER;
396
- const workflowId = asTrimmedString(context.workflowId) || DEFAULT_SCOPE_WORKFLOW;
397
- return `${userId}:${workflowId}`;
398
- }
399
- function toEffectiveSessionId(sessionId, context) {
400
- return `${getContextScope(context)}:${sessionId}`;
401
- }
402
- async function getClient(sessionId, workspaceDir, context) {
403
- const store = getSandboxStore();
404
- const options = {};
405
- if (workspaceDir.length > 0) {
406
- options.workspaceDir = workspaceDir;
407
- }
408
- if (context?.userId) {
409
- options.env = { NODETOOL_USER_ID: context.userId };
410
- }
411
- const sandbox = await store.acquire(sessionId, options);
412
- return sandbox.client;
413
- }
414
- function createAgentTools(client) {
415
- const defs = [
416
- ...SHELL_AGENT_TOOLS,
417
- ...Object.values(FILE_ACTIONS),
418
- ...Object.values(BROWSER_ACTIONS)
419
- ];
420
- return defs.map((def) => ({
421
- name: def.toolName,
422
- description: def.description,
423
- inputSchema: def.inputSchema,
424
- process: async (_context, params) => def.invoke(client, params)
425
- }));
426
- }
427
- export class SandboxShellNode extends BaseNode {
428
- static nodeType = "nodetool.sandbox.SandboxShell";
429
- static title = "SandboxShell";
430
- static description = "Execute shell commands in an isolated sandbox session.";
431
- static metadataOutputTypes = {
432
- output: "str",
433
- running: "bool",
434
- exit_code: "union[int, none]",
435
- timed_out: "bool"
436
- };
437
- static exposeAsTool = true;
438
- async process(context) {
439
- const effectiveSessionId = toEffectiveSessionId(DEFAULT_SESSION_ID, context);
440
- const workspaceDir = resolveSandboxWorkspaceDir(this.workspace_dir, context);
441
- const command = asString(this.command);
442
- const normalizedCommand = asTrimmedString(this.command);
443
- const waitSeconds = Number(this.wait_seconds ?? 1);
444
- const commandId = `cmd-${randomUUID().slice(0, 8)}`;
445
- if (normalizedCommand.length === 0) {
446
- throw new Error("Command is required");
447
- }
448
- const client = await getClient(effectiveSessionId, workspaceDir, context);
449
- await client.shellExec({
450
- id: commandId,
451
- command,
452
- exec_dir: workspaceDir.length > 0 ? SANDBOX_WORKSPACE_MOUNT : undefined
453
- });
454
- const shellResult = waitSeconds > 0
455
- ? await client.shellWait({ id: commandId, seconds: waitSeconds })
456
- : await client.shellView({ id: commandId });
457
- return {
458
- output: shellResult.output,
459
- running: shellResult.running,
460
- exit_code: shellResult.exit_code,
461
- timed_out: "timed_out" in shellResult ? shellResult.timed_out : false
462
- };
463
- }
464
- }
465
- __decorate([
466
- prop({
467
- type: "str",
468
- default: "",
469
- title: "Workspace Dir",
470
- description: "Optional sandbox workspace directory."
471
- })
472
- ], SandboxShellNode.prototype, "workspace_dir", void 0);
473
- __decorate([
474
- prop({
475
- type: "str",
476
- default: "",
477
- title: "Command",
478
- description: "Shell command to execute in the sandbox."
479
- })
480
- ], SandboxShellNode.prototype, "command", void 0);
481
- __decorate([
482
- prop({
483
- type: "float",
484
- default: 1,
485
- title: "Wait Seconds",
486
- description: "If greater than 0, wait this long for output after launching command."
487
- })
488
- ], SandboxShellNode.prototype, "wait_seconds", void 0);
489
- export class SandboxBrowserNode extends BaseNode {
490
- static nodeType = "nodetool.sandbox.SandboxBrowser";
491
- static title = "SandboxBrowser";
492
- static description = "Control the sandbox browser (navigate, inspect, click, input, and console actions).";
493
- static metadataOutputTypes = {
494
- output: "dict[str, any]"
495
- };
496
- static exposeAsTool = true;
497
- async process(context) {
498
- const effectiveSessionId = toEffectiveSessionId(DEFAULT_SESSION_ID, context);
499
- const workspaceDir = resolveSandboxWorkspaceDir(this.workspace_dir, context);
500
- const action = asTrimmedString(this.action || "view");
501
- const params = asRecord(this.params);
502
- const client = await getClient(effectiveSessionId, workspaceDir, context);
503
- const actionDef = BROWSER_ACTIONS[action];
504
- if (!actionDef) {
505
- throw new Error(`Unsupported browser action: ${action}`);
506
- }
507
- const output = await actionDef.invoke(client, params);
508
- return {
509
- output
510
- };
511
- }
512
- }
513
- __decorate([
514
- prop({
515
- type: "str",
516
- default: "",
517
- title: "Workspace Dir",
518
- description: "Optional sandbox workspace directory."
519
- })
520
- ], SandboxBrowserNode.prototype, "workspace_dir", void 0);
521
- __decorate([
522
- prop({
523
- type: "enum",
524
- default: "view",
525
- title: "Action",
526
- description: "Browser action to execute.",
527
- values: [
528
- "view",
529
- "navigate",
530
- "restart",
531
- "click",
532
- "input_text",
533
- "move_mouse",
534
- "press_key",
535
- "select_option",
536
- "scroll",
537
- "console_exec",
538
- "console_view"
539
- ]
540
- })
541
- ], SandboxBrowserNode.prototype, "action", void 0);
542
- __decorate([
543
- prop({
544
- type: "dict",
545
- default: {},
546
- title: "Params",
547
- description: "Action parameters validated by the sandbox browser tool."
548
- })
549
- ], SandboxBrowserNode.prototype, "params", void 0);
550
- export class SandboxFileNode extends BaseNode {
551
- static nodeType = "nodetool.sandbox.SandboxFile";
552
- static title = "SandboxFile";
553
- static description = "Read, write, search, and replace files inside a sandbox session.";
554
- static metadataOutputTypes = {
555
- output: "dict[str, any]"
556
- };
557
- static exposeAsTool = true;
558
- async process(context) {
559
- const effectiveSessionId = toEffectiveSessionId(DEFAULT_SESSION_ID, context);
560
- const workspaceDir = resolveSandboxWorkspaceDir(this.workspace_dir, context);
561
- const action = asTrimmedString(this.action || "read");
562
- const params = asRecord(this.params);
563
- const client = await getClient(effectiveSessionId, workspaceDir, context);
564
- const actionDef = FILE_ACTIONS[action];
565
- if (!actionDef) {
566
- throw new Error(`Unsupported file action: ${action}`);
567
- }
568
- const output = await actionDef.invoke(client, params);
569
- return {
570
- output
571
- };
572
- }
573
- }
574
- __decorate([
575
- prop({
576
- type: "str",
577
- default: "",
578
- title: "Workspace Dir",
579
- description: "Optional sandbox workspace directory."
580
- })
581
- ], SandboxFileNode.prototype, "workspace_dir", void 0);
582
- __decorate([
583
- prop({
584
- type: "enum",
585
- default: "read",
586
- title: "Action",
587
- description: "File action to execute.",
588
- values: ["read", "write", "str_replace", "find_in_content", "find_by_name"]
589
- })
590
- ], SandboxFileNode.prototype, "action", void 0);
591
- __decorate([
592
- prop({
593
- type: "dict",
594
- default: {},
595
- title: "Params",
596
- description: "Action parameters validated by the sandbox file tool."
597
- })
598
- ], SandboxFileNode.prototype, "params", void 0);
599
- /**
600
- * SandboxAgent — same as the standard Agent node, but augments the tool
601
- * list with the sandbox shell/browser/file actions and auto-mounts the
602
- * workflow workspace into the container. Inherits streaming, mode
603
- * dispatch (loop/plan/multi-agent), history, threads, image/audio,
604
- * structured outputs, control tools, and the agentic-provider fast-path
605
- * from AgentNode.
606
- */
607
- export class SandboxAgentNode extends AgentNode {
608
- static nodeType = "nodetool.sandbox.SandboxAgent";
609
- static title = "SandboxAgent";
610
- static description = "Agent with access to sandbox shell, browser, and file tools alongside any user-selected tools.";
611
- async buildTools(context) {
612
- const userTools = await super.buildTools(context);
613
- const sessionId = toEffectiveSessionId(DEFAULT_SESSION_ID, context);
614
- const workspaceDir = resolveSandboxWorkspaceDir(this.workspace_dir, context);
615
- const client = await getClient(sessionId, workspaceDir, context);
616
- return [...createAgentTools(client), ...userTools];
617
- }
618
- }
619
- __decorate([
620
- prop({
621
- type: "str",
622
- default: "",
623
- title: "Workspace Dir",
624
- description: "Host directory bind-mounted into the sandbox at /workspace. Defaults to the workflow's workspace."
625
- })
626
- ], SandboxAgentNode.prototype, "workspace_dir", void 0);
627
- export const SANDBOX_NODES = [
628
- SandboxShellNode,
629
- SandboxBrowserNode,
630
- SandboxFileNode,
631
- SandboxAgentNode
632
- ];
633
- //# sourceMappingURL=sandbox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/nodes/sandbox.ts"],"names":[],"mappings":"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"}