langflow-base-nightly 1.7.0.dev17__py3-none-any.whl → 1.7.0.dev23__py3-none-any.whl

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 (3615) hide show
  1. langflow/__main__.py +1 -3
  2. langflow/agentic/__init__.py +1 -0
  3. langflow/agentic/flows/SystemMessageGen.json +3287 -0
  4. langflow/agentic/flows/TemplateAssistant.json +4285 -0
  5. langflow/agentic/mcp/__init__.py +5 -0
  6. langflow/agentic/mcp/__main__.py +10 -0
  7. langflow/agentic/mcp/server.py +606 -0
  8. langflow/agentic/mcp/support.py +50 -0
  9. langflow/agentic/schema/schema.json +112 -0
  10. langflow/agentic/utils/__init__.py +15 -0
  11. langflow/agentic/utils/component_search.py +272 -0
  12. langflow/agentic/utils/flow_component.py +373 -0
  13. langflow/agentic/utils/flow_graph.py +202 -0
  14. langflow/agentic/utils/template_create.py +83 -0
  15. langflow/agentic/utils/template_search.py +192 -0
  16. langflow/alembic/DB-MIGRATION-GUIDE.MD +513 -0
  17. langflow/alembic/__init__.py +0 -0
  18. langflow/alembic/env.py +24 -10
  19. langflow/alembic/migration_validator.py +376 -0
  20. langflow/api/utils/core.py +5 -2
  21. langflow/api/utils/mcp/agentic_mcp.py +365 -0
  22. langflow/api/v1/chat.py +1 -0
  23. langflow/api/v1/endpoints.py +126 -24
  24. langflow/api/v1/files.py +1 -2
  25. langflow/api/v1/flows.py +24 -15
  26. langflow/api/v1/login.py +11 -1
  27. langflow/api/v1/mcp_projects.py +47 -11
  28. langflow/api/v1/monitor.py +2 -5
  29. langflow/api/v1/projects.py +28 -13
  30. langflow/api/v1/users.py +5 -5
  31. langflow/api/v2/files.py +315 -54
  32. langflow/frontend/assets/SlackIcon-CEF_Lfgx.js +1 -0
  33. langflow/frontend/assets/Wikipedia-l89g58MW.js +1 -0
  34. langflow/frontend/assets/Wolfram-B0u7kBCd.js +1 -0
  35. langflow/frontend/assets/a-arrow-down-C1MR1UMk.js +6 -0
  36. langflow/frontend/assets/a-arrow-up-CMZerhaE.js +6 -0
  37. langflow/frontend/assets/a-large-small-Bv7wOVZp.js +6 -0
  38. langflow/frontend/assets/accessibility-BrEGjJ3h.js +6 -0
  39. langflow/frontend/assets/activity-D-a4MWi-.js +6 -0
  40. langflow/frontend/assets/air-vent-myzlVebI.js +6 -0
  41. langflow/frontend/assets/airplay-DyNG71LB.js +6 -0
  42. langflow/frontend/assets/alarm-clock-DH1LaNKu.js +6 -0
  43. langflow/frontend/assets/alarm-clock-check-C7zLrHCl.js +6 -0
  44. langflow/frontend/assets/alarm-clock-minus-B9sLdpi9.js +6 -0
  45. langflow/frontend/assets/alarm-clock-off-COlkkF3b.js +6 -0
  46. langflow/frontend/assets/alarm-clock-plus-DxfQCpS0.js +6 -0
  47. langflow/frontend/assets/alarm-smoke-DOKB4jdQ.js +6 -0
  48. langflow/frontend/assets/album-CbhFkW2K.js +6 -0
  49. langflow/frontend/assets/align-center-D4bRdbdX.js +6 -0
  50. langflow/frontend/assets/align-center-horizontal-DRKr69Bu.js +6 -0
  51. langflow/frontend/assets/align-center-vertical-B7CTn1nz.js +6 -0
  52. langflow/frontend/assets/align-end-horizontal-CgCdy2MI.js +6 -0
  53. langflow/frontend/assets/align-end-vertical-DnzR3Jh8.js +6 -0
  54. langflow/frontend/assets/align-horizontal-distribute-center-DcI8WEBg.js +6 -0
  55. langflow/frontend/assets/align-horizontal-distribute-end-ocyg2Ism.js +6 -0
  56. langflow/frontend/assets/align-horizontal-distribute-start-0cj83d0Q.js +6 -0
  57. langflow/frontend/assets/align-horizontal-justify-center-ELZCJfLJ.js +6 -0
  58. langflow/frontend/assets/align-horizontal-justify-end-CAvLzWix.js +6 -0
  59. langflow/frontend/assets/align-horizontal-justify-start-THFMmtW8.js +6 -0
  60. langflow/frontend/assets/align-horizontal-space-around-DM87J1lM.js +6 -0
  61. langflow/frontend/assets/align-horizontal-space-between-CWBgfaSR.js +6 -0
  62. langflow/frontend/assets/align-justify-BZr4mv6M.js +6 -0
  63. langflow/frontend/assets/align-left-DDKaY-tD.js +6 -0
  64. langflow/frontend/assets/align-right-UFsrS9ty.js +6 -0
  65. langflow/frontend/assets/align-start-horizontal-CDMo5O5J.js +6 -0
  66. langflow/frontend/assets/align-start-vertical-mfpy9Ha8.js +6 -0
  67. langflow/frontend/assets/align-vertical-distribute-center-D35O90hK.js +6 -0
  68. langflow/frontend/assets/align-vertical-distribute-end-BOhCSYqd.js +6 -0
  69. langflow/frontend/assets/align-vertical-distribute-start-CRtaDGO3.js +6 -0
  70. langflow/frontend/assets/align-vertical-justify-center-BEDLBLzr.js +6 -0
  71. langflow/frontend/assets/align-vertical-justify-end-CpmZIv_b.js +6 -0
  72. langflow/frontend/assets/align-vertical-justify-start-BaQPjHDD.js +6 -0
  73. langflow/frontend/assets/align-vertical-space-around-DN8HaVwe.js +6 -0
  74. langflow/frontend/assets/align-vertical-space-between-CtfMVSNs.js +6 -0
  75. langflow/frontend/assets/ambulance-EysJPjDH.js +6 -0
  76. langflow/frontend/assets/ampersand-De5P08QL.js +6 -0
  77. langflow/frontend/assets/ampersands-BFEb_UYl.js +6 -0
  78. langflow/frontend/assets/amphora-CeQeqX39.js +6 -0
  79. langflow/frontend/assets/anchor-Bmj6G_T-.js +6 -0
  80. langflow/frontend/assets/angry-BJ4OZ8cf.js +6 -0
  81. langflow/frontend/assets/annoyed-CnuYiPsR.js +6 -0
  82. langflow/frontend/assets/antenna-BF54KX6Q.js +6 -0
  83. langflow/frontend/assets/anvil-BDp882_x.js +6 -0
  84. langflow/frontend/assets/aperture-C-RXeV-R.js +6 -0
  85. langflow/frontend/assets/app-window-CnWdW7Z8.js +6 -0
  86. langflow/frontend/assets/app-window-mac-BWkyg2Dt.js +6 -0
  87. langflow/frontend/assets/apple-Cy1_Ygqa.js +6 -0
  88. langflow/frontend/assets/archive-DQM1ljrp.js +6 -0
  89. langflow/frontend/assets/archive-restore-CR7ZCkrs.js +6 -0
  90. langflow/frontend/assets/archive-x-Cah6BUmC.js +6 -0
  91. langflow/frontend/assets/armchair-CI__vHrc.js +6 -0
  92. langflow/frontend/assets/arrow-big-down-dash-Cexbrdd1.js +6 -0
  93. langflow/frontend/assets/arrow-big-down-es-qZLrf.js +6 -0
  94. langflow/frontend/assets/arrow-big-left-BNfP62tw.js +6 -0
  95. langflow/frontend/assets/arrow-big-left-dash-CDo880bt.js +6 -0
  96. langflow/frontend/assets/arrow-big-right-Cw4xK1An.js +6 -0
  97. langflow/frontend/assets/arrow-big-right-dash-Bv-LrLEi.js +6 -0
  98. langflow/frontend/assets/arrow-big-up-1D3Ok-B4.js +6 -0
  99. langflow/frontend/assets/arrow-big-up-dash-DkwHTfuU.js +6 -0
  100. langflow/frontend/assets/arrow-down-0-1-sOAZahEa.js +6 -0
  101. langflow/frontend/assets/arrow-down-1-0-jFkfLsFL.js +6 -0
  102. langflow/frontend/assets/arrow-down-DiLgk_Lv.js +6 -0
  103. langflow/frontend/assets/arrow-down-a-z-yfXUaZlY.js +6 -0
  104. langflow/frontend/assets/arrow-down-from-line-JwLxfDLL.js +6 -0
  105. langflow/frontend/assets/arrow-down-left-9rqXt219.js +6 -0
  106. langflow/frontend/assets/arrow-down-narrow-wide-DNQQfWSk.js +6 -0
  107. langflow/frontend/assets/arrow-down-right-C04MAksZ.js +6 -0
  108. langflow/frontend/assets/arrow-down-to-dot-BIQNg3lP.js +6 -0
  109. langflow/frontend/assets/arrow-down-to-line-AiuzCgPl.js +6 -0
  110. langflow/frontend/assets/arrow-down-up-BUl4CwHw.js +6 -0
  111. langflow/frontend/assets/arrow-down-wide-narrow-BEWv2A3j.js +6 -0
  112. langflow/frontend/assets/arrow-down-z-a-C-my0MFx.js +6 -0
  113. langflow/frontend/assets/arrow-left-DraCa3qF.js +6 -0
  114. langflow/frontend/assets/arrow-left-from-line-Cf8elz8N.js +6 -0
  115. langflow/frontend/assets/arrow-left-right-DnMFkXhG.js +6 -0
  116. langflow/frontend/assets/arrow-left-to-line-DqC6UI7j.js +6 -0
  117. langflow/frontend/assets/arrow-right-DjiPPpgB.js +6 -0
  118. langflow/frontend/assets/arrow-right-from-line-Dc9a1Fow.js +6 -0
  119. langflow/frontend/assets/arrow-right-left-DX4SFlaz.js +6 -0
  120. langflow/frontend/assets/arrow-right-to-line-QDmBsM4R.js +6 -0
  121. langflow/frontend/assets/arrow-up-0-1-B6al2yLS.js +6 -0
  122. langflow/frontend/assets/arrow-up-1-0-C6aJcw3B.js +6 -0
  123. langflow/frontend/assets/arrow-up-CjPYprhI.js +6 -0
  124. langflow/frontend/assets/arrow-up-a-z-BE7k_Es_.js +6 -0
  125. langflow/frontend/assets/arrow-up-down-nqmOlLPp.js +6 -0
  126. langflow/frontend/assets/arrow-up-from-dot-C3rxzunA.js +6 -0
  127. langflow/frontend/assets/arrow-up-from-line-KUrGFQEP.js +6 -0
  128. langflow/frontend/assets/arrow-up-left-DfnfqUsI.js +6 -0
  129. langflow/frontend/assets/arrow-up-narrow-wide-BxqaRTna.js +6 -0
  130. langflow/frontend/assets/arrow-up-right-XuwyPu6F.js +6 -0
  131. langflow/frontend/assets/arrow-up-to-line-ClQGsei8.js +6 -0
  132. langflow/frontend/assets/arrow-up-wide-narrow-Df4gI9kX.js +6 -0
  133. langflow/frontend/assets/arrow-up-z-a-BCD-rCLh.js +6 -0
  134. langflow/frontend/assets/arrows-up-from-line-BEVbeabp.js +6 -0
  135. langflow/frontend/assets/asterisk-DbNqMHXe.js +6 -0
  136. langflow/frontend/assets/at-sign-D6oIhdLE.js +6 -0
  137. langflow/frontend/assets/atom-BwKR6eUj.js +6 -0
  138. langflow/frontend/assets/audio-lines-DuaD6im4.js +6 -0
  139. langflow/frontend/assets/audio-waveform-BhXwvbto.js +6 -0
  140. langflow/frontend/assets/award-5kfq8rkw.js +6 -0
  141. langflow/frontend/assets/axe-BOOglolb.js +6 -0
  142. langflow/frontend/assets/axis-3d-DOFH7kHD.js +6 -0
  143. langflow/frontend/assets/baby-BEYKunXX.js +6 -0
  144. langflow/frontend/assets/backpack-_Qlx18_V.js +6 -0
  145. langflow/frontend/assets/badge-BOuSs5_H.js +6 -0
  146. langflow/frontend/assets/badge-alert-CckKfyfr.js +6 -0
  147. langflow/frontend/assets/badge-cent-BCVyiQHU.js +6 -0
  148. langflow/frontend/assets/badge-check-evlQm0SD.js +6 -0
  149. langflow/frontend/assets/badge-dollar-sign-Cs3GeUxH.js +6 -0
  150. langflow/frontend/assets/badge-euro-Bkq-NiJ5.js +6 -0
  151. langflow/frontend/assets/badge-help-CZrCA_Ar.js +6 -0
  152. langflow/frontend/assets/badge-indian-rupee-CGIxUK6a.js +6 -0
  153. langflow/frontend/assets/badge-info-tIeShHl2.js +6 -0
  154. langflow/frontend/assets/badge-japanese-yen-DC-UA7pC.js +6 -0
  155. langflow/frontend/assets/badge-minus-mAxFYDfn.js +6 -0
  156. langflow/frontend/assets/badge-percent-DInhOlwC.js +6 -0
  157. langflow/frontend/assets/badge-plus-Drx8vtQY.js +6 -0
  158. langflow/frontend/assets/badge-pound-sterling-SFaXfQwH.js +6 -0
  159. langflow/frontend/assets/badge-russian-ruble-Y4OZSJrU.js +6 -0
  160. langflow/frontend/assets/badge-swiss-franc-5KScJ4ZB.js +6 -0
  161. langflow/frontend/assets/badge-x-CntBKY-i.js +6 -0
  162. langflow/frontend/assets/baggage-claim-Bb6waYF4.js +6 -0
  163. langflow/frontend/assets/ban-Dr4CWBPj.js +6 -0
  164. langflow/frontend/assets/banana-C4ML2xXp.js +6 -0
  165. langflow/frontend/assets/bandage-BD0CHios.js +6 -0
  166. langflow/frontend/assets/banknote-DIcM5_C6.js +6 -0
  167. langflow/frontend/assets/banknote-arrow-down-v4zeqRIU.js +6 -0
  168. langflow/frontend/assets/banknote-arrow-up-BykOKE4i.js +6 -0
  169. langflow/frontend/assets/banknote-x-CpYx8SrC.js +6 -0
  170. langflow/frontend/assets/barcode-C9KJv53a.js +6 -0
  171. langflow/frontend/assets/baseline-BUk7-Xi7.js +6 -0
  172. langflow/frontend/assets/bath-Dg8LjUwx.js +6 -0
  173. langflow/frontend/assets/battery-CgmqlOl8.js +6 -0
  174. langflow/frontend/assets/battery-charging-pD-mMKPn.js +6 -0
  175. langflow/frontend/assets/battery-full-BWR4eBlS.js +6 -0
  176. langflow/frontend/assets/battery-low-CO0zIMLQ.js +6 -0
  177. langflow/frontend/assets/battery-medium-BDNKPIlP.js +6 -0
  178. langflow/frontend/assets/battery-plus-CDftjdMy.js +6 -0
  179. langflow/frontend/assets/battery-warning-BX8PdyQx.js +6 -0
  180. langflow/frontend/assets/beaker-DPQTIavx.js +6 -0
  181. langflow/frontend/assets/bean-Buf4iRsl.js +6 -0
  182. langflow/frontend/assets/bean-off-BdpjedQD.js +6 -0
  183. langflow/frontend/assets/bed-DbluJBcJ.js +6 -0
  184. langflow/frontend/assets/bed-double-ChlRO7Um.js +6 -0
  185. langflow/frontend/assets/bed-single-5Vz7P4KL.js +6 -0
  186. langflow/frontend/assets/beef-DLcY3ztG.js +6 -0
  187. langflow/frontend/assets/beer-CbZf1CLh.js +6 -0
  188. langflow/frontend/assets/beer-off-DQt9-Yvf.js +6 -0
  189. langflow/frontend/assets/bell-Dbx9wwOK.js +6 -0
  190. langflow/frontend/assets/bell-dot-KP_Rh9L4.js +6 -0
  191. langflow/frontend/assets/bell-electric-DYZym3Iv.js +6 -0
  192. langflow/frontend/assets/bell-minus-BZGjCom7.js +6 -0
  193. langflow/frontend/assets/bell-off-BAvH_HuW.js +6 -0
  194. langflow/frontend/assets/bell-plus-DPFkXHZc.js +6 -0
  195. langflow/frontend/assets/bell-ring-DuesEJGI.js +6 -0
  196. langflow/frontend/assets/between-horizontal-end-BPoYnPxc.js +6 -0
  197. langflow/frontend/assets/between-horizontal-start-DVqlwINr.js +6 -0
  198. langflow/frontend/assets/between-vertical-end-CGwEFKvW.js +6 -0
  199. langflow/frontend/assets/between-vertical-start-CTFQjVNF.js +6 -0
  200. langflow/frontend/assets/biceps-flexed-B2vA7PZV.js +6 -0
  201. langflow/frontend/assets/bike-Br2K_Koa.js +6 -0
  202. langflow/frontend/assets/binary-BHLdLb2-.js +6 -0
  203. langflow/frontend/assets/binoculars-DuKZH8Zh.js +6 -0
  204. langflow/frontend/assets/biohazard-B8FjW09n.js +6 -0
  205. langflow/frontend/assets/bird-itw24Hbj.js +6 -0
  206. langflow/frontend/assets/bitcoin-DgG8rKcA.js +6 -0
  207. langflow/frontend/assets/blend-CG2CKs-3.js +6 -0
  208. langflow/frontend/assets/blinds-BvB5LjVo.js +6 -0
  209. langflow/frontend/assets/blocks-NmxNFC3J.js +6 -0
  210. langflow/frontend/assets/bluetooth-CyLo6vyP.js +6 -0
  211. langflow/frontend/assets/bluetooth-connected-CW0EZSjS.js +6 -0
  212. langflow/frontend/assets/bluetooth-off-CLA2FgtZ.js +6 -0
  213. langflow/frontend/assets/bluetooth-searching-D39nzp26.js +6 -0
  214. langflow/frontend/assets/bold-Mwjfwd6i.js +6 -0
  215. langflow/frontend/assets/bolt-CCG6giOU.js +6 -0
  216. langflow/frontend/assets/bomb-CmW9GByV.js +6 -0
  217. langflow/frontend/assets/bone-B-ftIZZC.js +6 -0
  218. langflow/frontend/assets/book-C9k3ZOBc.js +6 -0
  219. langflow/frontend/assets/book-a-JtyovsEF.js +6 -0
  220. langflow/frontend/assets/book-audio-D4ca-u-T.js +6 -0
  221. langflow/frontend/assets/book-check-BeS3k1s2.js +6 -0
  222. langflow/frontend/assets/book-copy-C4XYhOc3.js +6 -0
  223. langflow/frontend/assets/book-dashed-B4RKCqvz.js +6 -0
  224. langflow/frontend/assets/book-down-C7cuvnxL.js +6 -0
  225. langflow/frontend/assets/book-headphones-W0HUkTzm.js +6 -0
  226. langflow/frontend/assets/book-heart-PLiTcr-b.js +6 -0
  227. langflow/frontend/assets/book-image-CwGwbb3g.js +6 -0
  228. langflow/frontend/assets/book-key-7traCCG2.js +6 -0
  229. langflow/frontend/assets/book-lock-Dlltc43Y.js +6 -0
  230. langflow/frontend/assets/book-marked-CdTsOLQX.js +6 -0
  231. langflow/frontend/assets/book-minus-6JqstP_B.js +6 -0
  232. langflow/frontend/assets/book-open--eSp397E.js +6 -0
  233. langflow/frontend/assets/book-open-check-Bkp4i0Z6.js +6 -0
  234. langflow/frontend/assets/book-open-text-BIWmd2fT.js +6 -0
  235. langflow/frontend/assets/book-plus-CflK6Aqe.js +6 -0
  236. langflow/frontend/assets/book-text-ByR7Lfzl.js +6 -0
  237. langflow/frontend/assets/book-type-Bq-Jm1g2.js +6 -0
  238. langflow/frontend/assets/book-up-2-DZZJTQeK.js +6 -0
  239. langflow/frontend/assets/book-up-ieUJxufA.js +6 -0
  240. langflow/frontend/assets/book-user-DJC4YpOj.js +6 -0
  241. langflow/frontend/assets/book-x-BYw2JmSg.js +6 -0
  242. langflow/frontend/assets/bookmark-DmgojVBV.js +6 -0
  243. langflow/frontend/assets/bookmark-check-BWmkNODf.js +6 -0
  244. langflow/frontend/assets/bookmark-minus-Opo6htKF.js +6 -0
  245. langflow/frontend/assets/bookmark-plus-Cmq9o8rG.js +6 -0
  246. langflow/frontend/assets/bookmark-x-Bbo75e-_.js +6 -0
  247. langflow/frontend/assets/boom-box-BUwW6n9i.js +6 -0
  248. langflow/frontend/assets/bot-DQCZD09Z.js +6 -0
  249. langflow/frontend/assets/bot-message-square-Qg8qf_Vo.js +6 -0
  250. langflow/frontend/assets/bot-off-CWhYg4QH.js +6 -0
  251. langflow/frontend/assets/bow-arrow-2G8YQj8T.js +6 -0
  252. langflow/frontend/assets/box-DI6aYfMK.js +6 -0
  253. langflow/frontend/assets/boxes-BtNp1YLT.js +6 -0
  254. langflow/frontend/assets/braces-BLcS_5vG.js +6 -0
  255. langflow/frontend/assets/brackets-Cv8xrRQf.js +6 -0
  256. langflow/frontend/assets/brain-DgRUprQ7.js +6 -0
  257. langflow/frontend/assets/brain-circuit-BtOL0kFy.js +6 -0
  258. langflow/frontend/assets/brain-cog-zXypBGqp.js +6 -0
  259. langflow/frontend/assets/brick-wall-CFFET0Vi.js +6 -0
  260. langflow/frontend/assets/brick-wall-fire-ZpPxxgvZ.js +6 -0
  261. langflow/frontend/assets/briefcase-Bbqle57g.js +6 -0
  262. langflow/frontend/assets/briefcase-business-EvgZ-pGn.js +6 -0
  263. langflow/frontend/assets/briefcase-conveyor-belt-B71ya1iU.js +6 -0
  264. langflow/frontend/assets/briefcase-medical-0jat9rYx.js +6 -0
  265. langflow/frontend/assets/bring-to-front-Cy8Ad0pA.js +6 -0
  266. langflow/frontend/assets/brush-5lcMFo2M.js +6 -0
  267. langflow/frontend/assets/bubbles--ZENXIG2.js +6 -0
  268. langflow/frontend/assets/bug-DRy9Jp16.js +6 -0
  269. langflow/frontend/assets/bug-off-BxN14Ao_.js +6 -0
  270. langflow/frontend/assets/bug-play-Dleid9nE.js +6 -0
  271. langflow/frontend/assets/building-2-CK8gdrCW.js +6 -0
  272. langflow/frontend/assets/building-DnAh38ZD.js +6 -0
  273. langflow/frontend/assets/bus-BDx_jniJ.js +6 -0
  274. langflow/frontend/assets/bus-front-B8mPAPPF.js +6 -0
  275. langflow/frontend/assets/cable-D1OmUrR-.js +6 -0
  276. langflow/frontend/assets/cable-car-tPhitjsJ.js +6 -0
  277. langflow/frontend/assets/cake-C6nHJ4UH.js +6 -0
  278. langflow/frontend/assets/cake-slice-BgiXTSq6.js +6 -0
  279. langflow/frontend/assets/calculator-DinCzLLu.js +6 -0
  280. langflow/frontend/assets/calendar-1-p13BBdjX.js +6 -0
  281. langflow/frontend/assets/calendar-B51W3LkW.js +6 -0
  282. langflow/frontend/assets/calendar-arrow-down-D4GLmFd6.js +6 -0
  283. langflow/frontend/assets/calendar-arrow-up-RlAgBFVb.js +6 -0
  284. langflow/frontend/assets/calendar-check-2-OzKJ28SZ.js +6 -0
  285. langflow/frontend/assets/calendar-check-DBkCCqIF.js +6 -0
  286. langflow/frontend/assets/calendar-clock-CPmhjPfI.js +6 -0
  287. langflow/frontend/assets/calendar-cog-DNf29O6g.js +6 -0
  288. langflow/frontend/assets/calendar-days-DM_qi8g0.js +6 -0
  289. langflow/frontend/assets/calendar-fold-DSBrdaqJ.js +6 -0
  290. langflow/frontend/assets/calendar-heart-CAtCjdjQ.js +6 -0
  291. langflow/frontend/assets/calendar-minus-2-hox-wOZr.js +6 -0
  292. langflow/frontend/assets/calendar-minus-DbKbHYOA.js +6 -0
  293. langflow/frontend/assets/calendar-off-DlYG3mA6.js +6 -0
  294. langflow/frontend/assets/calendar-plus-2-Ch9-ovuL.js +6 -0
  295. langflow/frontend/assets/calendar-plus-BN4Db129.js +6 -0
  296. langflow/frontend/assets/calendar-range-CJ4VugmU.js +6 -0
  297. langflow/frontend/assets/calendar-search-DHIkS4iK.js +6 -0
  298. langflow/frontend/assets/calendar-sync-CbzQX2UF.js +6 -0
  299. langflow/frontend/assets/calendar-x-2-BNmHDi_X.js +6 -0
  300. langflow/frontend/assets/calendar-x-LrNbzdAM.js +6 -0
  301. langflow/frontend/assets/camera-BseIeAZa.js +6 -0
  302. langflow/frontend/assets/camera-off-0d9MQnAK.js +6 -0
  303. langflow/frontend/assets/candy-DBuvO51G.js +6 -0
  304. langflow/frontend/assets/candy-cane-BhKAIRPp.js +6 -0
  305. langflow/frontend/assets/candy-off-xFO9zAdm.js +6 -0
  306. langflow/frontend/assets/cannabis-CECNWfs7.js +6 -0
  307. langflow/frontend/assets/captions-CZdZrpN9.js +6 -0
  308. langflow/frontend/assets/captions-off-ehI1itMu.js +6 -0
  309. langflow/frontend/assets/car-D0xYW2KF.js +6 -0
  310. langflow/frontend/assets/car-front-rr7hWrV5.js +6 -0
  311. langflow/frontend/assets/car-taxi-front-CQDj7ceR.js +6 -0
  312. langflow/frontend/assets/caravan-BI0wWOjB.js +6 -0
  313. langflow/frontend/assets/carrot-NTCSh6Bi.js +6 -0
  314. langflow/frontend/assets/case-lower-C0v-UmoB.js +6 -0
  315. langflow/frontend/assets/case-sensitive-CEBMjxQ0.js +6 -0
  316. langflow/frontend/assets/case-upper-qnPCGODe.js +6 -0
  317. langflow/frontend/assets/cassette-tape-o1NC2smT.js +6 -0
  318. langflow/frontend/assets/cast-DoGbtlSh.js +6 -0
  319. langflow/frontend/assets/castle-CDLhRCwv.js +6 -0
  320. langflow/frontend/assets/cat-ZE7MBg12.js +6 -0
  321. langflow/frontend/assets/cctv-BzSWabyA.js +6 -0
  322. langflow/frontend/assets/chart-area-BAWqnveI.js +6 -0
  323. langflow/frontend/assets/chart-bar-DQQ3LQU3.js +6 -0
  324. langflow/frontend/assets/chart-bar-big-D7MR2ePA.js +6 -0
  325. langflow/frontend/assets/chart-bar-decreasing-Vr_wGqvM.js +6 -0
  326. langflow/frontend/assets/chart-bar-increasing-DgEFeop5.js +6 -0
  327. langflow/frontend/assets/chart-bar-stacked-DnRijZKC.js +6 -0
  328. langflow/frontend/assets/chart-candlestick-DxGYDF5k.js +6 -0
  329. langflow/frontend/assets/chart-column-Et99item.js +6 -0
  330. langflow/frontend/assets/chart-column-big-yyRSq6kX.js +6 -0
  331. langflow/frontend/assets/chart-column-decreasing-CVvjizfE.js +6 -0
  332. langflow/frontend/assets/chart-column-increasing-CfeF2c-6.js +6 -0
  333. langflow/frontend/assets/chart-column-stacked-CF9zvWY4.js +6 -0
  334. langflow/frontend/assets/chart-gantt-BouGwyFq.js +6 -0
  335. langflow/frontend/assets/chart-line-Dk3EdrPb.js +6 -0
  336. langflow/frontend/assets/chart-network-CN4xGFXA.js +6 -0
  337. langflow/frontend/assets/chart-no-axes-column-BcQyHdMD.js +6 -0
  338. langflow/frontend/assets/chart-no-axes-column-decreasing-BgUclvV3.js +6 -0
  339. langflow/frontend/assets/chart-no-axes-column-increasing-DNTPc9wN.js +6 -0
  340. langflow/frontend/assets/chart-no-axes-combined-DF25ksrL.js +6 -0
  341. langflow/frontend/assets/chart-no-axes-gantt-BaC_vlS6.js +6 -0
  342. langflow/frontend/assets/chart-pie-B95LBWmZ.js +6 -0
  343. langflow/frontend/assets/chart-scatter-D8SFnMu1.js +6 -0
  344. langflow/frontend/assets/chart-spline-ClrgbOlE.js +6 -0
  345. langflow/frontend/assets/check-check-BXqbwrkO.js +6 -0
  346. langflow/frontend/assets/chef-hat-BjGOghzL.js +6 -0
  347. langflow/frontend/assets/cherry-CJB4mtL5.js +6 -0
  348. langflow/frontend/assets/chevron-first-2oTPGrLc.js +6 -0
  349. langflow/frontend/assets/chevron-last-3pCmFTmU.js +6 -0
  350. langflow/frontend/assets/chevron-left-ClDOQQjV.js +6 -0
  351. langflow/frontend/assets/chevron-right-C711qfbS.js +6 -0
  352. langflow/frontend/assets/chevrons-down-QCuIa8Yp.js +6 -0
  353. langflow/frontend/assets/chevrons-down-up-J6xSXJkb.js +6 -0
  354. langflow/frontend/assets/chevrons-left-NITQoGwJ.js +6 -0
  355. langflow/frontend/assets/chevrons-left-right-CYcrBR6M.js +6 -0
  356. langflow/frontend/assets/chevrons-left-right-ellipsis-Br8VMnkg.js +6 -0
  357. langflow/frontend/assets/chevrons-right-Cs2_g8bG.js +6 -0
  358. langflow/frontend/assets/chevrons-right-left-DtGiQ_O0.js +6 -0
  359. langflow/frontend/assets/chevrons-up-BMLMeGVh.js +6 -0
  360. langflow/frontend/assets/chrome-nvIjs2xZ.js +6 -0
  361. langflow/frontend/assets/church-Qq4UHf_z.js +6 -0
  362. langflow/frontend/assets/cigarette-CXfG_56T.js +6 -0
  363. langflow/frontend/assets/cigarette-off-CdYeRZyX.js +6 -0
  364. langflow/frontend/assets/circle-alert-DT5NKy9u.js +6 -0
  365. langflow/frontend/assets/circle-arrow-down-B2qM-Tuw.js +6 -0
  366. langflow/frontend/assets/circle-arrow-left-CBLpt9nA.js +6 -0
  367. langflow/frontend/assets/circle-arrow-out-down-left-gA68XlUY.js +6 -0
  368. langflow/frontend/assets/circle-arrow-out-down-right-HKXxeeQC.js +6 -0
  369. langflow/frontend/assets/circle-arrow-out-up-left-Cq1LyJKa.js +6 -0
  370. langflow/frontend/assets/circle-arrow-out-up-right-BUvVbJA7.js +6 -0
  371. langflow/frontend/assets/circle-arrow-right-D7t8P6ad.js +6 -0
  372. langflow/frontend/assets/circle-arrow-up-MHzCg4I0.js +6 -0
  373. langflow/frontend/assets/circle-check-B91Zb0zk.js +6 -0
  374. langflow/frontend/assets/circle-check-big-BVKtiAhQ.js +6 -0
  375. langflow/frontend/assets/circle-chevron-down-DNh3bpzK.js +6 -0
  376. langflow/frontend/assets/circle-chevron-left-BJb7vji3.js +6 -0
  377. langflow/frontend/assets/circle-chevron-right-CHmsilV-.js +6 -0
  378. langflow/frontend/assets/circle-chevron-up-Bj9nIZx9.js +6 -0
  379. langflow/frontend/assets/circle-dashed-DzEIY_5d.js +6 -0
  380. langflow/frontend/assets/circle-divide-BuJbzWip.js +6 -0
  381. langflow/frontend/assets/circle-dollar-sign-DdF9J_EI.js +6 -0
  382. langflow/frontend/assets/circle-dot-DitPRly6.js +6 -0
  383. langflow/frontend/assets/circle-dot-dashed-OHoDDXoS.js +6 -0
  384. langflow/frontend/assets/circle-ellipsis-Co5wf0tj.js +6 -0
  385. langflow/frontend/assets/circle-equal-qGSgRMn6.js +6 -0
  386. langflow/frontend/assets/circle-fading-arrow-up-DSM4N2tt.js +6 -0
  387. langflow/frontend/assets/circle-fading-plus-CTQq46rS.js +6 -0
  388. langflow/frontend/assets/circle-gauge-CisUMCG0.js +6 -0
  389. langflow/frontend/assets/circle-help-BF5hRBkX.js +6 -0
  390. langflow/frontend/assets/circle-minus-C3fjtT26.js +6 -0
  391. langflow/frontend/assets/circle-off-_zmE8lRn.js +6 -0
  392. langflow/frontend/assets/circle-parking-BLDdyc9C.js +6 -0
  393. langflow/frontend/assets/circle-parking-off-CxEO8auk.js +6 -0
  394. langflow/frontend/assets/circle-pause-CsP1hqTY.js +6 -0
  395. langflow/frontend/assets/circle-percent-CppecgnG.js +6 -0
  396. langflow/frontend/assets/circle-play-CElAyvGy.js +6 -0
  397. langflow/frontend/assets/circle-plus-DxOSr_qE.js +6 -0
  398. langflow/frontend/assets/circle-power-CX9PhDfK.js +6 -0
  399. langflow/frontend/assets/circle-slash-2--Mme5qmH.js +6 -0
  400. langflow/frontend/assets/circle-slash-BsqGhDcj.js +6 -0
  401. langflow/frontend/assets/circle-small-DQ5WLdC1.js +6 -0
  402. langflow/frontend/assets/circle-stop-5W_dFAx7.js +6 -0
  403. langflow/frontend/assets/circle-user-cdgPpsDB.js +6 -0
  404. langflow/frontend/assets/circle-user-round-DpFUTXdt.js +6 -0
  405. langflow/frontend/assets/circuit-board-Bzpo8k7-.js +6 -0
  406. langflow/frontend/assets/citrus-BD7KeVpe.js +6 -0
  407. langflow/frontend/assets/clapperboard-DJq3crx6.js +6 -0
  408. langflow/frontend/assets/clipboard-check-CzW6HoZg.js +6 -0
  409. langflow/frontend/assets/clipboard-copy-CuDmr3UP.js +6 -0
  410. langflow/frontend/assets/clipboard-list-blWwAWhj.js +6 -0
  411. langflow/frontend/assets/clipboard-minus-MDDcL-JV.js +6 -0
  412. langflow/frontend/assets/clipboard-paste-BALmGJWd.js +6 -0
  413. langflow/frontend/assets/clipboard-pen-CKtqpJ-f.js +6 -0
  414. langflow/frontend/assets/clipboard-pen-line-B8g42LUo.js +6 -0
  415. langflow/frontend/assets/clipboard-plus-DdcrgHOb.js +6 -0
  416. langflow/frontend/assets/clipboard-sn1jUIDV.js +6 -0
  417. langflow/frontend/assets/clipboard-type-DNViKiGe.js +6 -0
  418. langflow/frontend/assets/clipboard-x-BL6o1EDk.js +6 -0
  419. langflow/frontend/assets/clock-1-D_Xsorkr.js +6 -0
  420. langflow/frontend/assets/clock-10-C5lfthCJ.js +6 -0
  421. langflow/frontend/assets/clock-11-CrzatXPC.js +6 -0
  422. langflow/frontend/assets/clock-12-CB-3YTlR.js +6 -0
  423. langflow/frontend/assets/clock-2-CAjJbwpA.js +6 -0
  424. langflow/frontend/assets/clock-3-BkqbnGC2.js +6 -0
  425. langflow/frontend/assets/clock-4-B1iR-wjF.js +6 -0
  426. langflow/frontend/assets/clock-5-hqy_7zzP.js +6 -0
  427. langflow/frontend/assets/clock-6-COiBqCUV.js +6 -0
  428. langflow/frontend/assets/clock-7-D8H9-5o2.js +6 -0
  429. langflow/frontend/assets/clock-8-DmFZf8EJ.js +6 -0
  430. langflow/frontend/assets/clock-9-5vuBxoOH.js +6 -0
  431. langflow/frontend/assets/clock-CvX75A0g.js +6 -0
  432. langflow/frontend/assets/clock-alert-B4zpxMYp.js +6 -0
  433. langflow/frontend/assets/clock-arrow-down-Cp38KxCZ.js +6 -0
  434. langflow/frontend/assets/clock-arrow-up-Cu2Eqxj_.js +6 -0
  435. langflow/frontend/assets/clock-fading-DBqbXrNN.js +6 -0
  436. langflow/frontend/assets/cloud-alert-C8axZqAX.js +6 -0
  437. langflow/frontend/assets/cloud-cog-DH4WJaQY.js +6 -0
  438. langflow/frontend/assets/cloud-download-aSd93OOq.js +6 -0
  439. langflow/frontend/assets/cloud-drizzle-BoOXY0Vf.js +6 -0
  440. langflow/frontend/assets/cloud-ePqAv-Nj.js +6 -0
  441. langflow/frontend/assets/cloud-fog-DgOBgtbG.js +6 -0
  442. langflow/frontend/assets/cloud-hail-EUTfUsOC.js +6 -0
  443. langflow/frontend/assets/cloud-lightning-Bq38iQ8R.js +6 -0
  444. langflow/frontend/assets/cloud-moon-CEZa2582.js +6 -0
  445. langflow/frontend/assets/cloud-moon-rain-ViKAyE90.js +6 -0
  446. langflow/frontend/assets/cloud-off-BeDtlaCJ.js +6 -0
  447. langflow/frontend/assets/cloud-rain-BGFNQif7.js +6 -0
  448. langflow/frontend/assets/cloud-rain-wind-BJr3MNMX.js +6 -0
  449. langflow/frontend/assets/cloud-snow-B_NNumLp.js +6 -0
  450. langflow/frontend/assets/cloud-sun-CSeibAw_.js +6 -0
  451. langflow/frontend/assets/cloud-sun-rain-CmhhxE4C.js +6 -0
  452. langflow/frontend/assets/cloud-upload-DGtwHF2g.js +6 -0
  453. langflow/frontend/assets/cloudy-CZkWi5KD.js +6 -0
  454. langflow/frontend/assets/clover-DHTKeS-5.js +6 -0
  455. langflow/frontend/assets/club-BpMaUsgO.js +6 -0
  456. langflow/frontend/assets/code-xml-CAUmexA-.js +6 -0
  457. langflow/frontend/assets/codepen-ikBrTpKJ.js +6 -0
  458. langflow/frontend/assets/codesandbox-C08d09l6.js +6 -0
  459. langflow/frontend/assets/coffee-CvposdVX.js +6 -0
  460. langflow/frontend/assets/cog-C64LYrMn.js +6 -0
  461. langflow/frontend/assets/coins-UEx29OeF.js +6 -0
  462. langflow/frontend/assets/columns-2-Bsdbp-EE.js +6 -0
  463. langflow/frontend/assets/columns-3-DXwsg-oz.js +6 -0
  464. langflow/frontend/assets/columns-3-cog-DtVF6mVc.js +6 -0
  465. langflow/frontend/assets/columns-4-BRbvUIE-.js +6 -0
  466. langflow/frontend/assets/combine-BgQxFGO5.js +6 -0
  467. langflow/frontend/assets/command-B9cAeenh.js +6 -0
  468. langflow/frontend/assets/compass-pMFWbZJw.js +6 -0
  469. langflow/frontend/assets/component-BgLZWmP7.js +6 -0
  470. langflow/frontend/assets/computer-BXGdV9Gt.js +6 -0
  471. langflow/frontend/assets/concierge-bell-CbQqTx0G.js +6 -0
  472. langflow/frontend/assets/cone-CZ631cjP.js +6 -0
  473. langflow/frontend/assets/construction-DpDSFi2C.js +6 -0
  474. langflow/frontend/assets/contact-Bf_js1wR.js +6 -0
  475. langflow/frontend/assets/contact-round-CbjK6rc4.js +6 -0
  476. langflow/frontend/assets/container-SHkUJELq.js +6 -0
  477. langflow/frontend/assets/contrast-BrqH_HsS.js +6 -0
  478. langflow/frontend/assets/cookie-7yhFStaP.js +6 -0
  479. langflow/frontend/assets/cooking-pot-CtXq_mXS.js +6 -0
  480. langflow/frontend/assets/copy-D33RCBtr.js +6 -0
  481. langflow/frontend/assets/copy-check-BHsM9R9p.js +6 -0
  482. langflow/frontend/assets/copy-minus-DzHvDhtg.js +6 -0
  483. langflow/frontend/assets/copy-plus-D9aWk5ZC.js +6 -0
  484. langflow/frontend/assets/copy-slash-VkGSZ_CE.js +6 -0
  485. langflow/frontend/assets/copy-x-C4i424Hw.js +6 -0
  486. langflow/frontend/assets/copyleft-CqaewALy.js +6 -0
  487. langflow/frontend/assets/copyright-Bu0x5oIe.js +6 -0
  488. langflow/frontend/assets/corner-down-left-D6PAN-4K.js +6 -0
  489. langflow/frontend/assets/corner-down-right-Bn8MOthV.js +6 -0
  490. langflow/frontend/assets/corner-left-down-D5RxfmoN.js +6 -0
  491. langflow/frontend/assets/corner-left-up-C8TixmVG.js +6 -0
  492. langflow/frontend/assets/corner-right-down-CtmEwD6C.js +6 -0
  493. langflow/frontend/assets/corner-right-up-DG-F1pH2.js +6 -0
  494. langflow/frontend/assets/corner-up-left-QznD74yA.js +6 -0
  495. langflow/frontend/assets/corner-up-right-Bhkr_6ta.js +6 -0
  496. langflow/frontend/assets/cpu-CW82VU4w.js +6 -0
  497. langflow/frontend/assets/creative-commons-Bh5sqgki.js +6 -0
  498. langflow/frontend/assets/credit-card-1pfgVrv3.js +6 -0
  499. langflow/frontend/assets/croissant-DpBBx0pw.js +6 -0
  500. langflow/frontend/assets/crop-X7W6m64J.js +6 -0
  501. langflow/frontend/assets/cross-D542UVw8.js +6 -0
  502. langflow/frontend/assets/crosshair-B6mNFuS-.js +6 -0
  503. langflow/frontend/assets/crown-D6_nEBly.js +6 -0
  504. langflow/frontend/assets/cuboid-CyvwAGks.js +6 -0
  505. langflow/frontend/assets/cup-soda-lE90KQWF.js +6 -0
  506. langflow/frontend/assets/currency-CvqLSG-s.js +6 -0
  507. langflow/frontend/assets/cylinder-Dan7kvg6.js +6 -0
  508. langflow/frontend/assets/dam-BpbkiwPc.js +6 -0
  509. langflow/frontend/assets/database-CZ11Soos.js +6 -0
  510. langflow/frontend/assets/database-backup-ueaXvg29.js +6 -0
  511. langflow/frontend/assets/database-zap-CLyrj98z.js +6 -0
  512. langflow/frontend/assets/decimals-arrow-left-C4FshaZA.js +6 -0
  513. langflow/frontend/assets/decimals-arrow-right-BYKeQJvg.js +6 -0
  514. langflow/frontend/assets/delete-DGp28GjS.js +6 -0
  515. langflow/frontend/assets/dessert-vafoRC_I.js +6 -0
  516. langflow/frontend/assets/diameter-CpWKi4bQ.js +6 -0
  517. langflow/frontend/assets/diamond-D4sYlxiq.js +6 -0
  518. langflow/frontend/assets/diamond-minus-Dc9_xvul.js +6 -0
  519. langflow/frontend/assets/diamond-percent-Bls-21yM.js +6 -0
  520. langflow/frontend/assets/diamond-plus-DUfp2PhN.js +6 -0
  521. langflow/frontend/assets/dice-1-B5g_tzYc.js +6 -0
  522. langflow/frontend/assets/dice-2-DbCHSxL8.js +6 -0
  523. langflow/frontend/assets/dice-3-Bjv-XMP3.js +6 -0
  524. langflow/frontend/assets/dice-4-ChbYiYkR.js +6 -0
  525. langflow/frontend/assets/dice-5-CUmwrcU2.js +6 -0
  526. langflow/frontend/assets/dice-6-2a_DEvNP.js +6 -0
  527. langflow/frontend/assets/dices-Bfp6xf1T.js +6 -0
  528. langflow/frontend/assets/diff-DWrr4PgL.js +6 -0
  529. langflow/frontend/assets/disc-2-BKIHWtvV.js +6 -0
  530. langflow/frontend/assets/disc-3-C-YNVgLt.js +6 -0
  531. langflow/frontend/assets/disc-DcpBQ1vZ.js +6 -0
  532. langflow/frontend/assets/disc-album-BHqF8E8z.js +6 -0
  533. langflow/frontend/assets/divide-BowweBYy.js +6 -0
  534. langflow/frontend/assets/dna-CKx2UX_q.js +6 -0
  535. langflow/frontend/assets/dna-off-6vz4JWoY.js +6 -0
  536. langflow/frontend/assets/dock-CSWNUNEN.js +6 -0
  537. langflow/frontend/assets/dog-Brgy9TeF.js +6 -0
  538. langflow/frontend/assets/dollar-sign-BvVnYnyE.js +6 -0
  539. langflow/frontend/assets/donut-yE1ohHN1.js +6 -0
  540. langflow/frontend/assets/door-closed-DbQTZK_Z.js +6 -0
  541. langflow/frontend/assets/door-open-kU4MiMrV.js +6 -0
  542. langflow/frontend/assets/dot-BoAAat-a.js +6 -0
  543. langflow/frontend/assets/download-spnr31G_.js +6 -0
  544. langflow/frontend/assets/drafting-compass-BVLRoE9p.js +6 -0
  545. langflow/frontend/assets/drama-DH0VK2y4.js +6 -0
  546. langflow/frontend/assets/dribbble-BsRD_dOV.js +6 -0
  547. langflow/frontend/assets/drill-BQ8s8Ovp.js +6 -0
  548. langflow/frontend/assets/droplet-DgVYu4iw.js +6 -0
  549. langflow/frontend/assets/droplet-off-CWfFq3Y4.js +6 -0
  550. langflow/frontend/assets/droplets-BImhG8YB.js +6 -0
  551. langflow/frontend/assets/drum-CUBUrT-P.js +6 -0
  552. langflow/frontend/assets/drumstick-BdzvGI3x.js +6 -0
  553. langflow/frontend/assets/dumbbell-uzNP-XjP.js +6 -0
  554. langflow/frontend/assets/ear-DG1WWYBD.js +6 -0
  555. langflow/frontend/assets/ear-off-CnLtouCs.js +6 -0
  556. langflow/frontend/assets/earth-BLY47zLG.js +6 -0
  557. langflow/frontend/assets/earth-lock-C_4WyhYm.js +6 -0
  558. langflow/frontend/assets/eclipse-DotUntyW.js +6 -0
  559. langflow/frontend/assets/egg-D0p6D8iJ.js +6 -0
  560. langflow/frontend/assets/egg-fried-D8ZYWDd8.js +6 -0
  561. langflow/frontend/assets/egg-off-COi0Zq6A.js +6 -0
  562. langflow/frontend/assets/ellipsis-BqKuKkUq.js +6 -0
  563. langflow/frontend/assets/ellipsis-vertical-DLAiRoTI.js +6 -0
  564. langflow/frontend/assets/equal-BPZTCCOR.js +6 -0
  565. langflow/frontend/assets/equal-approximately-Ci9wlW7H.js +6 -0
  566. langflow/frontend/assets/equal-not-BbjIRsV9.js +6 -0
  567. langflow/frontend/assets/eraser-kryVNVEd.js +6 -0
  568. langflow/frontend/assets/ethernet-port-DY0h8gUB.js +6 -0
  569. langflow/frontend/assets/euro-CcGvvYEu.js +6 -0
  570. langflow/frontend/assets/expand-BT1hO_Gd.js +6 -0
  571. langflow/frontend/assets/eye-0Uepj1qe.js +6 -0
  572. langflow/frontend/assets/eye-closed-DhVJCZQy.js +6 -0
  573. langflow/frontend/assets/eye-off-DMZQc0_N.js +6 -0
  574. langflow/frontend/assets/facebook-BYV_s-7j.js +6 -0
  575. langflow/frontend/assets/factory-HMK58m9C.js +6 -0
  576. langflow/frontend/assets/fan-MiojL-un.js +6 -0
  577. langflow/frontend/assets/fast-forward-CP1NpIFe.js +6 -0
  578. langflow/frontend/assets/feather-BSp2xn9F.js +6 -0
  579. langflow/frontend/assets/fence-CBJziCGR.js +6 -0
  580. langflow/frontend/assets/ferris-wheel-Dc4hXImA.js +6 -0
  581. langflow/frontend/assets/figma-D1WZZKxq.js +6 -0
  582. langflow/frontend/assets/file-BJeOmSAw.js +6 -0
  583. langflow/frontend/assets/file-archive-CYnlcCTN.js +6 -0
  584. langflow/frontend/assets/file-audio-2-CFgbi0zE.js +6 -0
  585. langflow/frontend/assets/file-audio-UXcSArn5.js +6 -0
  586. langflow/frontend/assets/file-axis-3d-BkpPUlaa.js +6 -0
  587. langflow/frontend/assets/file-badge-2-DxqhO2Ge.js +6 -0
  588. langflow/frontend/assets/file-badge-R64auIUU.js +6 -0
  589. langflow/frontend/assets/file-box-BHVs20bG.js +6 -0
  590. langflow/frontend/assets/file-chart-column-DSBEh916.js +6 -0
  591. langflow/frontend/assets/file-chart-column-increasing-BLEWUcgJ.js +6 -0
  592. langflow/frontend/assets/file-chart-line-CkAf2P_o.js +6 -0
  593. langflow/frontend/assets/file-chart-pie-C6JyaHLt.js +6 -0
  594. langflow/frontend/assets/file-check-2-Ep64Ldje.js +6 -0
  595. langflow/frontend/assets/file-check-CfwhdRf-.js +6 -0
  596. langflow/frontend/assets/file-clock-yuvRB4zR.js +6 -0
  597. langflow/frontend/assets/file-code-2-DJSRSqgI.js +6 -0
  598. langflow/frontend/assets/file-code-tTXJt3y7.js +6 -0
  599. langflow/frontend/assets/file-cog-C3Bke8nN.js +6 -0
  600. langflow/frontend/assets/file-diff-07-zDqLK.js +6 -0
  601. langflow/frontend/assets/file-digit-C-TZ6TMx.js +6 -0
  602. langflow/frontend/assets/file-down-C_21auWB.js +6 -0
  603. langflow/frontend/assets/file-heart-BUWO_Ubq.js +6 -0
  604. langflow/frontend/assets/file-image-DeGNhVbH.js +6 -0
  605. langflow/frontend/assets/file-input-DC648sVv.js +6 -0
  606. langflow/frontend/assets/file-json-2-BleUm6B-.js +6 -0
  607. langflow/frontend/assets/file-json-DvYkA26T.js +6 -0
  608. langflow/frontend/assets/file-key-2-Df3DueKg.js +6 -0
  609. langflow/frontend/assets/file-key-D25uIzEV.js +6 -0
  610. langflow/frontend/assets/file-lock-2-CRuvNTc_.js +6 -0
  611. langflow/frontend/assets/file-lock-CSpPgoDZ.js +6 -0
  612. langflow/frontend/assets/file-minus-2-DYnr-vtz.js +6 -0
  613. langflow/frontend/assets/file-minus-CwO2J7XK.js +6 -0
  614. langflow/frontend/assets/file-music-frXWNJoK.js +6 -0
  615. langflow/frontend/assets/file-output-BCvl7eUX.js +6 -0
  616. langflow/frontend/assets/file-pen-CAaJniG8.js +6 -0
  617. langflow/frontend/assets/file-pen-line-Cgv1i6mY.js +6 -0
  618. langflow/frontend/assets/file-plus-2-BSvGeJIg.js +6 -0
  619. langflow/frontend/assets/file-plus-Bh-AJgy4.js +6 -0
  620. langflow/frontend/assets/file-question-DEVapx4f.js +6 -0
  621. langflow/frontend/assets/file-scan-t-aTKHOe.js +6 -0
  622. langflow/frontend/assets/file-search-2-Bh2Lyxdg.js +6 -0
  623. langflow/frontend/assets/file-search-B2BT1IJF.js +6 -0
  624. langflow/frontend/assets/file-sliders-BDrWWLnj.js +6 -0
  625. langflow/frontend/assets/file-spreadsheet-CMHqeLFl.js +6 -0
  626. langflow/frontend/assets/file-stack-DzWV1JJQ.js +6 -0
  627. langflow/frontend/assets/file-symlink-m0SuHMbb.js +6 -0
  628. langflow/frontend/assets/file-terminal-RtBqsz8t.js +6 -0
  629. langflow/frontend/assets/file-text-DcnfhlJS.js +6 -0
  630. langflow/frontend/assets/file-type-2-HgN3usQi.js +6 -0
  631. langflow/frontend/assets/file-type-Wo4mXDEa.js +6 -0
  632. langflow/frontend/assets/file-up-Ah5Vlblk.js +6 -0
  633. langflow/frontend/assets/file-user-C10BV3-F.js +6 -0
  634. langflow/frontend/assets/file-video-2-D60PR2tb.js +6 -0
  635. langflow/frontend/assets/file-video-D1LP9ceq.js +6 -0
  636. langflow/frontend/assets/file-volume-2-DWd0pH87.js +6 -0
  637. langflow/frontend/assets/file-volume-Dx1qqTPj.js +6 -0
  638. langflow/frontend/assets/file-warning-CntAQ03q.js +6 -0
  639. langflow/frontend/assets/file-x-2-D7pJdGQ4.js +6 -0
  640. langflow/frontend/assets/file-x-w3PSwPaN.js +6 -0
  641. langflow/frontend/assets/files-Ba_FZh9m.js +6 -0
  642. langflow/frontend/assets/film-CSV5uKAX.js +6 -0
  643. langflow/frontend/assets/fingerprint-BIoRa0QM.js +6 -0
  644. langflow/frontend/assets/fire-extinguisher-9pJExz54.js +6 -0
  645. langflow/frontend/assets/fish-D2IHyGo1.js +6 -0
  646. langflow/frontend/assets/fish-off-B1AV5M6o.js +6 -0
  647. langflow/frontend/assets/fish-symbol-1FtOa4Ff.js +6 -0
  648. langflow/frontend/assets/flag-DeciN7ml.js +6 -0
  649. langflow/frontend/assets/flag-off-DUP9GpZR.js +6 -0
  650. langflow/frontend/assets/flag-triangle-left-BFwEeuS_.js +6 -0
  651. langflow/frontend/assets/flag-triangle-right-CI_SLj86.js +6 -0
  652. langflow/frontend/assets/flame-GFGSOHNO.js +6 -0
  653. langflow/frontend/assets/flame-kindling-D8mfrPga.js +6 -0
  654. langflow/frontend/assets/flashlight-lOh9FijK.js +6 -0
  655. langflow/frontend/assets/flashlight-off-Bsi5bvDr.js +6 -0
  656. langflow/frontend/assets/flask-conical-Da2dFJgy.js +6 -0
  657. langflow/frontend/assets/flask-conical-off-BmBZh8li.js +6 -0
  658. langflow/frontend/assets/flask-round-DCNbM1Xr.js +6 -0
  659. langflow/frontend/assets/flip-horizontal-2-DjIxLldP.js +6 -0
  660. langflow/frontend/assets/flip-horizontal-Y1hdy1M8.js +6 -0
  661. langflow/frontend/assets/flip-vertical-2-CUzfycnQ.js +6 -0
  662. langflow/frontend/assets/flip-vertical-D-fZiBdV.js +6 -0
  663. langflow/frontend/assets/flower-2-DpuYXaI0.js +6 -0
  664. langflow/frontend/assets/flower-D7VN2vRV.js +6 -0
  665. langflow/frontend/assets/focus-CgjGqIlO.js +6 -0
  666. langflow/frontend/assets/fold-horizontal-DHM5GPi5.js +6 -0
  667. langflow/frontend/assets/fold-vertical-C9gKvqOi.js +6 -0
  668. langflow/frontend/assets/folder-DHBzBNi6.js +6 -0
  669. langflow/frontend/assets/folder-archive-Bg0p1BGr.js +6 -0
  670. langflow/frontend/assets/folder-check-C_J-pqhC.js +6 -0
  671. langflow/frontend/assets/folder-clock-Bdt0bWYb.js +6 -0
  672. langflow/frontend/assets/folder-closed-CpG_goS_.js +6 -0
  673. langflow/frontend/assets/folder-code-BfrcjBiJ.js +6 -0
  674. langflow/frontend/assets/folder-cog-D0HSZlUk.js +6 -0
  675. langflow/frontend/assets/folder-dot-Bl6Z8yRd.js +6 -0
  676. langflow/frontend/assets/folder-down-Cd5yX2hR.js +6 -0
  677. langflow/frontend/assets/folder-git-2-DW-8izzy.js +6 -0
  678. langflow/frontend/assets/folder-git-Dl6cI4x0.js +6 -0
  679. langflow/frontend/assets/folder-heart-BcWNEM_h.js +6 -0
  680. langflow/frontend/assets/folder-input-D08-f3t3.js +6 -0
  681. langflow/frontend/assets/folder-kanban-nzQd-lfD.js +6 -0
  682. langflow/frontend/assets/folder-key-DpznQOiZ.js +6 -0
  683. langflow/frontend/assets/folder-lock-SUBi7sWw.js +6 -0
  684. langflow/frontend/assets/folder-minus-DTAhS5kW.js +6 -0
  685. langflow/frontend/assets/folder-open-P_5T1_df.js +6 -0
  686. langflow/frontend/assets/folder-open-dot-DLsuij9P.js +6 -0
  687. langflow/frontend/assets/folder-output-Hoz7C5Sg.js +6 -0
  688. langflow/frontend/assets/folder-pen-CEFhZuKm.js +6 -0
  689. langflow/frontend/assets/folder-plus-DYMoWZt-.js +6 -0
  690. langflow/frontend/assets/folder-root-BTXEc8rM.js +6 -0
  691. langflow/frontend/assets/folder-search-2-CI2Sxf-y.js +6 -0
  692. langflow/frontend/assets/folder-search-CF6bJDV6.js +6 -0
  693. langflow/frontend/assets/folder-symlink-Dc7hVPyd.js +6 -0
  694. langflow/frontend/assets/folder-sync-BPBUfGnX.js +6 -0
  695. langflow/frontend/assets/folder-tree-DY4Ftj6k.js +6 -0
  696. langflow/frontend/assets/folder-up-BE_eC_UH.js +6 -0
  697. langflow/frontend/assets/folder-x--YzsyTv2.js +6 -0
  698. langflow/frontend/assets/folders-DBj-mUxf.js +6 -0
  699. langflow/frontend/assets/footprints-B3LklTMW.js +6 -0
  700. langflow/frontend/assets/forklift-C5LPpWzy.js +6 -0
  701. langflow/frontend/assets/forward-C0afMWvu.js +6 -0
  702. langflow/frontend/assets/frame-CuPcpGgS.js +6 -0
  703. langflow/frontend/assets/framer-CbCQQsmt.js +6 -0
  704. langflow/frontend/assets/frown-DxEX23Hm.js +6 -0
  705. langflow/frontend/assets/fuel-D1xGHjwV.js +6 -0
  706. langflow/frontend/assets/fullscreen-BIGq91ZI.js +6 -0
  707. langflow/frontend/assets/funnel-C-NQV0mL.js +6 -0
  708. langflow/frontend/assets/funnel-plus-D_vUHLvt.js +6 -0
  709. langflow/frontend/assets/funnel-x-DGu21bT2.js +6 -0
  710. langflow/frontend/assets/gallery-horizontal-BBiE0_x0.js +6 -0
  711. langflow/frontend/assets/gallery-horizontal-end-CnMgJ5DS.js +6 -0
  712. langflow/frontend/assets/gallery-thumbnails-CtOySXe1.js +6 -0
  713. langflow/frontend/assets/gallery-vertical-CV_I5Zfu.js +6 -0
  714. langflow/frontend/assets/gallery-vertical-end-4-jdBsGn.js +6 -0
  715. langflow/frontend/assets/gamepad-2-BvFzOQpx.js +6 -0
  716. langflow/frontend/assets/gamepad-DJe6Thxy.js +6 -0
  717. langflow/frontend/assets/gauge-DEzKFfM7.js +6 -0
  718. langflow/frontend/assets/gavel-CsTDuJw1.js +6 -0
  719. langflow/frontend/assets/gem-Bypt3rj7.js +6 -0
  720. langflow/frontend/assets/ghost-CG8V_Wik.js +6 -0
  721. langflow/frontend/assets/gift-D3Bw3K_w.js +6 -0
  722. langflow/frontend/assets/git-branch-DQvQg83e.js +6 -0
  723. langflow/frontend/assets/git-branch-plus-DnKO-rdL.js +6 -0
  724. langflow/frontend/assets/git-commit-horizontal-BSHVqLrs.js +6 -0
  725. langflow/frontend/assets/git-commit-vertical-CreWnTSn.js +6 -0
  726. langflow/frontend/assets/git-compare-B0PwMWpM.js +6 -0
  727. langflow/frontend/assets/git-compare-arrows-VgtsGNFF.js +6 -0
  728. langflow/frontend/assets/git-fork-DJZ2qmdu.js +6 -0
  729. langflow/frontend/assets/git-graph-D8PXH9s_.js +6 -0
  730. langflow/frontend/assets/git-merge-By9Qd2wm.js +6 -0
  731. langflow/frontend/assets/git-pull-request-C88DIeQ6.js +6 -0
  732. langflow/frontend/assets/git-pull-request-arrow-DG1SpKMq.js +6 -0
  733. langflow/frontend/assets/git-pull-request-closed-T8i53LyB.js +6 -0
  734. langflow/frontend/assets/git-pull-request-create-Vb2ZcmTQ.js +6 -0
  735. langflow/frontend/assets/git-pull-request-create-arrow-SiyvlJvG.js +6 -0
  736. langflow/frontend/assets/git-pull-request-draft-DUHB6Xxe.js +6 -0
  737. langflow/frontend/assets/github-C8ujlSn8.js +6 -0
  738. langflow/frontend/assets/gitlab-DY2Q3s_L.js +6 -0
  739. langflow/frontend/assets/glass-water-DshGksYS.js +6 -0
  740. langflow/frontend/assets/glasses-B8fR6VRZ.js +6 -0
  741. langflow/frontend/assets/globe-BOqIf5Wv.js +6 -0
  742. langflow/frontend/assets/globe-lock-CzUC5IEW.js +6 -0
  743. langflow/frontend/assets/goal-Vg3Wc1hY.js +6 -0
  744. langflow/frontend/assets/grab-Dxi_6jkO.js +6 -0
  745. langflow/frontend/assets/graduation-cap-BwucrBc9.js +6 -0
  746. langflow/frontend/assets/grape-OktxCY9q.js +6 -0
  747. langflow/frontend/assets/grid-2x2-CZ4LTCFd.js +6 -0
  748. langflow/frontend/assets/grid-2x2-check-CMnb1a9J.js +6 -0
  749. langflow/frontend/assets/grid-2x2-plus-BmbiTZxi.js +6 -0
  750. langflow/frontend/assets/grid-2x2-x-N-uF1q56.js +6 -0
  751. langflow/frontend/assets/grid-3x3-DIA7EVIA.js +6 -0
  752. langflow/frontend/assets/grip-B0YsYJKI.js +6 -0
  753. langflow/frontend/assets/grip-horizontal-CrMHt-nA.js +6 -0
  754. langflow/frontend/assets/grip-vertical-CzW6eTXD.js +6 -0
  755. langflow/frontend/assets/group-FSnIJ4jE.js +6 -0
  756. langflow/frontend/assets/guitar-CGwJlYgR.js +6 -0
  757. langflow/frontend/assets/ham-2r9Ls8Vw.js +6 -0
  758. langflow/frontend/assets/hammer-Dui_gaQL.js +6 -0
  759. langflow/frontend/assets/hand-BVXVxL5m.js +6 -0
  760. langflow/frontend/assets/hand-coins-B1hPR1t0.js +6 -0
  761. langflow/frontend/assets/hand-heart-CFSUyE4-.js +6 -0
  762. langflow/frontend/assets/hand-helping-BC9Nsi9A.js +6 -0
  763. langflow/frontend/assets/hand-metal-DlApbOIj.js +6 -0
  764. langflow/frontend/assets/hand-platter-B5Fh8FyW.js +6 -0
  765. langflow/frontend/assets/handshake-B7QevLMo.js +6 -0
  766. langflow/frontend/assets/hard-drive-P7jt4ry6.js +6 -0
  767. langflow/frontend/assets/hard-drive-download-CGLjKx8_.js +6 -0
  768. langflow/frontend/assets/hard-drive-upload-BVR4a8dK.js +6 -0
  769. langflow/frontend/assets/hard-hat-BVHmLBWZ.js +6 -0
  770. langflow/frontend/assets/hash-Cy_nIGAs.js +6 -0
  771. langflow/frontend/assets/haze-C0IHpJQl.js +6 -0
  772. langflow/frontend/assets/hdmi-port-DQdigNCk.js +6 -0
  773. langflow/frontend/assets/heading-1-y80kG5je.js +6 -0
  774. langflow/frontend/assets/heading-2-DheBF6n8.js +6 -0
  775. langflow/frontend/assets/heading-3-jkgnS7dK.js +6 -0
  776. langflow/frontend/assets/heading-4-BpvVn18-.js +6 -0
  777. langflow/frontend/assets/heading-5-DH3G5xNX.js +6 -0
  778. langflow/frontend/assets/heading-6-D2HSUEY3.js +6 -0
  779. langflow/frontend/assets/heading-Bp2VrhJ9.js +6 -0
  780. langflow/frontend/assets/headphone-off-CpbOzIOQ.js +6 -0
  781. langflow/frontend/assets/headphones-CNZ6eFL8.js +6 -0
  782. langflow/frontend/assets/headset-CoIAhYny.js +6 -0
  783. langflow/frontend/assets/heart-5gd2ViSB.js +6 -0
  784. langflow/frontend/assets/heart-crack-aYzz14B5.js +6 -0
  785. langflow/frontend/assets/heart-handshake-BMKYy31S.js +6 -0
  786. langflow/frontend/assets/heart-minus-AklI9-MR.js +6 -0
  787. langflow/frontend/assets/heart-off-Cf0U8ha5.js +6 -0
  788. langflow/frontend/assets/heart-plus-BKwZH_J0.js +6 -0
  789. langflow/frontend/assets/heart-pulse-_7ddh519.js +6 -0
  790. langflow/frontend/assets/heater-Diw3EYfF.js +6 -0
  791. langflow/frontend/assets/hexagon-BTBf8idD.js +6 -0
  792. langflow/frontend/assets/highlighter-B0YDF2wa.js +6 -0
  793. langflow/frontend/assets/history-BDIXPh9_.js +6 -0
  794. langflow/frontend/assets/hop-CGA6q8Vm.js +6 -0
  795. langflow/frontend/assets/hop-off-CspGh94X.js +6 -0
  796. langflow/frontend/assets/hospital-CkxwUPZX.js +6 -0
  797. langflow/frontend/assets/hotel-DiRHLl0N.js +6 -0
  798. langflow/frontend/assets/hourglass-7QgnnBxF.js +6 -0
  799. langflow/frontend/assets/house-PmIvwCGE.js +6 -0
  800. langflow/frontend/assets/house-plug-D6-CvbzS.js +6 -0
  801. langflow/frontend/assets/house-plus-fnF0Q1S5.js +6 -0
  802. langflow/frontend/assets/house-wifi-D5DbD8CC.js +6 -0
  803. langflow/frontend/assets/ice-cream-bowl-DG7h7X7a.js +6 -0
  804. langflow/frontend/assets/ice-cream-cone-jr_R23US.js +6 -0
  805. langflow/frontend/assets/id-card-Kj7Yhkme.js +6 -0
  806. langflow/frontend/assets/image-CT8Z1KiI.js +6 -0
  807. langflow/frontend/assets/image-down-BXlsHkdJ.js +6 -0
  808. langflow/frontend/assets/image-minus-Dx3wFWFv.js +6 -0
  809. langflow/frontend/assets/image-off-0xSbW3dO.js +6 -0
  810. langflow/frontend/assets/image-play-INW5qgbJ.js +6 -0
  811. langflow/frontend/assets/image-plus-B9upvJbV.js +6 -0
  812. langflow/frontend/assets/image-up-Wgvg5K6c.js +6 -0
  813. langflow/frontend/assets/image-upscale-eBe3IrfA.js +6 -0
  814. langflow/frontend/assets/images-CKmX8_ZE.js +6 -0
  815. langflow/frontend/assets/import-DiSVaG7N.js +6 -0
  816. langflow/frontend/assets/inbox-CdOX8Icw.js +6 -0
  817. langflow/frontend/assets/indent-decrease-C7QHjBRg.js +6 -0
  818. langflow/frontend/assets/indent-increase-Ce0og9UZ.js +6 -0
  819. langflow/frontend/assets/index-2QKfOwQz.js +1 -0
  820. langflow/frontend/assets/index-2uQUhMEj.js +1 -0
  821. langflow/frontend/assets/index-4Mlswa0P.js +1 -0
  822. langflow/frontend/assets/index-B-KzTSjm.js +1 -0
  823. langflow/frontend/assets/index-B0rTFfBY.js +1 -0
  824. langflow/frontend/assets/index-B3BImWpa.js +1 -0
  825. langflow/frontend/assets/index-B3MGOMPg.js +1 -0
  826. langflow/frontend/assets/index-B41GnrGb.js +21 -0
  827. langflow/frontend/assets/index-B61Iucc2.js +1 -0
  828. langflow/frontend/assets/index-B7-I86_o.js +1 -0
  829. langflow/frontend/assets/index-B9tZ1GT6.js +1 -0
  830. langflow/frontend/assets/index-B9ywHEr5.js +381 -0
  831. langflow/frontend/assets/index-BA5Th8o9.js +399 -0
  832. langflow/frontend/assets/index-BAtp7_bt.js +1 -0
  833. langflow/frontend/assets/index-BBsMQR56.js +20 -0
  834. langflow/frontend/assets/index-BEa6tC2W.js +7 -0
  835. langflow/frontend/assets/index-BFItMCuU.js +1 -0
  836. langflow/frontend/assets/index-BFzVY7Nm.js +1 -0
  837. langflow/frontend/assets/index-BIZ_KOfj.js +1 -0
  838. langflow/frontend/assets/index-BJ_urhma.js +1 -0
  839. langflow/frontend/assets/index-BKJwmaxy.js +1 -0
  840. langflow/frontend/assets/index-BMzmXi7X.js +1 -0
  841. langflow/frontend/assets/index-BNh7b_1z.js +1 -0
  842. langflow/frontend/assets/index-BQETpRDP.js +1 -0
  843. langflow/frontend/assets/index-BQU253FX.js +1 -0
  844. langflow/frontend/assets/index-BQm6cH0D.js +1 -0
  845. langflow/frontend/assets/index-BRL6AvWi.js +1 -0
  846. langflow/frontend/assets/index-BRa3jhDA.js +1 -0
  847. langflow/frontend/assets/index-BTKi0LQE.js +1 -0
  848. langflow/frontend/assets/index-BTl_euDg.js +1 -0
  849. langflow/frontend/assets/index-BU6Vg5LE.js +1 -0
  850. langflow/frontend/assets/index-BUY4svgp.js +1 -0
  851. langflow/frontend/assets/index-BVeuK3hL.js +1 -0
  852. langflow/frontend/assets/index-BW6B6HXq.js +1 -0
  853. langflow/frontend/assets/index-BW8s5aZH.js +1 -0
  854. langflow/frontend/assets/index-BXM7wXF_.js +185 -0
  855. langflow/frontend/assets/index-BXs3aDj7.js +1 -0
  856. langflow/frontend/assets/index-B__vQOiE.js +1 -0
  857. langflow/frontend/assets/index-B_gQg1Ia.js +1 -0
  858. langflow/frontend/assets/index-BhgSwFHy.js +1 -0
  859. langflow/frontend/assets/index-BiHOs6w-.js +1 -0
  860. langflow/frontend/assets/index-BjNu8Slh.js +1 -0
  861. langflow/frontend/assets/index-BjVxHGPh.js +1 -0
  862. langflow/frontend/assets/index-BkIxy5hm.js +1 -0
  863. langflow/frontend/assets/index-Bmp8MMKQ.js +1 -0
  864. langflow/frontend/assets/index-BolQxU0J.js +1 -0
  865. langflow/frontend/assets/index-BrukvKtm.js +1 -0
  866. langflow/frontend/assets/index-Buc1fNZf.js +1 -0
  867. langflow/frontend/assets/index-BwLqtGH-.js +1 -0
  868. langflow/frontend/assets/index-BwOvHZia.js +1 -0
  869. langflow/frontend/assets/index-By-Q8tRv.js +1 -0
  870. langflow/frontend/assets/index-BzFZ-RLv.js +1 -0
  871. langflow/frontend/assets/index-BzUZ7LvQ.js +767 -0
  872. langflow/frontend/assets/index-C-LO-qz3.js +1 -0
  873. langflow/frontend/assets/index-C-pqZWxL.js +1 -0
  874. langflow/frontend/assets/index-C28aHVop.js +1 -0
  875. langflow/frontend/assets/index-C29JhKMO.js +1 -0
  876. langflow/frontend/assets/index-C35CcHFW.js +1 -0
  877. langflow/frontend/assets/index-C47EGVaO.js +1 -0
  878. langflow/frontend/assets/index-C5MlvNqt.js +1 -0
  879. langflow/frontend/assets/index-CBkOCjun.js +205 -0
  880. langflow/frontend/assets/index-CD0y3pmC.js +1 -0
  881. langflow/frontend/assets/index-CF5bkPY1.js +1 -0
  882. langflow/frontend/assets/index-CK8XfBh9.js +1 -0
  883. langflow/frontend/assets/index-CKNlB8-x.js +1 -0
  884. langflow/frontend/assets/index-CMoadJdI.js +1 -0
  885. langflow/frontend/assets/index-CNktQBsO.js +1 -0
  886. langflow/frontend/assets/index-CR5len4K.css +1 -0
  887. langflow/frontend/assets/index-CSKTxg0h.js +1 -0
  888. langflow/frontend/assets/index-CVWSTnX7.js +1 -0
  889. langflow/frontend/assets/index-CXgT5tuh.js +1 -0
  890. langflow/frontend/assets/index-CXi-kvMN.js +1 -0
  891. langflow/frontend/assets/index-CYWr1RTE.js +1 -0
  892. langflow/frontend/assets/index-CYsVGGsn.js +1 -0
  893. langflow/frontend/assets/index-C_jiTpRt.js +1 -0
  894. langflow/frontend/assets/index-CajLPh7J.js +1 -0
  895. langflow/frontend/assets/index-Cbswwof2.js +1 -0
  896. langflow/frontend/assets/index-CdGEh5Dd.js +1 -0
  897. langflow/frontend/assets/index-Cg8JGhuO.js +1 -0
  898. langflow/frontend/assets/index-Cgt3Y-Xc.js +1 -0
  899. langflow/frontend/assets/index-ChjP_lcd.js +1 -0
  900. langflow/frontend/assets/index-CjCZfoPa.js +1 -0
  901. langflow/frontend/assets/index-CkP6dNdd.js +1 -0
  902. langflow/frontend/assets/index-CksU1mCy.js +1 -0
  903. langflow/frontend/assets/index-CldV8cHX.js +1 -0
  904. langflow/frontend/assets/index-CmnAXW2M.js +1 -0
  905. langflow/frontend/assets/index-CnTe-ib8.js +1 -0
  906. langflow/frontend/assets/index-CppXkyAI.js +1 -0
  907. langflow/frontend/assets/index-CtlV5QSP.js +1 -0
  908. langflow/frontend/assets/index-Ctz536xU.js +1 -0
  909. langflow/frontend/assets/index-CumvaFGa.js +1 -0
  910. langflow/frontend/assets/index-CwHrfmT4.js +1 -0
  911. langflow/frontend/assets/index-CxThPLLM.js +1 -0
  912. langflow/frontend/assets/index-CygHHaG2.js +1 -0
  913. langflow/frontend/assets/index-D-Xdt1WZ.js +1 -0
  914. langflow/frontend/assets/index-D0rileO3.js +127 -0
  915. langflow/frontend/assets/index-D13KZztq.js +1 -0
  916. langflow/frontend/assets/index-D37V2bzg.js +1 -0
  917. langflow/frontend/assets/index-D3LYZj5R.js +1 -0
  918. langflow/frontend/assets/index-D3PL-v55.js +1 -0
  919. langflow/frontend/assets/index-D3k8ERHA.js +1 -0
  920. langflow/frontend/assets/index-D3xD_Vi3.js +1 -0
  921. langflow/frontend/assets/index-D4KStq-y.js +1 -0
  922. langflow/frontend/assets/index-D6IWUtCW.js +1 -0
  923. langflow/frontend/assets/index-D9EYpYAn.js +1 -0
  924. langflow/frontend/assets/index-D9pRkBVQ.js +1 -0
  925. langflow/frontend/assets/index-DBYJSBIJ.js +108 -0
  926. langflow/frontend/assets/index-DCBcV8DO.js +1 -0
  927. langflow/frontend/assets/index-DGMmz1qB.js +1 -0
  928. langflow/frontend/assets/index-DIIpP9BC.js +1 -0
  929. langflow/frontend/assets/index-DK0SpiSw.js +1 -0
  930. langflow/frontend/assets/index-DKiew9tJ.js +1 -0
  931. langflow/frontend/assets/index-DLiLtnQb.js +1 -0
  932. langflow/frontend/assets/index-DLsjc7AJ.js +1 -0
  933. langflow/frontend/assets/index-DMo7t1c2.js +1 -0
  934. langflow/frontend/assets/index-DNnbYSjo.js +1 -0
  935. langflow/frontend/assets/index-DPXTlNhX.js +1 -0
  936. langflow/frontend/assets/index-DPwI8ASU.js +1 -0
  937. langflow/frontend/assets/index-DR86Lsio.js +1 -0
  938. langflow/frontend/assets/index-DRGpD-Cf.js +1 -0
  939. langflow/frontend/assets/index-DTjOvZoy.js +1 -0
  940. langflow/frontend/assets/index-DUIyyegl.js +1 -0
  941. langflow/frontend/assets/index-DVTTJ573.js +1 -0
  942. langflow/frontend/assets/index-DWD-qFGN.js +1 -0
  943. langflow/frontend/assets/index-DXC9SGLO.js +1 -0
  944. langflow/frontend/assets/index-DXGrBtIm.js +2 -0
  945. langflow/frontend/assets/index-DcthS0OS.js +1 -0
  946. langflow/frontend/assets/index-DeO1TmoJ.js +1 -0
  947. langflow/frontend/assets/index-DfdXqTkC.js +1 -0
  948. langflow/frontend/assets/index-DgEsHHbn.js +1 -0
  949. langflow/frontend/assets/index-DiPdSAb-.js +1 -0
  950. langflow/frontend/assets/index-Dj1_1AVu.js +1 -0
  951. langflow/frontend/assets/index-DjX3Rlg0.js +1 -0
  952. langflow/frontend/assets/index-Dp665wgU.js +1 -0
  953. langflow/frontend/assets/index-DpUVtJBm.js +7321 -0
  954. langflow/frontend/assets/index-DqykhdBR.js +1 -0
  955. langflow/frontend/assets/index-DrCxi3rC.js +1 -0
  956. langflow/frontend/assets/index-DrVyWfLb.js +1 -0
  957. langflow/frontend/assets/index-Ds909mc5.js +1 -0
  958. langflow/frontend/assets/index-DtssSJxD.js +1 -0
  959. langflow/frontend/assets/index-Dunq7Fbc.js +1 -0
  960. langflow/frontend/assets/index-Dv5PD2q_.js +1 -0
  961. langflow/frontend/assets/index-DvbGYJtn.js +1 -0
  962. langflow/frontend/assets/index-Dxa1dBKG.js +1 -0
  963. langflow/frontend/assets/index-DxlRpmOX.js +13 -0
  964. langflow/frontend/assets/index-DyF-bhai.js +1 -0
  965. langflow/frontend/assets/index-DywEJqhX.js +1 -0
  966. langflow/frontend/assets/index-EG_OxGv1.js +1 -0
  967. langflow/frontend/assets/index-EzafEE3l.js +1 -0
  968. langflow/frontend/assets/index-F3rYC31i.js +1 -0
  969. langflow/frontend/assets/index-FSWmLCr-.js +1 -0
  970. langflow/frontend/assets/index-HTtZBzMC.js +1 -0
  971. langflow/frontend/assets/index-In_88aci.js +1 -0
  972. langflow/frontend/assets/index-J48O83cO.js +1 -0
  973. langflow/frontend/assets/index-JHNbfi9f.js +1 -0
  974. langflow/frontend/assets/index-JRpZxXX0.js +1 -0
  975. langflow/frontend/assets/index-Ku1RDlBy.js +1 -0
  976. langflow/frontend/assets/index-LJXUrkrg.js +1 -0
  977. langflow/frontend/assets/index-LfoCLlQg.js +1 -0
  978. langflow/frontend/assets/index-MUTJNp7V.js +1 -0
  979. langflow/frontend/assets/index-OD2aObmN.js +1 -0
  980. langflow/frontend/assets/index-Ocb9xE6f.js +1 -0
  981. langflow/frontend/assets/index-OveD7Elj.js +1 -0
  982. langflow/frontend/assets/index-Q2ERMfmI.js +1 -0
  983. langflow/frontend/assets/index-U8072tZG.js +1 -0
  984. langflow/frontend/assets/index-UYJ_RoEv.js +1 -0
  985. langflow/frontend/assets/index-VQoziAj6.js +1 -0
  986. langflow/frontend/assets/index-XGbXMbq1.js +281 -0
  987. langflow/frontend/assets/index-_LYoMZUZ.js +1 -0
  988. langflow/frontend/assets/index-_RoBlfFQ.js +1 -0
  989. langflow/frontend/assets/index-anR8pASH.js +1 -0
  990. langflow/frontend/assets/index-e_gCJGBV.js +1 -0
  991. langflow/frontend/assets/index-el6qZ4-I.js +1 -0
  992. langflow/frontend/assets/index-exua16zz.js +1 -0
  993. langflow/frontend/assets/index-exxjib9E.js +1 -0
  994. langflow/frontend/assets/index-jJhmhzvv.js +1 -0
  995. langflow/frontend/assets/index-kgyZ5iib.js +1 -0
  996. langflow/frontend/assets/index-mObAeoAH.js +1 -0
  997. langflow/frontend/assets/index-nAPqAw8J.js +1 -0
  998. langflow/frontend/assets/index-pkt4K6Im.js +1 -0
  999. langflow/frontend/assets/index-sjbu-dD7.js +1 -0
  1000. langflow/frontend/assets/index-t9AMFJoS.js +1 -0
  1001. langflow/frontend/assets/index-ukXwm0mA.js +1 -0
  1002. langflow/frontend/assets/index-wID9VtBj.js +495 -0
  1003. langflow/frontend/assets/indian-rupee-dfWATytK.js +6 -0
  1004. langflow/frontend/assets/infinity-CjUe5ivd.js +6 -0
  1005. langflow/frontend/assets/info-B_LE7L7E.js +6 -0
  1006. langflow/frontend/assets/inspection-panel-ZKvlddDX.js +6 -0
  1007. langflow/frontend/assets/instagram-BsiiTwbe.js +6 -0
  1008. langflow/frontend/assets/italic-DuNznHfD.js +6 -0
  1009. langflow/frontend/assets/iteration-ccw-D_X6Ncpd.js +6 -0
  1010. langflow/frontend/assets/iteration-cw-CtI6sO4s.js +6 -0
  1011. langflow/frontend/assets/japanese-yen-CpXpceuO.js +6 -0
  1012. langflow/frontend/assets/joystick-C2Ky6Mbv.js +6 -0
  1013. langflow/frontend/assets/kanban-C9Ycd6s4.js +6 -0
  1014. langflow/frontend/assets/key-DRVIdukA.js +6 -0
  1015. langflow/frontend/assets/key-round-DNOaaSPy.js +6 -0
  1016. langflow/frontend/assets/key-square-DwMHFAtk.js +6 -0
  1017. langflow/frontend/assets/keyboard-C6CFUeHB.js +6 -0
  1018. langflow/frontend/assets/keyboard-music-CKIVnkdm.js +6 -0
  1019. langflow/frontend/assets/keyboard-off-C7O7DrK0.js +6 -0
  1020. langflow/frontend/assets/lamp-B5kXYX3W.js +6 -0
  1021. langflow/frontend/assets/lamp-ceiling-Bc2MBOMS.js +6 -0
  1022. langflow/frontend/assets/lamp-desk-Cj4cV5p0.js +6 -0
  1023. langflow/frontend/assets/lamp-floor-BmWaN3gA.js +6 -0
  1024. langflow/frontend/assets/lamp-wall-down-DptQKLOl.js +6 -0
  1025. langflow/frontend/assets/lamp-wall-up-D--Xk8Uc.js +6 -0
  1026. langflow/frontend/assets/land-plot-BbZVsEO6.js +6 -0
  1027. langflow/frontend/assets/landmark-CcoCKSRy.js +6 -0
  1028. langflow/frontend/assets/languages-DJmiOypY.js +6 -0
  1029. langflow/frontend/assets/laptop-BH2ES5zs.js +6 -0
  1030. langflow/frontend/assets/laptop-minimal-BViwcE0p.js +6 -0
  1031. langflow/frontend/assets/laptop-minimal-check-BGIW2iZy.js +6 -0
  1032. langflow/frontend/assets/lasso-BmP9amC_.js +6 -0
  1033. langflow/frontend/assets/lasso-select-Be4Nr3Hx.js +6 -0
  1034. langflow/frontend/assets/laugh-C_Mx1EnJ.js +6 -0
  1035. langflow/frontend/assets/layers-2-CQ1eeSl_.js +6 -0
  1036. langflow/frontend/assets/layers-Bpl575qt.js +6 -0
  1037. langflow/frontend/assets/layout-dashboard-DzHGzN63.js +6 -0
  1038. langflow/frontend/assets/layout-grid-BJ0cVgDn.js +6 -0
  1039. langflow/frontend/assets/layout-list-2TpTYkoP.js +6 -0
  1040. langflow/frontend/assets/layout-panel-left-NBHLcbEc.js +6 -0
  1041. langflow/frontend/assets/layout-panel-top-C15hIwEQ.js +6 -0
  1042. langflow/frontend/assets/layout-template-C_2m978f.js +6 -0
  1043. langflow/frontend/assets/lazyIconImports-C1Cwzm74.js +2 -0
  1044. langflow/frontend/assets/leaf-C7I-gNqN.js +6 -0
  1045. langflow/frontend/assets/leafy-green-DxfIltJY.js +6 -0
  1046. langflow/frontend/assets/lectern-BWPxyWG5.js +6 -0
  1047. langflow/frontend/assets/letter-text-CojX37RF.js +6 -0
  1048. langflow/frontend/assets/library-_tOxFRdG.js +6 -0
  1049. langflow/frontend/assets/library-big-V_be0egg.js +6 -0
  1050. langflow/frontend/assets/life-buoy-SLaOKPui.js +6 -0
  1051. langflow/frontend/assets/ligature-DI3N5Sgh.js +6 -0
  1052. langflow/frontend/assets/lightbulb-BJ-u5yNj.js +6 -0
  1053. langflow/frontend/assets/lightbulb-off-CYZZK-Ca.js +6 -0
  1054. langflow/frontend/assets/link-2-C2f9vuOw.js +6 -0
  1055. langflow/frontend/assets/link-2-off-Cznc1x59.js +6 -0
  1056. langflow/frontend/assets/link-D8ffI3Bx.js +6 -0
  1057. langflow/frontend/assets/linkedin-Da0zZOYR.js +6 -0
  1058. langflow/frontend/assets/list-Dbxyd6FK.js +6 -0
  1059. langflow/frontend/assets/list-check-BfuWLRhW.js +6 -0
  1060. langflow/frontend/assets/list-checks-5qGsxHLJ.js +6 -0
  1061. langflow/frontend/assets/list-collapse-CtnPbel8.js +6 -0
  1062. langflow/frontend/assets/list-end-DUboME14.js +6 -0
  1063. langflow/frontend/assets/list-filter-CmoSv9ih.js +6 -0
  1064. langflow/frontend/assets/list-filter-plus-DH53x-KE.js +6 -0
  1065. langflow/frontend/assets/list-minus-rsN5dKeL.js +6 -0
  1066. langflow/frontend/assets/list-music-y6LRVp3R.js +6 -0
  1067. langflow/frontend/assets/list-ordered-CFYedrtq.js +6 -0
  1068. langflow/frontend/assets/list-plus-C1kZwFsM.js +6 -0
  1069. langflow/frontend/assets/list-restart-DH7cBD12.js +6 -0
  1070. langflow/frontend/assets/list-start-CjF0LNBk.js +6 -0
  1071. langflow/frontend/assets/list-todo-D6S7Eq2U.js +6 -0
  1072. langflow/frontend/assets/list-tree-BV3Jr4p1.js +6 -0
  1073. langflow/frontend/assets/list-video-DQuDt4_H.js +6 -0
  1074. langflow/frontend/assets/list-x-SyN4p91y.js +6 -0
  1075. langflow/frontend/assets/loader-CW6ghXpM.js +6 -0
  1076. langflow/frontend/assets/loader-circle-BIdiuIo8.js +6 -0
  1077. langflow/frontend/assets/loader-pinwheel-DN59gqDR.js +6 -0
  1078. langflow/frontend/assets/locate-B1rV_Eud.js +6 -0
  1079. langflow/frontend/assets/locate-fixed-mm8d2I_1.js +6 -0
  1080. langflow/frontend/assets/locate-off-DuwOZuVD.js +6 -0
  1081. langflow/frontend/assets/location-edit-BVWsMtc0.js +6 -0
  1082. langflow/frontend/assets/lock-B_mVf9AO.js +6 -0
  1083. langflow/frontend/assets/lock-keyhole-CZBU_htP.js +6 -0
  1084. langflow/frontend/assets/lock-keyhole-open-BmeFZtQo.js +6 -0
  1085. langflow/frontend/assets/lock-open-B9vea4fd.js +6 -0
  1086. langflow/frontend/assets/log-in-Dp5MKXJ6.js +6 -0
  1087. langflow/frontend/assets/log-out-CnwhIFCV.js +6 -0
  1088. langflow/frontend/assets/logs-CutF0a3A.js +6 -0
  1089. langflow/frontend/assets/lollipop-CKVurF-h.js +6 -0
  1090. langflow/frontend/assets/luggage-SGX9v5BA.js +6 -0
  1091. langflow/frontend/assets/magnet-k1e_jfjF.js +6 -0
  1092. langflow/frontend/assets/mail-CpHB9s87.js +6 -0
  1093. langflow/frontend/assets/mail-check-BGq22NGF.js +6 -0
  1094. langflow/frontend/assets/mail-minus-RCkfM2oU.js +6 -0
  1095. langflow/frontend/assets/mail-open-wYro5Hao.js +6 -0
  1096. langflow/frontend/assets/mail-plus-BlMpIq4Y.js +6 -0
  1097. langflow/frontend/assets/mail-question-DARRLllg.js +6 -0
  1098. langflow/frontend/assets/mail-search-BHPgf9Sg.js +6 -0
  1099. langflow/frontend/assets/mail-warning-B8ppePDz.js +6 -0
  1100. langflow/frontend/assets/mail-x-CaFLEt3S.js +6 -0
  1101. langflow/frontend/assets/mailbox-BvqRfE85.js +6 -0
  1102. langflow/frontend/assets/mails-D0K7EC5r.js +6 -0
  1103. langflow/frontend/assets/map-BWe2j5uV.js +6 -0
  1104. langflow/frontend/assets/map-pin-BIIQp1ny.js +6 -0
  1105. langflow/frontend/assets/map-pin-check-DVigOmJy.js +6 -0
  1106. langflow/frontend/assets/map-pin-check-inside-DAW-jmer.js +6 -0
  1107. langflow/frontend/assets/map-pin-house-BjJGaZ_W.js +6 -0
  1108. langflow/frontend/assets/map-pin-minus-inside-NU3kjUaq.js +6 -0
  1109. langflow/frontend/assets/map-pin-minus-qSJvtAyu.js +6 -0
  1110. langflow/frontend/assets/map-pin-off-D_XWqwUL.js +6 -0
  1111. langflow/frontend/assets/map-pin-plus-BvtSdwiT.js +6 -0
  1112. langflow/frontend/assets/map-pin-plus-inside-B8N0JWVa.js +6 -0
  1113. langflow/frontend/assets/map-pin-x-CzkkzM8C.js +6 -0
  1114. langflow/frontend/assets/map-pin-x-inside-Ch3mMXj3.js +6 -0
  1115. langflow/frontend/assets/map-pinned-BFY8xjWv.js +6 -0
  1116. langflow/frontend/assets/map-plus-C7VchZnk.js +6 -0
  1117. langflow/frontend/assets/mars-CeY3O5YK.js +6 -0
  1118. langflow/frontend/assets/mars-stroke-HXdX2iNQ.js +6 -0
  1119. langflow/frontend/assets/martini-Dpn_2_XE.js +6 -0
  1120. langflow/frontend/assets/maximize-2-CsbNYzxf.js +6 -0
  1121. langflow/frontend/assets/maximize-D87I_lS3.js +6 -0
  1122. langflow/frontend/assets/medal-C-rwKc2p.js +6 -0
  1123. langflow/frontend/assets/megaphone-BmitnmNV.js +6 -0
  1124. langflow/frontend/assets/megaphone-off-Dp38EeVm.js +6 -0
  1125. langflow/frontend/assets/meh-Wl2qG9mS.js +6 -0
  1126. langflow/frontend/assets/memory-stick-DjVuofBU.js +6 -0
  1127. langflow/frontend/assets/menu-C_ZnFtke.js +6 -0
  1128. langflow/frontend/assets/merge-CVxYdOU6.js +6 -0
  1129. langflow/frontend/assets/message-circle-BCFKIVaG.js +6 -0
  1130. langflow/frontend/assets/message-circle-code-ByC3xlrm.js +6 -0
  1131. langflow/frontend/assets/message-circle-dashed-BGf6wc2q.js +6 -0
  1132. langflow/frontend/assets/message-circle-heart-CJe2hG5I.js +6 -0
  1133. langflow/frontend/assets/message-circle-more-DlkXYzwc.js +6 -0
  1134. langflow/frontend/assets/message-circle-off-BXNwVK73.js +6 -0
  1135. langflow/frontend/assets/message-circle-plus-BvVDEWER.js +6 -0
  1136. langflow/frontend/assets/message-circle-question-F_PDi40-.js +6 -0
  1137. langflow/frontend/assets/message-circle-reply-DBVvbcYc.js +6 -0
  1138. langflow/frontend/assets/message-circle-warning-C6owxiSU.js +6 -0
  1139. langflow/frontend/assets/message-circle-x-V7F92TlD.js +6 -0
  1140. langflow/frontend/assets/message-square-DXqIv5-T.js +6 -0
  1141. langflow/frontend/assets/message-square-code-Cnybl1gQ.js +6 -0
  1142. langflow/frontend/assets/message-square-dashed-Dyhajt9A.js +6 -0
  1143. langflow/frontend/assets/message-square-diff-DUvtcPyO.js +6 -0
  1144. langflow/frontend/assets/message-square-dot-C_SriCts.js +6 -0
  1145. langflow/frontend/assets/message-square-heart-eWRT_k_U.js +6 -0
  1146. langflow/frontend/assets/message-square-lock-BbEknDit.js +6 -0
  1147. langflow/frontend/assets/message-square-more-BIWp7spD.js +6 -0
  1148. langflow/frontend/assets/message-square-off-AdEUq_kZ.js +6 -0
  1149. langflow/frontend/assets/message-square-plus-CsVRuGMd.js +6 -0
  1150. langflow/frontend/assets/message-square-quote-CLJ-6YBF.js +6 -0
  1151. langflow/frontend/assets/message-square-reply-COdDGZlL.js +6 -0
  1152. langflow/frontend/assets/message-square-share-Babk5o3W.js +6 -0
  1153. langflow/frontend/assets/message-square-text-KEj0QhlY.js +6 -0
  1154. langflow/frontend/assets/message-square-warning-DbMBK25A.js +6 -0
  1155. langflow/frontend/assets/message-square-x-Dlmu05x-.js +6 -0
  1156. langflow/frontend/assets/messages-square-BLHXkvXu.js +6 -0
  1157. langflow/frontend/assets/mic-CkGvjoA6.js +6 -0
  1158. langflow/frontend/assets/mic-off-BF7T6uJG.js +6 -0
  1159. langflow/frontend/assets/mic-vocal-D63-pkbV.js +6 -0
  1160. langflow/frontend/assets/microchip-BdgsWAAt.js +6 -0
  1161. langflow/frontend/assets/microscope-BIZdt6qa.js +6 -0
  1162. langflow/frontend/assets/microwave-ljjNyijf.js +6 -0
  1163. langflow/frontend/assets/milestone-Z7ApTXoY.js +6 -0
  1164. langflow/frontend/assets/milk-C94MudXv.js +6 -0
  1165. langflow/frontend/assets/milk-off-Bks8F3Rh.js +6 -0
  1166. langflow/frontend/assets/minimize-0iR8d_wz.js +6 -0
  1167. langflow/frontend/assets/minimize-2-4bKQDiPS.js +6 -0
  1168. langflow/frontend/assets/monitor-CzM786BJ.js +6 -0
  1169. langflow/frontend/assets/monitor-check-BumJuy9o.js +6 -0
  1170. langflow/frontend/assets/monitor-cog-CCmf8Cx_.js +6 -0
  1171. langflow/frontend/assets/monitor-dot-CppOnLLF.js +6 -0
  1172. langflow/frontend/assets/monitor-down-VT--09JI.js +6 -0
  1173. langflow/frontend/assets/monitor-off-DsGxBfLz.js +6 -0
  1174. langflow/frontend/assets/monitor-pause-lkcsR8rF.js +6 -0
  1175. langflow/frontend/assets/monitor-play-qe460Ine.js +6 -0
  1176. langflow/frontend/assets/monitor-smartphone-z2JHsU8j.js +6 -0
  1177. langflow/frontend/assets/monitor-speaker-BVDiZULG.js +6 -0
  1178. langflow/frontend/assets/monitor-stop-Ds8yehE1.js +6 -0
  1179. langflow/frontend/assets/monitor-up-BlZtuUw9.js +6 -0
  1180. langflow/frontend/assets/monitor-x-JBkUDpDd.js +6 -0
  1181. langflow/frontend/assets/moon-WoYIfO4w.js +6 -0
  1182. langflow/frontend/assets/moon-star-CNHQKOUR.js +6 -0
  1183. langflow/frontend/assets/mountain-D9FRFvIA.js +6 -0
  1184. langflow/frontend/assets/mountain-snow-DVA_gd64.js +6 -0
  1185. langflow/frontend/assets/mouse-867O2vOv.js +6 -0
  1186. langflow/frontend/assets/mouse-off-BawwNju4.js +6 -0
  1187. langflow/frontend/assets/mouse-pointer-2-DLgsfHFL.js +6 -0
  1188. langflow/frontend/assets/mouse-pointer-C7z_bkYM.js +6 -0
  1189. langflow/frontend/assets/mouse-pointer-ban-CQhj6Cwn.js +6 -0
  1190. langflow/frontend/assets/mouse-pointer-click-BxuJ2b0V.js +6 -0
  1191. langflow/frontend/assets/move-3d-dlIqQaWp.js +6 -0
  1192. langflow/frontend/assets/move-B4Ds2cBm.js +6 -0
  1193. langflow/frontend/assets/move-diagonal-2-BHA9O73b.js +6 -0
  1194. langflow/frontend/assets/move-diagonal-D60wM06u.js +6 -0
  1195. langflow/frontend/assets/move-down-Dx-PFKUb.js +6 -0
  1196. langflow/frontend/assets/move-down-left-Bo5FgvGr.js +6 -0
  1197. langflow/frontend/assets/move-down-right-CH_PsfhD.js +6 -0
  1198. langflow/frontend/assets/move-horizontal-DLrS0Kpz.js +6 -0
  1199. langflow/frontend/assets/move-left-oY8FtBG5.js +6 -0
  1200. langflow/frontend/assets/move-right-Cr4sR_bt.js +6 -0
  1201. langflow/frontend/assets/move-up-left-D7oJ2J8_.js +6 -0
  1202. langflow/frontend/assets/move-up-right-CJJYlUX1.js +6 -0
  1203. langflow/frontend/assets/move-up-w5CKBeD9.js +6 -0
  1204. langflow/frontend/assets/move-vertical-BqfrZ7dN.js +6 -0
  1205. langflow/frontend/assets/music-2-_WHrMLLg.js +6 -0
  1206. langflow/frontend/assets/music-3-DJRE06-A.js +6 -0
  1207. langflow/frontend/assets/music-4-BkKWffDU.js +6 -0
  1208. langflow/frontend/assets/music-DeKSHmIS.js +6 -0
  1209. langflow/frontend/assets/navigation-2-BwK7Ko0h.js +6 -0
  1210. langflow/frontend/assets/navigation-2-off-u3MSWrGH.js +6 -0
  1211. langflow/frontend/assets/navigation-BpGnSiAE.js +6 -0
  1212. langflow/frontend/assets/navigation-off-dsN-pPUd.js +6 -0
  1213. langflow/frontend/assets/network-Dq6lJHXU.js +6 -0
  1214. langflow/frontend/assets/newspaper-30MRjhu7.js +6 -0
  1215. langflow/frontend/assets/nfc-C0BJPdwh.js +6 -0
  1216. langflow/frontend/assets/non-binary-CLGP-iiC.js +6 -0
  1217. langflow/frontend/assets/notebook-CgaWNAFz.js +6 -0
  1218. langflow/frontend/assets/notebook-pen-CYm6Ghk1.js +6 -0
  1219. langflow/frontend/assets/notebook-tabs-Bk5eQyL5.js +6 -0
  1220. langflow/frontend/assets/notebook-text-BLkbIk44.js +6 -0
  1221. langflow/frontend/assets/notepad-text-Cjoga3oN.js +6 -0
  1222. langflow/frontend/assets/notepad-text-dashed-C5hD1-Fe.js +6 -0
  1223. langflow/frontend/assets/nut-CYsTlL60.js +6 -0
  1224. langflow/frontend/assets/nut-off-msUVlCzb.js +6 -0
  1225. langflow/frontend/assets/octagon-CM-nuNqQ.js +6 -0
  1226. langflow/frontend/assets/octagon-alert-DXa35bCO.js +6 -0
  1227. langflow/frontend/assets/octagon-minus-JM9PGbZV.js +6 -0
  1228. langflow/frontend/assets/octagon-pause-M0CjOmJu.js +6 -0
  1229. langflow/frontend/assets/octagon-x-E1ygK_P1.js +6 -0
  1230. langflow/frontend/assets/omega-BjqV4fX1.js +6 -0
  1231. langflow/frontend/assets/option-BIcrDVbD.js +6 -0
  1232. langflow/frontend/assets/orbit-BikgSX0-.js +6 -0
  1233. langflow/frontend/assets/origami-BQ5XI6j8.js +6 -0
  1234. langflow/frontend/assets/package-2-XU3yxTGl.js +6 -0
  1235. langflow/frontend/assets/package-4EiKsge0.js +6 -0
  1236. langflow/frontend/assets/package-check-CfdAe0GF.js +6 -0
  1237. langflow/frontend/assets/package-minus-BvKhdHSB.js +6 -0
  1238. langflow/frontend/assets/package-open-CKh_I0fr.js +6 -0
  1239. langflow/frontend/assets/package-plus-DxVNDWFo.js +6 -0
  1240. langflow/frontend/assets/package-search-G8fpx_ZL.js +6 -0
  1241. langflow/frontend/assets/package-x-DTd2nbYB.js +6 -0
  1242. langflow/frontend/assets/paint-bucket-16FRhKgt.js +6 -0
  1243. langflow/frontend/assets/paint-roller-CkA54Lft.js +6 -0
  1244. langflow/frontend/assets/paintbrush-DiQd2006.js +6 -0
  1245. langflow/frontend/assets/paintbrush-vertical-RVs4ZAcf.js +6 -0
  1246. langflow/frontend/assets/palette-63ZAp8jT.js +6 -0
  1247. langflow/frontend/assets/panel-bottom-BRSGITkZ.js +6 -0
  1248. langflow/frontend/assets/panel-bottom-close-BKhC1IPs.js +6 -0
  1249. langflow/frontend/assets/panel-bottom-dashed-DDmIVEyF.js +6 -0
  1250. langflow/frontend/assets/panel-bottom-open-DNB3w9jB.js +6 -0
  1251. langflow/frontend/assets/panel-left-close-2wcAhQC8.js +6 -0
  1252. langflow/frontend/assets/panel-left-dashed-P-yRaAfE.js +6 -0
  1253. langflow/frontend/assets/panel-left-open-C8Z5Ex7t.js +6 -0
  1254. langflow/frontend/assets/panel-right-DhqTAxzZ.js +6 -0
  1255. langflow/frontend/assets/panel-right-close-D-4tz-fa.js +6 -0
  1256. langflow/frontend/assets/panel-right-dashed-oSwbzusJ.js +6 -0
  1257. langflow/frontend/assets/panel-right-open-D3Vfnad1.js +6 -0
  1258. langflow/frontend/assets/panel-top-BiDhuHAU.js +6 -0
  1259. langflow/frontend/assets/panel-top-close-DXTUcegA.js +6 -0
  1260. langflow/frontend/assets/panel-top-dashed-GiUGeBeB.js +6 -0
  1261. langflow/frontend/assets/panel-top-open-6PMe_rzg.js +6 -0
  1262. langflow/frontend/assets/panels-left-bottom-BLaYgiWe.js +6 -0
  1263. langflow/frontend/assets/panels-right-bottom-CAOwjL6I.js +6 -0
  1264. langflow/frontend/assets/panels-top-left-C7JFKzm4.js +6 -0
  1265. langflow/frontend/assets/paperclip-C2jDvuaB.js +6 -0
  1266. langflow/frontend/assets/parentheses-DpyyMTil.js +6 -0
  1267. langflow/frontend/assets/parking-meter-Br1Avhl7.js +6 -0
  1268. langflow/frontend/assets/party-popper-ml82k9Oh.js +6 -0
  1269. langflow/frontend/assets/pause-CNE8dZxo.js +6 -0
  1270. langflow/frontend/assets/paw-print-f_-GBH01.js +6 -0
  1271. langflow/frontend/assets/pc-case-Chy1tZyO.js +6 -0
  1272. langflow/frontend/assets/pen-CWOC_G5w.js +6 -0
  1273. langflow/frontend/assets/pen-line-CbSvGV_f.js +6 -0
  1274. langflow/frontend/assets/pen-off-CRlhISzF.js +6 -0
  1275. langflow/frontend/assets/pen-tool-BCBDxitS.js +6 -0
  1276. langflow/frontend/assets/pencil-lCJvvWYR.js +6 -0
  1277. langflow/frontend/assets/pencil-line-DuQsld7D.js +6 -0
  1278. langflow/frontend/assets/pencil-off-D9SAANhb.js +6 -0
  1279. langflow/frontend/assets/pencil-ruler-BZ7rwkjR.js +6 -0
  1280. langflow/frontend/assets/pentagon-CMdRJpyU.js +6 -0
  1281. langflow/frontend/assets/percent-DUcp_Hu-.js +6 -0
  1282. langflow/frontend/assets/person-standing-Ur3pkyWF.js +6 -0
  1283. langflow/frontend/assets/philippine-peso-DYnLi4za.js +6 -0
  1284. langflow/frontend/assets/phone-DU0nN01j.js +6 -0
  1285. langflow/frontend/assets/phone-call-CpzfUvCS.js +6 -0
  1286. langflow/frontend/assets/phone-forwarded-BhIeiw1L.js +6 -0
  1287. langflow/frontend/assets/phone-incoming--bMxOKL_.js +6 -0
  1288. langflow/frontend/assets/phone-missed-CLZnCkx0.js +6 -0
  1289. langflow/frontend/assets/phone-off-D2N1--DK.js +6 -0
  1290. langflow/frontend/assets/phone-outgoing-BttSf1Mf.js +6 -0
  1291. langflow/frontend/assets/pi-0ZqHUNvQ.js +6 -0
  1292. langflow/frontend/assets/piano-O0okyq-q.js +6 -0
  1293. langflow/frontend/assets/pickaxe-BBq80IDk.js +6 -0
  1294. langflow/frontend/assets/picture-in-picture-2-BRD22oaq.js +6 -0
  1295. langflow/frontend/assets/picture-in-picture-aMu6X4he.js +6 -0
  1296. langflow/frontend/assets/piggy-bank-Ba5KpW-R.js +6 -0
  1297. langflow/frontend/assets/pilcrow-jO5PkN9u.js +6 -0
  1298. langflow/frontend/assets/pilcrow-left-DIbvdJ4q.js +6 -0
  1299. langflow/frontend/assets/pilcrow-right-Cn9D7hDF.js +6 -0
  1300. langflow/frontend/assets/pill-D-42rIOW.js +6 -0
  1301. langflow/frontend/assets/pill-bottle-DsJKKNcA.js +6 -0
  1302. langflow/frontend/assets/pin-DfAVbRNJ.js +6 -0
  1303. langflow/frontend/assets/pin-off-CJNWcHaA.js +6 -0
  1304. langflow/frontend/assets/pipette-B7tJT2kJ.js +6 -0
  1305. langflow/frontend/assets/pizza-CnrmNK8m.js +6 -0
  1306. langflow/frontend/assets/plane-Dn27nhFg.js +6 -0
  1307. langflow/frontend/assets/plane-landing-D0PYnEJh.js +6 -0
  1308. langflow/frontend/assets/plane-takeoff-C9ORUKgO.js +6 -0
  1309. langflow/frontend/assets/play-fRIv90Vb.js +6 -0
  1310. langflow/frontend/assets/plug-2-D8fXOKQU.js +6 -0
  1311. langflow/frontend/assets/plug-i5tCOxoY.js +6 -0
  1312. langflow/frontend/assets/plug-zap-DUkZjazY.js +6 -0
  1313. langflow/frontend/assets/pocket-Baxk-icN.js +6 -0
  1314. langflow/frontend/assets/pocket-knife-vflNgCDB.js +6 -0
  1315. langflow/frontend/assets/podcast-CGBp0he6.js +6 -0
  1316. langflow/frontend/assets/pointer-BAlqPHUA.js +6 -0
  1317. langflow/frontend/assets/pointer-off-Dr4nsB_n.js +6 -0
  1318. langflow/frontend/assets/popcorn-CkYbqF6n.js +6 -0
  1319. langflow/frontend/assets/popsicle-DQx7XFEX.js +6 -0
  1320. langflow/frontend/assets/pound-sterling-D-7ovrEl.js +6 -0
  1321. langflow/frontend/assets/power-CjdszFge.js +6 -0
  1322. langflow/frontend/assets/power-off-DXTNJRDM.js +6 -0
  1323. langflow/frontend/assets/presentation-BUFQUUad.js +6 -0
  1324. langflow/frontend/assets/printer-DlXrt59N.js +6 -0
  1325. langflow/frontend/assets/printer-check-CNpp-7a2.js +6 -0
  1326. langflow/frontend/assets/projector-CejJOabJ.js +6 -0
  1327. langflow/frontend/assets/proportions-DhzsgWUR.js +6 -0
  1328. langflow/frontend/assets/puzzle-CIUZmh73.js +6 -0
  1329. langflow/frontend/assets/pyramid-B1EU302T.js +6 -0
  1330. langflow/frontend/assets/qr-code-B3ueAf2a.js +6 -0
  1331. langflow/frontend/assets/quote-DnSAw5GA.js +6 -0
  1332. langflow/frontend/assets/rabbit-D_w405-3.js +6 -0
  1333. langflow/frontend/assets/radar-mMKrjXiq.js +6 -0
  1334. langflow/frontend/assets/radiation-BKZhrAsf.js +6 -0
  1335. langflow/frontend/assets/radical-DiyXLgcs.js +6 -0
  1336. langflow/frontend/assets/radio-FZqpRcOY.js +6 -0
  1337. langflow/frontend/assets/radio-receiver-DoqS8xe3.js +6 -0
  1338. langflow/frontend/assets/radio-tower-DzcmNTOD.js +6 -0
  1339. langflow/frontend/assets/radius-WO6Uuofn.js +6 -0
  1340. langflow/frontend/assets/rail-symbol-Blp5Z6mm.js +6 -0
  1341. langflow/frontend/assets/rainbow-BcpREq76.js +6 -0
  1342. langflow/frontend/assets/rat-C_6nvO9X.js +6 -0
  1343. langflow/frontend/assets/ratio-B2vtZEP1.js +6 -0
  1344. langflow/frontend/assets/receipt-WM0uZGH2.js +6 -0
  1345. langflow/frontend/assets/receipt-cent-BsFZulIa.js +6 -0
  1346. langflow/frontend/assets/receipt-euro-JyQiZVY6.js +6 -0
  1347. langflow/frontend/assets/receipt-indian-rupee-fTOVSpHz.js +6 -0
  1348. langflow/frontend/assets/receipt-japanese-yen-D8DfDeDK.js +6 -0
  1349. langflow/frontend/assets/receipt-pound-sterling-DaKscCMf.js +6 -0
  1350. langflow/frontend/assets/receipt-russian-ruble-Buf0_3Kt.js +6 -0
  1351. langflow/frontend/assets/receipt-swiss-franc-Bem-z2ls.js +6 -0
  1352. langflow/frontend/assets/receipt-text-Bwc10qHQ.js +6 -0
  1353. langflow/frontend/assets/rectangle-ellipsis-CeJcpjOB.js +6 -0
  1354. langflow/frontend/assets/rectangle-goggles-DOshY7hS.js +6 -0
  1355. langflow/frontend/assets/rectangle-horizontal-BkYka3pL.js +6 -0
  1356. langflow/frontend/assets/rectangle-vertical-DzlIazB7.js +6 -0
  1357. langflow/frontend/assets/recycle-BYgswKLN.js +6 -0
  1358. langflow/frontend/assets/redo-2-BZ3Hs4ln.js +6 -0
  1359. langflow/frontend/assets/redo-BU2dMbQ2.js +6 -0
  1360. langflow/frontend/assets/redo-dot-BZUxEEyF.js +6 -0
  1361. langflow/frontend/assets/refresh-ccw-dot-Cz65nUFZ.js +6 -0
  1362. langflow/frontend/assets/refresh-ccw-mpgTt4cp.js +6 -0
  1363. langflow/frontend/assets/refresh-cw-ACMLi-4b.js +6 -0
  1364. langflow/frontend/assets/refresh-cw-off-BrGN63Qm.js +6 -0
  1365. langflow/frontend/assets/refrigerator-BFChB889.js +6 -0
  1366. langflow/frontend/assets/regex-C8kDLEV-.js +6 -0
  1367. langflow/frontend/assets/remove-formatting-4xIOGsHV.js +6 -0
  1368. langflow/frontend/assets/repeat-1-C5gQ8b_d.js +6 -0
  1369. langflow/frontend/assets/repeat-2-YlU_Z8sF.js +6 -0
  1370. langflow/frontend/assets/repeat-BYHb23Jr.js +6 -0
  1371. langflow/frontend/assets/replace-DrXxrUoA.js +6 -0
  1372. langflow/frontend/assets/replace-all-_qSvipH9.js +6 -0
  1373. langflow/frontend/assets/reply-D3kS0lZA.js +6 -0
  1374. langflow/frontend/assets/reply-all-C9Q_Q7RN.js +6 -0
  1375. langflow/frontend/assets/rewind-C6LCP7LR.js +6 -0
  1376. langflow/frontend/assets/ribbon-8h1u3qoT.js +6 -0
  1377. langflow/frontend/assets/rocket-6Gkkhs52.js +6 -0
  1378. langflow/frontend/assets/rocking-chair-Ds11M0kh.js +6 -0
  1379. langflow/frontend/assets/roller-coaster-B1FJdn_M.js +6 -0
  1380. langflow/frontend/assets/rotate-3d-BMruZsY9.js +6 -0
  1381. langflow/frontend/assets/rotate-ccw-DXeuJ4SS.js +6 -0
  1382. langflow/frontend/assets/rotate-ccw-key-D8tWaFpf.js +6 -0
  1383. langflow/frontend/assets/rotate-ccw-square-DqcG1yyF.js +6 -0
  1384. langflow/frontend/assets/rotate-cw-JxVkjAiv.js +6 -0
  1385. langflow/frontend/assets/rotate-cw-square-DIFQHpgn.js +6 -0
  1386. langflow/frontend/assets/route-CyvYbs4s.js +6 -0
  1387. langflow/frontend/assets/route-off-DaW9NN2P.js +6 -0
  1388. langflow/frontend/assets/router-Dj4Gk-iP.js +6 -0
  1389. langflow/frontend/assets/rows-2-Bz25-LGn.js +6 -0
  1390. langflow/frontend/assets/rows-3-BjF2fk8b.js +6 -0
  1391. langflow/frontend/assets/rows-4-CdbGj4cO.js +6 -0
  1392. langflow/frontend/assets/rss-BqrD36sY.js +6 -0
  1393. langflow/frontend/assets/ruler-DDUQN13b.js +6 -0
  1394. langflow/frontend/assets/ruler-dimension-line-B7pClM0L.js +6 -0
  1395. langflow/frontend/assets/russian-ruble-B8-eH9Vh.js +6 -0
  1396. langflow/frontend/assets/sailboat-BNh0r77k.js +6 -0
  1397. langflow/frontend/assets/salad-DYdtRABF.js +6 -0
  1398. langflow/frontend/assets/sandwich-BM6ZxGik.js +6 -0
  1399. langflow/frontend/assets/satellite-bn5mBvGZ.js +6 -0
  1400. langflow/frontend/assets/satellite-dish-CInF6yLC.js +6 -0
  1401. langflow/frontend/assets/saudi-riyal-DXjre3xO.js +6 -0
  1402. langflow/frontend/assets/save-CnwN2YAE.js +6 -0
  1403. langflow/frontend/assets/save-all-Drrj35Ia.js +6 -0
  1404. langflow/frontend/assets/save-off-M8ohigKB.js +6 -0
  1405. langflow/frontend/assets/scale-3d-CaKlEBy5.js +6 -0
  1406. langflow/frontend/assets/scale-Cu8-QWt2.js +6 -0
  1407. langflow/frontend/assets/scaling-BoA8uGVv.js +6 -0
  1408. langflow/frontend/assets/scan-C_H_s3YU.js +6 -0
  1409. langflow/frontend/assets/scan-barcode-CrdT66Ss.js +6 -0
  1410. langflow/frontend/assets/scan-eye-DVxu5yMg.js +6 -0
  1411. langflow/frontend/assets/scan-face-C-BbOdW7.js +6 -0
  1412. langflow/frontend/assets/scan-heart-BDP49vL1.js +6 -0
  1413. langflow/frontend/assets/scan-line-CvXcAKFz.js +6 -0
  1414. langflow/frontend/assets/scan-qr-code-CGmOxmjp.js +6 -0
  1415. langflow/frontend/assets/scan-search-lVHucfuL.js +6 -0
  1416. langflow/frontend/assets/scan-text-BWlFO81f.js +6 -0
  1417. langflow/frontend/assets/school-DIrnM4NK.js +6 -0
  1418. langflow/frontend/assets/scissors-D_tqn99a.js +6 -0
  1419. langflow/frontend/assets/scissors-line-dashed-BmzyE8L6.js +6 -0
  1420. langflow/frontend/assets/screen-share-QrqusLrN.js +6 -0
  1421. langflow/frontend/assets/screen-share-off-CChuEPW1.js +6 -0
  1422. langflow/frontend/assets/scroll-CJKwovV_.js +6 -0
  1423. langflow/frontend/assets/scroll-text-DrBBLd5M.js +6 -0
  1424. langflow/frontend/assets/search-check-pd5Z-lqD.js +6 -0
  1425. langflow/frontend/assets/search-code-Dv1aBkEZ.js +6 -0
  1426. langflow/frontend/assets/search-slash-C7hA1-is.js +6 -0
  1427. langflow/frontend/assets/search-x-BBxtqy3_.js +6 -0
  1428. langflow/frontend/assets/section-BQnHgm0Z.js +6 -0
  1429. langflow/frontend/assets/send-Bic93nFl.js +6 -0
  1430. langflow/frontend/assets/send-horizontal-Djz0F2nb.js +6 -0
  1431. langflow/frontend/assets/send-to-back-Du3rjlDy.js +6 -0
  1432. langflow/frontend/assets/separator-horizontal-DK0ZpL2Q.js +6 -0
  1433. langflow/frontend/assets/separator-vertical-Zxsg5S5s.js +6 -0
  1434. langflow/frontend/assets/server-cog-DgcA3tg2.js +6 -0
  1435. langflow/frontend/assets/server-crash-Lc5DjUjZ.js +6 -0
  1436. langflow/frontend/assets/server-cxBG8tpy.js +6 -0
  1437. langflow/frontend/assets/server-off-C1-ZzWKv.js +6 -0
  1438. langflow/frontend/assets/settings-2-BZ95YTfB.js +6 -0
  1439. langflow/frontend/assets/settings-DbTdPIpg.js +6 -0
  1440. langflow/frontend/assets/shapes-DhvVOUty.js +6 -0
  1441. langflow/frontend/assets/share-2-CgsPoN9M.js +6 -0
  1442. langflow/frontend/assets/share-BMMVZ7rL.js +6 -0
  1443. langflow/frontend/assets/sheet-DoAFHBc2.js +6 -0
  1444. langflow/frontend/assets/shell-DVTOAKsK.js +6 -0
  1445. langflow/frontend/assets/shield-CdOo33h6.js +6 -0
  1446. langflow/frontend/assets/shield-alert-DBjHf6ln.js +6 -0
  1447. langflow/frontend/assets/shield-ban-iaGkidPw.js +6 -0
  1448. langflow/frontend/assets/shield-check-BcYNKKvn.js +6 -0
  1449. langflow/frontend/assets/shield-ellipsis-CeuabAd1.js +6 -0
  1450. langflow/frontend/assets/shield-half-DslM6pvI.js +6 -0
  1451. langflow/frontend/assets/shield-minus-5D5bC80R.js +6 -0
  1452. langflow/frontend/assets/shield-off-Bs6Dw1oj.js +6 -0
  1453. langflow/frontend/assets/shield-plus-BYTPSZ_j.js +6 -0
  1454. langflow/frontend/assets/shield-question-8di04eB9.js +6 -0
  1455. langflow/frontend/assets/shield-user-BjZpNWs-.js +6 -0
  1456. langflow/frontend/assets/shield-x-DtMjrAR6.js +6 -0
  1457. langflow/frontend/assets/ship-B1FS-0wt.js +6 -0
  1458. langflow/frontend/assets/ship-wheel-CWwqGxuS.js +6 -0
  1459. langflow/frontend/assets/shirt-DDY_cBLI.js +6 -0
  1460. langflow/frontend/assets/shopping-bag-C8yUBVA3.js +6 -0
  1461. langflow/frontend/assets/shopping-basket-DuQiTq_R.js +6 -0
  1462. langflow/frontend/assets/shopping-cart-DXQDHvOm.js +6 -0
  1463. langflow/frontend/assets/shovel-BX6j4P4r.js +6 -0
  1464. langflow/frontend/assets/shower-head-CnHgENtR.js +6 -0
  1465. langflow/frontend/assets/shredder-CNaGhMYw.js +6 -0
  1466. langflow/frontend/assets/shrimp-BKwZUqsk.js +6 -0
  1467. langflow/frontend/assets/shrink-DtBGdGCI.js +6 -0
  1468. langflow/frontend/assets/shrub-BHoEVOKE.js +6 -0
  1469. langflow/frontend/assets/shuffle-ewdvGbAy.js +6 -0
  1470. langflow/frontend/assets/sigma-KzfEfHDJ.js +6 -0
  1471. langflow/frontend/assets/signal-Cty6boDC.js +6 -0
  1472. langflow/frontend/assets/signal-high-o0UeLOaX.js +6 -0
  1473. langflow/frontend/assets/signal-low-BlXUWkId.js +6 -0
  1474. langflow/frontend/assets/signal-medium-Cb-EZQHK.js +6 -0
  1475. langflow/frontend/assets/signal-zero-WgiDibfW.js +6 -0
  1476. langflow/frontend/assets/signature-D6cLBZaG.js +6 -0
  1477. langflow/frontend/assets/signpost-DCNWRGGD.js +6 -0
  1478. langflow/frontend/assets/signpost-big-BRAZrCYB.js +6 -0
  1479. langflow/frontend/assets/siren-CmgQp-ZJ.js +6 -0
  1480. langflow/frontend/assets/skip-back-BiBdMTVG.js +6 -0
  1481. langflow/frontend/assets/skip-forward-DnMYJ9X6.js +6 -0
  1482. langflow/frontend/assets/skull-CvtoSbMr.js +6 -0
  1483. langflow/frontend/assets/slack-C_8L2fXg.js +6 -0
  1484. langflow/frontend/assets/slash-BuhBmsx0.js +6 -0
  1485. langflow/frontend/assets/slice-C33iA43B.js +6 -0
  1486. langflow/frontend/assets/sliders-horizontal-DzuvDOHu.js +6 -0
  1487. langflow/frontend/assets/sliders-vertical-DswThdIG.js +6 -0
  1488. langflow/frontend/assets/smartphone-DLfmh6zg.js +6 -0
  1489. langflow/frontend/assets/smartphone-charging-DM5gpvRw.js +6 -0
  1490. langflow/frontend/assets/smartphone-nfc-4FHMN64h.js +6 -0
  1491. langflow/frontend/assets/smile-DfMqFt_h.js +6 -0
  1492. langflow/frontend/assets/smile-plus-vdR01AAo.js +6 -0
  1493. langflow/frontend/assets/snail-BSe4rGOt.js +6 -0
  1494. langflow/frontend/assets/snowflake-jjr9o6Xt.js +6 -0
  1495. langflow/frontend/assets/sofa-CSdha_xf.js +6 -0
  1496. langflow/frontend/assets/soup-DZaUMUi7.js +6 -0
  1497. langflow/frontend/assets/space-CtU_wGsw.js +6 -0
  1498. langflow/frontend/assets/spade-D6c1SnhI.js +6 -0
  1499. langflow/frontend/assets/sparkle-D4Y-hgf0.js +6 -0
  1500. langflow/frontend/assets/sparkles-D6LCSr3Q.js +6 -0
  1501. langflow/frontend/assets/speaker-cIby5NbL.js +6 -0
  1502. langflow/frontend/assets/speech-BcZoNsRO.js +6 -0
  1503. langflow/frontend/assets/spell-check-2-gCrGa94o.js +6 -0
  1504. langflow/frontend/assets/spell-check-C4VH_2Qb.js +6 -0
  1505. langflow/frontend/assets/spline-30bTTImI.js +6 -0
  1506. langflow/frontend/assets/spline-pointer-cKwSQ01W.js +6 -0
  1507. langflow/frontend/assets/split-CNrHGI-P.js +6 -0
  1508. langflow/frontend/assets/spray-can-MY8gc3Gg.js +6 -0
  1509. langflow/frontend/assets/sprout-CTMnmXTl.js +6 -0
  1510. langflow/frontend/assets/square-DAYnpPeo.js +6 -0
  1511. langflow/frontend/assets/square-activity-BkP8wsck.js +6 -0
  1512. langflow/frontend/assets/square-arrow-down-left-BJCokILI.js +6 -0
  1513. langflow/frontend/assets/square-arrow-down-right-D21bwU3d.js +6 -0
  1514. langflow/frontend/assets/square-arrow-down-wjq_PHOs.js +6 -0
  1515. langflow/frontend/assets/square-arrow-left-ffOKr4VO.js +6 -0
  1516. langflow/frontend/assets/square-arrow-out-down-left-BezNJDBn.js +6 -0
  1517. langflow/frontend/assets/square-arrow-out-down-right-BPuETIWj.js +6 -0
  1518. langflow/frontend/assets/square-arrow-out-up-left-DLD7WE_w.js +6 -0
  1519. langflow/frontend/assets/square-arrow-out-up-right-DA0PM5tU.js +6 -0
  1520. langflow/frontend/assets/square-arrow-right-B4b1_-rA.js +6 -0
  1521. langflow/frontend/assets/square-arrow-up-D1JuObvy.js +6 -0
  1522. langflow/frontend/assets/square-arrow-up-left-C4rWW6J5.js +6 -0
  1523. langflow/frontend/assets/square-arrow-up-right-BccXA4Y9.js +6 -0
  1524. langflow/frontend/assets/square-asterisk-CrzQn13y.js +6 -0
  1525. langflow/frontend/assets/square-bottom-dashed-scissors-DnW0XK0f.js +6 -0
  1526. langflow/frontend/assets/square-chart-gantt-C8R1N8RH.js +6 -0
  1527. langflow/frontend/assets/square-check-D4l21ciO.js +6 -0
  1528. langflow/frontend/assets/square-check-big-DjzIbmzH.js +6 -0
  1529. langflow/frontend/assets/square-chevron-down-BPkxVX0b.js +6 -0
  1530. langflow/frontend/assets/square-chevron-left-ExTGsTLo.js +6 -0
  1531. langflow/frontend/assets/square-chevron-right-BBaghHnR.js +6 -0
  1532. langflow/frontend/assets/square-chevron-up-DkVUGfLD.js +6 -0
  1533. langflow/frontend/assets/square-code-CQFZqV73.js +6 -0
  1534. langflow/frontend/assets/square-dashed-D_wWm-82.js +6 -0
  1535. langflow/frontend/assets/square-dashed-bottom-Bqr8MwXl.js +6 -0
  1536. langflow/frontend/assets/square-dashed-bottom-code-Bjjim6HD.js +6 -0
  1537. langflow/frontend/assets/square-dashed-kanban-CCab8Xca.js +6 -0
  1538. langflow/frontend/assets/square-dashed-mouse-pointer-BxGXrsme.js +6 -0
  1539. langflow/frontend/assets/square-divide-CKI-Up8y.js +6 -0
  1540. langflow/frontend/assets/square-dot-DgcJzw1Q.js +6 -0
  1541. langflow/frontend/assets/square-equal-CSDXQXyV.js +6 -0
  1542. langflow/frontend/assets/square-function-D6lS9fXm.js +6 -0
  1543. langflow/frontend/assets/square-kanban-D1wJC8dg.js +6 -0
  1544. langflow/frontend/assets/square-library-oxh7GiX_.js +6 -0
  1545. langflow/frontend/assets/square-m-D3E68E4o.js +6 -0
  1546. langflow/frontend/assets/square-menu-DkvQRppR.js +6 -0
  1547. langflow/frontend/assets/square-minus-D3EZtgoZ.js +6 -0
  1548. langflow/frontend/assets/square-mouse-pointer-Djj-JU4h.js +6 -0
  1549. langflow/frontend/assets/square-parking-D9m5K58Z.js +6 -0
  1550. langflow/frontend/assets/square-parking-off-Br2o87Vn.js +6 -0
  1551. langflow/frontend/assets/square-pen-54_TzMVB.js +6 -0
  1552. langflow/frontend/assets/square-percent-Pi7Do-mI.js +6 -0
  1553. langflow/frontend/assets/square-pi-d8AE2n6O.js +6 -0
  1554. langflow/frontend/assets/square-pilcrow-CHkd54Ay.js +6 -0
  1555. langflow/frontend/assets/square-play-C7NhfVmU.js +6 -0
  1556. langflow/frontend/assets/square-plus-7W1vqpS2.js +6 -0
  1557. langflow/frontend/assets/square-power-d73kfd02.js +6 -0
  1558. langflow/frontend/assets/square-radical-B_WKpw6e.js +6 -0
  1559. langflow/frontend/assets/square-round-corner-Bt24eSa-.js +6 -0
  1560. langflow/frontend/assets/square-scissors-BPBlO8tj.js +6 -0
  1561. langflow/frontend/assets/square-sigma-B408Hcot.js +6 -0
  1562. langflow/frontend/assets/square-slash-oyzWpALk.js +6 -0
  1563. langflow/frontend/assets/square-split-horizontal-BwcBVle3.js +6 -0
  1564. langflow/frontend/assets/square-split-vertical-D1ATm8h5.js +6 -0
  1565. langflow/frontend/assets/square-square-Y0bNlAeu.js +6 -0
  1566. langflow/frontend/assets/square-stack-DIcbRSYB.js +6 -0
  1567. langflow/frontend/assets/square-terminal-DNbwvTum.js +6 -0
  1568. langflow/frontend/assets/square-user-C6j9Cm_b.js +6 -0
  1569. langflow/frontend/assets/square-user-round-CGV7arDL.js +6 -0
  1570. langflow/frontend/assets/square-x-BSlFsooC.js +6 -0
  1571. langflow/frontend/assets/squares-exclude-BWlUU_LN.js +6 -0
  1572. langflow/frontend/assets/squares-intersect-DC96-VnH.js +6 -0
  1573. langflow/frontend/assets/squares-subtract-V_tzjsIa.js +6 -0
  1574. langflow/frontend/assets/squares-unite-DDAWTUUz.js +6 -0
  1575. langflow/frontend/assets/squircle-CWI8bpGs.js +6 -0
  1576. langflow/frontend/assets/squirrel-DexGqqHj.js +6 -0
  1577. langflow/frontend/assets/stamp-Da9eG7P8.js +6 -0
  1578. langflow/frontend/assets/star-CjU7PovP.js +6 -0
  1579. langflow/frontend/assets/star-half-BEdJF7rh.js +6 -0
  1580. langflow/frontend/assets/star-off-DEHoRhIC.js +6 -0
  1581. langflow/frontend/assets/step-back-BGv8ki_W.js +6 -0
  1582. langflow/frontend/assets/step-forward-CXeF6y97.js +6 -0
  1583. langflow/frontend/assets/stethoscope-B_z5mVjV.js +6 -0
  1584. langflow/frontend/assets/sticker-R-n9lbNf.js +6 -0
  1585. langflow/frontend/assets/sticky-note-at6ea9az.js +6 -0
  1586. langflow/frontend/assets/store-DnHo-Dvu.js +6 -0
  1587. langflow/frontend/assets/stretch-horizontal-zg63Pwn2.js +6 -0
  1588. langflow/frontend/assets/stretch-vertical-CB9Cr8wu.js +6 -0
  1589. langflow/frontend/assets/strikethrough-B3J3AT-j.js +6 -0
  1590. langflow/frontend/assets/subscript-wOCgwyoJ.js +6 -0
  1591. langflow/frontend/assets/sun-1UeCQOnL.js +6 -0
  1592. langflow/frontend/assets/sun-dim-B0YsfXD6.js +6 -0
  1593. langflow/frontend/assets/sun-medium-CUw1fOHy.js +6 -0
  1594. langflow/frontend/assets/sun-moon-BkXUm2zc.js +6 -0
  1595. langflow/frontend/assets/sun-snow-AD_NFDlL.js +6 -0
  1596. langflow/frontend/assets/sunrise-DrRDOJnx.js +6 -0
  1597. langflow/frontend/assets/sunset-BmTyIBYG.js +6 -0
  1598. langflow/frontend/assets/superscript-DAkv6GWV.js +6 -0
  1599. langflow/frontend/assets/swatch-book-PuFO7fNf.js +6 -0
  1600. langflow/frontend/assets/swiss-franc-CvCwlH-1.js +6 -0
  1601. langflow/frontend/assets/switch-camera-CVKjOYy0.js +6 -0
  1602. langflow/frontend/assets/sword-Dl4xK_Hg.js +6 -0
  1603. langflow/frontend/assets/swords-B2bEsoTz.js +6 -0
  1604. langflow/frontend/assets/syringe-CWwiBNw1.js +6 -0
  1605. langflow/frontend/assets/table-2-5Ub1Hp1X.js +6 -0
  1606. langflow/frontend/assets/table-cQlSPuPD.js +6 -0
  1607. langflow/frontend/assets/table-cells-merge-5Lwptgjx.js +6 -0
  1608. langflow/frontend/assets/table-cells-split-D5HaR7Ur.js +6 -0
  1609. langflow/frontend/assets/table-columns-split-Br2xOFx-.js +6 -0
  1610. langflow/frontend/assets/table-of-contents-J33-4h_p.js +6 -0
  1611. langflow/frontend/assets/table-properties-lG9kds2q.js +6 -0
  1612. langflow/frontend/assets/table-rows-split-NcY8df44.js +6 -0
  1613. langflow/frontend/assets/tablet-bAWYk7ZU.js +6 -0
  1614. langflow/frontend/assets/tablet-smartphone-CFUKE6kR.js +6 -0
  1615. langflow/frontend/assets/tablets-P6mDX7J9.js +6 -0
  1616. langflow/frontend/assets/tag-CQdskkfZ.js +6 -0
  1617. langflow/frontend/assets/tags-BxGGU895.js +6 -0
  1618. langflow/frontend/assets/tally-1-SqGUi5E_.js +6 -0
  1619. langflow/frontend/assets/tally-2-DeYyaYLG.js +6 -0
  1620. langflow/frontend/assets/tally-3-CaXs59HO.js +6 -0
  1621. langflow/frontend/assets/tally-4-CmBeVOUP.js +6 -0
  1622. langflow/frontend/assets/tally-5-Cp6xqAlX.js +6 -0
  1623. langflow/frontend/assets/tangent-Bu8LuRAW.js +6 -0
  1624. langflow/frontend/assets/target-CatpZfLc.js +6 -0
  1625. langflow/frontend/assets/telescope-BPZqaaPb.js +6 -0
  1626. langflow/frontend/assets/tent-qOuOFpz4.js +6 -0
  1627. langflow/frontend/assets/tent-tree-DmiIwVgi.js +6 -0
  1628. langflow/frontend/assets/terminal-BYbGvjDK.js +6 -0
  1629. langflow/frontend/assets/test-tube-D_FhTaaq.js +6 -0
  1630. langflow/frontend/assets/test-tube-diagonal-CCU3bG1X.js +6 -0
  1631. langflow/frontend/assets/test-tubes-DukEK2vU.js +6 -0
  1632. langflow/frontend/assets/text-CwwKm1R0.js +6 -0
  1633. langflow/frontend/assets/text-cursor-BimJjGf3.js +6 -0
  1634. langflow/frontend/assets/text-cursor-input-B_kXpYRl.js +6 -0
  1635. langflow/frontend/assets/text-quote-CBAkQ8QD.js +6 -0
  1636. langflow/frontend/assets/text-search-B7Sl0pKm.js +6 -0
  1637. langflow/frontend/assets/text-select-DjpMY6Y4.js +6 -0
  1638. langflow/frontend/assets/theater-Bo3HTTbl.js +6 -0
  1639. langflow/frontend/assets/thermometer-Bu6gSpo-.js +6 -0
  1640. langflow/frontend/assets/thermometer-snowflake-hm8pKZNQ.js +6 -0
  1641. langflow/frontend/assets/thermometer-sun-DP-3bkYe.js +6 -0
  1642. langflow/frontend/assets/thumbs-down-BN2xuLtF.js +6 -0
  1643. langflow/frontend/assets/thumbs-up-CvtaTShj.js +6 -0
  1644. langflow/frontend/assets/ticket-B8jfAFNy.js +6 -0
  1645. langflow/frontend/assets/ticket-check-MV1S9SUz.js +6 -0
  1646. langflow/frontend/assets/ticket-minus-D9NRuCuh.js +6 -0
  1647. langflow/frontend/assets/ticket-percent-Cx11tpWt.js +6 -0
  1648. langflow/frontend/assets/ticket-plus-B4SeZsFv.js +6 -0
  1649. langflow/frontend/assets/ticket-slash-DmFj6_tZ.js +6 -0
  1650. langflow/frontend/assets/ticket-x-BV_YZPkD.js +6 -0
  1651. langflow/frontend/assets/tickets-BuIASBDi.js +6 -0
  1652. langflow/frontend/assets/tickets-plane-BVCZthgO.js +6 -0
  1653. langflow/frontend/assets/timer-5MEGKA2T.js +6 -0
  1654. langflow/frontend/assets/timer-off-C-i8-CA1.js +6 -0
  1655. langflow/frontend/assets/timer-reset-DN9eZBRg.js +6 -0
  1656. langflow/frontend/assets/toggle-left-BCOe-Uk4.js +6 -0
  1657. langflow/frontend/assets/toggle-right-ersa9_T2.js +6 -0
  1658. langflow/frontend/assets/toilet-DpxVM3Ui.js +6 -0
  1659. langflow/frontend/assets/tornado-JM7DbumL.js +6 -0
  1660. langflow/frontend/assets/torus-Bei_YR1p.js +6 -0
  1661. langflow/frontend/assets/touchpad-CXUqWqt1.js +6 -0
  1662. langflow/frontend/assets/touchpad-off-DyO9VlXZ.js +6 -0
  1663. langflow/frontend/assets/tower-control-BKAIg-Wk.js +6 -0
  1664. langflow/frontend/assets/toy-brick-DcGrcKQp.js +6 -0
  1665. langflow/frontend/assets/tractor-B2dLboVj.js +6 -0
  1666. langflow/frontend/assets/traffic-cone-BEvlA0ug.js +6 -0
  1667. langflow/frontend/assets/train-front-CxEtDqw-.js +6 -0
  1668. langflow/frontend/assets/train-front-tunnel-6851wkpJ.js +6 -0
  1669. langflow/frontend/assets/train-track-Cgy3PJec.js +6 -0
  1670. langflow/frontend/assets/tram-front-C5eL4T0U.js +6 -0
  1671. langflow/frontend/assets/transgender-W81LXVG9.js +6 -0
  1672. langflow/frontend/assets/trash-C-jmCiLI.js +6 -0
  1673. langflow/frontend/assets/tree-deciduous-DYmfvFfP.js +6 -0
  1674. langflow/frontend/assets/tree-palm-Bv1YDrxR.js +6 -0
  1675. langflow/frontend/assets/tree-pine-F7CHJhUF.js +6 -0
  1676. langflow/frontend/assets/trees-CQI05VGt.js +6 -0
  1677. langflow/frontend/assets/trello-D1yKllL-.js +6 -0
  1678. langflow/frontend/assets/trending-down-7BR48si1.js +6 -0
  1679. langflow/frontend/assets/trending-up-DxGJGJI4.js +6 -0
  1680. langflow/frontend/assets/trending-up-down-Bv-0EkEM.js +6 -0
  1681. langflow/frontend/assets/triangle-CqL0BuIo.js +6 -0
  1682. langflow/frontend/assets/triangle-alert-BurSbX0E.js +6 -0
  1683. langflow/frontend/assets/triangle-dashed-D0AlVMT4.js +6 -0
  1684. langflow/frontend/assets/triangle-right-Cjlm7XfT.js +6 -0
  1685. langflow/frontend/assets/trophy-DlqrTI3t.js +6 -0
  1686. langflow/frontend/assets/truck-Be0AHBIn.js +6 -0
  1687. langflow/frontend/assets/truck-electric-CTzzAU12.js +6 -0
  1688. langflow/frontend/assets/turtle-CwgcW4BG.js +6 -0
  1689. langflow/frontend/assets/tv-Cvkiuwa4.js +6 -0
  1690. langflow/frontend/assets/tv-minimal-BKMMXObd.js +6 -0
  1691. langflow/frontend/assets/tv-minimal-play-C2zC8Mf7.js +6 -0
  1692. langflow/frontend/assets/twitch-BaNtc3ms.js +6 -0
  1693. langflow/frontend/assets/twitter-D8cJDYlb.js +6 -0
  1694. langflow/frontend/assets/type-B6-SVmrS.js +6 -0
  1695. langflow/frontend/assets/type-outline-DF201kHQ.js +6 -0
  1696. langflow/frontend/assets/umbrella-CUjrRZLn.js +6 -0
  1697. langflow/frontend/assets/umbrella-off-DUIvDGWF.js +6 -0
  1698. langflow/frontend/assets/underline-BZYW7kZe.js +6 -0
  1699. langflow/frontend/assets/undo-2-_LSGuM6A.js +6 -0
  1700. langflow/frontend/assets/undo-D0ua0irY.js +6 -0
  1701. langflow/frontend/assets/undo-dot-DHpoiELc.js +6 -0
  1702. langflow/frontend/assets/unfold-horizontal-Baz2NDym.js +6 -0
  1703. langflow/frontend/assets/unfold-vertical-B5z_zoi2.js +6 -0
  1704. langflow/frontend/assets/ungroup-Byf-HoMq.js +6 -0
  1705. langflow/frontend/assets/university-BfeHsa2H.js +6 -0
  1706. langflow/frontend/assets/unlink-2-Bf6hkBxc.js +6 -0
  1707. langflow/frontend/assets/unlink-PTIP9C1t.js +6 -0
  1708. langflow/frontend/assets/unplug-dq9vW1e5.js +6 -0
  1709. langflow/frontend/assets/upload-ClL_xcHX.js +6 -0
  1710. langflow/frontend/assets/usb-CMQz5Bbx.js +6 -0
  1711. langflow/frontend/assets/use-post-add-user-CijdM3CW.js +1 -0
  1712. langflow/frontend/assets/user-CJbOlfYO.js +6 -0
  1713. langflow/frontend/assets/user-check-D2TJIdbC.js +6 -0
  1714. langflow/frontend/assets/user-cog-xgFL0Fjx.js +6 -0
  1715. langflow/frontend/assets/user-lock-4Ccl2f31.js +6 -0
  1716. langflow/frontend/assets/user-minus-3-XA_v8O.js +6 -0
  1717. langflow/frontend/assets/user-pen-B6_m96L5.js +6 -0
  1718. langflow/frontend/assets/user-plus-DcRRk4IL.js +6 -0
  1719. langflow/frontend/assets/user-round-B4Dz_J0y.js +6 -0
  1720. langflow/frontend/assets/user-round-check-BuqG6Tln.js +6 -0
  1721. langflow/frontend/assets/user-round-cog-CkomKcE0.js +6 -0
  1722. langflow/frontend/assets/user-round-minus-BOY_xYco.js +6 -0
  1723. langflow/frontend/assets/user-round-pen-QbRIGglu.js +6 -0
  1724. langflow/frontend/assets/user-round-plus-BC1vyhU-.js +6 -0
  1725. langflow/frontend/assets/user-round-search-CDMrfpLU.js +6 -0
  1726. langflow/frontend/assets/user-round-x-B3E2RJ6I.js +6 -0
  1727. langflow/frontend/assets/user-search-DF_KLVhe.js +6 -0
  1728. langflow/frontend/assets/user-x-DgFDuuYq.js +6 -0
  1729. langflow/frontend/assets/users-C9tV3bcv.js +6 -0
  1730. langflow/frontend/assets/users-round-m5S3NT8N.js +6 -0
  1731. langflow/frontend/assets/utensils-CNMxOrnM.js +6 -0
  1732. langflow/frontend/assets/utensils-crossed-CWsvzFyf.js +6 -0
  1733. langflow/frontend/assets/utility-pole-PSm7b5qq.js +6 -0
  1734. langflow/frontend/assets/variable-Dosn3l0Q.js +6 -0
  1735. langflow/frontend/assets/vault-DJCdrDkA.js +6 -0
  1736. langflow/frontend/assets/vegan-BzI5fdli.js +6 -0
  1737. langflow/frontend/assets/venetian-mask-DhNCjf4N.js +6 -0
  1738. langflow/frontend/assets/venus-Dz-DpZXp.js +6 -0
  1739. langflow/frontend/assets/venus-and-mars-Bl6thHIW.js +6 -0
  1740. langflow/frontend/assets/vibrate-BtFaim1I.js +6 -0
  1741. langflow/frontend/assets/vibrate-off-CrxEKLLu.js +6 -0
  1742. langflow/frontend/assets/video-CskvLdG0.js +6 -0
  1743. langflow/frontend/assets/video-off-BLD65TIj.js +6 -0
  1744. langflow/frontend/assets/videotape-CFtB6Y7N.js +6 -0
  1745. langflow/frontend/assets/view-vJgBVvc1.js +6 -0
  1746. langflow/frontend/assets/voicemail-BLTEEoA_.js +6 -0
  1747. langflow/frontend/assets/volleyball-CmsNUAQG.js +6 -0
  1748. langflow/frontend/assets/volume-1-GNgUvREd.js +6 -0
  1749. langflow/frontend/assets/volume-2--ZL1-glW.js +6 -0
  1750. langflow/frontend/assets/volume-Cb0M2vA7.js +6 -0
  1751. langflow/frontend/assets/volume-off-B0WaOdRU.js +6 -0
  1752. langflow/frontend/assets/volume-x-N8PIRYGP.js +6 -0
  1753. langflow/frontend/assets/vote-BybNJmTk.js +6 -0
  1754. langflow/frontend/assets/wallet--kGpRM2_.js +6 -0
  1755. langflow/frontend/assets/wallet-cards-DlB31LM8.js +6 -0
  1756. langflow/frontend/assets/wallet-minimal-Bi8ZraZE.js +6 -0
  1757. langflow/frontend/assets/wallpaper-DtDpeCXF.js +6 -0
  1758. langflow/frontend/assets/wand-DCe0uAlf.js +6 -0
  1759. langflow/frontend/assets/wand-sparkles-3r2BJJrS.js +6 -0
  1760. langflow/frontend/assets/warehouse-BKHflVjD.js +6 -0
  1761. langflow/frontend/assets/washing-machine-DX7eBIvZ.js +6 -0
  1762. langflow/frontend/assets/watch-DtXtjDr9.js +6 -0
  1763. langflow/frontend/assets/waves-CiYh0DqU.js +6 -0
  1764. langflow/frontend/assets/waves-ladder-Yzo4x2dv.js +6 -0
  1765. langflow/frontend/assets/waypoints-Be0aFt5U.js +6 -0
  1766. langflow/frontend/assets/webcam-BrDmzAmL.js +6 -0
  1767. langflow/frontend/assets/webhook-DJlX-3N-.js +6 -0
  1768. langflow/frontend/assets/webhook-off-B7Eotjfb.js +6 -0
  1769. langflow/frontend/assets/weight-DEkTHimE.js +6 -0
  1770. langflow/frontend/assets/wheat-BinBJSa-.js +6 -0
  1771. langflow/frontend/assets/wheat-off-DOI2qhbr.js +6 -0
  1772. langflow/frontend/assets/whole-word-DoiXEyAQ.js +6 -0
  1773. langflow/frontend/assets/wifi-C5iLP1z0.js +6 -0
  1774. langflow/frontend/assets/wifi-high-WCT9uviK.js +6 -0
  1775. langflow/frontend/assets/wifi-low-bhDZjYYt.js +6 -0
  1776. langflow/frontend/assets/wifi-off-DybtTHDv.js +6 -0
  1777. langflow/frontend/assets/wifi-pen-YZxtC-1t.js +6 -0
  1778. langflow/frontend/assets/wifi-zero-Ck1ckTXM.js +6 -0
  1779. langflow/frontend/assets/wind-DpU4CZZc.js +6 -0
  1780. langflow/frontend/assets/wind-arrow-down-CF-PTBQL.js +6 -0
  1781. langflow/frontend/assets/wine-DZzgE7cg.js +6 -0
  1782. langflow/frontend/assets/wine-off-CKFsTdqQ.js +6 -0
  1783. langflow/frontend/assets/workflow-B9ICwfQ9.js +6 -0
  1784. langflow/frontend/assets/worm-B9DE2nB9.js +6 -0
  1785. langflow/frontend/assets/wrap-text-GILhD4dN.js +6 -0
  1786. langflow/frontend/assets/wrench-BVYdz0EV.js +6 -0
  1787. langflow/frontend/assets/youtube-6WX8K7Zb.js +6 -0
  1788. langflow/frontend/assets/zap-BZEXKDc5.js +6 -0
  1789. langflow/frontend/assets/zap-off-B4uFrIUs.js +6 -0
  1790. langflow/frontend/assets/zoom-in-CWEynbHp.js +6 -0
  1791. langflow/frontend/assets/zoom-out-3VosI-6u.js +6 -0
  1792. langflow/frontend/index.html +2 -2
  1793. langflow/helpers/flow.py +121 -2
  1794. langflow/helpers/user.py +2 -2
  1795. langflow/initial_setup/constants.py +3 -0
  1796. langflow/initial_setup/setup.py +185 -9
  1797. langflow/initial_setup/starter_projects/Basic Prompt Chaining.json +4 -4
  1798. langflow/initial_setup/starter_projects/Basic Prompting.json +4 -4
  1799. langflow/initial_setup/starter_projects/Blog Writer.json +8 -8
  1800. langflow/initial_setup/starter_projects/Custom Component Generator.json +6 -6
  1801. langflow/initial_setup/starter_projects/Document Q&A.json +26 -6
  1802. langflow/initial_setup/starter_projects/Financial Report Parser.json +9 -9
  1803. langflow/initial_setup/starter_projects/Hybrid Search RAG.json +13 -13
  1804. langflow/initial_setup/starter_projects/Image Sentiment Analysis.json +7 -7
  1805. langflow/initial_setup/starter_projects/Instagram Copywriter.json +7 -7
  1806. langflow/initial_setup/starter_projects/Invoice Summarizer.json +5 -5
  1807. langflow/initial_setup/starter_projects/Knowledge Ingestion.json +4 -4
  1808. langflow/initial_setup/starter_projects/Knowledge Retrieval.json +5 -5
  1809. langflow/initial_setup/starter_projects/Market Research.json +10 -10
  1810. langflow/initial_setup/starter_projects/Meeting Summary.json +10 -10
  1811. langflow/initial_setup/starter_projects/Memory Chatbot.json +6 -6
  1812. langflow/initial_setup/starter_projects/News Aggregator.json +26 -7
  1813. langflow/initial_setup/starter_projects/Nvidia Remix.json +9 -9
  1814. langflow/initial_setup/starter_projects/Pok/303/251dex Agent.json" +7 -7
  1815. langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json +29 -9
  1816. langflow/initial_setup/starter_projects/Price Deal Finder.json +5 -5
  1817. langflow/initial_setup/starter_projects/Research Agent.json +5 -5
  1818. langflow/initial_setup/starter_projects/Research Translation Loop.json +15 -12
  1819. langflow/initial_setup/starter_projects/SEO Keyword Generator.json +2 -2
  1820. langflow/initial_setup/starter_projects/SaaS Pricing.json +5 -5
  1821. langflow/initial_setup/starter_projects/Search agent.json +5 -5
  1822. langflow/initial_setup/starter_projects/Sequential Tasks Agents.json +10 -10
  1823. langflow/initial_setup/starter_projects/Simple Agent.json +9 -9
  1824. langflow/initial_setup/starter_projects/Social Media Agent.json +11 -11
  1825. langflow/initial_setup/starter_projects/Text Sentiment Analysis.json +26 -6
  1826. langflow/initial_setup/starter_projects/Travel Planning Agents.json +9 -9
  1827. langflow/initial_setup/starter_projects/Twitter Thread Generator.json +16 -16
  1828. langflow/initial_setup/starter_projects/Vector Store RAG.json +32 -12
  1829. langflow/initial_setup/starter_projects/Youtube Analysis.json +7 -7
  1830. langflow/logging/logger.py +32 -1
  1831. langflow/main.py +43 -4
  1832. langflow/memory.py +19 -9
  1833. langflow/services/auth/utils.py +5 -4
  1834. langflow/services/database/models/api_key/crud.py +6 -17
  1835. langflow/services/database/models/flow/model.py +1 -0
  1836. langflow/services/database/models/folder/utils.py +1 -2
  1837. langflow/services/database/models/message/crud.py +1 -1
  1838. langflow/services/database/models/user/crud.py +1 -2
  1839. langflow/services/database/service.py +36 -18
  1840. langflow/services/deps.py +6 -33
  1841. langflow/services/flow/flow_runner.py +1 -2
  1842. langflow/services/storage/__init__.py +5 -0
  1843. langflow/services/storage/local.py +109 -36
  1844. langflow/services/storage/s3.py +278 -57
  1845. langflow/services/storage/service.py +6 -3
  1846. langflow/services/task/temp_flow_cleanup.py +0 -2
  1847. langflow/services/utils.py +4 -8
  1848. langflow/services/variable/service.py +29 -6
  1849. langflow_base_nightly-1.7.0.dev23.dist-info/METADATA +99 -0
  1850. langflow_base_nightly-1.7.0.dev23.dist-info/RECORD +2277 -0
  1851. langflow_base_nightly-1.7.0.dev23.dist-info/WHEEL +4 -0
  1852. langflow/frontend/assets/SlackIcon-Us_ry2Iv.js +0 -1
  1853. langflow/frontend/assets/Wikipedia-CeUspeQb.js +0 -1
  1854. langflow/frontend/assets/Wolfram-CT4YZ45a.js +0 -1
  1855. langflow/frontend/assets/a-arrow-down-9eaDjALR.js +0 -6
  1856. langflow/frontend/assets/a-arrow-up-CaEMRHPn.js +0 -6
  1857. langflow/frontend/assets/a-large-small-BYdoyL6o.js +0 -6
  1858. langflow/frontend/assets/accessibility-DjOhsjoB.js +0 -6
  1859. langflow/frontend/assets/activity-JXGSwFHD.js +0 -6
  1860. langflow/frontend/assets/air-vent-Bv58oKFA.js +0 -6
  1861. langflow/frontend/assets/airplay-DRJ26--l.js +0 -6
  1862. langflow/frontend/assets/alarm-clock-C-G-xhcf.js +0 -6
  1863. langflow/frontend/assets/alarm-clock-check-CqMVtN7S.js +0 -6
  1864. langflow/frontend/assets/alarm-clock-minus-Caeuiqlb.js +0 -6
  1865. langflow/frontend/assets/alarm-clock-off-CEM5qH_6.js +0 -6
  1866. langflow/frontend/assets/alarm-clock-plus-Bq2Gj4CA.js +0 -6
  1867. langflow/frontend/assets/alarm-smoke-8FCuL96f.js +0 -6
  1868. langflow/frontend/assets/album-CfBnHsl0.js +0 -6
  1869. langflow/frontend/assets/align-center-horizontal-C-X6AeI_.js +0 -6
  1870. langflow/frontend/assets/align-center-vertical-Ce-2KSEO.js +0 -6
  1871. langflow/frontend/assets/align-center-xyR0y5_m.js +0 -6
  1872. langflow/frontend/assets/align-end-horizontal-CnXc24Zd.js +0 -6
  1873. langflow/frontend/assets/align-end-vertical-gMjHHjT6.js +0 -6
  1874. langflow/frontend/assets/align-horizontal-distribute-center-CiQsP9o4.js +0 -6
  1875. langflow/frontend/assets/align-horizontal-distribute-end-BKJCFccI.js +0 -6
  1876. langflow/frontend/assets/align-horizontal-distribute-start-uJzRzLdr.js +0 -6
  1877. langflow/frontend/assets/align-horizontal-justify-center-c-ikgjpD.js +0 -6
  1878. langflow/frontend/assets/align-horizontal-justify-end-j7WWmYIM.js +0 -6
  1879. langflow/frontend/assets/align-horizontal-justify-start-Y6ptjruY.js +0 -6
  1880. langflow/frontend/assets/align-horizontal-space-around-2plB6Y-F.js +0 -6
  1881. langflow/frontend/assets/align-horizontal-space-between-DHs0HJ4f.js +0 -6
  1882. langflow/frontend/assets/align-justify-C20CL-_a.js +0 -6
  1883. langflow/frontend/assets/align-left-hnPdfQtc.js +0 -6
  1884. langflow/frontend/assets/align-right-COvhzFSf.js +0 -6
  1885. langflow/frontend/assets/align-start-horizontal-CvyhshiN.js +0 -6
  1886. langflow/frontend/assets/align-start-vertical-1_rDzqd9.js +0 -6
  1887. langflow/frontend/assets/align-vertical-distribute-center-CgVET2e6.js +0 -6
  1888. langflow/frontend/assets/align-vertical-distribute-end-DCKvptXv.js +0 -6
  1889. langflow/frontend/assets/align-vertical-distribute-start-LNAtc6vO.js +0 -6
  1890. langflow/frontend/assets/align-vertical-justify-center-Bct6OGxW.js +0 -6
  1891. langflow/frontend/assets/align-vertical-justify-end-Do-PmuX3.js +0 -6
  1892. langflow/frontend/assets/align-vertical-justify-start-Cmsyquqk.js +0 -6
  1893. langflow/frontend/assets/align-vertical-space-around-BpzGMxig.js +0 -6
  1894. langflow/frontend/assets/align-vertical-space-between-CrjH1Wsg.js +0 -6
  1895. langflow/frontend/assets/ambulance-AYbR_5rS.js +0 -6
  1896. langflow/frontend/assets/ampersand-DMmLeWTW.js +0 -6
  1897. langflow/frontend/assets/ampersands-DJlMmK1p.js +0 -6
  1898. langflow/frontend/assets/amphora-M87j_vkr.js +0 -6
  1899. langflow/frontend/assets/anchor-WsOOhT57.js +0 -6
  1900. langflow/frontend/assets/angry-BQrk2lvw.js +0 -6
  1901. langflow/frontend/assets/annoyed-BWde01bx.js +0 -6
  1902. langflow/frontend/assets/antenna-ScPfnfvX.js +0 -6
  1903. langflow/frontend/assets/anvil-BYh1TlH6.js +0 -6
  1904. langflow/frontend/assets/aperture-CQwEbKWx.js +0 -6
  1905. langflow/frontend/assets/app-window-ByM2RJAS.js +0 -6
  1906. langflow/frontend/assets/app-window-mac-Vih3hWkx.js +0 -6
  1907. langflow/frontend/assets/apple-mD72t9z7.js +0 -6
  1908. langflow/frontend/assets/archive-DG34WUmN.js +0 -6
  1909. langflow/frontend/assets/archive-restore-BkHSLHhu.js +0 -6
  1910. langflow/frontend/assets/archive-x-B7sj7uX9.js +0 -6
  1911. langflow/frontend/assets/armchair-wIT5Z84C.js +0 -6
  1912. langflow/frontend/assets/arrow-big-down-DuSZd0gG.js +0 -6
  1913. langflow/frontend/assets/arrow-big-down-dash-CPR-06bq.js +0 -6
  1914. langflow/frontend/assets/arrow-big-left-CPoj7w2v.js +0 -6
  1915. langflow/frontend/assets/arrow-big-left-dash-rtvL8wAQ.js +0 -6
  1916. langflow/frontend/assets/arrow-big-right-EiX8GIIy.js +0 -6
  1917. langflow/frontend/assets/arrow-big-right-dash-BAZCGib4.js +0 -6
  1918. langflow/frontend/assets/arrow-big-up-Kng9fG4_.js +0 -6
  1919. langflow/frontend/assets/arrow-big-up-dash-B46R2feM.js +0 -6
  1920. langflow/frontend/assets/arrow-down-0-1-pSkZgQLN.js +0 -6
  1921. langflow/frontend/assets/arrow-down-1-0-3ufgg8Hs.js +0 -6
  1922. langflow/frontend/assets/arrow-down-a-z-CsYxuBZw.js +0 -6
  1923. langflow/frontend/assets/arrow-down-auDYdy0-.js +0 -6
  1924. langflow/frontend/assets/arrow-down-from-line-DQXlFST2.js +0 -6
  1925. langflow/frontend/assets/arrow-down-left-CLIkyms-.js +0 -6
  1926. langflow/frontend/assets/arrow-down-narrow-wide-BtD-38OZ.js +0 -6
  1927. langflow/frontend/assets/arrow-down-right-DDOOCNwI.js +0 -6
  1928. langflow/frontend/assets/arrow-down-to-dot-BKVmCFv6.js +0 -6
  1929. langflow/frontend/assets/arrow-down-to-line-Ce50RpT9.js +0 -6
  1930. langflow/frontend/assets/arrow-down-up-CiAQkYa1.js +0 -6
  1931. langflow/frontend/assets/arrow-down-wide-narrow-bHNonS6J.js +0 -6
  1932. langflow/frontend/assets/arrow-down-z-a-B5JO0Xtq.js +0 -6
  1933. langflow/frontend/assets/arrow-left-D3Ah01pI.js +0 -6
  1934. langflow/frontend/assets/arrow-left-from-line-OMu75jWB.js +0 -6
  1935. langflow/frontend/assets/arrow-left-right-TliOqk7V.js +0 -6
  1936. langflow/frontend/assets/arrow-left-to-line-3fgCJ_5x.js +0 -6
  1937. langflow/frontend/assets/arrow-right-CYsoGpxf.js +0 -6
  1938. langflow/frontend/assets/arrow-right-from-line-CzDWJYnm.js +0 -6
  1939. langflow/frontend/assets/arrow-right-left-DjMq1jTi.js +0 -6
  1940. langflow/frontend/assets/arrow-right-to-line-DsfzSjPT.js +0 -6
  1941. langflow/frontend/assets/arrow-up-0-1-LLxE7vpt.js +0 -6
  1942. langflow/frontend/assets/arrow-up-1-0-GwLVJWY_.js +0 -6
  1943. langflow/frontend/assets/arrow-up-DdKJFQ-z.js +0 -6
  1944. langflow/frontend/assets/arrow-up-a-z-BN8GFxSk.js +0 -6
  1945. langflow/frontend/assets/arrow-up-down-Cl_bY03Q.js +0 -6
  1946. langflow/frontend/assets/arrow-up-from-dot-D3HppUqI.js +0 -6
  1947. langflow/frontend/assets/arrow-up-from-line-C-eCZKPp.js +0 -6
  1948. langflow/frontend/assets/arrow-up-left-Btnb4zIn.js +0 -6
  1949. langflow/frontend/assets/arrow-up-narrow-wide-DnlD7kIK.js +0 -6
  1950. langflow/frontend/assets/arrow-up-right-Dckks3Py.js +0 -6
  1951. langflow/frontend/assets/arrow-up-to-line-FruPJbVs.js +0 -6
  1952. langflow/frontend/assets/arrow-up-wide-narrow-Dz3-sQX7.js +0 -6
  1953. langflow/frontend/assets/arrow-up-z-a-B2Pzma1X.js +0 -6
  1954. langflow/frontend/assets/arrows-up-from-line-CLfwjEuJ.js +0 -6
  1955. langflow/frontend/assets/asterisk-fxtPNL0_.js +0 -6
  1956. langflow/frontend/assets/at-sign-NQa4XpR-.js +0 -6
  1957. langflow/frontend/assets/atom-CHS-V1yH.js +0 -6
  1958. langflow/frontend/assets/audio-lines-DSYmqMlR.js +0 -6
  1959. langflow/frontend/assets/audio-waveform-Cbes4iZt.js +0 -6
  1960. langflow/frontend/assets/award-CQLBD6vm.js +0 -6
  1961. langflow/frontend/assets/axe-CDSBX1WJ.js +0 -6
  1962. langflow/frontend/assets/axis-3d-JwTBYQ4W.js +0 -6
  1963. langflow/frontend/assets/baby-CeC4STvW.js +0 -6
  1964. langflow/frontend/assets/backpack-BIk7eTn2.js +0 -6
  1965. langflow/frontend/assets/badge-SSCVw83X.js +0 -6
  1966. langflow/frontend/assets/badge-alert-AceYdloh.js +0 -6
  1967. langflow/frontend/assets/badge-cent-CnX7Qtaz.js +0 -6
  1968. langflow/frontend/assets/badge-check-BcSI27iI.js +0 -6
  1969. langflow/frontend/assets/badge-dollar-sign-Cu1Ch8b7.js +0 -6
  1970. langflow/frontend/assets/badge-euro-RhYT-nlY.js +0 -6
  1971. langflow/frontend/assets/badge-help-coijnp9e.js +0 -6
  1972. langflow/frontend/assets/badge-indian-rupee-DGPROvXJ.js +0 -6
  1973. langflow/frontend/assets/badge-info-DTvhghnk.js +0 -6
  1974. langflow/frontend/assets/badge-japanese-yen-CFZAJaT_.js +0 -6
  1975. langflow/frontend/assets/badge-minus-BExqVksu.js +0 -6
  1976. langflow/frontend/assets/badge-percent-DShM6HKz.js +0 -6
  1977. langflow/frontend/assets/badge-plus-ROtWLgFs.js +0 -6
  1978. langflow/frontend/assets/badge-pound-sterling-Du2A9r0c.js +0 -6
  1979. langflow/frontend/assets/badge-russian-ruble-DfG6ozE_.js +0 -6
  1980. langflow/frontend/assets/badge-swiss-franc-D39ehTw1.js +0 -6
  1981. langflow/frontend/assets/badge-x-DotUI_vO.js +0 -6
  1982. langflow/frontend/assets/baggage-claim-DbwgDEdK.js +0 -6
  1983. langflow/frontend/assets/ban-Bs5bMT0f.js +0 -6
  1984. langflow/frontend/assets/banana-DrGKaTmd.js +0 -6
  1985. langflow/frontend/assets/bandage-B285aATB.js +0 -6
  1986. langflow/frontend/assets/banknote-BYkjXRkl.js +0 -6
  1987. langflow/frontend/assets/banknote-arrow-down-BwJVB3pk.js +0 -6
  1988. langflow/frontend/assets/banknote-arrow-up-CikTozgR.js +0 -6
  1989. langflow/frontend/assets/banknote-x-BtWl1nfV.js +0 -6
  1990. langflow/frontend/assets/barcode-L-_5HuRe.js +0 -6
  1991. langflow/frontend/assets/baseline-BFNYNpjP.js +0 -6
  1992. langflow/frontend/assets/bath-DjQ9774-.js +0 -6
  1993. langflow/frontend/assets/battery-WIP2nbkW.js +0 -6
  1994. langflow/frontend/assets/battery-charging-FfXfIVSo.js +0 -6
  1995. langflow/frontend/assets/battery-full-Bkza2rDe.js +0 -6
  1996. langflow/frontend/assets/battery-low-BlyDxm3y.js +0 -6
  1997. langflow/frontend/assets/battery-medium-DIlyUjYi.js +0 -6
  1998. langflow/frontend/assets/battery-plus-B4BVIkOc.js +0 -6
  1999. langflow/frontend/assets/battery-warning-BPPmGx7B.js +0 -6
  2000. langflow/frontend/assets/beaker-rPaFYa8m.js +0 -6
  2001. langflow/frontend/assets/bean-off-B3KGSr83.js +0 -6
  2002. langflow/frontend/assets/bean-q7tfs-JQ.js +0 -6
  2003. langflow/frontend/assets/bed-double-6iRpTsKs.js +0 -6
  2004. langflow/frontend/assets/bed-single-DfKKzIRJ.js +0 -6
  2005. langflow/frontend/assets/bed-xRSuL4xl.js +0 -6
  2006. langflow/frontend/assets/beef-Bf97McuD.js +0 -6
  2007. langflow/frontend/assets/beer-DN2tdlwQ.js +0 -6
  2008. langflow/frontend/assets/beer-off-l8Fcji8A.js +0 -6
  2009. langflow/frontend/assets/bell-SnxJLh-C.js +0 -6
  2010. langflow/frontend/assets/bell-dot-CcePE0rB.js +0 -6
  2011. langflow/frontend/assets/bell-electric-D_DPGWQ3.js +0 -6
  2012. langflow/frontend/assets/bell-minus-BPL82piC.js +0 -6
  2013. langflow/frontend/assets/bell-off-CESU8Xng.js +0 -6
  2014. langflow/frontend/assets/bell-plus-BK9zWlwu.js +0 -6
  2015. langflow/frontend/assets/bell-ring-wQpkeGE0.js +0 -6
  2016. langflow/frontend/assets/between-horizontal-end-CgvCPu6F.js +0 -6
  2017. langflow/frontend/assets/between-horizontal-start-BM-oIN65.js +0 -6
  2018. langflow/frontend/assets/between-vertical-end-DgUv9Kch.js +0 -6
  2019. langflow/frontend/assets/between-vertical-start-DI4khPmx.js +0 -6
  2020. langflow/frontend/assets/biceps-flexed-B-pNR-Iz.js +0 -6
  2021. langflow/frontend/assets/bike-DgvHUFiH.js +0 -6
  2022. langflow/frontend/assets/binary-BoGqGi4w.js +0 -6
  2023. langflow/frontend/assets/binoculars-DsJi8UEW.js +0 -6
  2024. langflow/frontend/assets/biohazard-BIW42Zq0.js +0 -6
  2025. langflow/frontend/assets/bird-CuusA6ze.js +0 -6
  2026. langflow/frontend/assets/bitcoin-F62LP_7K.js +0 -6
  2027. langflow/frontend/assets/blend-BLXY6Lk1.js +0 -6
  2028. langflow/frontend/assets/blinds-zERZSz8U.js +0 -6
  2029. langflow/frontend/assets/blocks-SRnoECwA.js +0 -6
  2030. langflow/frontend/assets/bluetooth-D18s-Ag1.js +0 -6
  2031. langflow/frontend/assets/bluetooth-connected-DQU4z1Ex.js +0 -6
  2032. langflow/frontend/assets/bluetooth-off-DD_EZzgE.js +0 -6
  2033. langflow/frontend/assets/bluetooth-searching-BMQ2xdKQ.js +0 -6
  2034. langflow/frontend/assets/bold-CLpbUnw-.js +0 -6
  2035. langflow/frontend/assets/bolt-Brm3_hN-.js +0 -6
  2036. langflow/frontend/assets/bomb-B_eiUzfH.js +0 -6
  2037. langflow/frontend/assets/bone-tKmIFd62.js +0 -6
  2038. langflow/frontend/assets/book-Dgqx_KG4.js +0 -6
  2039. langflow/frontend/assets/book-a-Bckwf3W-.js +0 -6
  2040. langflow/frontend/assets/book-audio-BPv8p8xe.js +0 -6
  2041. langflow/frontend/assets/book-check-C_PYfE94.js +0 -6
  2042. langflow/frontend/assets/book-copy-Duo5NQXE.js +0 -6
  2043. langflow/frontend/assets/book-dashed-BTn0L6L-.js +0 -6
  2044. langflow/frontend/assets/book-down-YtBeDMQd.js +0 -6
  2045. langflow/frontend/assets/book-headphones-C0aN3fMN.js +0 -6
  2046. langflow/frontend/assets/book-heart-Sjgqp0AF.js +0 -6
  2047. langflow/frontend/assets/book-image-KCJ3-MYD.js +0 -6
  2048. langflow/frontend/assets/book-key-Dt6aNLBF.js +0 -6
  2049. langflow/frontend/assets/book-lock-CWqq9DSW.js +0 -6
  2050. langflow/frontend/assets/book-marked-CuJmrOJs.js +0 -6
  2051. langflow/frontend/assets/book-minus-DxRXjinD.js +0 -6
  2052. langflow/frontend/assets/book-open-COn461WL.js +0 -6
  2053. langflow/frontend/assets/book-open-check-CigH7vAN.js +0 -6
  2054. langflow/frontend/assets/book-open-text-CyB0vdMX.js +0 -6
  2055. langflow/frontend/assets/book-plus-CFD_sA0k.js +0 -6
  2056. langflow/frontend/assets/book-text-DL7RhYmU.js +0 -6
  2057. langflow/frontend/assets/book-type-CmEXEgBr.js +0 -6
  2058. langflow/frontend/assets/book-up-2-BxHujXyx.js +0 -6
  2059. langflow/frontend/assets/book-up-CEJ8m6mT.js +0 -6
  2060. langflow/frontend/assets/book-user-CNDuFpqp.js +0 -6
  2061. langflow/frontend/assets/book-x-D495vwDJ.js +0 -6
  2062. langflow/frontend/assets/bookmark-Gha1TJIQ.js +0 -6
  2063. langflow/frontend/assets/bookmark-check-S0x3O2Sy.js +0 -6
  2064. langflow/frontend/assets/bookmark-minus-hG3YmHl3.js +0 -6
  2065. langflow/frontend/assets/bookmark-plus-Cs_jsLbF.js +0 -6
  2066. langflow/frontend/assets/bookmark-x-CC0lT9Zu.js +0 -6
  2067. langflow/frontend/assets/boom-box-pPPOvgxg.js +0 -6
  2068. langflow/frontend/assets/bot-DiPUiJyb.js +0 -6
  2069. langflow/frontend/assets/bot-message-square-Dxm8RSCF.js +0 -6
  2070. langflow/frontend/assets/bot-off-B7oYm7VC.js +0 -6
  2071. langflow/frontend/assets/bow-arrow-Crmp-czF.js +0 -6
  2072. langflow/frontend/assets/box-D6OU2H17.js +0 -6
  2073. langflow/frontend/assets/boxes-h7HzuAHj.js +0 -6
  2074. langflow/frontend/assets/braces-BHT-4SQr.js +0 -6
  2075. langflow/frontend/assets/brackets-yEjUxK6Y.js +0 -6
  2076. langflow/frontend/assets/brain-BawwrieI.js +0 -6
  2077. langflow/frontend/assets/brain-circuit-Dju9JhQF.js +0 -6
  2078. langflow/frontend/assets/brain-cog-Dh0lEsSU.js +0 -6
  2079. langflow/frontend/assets/brick-wall-4wypNOy2.js +0 -6
  2080. langflow/frontend/assets/brick-wall-fire-DGT9818K.js +0 -6
  2081. langflow/frontend/assets/briefcase-DBvMD1t0.js +0 -6
  2082. langflow/frontend/assets/briefcase-business-DQGznxJE.js +0 -6
  2083. langflow/frontend/assets/briefcase-conveyor-belt-BhySEtuI.js +0 -6
  2084. langflow/frontend/assets/briefcase-medical-BrCyLDvE.js +0 -6
  2085. langflow/frontend/assets/bring-to-front-BPIyY3_p.js +0 -6
  2086. langflow/frontend/assets/brush-HS_Bo7Fj.js +0 -6
  2087. langflow/frontend/assets/bubbles-CF8rwh_3.js +0 -6
  2088. langflow/frontend/assets/bug-CLaK6jYD.js +0 -6
  2089. langflow/frontend/assets/bug-off-DQZcVsmQ.js +0 -6
  2090. langflow/frontend/assets/bug-play-DmulNNUt.js +0 -6
  2091. langflow/frontend/assets/building-2-B1dTvyeM.js +0 -6
  2092. langflow/frontend/assets/building-Da3oU5Hc.js +0 -6
  2093. langflow/frontend/assets/bus-B7oc2rjY.js +0 -6
  2094. langflow/frontend/assets/bus-front-B8TSqxh0.js +0 -6
  2095. langflow/frontend/assets/cable-BZAx9MDF.js +0 -6
  2096. langflow/frontend/assets/cable-car-1qPYjMxx.js +0 -6
  2097. langflow/frontend/assets/cake-C8rgBFAT.js +0 -6
  2098. langflow/frontend/assets/cake-slice-cw-qKnDf.js +0 -6
  2099. langflow/frontend/assets/calculator-D2MrW5Xk.js +0 -6
  2100. langflow/frontend/assets/calendar-1-BExpA6ta.js +0 -6
  2101. langflow/frontend/assets/calendar-CuJKXjG3.js +0 -6
  2102. langflow/frontend/assets/calendar-arrow-down-DkKRy2nA.js +0 -6
  2103. langflow/frontend/assets/calendar-arrow-up-D1I_gfyI.js +0 -6
  2104. langflow/frontend/assets/calendar-check-2-DQWULtyH.js +0 -6
  2105. langflow/frontend/assets/calendar-check-DQhdrkZp.js +0 -6
  2106. langflow/frontend/assets/calendar-clock-CHIptkFP.js +0 -6
  2107. langflow/frontend/assets/calendar-cog-AW3hKE87.js +0 -6
  2108. langflow/frontend/assets/calendar-days-Bopwrf5C.js +0 -6
  2109. langflow/frontend/assets/calendar-fold-BwVOJMR8.js +0 -6
  2110. langflow/frontend/assets/calendar-heart-BS45tCGf.js +0 -6
  2111. langflow/frontend/assets/calendar-minus-2--B-gVq4j.js +0 -6
  2112. langflow/frontend/assets/calendar-minus-DB9O9Hbr.js +0 -6
  2113. langflow/frontend/assets/calendar-off-C-dfM-Hv.js +0 -6
  2114. langflow/frontend/assets/calendar-plus-2-Dlv_511O.js +0 -6
  2115. langflow/frontend/assets/calendar-plus-C4BSQJvR.js +0 -6
  2116. langflow/frontend/assets/calendar-range-zWaineOX.js +0 -6
  2117. langflow/frontend/assets/calendar-search-BJ7UEjxV.js +0 -6
  2118. langflow/frontend/assets/calendar-sync-BNUftU98.js +0 -6
  2119. langflow/frontend/assets/calendar-x-2-DsInHaoq.js +0 -6
  2120. langflow/frontend/assets/calendar-x-2SduZBt7.js +0 -6
  2121. langflow/frontend/assets/camera--JcmW8RC.js +0 -6
  2122. langflow/frontend/assets/camera-off-C8jCmpeX.js +0 -6
  2123. langflow/frontend/assets/candy-D0kdIzfJ.js +0 -6
  2124. langflow/frontend/assets/candy-cane-COTINPwk.js +0 -6
  2125. langflow/frontend/assets/candy-off-B0hPkXZp.js +0 -6
  2126. langflow/frontend/assets/cannabis-Daq6x4sL.js +0 -6
  2127. langflow/frontend/assets/captions-CoTHIP0t.js +0 -6
  2128. langflow/frontend/assets/captions-off-tVHACeYV.js +0 -6
  2129. langflow/frontend/assets/car-Cdvoz-U0.js +0 -6
  2130. langflow/frontend/assets/car-front-CWgEq90F.js +0 -6
  2131. langflow/frontend/assets/car-taxi-front-Bm41ZYfy.js +0 -6
  2132. langflow/frontend/assets/caravan-Q6bFP64_.js +0 -6
  2133. langflow/frontend/assets/carrot-EeiBMgfr.js +0 -6
  2134. langflow/frontend/assets/case-lower-CMe0CBgD.js +0 -6
  2135. langflow/frontend/assets/case-sensitive-jg-1Zpdj.js +0 -6
  2136. langflow/frontend/assets/case-upper-BFPzmh7m.js +0 -6
  2137. langflow/frontend/assets/cassette-tape-B5H9XiYB.js +0 -6
  2138. langflow/frontend/assets/cast-BmP2fk4X.js +0 -6
  2139. langflow/frontend/assets/castle-DqWzUjOb.js +0 -6
  2140. langflow/frontend/assets/cat-CfQcS4NI.js +0 -6
  2141. langflow/frontend/assets/cctv-mmSJ1h1f.js +0 -6
  2142. langflow/frontend/assets/chart-area-Brjc8erB.js +0 -6
  2143. langflow/frontend/assets/chart-bar-big-C5rOgyMT.js +0 -6
  2144. langflow/frontend/assets/chart-bar-decreasing-D84n8SsJ.js +0 -6
  2145. langflow/frontend/assets/chart-bar-increasing-MqRGa4WD.js +0 -6
  2146. langflow/frontend/assets/chart-bar-sXRu3HWh.js +0 -6
  2147. langflow/frontend/assets/chart-bar-stacked-DyGYNenL.js +0 -6
  2148. langflow/frontend/assets/chart-candlestick-DA9KiwoI.js +0 -6
  2149. langflow/frontend/assets/chart-column-BKLyjPZh.js +0 -6
  2150. langflow/frontend/assets/chart-column-big-BEwYgHOy.js +0 -6
  2151. langflow/frontend/assets/chart-column-decreasing-BjA7UU8K.js +0 -6
  2152. langflow/frontend/assets/chart-column-increasing-VKCTiknT.js +0 -6
  2153. langflow/frontend/assets/chart-column-stacked-BZVuC3aw.js +0 -6
  2154. langflow/frontend/assets/chart-gantt-Bd_k849R.js +0 -6
  2155. langflow/frontend/assets/chart-line-CZLbNVZC.js +0 -6
  2156. langflow/frontend/assets/chart-network-MMJ2JQ5X.js +0 -6
  2157. langflow/frontend/assets/chart-no-axes-column-decreasing-CesadWUY.js +0 -6
  2158. langflow/frontend/assets/chart-no-axes-column-increasing-CSq2goV6.js +0 -6
  2159. langflow/frontend/assets/chart-no-axes-column-qNDgS1OU.js +0 -6
  2160. langflow/frontend/assets/chart-no-axes-combined-CY8sFDth.js +0 -6
  2161. langflow/frontend/assets/chart-no-axes-gantt-BDcUJUQ7.js +0 -6
  2162. langflow/frontend/assets/chart-pie-DjxCWkrd.js +0 -6
  2163. langflow/frontend/assets/chart-scatter-y6TzULil.js +0 -6
  2164. langflow/frontend/assets/chart-spline-CEA5cVhQ.js +0 -6
  2165. langflow/frontend/assets/check-check-ClNZOHnK.js +0 -6
  2166. langflow/frontend/assets/chef-hat-CaPpeL-C.js +0 -6
  2167. langflow/frontend/assets/cherry-BySmaCla.js +0 -6
  2168. langflow/frontend/assets/chevron-first-BCecWZmL.js +0 -6
  2169. langflow/frontend/assets/chevron-last-Du9es2JJ.js +0 -6
  2170. langflow/frontend/assets/chevron-left-Cq3I1qba.js +0 -6
  2171. langflow/frontend/assets/chevron-right-CwFaSf0F.js +0 -6
  2172. langflow/frontend/assets/chevrons-down-BRuUUFNf.js +0 -6
  2173. langflow/frontend/assets/chevrons-down-up-Cqdon8Cs.js +0 -6
  2174. langflow/frontend/assets/chevrons-left-CPqh4Ona.js +0 -6
  2175. langflow/frontend/assets/chevrons-left-right-BJgOt5VE.js +0 -6
  2176. langflow/frontend/assets/chevrons-left-right-ellipsis-DbRjI8TG.js +0 -6
  2177. langflow/frontend/assets/chevrons-right-CFQExgTg.js +0 -6
  2178. langflow/frontend/assets/chevrons-right-left-D5m2CE6v.js +0 -6
  2179. langflow/frontend/assets/chevrons-up-B7e8Mo5C.js +0 -6
  2180. langflow/frontend/assets/chrome-Dqyot24M.js +0 -6
  2181. langflow/frontend/assets/church-DtIQd7CT.js +0 -6
  2182. langflow/frontend/assets/cigarette-7ATwPdNN.js +0 -6
  2183. langflow/frontend/assets/cigarette-off-DiZdQPKm.js +0 -6
  2184. langflow/frontend/assets/circle-alert-D-Gecvfl.js +0 -6
  2185. langflow/frontend/assets/circle-arrow-down-BdeVznuS.js +0 -6
  2186. langflow/frontend/assets/circle-arrow-left-B4to1ZJF.js +0 -6
  2187. langflow/frontend/assets/circle-arrow-out-down-left-CF9Cd-oH.js +0 -6
  2188. langflow/frontend/assets/circle-arrow-out-down-right-DMBy-lFt.js +0 -6
  2189. langflow/frontend/assets/circle-arrow-out-up-left-DPYjVu0c.js +0 -6
  2190. langflow/frontend/assets/circle-arrow-out-up-right-CbfpCfrW.js +0 -6
  2191. langflow/frontend/assets/circle-arrow-right-BcKLMMHF.js +0 -6
  2192. langflow/frontend/assets/circle-arrow-up-BGdsVL2T.js +0 -6
  2193. langflow/frontend/assets/circle-check-Z0NiciJJ.js +0 -6
  2194. langflow/frontend/assets/circle-check-big-JI3bLOj7.js +0 -6
  2195. langflow/frontend/assets/circle-chevron-down-BgrEZa9q.js +0 -6
  2196. langflow/frontend/assets/circle-chevron-left-BAKwtEiL.js +0 -6
  2197. langflow/frontend/assets/circle-chevron-right-C1ZH0eJ-.js +0 -6
  2198. langflow/frontend/assets/circle-chevron-up-Cnf8gp85.js +0 -6
  2199. langflow/frontend/assets/circle-dashed-D_TuIt7c.js +0 -6
  2200. langflow/frontend/assets/circle-divide-ClTrdvFQ.js +0 -6
  2201. langflow/frontend/assets/circle-dollar-sign-DA5-kn0L.js +0 -6
  2202. langflow/frontend/assets/circle-dot-ZAt1HAeI.js +0 -6
  2203. langflow/frontend/assets/circle-dot-dashed-BXjOc_4Q.js +0 -6
  2204. langflow/frontend/assets/circle-ellipsis-B1_tW3gr.js +0 -6
  2205. langflow/frontend/assets/circle-equal-DU62SrTQ.js +0 -6
  2206. langflow/frontend/assets/circle-fading-arrow-up-DFKzqMFv.js +0 -6
  2207. langflow/frontend/assets/circle-fading-plus-PzLo7r_0.js +0 -6
  2208. langflow/frontend/assets/circle-gauge-BcbNHJuX.js +0 -6
  2209. langflow/frontend/assets/circle-help-Ckm9gPgw.js +0 -6
  2210. langflow/frontend/assets/circle-minus-GpfPuNbr.js +0 -6
  2211. langflow/frontend/assets/circle-off-B5-aZjI1.js +0 -6
  2212. langflow/frontend/assets/circle-parking-CBSJbjze.js +0 -6
  2213. langflow/frontend/assets/circle-parking-off-B3wkqs4x.js +0 -6
  2214. langflow/frontend/assets/circle-pause-Cm3mIQ0t.js +0 -6
  2215. langflow/frontend/assets/circle-percent-DwXphTWo.js +0 -6
  2216. langflow/frontend/assets/circle-play-BD9MY0Gt.js +0 -6
  2217. langflow/frontend/assets/circle-plus-DCH9xjyb.js +0 -6
  2218. langflow/frontend/assets/circle-power-BR7bIRlN.js +0 -6
  2219. langflow/frontend/assets/circle-slash-2-CWE54o-b.js +0 -6
  2220. langflow/frontend/assets/circle-slash-CCqdU40d.js +0 -6
  2221. langflow/frontend/assets/circle-small-BnCPeGmh.js +0 -6
  2222. langflow/frontend/assets/circle-stop-ABs_aXda.js +0 -6
  2223. langflow/frontend/assets/circle-user-BpliOyeX.js +0 -6
  2224. langflow/frontend/assets/circle-user-round-DyqUN_rV.js +0 -6
  2225. langflow/frontend/assets/circuit-board-BLg6EVSA.js +0 -6
  2226. langflow/frontend/assets/citrus-DdWQAj1w.js +0 -6
  2227. langflow/frontend/assets/clapperboard-CnrJj1ti.js +0 -6
  2228. langflow/frontend/assets/clipboard-Cvdzmyts.js +0 -6
  2229. langflow/frontend/assets/clipboard-check-CsyaUwBV.js +0 -6
  2230. langflow/frontend/assets/clipboard-copy-_vz48E8U.js +0 -6
  2231. langflow/frontend/assets/clipboard-list-CEpgqIGv.js +0 -6
  2232. langflow/frontend/assets/clipboard-minus-CEwOZOit.js +0 -6
  2233. langflow/frontend/assets/clipboard-paste-C6bTwu3o.js +0 -6
  2234. langflow/frontend/assets/clipboard-pen-De8N2op_.js +0 -6
  2235. langflow/frontend/assets/clipboard-pen-line-BVPqQCn4.js +0 -6
  2236. langflow/frontend/assets/clipboard-plus-CSDySz8C.js +0 -6
  2237. langflow/frontend/assets/clipboard-type-CSnYo0DH.js +0 -6
  2238. langflow/frontend/assets/clipboard-x-CA4uZ8Yv.js +0 -6
  2239. langflow/frontend/assets/clock-1-BX-HR18I.js +0 -6
  2240. langflow/frontend/assets/clock-10-BUe9wlT6.js +0 -6
  2241. langflow/frontend/assets/clock-11-D-prECX8.js +0 -6
  2242. langflow/frontend/assets/clock-12-Bj_bnwHJ.js +0 -6
  2243. langflow/frontend/assets/clock-2-y9ZDf_IT.js +0 -6
  2244. langflow/frontend/assets/clock-3-R9cvwwHx.js +0 -6
  2245. langflow/frontend/assets/clock-4-Dph5bEZh.js +0 -6
  2246. langflow/frontend/assets/clock-5-CggQkeAD.js +0 -6
  2247. langflow/frontend/assets/clock-6-CXqRgUB2.js +0 -6
  2248. langflow/frontend/assets/clock-7-BUYxWl1O.js +0 -6
  2249. langflow/frontend/assets/clock-8-ChteRlK8.js +0 -6
  2250. langflow/frontend/assets/clock-9-BGmyi_VK.js +0 -6
  2251. langflow/frontend/assets/clock-alert-BT09qwLs.js +0 -6
  2252. langflow/frontend/assets/clock-arrow-down-Cy18e_2R.js +0 -6
  2253. langflow/frontend/assets/clock-arrow-up-DPaUuL0B.js +0 -6
  2254. langflow/frontend/assets/clock-fading-CIvuz1mw.js +0 -6
  2255. langflow/frontend/assets/clock-rr6Ek8IQ.js +0 -6
  2256. langflow/frontend/assets/cloud-ISds0Edr.js +0 -6
  2257. langflow/frontend/assets/cloud-alert-rTmD9KLN.js +0 -6
  2258. langflow/frontend/assets/cloud-cog-CeIudCEo.js +0 -6
  2259. langflow/frontend/assets/cloud-download-7OK9E-IE.js +0 -6
  2260. langflow/frontend/assets/cloud-drizzle-BgTYS6s4.js +0 -6
  2261. langflow/frontend/assets/cloud-fog-B4h6Q1tp.js +0 -6
  2262. langflow/frontend/assets/cloud-hail-C0mVSW15.js +0 -6
  2263. langflow/frontend/assets/cloud-lightning-D1POwx-2.js +0 -6
  2264. langflow/frontend/assets/cloud-moon-CzX06DuN.js +0 -6
  2265. langflow/frontend/assets/cloud-moon-rain-zxDpykHS.js +0 -6
  2266. langflow/frontend/assets/cloud-off-mQYJQblC.js +0 -6
  2267. langflow/frontend/assets/cloud-rain-8hbx9h2Q.js +0 -6
  2268. langflow/frontend/assets/cloud-rain-wind-BIkbntFK.js +0 -6
  2269. langflow/frontend/assets/cloud-snow-D_0QZSPi.js +0 -6
  2270. langflow/frontend/assets/cloud-sun-pZ5LSZr_.js +0 -6
  2271. langflow/frontend/assets/cloud-sun-rain-C_txrNKU.js +0 -6
  2272. langflow/frontend/assets/cloud-upload-DIfCC_PO.js +0 -6
  2273. langflow/frontend/assets/cloudy-Bv74kfE3.js +0 -6
  2274. langflow/frontend/assets/clover-DJgtAjEr.js +0 -6
  2275. langflow/frontend/assets/club-_cmjoK_i.js +0 -6
  2276. langflow/frontend/assets/code-xml-BMSDHDjS.js +0 -6
  2277. langflow/frontend/assets/codepen-BPQtBs8W.js +0 -6
  2278. langflow/frontend/assets/codesandbox-DcyGhg8-.js +0 -6
  2279. langflow/frontend/assets/coffee-DVCnyZKe.js +0 -6
  2280. langflow/frontend/assets/cog-Dl4eJkV1.js +0 -6
  2281. langflow/frontend/assets/coins-BgLo7alw.js +0 -6
  2282. langflow/frontend/assets/columns-2-4JYQ9FnC.js +0 -6
  2283. langflow/frontend/assets/columns-3-D9WsoAtb.js +0 -6
  2284. langflow/frontend/assets/columns-3-cog-CZUx7EoD.js +0 -6
  2285. langflow/frontend/assets/columns-4-DHpfb0ZX.js +0 -6
  2286. langflow/frontend/assets/combine-UwB2Lgmm.js +0 -6
  2287. langflow/frontend/assets/command-CCLFONZt.js +0 -6
  2288. langflow/frontend/assets/compass-Crso02wN.js +0 -6
  2289. langflow/frontend/assets/component-guEKSsvn.js +0 -6
  2290. langflow/frontend/assets/computer-CiYFjDoG.js +0 -6
  2291. langflow/frontend/assets/concierge-bell-BmdH4pVI.js +0 -6
  2292. langflow/frontend/assets/cone-BLpOGb-s.js +0 -6
  2293. langflow/frontend/assets/construction-CfO02Mao.js +0 -6
  2294. langflow/frontend/assets/contact-DtlU7gCz.js +0 -6
  2295. langflow/frontend/assets/contact-round-C57dX7sd.js +0 -6
  2296. langflow/frontend/assets/container-DUVtmAtr.js +0 -6
  2297. langflow/frontend/assets/contrast-D0evG4E4.js +0 -6
  2298. langflow/frontend/assets/cookie-dBSZe9o6.js +0 -6
  2299. langflow/frontend/assets/cooking-pot-NMch466O.js +0 -6
  2300. langflow/frontend/assets/copy-C2tgcwuQ.js +0 -6
  2301. langflow/frontend/assets/copy-check-CG4K1dCb.js +0 -6
  2302. langflow/frontend/assets/copy-minus-x1TMN8Qw.js +0 -6
  2303. langflow/frontend/assets/copy-plus-C9tH6cNh.js +0 -6
  2304. langflow/frontend/assets/copy-slash-CmHErJia.js +0 -6
  2305. langflow/frontend/assets/copy-x-C1euOG0F.js +0 -6
  2306. langflow/frontend/assets/copyleft-Db90l3Tw.js +0 -6
  2307. langflow/frontend/assets/copyright-pV51xEsx.js +0 -6
  2308. langflow/frontend/assets/corner-down-left-CzIneTyh.js +0 -6
  2309. langflow/frontend/assets/corner-down-right-DHLaJfOX.js +0 -6
  2310. langflow/frontend/assets/corner-left-down-B9tznnhA.js +0 -6
  2311. langflow/frontend/assets/corner-left-up-DPw8pvK7.js +0 -6
  2312. langflow/frontend/assets/corner-right-down-B1-hQPbv.js +0 -6
  2313. langflow/frontend/assets/corner-right-up-D3GVP06q.js +0 -6
  2314. langflow/frontend/assets/corner-up-left-DvFTK-hi.js +0 -6
  2315. langflow/frontend/assets/corner-up-right-B_mSqbVC.js +0 -6
  2316. langflow/frontend/assets/cpu-C2UUxbN-.js +0 -6
  2317. langflow/frontend/assets/creative-commons-BYVC5CpE.js +0 -6
  2318. langflow/frontend/assets/credit-card-B8Ulbya5.js +0 -6
  2319. langflow/frontend/assets/croissant-BstBkOk-.js +0 -6
  2320. langflow/frontend/assets/crop-CrEcD3AZ.js +0 -6
  2321. langflow/frontend/assets/cross-B0sUKY8p.js +0 -6
  2322. langflow/frontend/assets/crosshair-BA3RliiT.js +0 -6
  2323. langflow/frontend/assets/crown-CH7Kuj25.js +0 -6
  2324. langflow/frontend/assets/cuboid-ClkSX1Gl.js +0 -6
  2325. langflow/frontend/assets/cup-soda-Dzbh2XEJ.js +0 -6
  2326. langflow/frontend/assets/currency-CHAx-mXw.js +0 -6
  2327. langflow/frontend/assets/cylinder-Dgc_2uzR.js +0 -6
  2328. langflow/frontend/assets/dam-RgFHpyUx.js +0 -6
  2329. langflow/frontend/assets/database-OgFLip_j.js +0 -6
  2330. langflow/frontend/assets/database-backup-DW-QWa60.js +0 -6
  2331. langflow/frontend/assets/database-zap-RQTzWPOZ.js +0 -6
  2332. langflow/frontend/assets/decimals-arrow-left-BZbFcTaY.js +0 -6
  2333. langflow/frontend/assets/decimals-arrow-right-B3g1RCLs.js +0 -6
  2334. langflow/frontend/assets/delete-ts7-suHg.js +0 -6
  2335. langflow/frontend/assets/dessert-Dnc1SWI8.js +0 -6
  2336. langflow/frontend/assets/diameter-D1oL3BkC.js +0 -6
  2337. langflow/frontend/assets/diamond-DEbnCDdW.js +0 -6
  2338. langflow/frontend/assets/diamond-minus-qiEa4VeO.js +0 -6
  2339. langflow/frontend/assets/diamond-percent-C-hICqmH.js +0 -6
  2340. langflow/frontend/assets/diamond-plus-2DUAwUCR.js +0 -6
  2341. langflow/frontend/assets/dice-1-C0GootU8.js +0 -6
  2342. langflow/frontend/assets/dice-2-CtrT78nm.js +0 -6
  2343. langflow/frontend/assets/dice-3-B-7CR4_b.js +0 -6
  2344. langflow/frontend/assets/dice-4-BspZjbfx.js +0 -6
  2345. langflow/frontend/assets/dice-5-BTNywaNY.js +0 -6
  2346. langflow/frontend/assets/dice-6-WfTJvAOh.js +0 -6
  2347. langflow/frontend/assets/dices-BbBsoqAW.js +0 -6
  2348. langflow/frontend/assets/diff-B0s_M458.js +0 -6
  2349. langflow/frontend/assets/disc-2-D910oD8Y.js +0 -6
  2350. langflow/frontend/assets/disc-3-BUPcNa1Y.js +0 -6
  2351. langflow/frontend/assets/disc-album-BSHpZ6tf.js +0 -6
  2352. langflow/frontend/assets/disc-aqCKY_1o.js +0 -6
  2353. langflow/frontend/assets/divide-TsjYdxiC.js +0 -6
  2354. langflow/frontend/assets/dna-jygECTkf.js +0 -6
  2355. langflow/frontend/assets/dna-off-Dn4r9y3L.js +0 -6
  2356. langflow/frontend/assets/dock-DrbnTaRq.js +0 -6
  2357. langflow/frontend/assets/dog-xL2XgQWP.js +0 -6
  2358. langflow/frontend/assets/dollar-sign-owk8CFFE.js +0 -6
  2359. langflow/frontend/assets/donut-BdRW99gm.js +0 -6
  2360. langflow/frontend/assets/door-closed-B79lbKyI.js +0 -6
  2361. langflow/frontend/assets/door-open-BeQpxYa8.js +0 -6
  2362. langflow/frontend/assets/dot-gNU3N0tX.js +0 -6
  2363. langflow/frontend/assets/download-CZUDGUSp.js +0 -6
  2364. langflow/frontend/assets/drafting-compass-0CD5CY5s.js +0 -6
  2365. langflow/frontend/assets/drama-DoR6OsYX.js +0 -6
  2366. langflow/frontend/assets/dribbble-CnYCa2BE.js +0 -6
  2367. langflow/frontend/assets/drill-M56V7Vdn.js +0 -6
  2368. langflow/frontend/assets/droplet-D8pmq39R.js +0 -6
  2369. langflow/frontend/assets/droplet-off-Mu2Q1HfB.js +0 -6
  2370. langflow/frontend/assets/droplets-CQb9JmvG.js +0 -6
  2371. langflow/frontend/assets/drum-C2e0Us05.js +0 -6
  2372. langflow/frontend/assets/drumstick-54uTTDpl.js +0 -6
  2373. langflow/frontend/assets/dumbbell-D37LQyeJ.js +0 -6
  2374. langflow/frontend/assets/ear-off-ZYzR0mU5.js +0 -6
  2375. langflow/frontend/assets/ear-yCKCe0f8.js +0 -6
  2376. langflow/frontend/assets/earth-DDe8e7AM.js +0 -6
  2377. langflow/frontend/assets/earth-lock-CTf5hSKz.js +0 -6
  2378. langflow/frontend/assets/eclipse-Ckh-nvWY.js +0 -6
  2379. langflow/frontend/assets/egg-DBoRiOjt.js +0 -6
  2380. langflow/frontend/assets/egg-fried-pCb0X569.js +0 -6
  2381. langflow/frontend/assets/egg-off-DQgkLE-K.js +0 -6
  2382. langflow/frontend/assets/ellipsis-uXqZ2dXT.js +0 -6
  2383. langflow/frontend/assets/ellipsis-vertical-om5ySLop.js +0 -6
  2384. langflow/frontend/assets/equal-BwPOdSe7.js +0 -6
  2385. langflow/frontend/assets/equal-approximately-C2uPsv65.js +0 -6
  2386. langflow/frontend/assets/equal-not-CuZ_iBNQ.js +0 -6
  2387. langflow/frontend/assets/eraser-DKnTayMO.js +0 -6
  2388. langflow/frontend/assets/ethernet-port-D-hmYqE9.js +0 -6
  2389. langflow/frontend/assets/euro-4FhylVum.js +0 -6
  2390. langflow/frontend/assets/expand-DGuHJZtp.js +0 -6
  2391. langflow/frontend/assets/eye-2lruycw0.js +0 -6
  2392. langflow/frontend/assets/eye-closed-D7fKsq1v.js +0 -6
  2393. langflow/frontend/assets/eye-off-B7DTNfPe.js +0 -6
  2394. langflow/frontend/assets/facebook-Bo3KRJjk.js +0 -6
  2395. langflow/frontend/assets/factory-DtAJt4rU.js +0 -6
  2396. langflow/frontend/assets/fan-DQPDw_WI.js +0 -6
  2397. langflow/frontend/assets/fast-forward-BJJD4cHS.js +0 -6
  2398. langflow/frontend/assets/feather-DyQJOlhi.js +0 -6
  2399. langflow/frontend/assets/fence-Dy4ujlzr.js +0 -6
  2400. langflow/frontend/assets/ferris-wheel-CEb8dUdY.js +0 -6
  2401. langflow/frontend/assets/figma-D_0zyllL.js +0 -6
  2402. langflow/frontend/assets/file-BgCI5bKS.js +0 -6
  2403. langflow/frontend/assets/file-archive-nTx4t6XU.js +0 -6
  2404. langflow/frontend/assets/file-audio-2-lLlctC0F.js +0 -6
  2405. langflow/frontend/assets/file-audio-Bx2b2iS1.js +0 -6
  2406. langflow/frontend/assets/file-axis-3d-CFDr-mmw.js +0 -6
  2407. langflow/frontend/assets/file-badge-2-BodHR2dH.js +0 -6
  2408. langflow/frontend/assets/file-badge-RFsPKKYQ.js +0 -6
  2409. langflow/frontend/assets/file-box-LbnU_3W_.js +0 -6
  2410. langflow/frontend/assets/file-chart-column-DHHc2woy.js +0 -6
  2411. langflow/frontend/assets/file-chart-column-increasing-9okIUsoY.js +0 -6
  2412. langflow/frontend/assets/file-chart-line-BTGuPMjT.js +0 -6
  2413. langflow/frontend/assets/file-chart-pie-BlMvG50t.js +0 -6
  2414. langflow/frontend/assets/file-check-2-DTdcYTxS.js +0 -6
  2415. langflow/frontend/assets/file-check-7k4_fcLr.js +0 -6
  2416. langflow/frontend/assets/file-clock-Dg2QuFmG.js +0 -6
  2417. langflow/frontend/assets/file-code-2-CjCuexCU.js +0 -6
  2418. langflow/frontend/assets/file-code-D6Ct4NQA.js +0 -6
  2419. langflow/frontend/assets/file-cog-DjOTW2x1.js +0 -6
  2420. langflow/frontend/assets/file-diff-BV2KRZid.js +0 -6
  2421. langflow/frontend/assets/file-digit-D4XCzaOy.js +0 -6
  2422. langflow/frontend/assets/file-down-BUEDjMhC.js +0 -6
  2423. langflow/frontend/assets/file-heart-Doy3NQTr.js +0 -6
  2424. langflow/frontend/assets/file-image-D3ALo4rp.js +0 -6
  2425. langflow/frontend/assets/file-input-DxzFaJFK.js +0 -6
  2426. langflow/frontend/assets/file-json-2-PLrIFXcL.js +0 -6
  2427. langflow/frontend/assets/file-json-Chtai1j7.js +0 -6
  2428. langflow/frontend/assets/file-key-2-BRXagJAL.js +0 -6
  2429. langflow/frontend/assets/file-key-CwrjLLmh.js +0 -6
  2430. langflow/frontend/assets/file-lock-2-LuGS32Sp.js +0 -6
  2431. langflow/frontend/assets/file-lock-Rl-QSnAz.js +0 -6
  2432. langflow/frontend/assets/file-minus-2-wIJPGjAu.js +0 -6
  2433. langflow/frontend/assets/file-minus-DzxqLtIi.js +0 -6
  2434. langflow/frontend/assets/file-music-Bymengv5.js +0 -6
  2435. langflow/frontend/assets/file-output-BR8jMUko.js +0 -6
  2436. langflow/frontend/assets/file-pen-D8tQHRJU.js +0 -6
  2437. langflow/frontend/assets/file-pen-line-CK81CmAH.js +0 -6
  2438. langflow/frontend/assets/file-plus-2-HZ-sPLpE.js +0 -6
  2439. langflow/frontend/assets/file-plus-DkZZ43KA.js +0 -6
  2440. langflow/frontend/assets/file-question-De5nvYiI.js +0 -6
  2441. langflow/frontend/assets/file-scan-D3BrRtkT.js +0 -6
  2442. langflow/frontend/assets/file-search-2-30XAjKkS.js +0 -6
  2443. langflow/frontend/assets/file-search-7CSiHvFK.js +0 -6
  2444. langflow/frontend/assets/file-sliders-Ccfqf4aW.js +0 -6
  2445. langflow/frontend/assets/file-spreadsheet-CMkVlrA2.js +0 -6
  2446. langflow/frontend/assets/file-stack-DT3zhna_.js +0 -6
  2447. langflow/frontend/assets/file-symlink-DGRiYlUV.js +0 -6
  2448. langflow/frontend/assets/file-terminal-DwxTcqtO.js +0 -6
  2449. langflow/frontend/assets/file-text-M7y0fhWj.js +0 -6
  2450. langflow/frontend/assets/file-type-2-nbzHln4x.js +0 -6
  2451. langflow/frontend/assets/file-type-rQtkB28l.js +0 -6
  2452. langflow/frontend/assets/file-up-D2H5-lji.js +0 -6
  2453. langflow/frontend/assets/file-user-DcMhwk5m.js +0 -6
  2454. langflow/frontend/assets/file-video-2-C5iIElxE.js +0 -6
  2455. langflow/frontend/assets/file-video-BCINtsZg.js +0 -6
  2456. langflow/frontend/assets/file-volume-2-6lZFbWfm.js +0 -6
  2457. langflow/frontend/assets/file-volume-Biszrl6h.js +0 -6
  2458. langflow/frontend/assets/file-warning-CmgVFf6J.js +0 -6
  2459. langflow/frontend/assets/file-x-2-JUoOpeOo.js +0 -6
  2460. langflow/frontend/assets/file-x-BjnvUpBL.js +0 -6
  2461. langflow/frontend/assets/files-C5BxTslf.js +0 -6
  2462. langflow/frontend/assets/film-BFSHN3oe.js +0 -6
  2463. langflow/frontend/assets/fingerprint-Csit4LVp.js +0 -6
  2464. langflow/frontend/assets/fire-extinguisher-D8VXg1Xl.js +0 -6
  2465. langflow/frontend/assets/fish-aSZXSnmi.js +0 -6
  2466. langflow/frontend/assets/fish-off-_KhOPml4.js +0 -6
  2467. langflow/frontend/assets/fish-symbol-TS6BemzM.js +0 -6
  2468. langflow/frontend/assets/flag-CDKQxgw4.js +0 -6
  2469. langflow/frontend/assets/flag-off-snRLHCD_.js +0 -6
  2470. langflow/frontend/assets/flag-triangle-left-p1wRc3Ls.js +0 -6
  2471. langflow/frontend/assets/flag-triangle-right-Br_DpBch.js +0 -6
  2472. langflow/frontend/assets/flame-CfuHx_MO.js +0 -6
  2473. langflow/frontend/assets/flame-kindling-CtWnSNMy.js +0 -6
  2474. langflow/frontend/assets/flashlight-DRf2ZbpF.js +0 -6
  2475. langflow/frontend/assets/flashlight-off-2w3Nzjx-.js +0 -6
  2476. langflow/frontend/assets/flask-conical-CX8msMIb.js +0 -6
  2477. langflow/frontend/assets/flask-conical-off-Cr_PzyBA.js +0 -6
  2478. langflow/frontend/assets/flask-round-D2AwG3dv.js +0 -6
  2479. langflow/frontend/assets/flip-horizontal-2-DJ2AVD1P.js +0 -6
  2480. langflow/frontend/assets/flip-horizontal-BE0FI9jo.js +0 -6
  2481. langflow/frontend/assets/flip-vertical-2-Df78KFm6.js +0 -6
  2482. langflow/frontend/assets/flip-vertical-y-kYuE7I.js +0 -6
  2483. langflow/frontend/assets/flower-2-DTF2639o.js +0 -6
  2484. langflow/frontend/assets/flower-imOzkrnB.js +0 -6
  2485. langflow/frontend/assets/focus-B8YJBYPy.js +0 -6
  2486. langflow/frontend/assets/fold-horizontal-CUyqEpyC.js +0 -6
  2487. langflow/frontend/assets/fold-vertical-BuLokj6V.js +0 -6
  2488. langflow/frontend/assets/folder-B81GiGSS.js +0 -6
  2489. langflow/frontend/assets/folder-archive-DVM4hQ4e.js +0 -6
  2490. langflow/frontend/assets/folder-check-CjOqJPj5.js +0 -6
  2491. langflow/frontend/assets/folder-clock-CYoAIMTg.js +0 -6
  2492. langflow/frontend/assets/folder-closed-B2rWx3UG.js +0 -6
  2493. langflow/frontend/assets/folder-code-D2LvC0Yk.js +0 -6
  2494. langflow/frontend/assets/folder-cog-BCgWrDyu.js +0 -6
  2495. langflow/frontend/assets/folder-dot-eTxWx_Gb.js +0 -6
  2496. langflow/frontend/assets/folder-down-BmRuTS3_.js +0 -6
  2497. langflow/frontend/assets/folder-git-2-Deilw91G.js +0 -6
  2498. langflow/frontend/assets/folder-git-DPLi_am2.js +0 -6
  2499. langflow/frontend/assets/folder-heart-DiU_Y7cB.js +0 -6
  2500. langflow/frontend/assets/folder-input-DBEBqukG.js +0 -6
  2501. langflow/frontend/assets/folder-kanban-HS5hd1H_.js +0 -6
  2502. langflow/frontend/assets/folder-key-QPS2EXq0.js +0 -6
  2503. langflow/frontend/assets/folder-lock-DIVIA8TZ.js +0 -6
  2504. langflow/frontend/assets/folder-minus-DzwLZNVm.js +0 -6
  2505. langflow/frontend/assets/folder-open-DcjJ8Fh8.js +0 -6
  2506. langflow/frontend/assets/folder-open-dot-Czw-sX9k.js +0 -6
  2507. langflow/frontend/assets/folder-output-PX85S3mm.js +0 -6
  2508. langflow/frontend/assets/folder-pen-C-zxJ_Hy.js +0 -6
  2509. langflow/frontend/assets/folder-plus-CKBtX7bC.js +0 -6
  2510. langflow/frontend/assets/folder-root-DYZvIUYC.js +0 -6
  2511. langflow/frontend/assets/folder-search-2-BL8KesXu.js +0 -6
  2512. langflow/frontend/assets/folder-search-Cp9m0Gd0.js +0 -6
  2513. langflow/frontend/assets/folder-symlink-CO14LhSU.js +0 -6
  2514. langflow/frontend/assets/folder-sync-hhW7dtwP.js +0 -6
  2515. langflow/frontend/assets/folder-tree-BPjpxrHr.js +0 -6
  2516. langflow/frontend/assets/folder-up-ChaLrHPp.js +0 -6
  2517. langflow/frontend/assets/folder-x-D-1m5y33.js +0 -6
  2518. langflow/frontend/assets/folders-CB95Saji.js +0 -6
  2519. langflow/frontend/assets/footprints-EznvHGh5.js +0 -6
  2520. langflow/frontend/assets/forklift-BVCBa6jY.js +0 -6
  2521. langflow/frontend/assets/forward-C1iVolqu.js +0 -6
  2522. langflow/frontend/assets/frame-DNDRrTNk.js +0 -6
  2523. langflow/frontend/assets/framer-CMMWU-1T.js +0 -6
  2524. langflow/frontend/assets/frown-DP1jIb1u.js +0 -6
  2525. langflow/frontend/assets/fuel-Dh9an1tH.js +0 -6
  2526. langflow/frontend/assets/fullscreen-CxQlqVK-.js +0 -6
  2527. langflow/frontend/assets/funnel-DYmd_HdI.js +0 -6
  2528. langflow/frontend/assets/funnel-plus-DSDSI8CB.js +0 -6
  2529. langflow/frontend/assets/funnel-x-JX4ZBBIO.js +0 -6
  2530. langflow/frontend/assets/gallery-horizontal-DoLdjoaf.js +0 -6
  2531. langflow/frontend/assets/gallery-horizontal-end-RMxxyINw.js +0 -6
  2532. langflow/frontend/assets/gallery-thumbnails-EgmLv4YY.js +0 -6
  2533. langflow/frontend/assets/gallery-vertical-YmsgVcuN.js +0 -6
  2534. langflow/frontend/assets/gallery-vertical-end-CLIRyDvg.js +0 -6
  2535. langflow/frontend/assets/gamepad-2-x4GJaYvn.js +0 -6
  2536. langflow/frontend/assets/gamepad-D8VsJG0p.js +0 -6
  2537. langflow/frontend/assets/gauge-SJTeiKVQ.js +0 -6
  2538. langflow/frontend/assets/gavel-B5RjdN8V.js +0 -6
  2539. langflow/frontend/assets/gem-jeeIVOyW.js +0 -6
  2540. langflow/frontend/assets/ghost-DZN8Y0VB.js +0 -6
  2541. langflow/frontend/assets/gift-D9PGjSon.js +0 -6
  2542. langflow/frontend/assets/git-branch-mAjsDbYi.js +0 -6
  2543. langflow/frontend/assets/git-branch-plus-DZis-IPm.js +0 -6
  2544. langflow/frontend/assets/git-commit-horizontal-BO6LgYbk.js +0 -6
  2545. langflow/frontend/assets/git-commit-vertical-C4poVr67.js +0 -6
  2546. langflow/frontend/assets/git-compare-Df33agfF.js +0 -6
  2547. langflow/frontend/assets/git-compare-arrows-K0ChJ2X2.js +0 -6
  2548. langflow/frontend/assets/git-fork-BXsiu2Ey.js +0 -6
  2549. langflow/frontend/assets/git-graph-BGo4_6Pg.js +0 -6
  2550. langflow/frontend/assets/git-merge-BD73VcR6.js +0 -6
  2551. langflow/frontend/assets/git-pull-request-arrow-DUTzRchB.js +0 -6
  2552. langflow/frontend/assets/git-pull-request-closed-CZbHDceO.js +0 -6
  2553. langflow/frontend/assets/git-pull-request-create-Dp-XQVj3.js +0 -6
  2554. langflow/frontend/assets/git-pull-request-create-arrow-C8LHFBbe.js +0 -6
  2555. langflow/frontend/assets/git-pull-request-draft-CEkepoUD.js +0 -6
  2556. langflow/frontend/assets/git-pull-request-gsSggnIc.js +0 -6
  2557. langflow/frontend/assets/github-BzKDbrS_.js +0 -6
  2558. langflow/frontend/assets/gitlab-A2WluwT9.js +0 -6
  2559. langflow/frontend/assets/glass-water-K-hADKoa.js +0 -6
  2560. langflow/frontend/assets/glasses-DCDMc4a_.js +0 -6
  2561. langflow/frontend/assets/globe--_05dSJ5.js +0 -6
  2562. langflow/frontend/assets/globe-lock-CpHDUNbG.js +0 -6
  2563. langflow/frontend/assets/goal-DhloJjtR.js +0 -6
  2564. langflow/frontend/assets/grab-DmjrXMMX.js +0 -6
  2565. langflow/frontend/assets/graduation-cap-DX_tY0jc.js +0 -6
  2566. langflow/frontend/assets/grape-BVnlQWVh.js +0 -6
  2567. langflow/frontend/assets/grid-2x2-Bc9y0pyt.js +0 -6
  2568. langflow/frontend/assets/grid-2x2-check-vTAG-fzG.js +0 -6
  2569. langflow/frontend/assets/grid-2x2-plus-5KL7nCxj.js +0 -6
  2570. langflow/frontend/assets/grid-2x2-x-rS3VvhOy.js +0 -6
  2571. langflow/frontend/assets/grid-3x3-Co2xPmHv.js +0 -6
  2572. langflow/frontend/assets/grip-Df0g2DGG.js +0 -6
  2573. langflow/frontend/assets/grip-horizontal-BO2dAjYG.js +0 -6
  2574. langflow/frontend/assets/grip-vertical-5o6l346_.js +0 -6
  2575. langflow/frontend/assets/group-CzyyxbE0.js +0 -6
  2576. langflow/frontend/assets/guitar-DLWWG6iG.js +0 -6
  2577. langflow/frontend/assets/ham-B9z5Aj2j.js +0 -6
  2578. langflow/frontend/assets/hammer-DVSJJ8mt.js +0 -6
  2579. langflow/frontend/assets/hand-C8e8RVQX.js +0 -6
  2580. langflow/frontend/assets/hand-coins-B8KT6KYb.js +0 -6
  2581. langflow/frontend/assets/hand-heart-HH-h6TuY.js +0 -6
  2582. langflow/frontend/assets/hand-helping-DlrRO9XZ.js +0 -6
  2583. langflow/frontend/assets/hand-metal-DcinDoRY.js +0 -6
  2584. langflow/frontend/assets/hand-platter-CxHXkpH_.js +0 -6
  2585. langflow/frontend/assets/handshake-TGfQCxRx.js +0 -6
  2586. langflow/frontend/assets/hard-drive-BJffTUQ5.js +0 -6
  2587. langflow/frontend/assets/hard-drive-download-DLtdbclQ.js +0 -6
  2588. langflow/frontend/assets/hard-drive-upload-kJN8heMo.js +0 -6
  2589. langflow/frontend/assets/hard-hat-HpUJLm8Z.js +0 -6
  2590. langflow/frontend/assets/hash-_VJXXJfM.js +0 -6
  2591. langflow/frontend/assets/haze-BXTuvki4.js +0 -6
  2592. langflow/frontend/assets/hdmi-port-CJ8Ox6yX.js +0 -6
  2593. langflow/frontend/assets/heading-1-C2oqvpYB.js +0 -6
  2594. langflow/frontend/assets/heading-2-CT6h-JqZ.js +0 -6
  2595. langflow/frontend/assets/heading-3-Cwr7gmTa.js +0 -6
  2596. langflow/frontend/assets/heading-4-B8CzpRTq.js +0 -6
  2597. langflow/frontend/assets/heading-5-rHlLgyp2.js +0 -6
  2598. langflow/frontend/assets/heading-6-BJcOv1-N.js +0 -6
  2599. langflow/frontend/assets/heading-_niO4huG.js +0 -6
  2600. langflow/frontend/assets/headphone-off-Bcd86ged.js +0 -6
  2601. langflow/frontend/assets/headphones-D4AypE3j.js +0 -6
  2602. langflow/frontend/assets/headset-DOLzvpJN.js +0 -6
  2603. langflow/frontend/assets/heart-crack-DLIyDSyc.js +0 -6
  2604. langflow/frontend/assets/heart-handshake-DUDq-2bs.js +0 -6
  2605. langflow/frontend/assets/heart-minus-ODTNsyrt.js +0 -6
  2606. langflow/frontend/assets/heart-off-DnRgqWAu.js +0 -6
  2607. langflow/frontend/assets/heart-plus-Bi8ShabO.js +0 -6
  2608. langflow/frontend/assets/heart-pulse-aDE96gF9.js +0 -6
  2609. langflow/frontend/assets/heart-ujvOuBdC.js +0 -6
  2610. langflow/frontend/assets/heater-B7khcyE7.js +0 -6
  2611. langflow/frontend/assets/hexagon-BWo-d30G.js +0 -6
  2612. langflow/frontend/assets/highlighter-ERo9X6Pv.js +0 -6
  2613. langflow/frontend/assets/history-B8LLGE-j.js +0 -6
  2614. langflow/frontend/assets/hop-C0UGpuhZ.js +0 -6
  2615. langflow/frontend/assets/hop-off-C0G-1tHX.js +0 -6
  2616. langflow/frontend/assets/hospital-CHbU3HWB.js +0 -6
  2617. langflow/frontend/assets/hotel-iiIap0Mu.js +0 -6
  2618. langflow/frontend/assets/hourglass-BFXjIa3X.js +0 -6
  2619. langflow/frontend/assets/house-plug-CfqOpRdm.js +0 -6
  2620. langflow/frontend/assets/house-plus-BLtRGwT4.js +0 -6
  2621. langflow/frontend/assets/house-wifi-MgYtuynk.js +0 -6
  2622. langflow/frontend/assets/house-wsFNig_N.js +0 -6
  2623. langflow/frontend/assets/ice-cream-bowl-qCunWpf4.js +0 -6
  2624. langflow/frontend/assets/ice-cream-cone-BTB82XDE.js +0 -6
  2625. langflow/frontend/assets/id-card-BuOBmRe6.js +0 -6
  2626. langflow/frontend/assets/image--lpmpxLH.js +0 -6
  2627. langflow/frontend/assets/image-down-BYuuus5_.js +0 -6
  2628. langflow/frontend/assets/image-minus-C6L4KamL.js +0 -6
  2629. langflow/frontend/assets/image-off-ghYqm0S8.js +0 -6
  2630. langflow/frontend/assets/image-play-DMFs592Y.js +0 -6
  2631. langflow/frontend/assets/image-plus-D7KasOnB.js +0 -6
  2632. langflow/frontend/assets/image-up-SxGTq0a1.js +0 -6
  2633. langflow/frontend/assets/image-upscale-DcnH9ujq.js +0 -6
  2634. langflow/frontend/assets/images-CeIMjAuX.js +0 -6
  2635. langflow/frontend/assets/import-DbQQqK3M.js +0 -6
  2636. langflow/frontend/assets/inbox-Y0iUKqcT.js +0 -6
  2637. langflow/frontend/assets/indent-decrease-Bwrscpy0.js +0 -6
  2638. langflow/frontend/assets/indent-increase-CQLt5g62.js +0 -6
  2639. langflow/frontend/assets/index--KnEw8BT.js +0 -1
  2640. langflow/frontend/assets/index-1EUQcjIq.js +0 -1
  2641. langflow/frontend/assets/index-29PZUoyO.js +0 -1
  2642. langflow/frontend/assets/index-5XPr72Qd.js +0 -1
  2643. langflow/frontend/assets/index-6jW9iy86.js +0 -2
  2644. langflow/frontend/assets/index-8Cll8WPK.js +0 -1
  2645. langflow/frontend/assets/index-8Gg12NVg.js +0 -1
  2646. langflow/frontend/assets/index-98JjDf8-.js +0 -1
  2647. langflow/frontend/assets/index-B2AsESpW.js +0 -1
  2648. langflow/frontend/assets/index-B4-7X9AI.js +0 -1
  2649. langflow/frontend/assets/index-B4JjT38u.js +0 -1
  2650. langflow/frontend/assets/index-B4dwBdev.js +0 -1
  2651. langflow/frontend/assets/index-B7mcLcIr.js +0 -1
  2652. langflow/frontend/assets/index-B9XFmSSH.js +0 -381
  2653. langflow/frontend/assets/index-BAB4fGIJ.js +0 -1
  2654. langflow/frontend/assets/index-BBi2ebw5.js +0 -1
  2655. langflow/frontend/assets/index-BDhvPtDu.js +0 -1
  2656. langflow/frontend/assets/index-BFSylzA5.js +0 -1
  2657. langflow/frontend/assets/index-BFZ64h4D.js +0 -1
  2658. langflow/frontend/assets/index-BHqTnZwj.js +0 -1
  2659. langflow/frontend/assets/index-BMyMHUkT.js +0 -1
  2660. langflow/frontend/assets/index-BPk9UESJ.js +0 -1
  2661. langflow/frontend/assets/index-BPz83s1E.js +0 -1
  2662. langflow/frontend/assets/index-BRW6ewbc.js +0 -1
  2663. langflow/frontend/assets/index-BRbLkm9V.js +0 -1
  2664. langflow/frontend/assets/index-BSKRBsEx.js +0 -1
  2665. langflow/frontend/assets/index-BTHVLy-7.js +0 -1
  2666. langflow/frontend/assets/index-BUPdGJci.js +0 -205
  2667. langflow/frontend/assets/index-BWsNpA_z.js +0 -1
  2668. langflow/frontend/assets/index-BX8Lhns7.js +0 -1
  2669. langflow/frontend/assets/index-BXErfbhD.js +0 -1
  2670. langflow/frontend/assets/index-BXr6QTLv.js +0 -1
  2671. langflow/frontend/assets/index-BZ-UFtDF.js +0 -1
  2672. langflow/frontend/assets/index-BaAcfnsO.js +0 -1
  2673. langflow/frontend/assets/index-BasAglYR.js +0 -1
  2674. langflow/frontend/assets/index-BcV29rpT.js +0 -1
  2675. langflow/frontend/assets/index-Bddr2Dt5.js +0 -1
  2676. langflow/frontend/assets/index-BewpJJiY.js +0 -1
  2677. langflow/frontend/assets/index-BgGMy7m0.js +0 -1
  2678. langflow/frontend/assets/index-BgkW0SGv.js +0 -1
  2679. langflow/frontend/assets/index-BgzuKUJw.js +0 -1
  2680. langflow/frontend/assets/index-BjC0H4lI.js +0 -1
  2681. langflow/frontend/assets/index-Bk5XZgoA.js +0 -1
  2682. langflow/frontend/assets/index-BkVUqli0.js +0 -1
  2683. langflow/frontend/assets/index-Bl7KWzZw.js +0 -1
  2684. langflow/frontend/assets/index-BmQcDkkL.js +0 -1
  2685. langflow/frontend/assets/index-BoLBdJ7H.js +0 -1
  2686. langflow/frontend/assets/index-Bp9wTHpt.js +0 -1
  2687. langflow/frontend/assets/index-BpJbimWy.js +0 -1
  2688. langflow/frontend/assets/index-Brz-V1eY.js +0 -1
  2689. langflow/frontend/assets/index-Bv8qlvTh.js +0 -767
  2690. langflow/frontend/assets/index-Bvd4PGe1.js +0 -1
  2691. langflow/frontend/assets/index-ByN0ffsP.js +0 -1
  2692. langflow/frontend/assets/index-BzBbkJh4.js +0 -1
  2693. langflow/frontend/assets/index-BzRdbD8k.js +0 -127
  2694. langflow/frontend/assets/index-C14AFgfo.js +0 -1
  2695. langflow/frontend/assets/index-C3T9XNME.js +0 -1
  2696. langflow/frontend/assets/index-C4rXXdIu.js +0 -1
  2697. langflow/frontend/assets/index-C576x0WV.js +0 -1
  2698. langflow/frontend/assets/index-C5CbD6QO.js +0 -1
  2699. langflow/frontend/assets/index-C8DIeWQq.js +0 -1
  2700. langflow/frontend/assets/index-C9DroFfA.js +0 -1
  2701. langflow/frontend/assets/index-CBIfuke7.js +0 -1
  2702. langflow/frontend/assets/index-CC-BvXJs.js +0 -1
  2703. langflow/frontend/assets/index-CC462a3K.js +0 -1
  2704. langflow/frontend/assets/index-CErPSub6.js +0 -1
  2705. langflow/frontend/assets/index-CJW7PPoy.js +0 -1
  2706. langflow/frontend/assets/index-CPfe5I3t.js +0 -1
  2707. langflow/frontend/assets/index-CQe6QFmd.js +0 -1
  2708. langflow/frontend/assets/index-CRZ8gVYx.js +0 -1
  2709. langflow/frontend/assets/index-CWFH4Pao.js +0 -1
  2710. langflow/frontend/assets/index-CWeo5Ory.js +0 -185
  2711. langflow/frontend/assets/index-CXK4MbMY.js +0 -1
  2712. langflow/frontend/assets/index-CZgBm-ZJ.js +0 -1
  2713. langflow/frontend/assets/index-CZkUxfOh.js +0 -1
  2714. langflow/frontend/assets/index-C_lehBkg.js +0 -1
  2715. langflow/frontend/assets/index-CbBwlEe-.js +0 -1
  2716. langflow/frontend/assets/index-CcLE6_IE.js +0 -1
  2717. langflow/frontend/assets/index-CeJhzK45.js +0 -7320
  2718. langflow/frontend/assets/index-CeLq8eye.js +0 -13
  2719. langflow/frontend/assets/index-CfhzW9Hx.js +0 -1
  2720. langflow/frontend/assets/index-CfltpNlT.js +0 -1
  2721. langflow/frontend/assets/index-CgcCDmA3.js +0 -1
  2722. langflow/frontend/assets/index-ChPSIM0s.js +0 -1
  2723. langflow/frontend/assets/index-CkhM1lz8.js +0 -281
  2724. langflow/frontend/assets/index-Cl6wvpKb.js +0 -1
  2725. langflow/frontend/assets/index-CnOaJter.js +0 -1
  2726. langflow/frontend/assets/index-Comf51_g.js +0 -1
  2727. langflow/frontend/assets/index-CoptJ2Bg.js +0 -1
  2728. langflow/frontend/assets/index-Cq-tm2ZB.js +0 -1
  2729. langflow/frontend/assets/index-CrTYGn2f.js +0 -1
  2730. langflow/frontend/assets/index-CtePOmcv.js +0 -1
  2731. langflow/frontend/assets/index-Cu6Q5d_j.js +0 -1
  2732. langflow/frontend/assets/index-Cu7S3apw.js +0 -1
  2733. langflow/frontend/assets/index-Cu8Ura34.js +0 -1
  2734. langflow/frontend/assets/index-CubrrrxM.js +0 -1
  2735. langflow/frontend/assets/index-Cur6Glh7.js +0 -1
  2736. langflow/frontend/assets/index-CutpSCVT.js +0 -1
  2737. langflow/frontend/assets/index-Cv3JYvae.js +0 -1
  2738. langflow/frontend/assets/index-CvLMfAbY.js +0 -1
  2739. langflow/frontend/assets/index-CvaWmNDd.js +0 -1
  2740. langflow/frontend/assets/index-CxX4G6jn.js +0 -1
  2741. langflow/frontend/assets/index-CxX5p2Qt.js +0 -1
  2742. langflow/frontend/assets/index-Cy1bNfv1.js +0 -1
  2743. langflow/frontend/assets/index-CzV6zI47.js +0 -1
  2744. langflow/frontend/assets/index-D-VMgEr1.js +0 -1
  2745. langflow/frontend/assets/index-D16OeWcX.js +0 -1
  2746. langflow/frontend/assets/index-D1bzsnKI.js +0 -1
  2747. langflow/frontend/assets/index-D1yozt2k.js +0 -1
  2748. langflow/frontend/assets/index-D3M7FnF-.js +0 -1
  2749. langflow/frontend/assets/index-D4jDW0ar.js +0 -495
  2750. langflow/frontend/assets/index-D5z5GmZX.js +0 -1
  2751. langflow/frontend/assets/index-D8mGlxnI.js +0 -1
  2752. langflow/frontend/assets/index-DAEurvCd.css +0 -1
  2753. langflow/frontend/assets/index-DBbJnsbR.js +0 -1
  2754. langflow/frontend/assets/index-DFXzzB0U.js +0 -20
  2755. langflow/frontend/assets/index-DGTIHXSW.js +0 -1
  2756. langflow/frontend/assets/index-DH3cYxHx.js +0 -1
  2757. langflow/frontend/assets/index-DJoguFjq.js +0 -1
  2758. langflow/frontend/assets/index-DK6oNMXD.js +0 -1
  2759. langflow/frontend/assets/index-DLKUdxpn.js +0 -1
  2760. langflow/frontend/assets/index-DNHqbgWU.js +0 -1
  2761. langflow/frontend/assets/index-DPUxVjMD.js +0 -1
  2762. langflow/frontend/assets/index-DTBs8ITA.js +0 -1
  2763. langflow/frontend/assets/index-DTFIOnT4.js +0 -7
  2764. langflow/frontend/assets/index-DTItNznv.js +0 -21
  2765. langflow/frontend/assets/index-DWLXm_oO.js +0 -1
  2766. langflow/frontend/assets/index-DWx8F7Gg.js +0 -1
  2767. langflow/frontend/assets/index-DXejUIAr.js +0 -1
  2768. langflow/frontend/assets/index-DYb_0qdi.js +0 -1
  2769. langflow/frontend/assets/index-D_kwFpmP.js +0 -1
  2770. langflow/frontend/assets/index-DbSVfwG1.js +0 -1
  2771. langflow/frontend/assets/index-DdKL3XIU.js +0 -1
  2772. langflow/frontend/assets/index-DeG9S3tr.js +0 -1
  2773. langflow/frontend/assets/index-DhC1XvtN.js +0 -1
  2774. langflow/frontend/assets/index-DicOFbQ_.js +0 -1
  2775. langflow/frontend/assets/index-Dkn_Eh6e.js +0 -1
  2776. langflow/frontend/assets/index-DlHOIimc.js +0 -1
  2777. langflow/frontend/assets/index-DoiIm4xx.js +0 -1
  2778. langflow/frontend/assets/index-DpFBag2E.js +0 -1
  2779. langflow/frontend/assets/index-DpZhV-uW.js +0 -1
  2780. langflow/frontend/assets/index-DqnDzUof.js +0 -1
  2781. langflow/frontend/assets/index-DrA7vc0p.js +0 -1
  2782. langflow/frontend/assets/index-DtgyIkY4.js +0 -1
  2783. langflow/frontend/assets/index-DuPgnV9t.js +0 -1
  2784. langflow/frontend/assets/index-DwL4yp6n.js +0 -1
  2785. langflow/frontend/assets/index-DzcJfrGS.js +0 -1
  2786. langflow/frontend/assets/index-EuaST_Qf.js +0 -1
  2787. langflow/frontend/assets/index-GjwRYtS-.js +0 -1
  2788. langflow/frontend/assets/index-H6ZrNrxY.js +0 -1
  2789. langflow/frontend/assets/index-Ien0c_iE.js +0 -1
  2790. langflow/frontend/assets/index-Iovu5b5y.js +0 -1
  2791. langflow/frontend/assets/index-Nan9ElYz.js +0 -1
  2792. langflow/frontend/assets/index-NqL5he8K.js +0 -1
  2793. langflow/frontend/assets/index-QIvaJk8A.js +0 -1
  2794. langflow/frontend/assets/index-Qg8PJwVF.js +0 -1
  2795. langflow/frontend/assets/index-T8pQijy_.js +0 -1
  2796. langflow/frontend/assets/index-VG6KlFH5.js +0 -1
  2797. langflow/frontend/assets/index-Y_m7R84j.js +0 -1
  2798. langflow/frontend/assets/index-b6QfLAE8.js +0 -1
  2799. langflow/frontend/assets/index-bsMtdRle.js +0 -1
  2800. langflow/frontend/assets/index-d5gDb8Qx.js +0 -1
  2801. langflow/frontend/assets/index-e2L4TCgN.js +0 -1
  2802. langflow/frontend/assets/index-eIKy_Wl0.js +0 -1
  2803. langflow/frontend/assets/index-ehVwFpGU.js +0 -108
  2804. langflow/frontend/assets/index-f_2AeGCs.js +0 -1
  2805. langflow/frontend/assets/index-fncb7fql.js +0 -1
  2806. langflow/frontend/assets/index-iQwKU8_T.js +0 -1
  2807. langflow/frontend/assets/index-jAZTZjvO.js +0 -1
  2808. langflow/frontend/assets/index-jbpXNToH.js +0 -1
  2809. langflow/frontend/assets/index-kLOWUhQR.js +0 -1
  2810. langflow/frontend/assets/index-kmZdzHEW.js +0 -1
  2811. langflow/frontend/assets/index-l8MrlW3v.js +0 -1
  2812. langflow/frontend/assets/index-lZpJseCp.js +0 -1
  2813. langflow/frontend/assets/index-nQbTiTRx.js +0 -399
  2814. langflow/frontend/assets/index-nsAGPYFk.js +0 -1
  2815. langflow/frontend/assets/index-o8TkImQk.js +0 -1
  2816. langflow/frontend/assets/index-sjJRRTXU.js +0 -1
  2817. langflow/frontend/assets/index-tr0BPrPI.js +0 -1
  2818. langflow/frontend/assets/index-vi038SM9.js +0 -1
  2819. langflow/frontend/assets/index-xbv0pViQ.js +0 -1
  2820. langflow/frontend/assets/index-xn9ydmE-.js +0 -1
  2821. langflow/frontend/assets/index-xqOzOZYD.js +0 -1
  2822. langflow/frontend/assets/index-yL1V3Qv-.js +0 -1
  2823. langflow/frontend/assets/indian-rupee-pVdF2Gi1.js +0 -6
  2824. langflow/frontend/assets/infinity-BUlY5Zqf.js +0 -6
  2825. langflow/frontend/assets/info-9re3sk28.js +0 -6
  2826. langflow/frontend/assets/inspection-panel-BYy9V3ab.js +0 -6
  2827. langflow/frontend/assets/instagram-By8sntmX.js +0 -6
  2828. langflow/frontend/assets/italic-wIPJkQNf.js +0 -6
  2829. langflow/frontend/assets/iteration-ccw-BZj13mio.js +0 -6
  2830. langflow/frontend/assets/iteration-cw-BDJe2WLL.js +0 -6
  2831. langflow/frontend/assets/japanese-yen-BHvFxTBz.js +0 -6
  2832. langflow/frontend/assets/joystick-AxZwTLDe.js +0 -6
  2833. langflow/frontend/assets/kanban-P8WEKyMi.js +0 -6
  2834. langflow/frontend/assets/key-Nlu2UcDg.js +0 -6
  2835. langflow/frontend/assets/key-round-OCt8gZLV.js +0 -6
  2836. langflow/frontend/assets/key-square-RRX_LK7y.js +0 -6
  2837. langflow/frontend/assets/keyboard-CSPOwXE6.js +0 -6
  2838. langflow/frontend/assets/keyboard-music-774jHyCO.js +0 -6
  2839. langflow/frontend/assets/keyboard-off-CE7Vflf3.js +0 -6
  2840. langflow/frontend/assets/lamp-CpgHgK1U.js +0 -6
  2841. langflow/frontend/assets/lamp-ceiling-BZCeTFuw.js +0 -6
  2842. langflow/frontend/assets/lamp-desk-DGgeTiSx.js +0 -6
  2843. langflow/frontend/assets/lamp-floor-B3RleqUY.js +0 -6
  2844. langflow/frontend/assets/lamp-wall-down-BilrVJrs.js +0 -6
  2845. langflow/frontend/assets/lamp-wall-up-1bECQE2f.js +0 -6
  2846. langflow/frontend/assets/land-plot-C-TvGPDJ.js +0 -6
  2847. langflow/frontend/assets/landmark-Cv7EjgP6.js +0 -6
  2848. langflow/frontend/assets/languages-DvIqji6H.js +0 -6
  2849. langflow/frontend/assets/laptop-BNspbQHL.js +0 -6
  2850. langflow/frontend/assets/laptop-minimal-DapwSIsQ.js +0 -6
  2851. langflow/frontend/assets/laptop-minimal-check-DhzfpFEx.js +0 -6
  2852. langflow/frontend/assets/lasso-nPrVjdsP.js +0 -6
  2853. langflow/frontend/assets/lasso-select-BawoC0lx.js +0 -6
  2854. langflow/frontend/assets/laugh-D8kPrPMU.js +0 -6
  2855. langflow/frontend/assets/layers-2-_WH5lJ1o.js +0 -6
  2856. langflow/frontend/assets/layers-hptgFceS.js +0 -6
  2857. langflow/frontend/assets/layout-dashboard-B27B_DfP.js +0 -6
  2858. langflow/frontend/assets/layout-grid-DqNylleT.js +0 -6
  2859. langflow/frontend/assets/layout-list-C_TpsrJp.js +0 -6
  2860. langflow/frontend/assets/layout-panel-left-YO6pxpjB.js +0 -6
  2861. langflow/frontend/assets/layout-panel-top-DJdj4WTE.js +0 -6
  2862. langflow/frontend/assets/layout-template-D6WWOPH1.js +0 -6
  2863. langflow/frontend/assets/lazyIconImports-DBIChvrW.js +0 -2
  2864. langflow/frontend/assets/leaf-gFzIiT_y.js +0 -6
  2865. langflow/frontend/assets/leafy-green-DocswmTW.js +0 -6
  2866. langflow/frontend/assets/lectern-DZw2qavD.js +0 -6
  2867. langflow/frontend/assets/letter-text-B-cw7ff9.js +0 -6
  2868. langflow/frontend/assets/library-big-Db6njVrA.js +0 -6
  2869. langflow/frontend/assets/library-dnIZ0Zl4.js +0 -6
  2870. langflow/frontend/assets/life-buoy-BhCy4ht_.js +0 -6
  2871. langflow/frontend/assets/ligature-DkfmSwiv.js +0 -6
  2872. langflow/frontend/assets/lightbulb-C18dWXpp.js +0 -6
  2873. langflow/frontend/assets/lightbulb-off-BF5r0iL0.js +0 -6
  2874. langflow/frontend/assets/link-2-BYQhnbje.js +0 -6
  2875. langflow/frontend/assets/link-2-off-BEcG4R3r.js +0 -6
  2876. langflow/frontend/assets/link-AH5Wl-a4.js +0 -6
  2877. langflow/frontend/assets/linkedin-CEBp4FBE.js +0 -6
  2878. langflow/frontend/assets/list-CG0vfZ4V.js +0 -6
  2879. langflow/frontend/assets/list-check-C-rzLxA6.js +0 -6
  2880. langflow/frontend/assets/list-checks-CRUr9PvA.js +0 -6
  2881. langflow/frontend/assets/list-collapse-DnYuQ6r3.js +0 -6
  2882. langflow/frontend/assets/list-end-Dm7rhbCd.js +0 -6
  2883. langflow/frontend/assets/list-filter-Cse_ZX6c.js +0 -6
  2884. langflow/frontend/assets/list-filter-plus-DreWy2aT.js +0 -6
  2885. langflow/frontend/assets/list-minus-COgNwXUK.js +0 -6
  2886. langflow/frontend/assets/list-music-DAdKnyGv.js +0 -6
  2887. langflow/frontend/assets/list-ordered-xeop85yr.js +0 -6
  2888. langflow/frontend/assets/list-plus-BB1bVCo6.js +0 -6
  2889. langflow/frontend/assets/list-restart-M8UXDvuc.js +0 -6
  2890. langflow/frontend/assets/list-start-BU-fLD0Y.js +0 -6
  2891. langflow/frontend/assets/list-todo-DlW3CMOx.js +0 -6
  2892. langflow/frontend/assets/list-tree-CchaAYj2.js +0 -6
  2893. langflow/frontend/assets/list-video-DjprPMBU.js +0 -6
  2894. langflow/frontend/assets/list-x-DqO1RMBC.js +0 -6
  2895. langflow/frontend/assets/loader-5ODGFx3b.js +0 -6
  2896. langflow/frontend/assets/loader-circle-DMvRPzIg.js +0 -6
  2897. langflow/frontend/assets/loader-pinwheel-gS2KgThI.js +0 -6
  2898. langflow/frontend/assets/locate-fixed-vswgnTb8.js +0 -6
  2899. langflow/frontend/assets/locate-off-PGrPX3-Z.js +0 -6
  2900. langflow/frontend/assets/locate-uiiGWHSr.js +0 -6
  2901. langflow/frontend/assets/location-edit-D49GoYAs.js +0 -6
  2902. langflow/frontend/assets/lock-Dxur9uP4.js +0 -6
  2903. langflow/frontend/assets/lock-keyhole-D_-u2JOw.js +0 -6
  2904. langflow/frontend/assets/lock-keyhole-open-DmZ6bQjJ.js +0 -6
  2905. langflow/frontend/assets/lock-open-h1Ym2xNL.js +0 -6
  2906. langflow/frontend/assets/log-in-Cl9pQnv7.js +0 -6
  2907. langflow/frontend/assets/log-out-JYJLo8eH.js +0 -6
  2908. langflow/frontend/assets/logs-GcXrmpIo.js +0 -6
  2909. langflow/frontend/assets/lollipop-BlIf0gIL.js +0 -6
  2910. langflow/frontend/assets/luggage-ChDcSLir.js +0 -6
  2911. langflow/frontend/assets/magnet-CbTUrk8x.js +0 -6
  2912. langflow/frontend/assets/mail-Cf4gAoUh.js +0 -6
  2913. langflow/frontend/assets/mail-check-Ce4qmAmv.js +0 -6
  2914. langflow/frontend/assets/mail-minus-Dgqf6Ald.js +0 -6
  2915. langflow/frontend/assets/mail-open-CbUUxcsM.js +0 -6
  2916. langflow/frontend/assets/mail-plus-BrkiFK_t.js +0 -6
  2917. langflow/frontend/assets/mail-question-09_XCtkE.js +0 -6
  2918. langflow/frontend/assets/mail-search-CafN7oQe.js +0 -6
  2919. langflow/frontend/assets/mail-warning-CeDkPBCu.js +0 -6
  2920. langflow/frontend/assets/mail-x-KYocmNqK.js +0 -6
  2921. langflow/frontend/assets/mailbox-DsBreztD.js +0 -6
  2922. langflow/frontend/assets/mails-n7o2pBaH.js +0 -6
  2923. langflow/frontend/assets/map-Ohn-fSvu.js +0 -6
  2924. langflow/frontend/assets/map-pin-D85V5JCr.js +0 -6
  2925. langflow/frontend/assets/map-pin-check-gad7z6qe.js +0 -6
  2926. langflow/frontend/assets/map-pin-check-inside-CEabgSgu.js +0 -6
  2927. langflow/frontend/assets/map-pin-house-BNgb46Ym.js +0 -6
  2928. langflow/frontend/assets/map-pin-minus-3R9LpdKu.js +0 -6
  2929. langflow/frontend/assets/map-pin-minus-inside-Bg71nHn1.js +0 -6
  2930. langflow/frontend/assets/map-pin-off-DmD-D3XC.js +0 -6
  2931. langflow/frontend/assets/map-pin-plus-Bkf6L6uc.js +0 -6
  2932. langflow/frontend/assets/map-pin-plus-inside-DpfCc6vJ.js +0 -6
  2933. langflow/frontend/assets/map-pin-x-DF0xYkej.js +0 -6
  2934. langflow/frontend/assets/map-pin-x-inside-1BZADHy2.js +0 -6
  2935. langflow/frontend/assets/map-pinned-B_AlAX4L.js +0 -6
  2936. langflow/frontend/assets/map-plus-idyGiDTJ.js +0 -6
  2937. langflow/frontend/assets/mars-fMEU-Od8.js +0 -6
  2938. langflow/frontend/assets/mars-stroke-D5ZuK8Lg.js +0 -6
  2939. langflow/frontend/assets/martini-JabiLK4t.js +0 -6
  2940. langflow/frontend/assets/maximize-2-DH1SC2Ho.js +0 -6
  2941. langflow/frontend/assets/maximize-Df7rwZG4.js +0 -6
  2942. langflow/frontend/assets/medal-D5AiQRH8.js +0 -6
  2943. langflow/frontend/assets/megaphone-CnkmiqKU.js +0 -6
  2944. langflow/frontend/assets/megaphone-off-CmGcOh0R.js +0 -6
  2945. langflow/frontend/assets/meh-DWPngCKS.js +0 -6
  2946. langflow/frontend/assets/memory-stick-CUtJOVHZ.js +0 -6
  2947. langflow/frontend/assets/menu-CsSwaQn5.js +0 -6
  2948. langflow/frontend/assets/merge-xIyfmu2O.js +0 -6
  2949. langflow/frontend/assets/message-circle-code-Cezrn02-.js +0 -6
  2950. langflow/frontend/assets/message-circle-dashed-WB5z55Qy.js +0 -6
  2951. langflow/frontend/assets/message-circle-heart-DGI-Tcn0.js +0 -6
  2952. langflow/frontend/assets/message-circle-more-brCFjtJN.js +0 -6
  2953. langflow/frontend/assets/message-circle-off-BTdLdJNp.js +0 -6
  2954. langflow/frontend/assets/message-circle-plus-B_2WfCif.js +0 -6
  2955. langflow/frontend/assets/message-circle-question-eYTma3IV.js +0 -6
  2956. langflow/frontend/assets/message-circle-reply-CslnuJW8.js +0 -6
  2957. langflow/frontend/assets/message-circle-s74I4lfR.js +0 -6
  2958. langflow/frontend/assets/message-circle-warning-D373lMUK.js +0 -6
  2959. langflow/frontend/assets/message-circle-x-CBA5fKhi.js +0 -6
  2960. langflow/frontend/assets/message-square-CDhJsLYb.js +0 -6
  2961. langflow/frontend/assets/message-square-code-BgCsx74Q.js +0 -6
  2962. langflow/frontend/assets/message-square-dashed-BksTHg5f.js +0 -6
  2963. langflow/frontend/assets/message-square-diff-D_uo-iqE.js +0 -6
  2964. langflow/frontend/assets/message-square-dot-D_oNxern.js +0 -6
  2965. langflow/frontend/assets/message-square-heart-CKqYgNM8.js +0 -6
  2966. langflow/frontend/assets/message-square-lock-DYxomewv.js +0 -6
  2967. langflow/frontend/assets/message-square-more-DmGZkKIr.js +0 -6
  2968. langflow/frontend/assets/message-square-off-BNpk0YUO.js +0 -6
  2969. langflow/frontend/assets/message-square-plus-CXppGew5.js +0 -6
  2970. langflow/frontend/assets/message-square-quote-D84NlZSJ.js +0 -6
  2971. langflow/frontend/assets/message-square-reply-CynfrCd9.js +0 -6
  2972. langflow/frontend/assets/message-square-share-HVoqVtr_.js +0 -6
  2973. langflow/frontend/assets/message-square-text-ptBRDcOw.js +0 -6
  2974. langflow/frontend/assets/message-square-warning-CSrrKg08.js +0 -6
  2975. langflow/frontend/assets/message-square-x-BkSBEYee.js +0 -6
  2976. langflow/frontend/assets/messages-square-DMMmBLdo.js +0 -6
  2977. langflow/frontend/assets/mic-fCXDLun1.js +0 -6
  2978. langflow/frontend/assets/mic-off-B3bT4SXl.js +0 -6
  2979. langflow/frontend/assets/mic-vocal-DJSTGqO_.js +0 -6
  2980. langflow/frontend/assets/microchip-iUqIwvrW.js +0 -6
  2981. langflow/frontend/assets/microscope-bQYVM2jl.js +0 -6
  2982. langflow/frontend/assets/microwave-CLWy_Pd0.js +0 -6
  2983. langflow/frontend/assets/milestone-BlJCDkCk.js +0 -6
  2984. langflow/frontend/assets/milk-D-3yaWQN.js +0 -6
  2985. langflow/frontend/assets/milk-off-DePzvvB7.js +0 -6
  2986. langflow/frontend/assets/minimize-2-RZW3jf4N.js +0 -6
  2987. langflow/frontend/assets/minimize-B2R3tdtN.js +0 -6
  2988. langflow/frontend/assets/monitor-CJbP7Qhz.js +0 -6
  2989. langflow/frontend/assets/monitor-check-BK5o4IqH.js +0 -6
  2990. langflow/frontend/assets/monitor-cog-CwXrK3Pr.js +0 -6
  2991. langflow/frontend/assets/monitor-dot-BMOxg8oq.js +0 -6
  2992. langflow/frontend/assets/monitor-down-Pua8s36n.js +0 -6
  2993. langflow/frontend/assets/monitor-off-BzAiIDi4.js +0 -6
  2994. langflow/frontend/assets/monitor-pause-BuPweD-T.js +0 -6
  2995. langflow/frontend/assets/monitor-play-BH2UflZ-.js +0 -6
  2996. langflow/frontend/assets/monitor-smartphone-xnQ1eQ7B.js +0 -6
  2997. langflow/frontend/assets/monitor-speaker-C3iNl2jP.js +0 -6
  2998. langflow/frontend/assets/monitor-stop-CPBDxXNy.js +0 -6
  2999. langflow/frontend/assets/monitor-up-BEJpP5DZ.js +0 -6
  3000. langflow/frontend/assets/monitor-x-8YaUhKJk.js +0 -6
  3001. langflow/frontend/assets/moon-BjshRoPI.js +0 -6
  3002. langflow/frontend/assets/moon-star-BKdvPz2s.js +0 -6
  3003. langflow/frontend/assets/mountain-HvxMAgao.js +0 -6
  3004. langflow/frontend/assets/mountain-snow-CVlRmDBQ.js +0 -6
  3005. langflow/frontend/assets/mouse-off-tNoJZHwB.js +0 -6
  3006. langflow/frontend/assets/mouse-pointer-2-Cf44OEHG.js +0 -6
  3007. langflow/frontend/assets/mouse-pointer-Cc1JIYdz.js +0 -6
  3008. langflow/frontend/assets/mouse-pointer-ban-CfLlWQBp.js +0 -6
  3009. langflow/frontend/assets/mouse-pointer-click-Bu_OV0as.js +0 -6
  3010. langflow/frontend/assets/mouse-qWjRPujp.js +0 -6
  3011. langflow/frontend/assets/move-3d-7FG8qdZq.js +0 -6
  3012. langflow/frontend/assets/move-DGkdpLW3.js +0 -6
  3013. langflow/frontend/assets/move-diagonal-2-DhmhqD3F.js +0 -6
  3014. langflow/frontend/assets/move-diagonal-5Dk53P6l.js +0 -6
  3015. langflow/frontend/assets/move-down-C0MsI51d.js +0 -6
  3016. langflow/frontend/assets/move-down-left-91Wg7LLx.js +0 -6
  3017. langflow/frontend/assets/move-down-right-wi3S4tSz.js +0 -6
  3018. langflow/frontend/assets/move-horizontal-Bosh6Uqs.js +0 -6
  3019. langflow/frontend/assets/move-left-BnM0MTHa.js +0 -6
  3020. langflow/frontend/assets/move-right-srPQk6dT.js +0 -6
  3021. langflow/frontend/assets/move-up-BDqsDuVH.js +0 -6
  3022. langflow/frontend/assets/move-up-left-0IBHw-J0.js +0 -6
  3023. langflow/frontend/assets/move-up-right-DJCXUy6C.js +0 -6
  3024. langflow/frontend/assets/move-vertical-BG8O7T82.js +0 -6
  3025. langflow/frontend/assets/music-2-ChQnsdQR.js +0 -6
  3026. langflow/frontend/assets/music-3-CxpKR-4Q.js +0 -6
  3027. langflow/frontend/assets/music-4-CrhxpY0T.js +0 -6
  3028. langflow/frontend/assets/music-yzngTDUB.js +0 -6
  3029. langflow/frontend/assets/navigation-2-CYik-3lv.js +0 -6
  3030. langflow/frontend/assets/navigation-2-off-BsaYT4LD.js +0 -6
  3031. langflow/frontend/assets/navigation-CMMGuQFX.js +0 -6
  3032. langflow/frontend/assets/navigation-off-0ipJASQV.js +0 -6
  3033. langflow/frontend/assets/network-DM9i9N65.js +0 -6
  3034. langflow/frontend/assets/newspaper-CzEpqUvG.js +0 -6
  3035. langflow/frontend/assets/nfc-2YMUSLgo.js +0 -6
  3036. langflow/frontend/assets/non-binary-DhzkWXZ3.js +0 -6
  3037. langflow/frontend/assets/notebook-DmLTsHzB.js +0 -6
  3038. langflow/frontend/assets/notebook-pen-Bplxg1Vd.js +0 -6
  3039. langflow/frontend/assets/notebook-tabs-CWiYgQ6b.js +0 -6
  3040. langflow/frontend/assets/notebook-text-4AX1Uxq9.js +0 -6
  3041. langflow/frontend/assets/notepad-text-FyNar9Ot.js +0 -6
  3042. langflow/frontend/assets/notepad-text-dashed-DuuBcDav.js +0 -6
  3043. langflow/frontend/assets/nut-8PAXfP_9.js +0 -6
  3044. langflow/frontend/assets/nut-off-Da1kk8Gn.js +0 -6
  3045. langflow/frontend/assets/octagon-CSYndWzF.js +0 -6
  3046. langflow/frontend/assets/octagon-alert-fcFrl2Tx.js +0 -6
  3047. langflow/frontend/assets/octagon-minus-DaZ-e0uO.js +0 -6
  3048. langflow/frontend/assets/octagon-pause-CSHmWRJH.js +0 -6
  3049. langflow/frontend/assets/octagon-x-DhPGUpzU.js +0 -6
  3050. langflow/frontend/assets/omega-Tq0tkdwK.js +0 -6
  3051. langflow/frontend/assets/option-DUMCNykK.js +0 -6
  3052. langflow/frontend/assets/orbit-Bpo2MMcJ.js +0 -6
  3053. langflow/frontend/assets/origami-DHwua3oI.js +0 -6
  3054. langflow/frontend/assets/package-2-DsTkH1Ko.js +0 -6
  3055. langflow/frontend/assets/package-BPc3Uv3D.js +0 -6
  3056. langflow/frontend/assets/package-check-DysEWrd8.js +0 -6
  3057. langflow/frontend/assets/package-minus-ZtOr1XeF.js +0 -6
  3058. langflow/frontend/assets/package-open-Bc1Ym2tK.js +0 -6
  3059. langflow/frontend/assets/package-plus-B9MLdQFX.js +0 -6
  3060. langflow/frontend/assets/package-search-CNA7GCzs.js +0 -6
  3061. langflow/frontend/assets/package-x-DCfHvJtF.js +0 -6
  3062. langflow/frontend/assets/paint-bucket-DIN5z8wi.js +0 -6
  3063. langflow/frontend/assets/paint-roller-BQpWf9ZY.js +0 -6
  3064. langflow/frontend/assets/paintbrush-BLMVtbpo.js +0 -6
  3065. langflow/frontend/assets/paintbrush-vertical-2I6wo4bZ.js +0 -6
  3066. langflow/frontend/assets/palette-ClueFKAJ.js +0 -6
  3067. langflow/frontend/assets/panel-bottom-BLgQ78t-.js +0 -6
  3068. langflow/frontend/assets/panel-bottom-close-D3XIljT-.js +0 -6
  3069. langflow/frontend/assets/panel-bottom-dashed-DJl6R4zr.js +0 -6
  3070. langflow/frontend/assets/panel-bottom-open-CtLeVRug.js +0 -6
  3071. langflow/frontend/assets/panel-left-close-cvut2RW8.js +0 -6
  3072. langflow/frontend/assets/panel-left-dashed-D_WVbQH8.js +0 -6
  3073. langflow/frontend/assets/panel-left-open-ZxfOqpAK.js +0 -6
  3074. langflow/frontend/assets/panel-right-Q-s4q0iq.js +0 -6
  3075. langflow/frontend/assets/panel-right-close-DKhTf9X2.js +0 -6
  3076. langflow/frontend/assets/panel-right-dashed-CXsYZCfY.js +0 -6
  3077. langflow/frontend/assets/panel-right-open-o8m0164W.js +0 -6
  3078. langflow/frontend/assets/panel-top-6Niumkhc.js +0 -6
  3079. langflow/frontend/assets/panel-top-close-DFY_8hAS.js +0 -6
  3080. langflow/frontend/assets/panel-top-dashed-CzI3JpHf.js +0 -6
  3081. langflow/frontend/assets/panel-top-open-CNp_wFmB.js +0 -6
  3082. langflow/frontend/assets/panels-left-bottom-BLGWreF8.js +0 -6
  3083. langflow/frontend/assets/panels-right-bottom-CZpPuhQ8.js +0 -6
  3084. langflow/frontend/assets/panels-top-left-jM4GJMlR.js +0 -6
  3085. langflow/frontend/assets/paperclip-b5cDxy2w.js +0 -6
  3086. langflow/frontend/assets/parentheses-COIRxaKb.js +0 -6
  3087. langflow/frontend/assets/parking-meter-u8DFChjG.js +0 -6
  3088. langflow/frontend/assets/party-popper-BB4QHVze.js +0 -6
  3089. langflow/frontend/assets/pause-Dp-DSQVn.js +0 -6
  3090. langflow/frontend/assets/paw-print-Cqre9uEB.js +0 -6
  3091. langflow/frontend/assets/pc-case-Bzy43tu0.js +0 -6
  3092. langflow/frontend/assets/pen-Dr_UXQL6.js +0 -6
  3093. langflow/frontend/assets/pen-line-T_qrYPeG.js +0 -6
  3094. langflow/frontend/assets/pen-off-THdXN8rq.js +0 -6
  3095. langflow/frontend/assets/pen-tool-BRvkh_lo.js +0 -6
  3096. langflow/frontend/assets/pencil-C8D5tKd8.js +0 -6
  3097. langflow/frontend/assets/pencil-line-BRbHGRNl.js +0 -6
  3098. langflow/frontend/assets/pencil-off-BsUpqnn3.js +0 -6
  3099. langflow/frontend/assets/pencil-ruler-H4id9sMM.js +0 -6
  3100. langflow/frontend/assets/pentagon-Be-3ZvbV.js +0 -6
  3101. langflow/frontend/assets/percent-CT_oc5Dk.js +0 -6
  3102. langflow/frontend/assets/person-standing-CEPUN0Jg.js +0 -6
  3103. langflow/frontend/assets/philippine-peso-Dk1UCG3K.js +0 -6
  3104. langflow/frontend/assets/phone-Df99jJgq.js +0 -6
  3105. langflow/frontend/assets/phone-call-5upT_rU7.js +0 -6
  3106. langflow/frontend/assets/phone-forwarded-CCCRbah3.js +0 -6
  3107. langflow/frontend/assets/phone-incoming-B0-AEYFS.js +0 -6
  3108. langflow/frontend/assets/phone-missed-CoiWozLV.js +0 -6
  3109. langflow/frontend/assets/phone-off-DbS5yBnk.js +0 -6
  3110. langflow/frontend/assets/phone-outgoing-NJrwcRqd.js +0 -6
  3111. langflow/frontend/assets/pi-CNLEtWgh.js +0 -6
  3112. langflow/frontend/assets/piano-CxzP5TAT.js +0 -6
  3113. langflow/frontend/assets/pickaxe-DPDfdtc0.js +0 -6
  3114. langflow/frontend/assets/picture-in-picture-2-Bg8Max8O.js +0 -6
  3115. langflow/frontend/assets/picture-in-picture-3236Alj3.js +0 -6
  3116. langflow/frontend/assets/piggy-bank-_XHB1Wx2.js +0 -6
  3117. langflow/frontend/assets/pilcrow-BcXcTTfn.js +0 -6
  3118. langflow/frontend/assets/pilcrow-left-BLtCEaRs.js +0 -6
  3119. langflow/frontend/assets/pilcrow-right-C85rcTmF.js +0 -6
  3120. langflow/frontend/assets/pill-DFkz07mM.js +0 -6
  3121. langflow/frontend/assets/pill-bottle-_qAs7GLc.js +0 -6
  3122. langflow/frontend/assets/pin-08uT_veg.js +0 -6
  3123. langflow/frontend/assets/pin-off-hMFmavIr.js +0 -6
  3124. langflow/frontend/assets/pipette--ANbg8cI.js +0 -6
  3125. langflow/frontend/assets/pizza-CnBoZbDr.js +0 -6
  3126. langflow/frontend/assets/plane-BBD_iihR.js +0 -6
  3127. langflow/frontend/assets/plane-landing-CkjIDAYJ.js +0 -6
  3128. langflow/frontend/assets/plane-takeoff-Bch4qnRB.js +0 -6
  3129. langflow/frontend/assets/play-BsfdlD7v.js +0 -6
  3130. langflow/frontend/assets/plug-2-BcyoDX6D.js +0 -6
  3131. langflow/frontend/assets/plug-BIBbsc5k.js +0 -6
  3132. langflow/frontend/assets/plug-zap-BDrG5bOE.js +0 -6
  3133. langflow/frontend/assets/pocket-M57mDIeX.js +0 -6
  3134. langflow/frontend/assets/pocket-knife-aPjQv4Mi.js +0 -6
  3135. langflow/frontend/assets/podcast-D1tjChJk.js +0 -6
  3136. langflow/frontend/assets/pointer-BSydXCFF.js +0 -6
  3137. langflow/frontend/assets/pointer-off-DZ4rzik4.js +0 -6
  3138. langflow/frontend/assets/popcorn-BHV-8DFJ.js +0 -6
  3139. langflow/frontend/assets/popsicle-DjWTg8e9.js +0 -6
  3140. langflow/frontend/assets/pound-sterling-gMOdCVxB.js +0 -6
  3141. langflow/frontend/assets/power-BG-Umc9T.js +0 -6
  3142. langflow/frontend/assets/power-off-D7eTrV8y.js +0 -6
  3143. langflow/frontend/assets/presentation-Cu7KQGtu.js +0 -6
  3144. langflow/frontend/assets/printer-CmjSUXNd.js +0 -6
  3145. langflow/frontend/assets/printer-check-BOB49PGS.js +0 -6
  3146. langflow/frontend/assets/projector-DmOr-6dP.js +0 -6
  3147. langflow/frontend/assets/proportions-D5RpzImo.js +0 -6
  3148. langflow/frontend/assets/puzzle-EV728iB-.js +0 -6
  3149. langflow/frontend/assets/pyramid-BYNsaNoD.js +0 -6
  3150. langflow/frontend/assets/qr-code-C_-pMZyx.js +0 -6
  3151. langflow/frontend/assets/quote-BrDJPCkP.js +0 -6
  3152. langflow/frontend/assets/rabbit-nPO88EMa.js +0 -6
  3153. langflow/frontend/assets/radar-DmKqqNYR.js +0 -6
  3154. langflow/frontend/assets/radiation-D9ZSjZUT.js +0 -6
  3155. langflow/frontend/assets/radical-Paa6bjM7.js +0 -6
  3156. langflow/frontend/assets/radio-receiver-BMvHpUZt.js +0 -6
  3157. langflow/frontend/assets/radio-sHGJBlPl.js +0 -6
  3158. langflow/frontend/assets/radio-tower-YRdbvcC3.js +0 -6
  3159. langflow/frontend/assets/radius-BF3J88eF.js +0 -6
  3160. langflow/frontend/assets/rail-symbol-BtuRkLOe.js +0 -6
  3161. langflow/frontend/assets/rainbow-DgijBsWj.js +0 -6
  3162. langflow/frontend/assets/rat-DNEq5_LI.js +0 -6
  3163. langflow/frontend/assets/ratio-BqDwoQX7.js +0 -6
  3164. langflow/frontend/assets/receipt-CSQ3QIja.js +0 -6
  3165. langflow/frontend/assets/receipt-cent-1P1hpbSE.js +0 -6
  3166. langflow/frontend/assets/receipt-euro-oGO9VYeO.js +0 -6
  3167. langflow/frontend/assets/receipt-indian-rupee-DU7YlfC3.js +0 -6
  3168. langflow/frontend/assets/receipt-japanese-yen-Donq0Hi9.js +0 -6
  3169. langflow/frontend/assets/receipt-pound-sterling-BchAADEY.js +0 -6
  3170. langflow/frontend/assets/receipt-russian-ruble-C3aU-Yas.js +0 -6
  3171. langflow/frontend/assets/receipt-swiss-franc-CvWAUPxo.js +0 -6
  3172. langflow/frontend/assets/receipt-text-B2XL36eK.js +0 -6
  3173. langflow/frontend/assets/rectangle-ellipsis--7K_D3YS.js +0 -6
  3174. langflow/frontend/assets/rectangle-goggles-iDDCDTAV.js +0 -6
  3175. langflow/frontend/assets/rectangle-horizontal-FpEjMJDU.js +0 -6
  3176. langflow/frontend/assets/rectangle-vertical-Bdh_eXUL.js +0 -6
  3177. langflow/frontend/assets/recycle-04Ly4CSR.js +0 -6
  3178. langflow/frontend/assets/redo-2-BDeJbmJc.js +0 -6
  3179. langflow/frontend/assets/redo-BAZjkNfJ.js +0 -6
  3180. langflow/frontend/assets/redo-dot-CJfH6IaL.js +0 -6
  3181. langflow/frontend/assets/refresh-ccw-C8IAUkqu.js +0 -6
  3182. langflow/frontend/assets/refresh-ccw-dot-B78c1h9T.js +0 -6
  3183. langflow/frontend/assets/refresh-cw-off-Cp-oGnzF.js +0 -6
  3184. langflow/frontend/assets/refresh-cw-yV65zfzr.js +0 -6
  3185. langflow/frontend/assets/refrigerator-D-UPdTju.js +0 -6
  3186. langflow/frontend/assets/regex-BtprV8Bm.js +0 -6
  3187. langflow/frontend/assets/remove-formatting-Bjo4M7Op.js +0 -6
  3188. langflow/frontend/assets/repeat-1-CtraS-Ll.js +0 -6
  3189. langflow/frontend/assets/repeat-2-DJXWb53E.js +0 -6
  3190. langflow/frontend/assets/repeat-UTALalrF.js +0 -6
  3191. langflow/frontend/assets/replace-Pr2T4Qd-.js +0 -6
  3192. langflow/frontend/assets/replace-all-DYvU2u4L.js +0 -6
  3193. langflow/frontend/assets/reply-BTFwDccp.js +0 -6
  3194. langflow/frontend/assets/reply-all-1joLgLPU.js +0 -6
  3195. langflow/frontend/assets/rewind-DTr3rgh9.js +0 -6
  3196. langflow/frontend/assets/ribbon-DOgd3YW7.js +0 -6
  3197. langflow/frontend/assets/rocket-CKny08bZ.js +0 -6
  3198. langflow/frontend/assets/rocking-chair-C2c_5w-s.js +0 -6
  3199. langflow/frontend/assets/roller-coaster-yr32QkYK.js +0 -6
  3200. langflow/frontend/assets/rotate-3d-CD6nvKxz.js +0 -6
  3201. langflow/frontend/assets/rotate-ccw-key-CVGeiKlz.js +0 -6
  3202. langflow/frontend/assets/rotate-ccw-square-CNyvDwK6.js +0 -6
  3203. langflow/frontend/assets/rotate-ccw-zwREArm8.js +0 -6
  3204. langflow/frontend/assets/rotate-cw-DuFGH8SC.js +0 -6
  3205. langflow/frontend/assets/rotate-cw-square-DR5lnUQY.js +0 -6
  3206. langflow/frontend/assets/route-BNnVRtHA.js +0 -6
  3207. langflow/frontend/assets/route-off-OgI_UGn7.js +0 -6
  3208. langflow/frontend/assets/router-DL2Fypr3.js +0 -6
  3209. langflow/frontend/assets/rows-2-DYmd4lU4.js +0 -6
  3210. langflow/frontend/assets/rows-3-ByGNXg5v.js +0 -6
  3211. langflow/frontend/assets/rows-4-DsVvupEo.js +0 -6
  3212. langflow/frontend/assets/rss-BLYOdSyo.js +0 -6
  3213. langflow/frontend/assets/ruler-Cdv8cdPo.js +0 -6
  3214. langflow/frontend/assets/ruler-dimension-line-B42wtcW6.js +0 -6
  3215. langflow/frontend/assets/russian-ruble-B63qxpyb.js +0 -6
  3216. langflow/frontend/assets/sailboat-C3-NFoCh.js +0 -6
  3217. langflow/frontend/assets/salad-DmiJ3fa3.js +0 -6
  3218. langflow/frontend/assets/sandwich-yEfOy5L1.js +0 -6
  3219. langflow/frontend/assets/satellite-ComPVjQz.js +0 -6
  3220. langflow/frontend/assets/satellite-dish-DCFu2Urr.js +0 -6
  3221. langflow/frontend/assets/saudi-riyal-DdPrrK6l.js +0 -6
  3222. langflow/frontend/assets/save-BUv5KSOB.js +0 -6
  3223. langflow/frontend/assets/save-all-Ak9ZJPV3.js +0 -6
  3224. langflow/frontend/assets/save-off-DflJ0ZQT.js +0 -6
  3225. langflow/frontend/assets/scale-3d-Be0yOpRQ.js +0 -6
  3226. langflow/frontend/assets/scale-CgxVkyxS.js +0 -6
  3227. langflow/frontend/assets/scaling-C_sDK5iR.js +0 -6
  3228. langflow/frontend/assets/scan-BA42Xs-4.js +0 -6
  3229. langflow/frontend/assets/scan-barcode-CxJKO7Er.js +0 -6
  3230. langflow/frontend/assets/scan-eye-CwqGN7-t.js +0 -6
  3231. langflow/frontend/assets/scan-face-B16FacLf.js +0 -6
  3232. langflow/frontend/assets/scan-heart-BJBG9f1h.js +0 -6
  3233. langflow/frontend/assets/scan-line-3BQ-6j26.js +0 -6
  3234. langflow/frontend/assets/scan-qr-code-DiGjYWyL.js +0 -6
  3235. langflow/frontend/assets/scan-search-ucg5af2u.js +0 -6
  3236. langflow/frontend/assets/scan-text-BJl03U-2.js +0 -6
  3237. langflow/frontend/assets/school-Bwtd3p3G.js +0 -6
  3238. langflow/frontend/assets/scissors-BmS3IwWA.js +0 -6
  3239. langflow/frontend/assets/scissors-line-dashed-9SHwsj2_.js +0 -6
  3240. langflow/frontend/assets/screen-share-DO62dUK0.js +0 -6
  3241. langflow/frontend/assets/screen-share-off-BJMAFr5c.js +0 -6
  3242. langflow/frontend/assets/scroll-D-CT_ZbG.js +0 -6
  3243. langflow/frontend/assets/scroll-text-CDdTa5ex.js +0 -6
  3244. langflow/frontend/assets/search-check-qxCprpoj.js +0 -6
  3245. langflow/frontend/assets/search-code-CJAVDuEb.js +0 -6
  3246. langflow/frontend/assets/search-slash-DLpiELjT.js +0 -6
  3247. langflow/frontend/assets/search-x-D48oZEtI.js +0 -6
  3248. langflow/frontend/assets/section-CqdMT4PA.js +0 -6
  3249. langflow/frontend/assets/send-Br-A3h4q.js +0 -6
  3250. langflow/frontend/assets/send-horizontal-CjRGHYs6.js +0 -6
  3251. langflow/frontend/assets/send-to-back-C4IeGAiR.js +0 -6
  3252. langflow/frontend/assets/separator-horizontal-4uetF9jq.js +0 -6
  3253. langflow/frontend/assets/separator-vertical-_jTFaHgP.js +0 -6
  3254. langflow/frontend/assets/server-CQ0C9ooa.js +0 -6
  3255. langflow/frontend/assets/server-cog-01CNI2S0.js +0 -6
  3256. langflow/frontend/assets/server-crash-CSeWRvDW.js +0 -6
  3257. langflow/frontend/assets/server-off-NOVB-Qu7.js +0 -6
  3258. langflow/frontend/assets/settings-2-CjEybQ7L.js +0 -6
  3259. langflow/frontend/assets/settings-BhOTnIj9.js +0 -6
  3260. langflow/frontend/assets/shapes-NQG_fbbX.js +0 -6
  3261. langflow/frontend/assets/share-2-Dot5r7f-.js +0 -6
  3262. langflow/frontend/assets/share-C9Ag2FpH.js +0 -6
  3263. langflow/frontend/assets/sheet-DU_yk1hA.js +0 -6
  3264. langflow/frontend/assets/shell-Cru3Zoji.js +0 -6
  3265. langflow/frontend/assets/shield-C9ps7W5H.js +0 -6
  3266. langflow/frontend/assets/shield-alert-CwW2EChY.js +0 -6
  3267. langflow/frontend/assets/shield-ban-BmaWmIH4.js +0 -6
  3268. langflow/frontend/assets/shield-check-DAV71iE6.js +0 -6
  3269. langflow/frontend/assets/shield-ellipsis-URxRGTr5.js +0 -6
  3270. langflow/frontend/assets/shield-half-BDybZkvA.js +0 -6
  3271. langflow/frontend/assets/shield-minus-Cr-G4WP4.js +0 -6
  3272. langflow/frontend/assets/shield-off-CR2hFw-p.js +0 -6
  3273. langflow/frontend/assets/shield-plus-BaUiwFvP.js +0 -6
  3274. langflow/frontend/assets/shield-question-BRkw5Nvy.js +0 -6
  3275. langflow/frontend/assets/shield-user-Bamz5Vrk.js +0 -6
  3276. langflow/frontend/assets/shield-x-1_7oCw38.js +0 -6
  3277. langflow/frontend/assets/ship-D_FgOoRy.js +0 -6
  3278. langflow/frontend/assets/ship-wheel-Bo1u3ivD.js +0 -6
  3279. langflow/frontend/assets/shirt-CHOPR50v.js +0 -6
  3280. langflow/frontend/assets/shopping-bag-CY1fwWKU.js +0 -6
  3281. langflow/frontend/assets/shopping-basket-CqPhL_tX.js +0 -6
  3282. langflow/frontend/assets/shopping-cart-DtKoil_0.js +0 -6
  3283. langflow/frontend/assets/shovel-BOvUP1YA.js +0 -6
  3284. langflow/frontend/assets/shower-head-C0CVzaQF.js +0 -6
  3285. langflow/frontend/assets/shredder-ByNDhX8v.js +0 -6
  3286. langflow/frontend/assets/shrimp-BOjolZpe.js +0 -6
  3287. langflow/frontend/assets/shrink-DyJEQMNf.js +0 -6
  3288. langflow/frontend/assets/shrub-BMxEAk2c.js +0 -6
  3289. langflow/frontend/assets/shuffle-BaUzpVog.js +0 -6
  3290. langflow/frontend/assets/sigma-BCtAKYdA.js +0 -6
  3291. langflow/frontend/assets/signal-CNgQJ2Dr.js +0 -6
  3292. langflow/frontend/assets/signal-high-BgHSkAzD.js +0 -6
  3293. langflow/frontend/assets/signal-low-Ci8SAJ_k.js +0 -6
  3294. langflow/frontend/assets/signal-medium-Dk4VtLJc.js +0 -6
  3295. langflow/frontend/assets/signal-zero-DcEdqxKZ.js +0 -6
  3296. langflow/frontend/assets/signature-DP-Rk0Qy.js +0 -6
  3297. langflow/frontend/assets/signpost-CtV-7AsP.js +0 -6
  3298. langflow/frontend/assets/signpost-big-DpyBipQ2.js +0 -6
  3299. langflow/frontend/assets/siren-DqicTbFC.js +0 -6
  3300. langflow/frontend/assets/skip-back-ITWPZhPB.js +0 -6
  3301. langflow/frontend/assets/skip-forward-B1tO1pX0.js +0 -6
  3302. langflow/frontend/assets/skull-6DXBnwla.js +0 -6
  3303. langflow/frontend/assets/slack-BBRoUvgi.js +0 -6
  3304. langflow/frontend/assets/slash-C0USDbov.js +0 -6
  3305. langflow/frontend/assets/slice-_XP4BC4d.js +0 -6
  3306. langflow/frontend/assets/sliders-horizontal-D7l7XYLw.js +0 -6
  3307. langflow/frontend/assets/sliders-vertical-fePs_FjS.js +0 -6
  3308. langflow/frontend/assets/smartphone-Ceal3P7K.js +0 -6
  3309. langflow/frontend/assets/smartphone-charging-BZHJ54_w.js +0 -6
  3310. langflow/frontend/assets/smartphone-nfc-Ju4uDMr5.js +0 -6
  3311. langflow/frontend/assets/smile-C4rwgUhy.js +0 -6
  3312. langflow/frontend/assets/smile-plus-BKUfpeuv.js +0 -6
  3313. langflow/frontend/assets/snail-Bo_OkcI8.js +0 -6
  3314. langflow/frontend/assets/snowflake-DP5eXGQI.js +0 -6
  3315. langflow/frontend/assets/sofa-DSxb6EpD.js +0 -6
  3316. langflow/frontend/assets/soup-m91lL-V_.js +0 -6
  3317. langflow/frontend/assets/space-CGPFqIma.js +0 -6
  3318. langflow/frontend/assets/spade-CVvhPUAD.js +0 -6
  3319. langflow/frontend/assets/sparkle-Cmz7HXs4.js +0 -6
  3320. langflow/frontend/assets/sparkles-CQLLkLWv.js +0 -6
  3321. langflow/frontend/assets/speaker-D1hIVm4-.js +0 -6
  3322. langflow/frontend/assets/speech-B4WCtMkN.js +0 -6
  3323. langflow/frontend/assets/spell-check-2-CHPwz3mR.js +0 -6
  3324. langflow/frontend/assets/spell-check-ByuMNdM2.js +0 -6
  3325. langflow/frontend/assets/spline-DTya-ZiD.js +0 -6
  3326. langflow/frontend/assets/spline-pointer-Cz8V23Bg.js +0 -6
  3327. langflow/frontend/assets/split-RojssMQv.js +0 -6
  3328. langflow/frontend/assets/spray-can-BGxZL3MH.js +0 -6
  3329. langflow/frontend/assets/sprout-BVcT_n0X.js +0 -6
  3330. langflow/frontend/assets/square-D0HQNqQo.js +0 -6
  3331. langflow/frontend/assets/square-activity-Bxw6rt6V.js +0 -6
  3332. langflow/frontend/assets/square-arrow-down-left-Ckg3cQWa.js +0 -6
  3333. langflow/frontend/assets/square-arrow-down-right-BFSrNWuj.js +0 -6
  3334. langflow/frontend/assets/square-arrow-down-zyOwPpQ3.js +0 -6
  3335. langflow/frontend/assets/square-arrow-left-DyXEGvIQ.js +0 -6
  3336. langflow/frontend/assets/square-arrow-out-down-left-BqhjM_a7.js +0 -6
  3337. langflow/frontend/assets/square-arrow-out-down-right-CKG4yS8i.js +0 -6
  3338. langflow/frontend/assets/square-arrow-out-up-left-Z1q_2Yow.js +0 -6
  3339. langflow/frontend/assets/square-arrow-out-up-right-onOI06xk.js +0 -6
  3340. langflow/frontend/assets/square-arrow-right-BBrpKIbp.js +0 -6
  3341. langflow/frontend/assets/square-arrow-up-BTZCPn6I.js +0 -6
  3342. langflow/frontend/assets/square-arrow-up-left-D7PYEMnw.js +0 -6
  3343. langflow/frontend/assets/square-arrow-up-right-NPJMPvtn.js +0 -6
  3344. langflow/frontend/assets/square-asterisk-D3yrNXTD.js +0 -6
  3345. langflow/frontend/assets/square-bottom-dashed-scissors-DFgLFSIf.js +0 -6
  3346. langflow/frontend/assets/square-chart-gantt-BJB-Fl0R.js +0 -6
  3347. langflow/frontend/assets/square-check-big-ISjyl8v2.js +0 -6
  3348. langflow/frontend/assets/square-check-mNLwMXKc.js +0 -6
  3349. langflow/frontend/assets/square-chevron-down-U79mnGVE.js +0 -6
  3350. langflow/frontend/assets/square-chevron-left-DyXXhhIx.js +0 -6
  3351. langflow/frontend/assets/square-chevron-right-7tliVWcK.js +0 -6
  3352. langflow/frontend/assets/square-chevron-up-CspIizbF.js +0 -6
  3353. langflow/frontend/assets/square-code-DOblauPz.js +0 -6
  3354. langflow/frontend/assets/square-dashed-WWTP-4tZ.js +0 -6
  3355. langflow/frontend/assets/square-dashed-bottom-code-DJiNLgX5.js +0 -6
  3356. langflow/frontend/assets/square-dashed-bottom-vpqvJqBy.js +0 -6
  3357. langflow/frontend/assets/square-dashed-kanban-D7pLL3K4.js +0 -6
  3358. langflow/frontend/assets/square-dashed-mouse-pointer-Dxv_Z_1M.js +0 -6
  3359. langflow/frontend/assets/square-divide-B5HvOg8-.js +0 -6
  3360. langflow/frontend/assets/square-dot-DvC7uJ_l.js +0 -6
  3361. langflow/frontend/assets/square-equal-SCHeo_r5.js +0 -6
  3362. langflow/frontend/assets/square-function-Dc_QgMWt.js +0 -6
  3363. langflow/frontend/assets/square-kanban-DK__Lha4.js +0 -6
  3364. langflow/frontend/assets/square-library-Dswl3lkL.js +0 -6
  3365. langflow/frontend/assets/square-m-DHOa3uam.js +0 -6
  3366. langflow/frontend/assets/square-menu-B-yrrTGb.js +0 -6
  3367. langflow/frontend/assets/square-minus-DHEhUTfl.js +0 -6
  3368. langflow/frontend/assets/square-mouse-pointer-DH-vGEWM.js +0 -6
  3369. langflow/frontend/assets/square-parking-BtbW2gIG.js +0 -6
  3370. langflow/frontend/assets/square-parking-off-BpumDarQ.js +0 -6
  3371. langflow/frontend/assets/square-pen-BwI5WjdB.js +0 -6
  3372. langflow/frontend/assets/square-percent-jqoYXabq.js +0 -6
  3373. langflow/frontend/assets/square-pi-BTwJI-r6.js +0 -6
  3374. langflow/frontend/assets/square-pilcrow-CxhdrEsR.js +0 -6
  3375. langflow/frontend/assets/square-play-BhlR3T7N.js +0 -6
  3376. langflow/frontend/assets/square-plus-BQtsOTt7.js +0 -6
  3377. langflow/frontend/assets/square-power-BjcTeS6Z.js +0 -6
  3378. langflow/frontend/assets/square-radical-DetASslS.js +0 -6
  3379. langflow/frontend/assets/square-round-corner-Cj92w0hp.js +0 -6
  3380. langflow/frontend/assets/square-scissors-CN6MR7EJ.js +0 -6
  3381. langflow/frontend/assets/square-sigma-Bt_u2eio.js +0 -6
  3382. langflow/frontend/assets/square-slash-BeI8GZ6O.js +0 -6
  3383. langflow/frontend/assets/square-split-horizontal-Bbx1W4jE.js +0 -6
  3384. langflow/frontend/assets/square-split-vertical-DQtp3zi9.js +0 -6
  3385. langflow/frontend/assets/square-square-A1qfX42u.js +0 -6
  3386. langflow/frontend/assets/square-stack-09VDaGLI.js +0 -6
  3387. langflow/frontend/assets/square-terminal-cRoANFJL.js +0 -6
  3388. langflow/frontend/assets/square-user-DFqqsEPC.js +0 -6
  3389. langflow/frontend/assets/square-user-round-BzKvleAN.js +0 -6
  3390. langflow/frontend/assets/square-x-yAbKKPWJ.js +0 -6
  3391. langflow/frontend/assets/squares-exclude-C_-__PnC.js +0 -6
  3392. langflow/frontend/assets/squares-intersect-CpUheze2.js +0 -6
  3393. langflow/frontend/assets/squares-subtract-CXe3a-Fs.js +0 -6
  3394. langflow/frontend/assets/squares-unite-CPOQWwVe.js +0 -6
  3395. langflow/frontend/assets/squircle-SC_0Xpdp.js +0 -6
  3396. langflow/frontend/assets/squirrel-CCkv_Spc.js +0 -6
  3397. langflow/frontend/assets/stamp-CwufY9O2.js +0 -6
  3398. langflow/frontend/assets/star-DMbG0DIu.js +0 -6
  3399. langflow/frontend/assets/star-half-DOaKzl5L.js +0 -6
  3400. langflow/frontend/assets/star-off-C59cUAQx.js +0 -6
  3401. langflow/frontend/assets/step-back-Dmh4hvAL.js +0 -6
  3402. langflow/frontend/assets/step-forward-NgdVCK4w.js +0 -6
  3403. langflow/frontend/assets/stethoscope-CSdO0tZO.js +0 -6
  3404. langflow/frontend/assets/sticker-CipkF4y0.js +0 -6
  3405. langflow/frontend/assets/sticky-note-Lyv9_dwm.js +0 -6
  3406. langflow/frontend/assets/store-pMKUblEf.js +0 -6
  3407. langflow/frontend/assets/stretch-horizontal-DjoPpYMU.js +0 -6
  3408. langflow/frontend/assets/stretch-vertical-BLrsfwxu.js +0 -6
  3409. langflow/frontend/assets/strikethrough-nOGYTph1.js +0 -6
  3410. langflow/frontend/assets/subscript-BoVIWNX3.js +0 -6
  3411. langflow/frontend/assets/sun-I1ZjVOpb.js +0 -6
  3412. langflow/frontend/assets/sun-dim-DxuoBIlI.js +0 -6
  3413. langflow/frontend/assets/sun-medium-YM9NcIo-.js +0 -6
  3414. langflow/frontend/assets/sun-moon-CxggdPBy.js +0 -6
  3415. langflow/frontend/assets/sun-snow-HymTjSDa.js +0 -6
  3416. langflow/frontend/assets/sunrise-DF-CESTd.js +0 -6
  3417. langflow/frontend/assets/sunset-C9zEKy65.js +0 -6
  3418. langflow/frontend/assets/superscript-BK6lIMJS.js +0 -6
  3419. langflow/frontend/assets/swatch-book-WwPb1dA_.js +0 -6
  3420. langflow/frontend/assets/swiss-franc-BtKN1w4J.js +0 -6
  3421. langflow/frontend/assets/switch-camera-D2nfnAu9.js +0 -6
  3422. langflow/frontend/assets/sword-C4-WvC_-.js +0 -6
  3423. langflow/frontend/assets/swords-B8N25Ddp.js +0 -6
  3424. langflow/frontend/assets/syringe-DsQQlNXY.js +0 -6
  3425. langflow/frontend/assets/table-2-BQvrEkTN.js +0 -6
  3426. langflow/frontend/assets/table-CvKoBitD.js +0 -6
  3427. langflow/frontend/assets/table-cells-merge-CppV8Wz3.js +0 -6
  3428. langflow/frontend/assets/table-cells-split-CcHVl0xn.js +0 -6
  3429. langflow/frontend/assets/table-columns-split-D6HoEG7P.js +0 -6
  3430. langflow/frontend/assets/table-of-contents-eTuKgrwB.js +0 -6
  3431. langflow/frontend/assets/table-properties-ADoOx_f7.js +0 -6
  3432. langflow/frontend/assets/table-rows-split-xh9VuNIi.js +0 -6
  3433. langflow/frontend/assets/tablet-DzEg03_1.js +0 -6
  3434. langflow/frontend/assets/tablet-smartphone-ixnzuMHd.js +0 -6
  3435. langflow/frontend/assets/tablets-0OsDPEFP.js +0 -6
  3436. langflow/frontend/assets/tag-Dmu2ua7P.js +0 -6
  3437. langflow/frontend/assets/tags-BsPzv4Yc.js +0 -6
  3438. langflow/frontend/assets/tally-1-8jLiE_sX.js +0 -6
  3439. langflow/frontend/assets/tally-2-B1isRFWT.js +0 -6
  3440. langflow/frontend/assets/tally-3-DXKCdYaS.js +0 -6
  3441. langflow/frontend/assets/tally-4-BXEHQo27.js +0 -6
  3442. langflow/frontend/assets/tally-5-C3nEQteI.js +0 -6
  3443. langflow/frontend/assets/tangent-BzPyXsIg.js +0 -6
  3444. langflow/frontend/assets/target-DHXyLbd9.js +0 -6
  3445. langflow/frontend/assets/telescope-DEiGCwr9.js +0 -6
  3446. langflow/frontend/assets/tent-CVNhLVOE.js +0 -6
  3447. langflow/frontend/assets/tent-tree-mBsJGV2B.js +0 -6
  3448. langflow/frontend/assets/terminal-DMm5d_QO.js +0 -6
  3449. langflow/frontend/assets/test-tube-CzEEApmA.js +0 -6
  3450. langflow/frontend/assets/test-tube-diagonal-DlGbblJV.js +0 -6
  3451. langflow/frontend/assets/test-tubes-CXc14UPo.js +0 -6
  3452. langflow/frontend/assets/text-CUHV3ow7.js +0 -6
  3453. langflow/frontend/assets/text-cursor-DXNfjJi6.js +0 -6
  3454. langflow/frontend/assets/text-cursor-input-DNteLXaE.js +0 -6
  3455. langflow/frontend/assets/text-quote-CuJlyrzF.js +0 -6
  3456. langflow/frontend/assets/text-search-B-HUby4S.js +0 -6
  3457. langflow/frontend/assets/text-select-D5xXaHo2.js +0 -6
  3458. langflow/frontend/assets/theater-c2osSZbd.js +0 -6
  3459. langflow/frontend/assets/thermometer-SgO76fOu.js +0 -6
  3460. langflow/frontend/assets/thermometer-snowflake-CfWjpcR7.js +0 -6
  3461. langflow/frontend/assets/thermometer-sun-Ak9ymKKF.js +0 -6
  3462. langflow/frontend/assets/thumbs-down-NLF3IlDF.js +0 -6
  3463. langflow/frontend/assets/thumbs-up-nKN8tGE9.js +0 -6
  3464. langflow/frontend/assets/ticket-check-C-2IPGrf.js +0 -6
  3465. langflow/frontend/assets/ticket-minus-DZkV3l1x.js +0 -6
  3466. langflow/frontend/assets/ticket-percent-xkY5ER6p.js +0 -6
  3467. langflow/frontend/assets/ticket-plus-ZgcciTYK.js +0 -6
  3468. langflow/frontend/assets/ticket-slash-BHf3hG7v.js +0 -6
  3469. langflow/frontend/assets/ticket-uI-c-GK0.js +0 -6
  3470. langflow/frontend/assets/ticket-x-BS5QEUOA.js +0 -6
  3471. langflow/frontend/assets/tickets-Cr1-Fy3S.js +0 -6
  3472. langflow/frontend/assets/tickets-plane-DrUdSYAt.js +0 -6
  3473. langflow/frontend/assets/timer-C7junahN.js +0 -6
  3474. langflow/frontend/assets/timer-off-BfU_Mc7j.js +0 -6
  3475. langflow/frontend/assets/timer-reset-BwODmBL5.js +0 -6
  3476. langflow/frontend/assets/toggle-left-BHaV1KPl.js +0 -6
  3477. langflow/frontend/assets/toggle-right-Bb8K-BH_.js +0 -6
  3478. langflow/frontend/assets/toilet-DR7J8JzJ.js +0 -6
  3479. langflow/frontend/assets/tornado-DZYL5kc1.js +0 -6
  3480. langflow/frontend/assets/torus-BiNs_Qf5.js +0 -6
  3481. langflow/frontend/assets/touchpad-D8YmnBt8.js +0 -6
  3482. langflow/frontend/assets/touchpad-off-De3ChH3v.js +0 -6
  3483. langflow/frontend/assets/tower-control-DQx4sLzk.js +0 -6
  3484. langflow/frontend/assets/toy-brick-CHO7RtAj.js +0 -6
  3485. langflow/frontend/assets/tractor-DYxf-yiC.js +0 -6
  3486. langflow/frontend/assets/traffic-cone-Cpoa90h8.js +0 -6
  3487. langflow/frontend/assets/train-front-DYVPQpty.js +0 -6
  3488. langflow/frontend/assets/train-front-tunnel-x1dRbVtR.js +0 -6
  3489. langflow/frontend/assets/train-track-ewR6llkC.js +0 -6
  3490. langflow/frontend/assets/tram-front-C4rLHTj3.js +0 -6
  3491. langflow/frontend/assets/transgender-CuV-dpwE.js +0 -6
  3492. langflow/frontend/assets/trash-DXs4vV7S.js +0 -6
  3493. langflow/frontend/assets/tree-deciduous-BzdMqR7v.js +0 -6
  3494. langflow/frontend/assets/tree-palm-3RdDYpck.js +0 -6
  3495. langflow/frontend/assets/tree-pine-vTurUP2D.js +0 -6
  3496. langflow/frontend/assets/trees-iWKuamny.js +0 -6
  3497. langflow/frontend/assets/trello-dZZE2jDr.js +0 -6
  3498. langflow/frontend/assets/trending-down-BZqp_cpg.js +0 -6
  3499. langflow/frontend/assets/trending-up-RMbPjKQc.js +0 -6
  3500. langflow/frontend/assets/trending-up-down-Cbp1auzy.js +0 -6
  3501. langflow/frontend/assets/triangle-CpLPwgCY.js +0 -6
  3502. langflow/frontend/assets/triangle-alert-CpQKEoL_.js +0 -6
  3503. langflow/frontend/assets/triangle-dashed-uQj5q-gn.js +0 -6
  3504. langflow/frontend/assets/triangle-right-B6WO3p_9.js +0 -6
  3505. langflow/frontend/assets/trophy-BZo88b7i.js +0 -6
  3506. langflow/frontend/assets/truck-D_EfGY-X.js +0 -6
  3507. langflow/frontend/assets/truck-electric-6qEms0iz.js +0 -6
  3508. langflow/frontend/assets/turtle-BQ7cahEZ.js +0 -6
  3509. langflow/frontend/assets/tv--xVc9BM8.js +0 -6
  3510. langflow/frontend/assets/tv-minimal-CjVu7M15.js +0 -6
  3511. langflow/frontend/assets/tv-minimal-play-Cj3-8eZr.js +0 -6
  3512. langflow/frontend/assets/twitch-DDFWEziZ.js +0 -6
  3513. langflow/frontend/assets/twitter-DywAeMGx.js +0 -6
  3514. langflow/frontend/assets/type-BH-XCjEX.js +0 -6
  3515. langflow/frontend/assets/type-outline-Dz7aYXzQ.js +0 -6
  3516. langflow/frontend/assets/umbrella-DWxUmr0j.js +0 -6
  3517. langflow/frontend/assets/umbrella-off-CJrUaj1X.js +0 -6
  3518. langflow/frontend/assets/underline-C1uX-GRW.js +0 -6
  3519. langflow/frontend/assets/undo-2-Bdu-pc1g.js +0 -6
  3520. langflow/frontend/assets/undo-BU40A3HY.js +0 -6
  3521. langflow/frontend/assets/undo-dot-C90GOIpt.js +0 -6
  3522. langflow/frontend/assets/unfold-horizontal-3_HC0rIG.js +0 -6
  3523. langflow/frontend/assets/unfold-vertical-BeaLK0Ql.js +0 -6
  3524. langflow/frontend/assets/ungroup-c11hWNSA.js +0 -6
  3525. langflow/frontend/assets/university-BxakLIUS.js +0 -6
  3526. langflow/frontend/assets/unlink-2-CDTQlVnM.js +0 -6
  3527. langflow/frontend/assets/unlink-Rr0evvxv.js +0 -6
  3528. langflow/frontend/assets/unplug-BZrFwvdA.js +0 -6
  3529. langflow/frontend/assets/upload-BvfsMq_a.js +0 -6
  3530. langflow/frontend/assets/usb-DfAX7Hqp.js +0 -6
  3531. langflow/frontend/assets/use-post-add-user-DEjgmv08.js +0 -1
  3532. langflow/frontend/assets/user-D8KVs9Gs.js +0 -6
  3533. langflow/frontend/assets/user-check-5lpM2hRI.js +0 -6
  3534. langflow/frontend/assets/user-cog-DldDysSp.js +0 -6
  3535. langflow/frontend/assets/user-lock-DGwGaf5U.js +0 -6
  3536. langflow/frontend/assets/user-minus-CU2zdpfi.js +0 -6
  3537. langflow/frontend/assets/user-pen-CxkRk5qP.js +0 -6
  3538. langflow/frontend/assets/user-plus-DLtSlns-.js +0 -6
  3539. langflow/frontend/assets/user-round-BM1w-1L9.js +0 -6
  3540. langflow/frontend/assets/user-round-check-C0RRxCI2.js +0 -6
  3541. langflow/frontend/assets/user-round-cog-C8w1jn42.js +0 -6
  3542. langflow/frontend/assets/user-round-minus-BPiddl9C.js +0 -6
  3543. langflow/frontend/assets/user-round-pen-NueFdQDh.js +0 -6
  3544. langflow/frontend/assets/user-round-plus-ROhE8p3t.js +0 -6
  3545. langflow/frontend/assets/user-round-search-BlvdRH_s.js +0 -6
  3546. langflow/frontend/assets/user-round-x-BhE1Tahv.js +0 -6
  3547. langflow/frontend/assets/user-search-BFuk2kiu.js +0 -6
  3548. langflow/frontend/assets/user-x-DphT8NyO.js +0 -6
  3549. langflow/frontend/assets/users-Crqhr_f7.js +0 -6
  3550. langflow/frontend/assets/users-round-Dz5gTdY6.js +0 -6
  3551. langflow/frontend/assets/utensils-CkYrnzmR.js +0 -6
  3552. langflow/frontend/assets/utensils-crossed-Cqf3whv4.js +0 -6
  3553. langflow/frontend/assets/utility-pole-CJ9Y7eYZ.js +0 -6
  3554. langflow/frontend/assets/variable-DTB-uYdL.js +0 -6
  3555. langflow/frontend/assets/vault-Csqqy-Hs.js +0 -6
  3556. langflow/frontend/assets/vegan-dl8I2e2Y.js +0 -6
  3557. langflow/frontend/assets/venetian-mask-B6qzfBbF.js +0 -6
  3558. langflow/frontend/assets/venus-1BZycY_o.js +0 -6
  3559. langflow/frontend/assets/venus-and-mars-DeMX52La.js +0 -6
  3560. langflow/frontend/assets/vibrate-iL8WUThK.js +0 -6
  3561. langflow/frontend/assets/vibrate-off-CrAMFgjX.js +0 -6
  3562. langflow/frontend/assets/video-BRWuafCQ.js +0 -6
  3563. langflow/frontend/assets/video-off-m-A-uoDM.js +0 -6
  3564. langflow/frontend/assets/videotape-3TA_qY--.js +0 -6
  3565. langflow/frontend/assets/view-BINXbJwA.js +0 -6
  3566. langflow/frontend/assets/voicemail-DC5KRuwX.js +0 -6
  3567. langflow/frontend/assets/volleyball-IrR0frqb.js +0 -6
  3568. langflow/frontend/assets/volume-1-C3mGv4B9.js +0 -6
  3569. langflow/frontend/assets/volume-2-DqxSWvYL.js +0 -6
  3570. langflow/frontend/assets/volume-jK9_8FE1.js +0 -6
  3571. langflow/frontend/assets/volume-off-BeJMxa9w.js +0 -6
  3572. langflow/frontend/assets/volume-x-DZroQO2S.js +0 -6
  3573. langflow/frontend/assets/vote-uLR1dkZK.js +0 -6
  3574. langflow/frontend/assets/wallet-DwTZCoxl.js +0 -6
  3575. langflow/frontend/assets/wallet-cards-B5jyn9yh.js +0 -6
  3576. langflow/frontend/assets/wallet-minimal-DSQwDgSd.js +0 -6
  3577. langflow/frontend/assets/wallpaper-DxER0w2t.js +0 -6
  3578. langflow/frontend/assets/wand-BG5sbV61.js +0 -6
  3579. langflow/frontend/assets/wand-sparkles-BlVPmqxl.js +0 -6
  3580. langflow/frontend/assets/warehouse-Cpf_KBkY.js +0 -6
  3581. langflow/frontend/assets/washing-machine-BI3TmUYy.js +0 -6
  3582. langflow/frontend/assets/watch-ChYtOk1k.js +0 -6
  3583. langflow/frontend/assets/waves-ladder-CvrCrCWg.js +0 -6
  3584. langflow/frontend/assets/waves-pHzhSVfJ.js +0 -6
  3585. langflow/frontend/assets/waypoints-C6l3WFJv.js +0 -6
  3586. langflow/frontend/assets/webcam-DvAx85E9.js +0 -6
  3587. langflow/frontend/assets/webhook-CsqTmbPQ.js +0 -6
  3588. langflow/frontend/assets/webhook-off-CfD_m8hg.js +0 -6
  3589. langflow/frontend/assets/weight-CGZTQ3--.js +0 -6
  3590. langflow/frontend/assets/wheat-CkpVpRdu.js +0 -6
  3591. langflow/frontend/assets/wheat-off-CO3uO4R-.js +0 -6
  3592. langflow/frontend/assets/whole-word-CdPPeN8f.js +0 -6
  3593. langflow/frontend/assets/wifi-BcauAZNm.js +0 -6
  3594. langflow/frontend/assets/wifi-high-D59VM0EE.js +0 -6
  3595. langflow/frontend/assets/wifi-low-DhBAgD-v.js +0 -6
  3596. langflow/frontend/assets/wifi-off-DgbOdOpf.js +0 -6
  3597. langflow/frontend/assets/wifi-pen-DmOGocSb.js +0 -6
  3598. langflow/frontend/assets/wifi-zero-Dh57KBRK.js +0 -6
  3599. langflow/frontend/assets/wind-BKTGY5sD.js +0 -6
  3600. langflow/frontend/assets/wind-arrow-down-gVTwaNSF.js +0 -6
  3601. langflow/frontend/assets/wine-D8jrY3Hr.js +0 -6
  3602. langflow/frontend/assets/wine-off-Dw_6ZU3S.js +0 -6
  3603. langflow/frontend/assets/workflow-DuspoKXG.js +0 -6
  3604. langflow/frontend/assets/worm-BgywYnXR.js +0 -6
  3605. langflow/frontend/assets/wrap-text-5Xt0DrUx.js +0 -6
  3606. langflow/frontend/assets/wrench-xBwFmbMt.js +0 -6
  3607. langflow/frontend/assets/youtube-B1jNh5Ie.js +0 -6
  3608. langflow/frontend/assets/zap-BPfwGU9e.js +0 -6
  3609. langflow/frontend/assets/zap-off-CrFCnssK.js +0 -6
  3610. langflow/frontend/assets/zoom-in-xsJJYN2q.js +0 -6
  3611. langflow/frontend/assets/zoom-out-CLqpjEps.js +0 -6
  3612. langflow_base_nightly-1.7.0.dev17.dist-info/METADATA +0 -98
  3613. langflow_base_nightly-1.7.0.dev17.dist-info/RECORD +0 -2259
  3614. langflow_base_nightly-1.7.0.dev17.dist-info/WHEEL +0 -4
  3615. {langflow_base_nightly-1.7.0.dev17.dist-info → langflow_base_nightly-1.7.0.dev23.dist-info}/entry_points.txt +0 -0
@@ -144,7 +144,7 @@
144
144
  "legacy": false,
145
145
  "lf_version": "1.4.2",
146
146
  "metadata": {
147
- "code_hash": "9fcfdb0fb080",
147
+ "code_hash": "e84290d462c2",
148
148
  "dependencies": {
149
149
  "dependencies": [
150
150
  {
@@ -161,7 +161,7 @@
161
161
  },
162
162
  {
163
163
  "name": "pydantic",
164
- "version": "2.10.6"
164
+ "version": "2.11.10"
165
165
  },
166
166
  {
167
167
  "name": "lfx",
@@ -260,7 +260,7 @@
260
260
  "show": true,
261
261
  "title_case": false,
262
262
  "type": "code",
263
- "value": "import json\nimport string\nfrom typing import Any, cast\n\nfrom apify_client import ApifyClient\nfrom langchain_community.document_loaders.apify_dataset import ApifyDatasetLoader\nfrom langchain_core.tools import BaseTool\nfrom pydantic import BaseModel, Field, field_serializer\n\nfrom lfx.custom.custom_component.component import Component\nfrom lfx.field_typing import Tool\nfrom lfx.inputs.inputs import BoolInput\nfrom lfx.io import MultilineInput, Output, SecretStrInput, StrInput\nfrom lfx.schema.data import Data\n\nMAX_DESCRIPTION_LEN = 250\n\n\nclass ApifyActorsComponent(Component):\n display_name = \"Apify Actors\"\n description = (\n \"Use Apify Actors to extract data from hundreds of places fast. \"\n \"This component can be used in a flow to retrieve data or as a tool with an agent.\"\n )\n documentation: str = \"http://docs.langflow.org/integrations-apify\"\n icon = \"Apify\"\n name = \"ApifyActors\"\n\n inputs = [\n SecretStrInput(\n name=\"apify_token\",\n display_name=\"Apify Token\",\n info=\"The API token for the Apify account.\",\n required=True,\n password=True,\n ),\n StrInput(\n name=\"actor_id\",\n display_name=\"Actor\",\n info=(\n \"Actor name from Apify store to run. For example 'apify/website-content-crawler' \"\n \"to use the Website Content Crawler Actor.\"\n ),\n value=\"apify/website-content-crawler\",\n required=True,\n ),\n # multiline input is more pleasant to use than the nested dict input\n MultilineInput(\n name=\"run_input\",\n display_name=\"Run input\",\n info=(\n 'The JSON input for the Actor run. For example for the \"apify/website-content-crawler\" Actor: '\n '{\"startUrls\":[{\"url\":\"https://docs.apify.com/academy/web-scraping-for-beginners\"}],\"maxCrawlDepth\":0}'\n ),\n value='{\"startUrls\":[{\"url\":\"https://docs.apify.com/academy/web-scraping-for-beginners\"}],\"maxCrawlDepth\":0}',\n required=True,\n ),\n MultilineInput(\n name=\"dataset_fields\",\n display_name=\"Output fields\",\n info=(\n \"Fields to extract from the dataset, split by commas. \"\n \"Other fields will be ignored. Dots in nested structures will be replaced by underscores. \"\n \"Sample input: 'text, metadata.title'. \"\n \"Sample output: {'text': 'page content here', 'metadata_title': 'page title here'}. \"\n \"For example, for the 'apify/website-content-crawler' Actor, you can extract the 'markdown' field, \"\n \"which is the content of the website in markdown format.\"\n ),\n ),\n BoolInput(\n name=\"flatten_dataset\",\n display_name=\"Flatten output\",\n info=(\n \"The output dataset will be converted from a nested format to a flat structure. \"\n \"Dots in nested structure will be replaced by underscores. \"\n \"This is useful for further processing of the Data object. \"\n \"For example, {'a': {'b': 1}} will be flattened to {'a_b': 1}.\"\n ),\n ),\n ]\n\n outputs = [\n Output(display_name=\"Output\", name=\"output\", type_=list[Data], method=\"run_model\"),\n Output(display_name=\"Tool\", name=\"tool\", type_=Tool, method=\"build_tool\"),\n ]\n\n def __init__(self, *args, **kwargs) -> None:\n super().__init__(*args, **kwargs)\n self._apify_client: ApifyClient | None = None\n\n def run_model(self) -> list[Data]:\n \"\"\"Run the Actor and return node output.\"\"\"\n input_ = json.loads(self.run_input)\n fields = ApifyActorsComponent.parse_dataset_fields(self.dataset_fields) if self.dataset_fields else None\n res = self.run_actor(self.actor_id, input_, fields=fields)\n if self.flatten_dataset:\n res = [ApifyActorsComponent.flatten(item) for item in res]\n data = [Data(data=item) for item in res]\n\n self.status = data\n return data\n\n def build_tool(self) -> Tool:\n \"\"\"Build a tool for an agent that runs the Apify Actor.\"\"\"\n actor_id = self.actor_id\n\n build = self._get_actor_latest_build(actor_id)\n readme = build.get(\"readme\", \"\")[:250] + \"...\"\n if not (input_schema_str := build.get(\"inputSchema\")):\n msg = \"Input schema not found\"\n raise ValueError(msg)\n input_schema = json.loads(input_schema_str)\n properties, required = ApifyActorsComponent.get_actor_input_schema_from_build(input_schema)\n properties = {\"run_input\": properties}\n\n # works from input schema\n info_ = [\n (\n \"JSON encoded as a string with input schema (STRICTLY FOLLOW JSON FORMAT AND SCHEMA):\\n\\n\"\n f\"{json.dumps(properties, separators=(',', ':'))}\"\n )\n ]\n if required:\n info_.append(\"\\n\\nRequired fields:\\n\" + \"\\n\".join(required))\n\n info = \"\".join(info_)\n\n input_model_cls = ApifyActorsComponent.create_input_model_class(info)\n tool_cls = ApifyActorsComponent.create_tool_class(self, readme, input_model_cls, actor_id)\n\n return cast(\"Tool\", tool_cls())\n\n @staticmethod\n def create_tool_class(\n parent: \"ApifyActorsComponent\", readme: str, input_model: type[BaseModel], actor_id: str\n ) -> type[BaseTool]:\n \"\"\"Create a tool class that runs an Apify Actor.\"\"\"\n\n class ApifyActorRun(BaseTool):\n \"\"\"Tool that runs Apify Actors.\"\"\"\n\n name: str = f\"apify_actor_{ApifyActorsComponent.actor_id_to_tool_name(actor_id)}\"\n description: str = (\n \"Run an Apify Actor with the given input. \"\n \"Here is a part of the currently loaded Actor README:\\n\\n\"\n f\"{readme}\\n\\n\"\n )\n\n args_schema: type[BaseModel] = input_model\n\n @field_serializer(\"args_schema\")\n def serialize_args_schema(self, args_schema):\n return args_schema.schema()\n\n def _run(self, run_input: str | dict) -> str:\n \"\"\"Use the Apify Actor.\"\"\"\n input_dict = json.loads(run_input) if isinstance(run_input, str) else run_input\n\n # retrieve if nested, just in case\n input_dict = input_dict.get(\"run_input\", input_dict)\n\n res = parent.run_actor(actor_id, input_dict)\n return \"\\n\\n\".join([ApifyActorsComponent.dict_to_json_str(item) for item in res])\n\n return ApifyActorRun\n\n @staticmethod\n def create_input_model_class(description: str) -> type[BaseModel]:\n \"\"\"Create a Pydantic model class for the Actor input.\"\"\"\n\n class ActorInput(BaseModel):\n \"\"\"Input for the Apify Actor tool.\"\"\"\n\n run_input: str = Field(..., description=description)\n\n return ActorInput\n\n def _get_apify_client(self) -> ApifyClient:\n \"\"\"Get the Apify client.\n\n Is created if not exists or token changes.\n \"\"\"\n if not self.apify_token:\n msg = \"API token is required.\"\n raise ValueError(msg)\n # when token changes, create a new client\n if self._apify_client is None or self._apify_client.token != self.apify_token:\n self._apify_client = ApifyClient(self.apify_token)\n if httpx_client := self._apify_client.http_client.httpx_client:\n httpx_client.headers[\"user-agent\"] += \"; Origin/langflow\"\n return self._apify_client\n\n def _get_actor_latest_build(self, actor_id: str) -> dict:\n \"\"\"Get the latest build of an Actor from the default build tag.\"\"\"\n client = self._get_apify_client()\n actor = client.actor(actor_id=actor_id)\n if not (actor_info := actor.get()):\n msg = f\"Actor {actor_id} not found.\"\n raise ValueError(msg)\n\n default_build_tag = actor_info.get(\"defaultRunOptions\", {}).get(\"build\")\n latest_build_id = actor_info.get(\"taggedBuilds\", {}).get(default_build_tag, {}).get(\"buildId\")\n\n if (build := client.build(latest_build_id).get()) is None:\n msg = f\"Build {latest_build_id} not found.\"\n raise ValueError(msg)\n\n return build\n\n @staticmethod\n def get_actor_input_schema_from_build(input_schema: dict) -> tuple[dict, list[str]]:\n \"\"\"Get the input schema from the Actor build.\n\n Trim the description to 250 characters.\n \"\"\"\n properties = input_schema.get(\"properties\", {})\n required = input_schema.get(\"required\", [])\n\n properties_out: dict = {}\n for item, meta in properties.items():\n properties_out[item] = {}\n if desc := meta.get(\"description\"):\n properties_out[item][\"description\"] = (\n desc[:MAX_DESCRIPTION_LEN] + \"...\" if len(desc) > MAX_DESCRIPTION_LEN else desc\n )\n for key_name in (\"type\", \"default\", \"prefill\", \"enum\"):\n if value := meta.get(key_name):\n properties_out[item][key_name] = value\n\n return properties_out, required\n\n def _get_run_dataset_id(self, run_id: str) -> str:\n \"\"\"Get the dataset id from the run id.\"\"\"\n client = self._get_apify_client()\n run = client.run(run_id=run_id)\n if (dataset := run.dataset().get()) is None:\n msg = \"Dataset not found\"\n raise ValueError(msg)\n if (did := dataset.get(\"id\")) is None:\n msg = \"Dataset id not found\"\n raise ValueError(msg)\n return did\n\n @staticmethod\n def dict_to_json_str(d: dict) -> str:\n \"\"\"Convert a dictionary to a JSON string.\"\"\"\n return json.dumps(d, separators=(\",\", \":\"), default=lambda _: \"<n/a>\")\n\n @staticmethod\n def actor_id_to_tool_name(actor_id: str) -> str:\n \"\"\"Turn actor_id into a valid tool name.\n\n Tool name must only contain letters, numbers, underscores, dashes,\n and cannot contain spaces.\n \"\"\"\n valid_chars = string.ascii_letters + string.digits + \"_-\"\n return \"\".join(char if char in valid_chars else \"_\" for char in actor_id)\n\n def run_actor(self, actor_id: str, run_input: dict, fields: list[str] | None = None) -> list[dict]:\n \"\"\"Run an Apify Actor and return the output dataset.\n\n Args:\n actor_id: Actor name from Apify store to run.\n run_input: JSON input for the Actor.\n fields: List of fields to extract from the dataset. Other fields will be ignored.\n \"\"\"\n client = self._get_apify_client()\n if (details := client.actor(actor_id=actor_id).call(run_input=run_input, wait_secs=1)) is None:\n msg = \"Actor run details not found\"\n raise ValueError(msg)\n if (run_id := details.get(\"id\")) is None:\n msg = \"Run id not found\"\n raise ValueError(msg)\n\n if (run_client := client.run(run_id)) is None:\n msg = \"Run client not found\"\n raise ValueError(msg)\n\n # stream logs\n with run_client.log().stream() as response:\n if response:\n for line in response.iter_lines():\n self.log(line)\n run_client.wait_for_finish()\n\n dataset_id = self._get_run_dataset_id(run_id)\n\n loader = ApifyDatasetLoader(\n dataset_id=dataset_id,\n dataset_mapping_function=lambda item: item\n if not fields\n else {k.replace(\".\", \"_\"): ApifyActorsComponent.get_nested_value(item, k) for k in fields},\n )\n return loader.load()\n\n @staticmethod\n def get_nested_value(data: dict[str, Any], key: str) -> Any:\n \"\"\"Get a nested value from a dictionary.\"\"\"\n keys = key.split(\".\")\n value = data\n for k in keys:\n if not isinstance(value, dict) or k not in value:\n return None\n value = value[k]\n return value\n\n @staticmethod\n def parse_dataset_fields(dataset_fields: str) -> list[str]:\n \"\"\"Convert a string of comma-separated fields into a list of fields.\"\"\"\n dataset_fields = dataset_fields.replace(\"'\", \"\").replace('\"', \"\").replace(\"`\", \"\")\n return [field.strip() for field in dataset_fields.split(\",\")]\n\n @staticmethod\n def flatten(d: dict) -> dict:\n \"\"\"Flatten a nested dictionary.\"\"\"\n\n def items():\n for key, value in d.items():\n if isinstance(value, dict):\n for subkey, subvalue in ApifyActorsComponent.flatten(value).items():\n yield key + \"_\" + subkey, subvalue\n else:\n yield key, value\n\n return dict(items())\n"
263
+ "value": "import json\nimport string\nfrom typing import Any, cast\n\nfrom apify_client import ApifyClient\nfrom langchain_community.document_loaders.apify_dataset import ApifyDatasetLoader\nfrom langchain_core.tools import BaseTool\nfrom pydantic import BaseModel, Field, field_serializer\n\nfrom lfx.custom.custom_component.component import Component\nfrom lfx.field_typing import Tool\nfrom lfx.inputs.inputs import BoolInput\nfrom lfx.io import MultilineInput, Output, SecretStrInput, StrInput\nfrom lfx.schema.data import Data\n\nMAX_DESCRIPTION_LEN = 250\n\n\nclass ApifyActorsComponent(Component):\n display_name = \"Apify Actors\"\n description = (\n \"Use Apify Actors to extract data from hundreds of places fast. \"\n \"This component can be used in a flow to retrieve data or as a tool with an agent.\"\n )\n documentation: str = \"https://docs.langflow.org/bundles-apify\"\n icon = \"Apify\"\n name = \"ApifyActors\"\n\n inputs = [\n SecretStrInput(\n name=\"apify_token\",\n display_name=\"Apify Token\",\n info=\"The API token for the Apify account.\",\n required=True,\n password=True,\n ),\n StrInput(\n name=\"actor_id\",\n display_name=\"Actor\",\n info=(\n \"Actor name from Apify store to run. For example 'apify/website-content-crawler' \"\n \"to use the Website Content Crawler Actor.\"\n ),\n value=\"apify/website-content-crawler\",\n required=True,\n ),\n # multiline input is more pleasant to use than the nested dict input\n MultilineInput(\n name=\"run_input\",\n display_name=\"Run input\",\n info=(\n 'The JSON input for the Actor run. For example for the \"apify/website-content-crawler\" Actor: '\n '{\"startUrls\":[{\"url\":\"https://docs.apify.com/academy/web-scraping-for-beginners\"}],\"maxCrawlDepth\":0}'\n ),\n value='{\"startUrls\":[{\"url\":\"https://docs.apify.com/academy/web-scraping-for-beginners\"}],\"maxCrawlDepth\":0}',\n required=True,\n ),\n MultilineInput(\n name=\"dataset_fields\",\n display_name=\"Output fields\",\n info=(\n \"Fields to extract from the dataset, split by commas. \"\n \"Other fields will be ignored. Dots in nested structures will be replaced by underscores. \"\n \"Sample input: 'text, metadata.title'. \"\n \"Sample output: {'text': 'page content here', 'metadata_title': 'page title here'}. \"\n \"For example, for the 'apify/website-content-crawler' Actor, you can extract the 'markdown' field, \"\n \"which is the content of the website in markdown format.\"\n ),\n ),\n BoolInput(\n name=\"flatten_dataset\",\n display_name=\"Flatten output\",\n info=(\n \"The output dataset will be converted from a nested format to a flat structure. \"\n \"Dots in nested structure will be replaced by underscores. \"\n \"This is useful for further processing of the Data object. \"\n \"For example, {'a': {'b': 1}} will be flattened to {'a_b': 1}.\"\n ),\n ),\n ]\n\n outputs = [\n Output(display_name=\"Output\", name=\"output\", type_=list[Data], method=\"run_model\"),\n Output(display_name=\"Tool\", name=\"tool\", type_=Tool, method=\"build_tool\"),\n ]\n\n def __init__(self, *args, **kwargs) -> None:\n super().__init__(*args, **kwargs)\n self._apify_client: ApifyClient | None = None\n\n def run_model(self) -> list[Data]:\n \"\"\"Run the Actor and return node output.\"\"\"\n input_ = json.loads(self.run_input)\n fields = ApifyActorsComponent.parse_dataset_fields(self.dataset_fields) if self.dataset_fields else None\n res = self.run_actor(self.actor_id, input_, fields=fields)\n if self.flatten_dataset:\n res = [ApifyActorsComponent.flatten(item) for item in res]\n data = [Data(data=item) for item in res]\n\n self.status = data\n return data\n\n def build_tool(self) -> Tool:\n \"\"\"Build a tool for an agent that runs the Apify Actor.\"\"\"\n actor_id = self.actor_id\n\n build = self._get_actor_latest_build(actor_id)\n readme = build.get(\"readme\", \"\")[:250] + \"...\"\n if not (input_schema_str := build.get(\"inputSchema\")):\n msg = \"Input schema not found\"\n raise ValueError(msg)\n input_schema = json.loads(input_schema_str)\n properties, required = ApifyActorsComponent.get_actor_input_schema_from_build(input_schema)\n properties = {\"run_input\": properties}\n\n # works from input schema\n info_ = [\n (\n \"JSON encoded as a string with input schema (STRICTLY FOLLOW JSON FORMAT AND SCHEMA):\\n\\n\"\n f\"{json.dumps(properties, separators=(',', ':'))}\"\n )\n ]\n if required:\n info_.append(\"\\n\\nRequired fields:\\n\" + \"\\n\".join(required))\n\n info = \"\".join(info_)\n\n input_model_cls = ApifyActorsComponent.create_input_model_class(info)\n tool_cls = ApifyActorsComponent.create_tool_class(self, readme, input_model_cls, actor_id)\n\n return cast(\"Tool\", tool_cls())\n\n @staticmethod\n def create_tool_class(\n parent: \"ApifyActorsComponent\", readme: str, input_model: type[BaseModel], actor_id: str\n ) -> type[BaseTool]:\n \"\"\"Create a tool class that runs an Apify Actor.\"\"\"\n\n class ApifyActorRun(BaseTool):\n \"\"\"Tool that runs Apify Actors.\"\"\"\n\n name: str = f\"apify_actor_{ApifyActorsComponent.actor_id_to_tool_name(actor_id)}\"\n description: str = (\n \"Run an Apify Actor with the given input. \"\n \"Here is a part of the currently loaded Actor README:\\n\\n\"\n f\"{readme}\\n\\n\"\n )\n\n args_schema: type[BaseModel] = input_model\n\n @field_serializer(\"args_schema\")\n def serialize_args_schema(self, args_schema):\n return args_schema.schema()\n\n def _run(self, run_input: str | dict) -> str:\n \"\"\"Use the Apify Actor.\"\"\"\n input_dict = json.loads(run_input) if isinstance(run_input, str) else run_input\n\n # retrieve if nested, just in case\n input_dict = input_dict.get(\"run_input\", input_dict)\n\n res = parent.run_actor(actor_id, input_dict)\n return \"\\n\\n\".join([ApifyActorsComponent.dict_to_json_str(item) for item in res])\n\n return ApifyActorRun\n\n @staticmethod\n def create_input_model_class(description: str) -> type[BaseModel]:\n \"\"\"Create a Pydantic model class for the Actor input.\"\"\"\n\n class ActorInput(BaseModel):\n \"\"\"Input for the Apify Actor tool.\"\"\"\n\n run_input: str = Field(..., description=description)\n\n return ActorInput\n\n def _get_apify_client(self) -> ApifyClient:\n \"\"\"Get the Apify client.\n\n Is created if not exists or token changes.\n \"\"\"\n if not self.apify_token:\n msg = \"API token is required.\"\n raise ValueError(msg)\n # when token changes, create a new client\n if self._apify_client is None or self._apify_client.token != self.apify_token:\n self._apify_client = ApifyClient(self.apify_token)\n if httpx_client := self._apify_client.http_client.httpx_client:\n httpx_client.headers[\"user-agent\"] += \"; Origin/langflow\"\n return self._apify_client\n\n def _get_actor_latest_build(self, actor_id: str) -> dict:\n \"\"\"Get the latest build of an Actor from the default build tag.\"\"\"\n client = self._get_apify_client()\n actor = client.actor(actor_id=actor_id)\n if not (actor_info := actor.get()):\n msg = f\"Actor {actor_id} not found.\"\n raise ValueError(msg)\n\n default_build_tag = actor_info.get(\"defaultRunOptions\", {}).get(\"build\")\n latest_build_id = actor_info.get(\"taggedBuilds\", {}).get(default_build_tag, {}).get(\"buildId\")\n\n if (build := client.build(latest_build_id).get()) is None:\n msg = f\"Build {latest_build_id} not found.\"\n raise ValueError(msg)\n\n return build\n\n @staticmethod\n def get_actor_input_schema_from_build(input_schema: dict) -> tuple[dict, list[str]]:\n \"\"\"Get the input schema from the Actor build.\n\n Trim the description to 250 characters.\n \"\"\"\n properties = input_schema.get(\"properties\", {})\n required = input_schema.get(\"required\", [])\n\n properties_out: dict = {}\n for item, meta in properties.items():\n properties_out[item] = {}\n if desc := meta.get(\"description\"):\n properties_out[item][\"description\"] = (\n desc[:MAX_DESCRIPTION_LEN] + \"...\" if len(desc) > MAX_DESCRIPTION_LEN else desc\n )\n for key_name in (\"type\", \"default\", \"prefill\", \"enum\"):\n if value := meta.get(key_name):\n properties_out[item][key_name] = value\n\n return properties_out, required\n\n def _get_run_dataset_id(self, run_id: str) -> str:\n \"\"\"Get the dataset id from the run id.\"\"\"\n client = self._get_apify_client()\n run = client.run(run_id=run_id)\n if (dataset := run.dataset().get()) is None:\n msg = \"Dataset not found\"\n raise ValueError(msg)\n if (did := dataset.get(\"id\")) is None:\n msg = \"Dataset id not found\"\n raise ValueError(msg)\n return did\n\n @staticmethod\n def dict_to_json_str(d: dict) -> str:\n \"\"\"Convert a dictionary to a JSON string.\"\"\"\n return json.dumps(d, separators=(\",\", \":\"), default=lambda _: \"<n/a>\")\n\n @staticmethod\n def actor_id_to_tool_name(actor_id: str) -> str:\n \"\"\"Turn actor_id into a valid tool name.\n\n Tool name must only contain letters, numbers, underscores, dashes,\n and cannot contain spaces.\n \"\"\"\n valid_chars = string.ascii_letters + string.digits + \"_-\"\n return \"\".join(char if char in valid_chars else \"_\" for char in actor_id)\n\n def run_actor(self, actor_id: str, run_input: dict, fields: list[str] | None = None) -> list[dict]:\n \"\"\"Run an Apify Actor and return the output dataset.\n\n Args:\n actor_id: Actor name from Apify store to run.\n run_input: JSON input for the Actor.\n fields: List of fields to extract from the dataset. Other fields will be ignored.\n \"\"\"\n client = self._get_apify_client()\n if (details := client.actor(actor_id=actor_id).call(run_input=run_input, wait_secs=1)) is None:\n msg = \"Actor run details not found\"\n raise ValueError(msg)\n if (run_id := details.get(\"id\")) is None:\n msg = \"Run id not found\"\n raise ValueError(msg)\n\n if (run_client := client.run(run_id)) is None:\n msg = \"Run client not found\"\n raise ValueError(msg)\n\n # stream logs\n with run_client.log().stream() as response:\n if response:\n for line in response.iter_lines():\n self.log(line)\n run_client.wait_for_finish()\n\n dataset_id = self._get_run_dataset_id(run_id)\n\n loader = ApifyDatasetLoader(\n dataset_id=dataset_id,\n dataset_mapping_function=lambda item: item\n if not fields\n else {k.replace(\".\", \"_\"): ApifyActorsComponent.get_nested_value(item, k) for k in fields},\n )\n return loader.load()\n\n @staticmethod\n def get_nested_value(data: dict[str, Any], key: str) -> Any:\n \"\"\"Get a nested value from a dictionary.\"\"\"\n keys = key.split(\".\")\n value = data\n for k in keys:\n if not isinstance(value, dict) or k not in value:\n return None\n value = value[k]\n return value\n\n @staticmethod\n def parse_dataset_fields(dataset_fields: str) -> list[str]:\n \"\"\"Convert a string of comma-separated fields into a list of fields.\"\"\"\n dataset_fields = dataset_fields.replace(\"'\", \"\").replace('\"', \"\").replace(\"`\", \"\")\n return [field.strip() for field in dataset_fields.split(\",\")]\n\n @staticmethod\n def flatten(d: dict) -> dict:\n \"\"\"Flatten a nested dictionary.\"\"\"\n\n def items():\n for key, value in d.items():\n if isinstance(value, dict):\n for subkey, subvalue in ApifyActorsComponent.flatten(value).items():\n yield key + \"_\" + subkey, subvalue\n else:\n yield key, value\n\n return dict(items())\n"
264
264
  },
265
265
  "dataset_fields": {
266
266
  "_input_type": "MultilineInput",
@@ -375,7 +375,7 @@
375
375
  "legacy": false,
376
376
  "lf_version": "1.4.2",
377
377
  "metadata": {
378
- "code_hash": "9fcfdb0fb080",
378
+ "code_hash": "e84290d462c2",
379
379
  "dependencies": {
380
380
  "dependencies": [
381
381
  {
@@ -392,7 +392,7 @@
392
392
  },
393
393
  {
394
394
  "name": "pydantic",
395
- "version": "2.10.6"
395
+ "version": "2.11.10"
396
396
  },
397
397
  {
398
398
  "name": "lfx",
@@ -491,7 +491,7 @@
491
491
  "show": true,
492
492
  "title_case": false,
493
493
  "type": "code",
494
- "value": "import json\nimport string\nfrom typing import Any, cast\n\nfrom apify_client import ApifyClient\nfrom langchain_community.document_loaders.apify_dataset import ApifyDatasetLoader\nfrom langchain_core.tools import BaseTool\nfrom pydantic import BaseModel, Field, field_serializer\n\nfrom lfx.custom.custom_component.component import Component\nfrom lfx.field_typing import Tool\nfrom lfx.inputs.inputs import BoolInput\nfrom lfx.io import MultilineInput, Output, SecretStrInput, StrInput\nfrom lfx.schema.data import Data\n\nMAX_DESCRIPTION_LEN = 250\n\n\nclass ApifyActorsComponent(Component):\n display_name = \"Apify Actors\"\n description = (\n \"Use Apify Actors to extract data from hundreds of places fast. \"\n \"This component can be used in a flow to retrieve data or as a tool with an agent.\"\n )\n documentation: str = \"http://docs.langflow.org/integrations-apify\"\n icon = \"Apify\"\n name = \"ApifyActors\"\n\n inputs = [\n SecretStrInput(\n name=\"apify_token\",\n display_name=\"Apify Token\",\n info=\"The API token for the Apify account.\",\n required=True,\n password=True,\n ),\n StrInput(\n name=\"actor_id\",\n display_name=\"Actor\",\n info=(\n \"Actor name from Apify store to run. For example 'apify/website-content-crawler' \"\n \"to use the Website Content Crawler Actor.\"\n ),\n value=\"apify/website-content-crawler\",\n required=True,\n ),\n # multiline input is more pleasant to use than the nested dict input\n MultilineInput(\n name=\"run_input\",\n display_name=\"Run input\",\n info=(\n 'The JSON input for the Actor run. For example for the \"apify/website-content-crawler\" Actor: '\n '{\"startUrls\":[{\"url\":\"https://docs.apify.com/academy/web-scraping-for-beginners\"}],\"maxCrawlDepth\":0}'\n ),\n value='{\"startUrls\":[{\"url\":\"https://docs.apify.com/academy/web-scraping-for-beginners\"}],\"maxCrawlDepth\":0}',\n required=True,\n ),\n MultilineInput(\n name=\"dataset_fields\",\n display_name=\"Output fields\",\n info=(\n \"Fields to extract from the dataset, split by commas. \"\n \"Other fields will be ignored. Dots in nested structures will be replaced by underscores. \"\n \"Sample input: 'text, metadata.title'. \"\n \"Sample output: {'text': 'page content here', 'metadata_title': 'page title here'}. \"\n \"For example, for the 'apify/website-content-crawler' Actor, you can extract the 'markdown' field, \"\n \"which is the content of the website in markdown format.\"\n ),\n ),\n BoolInput(\n name=\"flatten_dataset\",\n display_name=\"Flatten output\",\n info=(\n \"The output dataset will be converted from a nested format to a flat structure. \"\n \"Dots in nested structure will be replaced by underscores. \"\n \"This is useful for further processing of the Data object. \"\n \"For example, {'a': {'b': 1}} will be flattened to {'a_b': 1}.\"\n ),\n ),\n ]\n\n outputs = [\n Output(display_name=\"Output\", name=\"output\", type_=list[Data], method=\"run_model\"),\n Output(display_name=\"Tool\", name=\"tool\", type_=Tool, method=\"build_tool\"),\n ]\n\n def __init__(self, *args, **kwargs) -> None:\n super().__init__(*args, **kwargs)\n self._apify_client: ApifyClient | None = None\n\n def run_model(self) -> list[Data]:\n \"\"\"Run the Actor and return node output.\"\"\"\n input_ = json.loads(self.run_input)\n fields = ApifyActorsComponent.parse_dataset_fields(self.dataset_fields) if self.dataset_fields else None\n res = self.run_actor(self.actor_id, input_, fields=fields)\n if self.flatten_dataset:\n res = [ApifyActorsComponent.flatten(item) for item in res]\n data = [Data(data=item) for item in res]\n\n self.status = data\n return data\n\n def build_tool(self) -> Tool:\n \"\"\"Build a tool for an agent that runs the Apify Actor.\"\"\"\n actor_id = self.actor_id\n\n build = self._get_actor_latest_build(actor_id)\n readme = build.get(\"readme\", \"\")[:250] + \"...\"\n if not (input_schema_str := build.get(\"inputSchema\")):\n msg = \"Input schema not found\"\n raise ValueError(msg)\n input_schema = json.loads(input_schema_str)\n properties, required = ApifyActorsComponent.get_actor_input_schema_from_build(input_schema)\n properties = {\"run_input\": properties}\n\n # works from input schema\n info_ = [\n (\n \"JSON encoded as a string with input schema (STRICTLY FOLLOW JSON FORMAT AND SCHEMA):\\n\\n\"\n f\"{json.dumps(properties, separators=(',', ':'))}\"\n )\n ]\n if required:\n info_.append(\"\\n\\nRequired fields:\\n\" + \"\\n\".join(required))\n\n info = \"\".join(info_)\n\n input_model_cls = ApifyActorsComponent.create_input_model_class(info)\n tool_cls = ApifyActorsComponent.create_tool_class(self, readme, input_model_cls, actor_id)\n\n return cast(\"Tool\", tool_cls())\n\n @staticmethod\n def create_tool_class(\n parent: \"ApifyActorsComponent\", readme: str, input_model: type[BaseModel], actor_id: str\n ) -> type[BaseTool]:\n \"\"\"Create a tool class that runs an Apify Actor.\"\"\"\n\n class ApifyActorRun(BaseTool):\n \"\"\"Tool that runs Apify Actors.\"\"\"\n\n name: str = f\"apify_actor_{ApifyActorsComponent.actor_id_to_tool_name(actor_id)}\"\n description: str = (\n \"Run an Apify Actor with the given input. \"\n \"Here is a part of the currently loaded Actor README:\\n\\n\"\n f\"{readme}\\n\\n\"\n )\n\n args_schema: type[BaseModel] = input_model\n\n @field_serializer(\"args_schema\")\n def serialize_args_schema(self, args_schema):\n return args_schema.schema()\n\n def _run(self, run_input: str | dict) -> str:\n \"\"\"Use the Apify Actor.\"\"\"\n input_dict = json.loads(run_input) if isinstance(run_input, str) else run_input\n\n # retrieve if nested, just in case\n input_dict = input_dict.get(\"run_input\", input_dict)\n\n res = parent.run_actor(actor_id, input_dict)\n return \"\\n\\n\".join([ApifyActorsComponent.dict_to_json_str(item) for item in res])\n\n return ApifyActorRun\n\n @staticmethod\n def create_input_model_class(description: str) -> type[BaseModel]:\n \"\"\"Create a Pydantic model class for the Actor input.\"\"\"\n\n class ActorInput(BaseModel):\n \"\"\"Input for the Apify Actor tool.\"\"\"\n\n run_input: str = Field(..., description=description)\n\n return ActorInput\n\n def _get_apify_client(self) -> ApifyClient:\n \"\"\"Get the Apify client.\n\n Is created if not exists or token changes.\n \"\"\"\n if not self.apify_token:\n msg = \"API token is required.\"\n raise ValueError(msg)\n # when token changes, create a new client\n if self._apify_client is None or self._apify_client.token != self.apify_token:\n self._apify_client = ApifyClient(self.apify_token)\n if httpx_client := self._apify_client.http_client.httpx_client:\n httpx_client.headers[\"user-agent\"] += \"; Origin/langflow\"\n return self._apify_client\n\n def _get_actor_latest_build(self, actor_id: str) -> dict:\n \"\"\"Get the latest build of an Actor from the default build tag.\"\"\"\n client = self._get_apify_client()\n actor = client.actor(actor_id=actor_id)\n if not (actor_info := actor.get()):\n msg = f\"Actor {actor_id} not found.\"\n raise ValueError(msg)\n\n default_build_tag = actor_info.get(\"defaultRunOptions\", {}).get(\"build\")\n latest_build_id = actor_info.get(\"taggedBuilds\", {}).get(default_build_tag, {}).get(\"buildId\")\n\n if (build := client.build(latest_build_id).get()) is None:\n msg = f\"Build {latest_build_id} not found.\"\n raise ValueError(msg)\n\n return build\n\n @staticmethod\n def get_actor_input_schema_from_build(input_schema: dict) -> tuple[dict, list[str]]:\n \"\"\"Get the input schema from the Actor build.\n\n Trim the description to 250 characters.\n \"\"\"\n properties = input_schema.get(\"properties\", {})\n required = input_schema.get(\"required\", [])\n\n properties_out: dict = {}\n for item, meta in properties.items():\n properties_out[item] = {}\n if desc := meta.get(\"description\"):\n properties_out[item][\"description\"] = (\n desc[:MAX_DESCRIPTION_LEN] + \"...\" if len(desc) > MAX_DESCRIPTION_LEN else desc\n )\n for key_name in (\"type\", \"default\", \"prefill\", \"enum\"):\n if value := meta.get(key_name):\n properties_out[item][key_name] = value\n\n return properties_out, required\n\n def _get_run_dataset_id(self, run_id: str) -> str:\n \"\"\"Get the dataset id from the run id.\"\"\"\n client = self._get_apify_client()\n run = client.run(run_id=run_id)\n if (dataset := run.dataset().get()) is None:\n msg = \"Dataset not found\"\n raise ValueError(msg)\n if (did := dataset.get(\"id\")) is None:\n msg = \"Dataset id not found\"\n raise ValueError(msg)\n return did\n\n @staticmethod\n def dict_to_json_str(d: dict) -> str:\n \"\"\"Convert a dictionary to a JSON string.\"\"\"\n return json.dumps(d, separators=(\",\", \":\"), default=lambda _: \"<n/a>\")\n\n @staticmethod\n def actor_id_to_tool_name(actor_id: str) -> str:\n \"\"\"Turn actor_id into a valid tool name.\n\n Tool name must only contain letters, numbers, underscores, dashes,\n and cannot contain spaces.\n \"\"\"\n valid_chars = string.ascii_letters + string.digits + \"_-\"\n return \"\".join(char if char in valid_chars else \"_\" for char in actor_id)\n\n def run_actor(self, actor_id: str, run_input: dict, fields: list[str] | None = None) -> list[dict]:\n \"\"\"Run an Apify Actor and return the output dataset.\n\n Args:\n actor_id: Actor name from Apify store to run.\n run_input: JSON input for the Actor.\n fields: List of fields to extract from the dataset. Other fields will be ignored.\n \"\"\"\n client = self._get_apify_client()\n if (details := client.actor(actor_id=actor_id).call(run_input=run_input, wait_secs=1)) is None:\n msg = \"Actor run details not found\"\n raise ValueError(msg)\n if (run_id := details.get(\"id\")) is None:\n msg = \"Run id not found\"\n raise ValueError(msg)\n\n if (run_client := client.run(run_id)) is None:\n msg = \"Run client not found\"\n raise ValueError(msg)\n\n # stream logs\n with run_client.log().stream() as response:\n if response:\n for line in response.iter_lines():\n self.log(line)\n run_client.wait_for_finish()\n\n dataset_id = self._get_run_dataset_id(run_id)\n\n loader = ApifyDatasetLoader(\n dataset_id=dataset_id,\n dataset_mapping_function=lambda item: item\n if not fields\n else {k.replace(\".\", \"_\"): ApifyActorsComponent.get_nested_value(item, k) for k in fields},\n )\n return loader.load()\n\n @staticmethod\n def get_nested_value(data: dict[str, Any], key: str) -> Any:\n \"\"\"Get a nested value from a dictionary.\"\"\"\n keys = key.split(\".\")\n value = data\n for k in keys:\n if not isinstance(value, dict) or k not in value:\n return None\n value = value[k]\n return value\n\n @staticmethod\n def parse_dataset_fields(dataset_fields: str) -> list[str]:\n \"\"\"Convert a string of comma-separated fields into a list of fields.\"\"\"\n dataset_fields = dataset_fields.replace(\"'\", \"\").replace('\"', \"\").replace(\"`\", \"\")\n return [field.strip() for field in dataset_fields.split(\",\")]\n\n @staticmethod\n def flatten(d: dict) -> dict:\n \"\"\"Flatten a nested dictionary.\"\"\"\n\n def items():\n for key, value in d.items():\n if isinstance(value, dict):\n for subkey, subvalue in ApifyActorsComponent.flatten(value).items():\n yield key + \"_\" + subkey, subvalue\n else:\n yield key, value\n\n return dict(items())\n"
494
+ "value": "import json\nimport string\nfrom typing import Any, cast\n\nfrom apify_client import ApifyClient\nfrom langchain_community.document_loaders.apify_dataset import ApifyDatasetLoader\nfrom langchain_core.tools import BaseTool\nfrom pydantic import BaseModel, Field, field_serializer\n\nfrom lfx.custom.custom_component.component import Component\nfrom lfx.field_typing import Tool\nfrom lfx.inputs.inputs import BoolInput\nfrom lfx.io import MultilineInput, Output, SecretStrInput, StrInput\nfrom lfx.schema.data import Data\n\nMAX_DESCRIPTION_LEN = 250\n\n\nclass ApifyActorsComponent(Component):\n display_name = \"Apify Actors\"\n description = (\n \"Use Apify Actors to extract data from hundreds of places fast. \"\n \"This component can be used in a flow to retrieve data or as a tool with an agent.\"\n )\n documentation: str = \"https://docs.langflow.org/bundles-apify\"\n icon = \"Apify\"\n name = \"ApifyActors\"\n\n inputs = [\n SecretStrInput(\n name=\"apify_token\",\n display_name=\"Apify Token\",\n info=\"The API token for the Apify account.\",\n required=True,\n password=True,\n ),\n StrInput(\n name=\"actor_id\",\n display_name=\"Actor\",\n info=(\n \"Actor name from Apify store to run. For example 'apify/website-content-crawler' \"\n \"to use the Website Content Crawler Actor.\"\n ),\n value=\"apify/website-content-crawler\",\n required=True,\n ),\n # multiline input is more pleasant to use than the nested dict input\n MultilineInput(\n name=\"run_input\",\n display_name=\"Run input\",\n info=(\n 'The JSON input for the Actor run. For example for the \"apify/website-content-crawler\" Actor: '\n '{\"startUrls\":[{\"url\":\"https://docs.apify.com/academy/web-scraping-for-beginners\"}],\"maxCrawlDepth\":0}'\n ),\n value='{\"startUrls\":[{\"url\":\"https://docs.apify.com/academy/web-scraping-for-beginners\"}],\"maxCrawlDepth\":0}',\n required=True,\n ),\n MultilineInput(\n name=\"dataset_fields\",\n display_name=\"Output fields\",\n info=(\n \"Fields to extract from the dataset, split by commas. \"\n \"Other fields will be ignored. Dots in nested structures will be replaced by underscores. \"\n \"Sample input: 'text, metadata.title'. \"\n \"Sample output: {'text': 'page content here', 'metadata_title': 'page title here'}. \"\n \"For example, for the 'apify/website-content-crawler' Actor, you can extract the 'markdown' field, \"\n \"which is the content of the website in markdown format.\"\n ),\n ),\n BoolInput(\n name=\"flatten_dataset\",\n display_name=\"Flatten output\",\n info=(\n \"The output dataset will be converted from a nested format to a flat structure. \"\n \"Dots in nested structure will be replaced by underscores. \"\n \"This is useful for further processing of the Data object. \"\n \"For example, {'a': {'b': 1}} will be flattened to {'a_b': 1}.\"\n ),\n ),\n ]\n\n outputs = [\n Output(display_name=\"Output\", name=\"output\", type_=list[Data], method=\"run_model\"),\n Output(display_name=\"Tool\", name=\"tool\", type_=Tool, method=\"build_tool\"),\n ]\n\n def __init__(self, *args, **kwargs) -> None:\n super().__init__(*args, **kwargs)\n self._apify_client: ApifyClient | None = None\n\n def run_model(self) -> list[Data]:\n \"\"\"Run the Actor and return node output.\"\"\"\n input_ = json.loads(self.run_input)\n fields = ApifyActorsComponent.parse_dataset_fields(self.dataset_fields) if self.dataset_fields else None\n res = self.run_actor(self.actor_id, input_, fields=fields)\n if self.flatten_dataset:\n res = [ApifyActorsComponent.flatten(item) for item in res]\n data = [Data(data=item) for item in res]\n\n self.status = data\n return data\n\n def build_tool(self) -> Tool:\n \"\"\"Build a tool for an agent that runs the Apify Actor.\"\"\"\n actor_id = self.actor_id\n\n build = self._get_actor_latest_build(actor_id)\n readme = build.get(\"readme\", \"\")[:250] + \"...\"\n if not (input_schema_str := build.get(\"inputSchema\")):\n msg = \"Input schema not found\"\n raise ValueError(msg)\n input_schema = json.loads(input_schema_str)\n properties, required = ApifyActorsComponent.get_actor_input_schema_from_build(input_schema)\n properties = {\"run_input\": properties}\n\n # works from input schema\n info_ = [\n (\n \"JSON encoded as a string with input schema (STRICTLY FOLLOW JSON FORMAT AND SCHEMA):\\n\\n\"\n f\"{json.dumps(properties, separators=(',', ':'))}\"\n )\n ]\n if required:\n info_.append(\"\\n\\nRequired fields:\\n\" + \"\\n\".join(required))\n\n info = \"\".join(info_)\n\n input_model_cls = ApifyActorsComponent.create_input_model_class(info)\n tool_cls = ApifyActorsComponent.create_tool_class(self, readme, input_model_cls, actor_id)\n\n return cast(\"Tool\", tool_cls())\n\n @staticmethod\n def create_tool_class(\n parent: \"ApifyActorsComponent\", readme: str, input_model: type[BaseModel], actor_id: str\n ) -> type[BaseTool]:\n \"\"\"Create a tool class that runs an Apify Actor.\"\"\"\n\n class ApifyActorRun(BaseTool):\n \"\"\"Tool that runs Apify Actors.\"\"\"\n\n name: str = f\"apify_actor_{ApifyActorsComponent.actor_id_to_tool_name(actor_id)}\"\n description: str = (\n \"Run an Apify Actor with the given input. \"\n \"Here is a part of the currently loaded Actor README:\\n\\n\"\n f\"{readme}\\n\\n\"\n )\n\n args_schema: type[BaseModel] = input_model\n\n @field_serializer(\"args_schema\")\n def serialize_args_schema(self, args_schema):\n return args_schema.schema()\n\n def _run(self, run_input: str | dict) -> str:\n \"\"\"Use the Apify Actor.\"\"\"\n input_dict = json.loads(run_input) if isinstance(run_input, str) else run_input\n\n # retrieve if nested, just in case\n input_dict = input_dict.get(\"run_input\", input_dict)\n\n res = parent.run_actor(actor_id, input_dict)\n return \"\\n\\n\".join([ApifyActorsComponent.dict_to_json_str(item) for item in res])\n\n return ApifyActorRun\n\n @staticmethod\n def create_input_model_class(description: str) -> type[BaseModel]:\n \"\"\"Create a Pydantic model class for the Actor input.\"\"\"\n\n class ActorInput(BaseModel):\n \"\"\"Input for the Apify Actor tool.\"\"\"\n\n run_input: str = Field(..., description=description)\n\n return ActorInput\n\n def _get_apify_client(self) -> ApifyClient:\n \"\"\"Get the Apify client.\n\n Is created if not exists or token changes.\n \"\"\"\n if not self.apify_token:\n msg = \"API token is required.\"\n raise ValueError(msg)\n # when token changes, create a new client\n if self._apify_client is None or self._apify_client.token != self.apify_token:\n self._apify_client = ApifyClient(self.apify_token)\n if httpx_client := self._apify_client.http_client.httpx_client:\n httpx_client.headers[\"user-agent\"] += \"; Origin/langflow\"\n return self._apify_client\n\n def _get_actor_latest_build(self, actor_id: str) -> dict:\n \"\"\"Get the latest build of an Actor from the default build tag.\"\"\"\n client = self._get_apify_client()\n actor = client.actor(actor_id=actor_id)\n if not (actor_info := actor.get()):\n msg = f\"Actor {actor_id} not found.\"\n raise ValueError(msg)\n\n default_build_tag = actor_info.get(\"defaultRunOptions\", {}).get(\"build\")\n latest_build_id = actor_info.get(\"taggedBuilds\", {}).get(default_build_tag, {}).get(\"buildId\")\n\n if (build := client.build(latest_build_id).get()) is None:\n msg = f\"Build {latest_build_id} not found.\"\n raise ValueError(msg)\n\n return build\n\n @staticmethod\n def get_actor_input_schema_from_build(input_schema: dict) -> tuple[dict, list[str]]:\n \"\"\"Get the input schema from the Actor build.\n\n Trim the description to 250 characters.\n \"\"\"\n properties = input_schema.get(\"properties\", {})\n required = input_schema.get(\"required\", [])\n\n properties_out: dict = {}\n for item, meta in properties.items():\n properties_out[item] = {}\n if desc := meta.get(\"description\"):\n properties_out[item][\"description\"] = (\n desc[:MAX_DESCRIPTION_LEN] + \"...\" if len(desc) > MAX_DESCRIPTION_LEN else desc\n )\n for key_name in (\"type\", \"default\", \"prefill\", \"enum\"):\n if value := meta.get(key_name):\n properties_out[item][key_name] = value\n\n return properties_out, required\n\n def _get_run_dataset_id(self, run_id: str) -> str:\n \"\"\"Get the dataset id from the run id.\"\"\"\n client = self._get_apify_client()\n run = client.run(run_id=run_id)\n if (dataset := run.dataset().get()) is None:\n msg = \"Dataset not found\"\n raise ValueError(msg)\n if (did := dataset.get(\"id\")) is None:\n msg = \"Dataset id not found\"\n raise ValueError(msg)\n return did\n\n @staticmethod\n def dict_to_json_str(d: dict) -> str:\n \"\"\"Convert a dictionary to a JSON string.\"\"\"\n return json.dumps(d, separators=(\",\", \":\"), default=lambda _: \"<n/a>\")\n\n @staticmethod\n def actor_id_to_tool_name(actor_id: str) -> str:\n \"\"\"Turn actor_id into a valid tool name.\n\n Tool name must only contain letters, numbers, underscores, dashes,\n and cannot contain spaces.\n \"\"\"\n valid_chars = string.ascii_letters + string.digits + \"_-\"\n return \"\".join(char if char in valid_chars else \"_\" for char in actor_id)\n\n def run_actor(self, actor_id: str, run_input: dict, fields: list[str] | None = None) -> list[dict]:\n \"\"\"Run an Apify Actor and return the output dataset.\n\n Args:\n actor_id: Actor name from Apify store to run.\n run_input: JSON input for the Actor.\n fields: List of fields to extract from the dataset. Other fields will be ignored.\n \"\"\"\n client = self._get_apify_client()\n if (details := client.actor(actor_id=actor_id).call(run_input=run_input, wait_secs=1)) is None:\n msg = \"Actor run details not found\"\n raise ValueError(msg)\n if (run_id := details.get(\"id\")) is None:\n msg = \"Run id not found\"\n raise ValueError(msg)\n\n if (run_client := client.run(run_id)) is None:\n msg = \"Run client not found\"\n raise ValueError(msg)\n\n # stream logs\n with run_client.log().stream() as response:\n if response:\n for line in response.iter_lines():\n self.log(line)\n run_client.wait_for_finish()\n\n dataset_id = self._get_run_dataset_id(run_id)\n\n loader = ApifyDatasetLoader(\n dataset_id=dataset_id,\n dataset_mapping_function=lambda item: item\n if not fields\n else {k.replace(\".\", \"_\"): ApifyActorsComponent.get_nested_value(item, k) for k in fields},\n )\n return loader.load()\n\n @staticmethod\n def get_nested_value(data: dict[str, Any], key: str) -> Any:\n \"\"\"Get a nested value from a dictionary.\"\"\"\n keys = key.split(\".\")\n value = data\n for k in keys:\n if not isinstance(value, dict) or k not in value:\n return None\n value = value[k]\n return value\n\n @staticmethod\n def parse_dataset_fields(dataset_fields: str) -> list[str]:\n \"\"\"Convert a string of comma-separated fields into a list of fields.\"\"\"\n dataset_fields = dataset_fields.replace(\"'\", \"\").replace('\"', \"\").replace(\"`\", \"\")\n return [field.strip() for field in dataset_fields.split(\",\")]\n\n @staticmethod\n def flatten(d: dict) -> dict:\n \"\"\"Flatten a nested dictionary.\"\"\"\n\n def items():\n for key, value in d.items():\n if isinstance(value, dict):\n for subkey, subvalue in ApifyActorsComponent.flatten(value).items():\n yield key + \"_\" + subkey, subvalue\n else:\n yield key, value\n\n return dict(items())\n"
495
495
  },
496
496
  "dataset_fields": {
497
497
  "_input_type": "MultilineInput",
@@ -693,7 +693,7 @@
693
693
  "legacy": false,
694
694
  "lf_version": "1.4.2",
695
695
  "metadata": {
696
- "code_hash": "0014a5b41817",
696
+ "code_hash": "7a26c54d89ed",
697
697
  "dependencies": {
698
698
  "dependencies": [
699
699
  {
@@ -742,7 +742,7 @@
742
742
  "show": true,
743
743
  "title_case": false,
744
744
  "type": "code",
745
- "value": "from lfx.base.data.utils import IMG_FILE_TYPES, TEXT_FILE_TYPES\nfrom lfx.base.io.chat import ChatComponent\nfrom lfx.inputs.inputs import BoolInput\nfrom lfx.io import (\n DropdownInput,\n FileInput,\n MessageTextInput,\n MultilineInput,\n Output,\n)\nfrom lfx.schema.message import Message\nfrom lfx.utils.constants import (\n MESSAGE_SENDER_AI,\n MESSAGE_SENDER_NAME_USER,\n MESSAGE_SENDER_USER,\n)\n\n\nclass ChatInput(ChatComponent):\n display_name = \"Chat Input\"\n description = \"Get chat inputs from the Playground.\"\n documentation: str = \"https://docs.langflow.org/components-io#chat-input\"\n icon = \"MessagesSquare\"\n name = \"ChatInput\"\n minimized = True\n\n inputs = [\n MultilineInput(\n name=\"input_value\",\n display_name=\"Input Text\",\n value=\"\",\n info=\"Message to be passed as input.\",\n input_types=[],\n ),\n BoolInput(\n name=\"should_store_message\",\n display_name=\"Store Messages\",\n info=\"Store the message in the history.\",\n value=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"sender\",\n display_name=\"Sender Type\",\n options=[MESSAGE_SENDER_AI, MESSAGE_SENDER_USER],\n value=MESSAGE_SENDER_USER,\n info=\"Type of sender.\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"sender_name\",\n display_name=\"Sender Name\",\n info=\"Name of the sender.\",\n value=MESSAGE_SENDER_NAME_USER,\n advanced=True,\n ),\n MessageTextInput(\n name=\"session_id\",\n display_name=\"Session ID\",\n info=\"The session ID of the chat. If empty, the current session ID parameter will be used.\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"context_id\",\n display_name=\"Context ID\",\n info=\"The context ID of the chat. Adds an extra layer to the local memory.\",\n value=\"\",\n advanced=True,\n ),\n FileInput(\n name=\"files\",\n display_name=\"Files\",\n file_types=TEXT_FILE_TYPES + IMG_FILE_TYPES,\n info=\"Files to be sent with the message.\",\n advanced=True,\n is_list=True,\n temp_file=True,\n ),\n ]\n outputs = [\n Output(display_name=\"Chat Message\", name=\"message\", method=\"message_response\"),\n ]\n\n async def message_response(self) -> Message:\n # Ensure files is a list and filter out empty/None values\n files = self.files if self.files else []\n if files and not isinstance(files, list):\n files = [files]\n # Filter out None/empty values\n files = [f for f in files if f is not None and f != \"\"]\n\n message = await Message.create(\n text=self.input_value,\n sender=self.sender,\n sender_name=self.sender_name,\n session_id=self.session_id,\n context_id=self.context_id,\n files=files,\n )\n if self.session_id and isinstance(message, Message) and self.should_store_message:\n stored_message = await self.send_message(\n message,\n )\n self.message.value = stored_message\n message = stored_message\n\n self.status = message\n return message\n"
745
+ "value": "from lfx.base.data.utils import IMG_FILE_TYPES, TEXT_FILE_TYPES\nfrom lfx.base.io.chat import ChatComponent\nfrom lfx.inputs.inputs import BoolInput\nfrom lfx.io import (\n DropdownInput,\n FileInput,\n MessageTextInput,\n MultilineInput,\n Output,\n)\nfrom lfx.schema.message import Message\nfrom lfx.utils.constants import (\n MESSAGE_SENDER_AI,\n MESSAGE_SENDER_NAME_USER,\n MESSAGE_SENDER_USER,\n)\n\n\nclass ChatInput(ChatComponent):\n display_name = \"Chat Input\"\n description = \"Get chat inputs from the Playground.\"\n documentation: str = \"https://docs.langflow.org/chat-input-and-output\"\n icon = \"MessagesSquare\"\n name = \"ChatInput\"\n minimized = True\n\n inputs = [\n MultilineInput(\n name=\"input_value\",\n display_name=\"Input Text\",\n value=\"\",\n info=\"Message to be passed as input.\",\n input_types=[],\n ),\n BoolInput(\n name=\"should_store_message\",\n display_name=\"Store Messages\",\n info=\"Store the message in the history.\",\n value=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"sender\",\n display_name=\"Sender Type\",\n options=[MESSAGE_SENDER_AI, MESSAGE_SENDER_USER],\n value=MESSAGE_SENDER_USER,\n info=\"Type of sender.\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"sender_name\",\n display_name=\"Sender Name\",\n info=\"Name of the sender.\",\n value=MESSAGE_SENDER_NAME_USER,\n advanced=True,\n ),\n MessageTextInput(\n name=\"session_id\",\n display_name=\"Session ID\",\n info=\"The session ID of the chat. If empty, the current session ID parameter will be used.\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"context_id\",\n display_name=\"Context ID\",\n info=\"The context ID of the chat. Adds an extra layer to the local memory.\",\n value=\"\",\n advanced=True,\n ),\n FileInput(\n name=\"files\",\n display_name=\"Files\",\n file_types=TEXT_FILE_TYPES + IMG_FILE_TYPES,\n info=\"Files to be sent with the message.\",\n advanced=True,\n is_list=True,\n temp_file=True,\n ),\n ]\n outputs = [\n Output(display_name=\"Chat Message\", name=\"message\", method=\"message_response\"),\n ]\n\n async def message_response(self) -> Message:\n # Ensure files is a list and filter out empty/None values\n files = self.files if self.files else []\n if files and not isinstance(files, list):\n files = [files]\n # Filter out None/empty values\n files = [f for f in files if f is not None and f != \"\"]\n\n session_id = self.session_id or self.graph.session_id or \"\"\n message = await Message.create(\n text=self.input_value,\n sender=self.sender,\n sender_name=self.sender_name,\n session_id=session_id,\n context_id=self.context_id,\n files=files,\n )\n if session_id and isinstance(message, Message) and self.should_store_message:\n stored_message = await self.send_message(\n message,\n )\n self.message.value = stored_message\n message = stored_message\n\n self.status = message\n return message\n"
746
746
  },
747
747
  "context_id": {
748
748
  "_input_type": "MessageTextInput",
@@ -971,7 +971,7 @@
971
971
  "legacy": false,
972
972
  "lf_version": "1.4.2",
973
973
  "metadata": {
974
- "code_hash": "4848ad3e35d5",
974
+ "code_hash": "cae45e2d53f6",
975
975
  "dependencies": {
976
976
  "dependencies": [
977
977
  {
@@ -1046,7 +1046,7 @@
1046
1046
  "show": true,
1047
1047
  "title_case": false,
1048
1048
  "type": "code",
1049
- "value": "from collections.abc import Generator\nfrom typing import Any\n\nimport orjson\nfrom fastapi.encoders import jsonable_encoder\n\nfrom lfx.base.io.chat import ChatComponent\nfrom lfx.helpers.data import safe_convert\nfrom lfx.inputs.inputs import BoolInput, DropdownInput, HandleInput, MessageTextInput\nfrom lfx.schema.data import Data\nfrom lfx.schema.dataframe import DataFrame\nfrom lfx.schema.message import Message\nfrom lfx.schema.properties import Source\nfrom lfx.template.field.base import Output\nfrom lfx.utils.constants import (\n MESSAGE_SENDER_AI,\n MESSAGE_SENDER_NAME_AI,\n MESSAGE_SENDER_USER,\n)\n\n\nclass ChatOutput(ChatComponent):\n display_name = \"Chat Output\"\n description = \"Display a chat message in the Playground.\"\n documentation: str = \"https://docs.langflow.org/components-io#chat-output\"\n icon = \"MessagesSquare\"\n name = \"ChatOutput\"\n minimized = True\n\n inputs = [\n HandleInput(\n name=\"input_value\",\n display_name=\"Inputs\",\n info=\"Message to be passed as output.\",\n input_types=[\"Data\", \"DataFrame\", \"Message\"],\n required=True,\n ),\n BoolInput(\n name=\"should_store_message\",\n display_name=\"Store Messages\",\n info=\"Store the message in the history.\",\n value=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"sender\",\n display_name=\"Sender Type\",\n options=[MESSAGE_SENDER_AI, MESSAGE_SENDER_USER],\n value=MESSAGE_SENDER_AI,\n advanced=True,\n info=\"Type of sender.\",\n ),\n MessageTextInput(\n name=\"sender_name\",\n display_name=\"Sender Name\",\n info=\"Name of the sender.\",\n value=MESSAGE_SENDER_NAME_AI,\n advanced=True,\n ),\n MessageTextInput(\n name=\"session_id\",\n display_name=\"Session ID\",\n info=\"The session ID of the chat. If empty, the current session ID parameter will be used.\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"context_id\",\n display_name=\"Context ID\",\n info=\"The context ID of the chat. Adds an extra layer to the local memory.\",\n value=\"\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"data_template\",\n display_name=\"Data Template\",\n value=\"{text}\",\n advanced=True,\n info=\"Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.\",\n ),\n BoolInput(\n name=\"clean_data\",\n display_name=\"Basic Clean Data\",\n value=True,\n advanced=True,\n info=\"Whether to clean data before converting to string.\",\n ),\n ]\n outputs = [\n Output(\n display_name=\"Output Message\",\n name=\"message\",\n method=\"message_response\",\n ),\n ]\n\n def _build_source(self, id_: str | None, display_name: str | None, source: str | None) -> Source:\n source_dict = {}\n if id_:\n source_dict[\"id\"] = id_\n if display_name:\n source_dict[\"display_name\"] = display_name\n if source:\n # Handle case where source is a ChatOpenAI object\n if hasattr(source, \"model_name\"):\n source_dict[\"source\"] = source.model_name\n elif hasattr(source, \"model\"):\n source_dict[\"source\"] = str(source.model)\n else:\n source_dict[\"source\"] = str(source)\n return Source(**source_dict)\n\n async def message_response(self) -> Message:\n # First convert the input to string if needed\n text = self.convert_to_string()\n\n # Get source properties\n source, _, display_name, source_id = self.get_properties_from_source_component()\n\n # Create or use existing Message object\n if isinstance(self.input_value, Message):\n message = self.input_value\n # Update message properties\n message.text = text\n else:\n message = Message(text=text)\n\n # Set message properties\n message.sender = self.sender\n message.sender_name = self.sender_name\n message.session_id = self.session_id\n message.context_id = self.context_id\n message.flow_id = self.graph.flow_id if hasattr(self, \"graph\") else None\n message.properties.source = self._build_source(source_id, display_name, source)\n\n # Store message if needed\n if self.session_id and self.should_store_message:\n stored_message = await self.send_message(message)\n self.message.value = stored_message\n message = stored_message\n\n self.status = message\n return message\n\n def _serialize_data(self, data: Data) -> str:\n \"\"\"Serialize Data object to JSON string.\"\"\"\n # Convert data.data to JSON-serializable format\n serializable_data = jsonable_encoder(data.data)\n # Serialize with orjson, enabling pretty printing with indentation\n json_bytes = orjson.dumps(serializable_data, option=orjson.OPT_INDENT_2)\n # Convert bytes to string and wrap in Markdown code blocks\n return \"```json\\n\" + json_bytes.decode(\"utf-8\") + \"\\n```\"\n\n def _validate_input(self) -> None:\n \"\"\"Validate the input data and raise ValueError if invalid.\"\"\"\n if self.input_value is None:\n msg = \"Input data cannot be None\"\n raise ValueError(msg)\n if isinstance(self.input_value, list) and not all(\n isinstance(item, Message | Data | DataFrame | str) for item in self.input_value\n ):\n invalid_types = [\n type(item).__name__\n for item in self.input_value\n if not isinstance(item, Message | Data | DataFrame | str)\n ]\n msg = f\"Expected Data or DataFrame or Message or str, got {invalid_types}\"\n raise TypeError(msg)\n if not isinstance(\n self.input_value,\n Message | Data | DataFrame | str | list | Generator | type(None),\n ):\n type_name = type(self.input_value).__name__\n msg = f\"Expected Data or DataFrame or Message or str, Generator or None, got {type_name}\"\n raise TypeError(msg)\n\n def convert_to_string(self) -> str | Generator[Any, None, None]:\n \"\"\"Convert input data to string with proper error handling.\"\"\"\n self._validate_input()\n if isinstance(self.input_value, list):\n clean_data: bool = getattr(self, \"clean_data\", False)\n return \"\\n\".join([safe_convert(item, clean_data=clean_data) for item in self.input_value])\n if isinstance(self.input_value, Generator):\n return self.input_value\n return safe_convert(self.input_value)\n"
1049
+ "value": "from collections.abc import Generator\nfrom typing import Any\n\nimport orjson\nfrom fastapi.encoders import jsonable_encoder\n\nfrom lfx.base.io.chat import ChatComponent\nfrom lfx.helpers.data import safe_convert\nfrom lfx.inputs.inputs import BoolInput, DropdownInput, HandleInput, MessageTextInput\nfrom lfx.schema.data import Data\nfrom lfx.schema.dataframe import DataFrame\nfrom lfx.schema.message import Message\nfrom lfx.schema.properties import Source\nfrom lfx.template.field.base import Output\nfrom lfx.utils.constants import (\n MESSAGE_SENDER_AI,\n MESSAGE_SENDER_NAME_AI,\n MESSAGE_SENDER_USER,\n)\n\n\nclass ChatOutput(ChatComponent):\n display_name = \"Chat Output\"\n description = \"Display a chat message in the Playground.\"\n documentation: str = \"https://docs.langflow.org/chat-input-and-output\"\n icon = \"MessagesSquare\"\n name = \"ChatOutput\"\n minimized = True\n\n inputs = [\n HandleInput(\n name=\"input_value\",\n display_name=\"Inputs\",\n info=\"Message to be passed as output.\",\n input_types=[\"Data\", \"DataFrame\", \"Message\"],\n required=True,\n ),\n BoolInput(\n name=\"should_store_message\",\n display_name=\"Store Messages\",\n info=\"Store the message in the history.\",\n value=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"sender\",\n display_name=\"Sender Type\",\n options=[MESSAGE_SENDER_AI, MESSAGE_SENDER_USER],\n value=MESSAGE_SENDER_AI,\n advanced=True,\n info=\"Type of sender.\",\n ),\n MessageTextInput(\n name=\"sender_name\",\n display_name=\"Sender Name\",\n info=\"Name of the sender.\",\n value=MESSAGE_SENDER_NAME_AI,\n advanced=True,\n ),\n MessageTextInput(\n name=\"session_id\",\n display_name=\"Session ID\",\n info=\"The session ID of the chat. If empty, the current session ID parameter will be used.\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"context_id\",\n display_name=\"Context ID\",\n info=\"The context ID of the chat. Adds an extra layer to the local memory.\",\n value=\"\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"data_template\",\n display_name=\"Data Template\",\n value=\"{text}\",\n advanced=True,\n info=\"Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.\",\n ),\n BoolInput(\n name=\"clean_data\",\n display_name=\"Basic Clean Data\",\n value=True,\n advanced=True,\n info=\"Whether to clean data before converting to string.\",\n ),\n ]\n outputs = [\n Output(\n display_name=\"Output Message\",\n name=\"message\",\n method=\"message_response\",\n ),\n ]\n\n def _build_source(self, id_: str | None, display_name: str | None, source: str | None) -> Source:\n source_dict = {}\n if id_:\n source_dict[\"id\"] = id_\n if display_name:\n source_dict[\"display_name\"] = display_name\n if source:\n # Handle case where source is a ChatOpenAI object\n if hasattr(source, \"model_name\"):\n source_dict[\"source\"] = source.model_name\n elif hasattr(source, \"model\"):\n source_dict[\"source\"] = str(source.model)\n else:\n source_dict[\"source\"] = str(source)\n return Source(**source_dict)\n\n async def message_response(self) -> Message:\n # First convert the input to string if needed\n text = self.convert_to_string()\n\n # Get source properties\n source, _, display_name, source_id = self.get_properties_from_source_component()\n\n # Create or use existing Message object\n if isinstance(self.input_value, Message) and not self.is_connected_to_chat_input():\n message = self.input_value\n # Update message properties\n message.text = text\n else:\n message = Message(text=text)\n\n # Set message properties\n message.sender = self.sender\n message.sender_name = self.sender_name\n message.session_id = self.session_id or self.graph.session_id or \"\"\n message.context_id = self.context_id\n message.flow_id = self.graph.flow_id if hasattr(self, \"graph\") else None\n message.properties.source = self._build_source(source_id, display_name, source)\n\n # Store message if needed\n if message.session_id and self.should_store_message:\n stored_message = await self.send_message(message)\n self.message.value = stored_message\n message = stored_message\n\n self.status = message\n return message\n\n def _serialize_data(self, data: Data) -> str:\n \"\"\"Serialize Data object to JSON string.\"\"\"\n # Convert data.data to JSON-serializable format\n serializable_data = jsonable_encoder(data.data)\n # Serialize with orjson, enabling pretty printing with indentation\n json_bytes = orjson.dumps(serializable_data, option=orjson.OPT_INDENT_2)\n # Convert bytes to string and wrap in Markdown code blocks\n return \"```json\\n\" + json_bytes.decode(\"utf-8\") + \"\\n```\"\n\n def _validate_input(self) -> None:\n \"\"\"Validate the input data and raise ValueError if invalid.\"\"\"\n if self.input_value is None:\n msg = \"Input data cannot be None\"\n raise ValueError(msg)\n if isinstance(self.input_value, list) and not all(\n isinstance(item, Message | Data | DataFrame | str) for item in self.input_value\n ):\n invalid_types = [\n type(item).__name__\n for item in self.input_value\n if not isinstance(item, Message | Data | DataFrame | str)\n ]\n msg = f\"Expected Data or DataFrame or Message or str, got {invalid_types}\"\n raise TypeError(msg)\n if not isinstance(\n self.input_value,\n Message | Data | DataFrame | str | list | Generator | type(None),\n ):\n type_name = type(self.input_value).__name__\n msg = f\"Expected Data or DataFrame or Message or str, Generator or None, got {type_name}\"\n raise TypeError(msg)\n\n def convert_to_string(self) -> str | Generator[Any, None, None]:\n \"\"\"Convert input data to string with proper error handling.\"\"\"\n self._validate_input()\n if isinstance(self.input_value, list):\n clean_data: bool = getattr(self, \"clean_data\", False)\n return \"\\n\".join([safe_convert(item, clean_data=clean_data) for item in self.input_value])\n if isinstance(self.input_value, Generator):\n return self.input_value\n return safe_convert(self.input_value)\n"
1050
1050
  },
1051
1051
  "context_id": {
1052
1052
  "_input_type": "MessageTextInput",
@@ -1297,7 +1297,7 @@
1297
1297
  },
1298
1298
  {
1299
1299
  "name": "pydantic",
1300
- "version": "2.10.6"
1300
+ "version": "2.11.10"
1301
1301
  },
1302
1302
  {
1303
1303
  "name": "lfx",
@@ -713,7 +713,7 @@
713
713
  "icon": "MessagesSquare",
714
714
  "legacy": false,
715
715
  "metadata": {
716
- "code_hash": "4848ad3e35d5",
716
+ "code_hash": "cae45e2d53f6",
717
717
  "dependencies": {
718
718
  "dependencies": [
719
719
  {
@@ -788,7 +788,7 @@
788
788
  "show": true,
789
789
  "title_case": false,
790
790
  "type": "code",
791
- "value": "from collections.abc import Generator\nfrom typing import Any\n\nimport orjson\nfrom fastapi.encoders import jsonable_encoder\n\nfrom lfx.base.io.chat import ChatComponent\nfrom lfx.helpers.data import safe_convert\nfrom lfx.inputs.inputs import BoolInput, DropdownInput, HandleInput, MessageTextInput\nfrom lfx.schema.data import Data\nfrom lfx.schema.dataframe import DataFrame\nfrom lfx.schema.message import Message\nfrom lfx.schema.properties import Source\nfrom lfx.template.field.base import Output\nfrom lfx.utils.constants import (\n MESSAGE_SENDER_AI,\n MESSAGE_SENDER_NAME_AI,\n MESSAGE_SENDER_USER,\n)\n\n\nclass ChatOutput(ChatComponent):\n display_name = \"Chat Output\"\n description = \"Display a chat message in the Playground.\"\n documentation: str = \"https://docs.langflow.org/components-io#chat-output\"\n icon = \"MessagesSquare\"\n name = \"ChatOutput\"\n minimized = True\n\n inputs = [\n HandleInput(\n name=\"input_value\",\n display_name=\"Inputs\",\n info=\"Message to be passed as output.\",\n input_types=[\"Data\", \"DataFrame\", \"Message\"],\n required=True,\n ),\n BoolInput(\n name=\"should_store_message\",\n display_name=\"Store Messages\",\n info=\"Store the message in the history.\",\n value=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"sender\",\n display_name=\"Sender Type\",\n options=[MESSAGE_SENDER_AI, MESSAGE_SENDER_USER],\n value=MESSAGE_SENDER_AI,\n advanced=True,\n info=\"Type of sender.\",\n ),\n MessageTextInput(\n name=\"sender_name\",\n display_name=\"Sender Name\",\n info=\"Name of the sender.\",\n value=MESSAGE_SENDER_NAME_AI,\n advanced=True,\n ),\n MessageTextInput(\n name=\"session_id\",\n display_name=\"Session ID\",\n info=\"The session ID of the chat. If empty, the current session ID parameter will be used.\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"context_id\",\n display_name=\"Context ID\",\n info=\"The context ID of the chat. Adds an extra layer to the local memory.\",\n value=\"\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"data_template\",\n display_name=\"Data Template\",\n value=\"{text}\",\n advanced=True,\n info=\"Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.\",\n ),\n BoolInput(\n name=\"clean_data\",\n display_name=\"Basic Clean Data\",\n value=True,\n advanced=True,\n info=\"Whether to clean data before converting to string.\",\n ),\n ]\n outputs = [\n Output(\n display_name=\"Output Message\",\n name=\"message\",\n method=\"message_response\",\n ),\n ]\n\n def _build_source(self, id_: str | None, display_name: str | None, source: str | None) -> Source:\n source_dict = {}\n if id_:\n source_dict[\"id\"] = id_\n if display_name:\n source_dict[\"display_name\"] = display_name\n if source:\n # Handle case where source is a ChatOpenAI object\n if hasattr(source, \"model_name\"):\n source_dict[\"source\"] = source.model_name\n elif hasattr(source, \"model\"):\n source_dict[\"source\"] = str(source.model)\n else:\n source_dict[\"source\"] = str(source)\n return Source(**source_dict)\n\n async def message_response(self) -> Message:\n # First convert the input to string if needed\n text = self.convert_to_string()\n\n # Get source properties\n source, _, display_name, source_id = self.get_properties_from_source_component()\n\n # Create or use existing Message object\n if isinstance(self.input_value, Message):\n message = self.input_value\n # Update message properties\n message.text = text\n else:\n message = Message(text=text)\n\n # Set message properties\n message.sender = self.sender\n message.sender_name = self.sender_name\n message.session_id = self.session_id\n message.context_id = self.context_id\n message.flow_id = self.graph.flow_id if hasattr(self, \"graph\") else None\n message.properties.source = self._build_source(source_id, display_name, source)\n\n # Store message if needed\n if self.session_id and self.should_store_message:\n stored_message = await self.send_message(message)\n self.message.value = stored_message\n message = stored_message\n\n self.status = message\n return message\n\n def _serialize_data(self, data: Data) -> str:\n \"\"\"Serialize Data object to JSON string.\"\"\"\n # Convert data.data to JSON-serializable format\n serializable_data = jsonable_encoder(data.data)\n # Serialize with orjson, enabling pretty printing with indentation\n json_bytes = orjson.dumps(serializable_data, option=orjson.OPT_INDENT_2)\n # Convert bytes to string and wrap in Markdown code blocks\n return \"```json\\n\" + json_bytes.decode(\"utf-8\") + \"\\n```\"\n\n def _validate_input(self) -> None:\n \"\"\"Validate the input data and raise ValueError if invalid.\"\"\"\n if self.input_value is None:\n msg = \"Input data cannot be None\"\n raise ValueError(msg)\n if isinstance(self.input_value, list) and not all(\n isinstance(item, Message | Data | DataFrame | str) for item in self.input_value\n ):\n invalid_types = [\n type(item).__name__\n for item in self.input_value\n if not isinstance(item, Message | Data | DataFrame | str)\n ]\n msg = f\"Expected Data or DataFrame or Message or str, got {invalid_types}\"\n raise TypeError(msg)\n if not isinstance(\n self.input_value,\n Message | Data | DataFrame | str | list | Generator | type(None),\n ):\n type_name = type(self.input_value).__name__\n msg = f\"Expected Data or DataFrame or Message or str, Generator or None, got {type_name}\"\n raise TypeError(msg)\n\n def convert_to_string(self) -> str | Generator[Any, None, None]:\n \"\"\"Convert input data to string with proper error handling.\"\"\"\n self._validate_input()\n if isinstance(self.input_value, list):\n clean_data: bool = getattr(self, \"clean_data\", False)\n return \"\\n\".join([safe_convert(item, clean_data=clean_data) for item in self.input_value])\n if isinstance(self.input_value, Generator):\n return self.input_value\n return safe_convert(self.input_value)\n"
791
+ "value": "from collections.abc import Generator\nfrom typing import Any\n\nimport orjson\nfrom fastapi.encoders import jsonable_encoder\n\nfrom lfx.base.io.chat import ChatComponent\nfrom lfx.helpers.data import safe_convert\nfrom lfx.inputs.inputs import BoolInput, DropdownInput, HandleInput, MessageTextInput\nfrom lfx.schema.data import Data\nfrom lfx.schema.dataframe import DataFrame\nfrom lfx.schema.message import Message\nfrom lfx.schema.properties import Source\nfrom lfx.template.field.base import Output\nfrom lfx.utils.constants import (\n MESSAGE_SENDER_AI,\n MESSAGE_SENDER_NAME_AI,\n MESSAGE_SENDER_USER,\n)\n\n\nclass ChatOutput(ChatComponent):\n display_name = \"Chat Output\"\n description = \"Display a chat message in the Playground.\"\n documentation: str = \"https://docs.langflow.org/chat-input-and-output\"\n icon = \"MessagesSquare\"\n name = \"ChatOutput\"\n minimized = True\n\n inputs = [\n HandleInput(\n name=\"input_value\",\n display_name=\"Inputs\",\n info=\"Message to be passed as output.\",\n input_types=[\"Data\", \"DataFrame\", \"Message\"],\n required=True,\n ),\n BoolInput(\n name=\"should_store_message\",\n display_name=\"Store Messages\",\n info=\"Store the message in the history.\",\n value=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"sender\",\n display_name=\"Sender Type\",\n options=[MESSAGE_SENDER_AI, MESSAGE_SENDER_USER],\n value=MESSAGE_SENDER_AI,\n advanced=True,\n info=\"Type of sender.\",\n ),\n MessageTextInput(\n name=\"sender_name\",\n display_name=\"Sender Name\",\n info=\"Name of the sender.\",\n value=MESSAGE_SENDER_NAME_AI,\n advanced=True,\n ),\n MessageTextInput(\n name=\"session_id\",\n display_name=\"Session ID\",\n info=\"The session ID of the chat. If empty, the current session ID parameter will be used.\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"context_id\",\n display_name=\"Context ID\",\n info=\"The context ID of the chat. Adds an extra layer to the local memory.\",\n value=\"\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"data_template\",\n display_name=\"Data Template\",\n value=\"{text}\",\n advanced=True,\n info=\"Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.\",\n ),\n BoolInput(\n name=\"clean_data\",\n display_name=\"Basic Clean Data\",\n value=True,\n advanced=True,\n info=\"Whether to clean data before converting to string.\",\n ),\n ]\n outputs = [\n Output(\n display_name=\"Output Message\",\n name=\"message\",\n method=\"message_response\",\n ),\n ]\n\n def _build_source(self, id_: str | None, display_name: str | None, source: str | None) -> Source:\n source_dict = {}\n if id_:\n source_dict[\"id\"] = id_\n if display_name:\n source_dict[\"display_name\"] = display_name\n if source:\n # Handle case where source is a ChatOpenAI object\n if hasattr(source, \"model_name\"):\n source_dict[\"source\"] = source.model_name\n elif hasattr(source, \"model\"):\n source_dict[\"source\"] = str(source.model)\n else:\n source_dict[\"source\"] = str(source)\n return Source(**source_dict)\n\n async def message_response(self) -> Message:\n # First convert the input to string if needed\n text = self.convert_to_string()\n\n # Get source properties\n source, _, display_name, source_id = self.get_properties_from_source_component()\n\n # Create or use existing Message object\n if isinstance(self.input_value, Message) and not self.is_connected_to_chat_input():\n message = self.input_value\n # Update message properties\n message.text = text\n else:\n message = Message(text=text)\n\n # Set message properties\n message.sender = self.sender\n message.sender_name = self.sender_name\n message.session_id = self.session_id or self.graph.session_id or \"\"\n message.context_id = self.context_id\n message.flow_id = self.graph.flow_id if hasattr(self, \"graph\") else None\n message.properties.source = self._build_source(source_id, display_name, source)\n\n # Store message if needed\n if message.session_id and self.should_store_message:\n stored_message = await self.send_message(message)\n self.message.value = stored_message\n message = stored_message\n\n self.status = message\n return message\n\n def _serialize_data(self, data: Data) -> str:\n \"\"\"Serialize Data object to JSON string.\"\"\"\n # Convert data.data to JSON-serializable format\n serializable_data = jsonable_encoder(data.data)\n # Serialize with orjson, enabling pretty printing with indentation\n json_bytes = orjson.dumps(serializable_data, option=orjson.OPT_INDENT_2)\n # Convert bytes to string and wrap in Markdown code blocks\n return \"```json\\n\" + json_bytes.decode(\"utf-8\") + \"\\n```\"\n\n def _validate_input(self) -> None:\n \"\"\"Validate the input data and raise ValueError if invalid.\"\"\"\n if self.input_value is None:\n msg = \"Input data cannot be None\"\n raise ValueError(msg)\n if isinstance(self.input_value, list) and not all(\n isinstance(item, Message | Data | DataFrame | str) for item in self.input_value\n ):\n invalid_types = [\n type(item).__name__\n for item in self.input_value\n if not isinstance(item, Message | Data | DataFrame | str)\n ]\n msg = f\"Expected Data or DataFrame or Message or str, got {invalid_types}\"\n raise TypeError(msg)\n if not isinstance(\n self.input_value,\n Message | Data | DataFrame | str | list | Generator | type(None),\n ):\n type_name = type(self.input_value).__name__\n msg = f\"Expected Data or DataFrame or Message or str, Generator or None, got {type_name}\"\n raise TypeError(msg)\n\n def convert_to_string(self) -> str | Generator[Any, None, None]:\n \"\"\"Convert input data to string with proper error handling.\"\"\"\n self._validate_input()\n if isinstance(self.input_value, list):\n clean_data: bool = getattr(self, \"clean_data\", False)\n return \"\\n\".join([safe_convert(item, clean_data=clean_data) for item in self.input_value])\n if isinstance(self.input_value, Generator):\n return self.input_value\n return safe_convert(self.input_value)\n"
792
792
  },
793
793
  "context_id": {
794
794
  "_input_type": "MessageTextInput",
@@ -995,7 +995,7 @@
995
995
  "icon": "MessagesSquare",
996
996
  "legacy": false,
997
997
  "metadata": {
998
- "code_hash": "4848ad3e35d5",
998
+ "code_hash": "cae45e2d53f6",
999
999
  "dependencies": {
1000
1000
  "dependencies": [
1001
1001
  {
@@ -1070,7 +1070,7 @@
1070
1070
  "show": true,
1071
1071
  "title_case": false,
1072
1072
  "type": "code",
1073
- "value": "from collections.abc import Generator\nfrom typing import Any\n\nimport orjson\nfrom fastapi.encoders import jsonable_encoder\n\nfrom lfx.base.io.chat import ChatComponent\nfrom lfx.helpers.data import safe_convert\nfrom lfx.inputs.inputs import BoolInput, DropdownInput, HandleInput, MessageTextInput\nfrom lfx.schema.data import Data\nfrom lfx.schema.dataframe import DataFrame\nfrom lfx.schema.message import Message\nfrom lfx.schema.properties import Source\nfrom lfx.template.field.base import Output\nfrom lfx.utils.constants import (\n MESSAGE_SENDER_AI,\n MESSAGE_SENDER_NAME_AI,\n MESSAGE_SENDER_USER,\n)\n\n\nclass ChatOutput(ChatComponent):\n display_name = \"Chat Output\"\n description = \"Display a chat message in the Playground.\"\n documentation: str = \"https://docs.langflow.org/components-io#chat-output\"\n icon = \"MessagesSquare\"\n name = \"ChatOutput\"\n minimized = True\n\n inputs = [\n HandleInput(\n name=\"input_value\",\n display_name=\"Inputs\",\n info=\"Message to be passed as output.\",\n input_types=[\"Data\", \"DataFrame\", \"Message\"],\n required=True,\n ),\n BoolInput(\n name=\"should_store_message\",\n display_name=\"Store Messages\",\n info=\"Store the message in the history.\",\n value=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"sender\",\n display_name=\"Sender Type\",\n options=[MESSAGE_SENDER_AI, MESSAGE_SENDER_USER],\n value=MESSAGE_SENDER_AI,\n advanced=True,\n info=\"Type of sender.\",\n ),\n MessageTextInput(\n name=\"sender_name\",\n display_name=\"Sender Name\",\n info=\"Name of the sender.\",\n value=MESSAGE_SENDER_NAME_AI,\n advanced=True,\n ),\n MessageTextInput(\n name=\"session_id\",\n display_name=\"Session ID\",\n info=\"The session ID of the chat. If empty, the current session ID parameter will be used.\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"context_id\",\n display_name=\"Context ID\",\n info=\"The context ID of the chat. Adds an extra layer to the local memory.\",\n value=\"\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"data_template\",\n display_name=\"Data Template\",\n value=\"{text}\",\n advanced=True,\n info=\"Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.\",\n ),\n BoolInput(\n name=\"clean_data\",\n display_name=\"Basic Clean Data\",\n value=True,\n advanced=True,\n info=\"Whether to clean data before converting to string.\",\n ),\n ]\n outputs = [\n Output(\n display_name=\"Output Message\",\n name=\"message\",\n method=\"message_response\",\n ),\n ]\n\n def _build_source(self, id_: str | None, display_name: str | None, source: str | None) -> Source:\n source_dict = {}\n if id_:\n source_dict[\"id\"] = id_\n if display_name:\n source_dict[\"display_name\"] = display_name\n if source:\n # Handle case where source is a ChatOpenAI object\n if hasattr(source, \"model_name\"):\n source_dict[\"source\"] = source.model_name\n elif hasattr(source, \"model\"):\n source_dict[\"source\"] = str(source.model)\n else:\n source_dict[\"source\"] = str(source)\n return Source(**source_dict)\n\n async def message_response(self) -> Message:\n # First convert the input to string if needed\n text = self.convert_to_string()\n\n # Get source properties\n source, _, display_name, source_id = self.get_properties_from_source_component()\n\n # Create or use existing Message object\n if isinstance(self.input_value, Message):\n message = self.input_value\n # Update message properties\n message.text = text\n else:\n message = Message(text=text)\n\n # Set message properties\n message.sender = self.sender\n message.sender_name = self.sender_name\n message.session_id = self.session_id\n message.context_id = self.context_id\n message.flow_id = self.graph.flow_id if hasattr(self, \"graph\") else None\n message.properties.source = self._build_source(source_id, display_name, source)\n\n # Store message if needed\n if self.session_id and self.should_store_message:\n stored_message = await self.send_message(message)\n self.message.value = stored_message\n message = stored_message\n\n self.status = message\n return message\n\n def _serialize_data(self, data: Data) -> str:\n \"\"\"Serialize Data object to JSON string.\"\"\"\n # Convert data.data to JSON-serializable format\n serializable_data = jsonable_encoder(data.data)\n # Serialize with orjson, enabling pretty printing with indentation\n json_bytes = orjson.dumps(serializable_data, option=orjson.OPT_INDENT_2)\n # Convert bytes to string and wrap in Markdown code blocks\n return \"```json\\n\" + json_bytes.decode(\"utf-8\") + \"\\n```\"\n\n def _validate_input(self) -> None:\n \"\"\"Validate the input data and raise ValueError if invalid.\"\"\"\n if self.input_value is None:\n msg = \"Input data cannot be None\"\n raise ValueError(msg)\n if isinstance(self.input_value, list) and not all(\n isinstance(item, Message | Data | DataFrame | str) for item in self.input_value\n ):\n invalid_types = [\n type(item).__name__\n for item in self.input_value\n if not isinstance(item, Message | Data | DataFrame | str)\n ]\n msg = f\"Expected Data or DataFrame or Message or str, got {invalid_types}\"\n raise TypeError(msg)\n if not isinstance(\n self.input_value,\n Message | Data | DataFrame | str | list | Generator | type(None),\n ):\n type_name = type(self.input_value).__name__\n msg = f\"Expected Data or DataFrame or Message or str, Generator or None, got {type_name}\"\n raise TypeError(msg)\n\n def convert_to_string(self) -> str | Generator[Any, None, None]:\n \"\"\"Convert input data to string with proper error handling.\"\"\"\n self._validate_input()\n if isinstance(self.input_value, list):\n clean_data: bool = getattr(self, \"clean_data\", False)\n return \"\\n\".join([safe_convert(item, clean_data=clean_data) for item in self.input_value])\n if isinstance(self.input_value, Generator):\n return self.input_value\n return safe_convert(self.input_value)\n"
1073
+ "value": "from collections.abc import Generator\nfrom typing import Any\n\nimport orjson\nfrom fastapi.encoders import jsonable_encoder\n\nfrom lfx.base.io.chat import ChatComponent\nfrom lfx.helpers.data import safe_convert\nfrom lfx.inputs.inputs import BoolInput, DropdownInput, HandleInput, MessageTextInput\nfrom lfx.schema.data import Data\nfrom lfx.schema.dataframe import DataFrame\nfrom lfx.schema.message import Message\nfrom lfx.schema.properties import Source\nfrom lfx.template.field.base import Output\nfrom lfx.utils.constants import (\n MESSAGE_SENDER_AI,\n MESSAGE_SENDER_NAME_AI,\n MESSAGE_SENDER_USER,\n)\n\n\nclass ChatOutput(ChatComponent):\n display_name = \"Chat Output\"\n description = \"Display a chat message in the Playground.\"\n documentation: str = \"https://docs.langflow.org/chat-input-and-output\"\n icon = \"MessagesSquare\"\n name = \"ChatOutput\"\n minimized = True\n\n inputs = [\n HandleInput(\n name=\"input_value\",\n display_name=\"Inputs\",\n info=\"Message to be passed as output.\",\n input_types=[\"Data\", \"DataFrame\", \"Message\"],\n required=True,\n ),\n BoolInput(\n name=\"should_store_message\",\n display_name=\"Store Messages\",\n info=\"Store the message in the history.\",\n value=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"sender\",\n display_name=\"Sender Type\",\n options=[MESSAGE_SENDER_AI, MESSAGE_SENDER_USER],\n value=MESSAGE_SENDER_AI,\n advanced=True,\n info=\"Type of sender.\",\n ),\n MessageTextInput(\n name=\"sender_name\",\n display_name=\"Sender Name\",\n info=\"Name of the sender.\",\n value=MESSAGE_SENDER_NAME_AI,\n advanced=True,\n ),\n MessageTextInput(\n name=\"session_id\",\n display_name=\"Session ID\",\n info=\"The session ID of the chat. If empty, the current session ID parameter will be used.\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"context_id\",\n display_name=\"Context ID\",\n info=\"The context ID of the chat. Adds an extra layer to the local memory.\",\n value=\"\",\n advanced=True,\n ),\n MessageTextInput(\n name=\"data_template\",\n display_name=\"Data Template\",\n value=\"{text}\",\n advanced=True,\n info=\"Template to convert Data to Text. If left empty, it will be dynamically set to the Data's text key.\",\n ),\n BoolInput(\n name=\"clean_data\",\n display_name=\"Basic Clean Data\",\n value=True,\n advanced=True,\n info=\"Whether to clean data before converting to string.\",\n ),\n ]\n outputs = [\n Output(\n display_name=\"Output Message\",\n name=\"message\",\n method=\"message_response\",\n ),\n ]\n\n def _build_source(self, id_: str | None, display_name: str | None, source: str | None) -> Source:\n source_dict = {}\n if id_:\n source_dict[\"id\"] = id_\n if display_name:\n source_dict[\"display_name\"] = display_name\n if source:\n # Handle case where source is a ChatOpenAI object\n if hasattr(source, \"model_name\"):\n source_dict[\"source\"] = source.model_name\n elif hasattr(source, \"model\"):\n source_dict[\"source\"] = str(source.model)\n else:\n source_dict[\"source\"] = str(source)\n return Source(**source_dict)\n\n async def message_response(self) -> Message:\n # First convert the input to string if needed\n text = self.convert_to_string()\n\n # Get source properties\n source, _, display_name, source_id = self.get_properties_from_source_component()\n\n # Create or use existing Message object\n if isinstance(self.input_value, Message) and not self.is_connected_to_chat_input():\n message = self.input_value\n # Update message properties\n message.text = text\n else:\n message = Message(text=text)\n\n # Set message properties\n message.sender = self.sender\n message.sender_name = self.sender_name\n message.session_id = self.session_id or self.graph.session_id or \"\"\n message.context_id = self.context_id\n message.flow_id = self.graph.flow_id if hasattr(self, \"graph\") else None\n message.properties.source = self._build_source(source_id, display_name, source)\n\n # Store message if needed\n if message.session_id and self.should_store_message:\n stored_message = await self.send_message(message)\n self.message.value = stored_message\n message = stored_message\n\n self.status = message\n return message\n\n def _serialize_data(self, data: Data) -> str:\n \"\"\"Serialize Data object to JSON string.\"\"\"\n # Convert data.data to JSON-serializable format\n serializable_data = jsonable_encoder(data.data)\n # Serialize with orjson, enabling pretty printing with indentation\n json_bytes = orjson.dumps(serializable_data, option=orjson.OPT_INDENT_2)\n # Convert bytes to string and wrap in Markdown code blocks\n return \"```json\\n\" + json_bytes.decode(\"utf-8\") + \"\\n```\"\n\n def _validate_input(self) -> None:\n \"\"\"Validate the input data and raise ValueError if invalid.\"\"\"\n if self.input_value is None:\n msg = \"Input data cannot be None\"\n raise ValueError(msg)\n if isinstance(self.input_value, list) and not all(\n isinstance(item, Message | Data | DataFrame | str) for item in self.input_value\n ):\n invalid_types = [\n type(item).__name__\n for item in self.input_value\n if not isinstance(item, Message | Data | DataFrame | str)\n ]\n msg = f\"Expected Data or DataFrame or Message or str, got {invalid_types}\"\n raise TypeError(msg)\n if not isinstance(\n self.input_value,\n Message | Data | DataFrame | str | list | Generator | type(None),\n ):\n type_name = type(self.input_value).__name__\n msg = f\"Expected Data or DataFrame or Message or str, Generator or None, got {type_name}\"\n raise TypeError(msg)\n\n def convert_to_string(self) -> str | Generator[Any, None, None]:\n \"\"\"Convert input data to string with proper error handling.\"\"\"\n self._validate_input()\n if isinstance(self.input_value, list):\n clean_data: bool = getattr(self, \"clean_data\", False)\n return \"\\n\".join([safe_convert(item, clean_data=clean_data) for item in self.input_value])\n if isinstance(self.input_value, Generator):\n return self.input_value\n return safe_convert(self.input_value)\n"
1074
1074
  },
1075
1075
  "context_id": {
1076
1076
  "_input_type": "MessageTextInput",
@@ -2339,7 +2339,7 @@
2339
2339
  "icon": "file-text",
2340
2340
  "legacy": false,
2341
2341
  "metadata": {
2342
- "code_hash": "85abc1094130",
2342
+ "code_hash": "9ff3bde1cf43",
2343
2343
  "dependencies": {
2344
2344
  "dependencies": [
2345
2345
  {
@@ -2407,7 +2407,7 @@
2407
2407
  "show": true,
2408
2408
  "title_case": false,
2409
2409
  "type": "code",
2410
- "value": "\"\"\"Enhanced file component with Docling support and process isolation.\n\nNotes:\n-----\n- ALL Docling parsing/export runs in a separate OS process to prevent memory\n growth and native library state from impacting the main Langflow process.\n- Standard text/structured parsing continues to use existing BaseFileComponent\n utilities (and optional threading via `parallel_load_data`).\n\"\"\"\n\nfrom __future__ import annotations\n\nimport json\nimport subprocess\nimport sys\nimport textwrap\nfrom copy import deepcopy\nfrom typing import Any\n\nfrom lfx.base.data.base_file import BaseFileComponent\nfrom lfx.base.data.utils import TEXT_FILE_TYPES, parallel_load_data, parse_text_file_to_data\nfrom lfx.inputs.inputs import DropdownInput, MessageTextInput, StrInput\nfrom lfx.io import BoolInput, FileInput, IntInput, Output\nfrom lfx.schema.data import Data\nfrom lfx.schema.dataframe import DataFrame # noqa: TC001\nfrom lfx.schema.message import Message\n\n\nclass FileComponent(BaseFileComponent):\n \"\"\"File component with optional Docling processing (isolated in a subprocess).\"\"\"\n\n display_name = \"Read File\"\n description = \"Loads content from one or more files.\"\n documentation: str = \"https://docs.langflow.org/components-data#file\"\n icon = \"file-text\"\n name = \"File\"\n\n # Docling-supported/compatible extensions; TEXT_FILE_TYPES are supported by the base loader.\n VALID_EXTENSIONS = [\n *TEXT_FILE_TYPES,\n \"adoc\",\n \"asciidoc\",\n \"asc\",\n \"bmp\",\n \"dotx\",\n \"dotm\",\n \"docm\",\n \"jpg\",\n \"jpeg\",\n \"png\",\n \"potx\",\n \"ppsx\",\n \"pptm\",\n \"potm\",\n \"ppsm\",\n \"pptx\",\n \"tiff\",\n \"xls\",\n \"xlsx\",\n \"xhtml\",\n \"webp\",\n ]\n\n # Fixed export settings used when markdown export is requested.\n EXPORT_FORMAT = \"Markdown\"\n IMAGE_MODE = \"placeholder\"\n\n _base_inputs = deepcopy(BaseFileComponent.get_base_inputs())\n\n for input_item in _base_inputs:\n if isinstance(input_item, FileInput) and input_item.name == \"path\":\n input_item.real_time_refresh = True\n break\n\n inputs = [\n *_base_inputs,\n BoolInput(\n name=\"advanced_mode\",\n display_name=\"Advanced Parser\",\n value=False,\n real_time_refresh=True,\n info=(\n \"Enable advanced document processing and export with Docling for PDFs, images, and office documents. \"\n \"Note that advanced document processing can consume significant resources.\"\n ),\n show=True,\n ),\n DropdownInput(\n name=\"pipeline\",\n display_name=\"Pipeline\",\n info=\"Docling pipeline to use\",\n options=[\"standard\", \"vlm\"],\n value=\"standard\",\n advanced=True,\n real_time_refresh=True,\n ),\n DropdownInput(\n name=\"ocr_engine\",\n display_name=\"OCR Engine\",\n info=\"OCR engine to use. Only available when pipeline is set to 'standard'.\",\n options=[\"None\", \"easyocr\"],\n value=\"easyocr\",\n show=False,\n advanced=True,\n ),\n StrInput(\n name=\"md_image_placeholder\",\n display_name=\"Image placeholder\",\n info=\"Specify the image placeholder for markdown exports.\",\n value=\"<!-- image -->\",\n advanced=True,\n show=False,\n ),\n StrInput(\n name=\"md_page_break_placeholder\",\n display_name=\"Page break placeholder\",\n info=\"Add this placeholder between pages in the markdown output.\",\n value=\"\",\n advanced=True,\n show=False,\n ),\n MessageTextInput(\n name=\"doc_key\",\n display_name=\"Doc Key\",\n info=\"The key to use for the DoclingDocument column.\",\n value=\"doc\",\n advanced=True,\n show=False,\n ),\n # Deprecated input retained for backward-compatibility.\n BoolInput(\n name=\"use_multithreading\",\n display_name=\"[Deprecated] Use Multithreading\",\n advanced=True,\n value=True,\n info=\"Set 'Processing Concurrency' greater than 1 to enable multithreading.\",\n ),\n IntInput(\n name=\"concurrency_multithreading\",\n display_name=\"Processing Concurrency\",\n advanced=True,\n info=\"When multiple files are being processed, the number of files to process concurrently.\",\n value=1,\n ),\n BoolInput(\n name=\"markdown\",\n display_name=\"Markdown Export\",\n info=\"Export processed documents to Markdown format. Only available when advanced mode is enabled.\",\n value=False,\n show=False,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Raw Content\", name=\"message\", method=\"load_files_message\"),\n ]\n\n # ------------------------------ UI helpers --------------------------------------\n\n def _path_value(self, template: dict) -> list[str]:\n \"\"\"Return the list of currently selected file paths from the template.\"\"\"\n return template.get(\"path\", {}).get(\"file_path\", [])\n\n def update_build_config(\n self,\n build_config: dict[str, Any],\n field_value: Any,\n field_name: str | None = None,\n ) -> dict[str, Any]:\n \"\"\"Show/hide Advanced Parser and related fields based on selection context.\"\"\"\n if field_name == \"path\":\n paths = self._path_value(build_config)\n\n # If all files can be processed by docling, do so\n allow_advanced = all(not file_path.endswith((\".csv\", \".xlsx\", \".parquet\")) for file_path in paths)\n build_config[\"advanced_mode\"][\"show\"] = allow_advanced\n if not allow_advanced:\n build_config[\"advanced_mode\"][\"value\"] = False\n for f in (\"pipeline\", \"ocr_engine\", \"doc_key\", \"md_image_placeholder\", \"md_page_break_placeholder\"):\n if f in build_config:\n build_config[f][\"show\"] = False\n\n # Docling Processing\n elif field_name == \"advanced_mode\":\n for f in (\"pipeline\", \"ocr_engine\", \"doc_key\", \"md_image_placeholder\", \"md_page_break_placeholder\"):\n if f in build_config:\n build_config[f][\"show\"] = bool(field_value)\n if f == \"pipeline\":\n build_config[f][\"advanced\"] = not bool(field_value)\n\n elif field_name == \"pipeline\":\n if field_value == \"standard\":\n build_config[\"ocr_engine\"][\"show\"] = True\n build_config[\"ocr_engine\"][\"value\"] = \"easyocr\"\n else:\n build_config[\"ocr_engine\"][\"show\"] = False\n build_config[\"ocr_engine\"][\"value\"] = \"None\"\n\n return build_config\n\n def update_outputs(self, frontend_node: dict[str, Any], field_name: str, field_value: Any) -> dict[str, Any]: # noqa: ARG002\n \"\"\"Dynamically show outputs based on file count/type and advanced mode.\"\"\"\n if field_name not in [\"path\", \"advanced_mode\", \"pipeline\"]:\n return frontend_node\n\n template = frontend_node.get(\"template\", {})\n paths = self._path_value(template)\n if not paths:\n return frontend_node\n\n frontend_node[\"outputs\"] = []\n if len(paths) == 1:\n file_path = paths[0] if field_name == \"path\" else frontend_node[\"template\"][\"path\"][\"file_path\"][0]\n if file_path.endswith((\".csv\", \".xlsx\", \".parquet\")):\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Structured Content\", name=\"dataframe\", method=\"load_files_structured\"),\n )\n elif file_path.endswith(\".json\"):\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Structured Content\", name=\"json\", method=\"load_files_json\"),\n )\n\n advanced_mode = frontend_node.get(\"template\", {}).get(\"advanced_mode\", {}).get(\"value\", False)\n if advanced_mode:\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Structured Output\", name=\"advanced_dataframe\", method=\"load_files_dataframe\"),\n )\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Markdown\", name=\"advanced_markdown\", method=\"load_files_markdown\"),\n )\n frontend_node[\"outputs\"].append(\n Output(display_name=\"File Path\", name=\"path\", method=\"load_files_path\"),\n )\n else:\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Raw Content\", name=\"message\", method=\"load_files_message\"),\n )\n frontend_node[\"outputs\"].append(\n Output(display_name=\"File Path\", name=\"path\", method=\"load_files_path\"),\n )\n else:\n # Multiple files => DataFrame output; advanced parser disabled\n frontend_node[\"outputs\"].append(Output(display_name=\"Files\", name=\"dataframe\", method=\"load_files\"))\n\n return frontend_node\n\n # ------------------------------ Core processing ----------------------------------\n\n def _is_docling_compatible(self, file_path: str) -> bool:\n \"\"\"Lightweight extension gate for Docling-compatible types.\"\"\"\n docling_exts = (\n \".adoc\",\n \".asciidoc\",\n \".asc\",\n \".bmp\",\n \".csv\",\n \".dotx\",\n \".dotm\",\n \".docm\",\n \".docx\",\n \".htm\",\n \".html\",\n \".jpg\",\n \".jpeg\",\n \".json\",\n \".md\",\n \".pdf\",\n \".png\",\n \".potx\",\n \".ppsx\",\n \".pptm\",\n \".potm\",\n \".ppsm\",\n \".pptx\",\n \".tiff\",\n \".txt\",\n \".xls\",\n \".xlsx\",\n \".xhtml\",\n \".xml\",\n \".webp\",\n )\n return file_path.lower().endswith(docling_exts)\n\n def _process_docling_in_subprocess(self, file_path: str) -> Data | None:\n \"\"\"Run Docling in a separate OS process and map the result to a Data object.\n\n We avoid multiprocessing pickling by launching `python -c \"<script>\"` and\n passing JSON config via stdin. The child prints a JSON result to stdout.\n \"\"\"\n if not file_path:\n return None\n\n args: dict[str, Any] = {\n \"file_path\": file_path,\n \"markdown\": bool(self.markdown),\n \"image_mode\": str(self.IMAGE_MODE),\n \"md_image_placeholder\": str(self.md_image_placeholder),\n \"md_page_break_placeholder\": str(self.md_page_break_placeholder),\n \"pipeline\": str(self.pipeline),\n \"ocr_engine\": (\n self.ocr_engine if self.ocr_engine and self.ocr_engine != \"None\" and self.pipeline != \"vlm\" else None\n ),\n }\n\n self.log(f\"Starting Docling subprocess for file: {file_path}\")\n self.log(args)\n\n # Child script for isolating the docling processing\n child_script = textwrap.dedent(\n r\"\"\"\n import json, sys\n\n def try_imports():\n try:\n from docling.datamodel.base_models import ConversionStatus, InputFormat # type: ignore\n from docling.document_converter import DocumentConverter # type: ignore\n from docling_core.types.doc import ImageRefMode # type: ignore\n return ConversionStatus, InputFormat, DocumentConverter, ImageRefMode, \"latest\"\n except Exception as e:\n raise e\n\n def create_converter(strategy, input_format, DocumentConverter, pipeline, ocr_engine):\n # --- Standard PDF/IMAGE pipeline (your existing behavior), with optional OCR ---\n if pipeline == \"standard\":\n try:\n from docling.datamodel.pipeline_options import PdfPipelineOptions # type: ignore\n from docling.document_converter import PdfFormatOption # type: ignore\n\n pipe = PdfPipelineOptions()\n pipe.do_ocr = False\n\n if ocr_engine:\n try:\n from docling.models.factories import get_ocr_factory # type: ignore\n pipe.do_ocr = True\n fac = get_ocr_factory(allow_external_plugins=False)\n pipe.ocr_options = fac.create_options(kind=ocr_engine)\n except Exception:\n # If OCR setup fails, disable it\n pipe.do_ocr = False\n\n fmt = {}\n if hasattr(input_format, \"PDF\"):\n fmt[getattr(input_format, \"PDF\")] = PdfFormatOption(pipeline_options=pipe)\n if hasattr(input_format, \"IMAGE\"):\n fmt[getattr(input_format, \"IMAGE\")] = PdfFormatOption(pipeline_options=pipe)\n\n return DocumentConverter(format_options=fmt)\n except Exception:\n return DocumentConverter()\n\n # --- Vision-Language Model (VLM) pipeline ---\n if pipeline == \"vlm\":\n try:\n from docling.datamodel.pipeline_options import VlmPipelineOptions\n from docling.datamodel.vlm_model_specs import GRANITEDOCLING_MLX, GRANITEDOCLING_TRANSFORMERS\n from docling.document_converter import PdfFormatOption\n from docling.pipeline.vlm_pipeline import VlmPipeline\n\n vl_pipe = VlmPipelineOptions(\n vlm_options=GRANITEDOCLING_TRANSFORMERS,\n )\n\n if sys.platform == \"darwin\":\n try:\n import mlx_vlm\n vl_pipe.vlm_options = GRANITEDOCLING_MLX\n except ImportError as e:\n raise e\n\n # VLM paths generally don't need OCR; keep OCR off by default here.\n fmt = {}\n if hasattr(input_format, \"PDF\"):\n fmt[getattr(input_format, \"PDF\")] = PdfFormatOption(\n pipeline_cls=VlmPipeline,\n pipeline_options=vl_pipe\n )\n if hasattr(input_format, \"IMAGE\"):\n fmt[getattr(input_format, \"IMAGE\")] = PdfFormatOption(\n pipeline_cls=VlmPipeline,\n pipeline_options=vl_pipe\n )\n\n return DocumentConverter(format_options=fmt)\n except Exception as e:\n raise e\n\n # --- Fallback: default converter with no special options ---\n return DocumentConverter()\n\n def export_markdown(document, ImageRefMode, image_mode, img_ph, pg_ph):\n try:\n mode = getattr(ImageRefMode, image_mode.upper(), image_mode)\n return document.export_to_markdown(\n image_mode=mode,\n image_placeholder=img_ph,\n page_break_placeholder=pg_ph,\n )\n except Exception:\n try:\n return document.export_to_text()\n except Exception:\n return str(document)\n\n def to_rows(doc_dict):\n rows = []\n for t in doc_dict.get(\"texts\", []):\n prov = t.get(\"prov\") or []\n page_no = None\n if prov and isinstance(prov, list) and isinstance(prov[0], dict):\n page_no = prov[0].get(\"page_no\")\n rows.append({\n \"page_no\": page_no,\n \"label\": t.get(\"label\"),\n \"text\": t.get(\"text\"),\n \"level\": t.get(\"level\"),\n })\n return rows\n\n def main():\n cfg = json.loads(sys.stdin.read())\n file_path = cfg[\"file_path\"]\n markdown = cfg[\"markdown\"]\n image_mode = cfg[\"image_mode\"]\n img_ph = cfg[\"md_image_placeholder\"]\n pg_ph = cfg[\"md_page_break_placeholder\"]\n pipeline = cfg[\"pipeline\"]\n ocr_engine = cfg.get(\"ocr_engine\")\n meta = {\"file_path\": file_path}\n\n try:\n ConversionStatus, InputFormat, DocumentConverter, ImageRefMode, strategy = try_imports()\n converter = create_converter(strategy, InputFormat, DocumentConverter, pipeline, ocr_engine)\n try:\n res = converter.convert(file_path)\n except Exception as e:\n print(json.dumps({\"ok\": False, \"error\": f\"Docling conversion error: {e}\", \"meta\": meta}))\n return\n\n ok = False\n if hasattr(res, \"status\"):\n try:\n ok = (res.status == ConversionStatus.SUCCESS) or (str(res.status).lower() == \"success\")\n except Exception:\n ok = (str(res.status).lower() == \"success\")\n if not ok and hasattr(res, \"document\"):\n ok = getattr(res, \"document\", None) is not None\n if not ok:\n print(json.dumps({\"ok\": False, \"error\": \"Docling conversion failed\", \"meta\": meta}))\n return\n\n doc = getattr(res, \"document\", None)\n if doc is None:\n print(json.dumps({\"ok\": False, \"error\": \"Docling produced no document\", \"meta\": meta}))\n return\n\n if markdown:\n text = export_markdown(doc, ImageRefMode, image_mode, img_ph, pg_ph)\n print(json.dumps({\"ok\": True, \"mode\": \"markdown\", \"text\": text, \"meta\": meta}))\n return\n\n # structured\n try:\n doc_dict = doc.export_to_dict()\n except Exception as e:\n print(json.dumps({\"ok\": False, \"error\": f\"Docling export_to_dict failed: {e}\", \"meta\": meta}))\n return\n\n rows = to_rows(doc_dict)\n print(json.dumps({\"ok\": True, \"mode\": \"structured\", \"doc\": rows, \"meta\": meta}))\n except Exception as e:\n print(\n json.dumps({\n \"ok\": False,\n \"error\": f\"Docling processing error: {e}\",\n \"meta\": {\"file_path\": file_path},\n })\n )\n\n if __name__ == \"__main__\":\n main()\n \"\"\"\n )\n\n # Validate file_path to avoid command injection or unsafe input\n if not isinstance(args[\"file_path\"], str) or any(c in args[\"file_path\"] for c in [\";\", \"|\", \"&\", \"$\", \"`\"]):\n return Data(data={\"error\": \"Unsafe file path detected.\", \"file_path\": args[\"file_path\"]})\n\n proc = subprocess.run( # noqa: S603\n [sys.executable, \"-u\", \"-c\", child_script],\n input=json.dumps(args).encode(\"utf-8\"),\n capture_output=True,\n check=False,\n )\n\n if not proc.stdout:\n err_msg = proc.stderr.decode(\"utf-8\", errors=\"replace\") or \"no output from child process\"\n return Data(data={\"error\": f\"Docling subprocess error: {err_msg}\", \"file_path\": file_path})\n\n try:\n result = json.loads(proc.stdout.decode(\"utf-8\"))\n except Exception as e: # noqa: BLE001\n err_msg = proc.stderr.decode(\"utf-8\", errors=\"replace\")\n return Data(\n data={\"error\": f\"Invalid JSON from Docling subprocess: {e}. stderr={err_msg}\", \"file_path\": file_path},\n )\n\n if not result.get(\"ok\"):\n return Data(data={\"error\": result.get(\"error\", \"Unknown Docling error\"), **result.get(\"meta\", {})})\n\n meta = result.get(\"meta\", {})\n if result.get(\"mode\") == \"markdown\":\n exported_content = str(result.get(\"text\", \"\"))\n return Data(\n text=exported_content,\n data={\"exported_content\": exported_content, \"export_format\": self.EXPORT_FORMAT, **meta},\n )\n\n rows = list(result.get(\"doc\", []))\n return Data(data={\"doc\": rows, \"export_format\": self.EXPORT_FORMAT, **meta})\n\n def process_files(\n self,\n file_list: list[BaseFileComponent.BaseFile],\n ) -> list[BaseFileComponent.BaseFile]:\n \"\"\"Process input files.\n\n - advanced_mode => Docling in a separate process.\n - Otherwise => standard parsing in current process (optionally threaded).\n \"\"\"\n if not file_list:\n msg = \"No files to process.\"\n raise ValueError(msg)\n\n def process_file_standard(file_path: str, *, silent_errors: bool = False) -> Data | None:\n try:\n return parse_text_file_to_data(file_path, silent_errors=silent_errors)\n except FileNotFoundError as e:\n self.log(f\"File not found: {file_path}. Error: {e}\")\n if not silent_errors:\n raise\n return None\n except Exception as e:\n self.log(f\"Unexpected error processing {file_path}: {e}\")\n if not silent_errors:\n raise\n return None\n\n docling_compatible = all(self._is_docling_compatible(str(f.path)) for f in file_list)\n\n # Advanced path: Check if ALL files are compatible with Docling\n if self.advanced_mode and docling_compatible:\n final_return: list[BaseFileComponent.BaseFile] = []\n for file in file_list:\n file_path = str(file.path)\n advanced_data: Data | None = self._process_docling_in_subprocess(file_path)\n\n # --- UNNEST: expand each element in `doc` to its own Data row\n payload = getattr(advanced_data, \"data\", {}) or {}\n doc_rows = payload.get(\"doc\")\n if isinstance(doc_rows, list):\n rows: list[Data | None] = [\n Data(\n data={\n \"file_path\": file_path,\n **(item if isinstance(item, dict) else {\"value\": item}),\n },\n )\n for item in doc_rows\n ]\n final_return.extend(self.rollup_data(file_list, rows))\n else:\n # If not structured, keep as-is (e.g., markdown export or error dict)\n final_return.extend(self.rollup_data(file_list, [advanced_data]))\n return final_return\n\n # Standard multi-file (or single non-advanced) path\n concurrency = 1 if not self.use_multithreading else max(1, self.concurrency_multithreading)\n file_paths = [str(f.path) for f in file_list]\n self.log(f\"Starting parallel processing of {len(file_paths)} files with concurrency: {concurrency}.\")\n my_data = parallel_load_data(\n file_paths,\n silent_errors=self.silent_errors,\n load_function=process_file_standard,\n max_concurrency=concurrency,\n )\n return self.rollup_data(file_list, my_data)\n\n # ------------------------------ Output helpers -----------------------------------\n\n def load_files_helper(self) -> DataFrame:\n result = self.load_files()\n\n # Error condition - raise error if no text and an error is present\n if not hasattr(result, \"text\"):\n if hasattr(result, \"error\"):\n raise ValueError(result.error[0])\n msg = \"Could not extract content from the provided file(s).\"\n raise ValueError(msg)\n\n return result\n\n def load_files_dataframe(self) -> DataFrame:\n \"\"\"Load files using advanced Docling processing and export to DataFrame format.\"\"\"\n self.markdown = False\n return self.load_files_helper()\n\n def load_files_markdown(self) -> Message:\n \"\"\"Load files using advanced Docling processing and export to Markdown format.\"\"\"\n self.markdown = True\n result = self.load_files_helper()\n return Message(text=str(result.text[0]))\n"
2410
+ "value": "\"\"\"Enhanced file component with Docling support and process isolation.\n\nNotes:\n-----\n- ALL Docling parsing/export runs in a separate OS process to prevent memory\n growth and native library state from impacting the main Langflow process.\n- Standard text/structured parsing continues to use existing BaseFileComponent\n utilities (and optional threading via `parallel_load_data`).\n\"\"\"\n\nfrom __future__ import annotations\n\nimport contextlib\nimport json\nimport subprocess\nimport sys\nimport textwrap\nfrom copy import deepcopy\nfrom pathlib import Path\nfrom tempfile import NamedTemporaryFile\nfrom typing import Any\n\nfrom lfx.base.data.base_file import BaseFileComponent\nfrom lfx.base.data.storage_utils import parse_storage_path\nfrom lfx.base.data.utils import TEXT_FILE_TYPES, parallel_load_data, parse_text_file_to_data\nfrom lfx.inputs.inputs import DropdownInput, MessageTextInput, StrInput\nfrom lfx.io import BoolInput, FileInput, IntInput, Output\nfrom lfx.schema.data import Data\nfrom lfx.schema.dataframe import DataFrame # noqa: TC001\nfrom lfx.schema.message import Message\nfrom lfx.services.deps import get_settings_service, get_storage_service\nfrom lfx.utils.async_helpers import run_until_complete\n\n\nclass FileComponent(BaseFileComponent):\n \"\"\"File component with optional Docling processing (isolated in a subprocess).\"\"\"\n\n display_name = \"Read File\"\n description = \"Loads content from one or more files.\"\n documentation: str = \"https://docs.langflow.org/read-file\"\n icon = \"file-text\"\n name = \"File\"\n\n # Extensions that can be processed without Docling (using standard text parsing)\n TEXT_EXTENSIONS = TEXT_FILE_TYPES\n\n # Extensions that require Docling for processing (images, advanced office formats, etc.)\n DOCLING_ONLY_EXTENSIONS = [\n \"adoc\",\n \"asciidoc\",\n \"asc\",\n \"bmp\",\n \"dotx\",\n \"dotm\",\n \"docm\",\n \"jpg\",\n \"jpeg\",\n \"png\",\n \"potx\",\n \"ppsx\",\n \"pptm\",\n \"potm\",\n \"ppsm\",\n \"pptx\",\n \"tiff\",\n \"xls\",\n \"xlsx\",\n \"xhtml\",\n \"webp\",\n ]\n\n # Docling-supported/compatible extensions; TEXT_FILE_TYPES are supported by the base loader.\n VALID_EXTENSIONS = [\n *TEXT_EXTENSIONS,\n *DOCLING_ONLY_EXTENSIONS,\n ]\n\n # Fixed export settings used when markdown export is requested.\n EXPORT_FORMAT = \"Markdown\"\n IMAGE_MODE = \"placeholder\"\n\n _base_inputs = deepcopy(BaseFileComponent.get_base_inputs())\n\n for input_item in _base_inputs:\n if isinstance(input_item, FileInput) and input_item.name == \"path\":\n input_item.real_time_refresh = True\n input_item.tool_mode = False # Disable tool mode for file upload input\n input_item.required = False # Make it optional so it doesn't error in tool mode\n break\n\n inputs = [\n *_base_inputs,\n StrInput(\n name=\"file_path_str\",\n display_name=\"File Path\",\n info=(\n \"Path to the file to read. Used when component is called as a tool. \"\n \"If not provided, will use the uploaded file from 'path' input.\"\n ),\n show=False,\n advanced=True,\n tool_mode=True,\n required=False,\n ),\n BoolInput(\n name=\"advanced_mode\",\n display_name=\"Advanced Parser\",\n value=False,\n real_time_refresh=True,\n info=(\n \"Enable advanced document processing and export with Docling for PDFs, images, and office documents. \"\n \"Note that advanced document processing can consume significant resources.\"\n ),\n show=True,\n ),\n DropdownInput(\n name=\"pipeline\",\n display_name=\"Pipeline\",\n info=\"Docling pipeline to use\",\n options=[\"standard\", \"vlm\"],\n value=\"standard\",\n advanced=True,\n real_time_refresh=True,\n ),\n DropdownInput(\n name=\"ocr_engine\",\n display_name=\"OCR Engine\",\n info=\"OCR engine to use. Only available when pipeline is set to 'standard'.\",\n options=[\"None\", \"easyocr\"],\n value=\"easyocr\",\n show=False,\n advanced=True,\n ),\n StrInput(\n name=\"md_image_placeholder\",\n display_name=\"Image placeholder\",\n info=\"Specify the image placeholder for markdown exports.\",\n value=\"<!-- image -->\",\n advanced=True,\n show=False,\n ),\n StrInput(\n name=\"md_page_break_placeholder\",\n display_name=\"Page break placeholder\",\n info=\"Add this placeholder between pages in the markdown output.\",\n value=\"\",\n advanced=True,\n show=False,\n ),\n MessageTextInput(\n name=\"doc_key\",\n display_name=\"Doc Key\",\n info=\"The key to use for the DoclingDocument column.\",\n value=\"doc\",\n advanced=True,\n show=False,\n ),\n # Deprecated input retained for backward-compatibility.\n BoolInput(\n name=\"use_multithreading\",\n display_name=\"[Deprecated] Use Multithreading\",\n advanced=True,\n value=True,\n info=\"Set 'Processing Concurrency' greater than 1 to enable multithreading.\",\n ),\n IntInput(\n name=\"concurrency_multithreading\",\n display_name=\"Processing Concurrency\",\n advanced=True,\n info=\"When multiple files are being processed, the number of files to process concurrently.\",\n value=1,\n ),\n BoolInput(\n name=\"markdown\",\n display_name=\"Markdown Export\",\n info=\"Export processed documents to Markdown format. Only available when advanced mode is enabled.\",\n value=False,\n show=False,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Raw Content\", name=\"message\", method=\"load_files_message\", tool_mode=True),\n ]\n\n # ------------------------------ UI helpers --------------------------------------\n\n def _path_value(self, template: dict) -> list[str]:\n \"\"\"Return the list of currently selected file paths from the template.\"\"\"\n return template.get(\"path\", {}).get(\"file_path\", [])\n\n def update_build_config(\n self,\n build_config: dict[str, Any],\n field_value: Any,\n field_name: str | None = None,\n ) -> dict[str, Any]:\n \"\"\"Show/hide Advanced Parser and related fields based on selection context.\"\"\"\n if field_name == \"path\":\n paths = self._path_value(build_config)\n\n # If all files can be processed by docling, do so\n allow_advanced = all(not file_path.endswith((\".csv\", \".xlsx\", \".parquet\")) for file_path in paths)\n build_config[\"advanced_mode\"][\"show\"] = allow_advanced\n if not allow_advanced:\n build_config[\"advanced_mode\"][\"value\"] = False\n for f in (\"pipeline\", \"ocr_engine\", \"doc_key\", \"md_image_placeholder\", \"md_page_break_placeholder\"):\n if f in build_config:\n build_config[f][\"show\"] = False\n\n # Docling Processing\n elif field_name == \"advanced_mode\":\n for f in (\"pipeline\", \"ocr_engine\", \"doc_key\", \"md_image_placeholder\", \"md_page_break_placeholder\"):\n if f in build_config:\n build_config[f][\"show\"] = bool(field_value)\n if f == \"pipeline\":\n build_config[f][\"advanced\"] = not bool(field_value)\n\n elif field_name == \"pipeline\":\n if field_value == \"standard\":\n build_config[\"ocr_engine\"][\"show\"] = True\n build_config[\"ocr_engine\"][\"value\"] = \"easyocr\"\n else:\n build_config[\"ocr_engine\"][\"show\"] = False\n build_config[\"ocr_engine\"][\"value\"] = \"None\"\n\n return build_config\n\n def update_outputs(self, frontend_node: dict[str, Any], field_name: str, field_value: Any) -> dict[str, Any]: # noqa: ARG002\n \"\"\"Dynamically show outputs based on file count/type and advanced mode.\"\"\"\n if field_name not in [\"path\", \"advanced_mode\", \"pipeline\"]:\n return frontend_node\n\n template = frontend_node.get(\"template\", {})\n paths = self._path_value(template)\n if not paths:\n return frontend_node\n\n frontend_node[\"outputs\"] = []\n if len(paths) == 1:\n file_path = paths[0] if field_name == \"path\" else frontend_node[\"template\"][\"path\"][\"file_path\"][0]\n if file_path.endswith((\".csv\", \".xlsx\", \".parquet\")):\n frontend_node[\"outputs\"].append(\n Output(\n display_name=\"Structured Content\",\n name=\"dataframe\",\n method=\"load_files_structured\",\n tool_mode=True,\n ),\n )\n elif file_path.endswith(\".json\"):\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Structured Content\", name=\"json\", method=\"load_files_json\", tool_mode=True),\n )\n\n advanced_mode = frontend_node.get(\"template\", {}).get(\"advanced_mode\", {}).get(\"value\", False)\n if advanced_mode:\n frontend_node[\"outputs\"].append(\n Output(\n display_name=\"Structured Output\",\n name=\"advanced_dataframe\",\n method=\"load_files_dataframe\",\n tool_mode=True,\n ),\n )\n frontend_node[\"outputs\"].append(\n Output(\n display_name=\"Markdown\", name=\"advanced_markdown\", method=\"load_files_markdown\", tool_mode=True\n ),\n )\n frontend_node[\"outputs\"].append(\n Output(display_name=\"File Path\", name=\"path\", method=\"load_files_path\", tool_mode=True),\n )\n else:\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Raw Content\", name=\"message\", method=\"load_files_message\", tool_mode=True),\n )\n frontend_node[\"outputs\"].append(\n Output(display_name=\"File Path\", name=\"path\", method=\"load_files_path\", tool_mode=True),\n )\n else:\n # Multiple files => DataFrame output; advanced parser disabled\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Files\", name=\"dataframe\", method=\"load_files\", tool_mode=True)\n )\n\n return frontend_node\n\n # ------------------------------ Core processing ----------------------------------\n\n def _validate_and_resolve_paths(self) -> list[BaseFileComponent.BaseFile]:\n \"\"\"Override to handle file_path_str input from tool mode.\n\n When called as a tool, the file_path_str parameter can be set.\n If not provided, it will fall back to using the path FileInput (uploaded file).\n Priority:\n 1. file_path_str (if provided by the tool call)\n 2. path (uploaded file from UI)\n \"\"\"\n # Check if file_path_str is provided (from tool mode)\n file_path_str = getattr(self, \"file_path_str\", None)\n if file_path_str:\n # Use the string path from tool mode\n from pathlib import Path\n\n from lfx.schema.data import Data\n\n resolved_path = Path(self.resolve_path(file_path_str))\n if not resolved_path.exists():\n msg = f\"File or directory not found: {file_path_str}\"\n self.log(msg)\n if not self.silent_errors:\n raise ValueError(msg)\n return []\n\n data_obj = Data(data={self.SERVER_FILE_PATH_FIELDNAME: str(resolved_path)})\n return [BaseFileComponent.BaseFile(data_obj, resolved_path, delete_after_processing=False)]\n\n # Otherwise use the default implementation (uses path FileInput)\n return super()._validate_and_resolve_paths()\n\n def _is_docling_compatible(self, file_path: str) -> bool:\n \"\"\"Lightweight extension gate for Docling-compatible types.\"\"\"\n docling_exts = (\n \".adoc\",\n \".asciidoc\",\n \".asc\",\n \".bmp\",\n \".csv\",\n \".dotx\",\n \".dotm\",\n \".docm\",\n \".docx\",\n \".htm\",\n \".html\",\n \".jpg\",\n \".jpeg\",\n \".json\",\n \".md\",\n \".pdf\",\n \".png\",\n \".potx\",\n \".ppsx\",\n \".pptm\",\n \".potm\",\n \".ppsm\",\n \".pptx\",\n \".tiff\",\n \".txt\",\n \".xls\",\n \".xlsx\",\n \".xhtml\",\n \".xml\",\n \".webp\",\n )\n return file_path.lower().endswith(docling_exts)\n\n async def _get_local_file_for_docling(self, file_path: str) -> tuple[str, bool]:\n \"\"\"Get a local file path for Docling processing, downloading from S3 if needed.\n\n Args:\n file_path: Either a local path or S3 key (format \"flow_id/filename\")\n\n Returns:\n tuple[str, bool]: (local_path, should_delete) where should_delete indicates\n if this is a temporary file that should be cleaned up\n \"\"\"\n settings = get_settings_service().settings\n if settings.storage_type == \"local\":\n return file_path, False\n\n # S3 storage - download to temp file\n parsed = parse_storage_path(file_path)\n if not parsed:\n msg = f\"Invalid S3 path format: {file_path}. Expected 'flow_id/filename'\"\n raise ValueError(msg)\n\n storage_service = get_storage_service()\n flow_id, filename = parsed\n\n # Get file content from S3\n content = await storage_service.get_file(flow_id, filename)\n\n suffix = Path(filename).suffix\n with NamedTemporaryFile(mode=\"wb\", suffix=suffix, delete=False) as tmp_file:\n tmp_file.write(content)\n temp_path = tmp_file.name\n\n return temp_path, True\n\n def _process_docling_in_subprocess(self, file_path: str) -> Data | None:\n \"\"\"Run Docling in a separate OS process and map the result to a Data object.\n\n We avoid multiprocessing pickling by launching `python -c \"<script>\"` and\n passing JSON config via stdin. The child prints a JSON result to stdout.\n\n For S3 storage, the file is downloaded to a temp file first.\n \"\"\"\n if not file_path:\n return None\n\n settings = get_settings_service().settings\n if settings.storage_type == \"s3\":\n local_path, should_delete = run_until_complete(self._get_local_file_for_docling(file_path))\n else:\n local_path = file_path\n should_delete = False\n\n try:\n return self._process_docling_subprocess_impl(local_path, file_path)\n finally:\n # Clean up temp file if we created one\n if should_delete:\n with contextlib.suppress(Exception):\n Path(local_path).unlink() # Ignore cleanup errors\n\n def _process_docling_subprocess_impl(self, local_file_path: str, original_file_path: str) -> Data | None:\n \"\"\"Implementation of Docling subprocess processing.\n\n Args:\n local_file_path: Path to local file to process\n original_file_path: Original file path to include in metadata\n Returns:\n Data object with processed content\n \"\"\"\n args: dict[str, Any] = {\n \"file_path\": local_file_path,\n \"markdown\": bool(self.markdown),\n \"image_mode\": str(self.IMAGE_MODE),\n \"md_image_placeholder\": str(self.md_image_placeholder),\n \"md_page_break_placeholder\": str(self.md_page_break_placeholder),\n \"pipeline\": str(self.pipeline),\n \"ocr_engine\": (\n self.ocr_engine if self.ocr_engine and self.ocr_engine != \"None\" and self.pipeline != \"vlm\" else None\n ),\n }\n\n self.log(f\"Starting Docling subprocess for file: {local_file_path}\")\n self.log(args)\n\n # Child script for isolating the docling processing\n child_script = textwrap.dedent(\n r\"\"\"\n import json, sys\n\n def try_imports():\n try:\n from docling.datamodel.base_models import ConversionStatus, InputFormat # type: ignore\n from docling.document_converter import DocumentConverter # type: ignore\n from docling_core.types.doc import ImageRefMode # type: ignore\n return ConversionStatus, InputFormat, DocumentConverter, ImageRefMode, \"latest\"\n except Exception as e:\n raise e\n\n def create_converter(strategy, input_format, DocumentConverter, pipeline, ocr_engine):\n # --- Standard PDF/IMAGE pipeline (your existing behavior), with optional OCR ---\n if pipeline == \"standard\":\n try:\n from docling.datamodel.pipeline_options import PdfPipelineOptions # type: ignore\n from docling.document_converter import PdfFormatOption # type: ignore\n\n pipe = PdfPipelineOptions()\n pipe.do_ocr = False\n\n if ocr_engine:\n try:\n from docling.models.factories import get_ocr_factory # type: ignore\n pipe.do_ocr = True\n fac = get_ocr_factory(allow_external_plugins=False)\n pipe.ocr_options = fac.create_options(kind=ocr_engine)\n except Exception:\n # If OCR setup fails, disable it\n pipe.do_ocr = False\n\n fmt = {}\n if hasattr(input_format, \"PDF\"):\n fmt[getattr(input_format, \"PDF\")] = PdfFormatOption(pipeline_options=pipe)\n if hasattr(input_format, \"IMAGE\"):\n fmt[getattr(input_format, \"IMAGE\")] = PdfFormatOption(pipeline_options=pipe)\n\n return DocumentConverter(format_options=fmt)\n except Exception:\n return DocumentConverter()\n\n # --- Vision-Language Model (VLM) pipeline ---\n if pipeline == \"vlm\":\n try:\n from docling.datamodel.pipeline_options import VlmPipelineOptions\n from docling.datamodel.vlm_model_specs import GRANITEDOCLING_MLX, GRANITEDOCLING_TRANSFORMERS\n from docling.document_converter import PdfFormatOption\n from docling.pipeline.vlm_pipeline import VlmPipeline\n\n vl_pipe = VlmPipelineOptions(\n vlm_options=GRANITEDOCLING_TRANSFORMERS,\n )\n\n if sys.platform == \"darwin\":\n try:\n import mlx_vlm\n vl_pipe.vlm_options = GRANITEDOCLING_MLX\n except ImportError as e:\n raise e\n\n # VLM paths generally don't need OCR; keep OCR off by default here.\n fmt = {}\n if hasattr(input_format, \"PDF\"):\n fmt[getattr(input_format, \"PDF\")] = PdfFormatOption(\n pipeline_cls=VlmPipeline,\n pipeline_options=vl_pipe\n )\n if hasattr(input_format, \"IMAGE\"):\n fmt[getattr(input_format, \"IMAGE\")] = PdfFormatOption(\n pipeline_cls=VlmPipeline,\n pipeline_options=vl_pipe\n )\n\n return DocumentConverter(format_options=fmt)\n except Exception as e:\n raise e\n\n # --- Fallback: default converter with no special options ---\n return DocumentConverter()\n\n def export_markdown(document, ImageRefMode, image_mode, img_ph, pg_ph):\n try:\n mode = getattr(ImageRefMode, image_mode.upper(), image_mode)\n return document.export_to_markdown(\n image_mode=mode,\n image_placeholder=img_ph,\n page_break_placeholder=pg_ph,\n )\n except Exception:\n try:\n return document.export_to_text()\n except Exception:\n return str(document)\n\n def to_rows(doc_dict):\n rows = []\n for t in doc_dict.get(\"texts\", []):\n prov = t.get(\"prov\") or []\n page_no = None\n if prov and isinstance(prov, list) and isinstance(prov[0], dict):\n page_no = prov[0].get(\"page_no\")\n rows.append({\n \"page_no\": page_no,\n \"label\": t.get(\"label\"),\n \"text\": t.get(\"text\"),\n \"level\": t.get(\"level\"),\n })\n return rows\n\n def main():\n cfg = json.loads(sys.stdin.read())\n file_path = cfg[\"file_path\"]\n markdown = cfg[\"markdown\"]\n image_mode = cfg[\"image_mode\"]\n img_ph = cfg[\"md_image_placeholder\"]\n pg_ph = cfg[\"md_page_break_placeholder\"]\n pipeline = cfg[\"pipeline\"]\n ocr_engine = cfg.get(\"ocr_engine\")\n meta = {\"file_path\": file_path}\n\n try:\n ConversionStatus, InputFormat, DocumentConverter, ImageRefMode, strategy = try_imports()\n converter = create_converter(strategy, InputFormat, DocumentConverter, pipeline, ocr_engine)\n try:\n res = converter.convert(file_path)\n except Exception as e:\n print(json.dumps({\"ok\": False, \"error\": f\"Docling conversion error: {e}\", \"meta\": meta}))\n return\n\n ok = False\n if hasattr(res, \"status\"):\n try:\n ok = (res.status == ConversionStatus.SUCCESS) or (str(res.status).lower() == \"success\")\n except Exception:\n ok = (str(res.status).lower() == \"success\")\n if not ok and hasattr(res, \"document\"):\n ok = getattr(res, \"document\", None) is not None\n if not ok:\n print(json.dumps({\"ok\": False, \"error\": \"Docling conversion failed\", \"meta\": meta}))\n return\n\n doc = getattr(res, \"document\", None)\n if doc is None:\n print(json.dumps({\"ok\": False, \"error\": \"Docling produced no document\", \"meta\": meta}))\n return\n\n if markdown:\n text = export_markdown(doc, ImageRefMode, image_mode, img_ph, pg_ph)\n print(json.dumps({\"ok\": True, \"mode\": \"markdown\", \"text\": text, \"meta\": meta}))\n return\n\n # structured\n try:\n doc_dict = doc.export_to_dict()\n except Exception as e:\n print(json.dumps({\"ok\": False, \"error\": f\"Docling export_to_dict failed: {e}\", \"meta\": meta}))\n return\n\n rows = to_rows(doc_dict)\n print(json.dumps({\"ok\": True, \"mode\": \"structured\", \"doc\": rows, \"meta\": meta}))\n except Exception as e:\n print(\n json.dumps({\n \"ok\": False,\n \"error\": f\"Docling processing error: {e}\",\n \"meta\": {\"file_path\": file_path},\n })\n )\n\n if __name__ == \"__main__\":\n main()\n \"\"\"\n )\n\n # Validate file_path to avoid command injection or unsafe input\n if not isinstance(args[\"file_path\"], str) or any(c in args[\"file_path\"] for c in [\";\", \"|\", \"&\", \"$\", \"`\"]):\n return Data(data={\"error\": \"Unsafe file path detected.\", \"file_path\": args[\"file_path\"]})\n\n proc = subprocess.run( # noqa: S603\n [sys.executable, \"-u\", \"-c\", child_script],\n input=json.dumps(args).encode(\"utf-8\"),\n capture_output=True,\n check=False,\n )\n\n if not proc.stdout:\n err_msg = proc.stderr.decode(\"utf-8\", errors=\"replace\") or \"no output from child process\"\n return Data(data={\"error\": f\"Docling subprocess error: {err_msg}\", \"file_path\": original_file_path})\n\n try:\n result = json.loads(proc.stdout.decode(\"utf-8\"))\n except Exception as e: # noqa: BLE001\n err_msg = proc.stderr.decode(\"utf-8\", errors=\"replace\")\n return Data(\n data={\n \"error\": f\"Invalid JSON from Docling subprocess: {e}. stderr={err_msg}\",\n \"file_path\": original_file_path,\n },\n )\n\n if not result.get(\"ok\"):\n return Data(data={\"error\": result.get(\"error\", \"Unknown Docling error\"), **result.get(\"meta\", {})})\n\n meta = result.get(\"meta\", {})\n if result.get(\"mode\") == \"markdown\":\n exported_content = str(result.get(\"text\", \"\"))\n return Data(\n text=exported_content,\n data={\"exported_content\": exported_content, \"export_format\": self.EXPORT_FORMAT, **meta},\n )\n\n rows = list(result.get(\"doc\", []))\n return Data(data={\"doc\": rows, \"export_format\": self.EXPORT_FORMAT, **meta})\n\n def process_files(\n self,\n file_list: list[BaseFileComponent.BaseFile],\n ) -> list[BaseFileComponent.BaseFile]:\n \"\"\"Process input files.\n\n - advanced_mode => Docling in a separate process.\n - Otherwise => standard parsing in current process (optionally threaded).\n \"\"\"\n if not file_list:\n msg = \"No files to process.\"\n raise ValueError(msg)\n\n # Validate that files requiring Docling are only processed when advanced mode is enabled\n if not self.advanced_mode:\n for file in file_list:\n extension = file.path.suffix[1:].lower()\n if extension in self.DOCLING_ONLY_EXTENSIONS:\n msg = (\n f\"File '{file.path.name}' has extension '.{extension}' which requires \"\n f\"Advanced Parser mode. Please enable 'Advanced Parser' to process this file.\"\n )\n self.log(msg)\n raise ValueError(msg)\n\n def process_file_standard(file_path: str, *, silent_errors: bool = False) -> Data | None:\n try:\n return parse_text_file_to_data(file_path, silent_errors=silent_errors)\n except FileNotFoundError as e:\n self.log(f\"File not found: {file_path}. Error: {e}\")\n if not silent_errors:\n raise\n return None\n except Exception as e:\n self.log(f\"Unexpected error processing {file_path}: {e}\")\n if not silent_errors:\n raise\n return None\n\n docling_compatible = all(self._is_docling_compatible(str(f.path)) for f in file_list)\n\n # Advanced path: Check if ALL files are compatible with Docling\n if self.advanced_mode and docling_compatible:\n final_return: list[BaseFileComponent.BaseFile] = []\n for file in file_list:\n file_path = str(file.path)\n advanced_data: Data | None = self._process_docling_in_subprocess(file_path)\n\n # --- UNNEST: expand each element in `doc` to its own Data row\n payload = getattr(advanced_data, \"data\", {}) or {}\n doc_rows = payload.get(\"doc\")\n if isinstance(doc_rows, list):\n rows: list[Data | None] = [\n Data(\n data={\n \"file_path\": file_path,\n **(item if isinstance(item, dict) else {\"value\": item}),\n },\n )\n for item in doc_rows\n ]\n final_return.extend(self.rollup_data(file_list, rows))\n else:\n # If not structured, keep as-is (e.g., markdown export or error dict)\n final_return.extend(self.rollup_data(file_list, [advanced_data]))\n return final_return\n\n # Standard multi-file (or single non-advanced) path\n concurrency = 1 if not self.use_multithreading else max(1, self.concurrency_multithreading)\n\n file_paths = [str(f.path) for f in file_list]\n self.log(f\"Starting parallel processing of {len(file_paths)} files with concurrency: {concurrency}.\")\n my_data = parallel_load_data(\n file_paths,\n silent_errors=self.silent_errors,\n load_function=process_file_standard,\n max_concurrency=concurrency,\n )\n return self.rollup_data(file_list, my_data)\n\n # ------------------------------ Output helpers -----------------------------------\n\n def load_files_helper(self) -> DataFrame:\n result = self.load_files()\n\n # Error condition - raise error if no text and an error is present\n if not hasattr(result, \"text\"):\n if hasattr(result, \"error\"):\n raise ValueError(result.error[0])\n msg = \"Could not extract content from the provided file(s).\"\n raise ValueError(msg)\n\n return result\n\n def load_files_dataframe(self) -> DataFrame:\n \"\"\"Load files using advanced Docling processing and export to DataFrame format.\"\"\"\n self.markdown = False\n return self.load_files_helper()\n\n def load_files_markdown(self) -> Message:\n \"\"\"Load files using advanced Docling processing and export to Markdown format.\"\"\"\n self.markdown = True\n result = self.load_files_helper()\n return Message(text=str(result.text[0]))\n"
2411
2411
  },
2412
2412
  "concurrency_multithreading": {
2413
2413
  "_input_type": "IntInput",
@@ -2489,6 +2489,26 @@
2489
2489
  "type": "other",
2490
2490
  "value": ""
2491
2491
  },
2492
+ "file_path_str": {
2493
+ "_input_type": "StrInput",
2494
+ "advanced": true,
2495
+ "display_name": "File Path",
2496
+ "dynamic": false,
2497
+ "info": "Path to the file to read. Used when component is called as a tool. If not provided, will use the uploaded file from 'path' input.",
2498
+ "list": false,
2499
+ "list_add_label": "Add More",
2500
+ "load_from_db": false,
2501
+ "name": "file_path_str",
2502
+ "placeholder": "",
2503
+ "required": false,
2504
+ "show": false,
2505
+ "title_case": false,
2506
+ "tool_mode": true,
2507
+ "trace_as_metadata": true,
2508
+ "track_in_telemetry": false,
2509
+ "type": "str",
2510
+ "value": ""
2511
+ },
2492
2512
  "ignore_unspecified_files": {
2493
2513
  "_input_type": "BoolInput",
2494
2514
  "advanced": true,