@nuraly/lumenui 0.1.0 → 0.2.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 (312) hide show
  1. package/dist/nuralyui.bundle.js +23024 -17355
  2. package/dist/nuralyui.bundle.js.gz +0 -0
  3. package/dist/src/components/alert/alert.component.d.ts +8 -5
  4. package/dist/src/components/alert/alert.component.js +24 -20
  5. package/dist/src/components/alert/alert.style.d.ts +0 -7
  6. package/dist/src/components/alert/alert.style.js +48 -90
  7. package/dist/src/components/alert/bundle.js +82 -108
  8. package/dist/src/components/alert/bundle.js.gz +0 -0
  9. package/dist/src/components/badge/badge.component.d.ts +9 -8
  10. package/dist/src/components/badge/badge.component.js +17 -14
  11. package/dist/src/components/badge/badge.style.d.ts +0 -7
  12. package/dist/src/components/badge/badge.style.js +49 -107
  13. package/dist/src/components/badge/bundle.js +81 -119
  14. package/dist/src/components/badge/bundle.js.gz +0 -0
  15. package/dist/src/components/breadcrumb/breadcrumb.component.d.ts +8 -10
  16. package/dist/src/components/breadcrumb/breadcrumb.component.js +16 -15
  17. package/dist/src/components/breadcrumb/breadcrumb.style.d.ts +0 -7
  18. package/dist/src/components/breadcrumb/breadcrumb.style.js +42 -60
  19. package/dist/src/components/breadcrumb/bundle.js +96 -93
  20. package/dist/src/components/breadcrumb/bundle.js.gz +0 -0
  21. package/dist/src/components/button/bundle.js +221 -470
  22. package/dist/src/components/button/bundle.js.gz +0 -0
  23. package/dist/src/components/button/button.component.d.ts +2 -1
  24. package/dist/src/components/button/button.component.js +6 -6
  25. package/dist/src/components/button/button.style.d.ts +0 -7
  26. package/dist/src/components/button/button.style.js +167 -433
  27. package/dist/src/components/canvas/base-canvas.component.d.ts +2 -1
  28. package/dist/src/components/canvas/base-canvas.component.js +1 -0
  29. package/dist/src/components/canvas/bundle.js +16919 -9595
  30. package/dist/src/components/canvas/bundle.js.gz +0 -0
  31. package/dist/src/components/canvas/canvas.constants.d.ts +1 -1
  32. package/dist/src/components/canvas/canvas.constants.js +1 -1
  33. package/dist/src/components/canvas/chatbot-panel.style.js +31 -31
  34. package/dist/src/components/canvas/index.d.ts +2 -0
  35. package/dist/src/components/canvas/index.js +3 -0
  36. package/dist/src/components/canvas/whiteboard-canvas.component.d.ts +3 -1
  37. package/dist/src/components/canvas/whiteboard-canvas.component.js +19 -1
  38. package/dist/src/components/canvas/whiteboard-canvas.style.js +159 -138
  39. package/dist/src/components/canvas/whiteboard-node.component.d.ts +2 -1
  40. package/dist/src/components/canvas/whiteboard-node.component.js +2 -1
  41. package/dist/src/components/canvas/whiteboard-node.style.js +44 -44
  42. package/dist/src/components/canvas/workflow-canvas-only.d.ts +4 -0
  43. package/dist/src/components/canvas/workflow-canvas-only.js +5 -0
  44. package/dist/src/components/canvas/workflow-canvas.component.d.ts +3 -1
  45. package/dist/src/components/canvas/workflow-canvas.component.js +24 -2
  46. package/dist/src/components/canvas/workflow-canvas.style.js +776 -648
  47. package/dist/src/components/canvas/workflow-canvas.types.d.ts +113 -4
  48. package/dist/src/components/canvas/workflow-canvas.types.js +646 -3
  49. package/dist/src/components/canvas/workflow-node.component.d.ts +3 -2
  50. package/dist/src/components/canvas/workflow-node.component.js +5 -5
  51. package/dist/src/components/canvas/workflow-node.style.js +183 -181
  52. package/dist/src/components/card/bundle.js +43 -35
  53. package/dist/src/components/card/bundle.js.gz +0 -0
  54. package/dist/src/components/card/card.component.d.ts +6 -1
  55. package/dist/src/components/card/card.component.js +8 -2
  56. package/dist/src/components/card/card.style.js +26 -30
  57. package/dist/src/components/carousel/bundle.js +8 -8
  58. package/dist/src/components/carousel/bundle.js.gz +0 -0
  59. package/dist/src/components/carousel/carousel.component.d.ts +12 -0
  60. package/dist/src/components/carousel/carousel.component.js +16 -4
  61. package/dist/src/components/chatbot/bundle.js +422 -406
  62. package/dist/src/components/chatbot/bundle.js.gz +0 -0
  63. package/dist/src/components/chatbot/chatbot.component.d.ts +2 -1
  64. package/dist/src/components/chatbot/chatbot.component.js +1 -0
  65. package/dist/src/components/chatbot/chatbot.style.js +277 -277
  66. package/dist/src/components/checkbox/bundle.js +86 -245
  67. package/dist/src/components/checkbox/bundle.js.gz +0 -0
  68. package/dist/src/components/checkbox/checkbox.component.d.ts +5 -2
  69. package/dist/src/components/checkbox/checkbox.component.js +11 -13
  70. package/dist/src/components/checkbox/checkbox.style.js +56 -231
  71. package/dist/src/components/code-editor/bundle.js +151 -25
  72. package/dist/src/components/code-editor/bundle.js.gz +0 -0
  73. package/dist/src/components/code-editor/code-editor.component.d.ts +18 -56
  74. package/dist/src/components/code-editor/code-editor.component.js +141 -394
  75. package/dist/src/components/code-editor/code-editor.style.js +139 -15
  76. package/dist/src/components/collapse/bundle.js +97 -84
  77. package/dist/src/components/collapse/bundle.js.gz +0 -0
  78. package/dist/src/components/collapse/collapse.component.d.ts +7 -1
  79. package/dist/src/components/collapse/collapse.component.js +11 -2
  80. package/dist/src/components/collapse/collapse.style.js +60 -60
  81. package/dist/src/components/colorpicker/bundle.js +85 -48
  82. package/dist/src/components/colorpicker/bundle.js.gz +0 -0
  83. package/dist/src/components/colorpicker/color-holder.component.d.ts +2 -4
  84. package/dist/src/components/colorpicker/color-holder.component.js +5 -6
  85. package/dist/src/components/colorpicker/color-holder.style.js +11 -11
  86. package/dist/src/components/colorpicker/color-picker.component.d.ts +2 -1
  87. package/dist/src/components/colorpicker/color-picker.component.js +1 -0
  88. package/dist/src/components/colorpicker/color-picker.style.js +12 -12
  89. package/dist/src/components/colorpicker/default-color-sets.component.d.ts +2 -2
  90. package/dist/src/components/colorpicker/default-color-sets.component.js +4 -3
  91. package/dist/src/components/colorpicker/default-color-sets.style.js +5 -5
  92. package/dist/src/components/container/bundle.js +24 -14
  93. package/dist/src/components/container/bundle.js.gz +0 -0
  94. package/dist/src/components/container/container.component.d.ts +4 -1
  95. package/dist/src/components/container/container.component.js +7 -5
  96. package/dist/src/components/container/container.style.js +9 -9
  97. package/dist/src/components/datepicker/bundle.js +193 -177
  98. package/dist/src/components/datepicker/bundle.js.gz +0 -0
  99. package/dist/src/components/datepicker/datepicker.component.d.ts +2 -1
  100. package/dist/src/components/datepicker/datepicker.component.js +1 -0
  101. package/dist/src/components/datepicker/datepicker.style.js +65 -65
  102. package/dist/src/components/datepicker/datepicker.style.variables.js +91 -91
  103. package/dist/src/components/db-connection-select/bundle.js +7 -6
  104. package/dist/src/components/db-connection-select/bundle.js.gz +0 -0
  105. package/dist/src/components/db-connection-select/db-connection-select.component.d.ts +3 -0
  106. package/dist/src/components/db-connection-select/db-connection-select.component.js +4 -0
  107. package/dist/src/components/divider/bundle.js +61 -35
  108. package/dist/src/components/divider/bundle.js.gz +0 -0
  109. package/dist/src/components/divider/divider.component.d.ts +4 -6
  110. package/dist/src/components/divider/divider.component.js +10 -14
  111. package/dist/src/components/divider/divider.style.js +41 -31
  112. package/dist/src/components/document/bundle.js +50 -48
  113. package/dist/src/components/document/bundle.js.gz +0 -0
  114. package/dist/src/components/document/document.component.d.ts +12 -1
  115. package/dist/src/components/document/document.component.js +18 -6
  116. package/dist/src/components/document/document.style.js +21 -36
  117. package/dist/src/components/dropdown/bundle.js +117 -101
  118. package/dist/src/components/dropdown/bundle.js.gz +0 -0
  119. package/dist/src/components/dropdown/dropdown.component.d.ts +2 -1
  120. package/dist/src/components/dropdown/dropdown.component.js +1 -0
  121. package/dist/src/components/dropdown/dropdown.style.js +68 -68
  122. package/dist/src/components/file-upload/bundle.js +82 -76
  123. package/dist/src/components/file-upload/bundle.js.gz +0 -0
  124. package/dist/src/components/file-upload/file-upload.component.d.ts +2 -1
  125. package/dist/src/components/file-upload/file-upload.component.js +1 -0
  126. package/dist/src/components/file-upload/styles.js +59 -59
  127. package/dist/src/components/flex/bundle.js +18 -8
  128. package/dist/src/components/flex/bundle.js.gz +0 -0
  129. package/dist/src/components/flex/flex.component.d.ts +4 -1
  130. package/dist/src/components/flex/flex.component.js +7 -4
  131. package/dist/src/components/flex/flex.style.js +2 -2
  132. package/dist/src/components/form/bundle.js +22 -10
  133. package/dist/src/components/form/bundle.js.gz +0 -0
  134. package/dist/src/components/form/form.component.d.ts +4 -1
  135. package/dist/src/components/form/form.component.js +5 -1
  136. package/dist/src/components/form/form.style.js +2 -2
  137. package/dist/src/components/grid/bundle.js +26 -14
  138. package/dist/src/components/grid/bundle.js.gz +0 -0
  139. package/dist/src/components/grid/col.component.d.ts +4 -1
  140. package/dist/src/components/grid/col.component.js +4 -1
  141. package/dist/src/components/grid/col.style.js +2 -2
  142. package/dist/src/components/grid/row.component.d.ts +4 -1
  143. package/dist/src/components/grid/row.component.js +4 -1
  144. package/dist/src/components/grid/row.style.js +2 -2
  145. package/dist/src/components/icon/bundle.js +78 -252
  146. package/dist/src/components/icon/bundle.js.gz +0 -0
  147. package/dist/src/components/icon/icon-paths.d.ts +2 -0
  148. package/dist/src/components/icon/icon-paths.js +141 -0
  149. package/dist/src/components/icon/icon.component.d.ts +10 -12
  150. package/dist/src/components/icon/icon.component.js +42 -93
  151. package/dist/src/components/icon/icon.style.js +42 -130
  152. package/dist/src/components/icon/icon.variables.js +9 -9
  153. package/dist/src/components/iconpicker/bundle.js +859 -1511
  154. package/dist/src/components/iconpicker/bundle.js.gz +0 -0
  155. package/dist/src/components/iconpicker/icon-picker.component.d.ts +2 -1
  156. package/dist/src/components/iconpicker/icon-picker.component.js +1 -0
  157. package/dist/src/components/iconpicker/icon-picker.style.js +13 -13
  158. package/dist/src/components/image/bundle.js +43 -33
  159. package/dist/src/components/image/bundle.js.gz +0 -0
  160. package/dist/src/components/image/image.component.d.ts +10 -1
  161. package/dist/src/components/image/image.component.js +13 -3
  162. package/dist/src/components/image/image.style.js +19 -26
  163. package/dist/src/components/input/bundle.js +420 -644
  164. package/dist/src/components/input/bundle.js.gz +0 -0
  165. package/dist/src/components/input/input.component.d.ts +16 -3
  166. package/dist/src/components/input/input.component.js +43 -27
  167. package/dist/src/components/input/input.style.d.ts +1 -1
  168. package/dist/src/components/input/input.style.js +331 -634
  169. package/dist/src/components/kv-secret-select/bundle.js +2 -1
  170. package/dist/src/components/kv-secret-select/bundle.js.gz +0 -0
  171. package/dist/src/components/kv-secret-select/kv-secret-select.component.d.ts +3 -0
  172. package/dist/src/components/kv-secret-select/kv-secret-select.component.js +4 -0
  173. package/dist/src/components/label/bundle.js +37 -60
  174. package/dist/src/components/label/bundle.js.gz +0 -0
  175. package/dist/src/components/label/label.component.d.ts +8 -4
  176. package/dist/src/components/label/label.component.js +9 -14
  177. package/dist/src/components/label/label.style.js +17 -25
  178. package/dist/src/components/label/label.style.variables.js +18 -18
  179. package/dist/src/components/layout/bundle.js +86 -70
  180. package/dist/src/components/layout/bundle.js.gz +0 -0
  181. package/dist/src/components/layout/content.component.d.ts +2 -1
  182. package/dist/src/components/layout/content.component.js +2 -1
  183. package/dist/src/components/layout/content.style.js +3 -3
  184. package/dist/src/components/layout/footer.component.d.ts +2 -1
  185. package/dist/src/components/layout/footer.component.js +3 -2
  186. package/dist/src/components/layout/footer.style.js +7 -7
  187. package/dist/src/components/layout/header.component.d.ts +2 -1
  188. package/dist/src/components/layout/header.component.js +3 -2
  189. package/dist/src/components/layout/header.style.js +7 -7
  190. package/dist/src/components/layout/layout.component.d.ts +4 -7
  191. package/dist/src/components/layout/layout.component.js +9 -22
  192. package/dist/src/components/layout/layout.style.js +1 -1
  193. package/dist/src/components/layout/sider.component.d.ts +3 -1
  194. package/dist/src/components/layout/sider.component.js +3 -1
  195. package/dist/src/components/layout/sider.style.js +29 -29
  196. package/dist/src/components/menu/bundle.js +135 -125
  197. package/dist/src/components/menu/bundle.js.gz +0 -0
  198. package/dist/src/components/menu/menu.component.d.ts +2 -1
  199. package/dist/src/components/menu/menu.component.js +1 -0
  200. package/dist/src/components/menu/menu.style.js +87 -87
  201. package/dist/src/components/modal/bundle.js +105 -96
  202. package/dist/src/components/modal/bundle.js.gz +0 -0
  203. package/dist/src/components/modal/modal.component.d.ts +2 -1
  204. package/dist/src/components/modal/modal.component.js +1 -0
  205. package/dist/src/components/modal/modal.style.js +69 -71
  206. package/dist/src/components/panel/bundle.js +190 -391
  207. package/dist/src/components/panel/bundle.js.gz +0 -0
  208. package/dist/src/components/panel/panel.component.d.ts +2 -1
  209. package/dist/src/components/panel/panel.component.js +1 -0
  210. package/dist/src/components/panel/panel.style.js +65 -65
  211. package/dist/src/components/popconfirm/bundle.js +107 -93
  212. package/dist/src/components/popconfirm/bundle.js.gz +0 -0
  213. package/dist/src/components/popconfirm/popconfirm-manager.component.d.ts +2 -1
  214. package/dist/src/components/popconfirm/popconfirm-manager.component.js +1 -0
  215. package/dist/src/components/popconfirm/popconfirm-manager.style.js +16 -16
  216. package/dist/src/components/popconfirm/popconfirm.component.d.ts +2 -1
  217. package/dist/src/components/popconfirm/popconfirm.component.js +9 -5
  218. package/dist/src/components/popconfirm/popconfirm.style.js +43 -43
  219. package/dist/src/components/radio/bundle.js +56 -86
  220. package/dist/src/components/radio/bundle.js.gz +0 -0
  221. package/dist/src/components/radio/radio.component.d.ts +8 -2
  222. package/dist/src/components/radio/radio.component.js +17 -9
  223. package/dist/src/components/radio/radio.style.js +30 -77
  224. package/dist/src/components/radio-group/bundle.js +125 -89
  225. package/dist/src/components/radio-group/bundle.js.gz +0 -0
  226. package/dist/src/components/radio-group/radio-group.component.d.ts +5 -1
  227. package/dist/src/components/radio-group/radio-group.component.js +18 -10
  228. package/dist/src/components/radio-group/radio-group.style.js +44 -44
  229. package/dist/src/components/select/bundle.js +260 -367
  230. package/dist/src/components/select/bundle.js.gz +0 -0
  231. package/dist/src/components/select/select.component.d.ts +12 -17
  232. package/dist/src/components/select/select.component.js +35 -35
  233. package/dist/src/components/select/select.style.js +184 -324
  234. package/dist/src/components/skeleton/bundle.js +82 -162
  235. package/dist/src/components/skeleton/bundle.js.gz +0 -0
  236. package/dist/src/components/skeleton/skeleton.component.d.ts +10 -5
  237. package/dist/src/components/skeleton/skeleton.component.js +20 -7
  238. package/dist/src/components/skeleton/skeleton.style.js +34 -133
  239. package/dist/src/components/slider-input/bundle.js +89 -88
  240. package/dist/src/components/slider-input/bundle.js.gz +0 -0
  241. package/dist/src/components/slider-input/slider-input.component.d.ts +11 -0
  242. package/dist/src/components/slider-input/slider-input.component.js +20 -8
  243. package/dist/src/components/slider-input/slider-input.style.js +47 -47
  244. package/dist/src/components/slider-input/slider-input.style.variables.js +32 -32
  245. package/dist/src/components/table/bundle.js +149 -128
  246. package/dist/src/components/table/bundle.js.gz +0 -0
  247. package/dist/src/components/table/table.component.d.ts +2 -1
  248. package/dist/src/components/table/table.component.js +1 -0
  249. package/dist/src/components/table/table.style.js +79 -79
  250. package/dist/src/components/tabs/bundle.js +462 -663
  251. package/dist/src/components/tabs/bundle.js.gz +0 -0
  252. package/dist/src/components/tabs/tabs.component.d.ts +6 -1
  253. package/dist/src/components/tabs/tabs.component.js +8 -1
  254. package/dist/src/components/tabs/tabs.style.js +200 -201
  255. package/dist/src/components/tag/bundle.js +44 -36
  256. package/dist/src/components/tag/bundle.js.gz +0 -0
  257. package/dist/src/components/tag/tag.component.d.ts +7 -6
  258. package/dist/src/components/tag/tag.component.js +10 -19
  259. package/dist/src/components/tag/tag.style.js +20 -24
  260. package/dist/src/components/textarea/bundle.js +131 -94
  261. package/dist/src/components/textarea/bundle.js.gz +0 -0
  262. package/dist/src/components/textarea/textarea.component.d.ts +7 -1
  263. package/dist/src/components/textarea/textarea.component.js +10 -3
  264. package/dist/src/components/textarea/textarea.style.d.ts +1 -13
  265. package/dist/src/components/textarea/textarea.style.js +79 -91
  266. package/dist/src/components/timeline/bundle.js +71 -134
  267. package/dist/src/components/timeline/bundle.js.gz +0 -0
  268. package/dist/src/components/timeline/timeline.component.d.ts +9 -6
  269. package/dist/src/components/timeline/timeline.component.js +16 -13
  270. package/dist/src/components/timeline/timeline.style.d.ts +0 -7
  271. package/dist/src/components/timeline/timeline.style.js +41 -122
  272. package/dist/src/components/timepicker/bundle.js +196 -166
  273. package/dist/src/components/timepicker/bundle.js.gz +0 -0
  274. package/dist/src/components/timepicker/timepicker.component.d.ts +2 -1
  275. package/dist/src/components/timepicker/timepicker.component.js +1 -0
  276. package/dist/src/components/timepicker/timepicker.style.js +42 -42
  277. package/dist/src/components/timepicker/timepicker.style.variables.js +91 -91
  278. package/dist/src/components/toast/bundle.js +97 -81
  279. package/dist/src/components/toast/bundle.js.gz +0 -0
  280. package/dist/src/components/toast/toast.component.d.ts +2 -1
  281. package/dist/src/components/toast/toast.component.js +1 -0
  282. package/dist/src/components/toast/toast.style.js +62 -62
  283. package/dist/src/components/tooltips/bundle.js +10 -10
  284. package/dist/src/components/tooltips/bundle.js.gz +0 -0
  285. package/dist/src/components/tooltips/tooltips.component.d.ts +8 -0
  286. package/dist/src/components/tooltips/tooltips.component.js +9 -1
  287. package/dist/src/components/tooltips/tooltips.style.js +6 -6
  288. package/dist/src/components/video/bundle.js +47 -36
  289. package/dist/src/components/video/bundle.js.gz +0 -0
  290. package/dist/src/components/video/video.component.d.ts +12 -1
  291. package/dist/src/components/video/video.component.js +18 -6
  292. package/dist/src/components/video/video.style.js +18 -24
  293. package/package.json +25 -12
  294. package/packages/common/dist/VERSIONS.md +2 -2
  295. package/packages/common/dist/shared/base-mixin.d.ts +21 -19
  296. package/packages/common/dist/shared/base-mixin.d.ts.map +1 -1
  297. package/packages/common/dist/shared/base-mixin.js +102 -18
  298. package/packages/common/dist/shared/base-mixin.js.map +1 -1
  299. package/packages/common/dist/shared/index.d.ts +1 -0
  300. package/packages/common/dist/shared/index.d.ts.map +1 -1
  301. package/packages/common/dist/shared/index.js +2 -0
  302. package/packages/common/dist/shared/index.js.map +1 -1
  303. package/packages/common/dist/shared/style-injector.d.ts +11 -0
  304. package/packages/common/dist/shared/style-injector.d.ts.map +1 -0
  305. package/packages/common/dist/shared/style-injector.js +53 -0
  306. package/packages/common/dist/shared/style-injector.js.map +1 -0
  307. package/packages/common/dist/shared/theme-mixin.d.ts +2 -24
  308. package/packages/common/dist/shared/theme-mixin.d.ts.map +1 -1
  309. package/packages/common/dist/shared/theme-mixin.js +5 -38
  310. package/packages/common/dist/shared/theme-mixin.js.map +1 -1
  311. package/packages/themes/dist/default.css +0 -10
  312. package/packages/themes/dist/package.json +1 -1
