@nodetool-ai/base-nodes 0.7.0-rc.23 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/README.md +21 -0
  2. package/dist/.nodetool-build-stamp +1 -0
  3. package/dist/builtin-packs.d.ts +17 -0
  4. package/dist/builtin-packs.d.ts.map +1 -0
  5. package/dist/builtin-packs.js +95 -0
  6. package/dist/builtin-packs.js.map +1 -0
  7. package/dist/index.d.ts +63 -67
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +186 -173
  10. package/dist/index.js.map +1 -1
  11. package/dist/platforms/browser.d.ts +19 -0
  12. package/dist/platforms/browser.d.ts.map +1 -0
  13. package/dist/platforms/browser.js +29 -0
  14. package/dist/platforms/browser.js.map +1 -0
  15. package/package.json +72 -65
  16. package/dist/lib/audio-wav.d.ts +0 -66
  17. package/dist/lib/audio-wav.d.ts.map +0 -1
  18. package/dist/lib/audio-wav.js +0 -215
  19. package/dist/lib/audio-wav.js.map +0 -1
  20. package/dist/nodes/agent-tool-hydration.d.ts +0 -10
  21. package/dist/nodes/agent-tool-hydration.d.ts.map +0 -1
  22. package/dist/nodes/agent-tool-hydration.js +0 -43
  23. package/dist/nodes/agent-tool-hydration.js.map +0 -1
  24. package/dist/nodes/agents.d.ts +0 -262
  25. package/dist/nodes/agents.d.ts.map +0 -1
  26. package/dist/nodes/agents.js +0 -2856
  27. package/dist/nodes/agents.js.map +0 -1
  28. package/dist/nodes/anthropic.d.ts +0 -26
  29. package/dist/nodes/anthropic.d.ts.map +0 -1
  30. package/dist/nodes/anthropic.js +0 -133
  31. package/dist/nodes/anthropic.js.map +0 -1
  32. package/dist/nodes/apify.d.ts +0 -120
  33. package/dist/nodes/apify.d.ts.map +0 -1
  34. package/dist/nodes/apify.js +0 -618
  35. package/dist/nodes/apify.js.map +0 -1
  36. package/dist/nodes/audio.d.ts +0 -301
  37. package/dist/nodes/audio.d.ts.map +0 -1
  38. package/dist/nodes/audio.js +0 -1274
  39. package/dist/nodes/audio.js.map +0 -1
  40. package/dist/nodes/code-node.d.ts +0 -34
  41. package/dist/nodes/code-node.d.ts.map +0 -1
  42. package/dist/nodes/code-node.js +0 -343
  43. package/dist/nodes/code-node.js.map +0 -1
  44. package/dist/nodes/code.d.ts +0 -301
  45. package/dist/nodes/code.d.ts.map +0 -1
  46. package/dist/nodes/code.js +0 -850
  47. package/dist/nodes/code.js.map +0 -1
  48. package/dist/nodes/compare.d.ts +0 -18
  49. package/dist/nodes/compare.d.ts.map +0 -1
  50. package/dist/nodes/compare.js +0 -122
  51. package/dist/nodes/compare.js.map +0 -1
  52. package/dist/nodes/constant.d.ts +0 -315
  53. package/dist/nodes/constant.d.ts.map +0 -1
  54. package/dist/nodes/constant.js +0 -715
  55. package/dist/nodes/constant.js.map +0 -1
  56. package/dist/nodes/control.d.ts +0 -83
  57. package/dist/nodes/control.d.ts.map +0 -1
  58. package/dist/nodes/control.js +0 -212
  59. package/dist/nodes/control.js.map +0 -1
  60. package/dist/nodes/data.d.ts +0 -369
  61. package/dist/nodes/data.d.ts.map +0 -1
  62. package/dist/nodes/data.js +0 -1590
  63. package/dist/nodes/data.js.map +0 -1
  64. package/dist/nodes/document.d.ts +0 -134
  65. package/dist/nodes/document.d.ts.map +0 -1
  66. package/dist/nodes/document.js +0 -984
  67. package/dist/nodes/document.js.map +0 -1
  68. package/dist/nodes/extended-placeholders.d.ts +0 -6
  69. package/dist/nodes/extended-placeholders.d.ts.map +0 -1
  70. package/dist/nodes/extended-placeholders.js +0 -19
  71. package/dist/nodes/extended-placeholders.js.map +0 -1
  72. package/dist/nodes/gemini.d.ts +0 -110
  73. package/dist/nodes/gemini.d.ts.map +0 -1
  74. package/dist/nodes/gemini.js +0 -871
  75. package/dist/nodes/gemini.js.map +0 -1
  76. package/dist/nodes/generators.d.ts +0 -84
  77. package/dist/nodes/generators.d.ts.map +0 -1
  78. package/dist/nodes/generators.js +0 -968
  79. package/dist/nodes/generators.js.map +0 -1
  80. package/dist/nodes/image.d.ts +0 -232
  81. package/dist/nodes/image.d.ts.map +0 -1
  82. package/dist/nodes/image.js +0 -1395
  83. package/dist/nodes/image.js.map +0 -1
  84. package/dist/nodes/input.d.ts +0 -445
  85. package/dist/nodes/input.d.ts.map +0 -1
  86. package/dist/nodes/input.js +0 -1459
  87. package/dist/nodes/input.js.map +0 -1
  88. package/dist/nodes/kie-dynamic.d.ts +0 -31
  89. package/dist/nodes/kie-dynamic.d.ts.map +0 -1
  90. package/dist/nodes/kie-dynamic.js +0 -270
  91. package/dist/nodes/kie-dynamic.js.map +0 -1
  92. package/dist/nodes/lib-audio-dsp.d.ts +0 -85
  93. package/dist/nodes/lib-audio-dsp.d.ts.map +0 -1
  94. package/dist/nodes/lib-audio-dsp.js +0 -450
  95. package/dist/nodes/lib-audio-dsp.js.map +0 -1
  96. package/dist/nodes/lib-audio-effects.d.ts +0 -116
  97. package/dist/nodes/lib-audio-effects.d.ts.map +0 -1
  98. package/dist/nodes/lib-audio-effects.js +0 -905
  99. package/dist/nodes/lib-audio-effects.js.map +0 -1
  100. package/dist/nodes/lib-browser.d.ts +0 -99
  101. package/dist/nodes/lib-browser.d.ts.map +0 -1
  102. package/dist/nodes/lib-browser.js +0 -692
  103. package/dist/nodes/lib-browser.js.map +0 -1
  104. package/dist/nodes/lib-charts.d.ts +0 -20
  105. package/dist/nodes/lib-charts.d.ts.map +0 -1
  106. package/dist/nodes/lib-charts.js +0 -245
  107. package/dist/nodes/lib-charts.js.map +0 -1
  108. package/dist/nodes/lib-datetime.d.ts +0 -108
  109. package/dist/nodes/lib-datetime.d.ts.map +0 -1
  110. package/dist/nodes/lib-datetime.js +0 -421
  111. package/dist/nodes/lib-datetime.js.map +0 -1
  112. package/dist/nodes/lib-doc-convert.d.ts +0 -19
  113. package/dist/nodes/lib-doc-convert.d.ts.map +0 -1
  114. package/dist/nodes/lib-doc-convert.js +0 -257
  115. package/dist/nodes/lib-doc-convert.js.map +0 -1
  116. package/dist/nodes/lib-doc-transform.d.ts +0 -39
  117. package/dist/nodes/lib-doc-transform.d.ts.map +0 -1
  118. package/dist/nodes/lib-doc-transform.js +0 -335
  119. package/dist/nodes/lib-doc-transform.js.map +0 -1
  120. package/dist/nodes/lib-docx.d.ts +0 -106
  121. package/dist/nodes/lib-docx.d.ts.map +0 -1
  122. package/dist/nodes/lib-docx.js +0 -595
  123. package/dist/nodes/lib-docx.js.map +0 -1
  124. package/dist/nodes/lib-epub.d.ts +0 -55
  125. package/dist/nodes/lib-epub.d.ts.map +0 -1
  126. package/dist/nodes/lib-epub.js +0 -220
  127. package/dist/nodes/lib-epub.js.map +0 -1
  128. package/dist/nodes/lib-excel.d.ts +0 -74
  129. package/dist/nodes/lib-excel.d.ts.map +0 -1
  130. package/dist/nodes/lib-excel.js +0 -448
  131. package/dist/nodes/lib-excel.js.map +0 -1
  132. package/dist/nodes/lib-graphql.d.ts +0 -66
  133. package/dist/nodes/lib-graphql.d.ts.map +0 -1
  134. package/dist/nodes/lib-graphql.js +0 -333
  135. package/dist/nodes/lib-graphql.js.map +0 -1
  136. package/dist/nodes/lib-grid.d.ts +0 -27
  137. package/dist/nodes/lib-grid.d.ts.map +0 -1
  138. package/dist/nodes/lib-grid.js +0 -172
  139. package/dist/nodes/lib-grid.js.map +0 -1
  140. package/dist/nodes/lib-html-parse.d.ts +0 -108
  141. package/dist/nodes/lib-html-parse.d.ts.map +0 -1
  142. package/dist/nodes/lib-html-parse.js +0 -365
  143. package/dist/nodes/lib-html-parse.js.map +0 -1
  144. package/dist/nodes/lib-http.d.ts +0 -98
  145. package/dist/nodes/lib-http.d.ts.map +0 -1
  146. package/dist/nodes/lib-http.js +0 -267
  147. package/dist/nodes/lib-http.js.map +0 -1
  148. package/dist/nodes/lib-image-color-grading.d.ts +0 -3
  149. package/dist/nodes/lib-image-color-grading.d.ts.map +0 -1
  150. package/dist/nodes/lib-image-color-grading.js +0 -1386
  151. package/dist/nodes/lib-image-color-grading.js.map +0 -1
  152. package/dist/nodes/lib-image-draw.d.ts +0 -3
  153. package/dist/nodes/lib-image-draw.d.ts.map +0 -1
  154. package/dist/nodes/lib-image-draw.js +0 -470
  155. package/dist/nodes/lib-image-draw.js.map +0 -1
  156. package/dist/nodes/lib-image-enhance.d.ts +0 -3
  157. package/dist/nodes/lib-image-enhance.d.ts.map +0 -1
  158. package/dist/nodes/lib-image-enhance.js +0 -731
  159. package/dist/nodes/lib-image-enhance.js.map +0 -1
  160. package/dist/nodes/lib-image-filter.d.ts +0 -3
  161. package/dist/nodes/lib-image-filter.d.ts.map +0 -1
  162. package/dist/nodes/lib-image-filter.js +0 -684
  163. package/dist/nodes/lib-image-filter.js.map +0 -1
  164. package/dist/nodes/lib-image-utils.d.ts +0 -24
  165. package/dist/nodes/lib-image-utils.d.ts.map +0 -1
  166. package/dist/nodes/lib-image-utils.js +0 -150
  167. package/dist/nodes/lib-image-utils.js.map +0 -1
  168. package/dist/nodes/lib-mail.d.ts +0 -74
  169. package/dist/nodes/lib-mail.d.ts.map +0 -1
  170. package/dist/nodes/lib-mail.js +0 -452
  171. package/dist/nodes/lib-mail.js.map +0 -1
  172. package/dist/nodes/lib-markdown.d.ts +0 -70
  173. package/dist/nodes/lib-markdown.d.ts.map +0 -1
  174. package/dist/nodes/lib-markdown.js +0 -236
  175. package/dist/nodes/lib-markdown.js.map +0 -1
  176. package/dist/nodes/lib-nlp.d.ts +0 -98
  177. package/dist/nodes/lib-nlp.d.ts.map +0 -1
  178. package/dist/nodes/lib-nlp.js +0 -374
  179. package/dist/nodes/lib-nlp.js.map +0 -1
  180. package/dist/nodes/lib-notion.d.ts +0 -99
  181. package/dist/nodes/lib-notion.d.ts.map +0 -1
  182. package/dist/nodes/lib-notion.js +0 -601
  183. package/dist/nodes/lib-notion.js.map +0 -1
  184. package/dist/nodes/lib-ocr.d.ts +0 -31
  185. package/dist/nodes/lib-ocr.d.ts.map +0 -1
  186. package/dist/nodes/lib-ocr.js +0 -143
  187. package/dist/nodes/lib-ocr.js.map +0 -1
  188. package/dist/nodes/lib-os.d.ts +0 -312
  189. package/dist/nodes/lib-os.d.ts.map +0 -1
  190. package/dist/nodes/lib-os.js +0 -909
  191. package/dist/nodes/lib-os.js.map +0 -1
  192. package/dist/nodes/lib-pdf.d.ts +0 -142
  193. package/dist/nodes/lib-pdf.d.ts.map +0 -1
  194. package/dist/nodes/lib-pdf.js +0 -871
  195. package/dist/nodes/lib-pdf.js.map +0 -1
  196. package/dist/nodes/lib-pptx.d.ts +0 -29
  197. package/dist/nodes/lib-pptx.d.ts.map +0 -1
  198. package/dist/nodes/lib-pptx.js +0 -122
  199. package/dist/nodes/lib-pptx.js.map +0 -1
  200. package/dist/nodes/lib-rss.d.ts +0 -31
  201. package/dist/nodes/lib-rss.d.ts.map +0 -1
  202. package/dist/nodes/lib-rss.js +0 -163
  203. package/dist/nodes/lib-rss.js.map +0 -1
  204. package/dist/nodes/lib-s3.d.ts +0 -112
  205. package/dist/nodes/lib-s3.d.ts.map +0 -1
  206. package/dist/nodes/lib-s3.js +0 -521
  207. package/dist/nodes/lib-s3.js.map +0 -1
  208. package/dist/nodes/lib-secret.d.ts +0 -15
  209. package/dist/nodes/lib-secret.d.ts.map +0 -1
  210. package/dist/nodes/lib-secret.js +0 -42
  211. package/dist/nodes/lib-secret.js.map +0 -1
  212. package/dist/nodes/lib-sqlite.d.ts +0 -102
  213. package/dist/nodes/lib-sqlite.d.ts.map +0 -1
  214. package/dist/nodes/lib-sqlite.js +0 -532
  215. package/dist/nodes/lib-sqlite.js.map +0 -1
  216. package/dist/nodes/lib-supabase.d.ts +0 -86
  217. package/dist/nodes/lib-supabase.d.ts.map +0 -1
  218. package/dist/nodes/lib-supabase.js +0 -425
  219. package/dist/nodes/lib-supabase.js.map +0 -1
  220. package/dist/nodes/lib-svg.d.ts +0 -199
  221. package/dist/nodes/lib-svg.d.ts.map +0 -1
  222. package/dist/nodes/lib-svg.js +0 -1027
  223. package/dist/nodes/lib-svg.js.map +0 -1
  224. package/dist/nodes/lib-tensorflow.d.ts +0 -71
  225. package/dist/nodes/lib-tensorflow.d.ts.map +0 -1
  226. package/dist/nodes/lib-tensorflow.js +0 -351
  227. package/dist/nodes/lib-tensorflow.js.map +0 -1
  228. package/dist/nodes/lib-twilio.d.ts +0 -71
  229. package/dist/nodes/lib-twilio.d.ts.map +0 -1
  230. package/dist/nodes/lib-twilio.js +0 -469
  231. package/dist/nodes/lib-twilio.js.map +0 -1
  232. package/dist/nodes/lib-validate.d.ts +0 -84
  233. package/dist/nodes/lib-validate.d.ts.map +0 -1
  234. package/dist/nodes/lib-validate.js +0 -215
  235. package/dist/nodes/lib-validate.js.map +0 -1
  236. package/dist/nodes/lib-video-download.d.ts +0 -26
  237. package/dist/nodes/lib-video-download.d.ts.map +0 -1
  238. package/dist/nodes/lib-video-download.js +0 -299
  239. package/dist/nodes/lib-video-download.js.map +0 -1
  240. package/dist/nodes/messaging.d.ts +0 -88
  241. package/dist/nodes/messaging.d.ts.map +0 -1
  242. package/dist/nodes/messaging.js +0 -418
  243. package/dist/nodes/messaging.js.map +0 -1
  244. package/dist/nodes/mistral.d.ts +0 -83
  245. package/dist/nodes/mistral.d.ts.map +0 -1
  246. package/dist/nodes/mistral.js +0 -450
  247. package/dist/nodes/mistral.js.map +0 -1
  248. package/dist/nodes/model3d/analysis.d.ts +0 -13
  249. package/dist/nodes/model3d/analysis.d.ts.map +0 -1
  250. package/dist/nodes/model3d/analysis.js +0 -36
  251. package/dist/nodes/model3d/analysis.js.map +0 -1
  252. package/dist/nodes/model3d/base.d.ts +0 -11
  253. package/dist/nodes/model3d/base.d.ts.map +0 -1
  254. package/dist/nodes/model3d/base.js +0 -20
  255. package/dist/nodes/model3d/base.js.map +0 -1
  256. package/dist/nodes/model3d/boolean-ops.d.ts +0 -2
  257. package/dist/nodes/model3d/boolean-ops.d.ts.map +0 -1
  258. package/dist/nodes/model3d/boolean-ops.js +0 -172
  259. package/dist/nodes/model3d/boolean-ops.js.map +0 -1
  260. package/dist/nodes/model3d/cleanup.d.ts +0 -47
  261. package/dist/nodes/model3d/cleanup.d.ts.map +0 -1
  262. package/dist/nodes/model3d/cleanup.js +0 -136
  263. package/dist/nodes/model3d/cleanup.js.map +0 -1
  264. package/dist/nodes/model3d/convert.d.ts +0 -14
  265. package/dist/nodes/model3d/convert.d.ts.map +0 -1
  266. package/dist/nodes/model3d/convert.js +0 -64
  267. package/dist/nodes/model3d/convert.js.map +0 -1
  268. package/dist/nodes/model3d/defaults.d.ts +0 -34
  269. package/dist/nodes/model3d/defaults.d.ts.map +0 -1
  270. package/dist/nodes/model3d/defaults.js +0 -28
  271. package/dist/nodes/model3d/defaults.js.map +0 -1
  272. package/dist/nodes/model3d/document-ops.d.ts +0 -4
  273. package/dist/nodes/model3d/document-ops.d.ts.map +0 -1
  274. package/dist/nodes/model3d/document-ops.js +0 -40
  275. package/dist/nodes/model3d/document-ops.js.map +0 -1
  276. package/dist/nodes/model3d/generation.d.ts +0 -39
  277. package/dist/nodes/model3d/generation.d.ts.map +0 -1
  278. package/dist/nodes/model3d/generation.js +0 -179
  279. package/dist/nodes/model3d/generation.js.map +0 -1
  280. package/dist/nodes/model3d/glb.d.ts +0 -29
  281. package/dist/nodes/model3d/glb.d.ts.map +0 -1
  282. package/dist/nodes/model3d/glb.js +0 -255
  283. package/dist/nodes/model3d/glb.js.map +0 -1
  284. package/dist/nodes/model3d/index.d.ts +0 -20
  285. package/dist/nodes/model3d/index.d.ts.map +0 -1
  286. package/dist/nodes/model3d/index.js +0 -38
  287. package/dist/nodes/model3d/index.js.map +0 -1
  288. package/dist/nodes/model3d/io.d.ts +0 -38
  289. package/dist/nodes/model3d/io.d.ts.map +0 -1
  290. package/dist/nodes/model3d/io.js +0 -162
  291. package/dist/nodes/model3d/io.js.map +0 -1
  292. package/dist/nodes/model3d/mesh-ops.d.ts +0 -40
  293. package/dist/nodes/model3d/mesh-ops.d.ts.map +0 -1
  294. package/dist/nodes/model3d/mesh-ops.js +0 -775
  295. package/dist/nodes/model3d/mesh-ops.js.map +0 -1
  296. package/dist/nodes/model3d/nodes.d.ts +0 -2
  297. package/dist/nodes/model3d/nodes.d.ts.map +0 -1
  298. package/dist/nodes/model3d/nodes.js +0 -2
  299. package/dist/nodes/model3d/nodes.js.map +0 -1
  300. package/dist/nodes/model3d/ops.d.ts +0 -37
  301. package/dist/nodes/model3d/ops.d.ts.map +0 -1
  302. package/dist/nodes/model3d/ops.js +0 -137
  303. package/dist/nodes/model3d/ops.js.map +0 -1
  304. package/dist/nodes/model3d/transforms.d.ts +0 -49
  305. package/dist/nodes/model3d/transforms.d.ts.map +0 -1
  306. package/dist/nodes/model3d/transforms.js +0 -142
  307. package/dist/nodes/model3d/transforms.js.map +0 -1
  308. package/dist/nodes/model3d/types.d.ts +0 -81
  309. package/dist/nodes/model3d/types.d.ts.map +0 -1
  310. package/dist/nodes/model3d/types.js +0 -2
  311. package/dist/nodes/model3d/types.js.map +0 -1
  312. package/dist/nodes/model3d/utils.d.ts +0 -34
  313. package/dist/nodes/model3d/utils.d.ts.map +0 -1
  314. package/dist/nodes/model3d/utils.js +0 -185
  315. package/dist/nodes/model3d/utils.js.map +0 -1
  316. package/dist/nodes/model3d.d.ts +0 -2
  317. package/dist/nodes/model3d.d.ts.map +0 -1
  318. package/dist/nodes/model3d.js +0 -2
  319. package/dist/nodes/model3d.js.map +0 -1
  320. package/dist/nodes/openai.d.ts +0 -172
  321. package/dist/nodes/openai.d.ts.map +0 -1
  322. package/dist/nodes/openai.js +0 -1294
  323. package/dist/nodes/openai.js.map +0 -1
  324. package/dist/nodes/output.d.ts +0 -29
  325. package/dist/nodes/output.d.ts.map +0 -1
  326. package/dist/nodes/output.js +0 -87
  327. package/dist/nodes/output.js.map +0 -1
  328. package/dist/nodes/sandbox.d.ts +0 -63
  329. package/dist/nodes/sandbox.d.ts.map +0 -1
  330. package/dist/nodes/sandbox.js +0 -633
  331. package/dist/nodes/sandbox.js.map +0 -1
  332. package/dist/nodes/search.d.ts +0 -117
  333. package/dist/nodes/search.d.ts.map +0 -1
  334. package/dist/nodes/search.js +0 -607
  335. package/dist/nodes/search.js.map +0 -1
  336. package/dist/nodes/team.d.ts +0 -74
  337. package/dist/nodes/team.d.ts.map +0 -1
  338. package/dist/nodes/team.js +0 -309
  339. package/dist/nodes/team.js.map +0 -1
  340. package/dist/nodes/text-extra.d.ts +0 -633
  341. package/dist/nodes/text-extra.d.ts.map +0 -1
  342. package/dist/nodes/text-extra.js +0 -2226
  343. package/dist/nodes/text-extra.js.map +0 -1
  344. package/dist/nodes/tool-agents.d.ts +0 -334
  345. package/dist/nodes/tool-agents.d.ts.map +0 -1
  346. package/dist/nodes/tool-agents.js +0 -1861
  347. package/dist/nodes/tool-agents.js.map +0 -1
  348. package/dist/nodes/triggers.d.ts +0 -107
  349. package/dist/nodes/triggers.d.ts.map +0 -1
  350. package/dist/nodes/triggers.js +0 -706
  351. package/dist/nodes/triggers.js.map +0 -1
  352. package/dist/nodes/vector.d.ts +0 -168
  353. package/dist/nodes/vector.d.ts.map +0 -1
  354. package/dist/nodes/vector.js +0 -1121
  355. package/dist/nodes/vector.js.map +0 -1
  356. package/dist/nodes/video.d.ts +0 -387
  357. package/dist/nodes/video.d.ts.map +0 -1
  358. package/dist/nodes/video.js +0 -2383
  359. package/dist/nodes/video.js.map +0 -1
  360. package/dist/nodes/workflow.d.ts +0 -24
  361. package/dist/nodes/workflow.d.ts.map +0 -1
  362. package/dist/nodes/workflow.js +0 -146
  363. package/dist/nodes/workflow.js.map +0 -1
  364. package/dist/nodes/workspace.d.ts +0 -203
  365. package/dist/nodes/workspace.d.ts.map +0 -1
  366. package/dist/nodes/workspace.js +0 -795
  367. package/dist/nodes/workspace.js.map +0 -1