@@ -26,6 +26,8 @@ export var WorkflowNodeType;
26
26
  WorkflowNodeType["TRANSFORM"] = "TRANSFORM";
27
27
  WorkflowNodeType["SUB_WORKFLOW"] = "SUB_WORKFLOW";
28
28
  WorkflowNodeType["EMAIL"] = "EMAIL";
29
+ WorkflowNodeType["EMAIL_READER"] = "EMAIL_READER";
30
+ WorkflowNodeType["SENDGRID"] = "SENDGRID";
29
31
  WorkflowNodeType["NOTIFICATION"] = "NOTIFICATION";
30
32
  WorkflowNodeType["DATABASE"] = "DATABASE";
31
33
  WorkflowNodeType["VARIABLE"] = "VARIABLE";
@@ -40,6 +42,8 @@ export var WorkflowNodeType;
40
42
  WorkflowNodeType["DOCUMENT_GENERATOR"] = "DOCUMENT_GENERATOR";
41
43
  // Storage nodes
42
44
  WorkflowNodeType["FILE_STORAGE"] = "FILE_STORAGE";
45
+ WorkflowNodeType["GOOGLE_CLOUD_STORAGE"] = "GOOGLE_CLOUD_STORAGE";
46
+ WorkflowNodeType["S3"] = "S3";
43
47
  // RAG nodes
44
48
  WorkflowNodeType["EMBEDDING"] = "EMBEDDING";
45
49
  WorkflowNodeType["DOCUMENT_LOADER"] = "DOCUMENT_LOADER";
@@ -47,6 +51,8 @@ export var WorkflowNodeType;
47
51
  WorkflowNodeType["VECTOR_WRITE"] = "VECTOR_WRITE";
48
52
  WorkflowNodeType["VECTOR_SEARCH"] = "VECTOR_SEARCH";
49
53
  WorkflowNodeType["CONTEXT_BUILDER"] = "CONTEXT_BUILDER";
54
+ // AI chains
55
+ WorkflowNodeType["SUMMARIZATION"] = "SUMMARIZATION";
50
56
  // Safety nodes
51
57
  WorkflowNodeType["GUARDRAIL"] = "GUARDRAIL";
52
58
  // Slack integration nodes
@@ -57,16 +63,42 @@ export var WorkflowNodeType;
57
63
  WorkflowNodeType["SLACK_UPLOAD_FILE"] = "SLACK_UPLOAD_FILE";
58
64
  // RAG nodes (continued)
59
65
  WorkflowNodeType["RERANKER"] = "RERANKER";
66
+ // Shopify integration nodes
67
+ WorkflowNodeType["SHOPIFY"] = "SHOPIFY";
60
68
  // Telegram integration nodes