@@ -1,418 +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
- // ── Discord Nodes ───────────────────────────────────────────────────────────
9
- export class DiscordBotTrigger extends BaseNode {
10
- static nodeType = "messaging.discord.DiscordBotTrigger";
11
- static title = "Discord Bot Trigger";
12
- static description = "Trigger node that listens for Discord messages from a bot account.\n\n This trigger connects to Discord using a bot token and emits events\n for incoming messages.";
13
- static metadataOutputTypes = {
14
- message_id: "int",
15
- content: "str",
16
- author: "dict[str, any]",
17
- channel: "dict[str, any]",
18
- guild: "dict[str, any]",
19
- attachments: "list[dict[str, any]]",
20
- timestamp: "str",
21
- source: "str",
22
- event_type: "str"
23
- };
24
- static requiredSettings = ["DISCORD_BOT_TOKEN"];
25
- static isStreamingOutput = true;
26
- async process() {
27
- const secrets = this._secrets;
28
- const token = String(this.token ?? "") || secrets.DISCORD_BOT_TOKEN || "";
29
- const channelId = String(this.channel_id ?? "");
30
- const allowBotMessages = Boolean(this.allow_bot_messages ?? false);
31
- if (!token) {
32
- throw new Error("Discord bot token is required");
33
- }
34
- // Validate the bot token by fetching the bot user info
35
- const resp = await fetch("https://discord.com/api/v10/users/@me", {
36
- headers: { Authorization: `Bot ${token}` }
37
- });
38
- if (!resp.ok) {
39
- const body = await resp.text();
40
- throw new Error(`Discord token validation failed (${resp.status}): ${body}`);
41
- }
42
- const botUser = (await resp.json());
43
- // NOTE: Real-time message listening requires a Discord Gateway WebSocket
44
- // connection (wss://gateway.discord.gg), which is not implemented here.
45
- // A full implementation would need:
46
- // 1. WebSocket connection to the Gateway with heartbeat
47
- // 2. Identify/resume handshake with intents (MESSAGE_CONTENT)
48
- // 3. Long-lived connection for dispatched MESSAGE_CREATE events
49
- // As a simpler alternative, the Discord REST API supports fetching
50
- // channel message history via GET /channels/{id}/messages, which could
51
- // be used for polling-based triggers.
52
- // For now, this node only validates the token and returns bot info.
53
- return {
54
- status: "configured",
55
- bot_id: botUser.id,
56
- bot_username: botUser.username,
57
- channel_id: channelId,
58
- allow_bot_messages: allowBotMessages
59
- };
60
- }
61
- }
62
- __decorate([
63
- prop({
64
- type: "int",
65
- default: 0,
66
- title: "Max Events",
67
- description: "Maximum number of events to process (0 = unlimited)",
68
- min: 0
69
- })
70
- ], DiscordBotTrigger.prototype, "max_events", void 0);
71
- __decorate([
72
- prop({
73
- type: "str",
74
- default: "",
75
- title: "Token",
76
- description: "Discord bot token"
77
- })
78
- ], DiscordBotTrigger.prototype, "token", void 0);
79
- __decorate([
80
- prop({
81
- type: "str",
82
- default: null,
83
- title: "Channel Id",
84
- description: "Optional channel ID to filter messages"
85
- })
86
- ], DiscordBotTrigger.prototype, "channel_id", void 0);
87
- __decorate([
88
- prop({
89
- type: "bool",
90
- default: false,
91
- title: "Allow Bot Messages",
92
- description: "Include messages authored by bots"
93
- })
94
- ], DiscordBotTrigger.prototype, "allow_bot_messages", void 0);
95
- export class DiscordSendMessage extends BaseNode {
96
- static nodeType = "messaging.discord.DiscordSendMessage";
97
- static title = "Discord Send Message";
98
- static description = "Node that sends a message to a Discord channel using a bot token.";
99
- static metadataOutputTypes = {
100
- output: "dict[str, any]"
101
- };
102
- static requiredSettings = ["DISCORD_BOT_TOKEN"];
103
- async process() {
104
- const secrets = this._secrets;
105
- const token = String(this.token ?? "") || secrets.DISCORD_BOT_TOKEN || "";
106
- const channelId = String(this.channel_id ?? "");
107
- const content = String(this.content ?? "");
108
- const tts = Boolean(this.tts ?? false);
109
- const embeds = (this.embeds ?? []);
110
- if (!token) {
111
- throw new Error("Discord bot token is required");
112
- }
113
- if (!channelId) {
114
- throw new Error("Discord channel ID is required");
115
- }
116
- const payload = {
117
- content,
118
- tts
119
- };
120
- if (Array.isArray(embeds) && embeds.length > 0) {
121
- payload.embeds = embeds;
122
- }
123
- const resp = await fetch(`https://discord.com/api/v10/channels/${channelId}/messages`, {
124
- method: "POST",
125
- headers: {
126
- Authorization: `Bot ${token}`,
127
- "Content-Type": "application/json"
128
- },
129
- body: JSON.stringify(payload)
130
- });
131
- if (!resp.ok) {
132
- const body = await resp.text();
133
- throw new Error(`Discord sendMessage failed (${resp.status}): ${body}`);
134
- }
135
- const msg = (await resp.json());
136
- return {
137
- message_id: msg.id
138
- };
139
- }
140
- }
141
- __decorate([
142
- prop({
143
- type: "str",
144
- default: "",
145
- title: "Token",
146
- description: "Discord bot token"
147
- })
148
- ], DiscordSendMessage.prototype, "token", void 0);
149
- __decorate([
150
- prop({
151
- type: "str",
152
- default: "",
153
- title: "Channel Id",
154
- description: "Target channel ID"
155
- })
156
- ], DiscordSendMessage.prototype, "channel_id", void 0);
157
- __decorate([
158
- prop({
159
- type: "str",
160
- default: "",
161
- title: "Content",
162
- description: "Message content"
163
- })
164
- ], DiscordSendMessage.prototype, "content", void 0);
165
- __decorate([
166
- prop({
167
- type: "bool",
168
- default: false,
169
- title: "Tts",
170
- description: "Send as text-to-speech"
171
- })
172
- ], DiscordSendMessage.prototype, "tts", void 0);
173
- __decorate([
174
- prop({
175
- type: "list[dict[str, any]]",
176
- default: null,
177
- title: "Embeds",
178
- description: "Embeds as Discord embed dictionaries",
179
- required: true
180
- })
181
- ], DiscordSendMessage.prototype, "embeds", void 0);
182
- // ── Telegram Nodes ──────────────────────────────────────────────────────────
183
- export class TelegramBotTrigger extends BaseNode {
184
- static nodeType = "messaging.telegram.TelegramBotTrigger";
185
- static title = "Telegram Bot Trigger";
186
- static description = "Trigger node that listens for Telegram messages using long polling.\n\n This trigger connects to Telegram using a bot token and emits events\n for incoming messages.";
187
- static metadataOutputTypes = {
188
- update_id: "int",
189
- update_type: "str",
190
- message_id: "int",
191
- text: "str",
192
- caption: "str",
193
- entities: "list[dict[str, any]]",
194
- chat: "dict[str, any]",
195
- from_user: "dict[str, any]",
196
- attachments: "list[dict[str, any]]",
197
- timestamp: "str",
198
- source: "str",
199
- event_type: "str"
200
- };
201
- static requiredSettings = ["TELEGRAM_BOT_TOKEN"];
202
- static isStreamingOutput = true;
203
- async process() {
204
- const secrets = this._secrets;
205
- const token = String(this.token ?? "") || secrets.TELEGRAM_BOT_TOKEN || "";
206
- const chatId = Number(this.chat_id ?? 0);
207
- const allowBotMessages = Boolean(this.allow_bot_messages ?? false);
208
- const includeEditedMessages = Boolean(this.include_edited_messages ?? false);
209
- if (!token) {
210
- throw new Error("Telegram bot token is required");
211
- }
212
- // Validate the bot token by calling getMe
213
- const resp = await fetch(`https://api.telegram.org/bot${token}/getMe`);
214
- if (!resp.ok) {
215
- const body = await resp.text();
216
- throw new Error(`Telegram token validation failed (${resp.status}): ${body}`);
217
- }
218
- const data = (await resp.json());
219
- if (!data.ok) {
220
- throw new Error(`Telegram getMe failed: ${JSON.stringify(data)}`);
221
- }
222
- const result = data.result;
223
- // NOTE: Real-time message listening requires Telegram long polling via
224
- // the getUpdates API (https://api.telegram.org/bot<token>/getUpdates)
225
- // or a webhook. A full implementation would:
226
- // 1. Call getUpdates with offset tracking to receive new messages
227
- // 2. Loop with configurable poll_timeout_seconds for long polling
228
- // 3. Filter by chat_id, bot messages, edited messages as configured
229
- // For now, this node only validates the token and returns bot info.
230
- return {
231
- status: "configured",
232
- bot_id: result.id,
233
- bot_username: result.username,
234
- chat_id: chatId || null,
235
- allow_bot_messages: allowBotMessages,
236
- include_edited_messages: includeEditedMessages
237
- };
238
- }
239
- }
240
- __decorate([
241
- prop({
242
- type: "int",
243
- default: 0,
244
- title: "Max Events",
245
- description: "Maximum number of events to process (0 = unlimited)",
246
- min: 0
247
- })
248
- ], TelegramBotTrigger.prototype, "max_events", void 0);
249
- __decorate([
250
- prop({
251
- type: "str",
252
- default: "",
253
- title: "Token",
254
- description: "Telegram bot token"
255
- })
256
- ], TelegramBotTrigger.prototype, "token", void 0);
257
- __decorate([
258
- prop({
259
- type: "int",
260
- default: null,
261
- title: "Chat Id",
262
- description: "Optional chat ID to filter messages"
263
- })
264
- ], TelegramBotTrigger.prototype, "chat_id", void 0);
265
- __decorate([
266
- prop({
267
- type: "bool",
268
- default: false,
269
- title: "Allow Bot Messages",
270
- description: "Include messages authored by bots"
271
- })
272
- ], TelegramBotTrigger.prototype, "allow_bot_messages", void 0);
273
- __decorate([
274
- prop({
275
- type: "bool",
276
- default: false,
277
- title: "Include Edited Messages",
278
- description: "Include edited messages"
279
- })
280
- ], TelegramBotTrigger.prototype, "include_edited_messages", void 0);
281
- __decorate([
282
- prop({
283
- type: "int",
284
- default: 30,
285
- title: "Poll Timeout Seconds",
286
- description: "Long polling timeout in seconds",
287
- min: 1,
288
- max: 60
289
- })
290
- ], TelegramBotTrigger.prototype, "poll_timeout_seconds", void 0);
291
- __decorate([
292
- prop({
293
- type: "float",
294
- default: 0.2,
295
- title: "Poll Interval Seconds",
296
- description: "Delay between polling requests",
297
- min: 0
298
- })
299
- ], TelegramBotTrigger.prototype, "poll_interval_seconds", void 0);
300
- export class TelegramSendMessage extends BaseNode {
301
- static nodeType = "messaging.telegram.TelegramSendMessage";
302
- static title = "Telegram Send Message";
303
- static description = "Node that sends a message to a Telegram chat using a bot token.";
304
- static metadataOutputTypes = {
305
- output: "dict[str, any]"
306
- };
307
- static requiredSettings = ["TELEGRAM_BOT_TOKEN"];
308
- async process() {
309
- const secrets = this._secrets;
310
- const token = String(this.token ?? "") || secrets.TELEGRAM_BOT_TOKEN || "";
311
- const chatId = Number(this.chat_id ?? 0);
312
- const text = String(this.text ?? "");
313
- const parseMode = String(this.parse_mode ?? "");
314
- const disableWebPagePreview = Boolean(this.disable_web_page_preview ?? false);
315
- const disableNotification = Boolean(this.disable_notification ?? false);
316
- const replyToMessageId = Number(this.reply_to_message_id ?? 0);
317
- if (!token) {
318
- throw new Error("Telegram bot token is required");
319
- }
320
- if (!chatId) {
321
- throw new Error("Telegram chat ID is required");
322
- }
323
- const payload = {
324
- chat_id: chatId,
325
- text,
326
- disable_web_page_preview: disableWebPagePreview,
327
- disable_notification: disableNotification
328
- };
329
- if (parseMode) {
330
- payload.parse_mode = parseMode;
331
- }
332
- if (replyToMessageId) {
333
- payload.reply_to_message_id = replyToMessageId;
334
- }
335
- const resp = await fetch(`https://api.telegram.org/bot${token}/sendMessage`, {
336
- method: "POST",
337
- headers: { "Content-Type": "application/json" },
338
- body: JSON.stringify(payload)
339
- });
340
- const data = (await resp.json());
341
- if (!data.ok) {
342
- throw new Error(`Telegram sendMessage failed: ${JSON.stringify(data)}`);
343
- }
344
- const result = data.result;
345
- const chat = result.chat ?? {};
346
- return {
347
- message_id: result.message_id,
348
- date: result.date,
349
- chat_id: chat.id
350
- };
351
- }
352
- }
353
- __decorate([
354
- prop({
355
- type: "str",
356
- default: "",
357
- title: "Token",
358
- description: "Telegram bot token"
359
- })
360
- ], TelegramSendMessage.prototype, "token", void 0);
361
- __decorate([
362
- prop({
363
- type: "int",
364
- default: 0,
365
- title: "Chat Id",
366
- description: "Target chat ID",
367
- min: 1
368
- })
369
- ], TelegramSendMessage.prototype, "chat_id", void 0);
370
- __decorate([
371
- prop({
372
- type: "str",
373
- default: "",
374
- title: "Text",
375
- description: "Message text"
376
- })
377
- ], TelegramSendMessage.prototype, "text", void 0);
378
- __decorate([
379
- prop({
380
- type: "str",
381
- default: "",
382
- title: "Parse Mode",
383
- description: "Optional parse mode (MarkdownV2 or HTML)"
384
- })
385
- ], TelegramSendMessage.prototype, "parse_mode", void 0);
386
- __decorate([
387
- prop({
388
- type: "bool",
389
- default: false,
390
- title: "Disable Web Page Preview",
391
- description: "Disable link previews"
392
- })
393
- ], TelegramSendMessage.prototype, "disable_web_page_preview", void 0);
394
- __decorate([
395
- prop({
396
- type: "bool",
397
- default: false,
398
- title: "Disable Notification",
399
- description: "Send silently"
400
- })
401
- ], TelegramSendMessage.prototype, "disable_notification", void 0);
402
- __decorate([
403
- prop({
404
- type: "int",
405
- default: null,
406
- title: "Reply To Message Id",
407
- description: "Reply to a specific message ID",
408
- min: 1
409
- })
410
- ], TelegramSendMessage.prototype, "reply_to_message_id", void 0);
411
- // ── Export ───────────────────────────────────────────────────────────────────
412
- export const MESSAGING_NODES = [
413
- DiscordBotTrigger,
414
- DiscordSendMessage,
415
- TelegramBotTrigger,
416
- TelegramSendMessage
417
- ];
418
- //# sourceMappingURL=messaging.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/nodes/messaging.ts"],"names":[],"mappings":"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"}
@@ -1,83 +0,0 @@
1
- import { BaseNode } from "@nodetool-ai/node-sdk";
2
- import type { NodeClass } from "@nodetool-ai/node-sdk";
3
- export declare class ChatComplete extends BaseNode {
4
- static readonly nodeType = "mistral.text.ChatComplete";
5
- static readonly title = "Chat Complete";
6
- static readonly description = "Generate text using Mistral AI's chat completion models.\n mistral, chat, ai, text generation, llm, completion\n\n Uses Mistral AI's chat models to generate responses from prompts.\n Requires a Mistral API key.\n\n Use cases:\n - Generate text responses to prompts\n - Build conversational AI applications\n - Code generation with Codestral\n - Multi-modal understanding with Pixtral";
7
- static readonly metadataOutputTypes: {
8
- output: string;
9
- };
10
- static readonly basicFields: string[];
11
- static readonly requiredSettings: string[];
12
- static readonly exposeAsTool = true;
13
- model: any;
14
- prompt: any;
15
- system_prompt: any;
16
- temperature: any;
17
- max_tokens: any;
18
- process(): Promise<Record<string, unknown>>;
19
- }
20
- export declare class CodeComplete extends BaseNode {
21
- static readonly nodeType = "mistral.text.CodeComplete";
22
- static readonly title = "Code Complete";
23
- static readonly description = "Generate code using Mistral AI's Codestral model.\n mistral, code, codestral, ai, programming, completion\n\n Uses Mistral AI's Codestral model specifically designed for code generation.\n Supports fill-in-the-middle (FIM) for code completion tasks.\n Requires a Mistral API key.\n\n Use cases:\n - Generate code from natural language descriptions\n - Complete partial code snippets\n - Fill in code between prefix and suffix\n - Automated code generation for various programming languages";
24
- static readonly metadataOutputTypes: {
25
- output: string;
26
- };
27
- static readonly basicFields: string[];
28
- static readonly requiredSettings: string[];
29
- static readonly exposeAsTool = true;
30
- prompt: any;
31
- suffix: any;
32
- temperature: any;
33
- max_tokens: any;
34
- process(): Promise<Record<string, unknown>>;
35
- }
36
- export declare class Embedding extends BaseNode {
37
- static readonly nodeType = "mistral.embeddings.Embedding";
38
- static readonly title = "Embedding";
39
- static readonly description = "Generate vector embeddings using Mistral AI.\n mistral, embeddings, vectors, semantic, similarity, search\n\n Uses Mistral AI's embedding model to create dense vector representations of text.\n These vectors capture semantic meaning, enabling:\n - Semantic search\n - Text clustering\n - Document classification\n - Recommendation systems\n - Measuring text similarity\n\n Requires a Mistral API key.";
40
- static readonly metadataOutputTypes: {
41
- output: string;
42
- };
43
- static readonly basicFields: string[];
44
- static readonly requiredSettings: string[];
45
- static readonly exposeAsTool = true;
46
- input: any;
47
- model: any;
48
- chunk_size: any;
49
- process(): Promise<Record<string, unknown>>;
50
- }
51
- export declare class ImageToText extends BaseNode {
52
- static readonly nodeType = "mistral.vision.ImageToText";
53
- static readonly title = "Image To Text";
54
- static readonly description = "Analyze images and generate text descriptions using Mistral AI's Pixtral models.\n mistral, pixtral, vision, image, ocr, analysis, multimodal\n\n Uses Mistral AI's Pixtral vision models to understand and describe images.\n Can perform OCR, image analysis, and answer questions about images.\n Requires a Mistral API key.\n\n Use cases:\n - Extract text from images (OCR)\n - Describe image contents\n - Answer questions about images\n - Analyze charts and diagrams\n - Document understanding";
55
- static readonly metadataOutputTypes: {
56
- output: string;
57
- };
58
- static readonly basicFields: string[];
59
- static readonly requiredSettings: string[];
60
- static readonly exposeAsTool = true;
61
- image: any;
62
- prompt: any;
63
- model: any;
64
- temperature: any;
65
- max_tokens: any;
66
- process(): Promise<Record<string, unknown>>;
67
- }
68
- export declare class OCR extends BaseNode {
69
- static readonly nodeType = "mistral.vision.OCR";
70
- static readonly title = "OCR";
71
- static readonly description = "Extract text from images using Mistral AI's Pixtral models.\n mistral, pixtral, ocr, text extraction, document, image\n\n Specialized node for optical character recognition (OCR) using Pixtral.\n Optimized for extracting text content from documents, screenshots, and images.\n Requires a Mistral API key.\n\n Use cases:\n - Extract text from scanned documents\n - Read text from screenshots\n - Digitize printed materials\n - Extract data from forms and receipts";
72
- static readonly metadataOutputTypes: {
73
- output: string;
74
- };
75
- static readonly basicFields: string[];
76
- static readonly requiredSettings: string[];
77
- static readonly exposeAsTool = true;
78
- image: any;
79
- model: any;
80
- process(): Promise<Record<string, unknown>>;
81
- }
82
- export declare const MISTRAL_NODES: readonly NodeClass[];
83
- //# sourceMappingURL=mistral.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mistral.d.ts","sourceRoot":"","sources":["../../src/nodes/mistral.ts"],"names":[],"mappings":"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"}