61
69
  WorkflowNodeType["TELEGRAM_SEND"] = "TELEGRAM_SEND";
70
+ // Twilio integration nodes
71
+ WorkflowNodeType["TWILIO_SMS"] = "TWILIO_SMS";
72
+ WorkflowNodeType["TWILIO_VOICE"] = "TWILIO_VOICE";
62
73
  // Persistent trigger nodes
63
74
  WorkflowNodeType["TELEGRAM_BOT"] = "TELEGRAM_BOT";
64
75
  WorkflowNodeType["SLACK_SOCKET"] = "SLACK_SOCKET";
65
76
  WorkflowNodeType["DISCORD_BOT"] = "DISCORD_BOT";
66
77
  WorkflowNodeType["WHATSAPP_WEBHOOK"] = "WHATSAPP_WEBHOOK";
67
78
  WorkflowNodeType["CUSTOM_WEBSOCKET"] = "CUSTOM_WEBSOCKET";
79
+ // Google Calendar integration
80
+ WorkflowNodeType["GOOGLE_CALENDAR"] = "GOOGLE_CALENDAR";
81
+ // RabbitMQ trigger
82
+ WorkflowNodeType["RABBITMQ_TRIGGER"] = "RABBITMQ_TRIGGER";
83
+ // Kafka integration
84
+ WorkflowNodeType["KAFKA"] = "KAFKA";
85
+ WorkflowNodeType["KAFKA_TRIGGER"] = "KAFKA_TRIGGER";
86
+ // Zendesk integration nodes
87
+ WorkflowNodeType["ZENDESK"] = "ZENDESK";
88
+ // GitLab integration
89
+ WorkflowNodeType["GITLAB"] = "GITLAB";
68
90
  // MCP integration
69
91
  WorkflowNodeType["MCP"] = "MCP";
92
+ // AI extraction
93
+ WorkflowNodeType["INFORMATION_EXTRACTOR"] = "INFORMATION_EXTRACTOR";
94
+ // HubSpot CRM
95
+ WorkflowNodeType["HUBSPOT"] = "HUBSPOT";
96
+ // Jira integration nodes
97
+ WorkflowNodeType["JIRA"] = "JIRA";
98
+ // Elasticsearch integration
99
+ WorkflowNodeType["ELASTICSEARCH"] = "ELASTICSEARCH";
100
+ // Calendly trigger
101
+ WorkflowNodeType["CALENDLY_TRIGGER"] = "CALENDLY_TRIGGER";
70
102
  // Display nodes
71
103
  WorkflowNodeType["UI_TABLE"] = "UI_TABLE";
72
104
  // Annotation nodes
@@ -208,6 +240,8 @@ export const NODE_COLORS = {
208
240
  [WorkflowNodeType.TRANSFORM]: '#14b8a6',
209
241
  [WorkflowNodeType.SUB_WORKFLOW]: '#6366f1',
210
242
  [WorkflowNodeType.EMAIL]: '#f97316',
243
+ [WorkflowNodeType.EMAIL_READER]: '#06b6d4',
244
+ [WorkflowNodeType.SENDGRID]: '#1A82E2',
211
245
  [WorkflowNodeType.NOTIFICATION]: '#84cc16',
212
246
  [WorkflowNodeType.DATABASE]: '#a855f7',
213
247
  [WorkflowNodeType.VARIABLE]: '#64748b',
@@ -215,6 +249,8 @@ export const NODE_COLORS = {
215
249
  [WorkflowNodeType.DEBUG]: '#f97316',
216
250
  [WorkflowNodeType.LLM]: '#22d3ee',
217
251
  [WorkflowNodeType.OCR]: '#0d9488',
252
+ // AI extraction
253
+ [WorkflowNodeType.INFORMATION_EXTRACTOR]: '#8B5CF6',
218
254
  // Web nodes
219
255
  [WorkflowNodeType.WEB_SEARCH]: '#3b82f6',
220
256
  [WorkflowNodeType.WEB_CRAWL]: '#6366f1',
@@ -222,6 +258,8 @@ export const NODE_COLORS = {
222
258
  [WorkflowNodeType.DOCUMENT_GENERATOR]: '#0284c7',
223
259
  // Storage nodes
224
260
  [WorkflowNodeType.FILE_STORAGE]: '#f59e0b',
261
+ [WorkflowNodeType.GOOGLE_CLOUD_STORAGE]: '#4285f4',
262
+ [WorkflowNodeType.S3]: '#FF9900',
225
263
  // RAG nodes
226
264
  [WorkflowNodeType.EMBEDDING]: '#8b5cf6',
227
265
  [WorkflowNodeType.DOCUMENT_LOADER]: '#ec4899',
@@ -229,6 +267,8 @@ export const NODE_COLORS = {
229
267
  [WorkflowNodeType.VECTOR_WRITE]: '#10b981',
230
268
  [WorkflowNodeType.VECTOR_SEARCH]: '#06b6d4',
231
269
  [WorkflowNodeType.CONTEXT_BUILDER]: '#a855f7',
270
+ // AI chains
271
+ [WorkflowNodeType.SUMMARIZATION]: '#8B5CF6',
232
272
  // Safety nodes
233
273
  [WorkflowNodeType.GUARDRAIL]: '#ef4444',
234
274
  // Slack integration nodes
@@ -239,16 +279,40 @@ export const NODE_COLORS = {
239
279
  [WorkflowNodeType.SLACK_UPLOAD_FILE]: '#4A154B',
240
280
  // RAG nodes (continued)
241
281
  [WorkflowNodeType.RERANKER]: '#d946ef',
282
+ // Shopify integration nodes
283
+ [WorkflowNodeType.SHOPIFY]: '#96bf48',
242
284
  // Telegram integration nodes
243
285
  [WorkflowNodeType.TELEGRAM_SEND]: '#0088cc',
286
+ // Twilio integration nodes
287
+ [WorkflowNodeType.TWILIO_SMS]: '#F22F46',
288
+ [WorkflowNodeType.TWILIO_VOICE]: '#F22F46',
244
289
  // Persistent trigger nodes
245
290
  [WorkflowNodeType.TELEGRAM_BOT]: '#0088cc',
246
291
  [WorkflowNodeType.SLACK_SOCKET]: '#4A154B',
247
292
  [WorkflowNodeType.DISCORD_BOT]: '#5865F2',
248
293
  [WorkflowNodeType.WHATSAPP_WEBHOOK]: '#25D366',
249
294
  [WorkflowNodeType.CUSTOM_WEBSOCKET]: '#6366f1',
295
+ // Google Calendar integration
296
+ [WorkflowNodeType.GOOGLE_CALENDAR]: '#4285F4',
297
+ // RabbitMQ trigger
298
+ [WorkflowNodeType.RABBITMQ_TRIGGER]: '#FF6600',
299
+ // Kafka integration
300
+ [WorkflowNodeType.KAFKA]: '#231F20',
301
+ [WorkflowNodeType.KAFKA_TRIGGER]: '#231F20',
302
+ // Zendesk integration nodes
303
+ [WorkflowNodeType.ZENDESK]: '#03363d',
304
+ // GitLab integration
305
+ [WorkflowNodeType.GITLAB]: '#FC6D26',
250
306
  // MCP integration
251
307
  [WorkflowNodeType.MCP]: '#7c3aed',
308
+ // HubSpot CRM
309
+ [WorkflowNodeType.HUBSPOT]: '#FF7A59',
310
+ // Jira integration nodes
311
+ [WorkflowNodeType.JIRA]: '#0052CC',
312
+ // Elasticsearch integration
313
+ [WorkflowNodeType.ELASTICSEARCH]: '#00bfb3',
314
+ // Calendly trigger
315
+ [WorkflowNodeType.CALENDLY_TRIGGER]: '#006BFF',
252
316
  // Display nodes
253
317
  [WorkflowNodeType.UI_TABLE]: '#0891b2',
254
318
  // Annotation nodes
@@ -314,6 +378,8 @@ export const NODE_ICONS = {
314
378
  [WorkflowNodeType.TRANSFORM]: 'shuffle',
315
379
  [WorkflowNodeType.SUB_WORKFLOW]: 'layers',
316
380
  [WorkflowNodeType.EMAIL]: 'mail',
381
+ [WorkflowNodeType.EMAIL_READER]: 'mail-open',
382
+ [WorkflowNodeType.SENDGRID]: 'send',
317
383
  [WorkflowNodeType.NOTIFICATION]: 'bell',
318
384
  [WorkflowNodeType.DATABASE]: 'database',
319
385
  [WorkflowNodeType.VARIABLE]: 'box',
@@ -321,6 +387,8 @@ export const NODE_ICONS = {
321
387
  [WorkflowNodeType.DEBUG]: 'bug',
322
388
  [WorkflowNodeType.LLM]: 'brain',
323
389
  [WorkflowNodeType.OCR]: 'scan',
390
+ // AI extraction
391
+ [WorkflowNodeType.INFORMATION_EXTRACTOR]: 'search',
324
392
  // Web nodes
325
393
  [WorkflowNodeType.WEB_SEARCH]: 'search',
326
394
  [WorkflowNodeType.WEB_CRAWL]: 'globe',
@@ -328,6 +396,8 @@ export const NODE_ICONS = {
328
396
  [WorkflowNodeType.DOCUMENT_GENERATOR]: 'file-text',
329
397
  // Storage nodes
330
398
  [WorkflowNodeType.FILE_STORAGE]: 'hard-drive',
399
+ [WorkflowNodeType.GOOGLE_CLOUD_STORAGE]: 'cloud',
400
+ [WorkflowNodeType.S3]: 'cloud',
331
401
  // RAG nodes
332
402
  [WorkflowNodeType.EMBEDDING]: 'hash',
333
403
  [WorkflowNodeType.DOCUMENT_LOADER]: 'file-text',
@@ -335,6 +405,8 @@ export const NODE_ICONS = {
335
405
  [WorkflowNodeType.VECTOR_WRITE]: 'database',
336
406
  [WorkflowNodeType.VECTOR_SEARCH]: 'search',
337
407
  [WorkflowNodeType.CONTEXT_BUILDER]: 'layers',
408
+ // AI chains
409
+ [WorkflowNodeType.SUMMARIZATION]: 'file-minus',
338
410
  // Safety nodes
339
411
  [WorkflowNodeType.GUARDRAIL]: 'shield',
340
412
  // Slack integration nodes
@@ -345,16 +417,40 @@ export const NODE_ICONS = {
345
417
  [WorkflowNodeType.SLACK_UPLOAD_FILE]: 'upload',
346
418
  // RAG nodes (continued)
347
419
  [WorkflowNodeType.RERANKER]: 'arrow-up-down',
420
+ // Shopify integration nodes
421
+ [WorkflowNodeType.SHOPIFY]: 'shopping-cart',
348
422
  // Telegram integration nodes
349
423
  [WorkflowNodeType.TELEGRAM_SEND]: 'send',
424
+ // Twilio integration nodes
425
+ [WorkflowNodeType.TWILIO_SMS]: 'message-square',
426
+ [WorkflowNodeType.TWILIO_VOICE]: 'phone',
350
427
  // Persistent trigger nodes
351
428
  [WorkflowNodeType.TELEGRAM_BOT]: 'send',
352
429
  [WorkflowNodeType.SLACK_SOCKET]: 'message-square',
353
430
  [WorkflowNodeType.DISCORD_BOT]: 'gamepad-2',
354
431
  [WorkflowNodeType.WHATSAPP_WEBHOOK]: 'phone',
355
432
  [WorkflowNodeType.CUSTOM_WEBSOCKET]: 'radio',
433
+ // Google Calendar integration
434
+ [WorkflowNodeType.GOOGLE_CALENDAR]: 'calendar',
435
+ // RabbitMQ trigger
436
+ [WorkflowNodeType.RABBITMQ_TRIGGER]: 'inbox',
437
+ // Kafka integration
438
+ [WorkflowNodeType.KAFKA]: 'message-square-share',
439
+ [WorkflowNodeType.KAFKA_TRIGGER]: 'radio',
440
+ // Zendesk integration nodes
441
+ [WorkflowNodeType.ZENDESK]: 'ticket',
442
+ // GitLab integration
443
+ [WorkflowNodeType.GITLAB]: 'git-merge',
356
444
  // MCP integration
357
445
  [WorkflowNodeType.MCP]: 'plug',
446
+ // HubSpot CRM
447
+ [WorkflowNodeType.HUBSPOT]: 'users',
448
+ // Jira integration nodes
449
+ [WorkflowNodeType.JIRA]: 'ticket',
450
+ // Elasticsearch integration
451
+ [WorkflowNodeType.ELASTICSEARCH]: 'search',
452
+ // Calendly trigger
453
+ [WorkflowNodeType.CALENDLY_TRIGGER]: 'calendar',
358
454
  // Display nodes
359
455
  [WorkflowNodeType.UI_TABLE]: 'table',
360
456
  // Annotation nodes
@@ -440,7 +536,7 @@ export const NODE_TEMPLATES = [
440
536
  category: 'trigger',
441
537
  defaultConfig: {
442
538
  httpPath: '/webhook',
443
- httpMethods: ['POST'],
539
+ httpMethod: 'POST',
444
540
  httpAuth: 'none',
445
541
  httpCors: true,
446
542
  httpRateLimit: 100,
@@ -564,6 +660,28 @@ export const NODE_TEMPLATES = [
564
660
  ],
565
661
  },
566
662
  },
663
+ {
664
+ type: WorkflowNodeType.INFORMATION_EXTRACTOR,
665
+ name: 'Information Extractor',
666
+ description: 'Extract structured data from unstructured text using AI',
667
+ icon: NODE_ICONS[WorkflowNodeType.INFORMATION_EXTRACTOR],
668
+ color: NODE_COLORS[WorkflowNodeType.INFORMATION_EXTRACTOR],
669
+ category: 'action',
670
+ defaultConfig: {
671
+ inputField: 'text',
672
+ schema: [{ name: 'field1', type: 'string', description: '', required: true }],
673
+ model: 'gpt-4o-mini',
674
+ provider: 'openai',
675
+ instructions: '',
676
+ },
677
+ defaultPorts: {
678
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
679
+ outputs: [
680
+ { id: 'out', type: PortType.OUTPUT, label: 'Extracted' },
681
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
682
+ ],
683
+ },
684
+ },
567
685
  {
568
686
  type: WorkflowNodeType.FUNCTION,
569
687
  name: 'Function',
@@ -693,6 +811,48 @@ export const NODE_TEMPLATES = [
693
811
  outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Output' }],
694
812
  },
695
813
  },
814
+ {
815
+ type: WorkflowNodeType.EMAIL_READER,
816
+ name: 'Email Reader',
817
+ description: 'Read and manage emails from Gmail, Outlook, Yahoo, or IMAP',
818
+ icon: NODE_ICONS[WorkflowNodeType.EMAIL_READER],
819
+ color: NODE_COLORS[WorkflowNodeType.EMAIL_READER],
820
+ category: 'action',
821
+ defaultConfig: { provider: 'imap', operation: 'LIST', folder: 'INBOX', limit: 10, includeAttachments: false, markAsReadOnFetch: false, searchQuery: '', host: '', port: 993, tls: true, credentialPath: '', sinceDate: '', beforeDate: '' },
822
+ defaultPorts: {
823
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
824
+ outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Output' }],
825
+ },
826
+ },
827
+ {
828
+ type: WorkflowNodeType.SENDGRID,
829
+ name: 'SendGrid',
830
+ description: 'Send email via SendGrid API',
831
+ icon: NODE_ICONS[WorkflowNodeType.SENDGRID],
832
+ color: NODE_COLORS[WorkflowNodeType.SENDGRID],
833
+ category: 'action',
834
+ defaultConfig: {
835
+ to: '',
836
+ cc: '',
837
+ bcc: '',
838
+ fromEmail: '',
839
+ fromName: '',
840
+ replyTo: '',
841
+ subject: '',
842
+ body: '',
843
+ contentType: 'text/html',
844
+ templateId: '',
845
+ dynamicTemplateData: '',
846
+ categories: '',
847
+ },
848
+ defaultPorts: {
849
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
850
+ outputs: [
851
+ { id: 'out', type: PortType.OUTPUT, label: 'Output' },
852
+ { id: 'error', type: PortType.OUTPUT, label: 'Error' },
853
+ ],
854
+ },
855
+ },
696
856
  {
697
857
  type: WorkflowNodeType.NOTIFICATION,
698
858
  name: 'Notification',
@@ -909,6 +1069,50 @@ export const NODE_TEMPLATES = [
909
1069
  ],
910
1070
  },
911
1071
  },
1072
+ {
1073
+ type: WorkflowNodeType.GOOGLE_CLOUD_STORAGE,
1074
+ name: 'Google Cloud Storage',
1075
+ description: 'Manage objects in Google Cloud Storage buckets',
1076
+ icon: NODE_ICONS[WorkflowNodeType.GOOGLE_CLOUD_STORAGE],
1077
+ color: NODE_COLORS[WorkflowNodeType.GOOGLE_CLOUD_STORAGE],
1078
+ category: 'storage',
1079
+ defaultConfig: {
1080
+ operation: 'LIST',
1081
+ bucketName: '',
1082
+ objectPath: '',
1083
+ serviceAccountPath: '',
1084
+ signedUrlExpiration: 3600,
1085
+ },
1086
+ defaultPorts: {
1087
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1088
+ outputs: [
1089
+ { id: 'out', type: PortType.OUTPUT, label: 'Result' },
1090
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1091
+ ],
1092
+ },
1093
+ },
1094
+ {
1095
+ type: WorkflowNodeType.S3,
1096
+ name: 'AWS S3',
1097
+ description: 'Upload, download, and manage files in Amazon S3',
1098
+ icon: NODE_ICONS[WorkflowNodeType.S3],
1099
+ color: NODE_COLORS[WorkflowNodeType.S3],
1100
+ category: 'integrations',
1101
+ defaultConfig: {
1102
+ s3Operation: 'upload',
1103
+ s3Bucket: '',
1104
+ s3Key: '',
1105
+ s3Region: 'us-east-1',
1106
+ s3ContentType: 'auto',
1107
+ },
1108
+ defaultPorts: {
1109
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1110
+ outputs: [
1111
+ { id: 'out', type: PortType.OUTPUT, label: 'Result' },
1112
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1113
+ ],
1114
+ },
1115
+ },
912
1116
  // RAG nodes
913
1117
  {
914
1118
  type: WorkflowNodeType.EMBEDDING,
@@ -1051,6 +1255,30 @@ export const NODE_TEMPLATES = [
1051
1255
  outputs: [{ id: 'out', type: PortType.OUTPUT, label: 'Reranked' }],
1052
1256
  },
1053
1257
  },
1258
+ // AI chains
1259
+ {
1260
+ type: WorkflowNodeType.SUMMARIZATION,
1261
+ name: 'Summarize Document',
1262
+ description: 'Summarize long text using AI with chunking strategies',
1263
+ icon: NODE_ICONS[WorkflowNodeType.SUMMARIZATION],
1264
+ color: NODE_COLORS[WorkflowNodeType.SUMMARIZATION],
1265
+ category: 'action',
1266
+ defaultConfig: {
1267
+ inputField: 'text',
1268
+ outputField: 'summary',
1269
+ strategy: 'map_reduce',
1270
+ chunkSize: 4000,
1271
+ chunkOverlap: 200,
1272
+ model: 'gpt-4o-mini',
1273
+ },
1274
+ defaultPorts: {
1275
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1276
+ outputs: [
1277
+ { id: 'out', type: PortType.OUTPUT, label: 'Summary' },
1278
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1279
+ ],
1280
+ },
1281
+ },
1054
1282
  // Safety nodes
1055
1283
  {
1056
1284
  type: WorkflowNodeType.GUARDRAIL,
@@ -1182,7 +1410,91 @@ export const NODE_TEMPLATES = [
1182
1410
  ],
1183
1411
  },
1184
1412
  },
1413
+ // Google Calendar integration
1414
+ {
1415
+ type: WorkflowNodeType.GOOGLE_CALENDAR,
1416
+ name: 'Google Calendar',
1417
+ description: 'Create, read, update, and delete Google Calendar events',
1418
+ icon: NODE_ICONS[WorkflowNodeType.GOOGLE_CALENDAR],
1419
+ color: NODE_COLORS[WorkflowNodeType.GOOGLE_CALENDAR],
1420
+ category: 'google-calendar',
1421
+ defaultConfig: {
1422
+ googleCalendarCredential: '',
1423
+ googleCalendarId: 'primary',
1424
+ googleCalendarOperation: 'getAll',
1425
+ googleCalendarEventSummary: '',
1426
+ googleCalendarEventDescription: '',
1427
+ googleCalendarEventStart: '',
1428
+ googleCalendarEventEnd: '',
1429
+ googleCalendarEventAttendees: '',
1430
+ googleCalendarEventLocation: '',
1431
+ googleCalendarTimeMin: '',
1432
+ googleCalendarTimeMax: '',
1433
+ googleCalendarRecurrence: '',
1434
+ googleCalendarConferenceData: false,
1435
+ },
1436
+ defaultPorts: {
1437
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1438
+ outputs: [
1439
+ { id: 'out', type: PortType.OUTPUT, label: 'Response' },
1440
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1441
+ ],
1442
+ },
1443
+ },
1444
+ // Shopify integration nodes
1445
+ {
1446
+ type: WorkflowNodeType.SHOPIFY,
1447
+ name: 'Shopify',
1448
+ description: 'Manage Shopify products, orders, customers, inventory, and fulfillments via the Admin API',
1449
+ icon: NODE_ICONS[WorkflowNodeType.SHOPIFY],
1450
+ color: NODE_COLORS[WorkflowNodeType.SHOPIFY],
1451
+ category: 'shopify',
1452
+ defaultConfig: {
1453
+ resource: 'ORDER',
1454
+ operation: DataOperation.LIST,
1455
+ resourceId: '',
1456
+ filters: '',
1457
+ shopDomain: '',
1458
+ accessToken: '',
1459
+ },
1460
+ defaultPorts: {
1461
+ inputs: [{ id: 'input', type: PortType.INPUT, label: 'Input' }],
1462
+ outputs: [
1463
+ { id: 'out', type: PortType.OUTPUT, label: 'Output' },
1464
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1465
+ ],
1466
+ },
1467
+ },
1185
1468
  // Telegram integration nodes
1469
+ {
1470
+ type: WorkflowNodeType.GITLAB,
1471
+ name: 'GitLab',
1472
+ description: 'Manage GitLab repositories, issues, merge requests, pipelines, and releases',
1473
+ icon: NODE_ICONS[WorkflowNodeType.GITLAB],
1474
+ color: NODE_COLORS[WorkflowNodeType.GITLAB],
1475
+ category: 'developer',
1476
+ defaultConfig: {
1477
+ gitlabBaseUrl: 'https://gitlab.com',
1478
+ gitlabAccessToken: '',
1479
+ gitlabResource: 'issue',
1480
+ gitlabOperation: 'getAll',
1481
+ gitlabProjectId: '',
1482
+ gitlabTitle: '',
1483
+ gitlabDescription: '',
1484
+ gitlabLabels: [],
1485
+ gitlabAssigneeIds: [],
1486
+ gitlabSourceBranch: '',
1487
+ gitlabTargetBranch: '',
1488
+ gitlabRef: '',
1489
+ },
1490
+ defaultPorts: {
1491
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1492
+ outputs: [
1493
+ { id: 'out', type: PortType.OUTPUT, label: 'Response' },
1494
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1495
+ ],
1496
+ },
1497
+ },
1186
1498
  {
1187
1499
  type: WorkflowNodeType.TELEGRAM_SEND,
1188
1500
  name: 'Telegram: Send Message',
@@ -1208,6 +1520,78 @@ export const NODE_TEMPLATES = [
1208
1520
  ],
1209
1521
  },
1210
1522
  },
1523
+ // Zendesk integration nodes
1524
+ {
1525
+ type: WorkflowNodeType.ZENDESK,
1526
+ name: 'Zendesk',
1527
+ description: 'Manage Zendesk tickets, users, organizations, and satisfaction ratings',
1528
+ icon: NODE_ICONS[WorkflowNodeType.ZENDESK],
1529
+ color: NODE_COLORS[WorkflowNodeType.ZENDESK],
1530
+ category: 'zendesk',
1531
+ defaultConfig: {
1532
+ zendeskResource: 'TICKET',
1533
+ zendeskOperation: 'LIST',
1534
+ zendeskSubdomain: '',
1535
+ zendeskApiToken: '',
1536
+ zendeskEmail: '',
1537
+ },
1538
+ defaultPorts: {
1539
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1540
+ outputs: [
1541
+ { id: 'out', type: PortType.OUTPUT, label: 'Response' },
1542
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1543
+ ],
1544
+ },
1545
+ },
1546
+ // Twilio integration nodes
1547
+ {
1548
+ type: WorkflowNodeType.TWILIO_SMS,
1549
+ name: 'Twilio: Send SMS',
1550
+ description: 'Send an SMS or WhatsApp message via the Twilio API',
1551
+ icon: NODE_ICONS[WorkflowNodeType.TWILIO_SMS],
1552
+ color: NODE_COLORS[WorkflowNodeType.TWILIO_SMS],
1553
+ category: 'twilio',
1554
+ defaultConfig: {
1555
+ twilioAccountSid: '',
1556
+ twilioAuthToken: '',
1557
+ twilioFromNumber: '',
1558
+ twilioToNumber: '',
1559
+ twilioMessageBody: '',
1560
+ twilioOperation: 'send_sms',
1561
+ twilioStatusCallback: '',
1562
+ },
1563
+ defaultPorts: {
1564
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1565
+ outputs: [
1566
+ { id: 'out', type: PortType.OUTPUT, label: 'Response' },
1567
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1568
+ ],
1569
+ },
1570
+ },
1571
+ {
1572
+ type: WorkflowNodeType.TWILIO_VOICE,
1573
+ name: 'Twilio: Voice Call',
1574
+ description: 'Make a voice call via the Twilio API',
1575
+ icon: NODE_ICONS[WorkflowNodeType.TWILIO_VOICE],
1576
+ color: NODE_COLORS[WorkflowNodeType.TWILIO_VOICE],
1577
+ category: 'twilio',
1578
+ defaultConfig: {
1579
+ twilioAccountSid: '',
1580
+ twilioAuthToken: '',
1581
+ twilioFromNumber: '',
1582
+ twilioToNumber: '',
1583
+ twilioOperation: 'make_call',
1584
+ twilioVoiceUrl: '',
1585
+ twilioStatusCallback: '',
1586
+ },
1587
+ defaultPorts: {
1588
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1589
+ outputs: [
1590
+ { id: 'out', type: PortType.OUTPUT, label: 'Response' },
1591
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1592
+ ],
1593
+ },
1594
+ },
1211
1595
  // Persistent trigger nodes
1212
1596
  {
1213
1597
  type: WorkflowNodeType.TELEGRAM_BOT,
@@ -1296,6 +1680,74 @@ export const NODE_TEMPLATES = [
1296
1680
  ],
1297
1681
  },
1298
1682
  },
1683
+ // RabbitMQ trigger
1684
+ {
1685
+ type: WorkflowNodeType.RABBITMQ_TRIGGER,
1686
+ name: 'RabbitMQ Trigger',
1687
+ description: 'Triggers workflow on new messages from a RabbitMQ queue',
1688
+ icon: NODE_ICONS[WorkflowNodeType.RABBITMQ_TRIGGER],
1689
+ color: NODE_COLORS[WorkflowNodeType.RABBITMQ_TRIGGER],
1690
+ category: 'trigger',
1691
+ defaultConfig: {
1692
+ connectionUrl: '',
1693
+ queueName: '',
1694
+ exchange: '',
1695
+ routingKey: '#',
1696
+ autoAck: false,
1697
+ contentType: 'application/json',
1698
+ prefetchCount: 1,
1699
+ },
1700
+ defaultPorts: {
1701
+ inputs: [],
1702
+ outputs: [
1703
+ { id: 'out', type: PortType.OUTPUT, label: 'Message' },
1704
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1705
+ ],
1706
+ },
1707
+ },
1708
+ // Kafka producer
1709
+ {
1710
+ type: WorkflowNodeType.KAFKA,
1711
+ name: 'Kafka: Send Message',
1712
+ description: 'Produce a message to a Kafka topic',
1713
+ icon: NODE_ICONS[WorkflowNodeType.KAFKA],
1714
+ color: NODE_COLORS[WorkflowNodeType.KAFKA],
1715
+ category: 'messaging',
1716
+ defaultConfig: {
1717
+ kafkaBrokers: 'localhost:9092',
1718
+ kafkaAcks: 'all',
1719
+ kafkaCompressionType: 'none',
1720
+ },
1721
+ defaultPorts: {
1722
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'In' }],
1723
+ outputs: [
1724
+ { id: 'out', type: PortType.OUTPUT, label: 'Out' },
1725
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1726
+ ],
1727
+ },
1728
+ },
1729
+ // Kafka trigger
1730
+ {
1731
+ type: WorkflowNodeType.KAFKA_TRIGGER,
1732
+ name: 'Kafka Trigger',
1733
+ description: 'Triggers workflow on new messages from a Kafka topic',
1734
+ icon: NODE_ICONS[WorkflowNodeType.KAFKA_TRIGGER],
1735
+ color: NODE_COLORS[WorkflowNodeType.KAFKA_TRIGGER],
1736
+ category: 'messaging',
1737
+ defaultConfig: {
1738
+ kafkaBrokers: 'localhost:9092',
1739
+ kafkaConsumerGroup: 'nuraly-workflow',
1740
+ kafkaFromBeginning: false,
1741
+ kafkaSessionTimeout: 30000,
1742
+ },
1743
+ defaultPorts: {
1744
+ inputs: [],
1745
+ outputs: [
1746
+ { id: 'out', type: PortType.OUTPUT, label: 'Message' },
1747
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1748
+ ],
1749
+ },
1750
+ },
1299
1751
  // MCP integration
1300
1752
  {
1301
1753
  type: WorkflowNodeType.MCP,
@@ -1315,6 +1767,113 @@ export const NODE_TEMPLATES = [
1315
1767
  ],
1316
1768
  },
1317
1769
  },
1770
+ // HubSpot CRM
1771
+ {
1772
+ type: WorkflowNodeType.HUBSPOT,
1773
+ name: 'HubSpot',
1774
+ description: 'Manage contacts, deals, companies, and tickets via HubSpot CRM',
1775
+ icon: NODE_ICONS[WorkflowNodeType.HUBSPOT],
1776
+ color: NODE_COLORS[WorkflowNodeType.HUBSPOT],
1777
+ category: 'crm',
1778
+ defaultConfig: {
1779
+ hubspotAccessToken: '',
1780
+ hubspotResource: 'contact',
1781
+ hubspotOperation: 'getAll',
1782
+ hubspotProperties: {},
1783
+ hubspotFilterGroups: [],
1784
+ hubspotLimit: 100,
1785
+ hubspotAssociations: [],
1786
+ },
1787
+ defaultPorts: {
1788
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1789
+ outputs: [
1790
+ { id: 'out', type: PortType.OUTPUT, label: 'Result' },
1791
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1792
+ ],
1793
+ },
1794
+ },
1795
+ // Jira integration nodes
1796
+ {
1797
+ type: WorkflowNodeType.JIRA,
1798
+ name: 'Jira',
1799
+ description: 'Create, update, and manage Jira issues',
1800
+ icon: NODE_ICONS[WorkflowNodeType.JIRA],
1801
+ color: NODE_COLORS[WorkflowNodeType.JIRA],
1802
+ category: 'jira',
1803
+ defaultConfig: {
1804
+ operation: 'createIssue',
1805
+ jiraInstanceUrl: '',
1806
+ projectKey: '',
1807
+ issueType: 'Task',
1808
+ summary: '',
1809
+ description: '',
1810
+ assignee: '',
1811
+ priority: 'Medium',
1812
+ labels: '',
1813
+ jqlQuery: '',
1814
+ transitionId: '',
1815
+ issueKey: '',
1816
+ comment: '',
1817
+ },
1818
+ defaultPorts: {
1819
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1820
+ outputs: [
1821
+ { id: 'out', type: PortType.OUTPUT, label: 'Result' },
1822
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1823
+ ],
1824
+ },
1825
+ },
1826
+ // Elasticsearch integration
1827
+ {
1828
+ type: WorkflowNodeType.ELASTICSEARCH,
1829
+ name: 'Elasticsearch',
1830
+ description: 'Search, index, and manage documents in Elasticsearch',
1831
+ icon: NODE_ICONS[WorkflowNodeType.ELASTICSEARCH],
1832
+ color: NODE_COLORS[WorkflowNodeType.ELASTICSEARCH],
1833
+ category: 'integration',
1834
+ defaultConfig: {
1835
+ elasticsearchUrl: '',
1836
+ elasticsearchCredentialPath: '',
1837
+ elasticsearchOperation: 'search',
1838
+ elasticsearchIndex: '',
1839
+ elasticsearchDocumentId: '',
1840
+ elasticsearchQueryBody: '',
1841
+ elasticsearchSize: 10,
1842
+ elasticsearchFrom: 0,
1843
+ elasticsearchRefresh: 'false',
1844
+ elasticsearchTimeout: '30s',
1845
+ elasticsearchRouting: '',
1846
+ outputVariable: 'elasticsearchResult',
1847
+ },
1848
+ defaultPorts: {
1849
+ inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
1850
+ outputs: [
1851
+ { id: 'out', type: PortType.OUTPUT, label: 'Result' },
1852
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1853
+ ],
1854
+ },
1855
+ },
1856
+ // Calendly trigger
1857
+ {
1858
+ type: WorkflowNodeType.CALENDLY_TRIGGER,
1859
+ name: 'Calendly Trigger',
1860
+ description: 'Triggers workflow when a Calendly event is booked or cancelled',
1861
+ icon: NODE_ICONS[WorkflowNodeType.CALENDLY_TRIGGER],
1862
+ color: NODE_COLORS[WorkflowNodeType.CALENDLY_TRIGGER],
1863
+ category: 'trigger',
1864
+ defaultConfig: {
1865
+ events: ['invitee.created'],
1866
+ scope: 'user',
1867
+ outputVariable: 'calendlyEvent',
1868
+ },
1869
+ defaultPorts: {
1870
+ inputs: [],
1871
+ outputs: [
1872
+ { id: 'out', type: PortType.OUTPUT, label: 'Event' },
1873
+ { id: 'error', type: PortType.ERROR, label: 'Error' },
1874
+ ],
1875
+ },
1876
+ },
1318
1877
  // Annotation nodes
1319
1878
  {
1320
1879
  type: WorkflowNodeType.NOTE,
@@ -1956,6 +2515,7 @@ export const NODE_CATEGORIES = [
1956
2515
  WorkflowNodeType.WHATSAPP_WEBHOOK,
1957
2516
  WorkflowNodeType.CUSTOM_WEBSOCKET,
1958
2517
  WorkflowNodeType.MCP,
2518
+ WorkflowNodeType.CALENDLY_TRIGGER,
1959
2519
  ],
1960
2520
  canvasType: CanvasType.WORKFLOW,
1961
2521
  },
@@ -1980,13 +2540,16 @@ export const NODE_CATEGORIES = [
1980
2540
  nodeTypes: [
1981
2541
  WorkflowNodeType.FUNCTION,
1982
2542
  WorkflowNodeType.HTTP,
1983
- WorkflowNodeType.LLM,
2543
+ WorkflowNodeType.INFORMATION_EXTRACTOR,
1984
2544
  WorkflowNodeType.OCR,
1985
2545
  WorkflowNodeType.CHAT_OUTPUT,
1986
2546
  WorkflowNodeType.SUB_WORKFLOW,
1987
2547
  WorkflowNodeType.EMAIL,
2548
+ WorkflowNodeType.EMAIL_READER,
2549
+ WorkflowNodeType.SENDGRID,
1988
2550
  WorkflowNodeType.NOTIFICATION,
1989
2551
  WorkflowNodeType.DOCUMENT_GENERATOR,
2552
+ WorkflowNodeType.SUMMARIZATION,
1990
2553
  ],
1991
2554
  canvasType: CanvasType.WORKFLOW,
1992
2555
  },
@@ -1997,6 +2560,7 @@ export const NODE_CATEGORIES = [
1997
2560
  nodeTypes: [
1998
2561
  WorkflowNodeType.TRANSFORM,
1999
2562
  WorkflowNodeType.DATABASE,
2563
+ WorkflowNodeType.ELASTICSEARCH,
2000
2564
  WorkflowNodeType.VARIABLE,
2001
2565
  WorkflowNodeType.DEBUG,
2002
2566
  ],
@@ -2018,6 +2582,19 @@ export const NODE_CATEGORIES = [
2018
2582
  icon: 'hard-drive',
2019
2583
  nodeTypes: [
2020
2584
  WorkflowNodeType.FILE_STORAGE,
2585
+ WorkflowNodeType.GOOGLE_CLOUD_STORAGE,
2586
+ WorkflowNodeType.S3,
2587
+ ],
2588
+ canvasType: CanvasType.WORKFLOW,
2589
+ },
2590
+ {
2591
+ id: 'messaging',
2592
+ name: 'Messaging',
2593
+ icon: 'inbox',
2594
+ nodeTypes: [
2595
+ WorkflowNodeType.RABBITMQ_TRIGGER,
2596
+ WorkflowNodeType.KAFKA,
2597
+ WorkflowNodeType.KAFKA_TRIGGER,
2021
2598
  ],
2022
2599
  canvasType: CanvasType.WORKFLOW,
2023
2600
  },
@@ -2054,6 +2631,34 @@ export const NODE_CATEGORIES = [
2054
2631
  ],
2055
2632
  canvasType: CanvasType.WORKFLOW,
2056
2633
  },
2634
+ {
2635
+ id: 'google-calendar',
2636
+ name: 'Google Calendar',
2637
+ icon: 'calendar',
2638
+ nodeTypes: [
2639
+ WorkflowNodeType.GOOGLE_CALENDAR,
2640
+ ],
2641
+ canvasType: CanvasType.WORKFLOW,
2642
+ },
2643
+ {
2644
+ id: 'shopify',
2645
+ name: 'Shopify',
2646
+ icon: 'shopping-cart',
2647
+ nodeTypes: [
2648
+ WorkflowNodeType.SHOPIFY,
2649
+ ],
2650
+ canvasType: CanvasType.WORKFLOW,
2651
+ },
2652
+ {
2653
+ id: 'twilio',
2654
+ name: 'Twilio',
2655
+ icon: 'phone',
2656
+ nodeTypes: [
2657
+ WorkflowNodeType.TWILIO_SMS,
2658
+ WorkflowNodeType.TWILIO_VOICE,
2659
+ ],
2660
+ canvasType: CanvasType.WORKFLOW,
2661
+ },
2057
2662
  {
2058
2663
  id: 'telegram',
2059
2664
  name: 'Telegram',
@@ -2063,6 +2668,15 @@ export const NODE_CATEGORIES = [
2063
2668
  ],
2064
2669
  canvasType: CanvasType.WORKFLOW,
2065
2670
  },
2671
+ {
2672
+ id: 'zendesk',
2673
+ name: 'Zendesk',
2674
+ icon: 'ticket',
2675
+ nodeTypes: [
2676
+ WorkflowNodeType.ZENDESK,
2677
+ ],
2678
+ canvasType: CanvasType.WORKFLOW,
2679
+ },
2066
2680
  {
2067
2681
  id: 'slack',
2068
2682
  name: 'Slack',
@@ -2076,6 +2690,33 @@ export const NODE_CATEGORIES = [
2076
2690
  ],
2077
2691
  canvasType: CanvasType.WORKFLOW,
2078
2692
  },
2693
+ {
2694
+ id: 'crm',
2695
+ name: 'CRM',
2696
+ icon: 'users',
2697
+ nodeTypes: [
2698
+ WorkflowNodeType.HUBSPOT,
2699
+ ],
2700
+ canvasType: CanvasType.WORKFLOW,
2701
+ },
2702
+ {
2703
+ id: 'jira',
2704
+ name: 'Jira',
2705
+ icon: 'ticket',
2706
+ nodeTypes: [
2707
+ WorkflowNodeType.JIRA,
2708
+ ],
2709
+ canvasType: CanvasType.WORKFLOW,
2710
+ },
2711
+ {
2712
+ id: 'gitlab',
2713
+ name: 'GitLab',
2714
+ icon: 'git-merge',
2715
+ nodeTypes: [
2716
+ WorkflowNodeType.GITLAB,
2717
+ ],
2718
+ canvasType: CanvasType.WORKFLOW,
2719
+ },
2079
2720
  {
2080
2721
  id: 'annotation',
2081
2722
  name: 'Annotations',
@@ -2228,7 +2869,7 @@ export function createNodeFromTemplate(type, position, id) {
2228
2869
  if (!template)
2229
2870
  return null;
2230
2871
  return {
2231
- id: id || `node_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
2872
+ id: id || 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => { const r = (Math.random() * 16) | 0; return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16); }),
2232
2873
  name: template.name,
2233
2874
  type: template.type,
2234
2875
  position,
@@ -2298,6 +2939,8 @@ export const PERSISTENT_TRIGGER_TYPES = new Set([
2298
2939
  WorkflowNodeType.DISCORD_BOT,
2299
2940
  WorkflowNodeType.WHATSAPP_WEBHOOK,
2300
2941
  WorkflowNodeType.CUSTOM_WEBSOCKET,
2942
+ WorkflowNodeType.CALENDLY_TRIGGER,
2943
+ WorkflowNodeType.KAFKA_TRIGGER,
2301
2944
  ]);
2302
2945
  export function isPersistentTriggerNode(type) {
2303
2946
  return PERSISTENT_TRIGGER_TYPES.has(type);